/* Dashboard + staff panel. Builds on the tokens and components in style.css (dark, cyan, RTL). */

/* ---------- page background: the landing page's city photo, same treatment (grey + teal + dark + grain) ---------- */
body.app{
  position:relative;isolation:isolate;
  /* panels become slightly see-through so the scene shows behind them */
  --ink-2:rgba(6,22,25,.8);
  --ink-3:rgba(10,34,38,.88);
}
body.app::before{
  content:"";position:fixed;inset:-24px;z-index:-2;pointer-events:none;
  background:url("../assets/features.jpg") 50% 60%/cover no-repeat;
  filter:grayscale(1) contrast(1.1) brightness(.55) blur(6px);
}
body.app::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.07'/%3E%3C/svg%3E"),
    radial-gradient(80% 55% at 50% 0%,rgba(0,198,168,.16),transparent 70%),
    linear-gradient(rgba(0,120,110,.10),rgba(0,120,110,.10)),
    linear-gradient(to bottom,rgba(3,13,15,.74),rgba(3,13,15,.9) 55%,rgba(3,13,15,.96));
}
body.app .panel,body.app .queue,body.app .stat,body.app .feed,body.app .draft-bar,body.app .flash,
body.app .action-tile,body.app .chip,body.app .danger-zone,body.app .search-box{backdrop-filter:blur(10px)}
body.app .console-nav{background:rgba(3,13,15,.55);backdrop-filter:blur(10px)}
body.app > footer{background:rgba(3,13,15,.7);backdrop-filter:blur(10px)}
/* sticky footer: the page is at least one screen tall and the content area stretches,
   so on short pages the footer sits at the bottom instead of floating mid-screen */
