@font-face{font-family:RibbonTitle;src:url('/admin/fonts/BricolageGrotesque-ExtraBold.ttf') format('truetype');font-weight:800;font-display:swap}
@font-face{font-family:RibbonBody;src:url('/admin/fonts/Lexend-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:RibbonBody;src:url('/admin/fonts/Lexend-SemiBold.ttf') format('truetype');font-weight:600;font-display:swap}
:root {
  color-scheme: light;
  font-family: RibbonBody, ui-sans-serif, system-ui, -apple-system, sans-serif;
  font-synthesis: none;
  color: #121a2b;
  background: #eef1f6;
  --accent: #d2362d;
  --line: #d9e0eb;
  --muted: #5a6478;
  --paper: #ffffff;
  --wash: #e5eaf2;
}
* { box-sizing: border-box; }
body { margin: 0; }
button, input, select, textarea { font: inherit; }
button {
  cursor: pointer; border: 1px solid #d9e0eb; border-radius: 10px;
  background: var(--paper); color: #121a2b; padding: 11px 16px;
  font-weight: 600; min-height: 44px; transition: background .15s, border-color .15s;
}
button:disabled { opacity: .45; cursor: default; }
button:hover:not(:disabled) { background: #f6f8fc; border-color: #7d8da8; }
button.primary, .file-label { background: var(--accent); color: #fff; border-color: var(--accent); }
button.primary:hover:not(:disabled) { background: #b42318; border-color: #b42318; }
.quiet { background: transparent; border-color: transparent; }
input, select, textarea {
  width: 100%; padding: 11px 12px; border: 1px solid #b9c3d3;
  background: var(--paper); color: #121a2b; border-radius: 9px; margin-top: 7px;
}
input::placeholder, textarea::placeholder { color: #5a6478; }
input:focus, select:focus, textarea:focus, button:focus-visible, a:focus-visible {
  outline: 3px solid #2563eb; outline-offset: 3px;
}
input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--accent); margin: 0; }
input[type=color] { height: 44px; padding: 4px; }
label { display: block; font-size: 13px; font-weight: 600; }
textarea { resize: vertical; line-height: 1.6; }
h1, h2, h3, p { margin: 0; }
h1 { font-size: clamp(27px, 3vw, 36px); letter-spacing: -1.2px; line-height: 1.18; font-weight: 700; }
h2 { font-size: 22px; letter-spacing: -.5px; }
h3 { font-size: 16px; margin-bottom: 12px; }
.muted { color: var(--muted); font-size: 13px; line-height: 1.7; margin-top: 8px; }
.eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 1.8px; color: #5a6478; margin-bottom: 10px; }
.brand { display: inline-flex; align-items: center; gap: 12px; font-weight: 750; font-size: 21px; letter-spacing: -.6px; color: #121a2b; text-decoration: none; }
.brand > img { object-fit: contain; background: #e5eaf2; border-radius: 50%; }
.brand small { display: block; font-weight: 400; letter-spacing: .1px; font-size: 11px; margin-top: 3px; color: var(--muted); }
header { background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px max(24px, calc((100vw - 1236px) / 2)); border-bottom: 1px solid var(--line); min-height: 81px; }
header button { font-size: 12px; }
main { max-width: 1320px; margin: auto; padding: 30px 42px 20px; }
.page-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 18px; min-height: 135px; }
.professor-guide { flex: 0 0 auto; object-fit: contain; background: #e5eaf2; border-radius: 50%; }
.tabs { display: flex; gap: 6px; border-bottom: 1px solid var(--line); margin-bottom: 30px; padding: 0 0 12px; overflow: auto; white-space: nowrap; }
.tabs button { border: 1px solid transparent; border-radius: 9px; background: transparent; padding: 12px 17px; color: #5a6478; font-size: 13px; }
.tabs button.selected { border-color: #2e3e60; background: #1c2740; color: #ffffff; }
.tabs span { color: #ffb4ae; margin-left: 6px; }
.section-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 22px; gap: 20px; }
.filters { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 15px; background: var(--wash); border: 1px solid #d9e0eb; padding: 18px; border-radius: 13px; }
.filters label span { font-size: 10px; letter-spacing: .7px; text-transform: uppercase; color: #5a6478; }
.list-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; font-size: 11px; color: var(--muted); margin: 22px 0 12px; }
.item-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.item-card { display: flex; text-align: left; align-items: center; gap: 14px; padding: 18px 14px; min-height: 104px; overflow: hidden; border-color: var(--line); border-radius: 13px; }
.item-card img, .icon-editor img { image-rendering: pixelated; object-fit: contain; background: #eef1f6; border-radius: 11px; padding: 6px; flex-shrink: 0; }
.item-card .copy { min-width: 0; }
.item-card strong { display: block; font-size: 13px; margin-bottom: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.item-card small { display: block; font-size: 10px; font-family: ui-monospace, monospace; color: #5a6478; overflow: hidden; text-overflow: ellipsis; }
.badge { font-size: 9px; display: inline-block; border-radius: 5px; padding: 4px 7px; margin-top: 8px; background: #e5f4ef; color: #0b6f6a; }
.badge.warn { color: #875721; background: #faf0d9; }
.badge.off { color: #5a6478; background: #e5eaf2; }
.pagination { display: flex; justify-content: center; align-items: center; gap: 22px; margin: 25px 0; font-size: 12px; }
.import-report { border-top: 1px solid var(--line); font-size: 12px; padding: 20px 0; color: var(--muted); line-height: 1.8; }
.import-report summary { cursor: pointer; }
.gift-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.gift-card { background: var(--paper); border: 1px solid var(--line); padding: 24px; border-radius: 14px; display: flex; flex-direction: column; gap: 13px; }
.gift-card p { color: var(--muted); font-size: 13px; line-height: 1.65; }
.gift-card .counts { font-size: 11px; color: #5a6478; border-top: 1px solid var(--line); padding-top: 14px; }
.gift-card button { margin-top: auto; }
.rewards-summary { font-size: 12px; line-height: 1.7; color: #5a6478; }
.notice { padding: 14px 18px; background: #e5f4ef; border: 1px solid #b3d5c8; border-radius: 10px; font-size: 13px; margin-bottom: 20px; line-height: 1.6; }
.error { color: #b42318; font-size: 13px; line-height: 1.5; min-height: 20px; margin-top: 12px; }
footer { display: flex; align-items: center; gap: 12px; font-size: 10px; color: var(--muted); border-top: 1px solid var(--line); padding: 22px 0; margin-top: 25px; line-height: 1.8; }
footer img { object-fit: contain; flex-shrink: 0; background: #e5eaf2; border-radius: 50%; }
footer strong { font-size: 11px; color: #121a2b; font-weight: 600; }
footer a { margin-left: auto; color: var(--accent); text-underline-offset: 4px; white-space: nowrap; }
dialog { border: 1px solid #b9c3d3; border-radius: 18px; width: min(700px, 94vw); padding: 28px; max-height: 90vh; overflow: auto; color: #121a2b; background: #fff; box-shadow: 0 24px 90px #243a4326; }
dialog::backdrop { background: #121a2b5c; backdrop-filter: blur(4px); }
.dialog-heading { display: flex; justify-content: space-between; align-items: start; margin-bottom: 24px; }
.dialog-heading code { color: var(--muted); font-size: 11px; display: block; margin-top: 7px; }
.dialog-heading h2 { margin-right: 12px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
dialog label { margin-bottom: 15px; }
.checks { display: flex; gap: 25px; margin-top: 14px; flex-wrap: wrap; }
.checks label, .publish { display: flex; align-items: center; gap: 10px; }
.icon-editor { display: flex; gap: 20px; align-items: center; border: 1px dashed #b9c3d3; border-radius: 12px; padding: 16px; margin-bottom: 24px; }
.file-label { display: inline-block; padding: 9px 12px; border-radius: 8px; font-size: 12px; cursor: pointer; margin: 0; }
.file-label input { width: 1px; height: 1px; opacity: 0; position: absolute; }
.icon-editor .muted { font-size: 11px; }
.icon-editor button { font-size: 11px; padding: 6px; min-height: 32px; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 10px; border-top: 1px solid var(--line); padding-top: 20px; margin-top: 20px; }
.route-editor { border-top: 1px solid var(--line); padding-top: 20px; margin-top: 12px; }
.route-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 0; font-size: 13px; border-bottom: 1px solid #d9e0eb; }
.route-row label { display: flex; align-items: center; gap: 8px; margin: 0; }
.route-row select { width: 120px; }
.route-row input[type=number] { width: 90px; }
.inline { display: flex; align-items: end; gap: 10px; margin-top: 15px; }
.inline select { flex: 1; }
.reward { border: 1px solid var(--line); background: #eef1f6; padding: 15px; border-radius: 12px; margin-bottom: 12px; }
.reward-top { display: flex; gap: 12px; align-items: center; }
.reward-top select { flex: 1; margin: 0; }
.reward-top button { min-width: 44px; padding: 8px; }
.reward-fields { margin-top: 13px; display: grid; grid-template-columns: 2fr 1fr; gap: 12px; }
.reward-fields label { margin-bottom: 0; }
.publish { margin-top: 22px; }
.empty { grid-column: 1/-1; padding: 55px; text-align: center; color: var(--muted); border: 1px dashed #b9c3d3; border-radius: 14px; }
.login { min-height: 100svh; display: grid; grid-template-columns: 1fr 1fr; background: #eef1f6; }
.login-card { max-width: 448px; width: 100%; margin: auto; padding: 40px 32px; }
.login-card .brand { margin-bottom: 60px; }
.login-card h1 { font-size: clamp(30px, 3.2vw, 40px); margin-bottom: 12px; }
.login-card .muted { margin-bottom: 30px; }
.login-card label { margin-bottom: 18px; }
.login-card button { width: 100%; margin-top: 8px; }
.login-art { background: #1c2740; position: relative; min-height: 100svh; overflow: hidden; padding: 68px 54px; isolation: isolate; }
.login-art::before { content: ''; position: absolute; z-index: -1; width: 620px; height: 620px; border-radius: 50%; background: #2e3e60; bottom: -30px; left: 8%; }
.login-art::after { content: ''; position: absolute; z-index: -1; width: 680px; height: 680px; border: 1px solid #51658a; border-radius: 50%; bottom: 5px; left: 2%; }
.professor-label { display: inline-flex; align-items: center; gap: 8px; font-size: 10px; letter-spacing: 1.8px; color: #b8c2d6; margin-bottom: 24px; }
.professor-dot { width: 7px; height: 7px; background: #d2362d; border-radius: 50%; }
.login-art h2 { font-size: clamp(29px, 3vw, 40px); line-height: 1.15; font-weight: 600; letter-spacing: -1.3px; }
.login-art > p { margin-top: 16px; font-size: 12px; color: #b8c2d6; }
.professor-body { position: absolute; right: 8%; bottom: -20px; height: min(70svh, 700px); max-width: 90%; object-fit: contain; }
.pokemon-assets { display: flex; align-items: center; gap: 15px; flex-wrap: wrap; background: var(--wash); padding: 12px; border-radius: 12px; margin-bottom: 18px; }
.pokemon-assets img { object-fit: contain; image-rendering: pixelated; }
.pokemon-assets audio { width: 100%; height: 35px; }
.landscape-preview { height: 125px; border-radius: 12px; background: linear-gradient(var(--sky-top, #b8d898), var(--sky-bottom, #88bc7c)); border-bottom: 28px solid var(--land, #3a7c50); display: flex; align-items: center; justify-content: center; margin: 12px 0 20px; color: #17382e; font-size: 11px; }
.route-colors { display: flex; gap: 5px; }
.route-colors i { width: 28px; height: 12px; border-radius: 3px; background: var(--swatch); }
#pokemon-list { margin-top: 20px; }
#environment-roster h3 { margin-top: 24px; }
details summary { cursor: pointer; padding: 12px 0; font-size: 13px; }
#environment-form details textarea { font: 12px/1.6 ui-monospace, monospace; }
.pokemon-card img, #pokemon-icon { object-fit: cover; object-position: left; padding: 0; }
body[aria-busy=true] { cursor: progress; }
[hidden] { display: none !important; }
@media (max-width: 1050px) {
  .item-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gift-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .login-art { padding: 60px 30px; }
}
@media (max-width: 700px) {
  header { padding: 12px 16px; }
  header .brand { gap: 8px; font-size: 19px; }
  header .brand img { width: 42px; height: 42px; }
  header .brand small { font-size: 9px; }
  header button { padding: 10px; font-size: 11px; }
  main { padding: 22px 16px 12px; }
  .page-heading { gap: 10px; min-height: 100px; }
  .professor-guide { width: 76px; height: 76px; }
  .page-heading h1 { font-size: 26px; }
  .page-heading .eyebrow { font-size: 8px; letter-spacing: 1px; }
  .page-heading .muted { font-size: 12px; }
  .filters { grid-template-columns: 1fr 1fr; padding: 14px; }
  .filters .search { grid-column: 1/-1; }
  .item-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .item-card { flex-direction: column; align-items: start; gap: 10px; padding: 14px; }
  .item-card .copy { max-width: 100%; }
  .gift-grid { grid-template-columns: 1fr; }
  .list-heading span:last-child { display: none; }
  .login { grid-template-columns: 1fr; }
  .login-art { display: none; }
  .login-card { padding: 32px 28px; }
  .login-card .brand { margin-bottom: 42px; }
  dialog { padding: 20px; }
  .form-grid { grid-template-columns: 1fr; }
  .checks { gap: 12px; }
  .icon-editor { gap: 12px; }
  .tabs { gap: 4px; margin-bottom: 24px; }
  .tabs button { padding: 11px 13px; font-size: 12px; }
  .section-heading { align-items: start; }
  .section-heading > button { flex-shrink: 0; font-size: 12px; padding: 10px; }
  .reward-fields { grid-template-columns: 1fr 1fr; }
  .reward-fields label:first-child { grid-column: 1/-1; }
  .pagination { gap: 12px; }
  footer { flex-wrap: wrap; }
  footer span { flex: 1; }
  footer a { margin-left: 52px; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
.progress-form { max-width: 660px; background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 24px; }
.progress-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; gap: 22px; }
.progress-form input { max-width: 180px; display: block; }
.progress-form small { display: block; font-size: 12px; font-weight: 400; color: var(--muted); line-height: 1.6; margin-top: 7px; }
.progress-preview { font-size: 13px; line-height: 1.7; padding: 14px; background: var(--wash); border-radius: 10px; }
.progress-actions { display: flex; flex-wrap: wrap; gap: 10px; }

.battle-music-preview { width: 100%; height: 36px; margin-top: 8px; }

.challenge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.challenge-card-head{display:flex;gap:18px;align-items:center}.challenge-card-head img,.challenge-team-preview img,#challenge-portrait{object-fit:contain;image-rendering:pixelated}.challenge-card h3{margin:6px 0}.challenge-team-preview{display:flex;flex-wrap:wrap;gap:2px}.challenge-heading{display:grid;grid-template-columns:80px 1fr;gap:20px;align-items:center}.challenge-mon{border:1px solid var(--line,#d8ddd3);border-radius:14px;padding:18px;margin:18px 0;min-width:0}.challenge-mon legend{font-weight:700;padding:0 8px}.challenge-mon-tools{display:flex;gap:8px;justify-content:flex-end;margin-bottom:14px}.challenge-mon-tools button{font-size:12px;min-height:36px}.challenge-mon summary{cursor:pointer;padding:12px 0}#challenge-dialog{max-width:850px;width:calc(100% - 32px)}#challenge-form .dialog-actions{position:sticky;bottom:-1px;background:var(--paper,#eef1f6);padding:16px 0;margin-bottom:-4px;border-top:1px solid var(--line,#d8ddd3);z-index:2}#challenge-form input[type=color]{min-height:42px}#challenge-form .form-grid>label{min-width:0}#challenge-form .form-grid input{min-width:0;width:100%}@media(max-width:600px){.challenge-heading{grid-template-columns:1fr}.challenge-heading>img{justify-self:center}.challenge-mon{padding:12px}.challenge-mon-tools{justify-content:flex-start;flex-wrap:wrap}}

.challenge-mon-icon{display:block;width:32px;height:32px;overflow:hidden;flex:0 0 32px}.challenge-mon-icon img{display:block;height:32px;width:auto;max-width:none;object-fit:fill}

/* Ribbon: same typography, red ribbons and raised controls as the Walker. */
:root{--ink:#121a2b;--panel:#1c2740;--bar:#0b1220;--lip:#b9c3d3;--accent-dark:#b42318}
body{background-image:linear-gradient(#2e3e6005 1px,transparent 1px),linear-gradient(90deg,#2e3e6005 1px,transparent 1px);background-size:32px 32px}
h1,h2,h3,.brand{font-family:RibbonTitle,system-ui,sans-serif;font-weight:800}
button,.file-label{border-bottom-width:4px;border-bottom-color:var(--lip);transition:transform .15s,background .15s}
button:hover:not(:disabled){transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(2px)}
button.primary,.file-label{border-bottom-color:#981d16}.quiet{border-color:transparent;border-bottom-width:1px}
input,select,textarea{min-height:44px;box-shadow:inset 0 2px 0 #121a2b04}
input[type=checkbox]{min-height:0;box-shadow:none;flex-shrink:0}input[type=color]{box-shadow:none}
header{background:var(--ink);color:#fff;border-bottom:5px solid var(--bar);position:sticky;top:0;z-index:5;min-height:86px}
header .brand{color:#fff}header .brand small{color:#b8c2d6}header .brand>img{background:#2e3e60;border-radius:10px}
header button{color:#fff;border-color:#51658a;background:var(--panel);border-bottom:3px solid var(--bar)}header button:hover:not(:disabled){background:#2e3e60;border-color:#51658a}
main{max-width:1400px;padding-top:24px}.page-heading{min-height:145px;margin-bottom:14px}.page-heading h1{display:inline-block;background:var(--accent);color:#fff;border-radius:7px;padding:11px 26px 14px 22px;clip-path:polygon(2% 0,100% 0,97% 100%,0 100%);letter-spacing:-1px;font-size:clamp(27px,3vw,38px)}
.page-heading .muted{margin-left:8px}.page-heading .eyebrow{margin-left:8px}.professor-guide{border-radius:15px;border:1px solid var(--line);border-bottom:5px solid var(--lip);background:#fff;width:112px;height:112px}
.tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;white-space:normal;overflow:visible;background:var(--ink);padding:9px;border:1px solid #2e3e60;border-bottom:5px solid var(--bar);border-radius:12px;margin-bottom:28px;align-items:stretch}
.tabs button{display:block;min-width:0;min-height:54px;padding:10px 9px;background:var(--panel);border:1px solid #2e3e60;border-bottom:3px solid var(--bar);border-radius:7px;color:#d2d9e6;font-size:11px;line-height:1.5}
.tabs button.selected{background:var(--accent);border-color:var(--accent-dark);border-bottom-color:#981d16;color:#fff}.tabs button:hover:not(:disabled){background:#2e3e60;border-color:#51658a}.tabs button.selected:hover{background:var(--accent-dark);border-color:#981d16}
.section-heading h2{font-size:26px;letter-spacing:-.7px}.section-heading .muted{font-size:12px}.filters{border-bottom:4px solid var(--lip);border-radius:12px;background:#fff}.filters label span{font-size:9px}
.item-card,.gift-card,.progress-form{border-bottom:5px solid var(--lip);background:#fff;box-shadow:0 1px 0 #121a2b04}.item-card{min-height:110px}.item-card:hover:not(:disabled){background:#fff;border-color:#7d8da8;border-bottom-color:#7d8da8}.item-card img{background:var(--wash);border-radius:8px}.item-card strong{font-size:13px}.item-card small{font-size:9px}.gift-card{border-radius:12px;padding:22px}.gift-card h3{font-size:21px;letter-spacing:-.5px}.gift-card p{font-size:12px}.badge{border-radius:5px;font-size:9px}.badge.warn{background:#fff1ce;color:#76500b}.badge.off{color:var(--muted)}
.challenge-card{position:relative;border-top:3px solid var(--accent)}.challenge-card-head{gap:14px}.challenge-card-head img{background:var(--wash);border-radius:10px}.challenge-card h3{font-size:25px}.challenge-team-preview{gap:5px;padding:12px;background:var(--wash);border-radius:9px}.challenge-card .muted{font-size:11px}.challenge-card .badge{align-self:flex-start}
.notice{background:#e5f4ef;color:#0b5b50;border-left:4px solid #0b6f6a;border-bottom:3px solid #b3d5c8}.error{color:#b42318}
dialog{background:var(--paper);border:1px solid #51658a;border-top:6px solid var(--accent);border-bottom:7px solid var(--lip);border-radius:13px;box-shadow:0 24px 90px #0b122044;padding:26px}dialog::backdrop{background:#0b1220b8}.dialog-heading h2{font-size:29px}.dialog-heading .quiet{width:42px;min-width:42px;height:42px;padding:7px;background:var(--panel);color:#fff;border:1px solid #2e3e60;border-bottom:4px solid var(--bar);border-radius:8px}.dialog-heading .quiet:hover{background:#2e3e60}.dialog-actions{gap:10px}.icon-editor{border-style:solid;background:var(--wash)}.challenge-mon{background:#fff;border-bottom:4px solid var(--lip)}.challenge-mon legend{font-size:14px}.challenge-mon-tools button{font-size:11px}.reward{border-bottom:3px solid var(--lip)}
.login{background:var(--paper)}.login-card{max-width:480px;padding:40px}.login-card .brand{margin-bottom:50px}.login-card .brand img{background:#fff;border:1px solid var(--line);border-bottom:4px solid var(--lip);border-radius:10px}.login-card h1{font-size:clamp(34px,3.5vw,47px);letter-spacing:-1.6px}.login-card .eyebrow{display:inline-block;background:var(--accent);color:#fff;padding:9px 17px;border-radius:5px;transform:skew(-8deg);font-size:9px;letter-spacing:1px}.login-card .muted{font-size:13px}.login-art{background:var(--panel);color:#fff;border-left:6px solid var(--bar);padding-top:66px}.login-art h2{font-size:clamp(33px,3.5vw,47px);font-weight:800}.login-art>p{color:#b8c2d6}.login-art:before{border-radius:25px;background:#2e3e60;transform:rotate(-10deg);width:500px;height:530px;left:10%;bottom:-10px}.login-art:after{border-color:#51658a;border-radius:25px;transform:rotate(5deg);width:500px;height:530px;left:15%;bottom:15px}.professor-dot{border-radius:1px;transform:rotate(-12deg)}.professor-body{height:min(68svh,650px)}
footer{font-size:10px}footer img{border-radius:9px;background:#fff}footer strong{font-family:RibbonTitle,system-ui,sans-serif;font-size:14px}.progress-form{border-radius:12px}.progress-preview{border-left:3px solid var(--accent)}
/* Shared GTS cards adopt the panel palette without changing their renderer. */
.gts-card{border-color:var(--line);border-bottom:5px solid var(--lip);border-radius:12px}.gts-card-head{border-color:var(--line)}.gts-card-foot{background:var(--wash);border-color:var(--line)}.gts-eyebrow,.gts-number,.gts-species,.gts-level,.gts-card-foot time,.gts-details dt{color:var(--muted)}.gts-state{background:#e5f4ef;color:#0b6f6a;border-radius:5px}.gts-claimed{background:#fff1ce;color:#76500b}.gts-cancelled{background:var(--wash);color:var(--muted)}.gts-collected{background:#e5f4ef;color:#0b6f6a}.gts-sprite{background:radial-gradient(ellipse at center,#e5eaf2,transparent 70%)}.gts-arrow{color:var(--accent)}.gts-public-link{color:var(--accent-dark)}.gts-details{border-color:var(--line)}
@media(max-width:1050px){.tabs{grid-template-columns:repeat(7,minmax(120px,1fr));overflow-x:auto;scroll-snap-type:x proximity}.tabs button{scroll-snap-align:center}main{padding-inline:26px}.login-card{padding:30px}.login-art{padding:55px 30px}.login-art:before,.login-art:after{width:400px}}
@media(max-width:700px){header{min-height:78px}.page-heading{min-height:120px}.page-heading h1{font-size:27px;padding:10px 18px 12px;letter-spacing:-.8px}.professor-guide{width:74px;height:74px;border-bottom-width:4px}.page-heading .eyebrow{font-size:8px}.page-heading .muted{font-size:11px}.tabs{gap:6px;border-radius:9px;padding:7px;margin-bottom:24px;grid-template-columns:repeat(7,minmax(114px,1fr))}.tabs button{min-height:51px;font-size:10px;padding:9px 8px}.section-heading h2{font-size:23px}.section-heading .muted{font-size:11px}.section-heading>button{font-size:11px}main{padding:20px 16px}.item-card{min-height:145px;padding:14px 12px}.item-card strong{font-size:12px}.gift-card{padding:19px}.gift-card h3{font-size:21px}.login-card{padding:32px 26px}.login-card h1{font-size:39px}.login-art{display:none}.dialog-heading h2{font-size:25px}dialog{padding:20px 16px}.dialog-actions{gap:8px}.dialog-actions button{padding:11px 14px;font-size:12px}.challenge-card-head img{max-width:80px}.gts-card-head{padding:14px}.progress-form{padding:20px}.brand small{line-height:1.5}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}

.login-card .brand{display:flex;width:fit-content}.login-card .eyebrow{display:table}
