:root{--navy:#101a2b;--burg:#5b1727;--gold:#c7a75b;--paper:#f4f1e9;--ink:#16191f;--muted:#67707d;--line:#d8d2c6;--white:#fff;--good:#17653b;--bad:#9b2c2c;--team-primary:#5b1727;--team-secondary:#c7a75b;--team-light:#f4f1e9}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}.masthead{padding:22px clamp(18px,4vw,56px);background:linear-gradient(118deg,#0d1727 0%,#17243a 42%,#61182b 100%);color:white;border-bottom:5px solid var(--gold);box-shadow:0 2px 14px rgba(0,0,0,.18)}.masthead-inner{display:grid;grid-template-columns:minmax(150px,190px) minmax(0,1fr);gap:28px;align-items:center;max-width:1600px;margin:0 auto}.brand-seal-wrap{display:grid;place-items:center;width:min(180px,100%);aspect-ratio:1;margin:0 auto}.brand-seal{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 16px rgba(0,0,0,.28))}.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:900;color:#eadba9}.masthead h1{margin:6px 0 4px;font-size:clamp(34px,5vw,64px);line-height:.92;letter-spacing:-.035em}.masthead p{max-width:850px;margin:11px 0 0;color:#eee9df}.masthead-copy{min-width:0}main{padding:24px clamp(14px,4vw,54px) 60px;max-width:1680px;margin:0 auto}.panel{background:white;border:1px solid var(--line);box-shadow:0 3px 14px rgba(0,0,0,.06);padding:20px;border-radius:8px}.login-panel{max-width:470px;margin:12px auto}.login-panel form{display:grid;gap:14px}label{font-weight:800;font-size:13px;display:grid;gap:6px}input{width:100%;padding:12px;border:1px solid #aeb4bd;border-radius:5px;font-size:16px}button{border:0;border-radius:5px;background:var(--burg);color:white;padding:11px 15px;font-weight:900;letter-spacing:.04em;cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}.secondary{background:var(--navy)}.hidden{display:none!important}.sessionbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.sessionbar span{margin-left:8px;color:var(--muted);font-size:13px}.grid{display:grid;grid-template-columns:minmax(220px,310px) minmax(0,1fr);gap:16px}.panel h2{margin:0 0 12px}.award-btn{width:100%;text-align:left;background:white;color:var(--ink);border:1px solid var(--line);margin:0 0 8px;padding:12px}.award-btn:hover,.award-btn.active{border-color:var(--gold);box-shadow:inset 4px 0 var(--gold)}.award-btn .small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.ballot-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:14px}.tag{display:inline-block;font-size:10px;font-weight:900;letter-spacing:.08em;border:1px solid var(--gold);color:#6c5315;padding:4px 7px;border-radius:999px;background:#fffaf0}.state-pill{font-size:11px;font-weight:900;padding:6px 10px;background:#edf0f4;border-radius:999px;letter-spacing:.04em}.state-pill[data-state="SUBMITTED"]{background:#e5f1e9;color:#17653b}.state-pill[data-state="REOPENED"]{background:#fff0d2;color:#7a5200}.state-pill[data-state="LOCKED"],.state-pill[data-state="CLOSED"]{background:#eceef1;color:#4d5663}.muted{color:var(--muted)}.candidate-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin:10px 0 20px}.candidate{position:relative;display:grid;grid-template-columns:90px minmax(0,1fr);gap:10px;align-items:center;min-height:102px;border:1px solid color-mix(in srgb,var(--team-primary) 42%,#d8d2c6);border-top:4px solid var(--team-primary);background:linear-gradient(135deg,color-mix(in srgb,var(--team-light) 70%,#fff),#fff 62%);color:var(--ink);text-align:left;padding:9px;overflow:hidden}.candidate::after{content:"";position:absolute;right:-28px;bottom:-42px;width:110px;height:110px;border-radius:50%;background:color-mix(in srgb,var(--team-secondary) 12%,transparent);pointer-events:none}.candidate:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 14px rgba(0,0,0,.09)}.candidate.selected{border-color:var(--team-secondary);box-shadow:inset 0 0 0 2px var(--team-secondary)}.candidate-readonly{opacity:.88}.candidate-copy{position:relative;z-index:2}.candidate strong{display:block;font-size:15px;line-height:1.12}.candidate-team{display:block;color:#58616d;font-size:11px;font-weight:800;margin-top:5px}.candidate-note{display:block;color:#59606a;font-size:11px;line-height:1.25;margin-top:6px;font-weight:600}.player-media.team-only{display:grid;place-items:center;background:linear-gradient(145deg,color-mix(in srgb,var(--team-light) 80%,#fff),#fff)}.team-only-logo{width:72%;height:72%;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.12))}.player-media.team-only.compact .team-only-logo{width:70%;height:70%}.player-media{position:relative;width:88px;height:78px;border-radius:7px;background:linear-gradient(150deg,color-mix(in srgb,var(--team-primary) 16%,#f4f1e9),#fff);overflow:hidden;border:1px solid color-mix(in srgb,var(--team-primary) 26%,#d8d2c6);flex:0 0 auto}.player-portrait{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}.portrait-fallback{width:100%;height:100%;display:grid;place-items:center;font-weight:900;font-size:24px;color:color-mix(in srgb,var(--team-primary) 78%,#111);background:linear-gradient(135deg,color-mix(in srgb,var(--team-light) 78%,#fff),#fff)}.team-logo{position:absolute;right:3px;bottom:3px;width:28px;height:28px;object-fit:contain;background:rgba(255,255,255,.92);border-radius:50%;padding:2px;box-shadow:0 1px 4px rgba(0,0,0,.18)}.player-media.compact{width:58px;height:50px;border-radius:6px}.player-media.compact .portrait-fallback{font-size:16px}.player-media.compact .team-logo{width:20px;height:20px}.slots{display:grid;gap:8px}.team-divider{font-size:12px;font-weight:900;letter-spacing:.1em;color:var(--burg);margin:16px 0 3px}.slot{display:grid;grid-template-columns:44px 58px minmax(0,1fr) auto auto;gap:9px;align-items:center;border:1px solid var(--line);border-left:5px solid var(--team-primary);padding:7px 9px;border-radius:6px;min-height:66px;background:linear-gradient(90deg,color-mix(in srgb,var(--team-light) 60%,#fff),#fff 26%)}.slot.locked{grid-template-columns:44px 58px minmax(0,1fr) auto}.slot-num{font-weight:900;color:var(--team-primary);font-size:17px}.slot-name strong{display:block}.slot-name span{font-size:12px;color:var(--muted)}.slot button{padding:7px 9px}.move-group{display:flex;gap:4px}.move{background:var(--navy);min-width:34px}.remove{background:#777}.locked-label{font-size:10px;font-weight:900;letter-spacing:.08em;color:#53606d;background:#eef0f2;padding:7px 9px;border-radius:999px}.empty-media{background:#f4f4f4;border-color:#ddd}.actions{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:16px;padding-top:14px;gap:12px}.status{font-size:13px;color:var(--muted)}.status.error{color:var(--bad)}.status.good{color:var(--good)}.search-label{margin:10px 0}.search-results{border:1px solid var(--line);border-radius:5px;max-height:330px;overflow:auto}.search-result{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:#fff;color:var(--ink);text-align:left}.search-result:last-child{border-bottom:0}.search-person{display:flex;align-items:center;gap:10px}.search-person img{width:42px;height:36px;object-fit:cover;object-position:center top;border-radius:5px;background:#eee}.admin-row{display:grid;grid-template-columns:minmax(180px,1fr) repeat(2,minmax(120px,.5fr)) auto;gap:8px;border-top:1px solid var(--line);padding:9px 0;align-items:center}.admin-row:first-child{border-top:0}.admin-actions{display:flex;gap:6px}.admin-actions button{padding:7px 9px;font-size:11px}.read-only .candidate{cursor:default}@media(max-width:900px){.masthead-inner{grid-template-columns:1fr}.brand-seal-wrap{width:min(156px,42vw)}.masthead h1{font-size:clamp(36px,8vw,58px)}}@media(max-width:760px){main{padding-left:10px;padding-right:10px}.grid{grid-template-columns:1fr}.ballots-nav{order:2}.ballot-panel{order:1}.candidate-grid{grid-template-columns:1fr 1fr}.slot{grid-template-columns:36px 52px minmax(0,1fr) auto auto}.slot.locked{grid-template-columns:36px 52px minmax(0,1fr) auto}.ballot-head{display:block}.state-pill{display:inline-block;margin-top:8px}.admin-row{grid-template-columns:1fr 1fr}.admin-actions{grid-column:1/-1}}@media(max-width:520px){.masthead{padding:16px 12px}.brand-seal-wrap{width:min(132px,42vw)}.candidate-grid{grid-template-columns:1fr}.candidate{grid-template-columns:78px minmax(0,1fr)}.player-media{width:76px;height:68px}.slot{grid-template-columns:34px 48px minmax(0,1fr) auto}.slot .remove{grid-column:4}.slot .move-group{grid-column:4}.slot.locked{grid-template-columns:34px 48px minmax(0,1fr)}.slot.locked .locked-label{grid-column:1/-1;justify-self:end}.player-media.compact{width:48px;height:43px}.sessionbar{padding:0 4px}}

/* Voting Center v0.5.1 */
.module-tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 16px}.module-tab{background:#fff;color:var(--ink);border:1px solid var(--line);text-align:left;padding:15px 16px}.module-tab strong{display:block;font-size:15px}.module-tab span{display:block;font-size:11px;color:var(--muted);margin-top:4px}.module-tab.active{border-color:var(--gold);box-shadow:inset 5px 0 var(--gold);background:#fffaf0}.module-panel{display:block}.compact-panel{padding:16px 18px;margin-bottom:14px;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.compact-panel h2{font-size:28px;margin:5px 0 2px}.admin-section{margin-top:18px}.eyebrow.dark{color:#7c631f}.identity-status{align-items:center}.identity-retained{background:var(--navy);color:#fff;border-left:5px solid var(--gold);border-radius:8px;padding:15px 18px;margin-bottom:16px}.identity-retained strong{font-size:18px}.identity-retained span{display:block;color:#e7dfcc;margin-top:5px}.identity-team-block{background:#fff;border:1px solid var(--line);border-radius:9px;padding:18px;margin-bottom:18px;box-shadow:0 3px 14px rgba(0,0,0,.05)}.identity-team-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;margin-bottom:12px}.identity-team-head h2{margin:2px 0 0;font-size:28px}.identity-team-head>span{color:var(--muted);font-size:12px}.identity-concept-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.identity-concept{position:relative;background:#fff;border:2px solid var(--line);border-radius:8px;padding:0;overflow:hidden;color:var(--ink);text-align:left;transition:.15s transform,.15s box-shadow}.identity-concept:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,.1)}.identity-concept.selected{border-color:var(--gold);box-shadow:0 0 0 3px rgba(199,167,91,.24)}.identity-concept img{display:block;width:100%;aspect-ratio:1.18/1;object-fit:contain;background:#f7f5ef}.identity-concept-copy{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:12px 13px;border-top:1px solid var(--line)}.identity-concept-copy strong{font-size:16px}.identity-concept-copy span{font-size:10px;letter-spacing:.08em;font-weight:900;color:var(--good)}.identity-save{min-height:24px;padding:0 4px}.identity-submitbar{position:sticky;bottom:0;z-index:5;background:rgba(244,241,233,.96);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:9px;padding:14px 16px;display:flex;justify-content:space-between;gap:18px;align-items:center;box-shadow:0 -3px 18px rgba(0,0,0,.08)}.identity-admin-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.identity-admin-head h2{margin:0 0 4px}.identity-admin-row{border-top:1px solid var(--line);padding:10px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.identity-admin-row:first-child{border-top:0}.identity-submitted-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.identity-submitted-card{border:1px solid var(--line);border-radius:7px;overflow:hidden}.identity-submitted-card img{width:100%;aspect-ratio:1.25/1;object-fit:contain;background:#f7f5ef}.identity-submitted-card div{padding:9px}
@media(max-width:850px){.module-tabs{grid-template-columns:1fr}.identity-concept-grid,.identity-submitted-grid{grid-template-columns:1fr}.identity-submitbar,.identity-admin-head,.compact-panel{display:block}.identity-submitbar button{width:100%;margin-top:10px}.identity-status .state-pill{display:inline-block;margin-top:10px}}
@media(max-width:520px){.module-tab{padding:12px}.identity-team-block{padding:12px}.identity-concept-copy strong{font-size:15px}}