body.app:not(.console){display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
body.app:not(.console) > main{flex:1 0 auto}

.app-main{padding-block:clamp(28px,4vw,48px) clamp(48px,7vw,80px);min-height:60vh}
.app-main .wrap{display:flex;flex-direction:column;gap:18px}
.muted{color:var(--muted)}
.small{font-size:.85rem}
.pre{white-space:pre-wrap;overflow-wrap:anywhere}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.app h1,.app h2,.app h3{font-family:var(--f-display)}

/* panels */
.panel{background:var(--ink-2);border:1px solid var(--line);border-radius:18px;padding:clamp(18px,3vw,28px)}
.panel-title{font-size:1.1rem;font-weight:700;margin:0 0 14px}
.section-title{font-size:1rem;font-weight:800;letter-spacing:.02em;margin:14px 0 -4px;color:var(--fg)}
.page-head{display:grid;gap:10px}
.page-head h1{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800}
.back-link{color:var(--muted);text-decoration:none;font-family:var(--f-display);font-size:.9rem;display:inline-flex;gap:.5em;align-items:center}
.back-link:hover{color:var(--cyan)}
.row-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.hint{color:var(--muted);font-family:var(--f-display);font-size:.92rem;margin-top:12px}
.hint i{color:var(--cyan)}
.lead-text{font-family:var(--f-display);font-size:1.05rem;color:var(--fg);margin-bottom:6px}

/* profile card */
.profile{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.profile-main{display:flex;align-items:center;gap:18px;min-width:0}
.avatar{width:76px;height:76px;border-radius:50%;object-fit:cover;border:2px solid rgba(0,255,236,.35);flex:none}
.avatar-sm{width:56px;height:56px}
.avatar-fallback{display:grid;place-items:center;background:var(--ink-3);color:var(--cyan);font-size:1.8rem}
.profile-text{min-width:0;display:grid;gap:4px}
.profile-text h1{font-size:1.5rem;font-weight:800;overflow-wrap:anywhere}
.meta{display:flex;flex-wrap:wrap;gap:6px 26px;margin:8px 0 0}
.meta div{display:grid;gap:2px}
.meta dt{font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--muted);font-family:var(--f-display)}
.meta dd{margin:0;font-weight:600;font-size:.92rem}
.btn.is-disabled{opacity:.55;pointer-events:none}

/* status */
.status-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font-family:var(--f-display)}
.pill{display:inline-flex;align-items:center;gap:.4em;padding:.3em .9em;border-radius:99px;font:700 .82rem var(--f-display);border:1px solid}
.pill-pending{color:#ffd166;border-color:rgba(255,209,102,.4);background:rgba(255,209,102,.08)}
.pill-approved{color:var(--cyan);border-color:rgba(0,255,236,.4);background:var(--cyan-a)}
.pill-denied{color:#ff8a8a;border-color:rgba(255,138,138,.4);background:rgba(255,138,138,.08)}
.app-card{display:grid;gap:12px}
.player-message{display:grid;gap:6px;padding:14px 16px;border-radius:12px;background:var(--ink-3);border:1px solid var(--line);font-family:var(--f-display)}
.player-message strong{color:var(--cyan)}

/* chips + actions */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:.45em;padding:.4em .9em;border-radius:8px;background:var(--ink-2);border:1px solid var(--line);font:600 .85rem var(--f-display)}
.chip-accent{color:var(--cyan);border-color:rgba(0,255,236,.35)}
.actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.action-tile{display:flex;align-items:center;justify-content:center;gap:10px;padding:18px;border-radius:14px;background:var(--ink-2);border:1px solid var(--line);text-decoration:none;color:var(--fg);font:700 .95rem var(--f-display);transition:border-color .2s,color .2s}
.action-tile i{color:var(--cyan)}
.action-tile:hover{border-color:rgba(0,255,236,.4);color:var(--cyan)}

/* flash */
.flash{padding:14px 18px;border-radius:14px;font-family:var(--f-display);font-weight:500;border:1px solid}
.flash-success{background:var(--cyan-a);border-color:rgba(0,255,236,.35);color:var(--fg)}
.flash-error{background:rgba(255,138,138,.08);border-color:rgba(255,138,138,.4);color:#ffd0d0}
.flash-info{background:var(--ink-2);border-color:var(--line)}

/* danger zone */
.danger-zone{margin-top:20px;border:1px solid rgba(255,138,138,.3);border-radius:16px;padding:16px 20px;font-family:var(--f-display)}
.danger-zone summary{cursor:pointer;color:#ff8a8a;font-weight:700}
.danger-zone p{color:var(--muted);margin:12px 0}
.danger-form{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.danger-form input{width:120px}
.btn-danger{background:#ff8a8a;border-color:#ff8a8a;color:var(--ink);font-family:var(--f-display);font-weight:700}
.btn-danger:hover{background:#ff6b6b;border-color:#ff6b6b}

/* forms */
.app input[type=text],.app input[type=url],.app textarea{width:100%;background:var(--ink-3);border:1px solid var(--line);border-radius:10px;color:var(--fg);font:400 1rem var(--f-display);padding:12px 14px;transition:border-color .2s,box-shadow .2s}
.app textarea{resize:vertical;line-height:1.7}
.app input:focus,.app textarea:focus{outline:0;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,255,236,.12)}
/* application form + "my application": one centred reading column, like the landing page */
.apply-page{width:100%;max-width:760px;margin-inline:auto;display:flex;flex-direction:column;gap:18px}
.apply-page .page-head{text-align:center;justify-items:center;margin-bottom:6px}
.apply-page .page-head .status-row{justify-content:center}
.apply-form{display:grid;gap:20px}
.form-section{display:grid;gap:0;margin:0;min-width:0;padding:26px clamp(18px,4vw,32px)}
.form-section legend{float:right;width:100%;font:800 1.2rem var(--f-display);color:var(--cyan);padding:0 0 6px}
.form-section .field{padding-block:20px}
.form-section .field + .field{border-top:1px solid var(--line)}
.form-section .field:last-child{padding-bottom:4px}
/* two fields side by side count as ONE row: one divider above and below the row, none between its halves */
.form-section .field-row{padding-block:20px;align-items:start}
.form-section * + .field-row,.form-section .field-row + .field{border-top:1px solid var(--line)}
.form-section .field-row > .field{padding-block:0;border-top:0}
.field-row-error{grid-column:1/-1;margin:0}
.field-warning{margin:0;padding:10px 14px;border-radius:10px;background:rgba(255,209,102,.08);border:1px solid rgba(255,209,102,.3);
  color:#ffe2a3;font:400 .92rem/1.7 var(--f-display)}
.field-warning i,.field-warning strong{color:#ffd166}
.field{display:grid;gap:10px;min-width:0}
.field > .radio,.field > .radio-group{justify-self:start}
.field-label{font:700 1.05rem var(--f-display)}
.field-help{margin:0;color:#a9c4c1;font-family:var(--f-display);font-size:.95rem;line-height:1.75;max-width:62ch}
.field-help a{color:var(--cyan)}
.field-hint{color:var(--muted);font-size:.8rem;font-family:var(--f-display)}
.field-error{color:#ff8a8a;font:600 .9rem var(--f-display)}
.radio-group{display:flex;flex-wrap:wrap;gap:8px}
.radio{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:8px;border:1px solid var(--line);background:var(--ink-3);cursor:pointer;font-family:var(--f-display);font-weight:500;font-size:.92rem;line-height:1.4}
.radio:hover{border-color:#1d4a50}
.radio:has(input:checked){border-color:var(--cyan);background:var(--cyan-a)}
.radio input{accent-color:var(--cyan);width:15px;height:15px;margin:0}
.form-submit{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;padding-top:6px}
.btn-lg-app{padding:1em 2em;font-size:1.05rem}
.inline-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.inline-form input{max-width:260px}
.decision-form{display:grid;gap:16px}
.radio-approve:has(input:checked){border-color:var(--cyan)}
.radio-deny:has(input:checked){border-color:#ff8a8a;background:rgba(255,138,138,.08)}

/* answers (read-only) */
.answers{display:grid;gap:0;margin:0}
.answer{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:6px 20px;padding:14px 0;border-bottom:1px solid var(--line)}
.answer:last-child{border-bottom:0}
.answer dt{color:var(--muted);font:700 .9rem var(--f-display)}
.answer dd{margin:0;font-family:var(--f-display);min-width:0;overflow-wrap:anywhere}
.answer a{color:var(--cyan)}
.checks-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.checks-list .fa-circle-check{color:var(--cyan)}
.checks-list .fa-circle-xmark{color:#ff8a8a}
@media (max-width:640px){.answer{grid-template-columns:1fr}}

/* staff */
.staff-nav{display:flex;flex-wrap:wrap;gap:8px}
.staff-nav a,.filter{display:inline-flex;align-items:center;gap:.5em;padding:.5em 1em;border-radius:99px;border:1px solid var(--line);text-decoration:none;color:var(--muted);font:600 .9rem var(--f-display)}
.staff-nav a.is-active,.filter.is-active{color:var(--ink);background:var(--cyan);border-color:var(--cyan)}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filter .count{font-size:.75rem;padding:.1em .55em;border-radius:99px;background:rgba(255,255,255,.08)}
.table-panel{padding:0;overflow:hidden}
.table-panel .panel-title{padding:20px 22px 0}
.table-scroll{overflow-x:auto}
.table{width:100%;border-collapse:collapse;font-family:var(--f-display);font-size:.92rem}
.table th{text-align:start;color:var(--muted);font-weight:700;font-size:.8rem;padding:14px 16px;border-bottom:1px solid var(--line);white-space:nowrap}
.table td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.table tr:last-child td{border-bottom:0}
.empty{padding:28px;text-align:center}
.applicant{display:flex;gap:16px;align-items:center}
.applicant > div{display:grid;gap:6px}
.attempts{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-family:var(--f-display)}
.attempts a{color:var(--cyan)}

/* error page */
.error-panel{text-align:center;display:grid;justify-items:center;gap:12px;padding-block:48px}
.error-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--cyan-a);color:var(--cyan);font-size:1.6rem}
.error-panel h1{font-size:1.6rem;font-weight:800}


/* ---------- shared utilities ---------- */
.accent{color:var(--cyan)}
.warn{color:#ffd166}
.danger{color:#ff9b9b}
.center{text-align:center}
.btn-block{width:100%;justify-content:center}
.app select{width:100%;background:var(--ink-3);border:1px solid var(--line);border-radius:10px;color:var(--fg);font:400 1rem var(--f-display);padding:11px 12px}
.app select:focus{outline:0;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,255,236,.12)}
.app input[type=number],.app input[type=search]{width:100%;background:var(--ink-3);border:1px solid var(--line);border-radius:10px;color:var(--fg);font:400 1rem var(--f-display);padding:11px 12px}
.field.has-error input,.field.has-error textarea,.field.has-error select{border-color:rgba(255,138,138,.6)}
.app input:disabled,.app textarea:disabled,.app select:disabled{opacity:.7;cursor:not-allowed}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle}
.dot-accent{background:var(--cyan)}
.dot-warn{background:#ffd166}
.dot-admin{background:#c9c2ff}
.tag{display:inline-flex;align-items:center;gap:.4em;font:600 .78rem var(--f-display);color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:2px 9px;white-space:nowrap}
.link-danger{background:none;border:0;padding:0;color:#ff9b9b;font:600 .9rem var(--f-display);cursor:pointer;display:inline-flex;align-items:center;gap:.4em}
.link-danger:hover{color:#ff6b6b}

/* ---------- answers (player view + staff review) ---------- */
.answer-groups{display:grid;gap:16px}
.answer-group{display:grid;gap:4px}
.group-title{font:800 1rem var(--f-display);color:var(--cyan);margin:0 0 6px}
.qa{display:grid;gap:6px;padding:14px 0;border-bottom:1px solid var(--line)}
.qa:last-child{border-bottom:0;padding-bottom:0}
.qa-q{font:600 .9rem var(--f-display);color:var(--muted)}
.qa-a{font-family:var(--f-display);font-size:1.02rem;line-height:1.75;min-width:0;overflow-wrap:anywhere}
.qa-a p{margin:0}
.qa-a a{color:var(--cyan)}

/* =====================================================================
   Staff console: own top bar + sidebar, no website navigation
   ===================================================================== */
.console{min-height:100vh}
/* app shell: full-width top bar, sidebar attached to the right edge, page content centred in the space beside it */
.console-top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;padding-block:12px;border-bottom:1px solid var(--line);background:rgba(5,15,17,.92);backdrop-filter:blur(10px)}
.console-top-inner{padding-inline:clamp(16px,2vw,24px);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.console-brand{display:flex;align-items:center;gap:14px}
.console-brand .mark{font-size:1.05rem}
.console-badge{font:700 .75rem var(--f-display);color:var(--ink);background:var(--cyan);padding:4px 10px;border-radius:99px}
.console-user{display:flex;align-items:center;gap:10px}
.console-me{display:flex;align-items:center;gap:10px;padding:5px 14px 5px 6px;border:1px solid var(--line);border-radius:99px;background:var(--ink-2);text-decoration:none;color:var(--fg)}
.console-me:hover{border-color:rgba(0,255,236,.35)}
.console-me-text{display:grid;line-height:1.2;font-family:var(--f-display)}
.console-me-text strong{font-weight:600;font-size:.9rem}
.console-me-text small{color:var(--muted);font-size:.75rem}
.icon-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line);background:none;color:var(--muted);cursor:pointer;font-size:1rem}
.icon-btn:hover{color:#ff9b9b;border-color:rgba(255,138,138,.4)}

.console-body{display:flex;flex-wrap:wrap;align-items:flex-start}
.console-nav{flex:1 1 232px;max-width:260px;box-sizing:border-box;padding:22px 14px;border-inline-end:1px solid var(--line);display:flex;flex-direction:column;gap:4px;align-self:stretch;min-height:calc(100vh - 66px)}
@media (max-width:820px){.console-nav{max-width:none;min-height:0;border-inline-end:0;border-bottom:1px solid var(--line)}}

/* mobile: the sidebar folds into a burger menu that opens as a stacked list under the top bar (pure CSS) */
#console-nav-toggle:focus-visible ~ .console-top .burger{outline:2px solid var(--cyan);outline-offset:2px}
@media (max-width:820px){
  .console-nav{display:none;flex-basis:100%;padding:10px 14px 14px}
  #console-nav-toggle:checked ~ .console-body .console-nav{display:flex}
  #console-nav-toggle:checked ~ .console-top .burger .fa-bars{display:none}
  #console-nav-toggle:checked ~ .console-top .burger .fa-xmark{display:inline}
  .console-me-text{display:none}
  .console-badge{display:none}
}
.console-nav a{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;text-decoration:none;color:#b9d3d0;font:500 .95rem var(--f-display)}
.console-nav a i{width:1.2em;text-align:center}
.console-nav a span:first-of-type{flex-grow:1}
.console-nav a:hover{background:var(--ink-2);color:var(--fg)}
.console-nav a.is-active{background:rgba(0,255,236,.09);color:var(--cyan);font-weight:600}
.nav-count{font:700 .75rem var(--f-display);color:var(--ink);background:var(--cyan);border-radius:99px;padding:1px 8px}
.nav-tag{font-size:.7rem;color:var(--muted);border:1px solid var(--line);border-radius:99px;padding:1px 7px}
.nav-note{margin-top:18px;padding:14px;border-radius:12px;background:var(--ink-2);border:1px solid var(--line);font:400 .85rem var(--f-display);color:var(--muted)}
.nav-note strong{color:var(--fg)}
.console-main{flex:999 1 560px;min-width:0;box-sizing:border-box;padding:clamp(20px,3vw,32px) clamp(16px,3vw,40px) 56px;display:flex;flex-direction:column;gap:20px}
/* every page's content is one centred column inside the main area */
.console-main > *{width:100%;max-width:1200px;margin-inline:auto;box-sizing:border-box}
.console-main h1{font:800 clamp(1.6rem,2.6vw,2rem) var(--f-display);margin:0}
.console-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.console-head > div{display:grid;gap:6px}
.console-head p{margin:0;font-family:var(--f-display)}

/* avatars */
.av{border-radius:50%;object-fit:cover;flex:none;display:grid;place-items:center;font-family:var(--f-display);font-weight:800}
.av-sm{width:30px;height:30px;font-size:.8rem}
.av-md{width:40px;height:40px;font-size:.95rem}
.av-lg{width:56px;height:56px;font-size:1.3rem;border:2px solid rgba(0,255,236,.3)}
.av-c0{background:#0f3a3f;color:#00FFEC}
.av-c1{background:#1d3a2e;color:#9fe8c3}
.av-c2{background:#2c2a4a;color:#c9c2ff}
.av-c3{background:#3e2b1c;color:#ffc89a}
.av-c4{background:#123a44;color:#8fe3ff}
.av-c5{background:#3a1d2a;color:#ffb3cf}

/* search + stats + tabs */
.search-box{display:flex;align-items:center;gap:10px;min-width:min(320px,100%);padding:0 14px;border-radius:12px;background:var(--ink-2);border:1px solid var(--line);color:var(--muted)}
.search-box:focus-within{border-color:var(--cyan)}
.search-box input[type=search]{border:0;background:none;padding:12px 0;box-shadow:none}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.stat{padding:16px 18px;border-radius:14px;background:var(--ink-2);border:1px solid var(--line);display:grid;gap:4px;font-family:var(--f-display)}
.stat span{font-size:.85rem;color:var(--muted)}
.stat strong{font-size:1.7rem;font-weight:800}
.tabs{display:flex;gap:8px;flex-wrap:wrap}
.tab{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:99px;border:1px solid var(--line);color:#b9d3d0;text-decoration:none;font:600 .9rem var(--f-display)}
.tab:hover{border-color:rgba(0,255,236,.35);color:var(--fg)}
.tab.is-active{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
.tab-count{font-size:.8rem;opacity:.75}

/* queue */
.queue{border-radius:16px;border:1px solid var(--line);background:var(--ink-2);overflow:hidden}
.queue-head,.queue-row{display:grid;grid-template-columns:minmax(200px,2fr) minmax(120px,1.3fr) minmax(120px,1.2fr) 100px 140px 100px;gap:16px;align-items:center;padding:14px 20px}
.queue-head{padding-block:12px;font:700 .75rem var(--f-display);color:var(--muted);border-bottom:1px solid var(--line)}
.queue-row{border-bottom:1px solid var(--line);text-decoration:none;color:var(--fg);transition:background .15s}
.queue-row:last-child{border-bottom:0}
.queue-row:hover{background:#0a2226}
.who{display:flex;align-items:center;gap:12px;min-width:0}
.who-text{display:grid;min-width:0}
.who-text strong{font:600 .95rem var(--f-display);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who-text small{font-size:.75rem;color:var(--muted)}
.cell{font-family:var(--f-display);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wait{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;background:rgba(134,171,168,.1);color:#b9d3d0;font:600 .82rem var(--f-display)}
.wait.is-late{background:rgba(255,209,102,.1);color:#ffd166}
.row-cta{justify-self:end;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;border:1px solid #1d4a50;color:var(--cyan);font:700 .82rem var(--f-display)}
.row-cta.is-primary{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
.queue .empty{padding:36px;text-align:center}
@media (max-width:980px){
  .queue-head{display:none}
  .queue-row{grid-template-columns:1fr auto;gap:8px 12px}
  .queue-row .cell{grid-column:1/-1;white-space:normal}
  .queue-row .who{grid-column:1/2}
}

/* review screen */
.applicant-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.applicant-id{display:flex;align-items:center;gap:16px;min-width:0}
.applicant-name{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.applicant-name h1{font-size:1.5rem}
.applicant-meta{display:flex;gap:22px;flex-wrap:wrap;margin:0;font-family:var(--f-display)}
.applicant-meta div{display:grid;gap:2px}
.applicant-meta dt{font-size:.75rem;color:var(--muted)}
.applicant-meta dd{margin:0;font-weight:600;font-size:.92rem}
/* review page: centred, answers kept to a comfortable reading width */
.review-page{width:100%;max-width:1120px;margin-inline:auto;display:flex;flex-direction:column;gap:20px}
.review-grid{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;justify-content:center}
.review-answers{flex:1 1 520px;max-width:740px;min-width:0}
.review-side{flex:0 1 340px;min-width:0;display:flex;flex-direction:column;gap:16px}
.decision-form{display:grid;gap:14px;border-color:#1d4a50}
.decision-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.choice{position:relative;display:flex;align-items:center;justify-content:center;height:52px;border-radius:12px;border:1px solid var(--line);font:700 1rem var(--f-display);cursor:pointer}
.choice input{position:absolute;opacity:0;inset:0;cursor:pointer;margin:0}
.choice span{display:inline-flex;align-items:center;gap:8px}
.choice-approve{color:var(--cyan)}
.choice-deny{color:#ff9b9b}
.choice-approve:has(input:checked){border:2px solid var(--cyan);background:rgba(0,255,236,.1)}
.choice-deny:has(input:checked){border:2px solid #ff9b9b;background:rgba(255,138,138,.1)}
.choice:has(input:focus-visible){outline:2px solid var(--cyan);outline-offset:2px}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-family:var(--f-display)}
.checks li{display:flex;align-items:flex-start;gap:10px}
.checks li.ok i{color:var(--cyan)}
.checks li.warn i{color:#ffd166}
.attempts li{display:grid;gap:6px;padding:12px;border-radius:12px;background:var(--ink-3)}
.attempts li p{margin:0}
.notes{display:grid;gap:6px;margin:12px 0 0;font-family:var(--f-display)}
.notes dt{color:var(--muted);font-size:.85rem}
.notes dd{margin:0 0 8px}

/* team */
.role-explain{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.role-explain .panel{display:grid;gap:6px;font-family:var(--f-display)}
.role-explain p{margin:0;color:#b9d3d0;line-height:1.6}
.add-member{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;border-color:#1d4a50}
.add-member .field{flex:1 1 300px}
.add-member input{font-family:var(--f-mono);text-align:right}
.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.member{display:grid;gap:14px}
.member-id{display:flex;align-items:center;gap:12px;min-width:0}
.member-id > div{display:grid;gap:2px;min-width:0}
.member-id strong{font:700 1rem var(--f-display)}
.member-id small{font-size:.75rem}
.role-chip{padding:3px 10px;border-radius:99px;font:700 .78rem var(--f-display)}
.role-reviewer{background:rgba(0,255,236,.1);color:var(--cyan)}
.role-admin{background:rgba(201,194,255,.12);color:#c9c2ff}
.member-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line);font:400 .88rem var(--f-display);color:#b9d3d0}

/* activity feed */
.feed-day{display:grid;gap:10px}
.feed-label{margin:0;font:700 .85rem var(--f-display);color:var(--muted)}
.feed{border-radius:16px;background:var(--ink-2);border:1px solid var(--line);overflow:hidden}
.feed-item{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid #0e2a2f;flex-wrap:wrap;font-family:var(--f-display)}
.feed-item:last-child{border-bottom:0}
.feed-icon{width:36px;height:36px;flex:none;border-radius:50%;display:grid;place-items:center}
.kind-approve{background:rgba(0,255,236,.12);color:var(--cyan)}
.kind-deny{background:rgba(255,155,155,.12);color:#ff9b9b}
.kind-view{background:rgba(134,171,168,.1);color:var(--muted)}
.kind-role{background:rgba(201,194,255,.12);color:#c9c2ff}
.kind-form,.kind-other{background:rgba(255,209,102,.12);color:#ffd166}
.feed-text{flex:1 1 280px;min-width:0;line-height:1.5}
.feed-meta{font-size:.82rem;color:var(--muted)}
.feed-link{font:600 .82rem var(--f-display);color:var(--cyan);text-decoration:none}
.feed-time{font-size:.82rem;color:var(--muted);min-width:42px;text-align:left}
.panel.empty{text-align:center}

/* form editor */
.draft-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 20px;border-radius:16px;background:var(--ink-2);border:1px solid var(--line);font-family:var(--f-display)}
.draft-bar.is-draft{background:rgba(255,209,102,.07);border-color:rgba(255,209,102,.35)}
.draft-bar strong{display:flex;align-items:center;gap:10px;font-size:1rem}
.draft-bar p{margin:4px 0 0;color:#b9d3d0;font-size:.9rem}
.draft-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.editor-grid{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
.outline{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:14px}
.outline-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;font-family:var(--f-display)}
.outline-head h1{font-size:1.5rem}
.outline-group{padding:0;overflow:hidden}
.outline-group-head{display:flex;align-items:center;gap:10px;padding:10px 12px 10px 16px;background:#071c1f;border-bottom:1px solid var(--line)}
.outline-group-head.is-selected{box-shadow:inset -3px 0 0 var(--cyan)}
.outline-group-title{flex-grow:1;font:700 .9rem var(--f-display);color:var(--cyan);text-decoration:none}
.outline-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid #0e2a2f;font-family:var(--f-display)}
.outline-row.is-selected{background:rgba(0,255,236,.07);box-shadow:inset -3px 0 0 var(--cyan)}
.outline-link{flex-grow:1;min-width:0;display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--fg);padding:4px 0}
.outline-link i{color:var(--muted);width:1.1em;text-align:center}
.outline-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.outline-row.is-selected .outline-link,.outline-row.is-selected .outline-link i{color:var(--cyan)}
.move{display:flex;gap:2px}
.move form{display:inline}
.move button{width:26px;height:26px;display:grid;place-items:center;border:0;border-radius:6px;background:none;color:#3c6a6c;cursor:pointer;font-size:.7rem}
.move button:hover:not(:disabled){background:var(--ink-3);color:var(--cyan)}
.move button:disabled{opacity:.3;cursor:default}
.add-question,.add-section{display:flex;gap:8px;align-items:center;padding:10px 12px;flex-wrap:wrap}
.add-question select{width:auto;flex:1 1 160px;padding:8px 10px;font-size:.9rem}
.add-section{padding:0}
.add-section input{flex:1 1 200px}
.editor{flex:1 1 400px;min-width:0;display:flex;flex-direction:column;gap:14px}
.editor-form{display:grid;gap:16px;border-color:#1d4a50}
.editor-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.editor-head h2{margin:0;font:800 1.15rem var(--f-display)}
.lock-note{margin:0;padding:10px 12px;border-radius:10px;background:var(--ink-3);color:#b9d3d0;font:400 .9rem var(--f-display);line-height:1.6}
.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
fieldset.field{border:0;margin:0;padding:0;min-width:0}
fieldset.field legend{padding:0;margin-bottom:8px}
.type-choice{display:flex;flex-wrap:wrap;gap:8px}
.type-choice .radio{padding:8px 12px;font-size:.9rem}
.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:var(--ink-3);font-family:var(--f-display);cursor:pointer}
.toggle-row span{display:grid;gap:2px}
.toggle-row input{width:22px;height:22px;accent-color:var(--cyan)}
.delete-form{text-align:center}
.history ul{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:8px;font-family:var(--f-display)}
.history li{display:flex;justify-content:space-between;gap:10px;font-size:.9rem}
@media (max-width:560px){.field-row{grid-template-columns:1fr}}

/* =====================================================================
   Rules wiki (public /rules) + rules editor (/staff/rules)
   ===================================================================== */
.rules-page{display:flex;flex-wrap:wrap;gap:36px;align-items:flex-start}
.rules-toc{flex:1 1 250px;max-width:290px;display:flex;flex-direction:column;gap:12px;position:sticky;top:90px;max-height:calc(100vh - 110px);overflow:auto}
.rules-toc .search-box{min-width:0}
.toc{display:grid;gap:1px;padding:14px 10px;font-family:var(--f-display)}
.toc-label{padding:2px 10px 8px;font-size:.75rem;font-weight:700;color:var(--muted)}
.toc a{display:flex;gap:10px;align-items:baseline;padding:7px 10px;border-radius:8px;text-decoration:none}
.toc a:hover{background:var(--ink-3)}
.toc-cat{color:var(--fg);font-weight:700;font-size:.92rem;margin-top:4px}
.toc-cat .toc-num{color:var(--cyan);min-width:16px}
.toc-rule{color:var(--muted);font-size:.84rem;margin-inline-start:16px}
.toc-rule .toc-num{min-width:28px;font-size:.78rem}
.toc-rule:hover{color:var(--fg)}
.rules-main{flex:999 1 560px;min-width:0;max-width:780px;display:flex;flex-direction:column;gap:24px}
.rules-head{display:grid;gap:10px}
.rules-head h1{margin:0;font:800 clamp(1.9rem,3.4vw,2.5rem) var(--f-display)}
.rules-head p{margin:0;font:400 1.05rem/1.75 var(--f-display);color:#b9d3d0;max-width:62ch}
.crumbs{font:400 .85rem var(--f-display);color:var(--muted)}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--cyan)}
.rules-meta{display:flex;gap:18px;flex-wrap:wrap;font:400 .85rem var(--f-display);color:var(--muted)}
.rules-changes{display:grid;gap:8px;border-color:rgba(255,209,102,.3);font-family:var(--f-display)}
.rules-changes strong{color:#ffd166}
.rules-changes ul{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:.92rem;color:#b9d3d0}
.rules-changes a{color:var(--cyan)}
.rules-cat{display:grid;gap:12px;scroll-margin-top:90px}
.rules-cat h2{margin:6px 0 0;display:flex;align-items:center;gap:12px;font:800 1.45rem var(--f-display)}
.cat-num{width:36px;height:36px;border-radius:10px;background:var(--cyan-a);color:var(--cyan);display:grid;place-items:center;font-size:1rem}
.rule{display:grid;gap:10px;scroll-margin-top:90px}
.rule:target{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,255,236,.12)}
.rule.is-updated{border-color:rgba(0,255,236,.3)}
.rule-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.rule-head h3{margin:0;display:flex;align-items:baseline;gap:12px;font:700 1.12rem var(--f-display)}
.rule-num{font-size:.85rem;font-weight:500;color:var(--cyan);text-decoration:none}
.rule-num:hover{text-decoration:underline}
.rule-badge{font:600 .75rem var(--f-display);color:#ffd166;border:1px solid rgba(255,209,102,.35);border-radius:99px;padding:2px 10px}
.rule-body{display:grid;gap:10px;font-family:var(--f-display);font-size:1rem;line-height:1.8;color:#d3e9e6;overflow-wrap:anywhere}
.rule-body p{margin:0}
.rule-body a{color:var(--cyan)}
.rule-list{margin:0;padding-inline-start:20px;display:grid;gap:4px}
.rule-example{border-radius:10px;background:var(--ink-3);padding:12px 14px;display:grid;gap:4px;color:#b9d3d0;font-size:.95rem}
.rule-example-label{color:var(--cyan);font-size:.85rem}
.rule-ref{font-family:var(--f-mono);font-size:.88em;text-decoration:none;border-bottom:1px dashed rgba(0,255,236,.5)}
@media (max-width:860px){
  .rules-toc{position:static;max-width:none;max-height:none}
}

/* legal pages (terms / privacy) reuse the rules layout */
.doc-body{gap:14px;padding:clamp(20px,4vw,34px)}
.doc-h{margin:14px 0 2px;font:800 1.2rem var(--f-display);color:var(--fg);scroll-margin-top:90px}
.doc-h:first-child{margin-top:0}
.doc-toc{margin-inline-start:0}
.page-editor{flex:2 1 520px}
.page-editor textarea{font-size:.95rem;line-height:1.75}

/* rules editor */
.format-help{display:flex;flex-wrap:wrap;gap:8px;font:400 .82rem var(--f-display);color:#b9d3d0}
.format-help span{padding:4px 10px;border-radius:8px;background:var(--ink-3)}
.format-help code{font-family:var(--f-mono);color:var(--cyan);direction:ltr;unicode-bidi:isolate}
.rule-n{min-width:30px;font-size:.8rem}
.delete-rule{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-color:rgba(255,138,138,.25)}
.history-actions{display:inline-flex;align-items:center;gap:12px}
.history-actions form{display:inline}
.link-accent{background:none;border:0;padding:0;color:var(--cyan);font:600 .88rem var(--f-display);cursor:pointer}
.link-accent:hover{text-decoration:underline}
.kind-rules{background:rgba(143,227,255,.12);color:#8fe3ff}

/* =====================================================================
   Roles, appeals, players (staff)
   ===================================================================== */
.dot-manager{background:#8fe3ff}
.role-player{background:rgba(134,171,168,.12);color:#b9d3d0}
.role-manager{background:rgba(143,227,255,.12);color:#8fe3ff}
.nav-section{margin:16px 14px 4px;font:700 .72rem var(--f-display);color:var(--muted);letter-spacing:.04em}
.profile-link{display:inline-flex;align-items:center;gap:6px;margin-top:4px;color:var(--cyan);font:600 .85rem var(--f-display);text-decoration:none}
.profile-link:hover{text-decoration:underline}
.kind-ban{background:rgba(255,155,155,.12);color:#ff9b9b}
.kind-restore{background:rgba(0,255,236,.12);color:var(--cyan)}
.kind-session{background:rgba(201,194,255,.12);color:#c9c2ff}
.add-member-role{flex:0 1 160px}
.access-card{display:grid;gap:4px}
.access-card p{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.access-card.is-ok{border-color:rgba(0,255,236,.3)}
.access-card.is-revoked{border-color:rgba(255,138,138,.4)}
.player-history{display:flex;flex-direction:column;gap:16px}
.danger-form-panel{border-color:rgba(255,138,138,.3)}
.admin-delete{border-color:rgba(255,138,138,.25);padding-block:14px}
.admin-delete summary{cursor:pointer;display:flex;align-items:center;gap:8px;color:#ff9b9b;font:700 .92rem var(--f-display)}
.admin-delete summary .nav-tag{margin-inline-start:auto}
.admin-delete form{display:grid;gap:12px;margin-top:12px}
.admin-delete p{margin:0}
.appeal-reason{margin:0;padding:12px 14px;border-radius:10px;background:var(--ink-3);border-inline-start:3px solid #ff9b9b;font-family:var(--f-display)}
@media (min-width:981px){
  .queue-appeals .queue-head,.queue-appeals .queue-row{grid-template-columns:minmax(200px,2fr) minmax(150px,1.2fr) minmax(110px,1fr) 140px 100px}
  .queue-players .queue-head,.queue-players .queue-row{grid-template-columns:minmax(220px,2fr) 110px 130px minmax(130px,1fr) 100px}
}

/* =====================================================================
   Player dashboard
   ===================================================================== */
.dash{width:100%;max-width:1000px;margin-inline:auto;display:flex;flex-direction:column;gap:20px}

/* profile header: centred, the avatar wears a brand-coloured ring */
.dash-hero{display:grid;justify-items:center;gap:12px;text-align:center;padding-block:8px 4px}
.dash-avatar{position:relative;width:112px;height:112px;padding:4px;border-radius:50%;
  background:conic-gradient(from 210deg,var(--cyan),var(--teal),rgba(0,198,168,.15),var(--cyan))}
.dash-avatar img,.dash-avatar-fallback{width:104px;height:104px;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:var(--ink);border:3px solid var(--ink);color:var(--cyan);font-size:2.2rem}
.dash-avatar-badge{position:absolute;bottom:4px;inset-inline-start:4px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--cyan);color:var(--ink);border:3px solid var(--ink);font-size:.8rem}
.dash-hero h1{margin:0;font:800 clamp(1.8rem,4vw,2.5rem)/1.15 var(--f-display);overflow-wrap:anywhere;text-wrap:balance}
.dash-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.dash-chip{display:inline-flex;align-items:center;gap:.45em;padding:.35em .95em;border-radius:99px;border:1px solid var(--line);background:var(--ink-2);font:600 .85rem var(--f-display);color:#b9d3d0;backdrop-filter:blur(10px)}
.dash-chip i{color:var(--muted)}
.dash-chip-role{border-color:transparent}
.dash-chip-ok{color:var(--cyan);border-color:rgba(0,255,236,.35)}
.dash-chip-ok i{color:var(--cyan)}
.dash-chip-bad{color:#ff9b9b;border-color:rgba(255,138,138,.4)}
.dash-chip-bad i{color:#ff9b9b}

/* journey: four steps joined by a line that fills in as the player progresses */
.dash-journey{padding-block:26px 22px}
.journey{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.journey .step{position:relative;display:grid;justify-items:center;gap:4px;text-align:center;font-family:var(--f-display)}
.journey .step:not(:last-child)::after{content:"";position:absolute;top:22px;height:2px;border-radius:2px;
  inset-inline-start:calc(50% + 30px);inset-inline-end:calc(-50% + 30px);background:var(--line)}
.journey .step.is-done:not(:last-child)::after{background:linear-gradient(to left,var(--cyan),var(--teal))}
.step-dot{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;margin-bottom:6px;
  background:var(--ink-3);border:2px solid var(--line);color:var(--muted);font:700 1rem var(--f-display)}
.journey strong{font-weight:700;font-size:.98rem}
.journey small{font-size:.82rem;color:var(--muted);line-height:1.4}
.step.is-done .step-dot{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
.step.is-current .step-dot{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 0 6px rgba(0,255,236,.1);animation:dash-pulse 2.4s ease-in-out infinite}
.step.is-current small{color:var(--cyan)}
.step.is-failed .step-dot{border-color:#ff9b9b;color:#ff9b9b;background:rgba(255,138,138,.1)}
.step.is-failed small{color:#ff9b9b}
@keyframes dash-pulse{50%{box-shadow:0 0 0 10px rgba(0,255,236,.04)}}
@media (prefers-reduced-motion:reduce){.step.is-current .step-dot{animation:none}}
@media (max-width:600px){
  .journey{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px}
  .journey .step::after{display:none}
}

/* cards */
.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:20px}
.dash-card{display:flex;flex-direction:column;gap:14px;min-width:0}
.dash-card-head{display:flex;align-items:center;gap:12px}
.dash-card-head h2{margin:0;flex-grow:1;font:800 1.15rem var(--f-display)}
.dash-card-icon{width:42px;height:42px;flex:none;border-radius:12px;display:grid;place-items:center;background:var(--cyan-a);color:var(--cyan);font-size:1.05rem}
.dash-lead{margin:0;font-family:var(--f-display);color:#c9dfdc;line-height:1.75}
.dash-lead a,.dash-list a{color:var(--cyan)}
.dash-message{display:grid;gap:6px;padding:14px 16px;border-radius:12px;background:var(--ink-3);border-inline-start:3px solid var(--cyan);font-family:var(--f-display)}
.dash-message strong{color:var(--cyan);font-size:.9rem}
.dash-message p{margin:0}
.dash-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:0}
.dash-facts div{display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:var(--ink-3)}
.dash-facts dt{font:600 .75rem var(--f-display);color:var(--muted)}
.dash-facts dd{margin:0;font:600 .92rem var(--f-display);overflow-wrap:anywhere}
.dash-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:4px}
.dash-actions:empty{display:none}
.dash-card .hint{margin:0}
.dash-list{list-style:none;margin:0;padding:0;display:grid;gap:14px;font-family:var(--f-display)}
.dash-list li{display:flex;gap:12px;align-items:baseline;line-height:1.65;color:#c9dfdc}
.dash-list i{width:1.2em;flex:none;text-align:center;color:var(--cyan)}

/* revoked banner */
.dash-alert{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px;padding:20px 22px;border-radius:18px;
  background:rgba(60,14,18,.55);border:1px solid rgba(255,138,138,.45);backdrop-filter:blur(10px)}
.dash-alert-icon{width:50px;height:50px;flex:none;border-radius:50%;display:grid;place-items:center;background:rgba(255,138,138,.14);color:#ff9b9b;font-size:1.3rem}
.dash-alert-body{flex:1 1 300px;min-width:0;display:grid;gap:4px}
.dash-alert h2{margin:0;font:800 1.2rem var(--f-display);color:#ffd0d0}
.dash-alert p{margin:0;font-family:var(--f-display)}
.dash-quote{margin-top:6px !important;padding:10px 14px;border-radius:10px;background:rgba(0,0,0,.25);border-inline-start:3px solid #ff9b9b}

/* quick links */
.dash-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.dash-links a{display:grid;justify-items:center;gap:8px;padding:18px 12px;border-radius:16px;border:1px solid var(--line);background:var(--ink-2);
  text-decoration:none;color:var(--fg);font:700 .95rem var(--f-display);backdrop-filter:blur(10px);transition:border-color .2s,transform .2s,color .2s}
.dash-links i{font-size:1.35rem;color:var(--cyan)}
.dash-links a.is-staff i{color:#c9c2ff}
.dash-links a:hover{border-color:rgba(0,255,236,.4);transform:translateY(-2px)}
.dash-links a:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.dash-links a:hover{transform:none}}

/* account */
.dash-account{display:flex;flex-direction:column;gap:18px}
.dash-ids{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:8px;margin:0}
.dash-ids div{display:grid;gap:2px;padding:10px 14px;border-radius:12px;background:var(--ink-3);min-width:0}
.dash-ids dt{font:600 .75rem var(--f-display);color:var(--muted)}
.dash-ids dd{margin:0;font-size:.92rem;overflow-wrap:anywhere}
.dash-sessions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;padding-top:16px;border-top:1px solid var(--line);font-family:var(--f-display)}
.dash-sessions > div{flex:1 1 280px;display:grid;gap:4px}
.dash-sessions p{margin:0;font-size:.9rem}
.dash-account .danger-zone{margin-top:0}

.side-actions{display:grid;gap:12px;justify-items:start}
.side-actions p{margin:0}

/* staff tools */
.claim-banner{display:flex;align-items:baseline;gap:8px;border-color:rgba(255,209,102,.4);background:rgba(255,209,102,.07)}
.claim-banner i{color:#ffd166}
.wait.in-review{background:rgba(201,194,255,.12);color:#c9c2ff}
.staff-notes li{gap:4px}
.staff-notes form{display:inline}
.note-form{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:12px}
.note-form textarea{flex:1 1 260px}

/* support tickets */
.ticket-list{display:grid;gap:10px}
.ticket-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:16px 18px;text-decoration:none;color:var(--fg);transition:border-color .2s}
.ticket-row:hover{border-color:rgba(0,255,236,.35)}
.ticket-row.status-answered{border-color:rgba(0,255,236,.4)}
.ticket-row-main{display:grid;gap:2px;min-width:0;font-family:var(--f-display)}
.ticket-row-main strong{font-weight:700;overflow-wrap:anywhere}
.ticket-status{display:inline-flex;align-items:center;padding:.25em .85em;border-radius:99px;font:700 .8rem var(--f-display);border:1px solid}
.ticket-status-open{color:#ffd166;border-color:rgba(255,209,102,.4);background:rgba(255,209,102,.08)}
.ticket-status-answered{color:var(--cyan);border-color:rgba(0,255,236,.4);background:var(--cyan-a)}
.ticket-status-closed{color:var(--muted);border-color:var(--line)}
.ticket-thread{display:flex;flex-direction:column;gap:12px}
.ticket-msg{display:grid;gap:8px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--ink-2);backdrop-filter:blur(10px);max-width:92%;scroll-margin-top:90px}
.ticket-msg header{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font:400 .85rem var(--f-display)}
.ticket-msg.from-player{align-self:flex-start}
.ticket-msg.from-staff{align-self:flex-end;border-color:rgba(0,255,236,.3)}
.ticket-msg.from-staff header strong{color:var(--cyan)}
.ticket-msg.is-internal{border-style:dashed;border-color:rgba(255,209,102,.45);background:rgba(255,209,102,.06)}
.ticket-msg.is-internal header strong{color:#ffd166}
.ticket-msg-body{font-family:var(--f-display);line-height:1.75;overflow-wrap:anywhere}
.ticket-msg-body a{color:var(--cyan)}
.ticket-msg.from-other{align-self:flex-start;border-color:rgba(201,194,255,.35)}
.ticket-msg.from-other header strong{color:#c9c2ff}
.report-card{display:grid;gap:16px;border-color:rgba(255,209,102,.3)}
.report-card-title{margin:0;display:flex;align-items:center;gap:8px;font:800 1.05rem var(--f-display)}
.report-card-title i{color:#ffd166}
.report-desc{display:grid;gap:6px;padding:14px 16px;border-radius:12px;background:var(--ink-3)}
.report-desc-body{font-family:var(--f-display);font-size:1rem;line-height:1.75;overflow-wrap:anywhere}
.report-desc-body a{color:var(--cyan)}
.report-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:8px;margin:0}
.report-facts div{display:grid;gap:2px;padding:10px 12px;border-radius:12px;background:var(--ink-3);min-width:0}
.report-facts dt{font:600 .75rem var(--f-display);color:var(--muted)}
.report-facts dd{margin:0;font:600 .95rem var(--f-display);overflow-wrap:anywhere}
.report-evidence{display:grid;gap:6px}
.report-evidence ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-family:var(--f-display)}
.report-evidence a{color:var(--cyan);text-decoration:none;overflow-wrap:anywhere}
.report-evidence a:hover{text-decoration:underline}
.participants{display:grid;gap:10px}
.participants .panel-title{margin:0}
.participants p{margin:0}
.participant-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-family:var(--f-display)}
.participant-list li{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:10px;background:var(--ink-3)}
.participant-list a{flex:1 1 auto;color:var(--fg);text-decoration:none;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.participant-list form{display:inline}
.participant-add{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.app .participant-add input{flex:1 1 150px;font-family:var(--f-mono);text-align:left}
.ticket-reply{display:grid;gap:12px;justify-items:start}
.ticket-reply .field{width:100%}
.ticket-form{display:grid;gap:4px}
.dash-links a{position:relative}
.dash-badge{position:absolute;top:10px;inset-inline-start:10px;min-width:22px;height:22px;padding:0 6px;border-radius:99px;display:grid;place-items:center;background:var(--cyan);color:var(--ink);font:800 .75rem var(--f-display)}
.dash-ticket-flash{display:flex;gap:10px;align-items:center;text-decoration:none}
@media (min-width:981px){
  .queue-tickets .queue-head,.queue-tickets .queue-row{grid-template-columns:minmax(190px,1.5fr) minmax(160px,2fr) minmax(110px,1fr) 110px 130px}
  .queue-reports .queue-head,.queue-reports .queue-row{grid-template-columns:minmax(180px,1.3fr) minmax(150px,1.4fr) minmax(140px,1.2fr) 70px 100px 130px}
}
@media (max-width:980px){
  .queue-row .queue-status{grid-column:2;grid-row:1;justify-self:end}
}
.queue-status{min-width:0}

/* staff: tickets vs reports */
.queue-title{display:flex;align-items:center;gap:12px}
.queue-title i{font-size:.8em;color:var(--cyan)}
.queue-title i.is-report{color:#ffd166}
.nav-count.is-report{background:#ffd166}
.report-target{font-weight:700}
.report-target i{color:#ffd166;margin-inline-end:4px;font-size:.85em}
.evidence-count{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:8px;background:var(--ink-3);font:700 .82rem var(--f-display)}
.evidence-count i{color:var(--muted);font-size:.85em}
.ov-reports .ov-list-head h2 i{color:#ffd166;font-size:.85em;margin-inline-end:4px}

/* sign-in page (/login) */
.signin-page{max-width:560px;align-items:center}
.signin-card{display:grid;justify-items:center;gap:16px;padding:clamp(24px,5vw,40px);text-align:center;width:100%;box-sizing:border-box}
.signin-icon{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:var(--cyan-a);color:var(--cyan);font-size:2rem}
.signin-card h1{margin:0;font:800 clamp(1.5rem,4vw,2rem) var(--f-display);text-wrap:balance}
.signin-lead{margin:0;font-family:var(--f-display);font-size:1.02rem;line-height:1.7;color:#b9d3d0;max-width:42ch}
.signin-btn{font-size:1.05rem;padding:14px 28px}
.signin-steps{margin:6px 0 0;padding:16px 18px 16px 18px;padding-inline-start:36px;display:grid;gap:10px;width:100%;box-sizing:border-box;text-align:start;border-radius:14px;background:var(--ink-3);font:400 .92rem/1.65 var(--f-display);color:#b9d3d0}
.signin-steps li::marker{color:var(--cyan);font-weight:800}
.signin-steps strong{color:var(--fg);font-weight:700}
.signin-steps .mono{color:var(--cyan);font-family:var(--f-mono);font-size:.88em}
.signin-legal{margin:0;font:400 .82rem var(--f-display)}
.signin-legal a{color:var(--cyan)}

/* player support page (/support) */
.sup-page{gap:20px}
.sup-head{display:grid;gap:6px;text-align:center}
.sup-head h1{margin:0;font:800 clamp(1.7rem,4vw,2.3rem) var(--f-display)}
.sup-head p{margin:0;font-family:var(--f-display)}
.sup-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px}
.sup-action{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 16px;align-items:start;padding:20px;text-decoration:none;color:var(--fg);font-family:var(--f-display);transition:border-color .2s,transform .2s}
.sup-action:hover{transform:translateY(-2px)}
.sup-action:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.sup-action > *:not(.sup-action-icon){grid-column:2}
.sup-action-icon{grid-row:1 / span 3;width:52px;height:52px;border-radius:15px;display:grid;place-items:center;font-size:1.35rem}
.sup-action strong{font-size:1.15rem;font-weight:800}
.sup-action .muted{font-size:.92rem;line-height:1.6}
.sup-go{margin-top:8px;display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.9rem}
.sup-action.is-help .sup-action-icon{background:var(--cyan-a);color:var(--cyan)}
.sup-action.is-help .sup-go{color:var(--cyan)}
.sup-action.is-help:hover{border-color:rgba(0,255,236,.45)}
.sup-action.is-report .sup-action-icon{background:rgba(255,209,102,.1);color:#ffd166}
.sup-action.is-report .sup-go{color:#ffd166}
.sup-action.is-report:hover{border-color:rgba(255,209,102,.5)}
.sup-full{grid-column:1/-1;display:flex;gap:12px;align-items:flex-start;padding:16px 18px;font-family:var(--f-display);line-height:1.6}
.sup-full i{color:var(--cyan);margin-top:.3em}
.sup-limit{margin:-8px 0 0;text-align:center;font:400 .84rem var(--f-display)}
.sup-banner{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:14px;background:var(--cyan-a);border:1px solid rgba(0,255,236,.35);color:var(--fg);text-decoration:none;font:500 .95rem var(--f-display)}
.sup-banner:hover{border-color:var(--cyan)}
.sup-banner > i{color:var(--cyan)}
.sup-banner > span{flex:1;min-width:0;overflow-wrap:anywhere}
.sup-banner strong{color:var(--cyan)}
.sup-group{display:grid;gap:10px}
.sup-group-head{margin:0;display:flex;align-items:center;gap:10px;font:700 1.05rem var(--f-display)}
.sup-count{font:700 .75rem var(--f-display);color:var(--muted);background:var(--ink-3);border-radius:99px;padding:2px 9px}
.sup-rows{display:grid;gap:8px}
.sup-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;text-decoration:none;color:var(--fg);transition:border-color .2s}
.sup-row:hover{border-color:rgba(0,255,236,.35)}
.sup-row.is-new{border-color:rgba(0,255,236,.45);background:linear-gradient(270deg,rgba(0,255,236,.06),transparent 60%),var(--ink-2)}
.sup-row.is-closed{opacity:.7}
.sup-tile{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--ink-3);color:var(--muted)}
.sup-row.is-report .sup-tile{background:rgba(255,209,102,.1);color:#ffd166}
.sup-row-main{display:grid;gap:3px;min-width:0;font-family:var(--f-display)}
.sup-row-main strong{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sup-row-main small{color:var(--muted);font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sup-tag{display:inline-flex;align-items:center;gap:5px;margin-inline-start:6px;padding:1px 8px;border-radius:99px;background:rgba(201,194,255,.12);color:#c9c2ff;font:600 .75rem var(--f-display);vertical-align:middle}
.sup-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin-inline-end:2px}
.sup-empty{margin:0;padding:22px;text-align:center;border:1px dashed var(--line);border-radius:14px;font-family:var(--f-display)}
.sup-closed summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:8px;padding:6px 2px;color:var(--muted);font:600 .92rem var(--f-display)}
.sup-closed summary::-webkit-details-marker{display:none}
.sup-closed summary i{transition:transform .2s;font-size:.8em}
.sup-closed[open] summary i{transform:rotate(-90deg)}
.sup-closed .sup-rows{margin-top:8px}
@media (max-width:520px){
  .sup-row{grid-template-columns:auto minmax(0,1fr)}
  .sup-row .ticket-status{grid-column:2;justify-self:start}
}
@media (prefers-reduced-motion:reduce){.sup-action,.sup-action:hover{transition:none;transform:none}}

/* 2-step verification */
.mfa-page{max-width:620px}
.mfa-icon{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;background:var(--cyan-a);color:var(--cyan);font-size:1.5rem}
.mfa-steps{display:grid;gap:18px}
.mfa-list{margin:0;padding-inline-start:22px;display:grid;gap:22px;font-family:var(--f-display)}
.mfa-list li{display:grid;gap:8px;justify-items:start}
.mfa-list li::marker{color:var(--cyan);font-weight:800}
.mfa-qr{width:220px;height:220px;max-width:100%;padding:10px;border-radius:14px;background:#fff}
.mfa-secret{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px;border-radius:10px;background:var(--ink-3);font-size:1.05rem;letter-spacing:.06em;user-select:all}
.mfa-link{color:var(--cyan);font-size:.9rem}
.mfa-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.mfa-form-center{justify-content:center}
.mfa-form .field{width:100%}
.mfa-inline{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.app input.mfa-code{width:11ch;font:600 1.5rem var(--f-mono);letter-spacing:.25em;text-align:center;padding:10px 12px}
.app input.mfa-code-sm{width:16ch;font:500 1rem var(--f-mono);text-align:center}
.mfa-codes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.mfa-codes li{padding:10px;border-radius:10px;background:var(--ink-3);text-align:center;font-size:1.05rem;letter-spacing:.05em;user-select:all}
.mfa-help summary{cursor:pointer;color:var(--muted);font:600 .9rem var(--f-display);text-align:center}
.mfa-help p{margin:10px 0 0;font-family:var(--f-display);font-size:.9rem}

/* =====================================================================
   Staff overview (/staff)
   ===================================================================== */
.ov-head h1{font-size:clamp(1.6rem,2.8vw,2.1rem)}
.ov-attn{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:14px}
.attn-card{position:relative;display:grid;gap:2px;padding:18px 20px;border-radius:18px;background:var(--ink-2);border:1px solid var(--line);
  backdrop-filter:blur(10px);text-decoration:none;color:var(--fg);font-family:var(--f-display);transition:border-color .2s,transform .2s}
.attn-card:hover{border-color:rgba(0,255,236,.4);transform:translateY(-2px)}
.attn-card:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.attn-icon{position:absolute;top:16px;inset-inline-end:16px;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--ink-3);color:var(--muted)}
.attn-num{font:800 2.4rem/1.1 var(--f-display);color:var(--muted)}
.attn-label{font-weight:700;font-size:1rem}
.attn-card small{font-size:.82rem;color:var(--muted)}
.attn-card.is-busy{border-color:rgba(0,255,236,.3)}
.attn-card.is-busy .attn-num{color:var(--cyan)}
.attn-card.is-busy .attn-icon{background:var(--cyan-a);color:var(--cyan)}
.attn-card.is-late{border-color:rgba(255,209,102,.45);background:rgba(255,209,102,.06)}
.attn-card.is-late .attn-num,.attn-card.is-late small{color:#ffd166}
.attn-card.is-late .attn-icon{background:rgba(255,209,102,.12);color:#ffd166}
@media (prefers-reduced-motion:reduce){.attn-card:hover{transform:none}}
.ov-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:16px}
.ov-list{display:grid;gap:4px;align-content:start}
.ov-list-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
.ov-list-head h2{margin:0;font:800 1.1rem var(--f-display)}
.ov-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;text-decoration:none;color:var(--fg);font-family:var(--f-display)}
.ov-row:hover{background:var(--ink-3)}
.ov-row-text{flex:1 1 auto;display:grid;min-width:0}
.ov-row-text strong{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ov-row-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ov-empty{margin:0;padding:18px 12px;text-align:center;font-family:var(--f-display)}
.ov-empty i{color:var(--cyan);margin-inline-end:6px}
.ov-week{display:grid;gap:10px}
.ov-week-title{margin:0;font:700 .85rem var(--f-display);color:var(--muted)}
.ov-feed{border-radius:14px;overflow:hidden;border:1px solid #0e2a2f}
.ov-feed .feed-item{padding:11px 14px}

/* =====================================================================
   Member dashboard (whitelisted players)
   ===================================================================== */
.member-hero{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 28px;padding:24px clamp(18px,3vw,30px);
  background:linear-gradient(120deg,rgba(0,198,168,.14),rgba(6,22,25,.8) 55%);border-color:rgba(0,255,236,.25)}
.member-id{display:flex;align-items:center;gap:18px;min-width:0}
.member-avatar{width:92px;height:92px;padding:4px;flex:none}
.member-avatar img,.member-avatar .dash-avatar-fallback{width:84px;height:84px}
.member-avatar .dash-avatar-badge{width:26px;height:26px;bottom:2px;inset-inline-start:2px}
.member-id-text{display:grid;gap:4px;min-width:0}
.member-welcome{font:600 .85rem var(--f-display);color:var(--cyan)}
.member-id-text h1{margin:0;font:800 clamp(1.6rem,3.4vw,2.2rem)/1.15 var(--f-display);overflow-wrap:anywhere}
.member-chips{justify-content:flex-start;margin-top:4px}
.member-server{display:grid;gap:6px;justify-items:start;padding:14px 18px;border-radius:14px;background:rgba(3,13,15,.45);border:1px solid var(--line);font-family:var(--f-display);min-width:220px}
.member-server p{margin:0;font-size:.85rem}
.member-server-state{display:inline-flex;align-items:center;gap:8px;font-weight:700}
.server-dot{width:10px;height:10px;border-radius:50%;background:#ffd166;box-shadow:0 0 0 4px rgba(255,209,102,.15)}
.member-server-state.is-open .server-dot{background:#3ba55c;box-shadow:0 0 0 4px rgba(59,165,92,.2)}
.member-congrats{display:flex;align-items:center;gap:16px;padding:18px 22px;border-radius:18px;border:1px solid rgba(0,255,236,.4);
  background:linear-gradient(270deg,rgba(0,255,236,.12),rgba(0,198,168,.04));font-family:var(--f-display)}
.member-congrats-icon{flex:none;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--cyan-a);color:var(--cyan);font-size:1.3rem}
.member-congrats strong{display:block;font-size:1.15rem;font-weight:800;color:var(--fg)}
.member-congrats p{margin:4px 0 0;color:#b9d3d0;line-height:1.6}
.member-status{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:12px}
.status-tile{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;background:var(--ink-2);border:1px solid var(--line);backdrop-filter:blur(10px);font-family:var(--f-display);min-width:0}
.status-tile-icon{width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;background:var(--ink-3);color:var(--muted);font-size:1.05rem}
.status-tile.is-ok .status-tile-icon{background:var(--cyan-a);color:var(--cyan)}
.status-tile.is-warn{border-color:rgba(255,209,102,.35)}
.status-tile.is-warn .status-tile-icon{background:rgba(255,209,102,.1);color:#ffd166}
.status-tile-text{flex:1 1 auto;display:grid;gap:1px;min-width:0}
.status-tile-text strong{font-weight:700;font-size:.95rem}
.status-tile-text span{font-size:.82rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status-tile-action{display:grid;gap:2px;justify-items:end;flex:none}
.status-tile-action form{display:inline}
.link-muted{background:none;border:0;padding:0;color:var(--muted);font:500 .82rem var(--f-display);cursor:pointer}
.link-muted:hover{color:#ff9b9b}
.status-tile-action .link-accent{font-size:.85rem}
.member-char{margin:0;font:800 1.5rem var(--f-display);color:var(--fg);overflow-wrap:anywhere}
.member-appeal-link{margin:0;font:400 .85rem var(--f-display)}
.member-appeal-link a{color:var(--muted)}
.member-appeal-link a:hover{color:var(--cyan)}
.dash-settings{padding:0}
.dash-settings summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px clamp(18px,3vw,24px);font-family:var(--f-display)}
.dash-settings summary::-webkit-details-marker{display:none}
.dash-settings-title{font:800 1.05rem var(--f-display)}
.dash-settings-chevron{margin-inline-start:auto;color:var(--muted);transition:transform .2s}
.dash-settings[open] .dash-settings-chevron{transform:rotate(180deg)}
.dash-settings summary:focus-visible{outline:2px solid var(--cyan);outline-offset:-2px;border-radius:18px}
.dash-settings-body{display:flex;flex-direction:column;gap:18px;padding:18px clamp(18px,3vw,24px) 22px;border-top:1px solid var(--line)}
@media (max-width:640px){.member-server{min-width:0;width:100%}}
@media (prefers-reduced-motion:reduce){.dash-settings-chevron{transition:none}}

/* identifiers hidden until hovered / focused (tapped on phones) */
.secret{filter:blur(6px);cursor:pointer;transition:filter .2s;border-radius:4px;user-select:none}
.secret:hover,.secret:focus,.secret:focus-visible{filter:none;user-select:text;outline:0}
.dash-secret-hint{margin:-8px 0 0;font:400 .82rem var(--f-display)}
@media (prefers-reduced-motion:reduce){.secret{transition:none}}

/* Discord link */
.btn-discord{background:#5865F2;border-color:#5865F2;color:#fff;font-family:var(--f-display);font-weight:700}
.btn-discord:hover{background:#4752c4;border-color:#4752c4;color:#fff}
.dash-step-note{margin:0;display:flex;gap:10px;align-items:baseline;font:500 .92rem var(--f-display);color:#c9c2ff}
.dash-discord{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;
  background:rgba(88,101,242,.08);border:1px solid rgba(88,101,242,.35);font-family:var(--f-display)}
.dash-discord.is-linked{background:var(--ink-3);border-color:var(--line)}
.dash-discord-icon{width:42px;height:42px;flex:none;border-radius:12px;display:grid;place-items:center;background:#5865F2;color:#fff;font-size:1.2rem}
.dash-discord-text{flex:1 1 220px;min-width:0;display:grid;gap:2px}
.dash-discord-text span{font-size:.9rem}
.dash-discord-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}

/* =====================================================================
   Step-by-step application form (CSS only: hidden radios + labels; still one form, one submit)
   ===================================================================== */
.apply-form.is-stepped{position:relative}
/* visually hidden but focusable, sitting at the top of the form: choosing a step focuses its radio, which scrolls back up */
.step-radio{position:absolute;top:0;inset-inline-start:0;width:1px;height:1px;opacity:0;margin:0;pointer-events:none}
.apply-progress{list-style:none;margin:0;padding:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px}
.apply-progress label{display:grid;justify-items:center;gap:6px;padding:10px 6px 12px;border-radius:12px;cursor:pointer;font:600 .82rem var(--f-display);color:var(--muted);text-align:center;border-bottom:3px solid var(--line);transition:color .2s,border-color .2s}
.apply-progress label:hover{color:var(--fg)}
.apply-progress-num{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--ink-3);border:1px solid var(--line);font:700 .85rem var(--f-display);color:var(--muted)}
.apply-progress-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.apply-progress li.has-error .apply-progress-num{border-color:#ff8a8a;color:#ff8a8a;background:rgba(255,138,138,.1)}
.apply-progress li.has-error label{color:#ffb3b3}
.apply-step-count{display:block;font:600 .8rem var(--f-display);color:var(--muted);margin-bottom:4px}
.apply-step-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:22px;margin-top:8px;border-top:1px solid var(--line)}
.apply-step-nav label.btn{cursor:pointer}
.apply-form.is-stepped .apply-step{display:none}
@media (max-width:640px){.apply-progress-title{display:none}.apply-progress label{padding-block:8px}}
#apply-step-1:checked~.apply-steps .apply-step-1{display:grid}
#apply-step-1:checked~.apply-progress li:nth-child(-n+1) label{border-bottom-color:var(--teal)}
#apply-step-1:checked~.apply-progress li:nth-child(1) label{color:var(--cyan);border-bottom-color:var(--cyan)}
#apply-step-1:checked~.apply-progress li:nth-child(1) .apply-progress-num{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
#apply-step-1:focus-visible~.apply-progress li:nth-child(1) label{outline:2px solid var(--cyan);outline-offset:2px}
#apply-step-2:checked~.apply-steps .apply-step-2{display:grid}
#apply-step-2:checked~.apply-progress li:nth-child(-n+2) label{border-bottom-color:var(--teal)}
#apply-step-2:checked~.apply-progress li:nth-child(2) label{color:var(--cyan);border-bottom-color:var(--cyan)}
#apply-step-2:checked~.apply-progress li:nth-child(2) .apply-progress-num{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
#apply-step-2:focus-visible~.apply-progress li:nth-child(2) label{outline:2px solid var(--cyan);outline-offset:2px}
#apply-step-3:checked~.apply-steps .apply-step-3{display:grid}
#apply-step-3:checked~.apply-progress li:nth-child(-n+3) label{border-bottom-color:var(--teal)}
#apply-step-3:checked~.apply-progress li:nth-child(3) label{color:var(--cyan);border-bottom-color:var(--cyan)}
#apply-step-3:checked~.apply-progress li:nth-child(3) .apply-progress-num{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
#apply-step-3:focus-visible~.apply-progress li:nth-child(3) label{outline:2px solid var(--cyan);outline-offset:2px}
#apply-step-4:checked~.apply-steps .apply-step-4{display:grid}
#apply-step-4:checked~.apply-progress li:nth-child(-n+4) label{border-bottom-color:var(--teal)}
#apply-step-4:checked~.apply-progress li:nth-child(4) label{color:var(--cyan);border-bottom-color:var(--cyan)}
#apply-step-4:checked~.apply-progress li:nth-child(4) .apply-progress-num{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
#apply-step-4:focus-visible~.apply-progress li:nth-child(4) label{outline:2px solid var(--cyan);outline-offset:2px}
#apply-step-5:checked~.apply-steps .apply-step-5{display:grid}
#apply-step-5:checked~.apply-progress li:nth-child(-n+5) label{border-bottom-color:var(--teal)}
#apply-step-5:checked~.apply-progress li:nth-child(5) label{color:var(--cyan);border-bottom-color:var(--cyan)}
#apply-step-5:checked~.apply-progress li:nth-child(5) .apply-progress-num{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
#apply-step-5:focus-visible~.apply-progress li:nth-child(5) label{outline:2px solid var(--cyan);outline-offset:2px}
#apply-step-6:checked~.apply-steps .apply-step-6{display:grid}
#apply-step-6:checked~.apply-progress li:nth-child(-n+6) label{border-bottom-color:var(--teal)}
#apply-step-6:checked~.apply-progress li:nth-child(6) label{color:var(--cyan);border-bottom-color:var(--cyan)}
#apply-step-6:checked~.apply-progress li:nth-child(6) .apply-progress-num{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
#apply-step-6:focus-visible~.apply-progress li:nth-child(6) label{outline:2px solid var(--cyan);outline-offset:2px}
#apply-step-7:checked~.apply-steps .apply-step-7{display:grid}
#apply-step-7:checked~.apply-progress li:nth-child(-n+7) label{border-bottom-color:var(--teal)}
#apply-step-7:checked~.apply-progress li:nth-child(7) label{color:var(--cyan);border-bottom-color:var(--cyan)}
#apply-step-7:checked~.apply-progress li:nth-child(7) .apply-progress-num{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
#apply-step-7:focus-visible~.apply-progress li:nth-child(7) label{outline:2px solid var(--cyan);outline-offset:2px}
#apply-step-8:checked~.apply-steps .apply-step-8{display:grid}
#apply-step-8:checked~.apply-progress li:nth-child(-n+8) label{border-bottom-color:var(--teal)}
#apply-step-8:checked~.apply-progress li:nth-child(8) label{color:var(--cyan);border-bottom-color:var(--cyan)}
#apply-step-8:checked~.apply-progress li:nth-child(8) .apply-progress-num{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
#apply-step-8:focus-visible~.apply-progress li:nth-child(8) label{outline:2px solid var(--cyan);outline-offset:2px}
#apply-step-9:checked~.apply-steps .apply-step-9{display:grid}
#apply-step-9:checked~.apply-progress li:nth-child(-n+9) label{border-bottom-color:var(--teal)}
#apply-step-9:checked~.apply-progress li:nth-child(9) label{color:var(--cyan);border-bottom-color:var(--cyan)}
#apply-step-9:checked~.apply-progress li:nth-child(9) .apply-progress-num{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
#apply-step-9:focus-visible~.apply-progress li:nth-child(9) label{outline:2px solid var(--cyan);outline-offset:2px}
#apply-step-10:checked~.apply-steps .apply-step-10{display:grid}
#apply-step-10:checked~.apply-progress li:nth-child(-n+10) label{border-bottom-color:var(--teal)}
#apply-step-10:checked~.apply-progress li:nth-child(10) label{color:var(--cyan);border-bottom-color:var(--cyan)}
#apply-step-10:checked~.apply-progress li:nth-child(10) .apply-progress-num{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
#apply-step-10:focus-visible~.apply-progress li:nth-child(10) label{outline:2px solid var(--cyan);outline-offset:2px}
#apply-step-11:checked~.apply-steps .apply-step-11{display:grid}
#apply-step-11:checked~.apply-progress li:nth-child(-n+11) label{border-bottom-color:var(--teal)}
#apply-step-11:checked~.apply-progress li:nth-child(11) label{color:var(--cyan);border-bottom-color:var(--cyan)}
#apply-step-11:checked~.apply-progress li:nth-child(11) .apply-progress-num{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
#apply-step-11:focus-visible~.apply-progress li:nth-child(11) label{outline:2px solid var(--cyan);outline-offset:2px}
#apply-step-12:checked~.apply-steps .apply-step-12{display:grid}
#apply-step-12:checked~.apply-progress li:nth-child(-n+12) label{border-bottom-color:var(--teal)}
#apply-step-12:checked~.apply-progress li:nth-child(12) label{color:var(--cyan);border-bottom-color:var(--cyan)}
#apply-step-12:checked~.apply-progress li:nth-child(12) .apply-progress-num{background:var(--cyan);border-color:var(--cyan);color:var(--ink)}
#apply-step-12:focus-visible~.apply-progress li:nth-child(12) label{outline:2px solid var(--cyan);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.apply-progress label{transition:none}}
