:root{color-scheme:dark;--bg:#081321;--panel:#101f32;--raised:#14263c;--deep:#0e1b2c;--stroke:#273a52;--gold:#deb77d;--gold2:#aa8655;--text:#f2f4f6;--sub:#9bacbe;--ok:#87cead;--danger:#efaea2;font-family:system-ui,-apple-system,"Malgun Gothic","Segoe UI",sans-serif}
*{box-sizing:border-box}html{min-width:320px}body{margin:0;background:radial-gradient(ellipse at 55% -15%,#233c58 0%,#0d1a2b 44%,#081321 79%);color:var(--text)}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}
.gold-rule{height:4px;background:linear-gradient(90deg,#0c1625 0%,#a4895b 28%,#efd5a5 50%,#a4895b 72%,#0c1625 100%)}
.header{min-height:100px;padding:20px max(3.3vw,24px);display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid rgba(226,187,133,.18)}.brand{display:flex;align-items:center;gap:14px}.mark{width:57px;height:57px;display:grid;place-items:center;border:1px solid var(--gold);font:700 23px Georgia,serif;color:var(--gold);box-shadow:inset 0 0 0 5px #0b1c2a,inset 0 0 0 6px rgba(222,183,125,.25)}.brand strong{font-size:13px;letter-spacing:.15em}.brand small{display:block;font-size:10px;letter-spacing:.24em;color:var(--gold);margin-top:6px}.header-right{display:flex;align-items:center;gap:19px;flex-wrap:wrap}.local-status{display:flex;align-items:center;gap:9px;color:#aac4c0;font-size:12px;white-space:nowrap}.dot{height:7px;width:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(135,206,173,.1)}.container{max-width:1540px;margin:auto;padding:0 clamp(20px,3vw,48px)}
.hero{text-align:center;padding:53px 0 39px}.eyebrow{color:var(--gold);font-size:11px;letter-spacing:.2em;font-weight:650;margin:0 0 13px}.hero h1{font-weight:620;letter-spacing:-.047em;font-size:clamp(32px,3.4vw,50px);margin:0}.hero p:not(.eyebrow){font-size:14px;color:#afc0d0;line-height:1.85;margin:13px auto 22px}.hero p strong{color:var(--gold);font-weight:580}.stats{display:flex;align-items:center;justify-content:center;gap:20px;color:#a7bbca;font-size:12px}.stats strong{color:var(--gold);font-size:16px}.sep{height:13px;width:1px;background:var(--stroke)}
.workspace{display:grid;grid-template-columns:minmax(340px,420px) minmax(0,1fr);gap:24px;align-items:start}.people-pane,.teams-pane{border:1px solid rgba(213,181,140,.21);background:linear-gradient(148deg,#13263c,#0e1e31 58%,#101d2f);padding:25px;min-width:0;box-shadow:0 18px 38px rgba(0,0,0,.12)}.teams-pane{background:linear-gradient(148deg,#14283f,#102033 60%,#102033)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:10px}.section-heading .eyebrow{margin-bottom:7px}.section-heading h2{font-size:23px;margin:0;letter-spacing:-.04em;font-weight:600}.side-count{background:#243a53;border:1px solid var(--stroke);color:var(--gold);padding:5px 11px;font-size:11px;border-radius:99px}.help{font-size:12px;color:var(--sub);line-height:1.7;margin:14px 0 22px}.help strong{color:var(--gold)}
.form{background:rgba(6,19,31,.33);padding:18px;border:1px solid var(--stroke);display:grid;gap:15px}.form label,.new-team-form label{display:grid;gap:7px;color:#cdd7e3;font-size:12px;font-weight:600}.required{color:var(--gold)}input:not([type=file]){height:42px;width:100%;outline:0;background:#0b192a;border:1px solid #354962;color:#f2f6fa;padding:10px 12px;border-radius:4px;font-size:13px}input:not([type=file]):focus{border-color:#c9ac7b;box-shadow:0 0 0 3px rgba(221,183,125,.12)}.search{height:39px!important}.file-zone{background:rgba(25,43,63,.65);border:1px dashed #728198;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:83px;padding:12px;text-align:center;color:#b3c5d7;font-size:11px;font-weight:400;cursor:pointer}.file-zone:hover,.file-zone.drag-over,.role-slot.drag-over,.excel-drop.drag-over{border-color:var(--gold);background:rgba(208,174,119,.1)}.file-zone .upload-art{font:30px Georgia,serif;line-height:1;color:var(--gold)}.file-zone small{color:#8fa3b7;font-size:10px}.file-zone.compact{min-height:46px;flex-direction:row;gap:9px;padding:8px}.file-zone.compact .upload-art{font-size:20px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important}
.form-actions{display:flex;gap:9px}.button{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;text-decoration:none;font-weight:700;border-radius:4px;padding:10px 14px;font-size:12px;transition:background-color .15s}.button.primary{background:var(--gold);color:#1e2733}.button.primary:hover{background:#f3d5a7}.button.secondary{color:#e6d1b2;border-color:#a58b67;background:rgba(204,163,97,.08)}.button.secondary:hover{background:rgba(204,163,97,.19)}.button.ghost{border-color:#35485e;background:#192c43;color:#b8c6d5}.button.ghost:hover{background:#263e59}.button.danger{color:#ebaea8;background:rgba(185,74,76,.12);border:1px solid rgba(225,116,118,.23)}.button.small{font-size:11px;padding:6px 9px}.catalog-head{display:flex;align-items:center;justify-content:space-between;gap:13px;margin:26px 0 12px}.catalog-head h3{font-size:14px;margin:0;white-space:nowrap}.people-list{max-height:710px;overflow:auto;display:grid;gap:8px}.empty,.empty-team{text-align:center;color:#8fa5b7;font-size:12px;padding:27px 14px;background:rgba(6,18,28,.3);border:1px dashed #334b65}.person-card{padding:10px;display:flex;align-items:center;gap:11px;border:1px solid #334761;background:#192d44;border-radius:4px;cursor:grab}.person-card:hover{border-color:#ba9e77;background:#203750}.person-card:active{cursor:grabbing}.avatar{height:42px;width:42px;border:1px solid #526779;display:grid;place-items:center;border-radius:4px;flex:0 0 auto;object-fit:cover;background:#273d52;color:#d3b991;font:20px Georgia,serif}.person-info{min-width:0;flex:1}.person-info strong{display:block;font-size:12px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-info small{color:#8fa6b9;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.person-actions{display:flex;align-items:center;gap:5px}.mini-btn{border:1px solid #38516a;background:#1c334b;color:#c8d6e4;border-radius:3px;padding:6px 7px;font-size:10px;flex:0 0 auto}.mini-btn:hover{border-color:#d0ac78}.mini-btn.remove{color:#ecaaa7}.people-bottom{font-size:11px;color:#95a9bb;margin-top:13px;line-height:1.8;display:flex;align-items:center;gap:10px}.drag-icon{font-size:22px;color:var(--gold)}
.new-team-form{display:grid;grid-template-columns:minmax(160px,1fr) minmax(145px,.85fr) auto;gap:12px;align-items:end;padding:17px;background:rgba(7,19,31,.38);border:1px solid #344960}.new-team-form label{font-size:12px}.new-team-form .add-team{height:43px}.legend{font-size:11px;color:#b4c2cf;margin:17px 0 20px}.gold-dot{height:6px;width:6px;background:var(--gold);display:inline-block;margin-right:8px;border-radius:50%}.teams-list{display:grid;gap:17px}.team-card{padding:19px;border:1px solid #3c506b;background:rgba(15,29,46,.62)}.team-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}.team-logo{width:66px;height:66px;display:grid;place-items:center;border:1px solid var(--gold2);background:#1a3048;object-fit:contain;font:29px Georgia,serif;color:var(--gold);flex-shrink:0;cursor:pointer}.team-logo:hover{border-color:var(--gold)}.team-title{min-width:0;flex:1}.team-title h3{margin:0 0 4px;font-size:17px;font-weight:600;overflow-wrap:anywhere}.team-title p{margin:0;color:#a3b6c8;font-size:11px}.team-remove{border:1px solid rgba(242,146,137,.28);color:#efada4;background:transparent;border-radius:3px;padding:7px;font-size:11px}
.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.role-slot{min-height:64px;border:1px dashed #456078;background:#102238;padding:9px 10px;border-radius:4px;position:relative;display:flex;align-items:center;gap:10px;cursor:default}.role-slot.filled{border-style:solid;border-color:#687b88;background:linear-gradient(130deg,#1b3046,#172a3f)}.role-label{font-size:10px;letter-spacing:.03em;min-width:40px;flex:0 0 40px;color:var(--gold)}.role-person{font-size:12px;font-weight:550;min-width:0;flex:1;overflow-wrap:anywhere}.role-person.empty{color:#829bb0;font-weight:400;font-size:11px}.role-slot .clear-role{color:#d9b28c;font-size:10px;border:0;background:transparent;padding:4px}.empty-team .ghost-shield{font-size:42px;color:var(--gold2)}.empty-team h3{margin:12px 0 7px;font-size:16px}.empty-team p{line-height:1.7}.note{display:flex;gap:15px;align-items:start;margin-top:21px;padding:16px;border:1px solid rgba(217,181,126,.25);background:rgba(171,135,86,.075)}.note-mark{color:var(--gold);font-size:27px}.note strong{font-size:13px;color:#dec69e}.note p{font-size:11px;color:#a8b6c3;line-height:1.8;margin:6px 0 0}.footer{display:flex;justify-content:space-between;gap:15px;color:#899caf;border-top:1px solid var(--stroke);margin-top:40px;padding:24px 0 40px;font-size:10px}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:13px 23px;border:1px solid #548366;border-radius:4px;background:#123e30;color:#d5ffe9;z-index:20;font-size:13px;box-shadow:0 13px 40px rgba(0,0,0,.4);max-width:min(620px,92vw)}.toast.error{border-color:#89575c;background:#44242c;color:#ffe0db}.toast[hidden]{display:none!important}
.excel-area{border:1px dashed rgba(206,174,125,.58);background:rgba(214,178,117,.065);padding:15px 17px;margin-top:17px;border-radius:4px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.excel-area.drag-over{background:rgba(205,169,104,.15);border-color:var(--gold)}.excel-area .excel-title{font-size:12px;font-weight:700;color:#edd5aa}.excel-area small{display:block;color:#9babb9;font-size:11px;margin-top:6px}.excel-area .excel-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
@media(max-width:1080px){.workspace{grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:15px}.people-pane,.teams-pane{padding:18px}.role-grid{grid-template-columns:1fr}.new-team-form{grid-template-columns:1fr 1fr}.new-team-form .add-team{grid-column:1/-1}.header{padding:15px 20px}}
@media(max-width:800px){.workspace{grid-template-columns:1fr}.people-list{max-height:450px}.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{padding:40px 0 30px}.header-right .local-status{display:none}.brand strong{font-size:10px}.brand small{font-size:8px}.mark{width:48px;height:48px;font-size:18px}.header-right .button{font-size:10px}.excel-area{grid-template-columns:1fr}}
@media(max-width:480px){.container{padding:0 13px}.role-grid{grid-template-columns:1fr}.hero h1{font-size:30px}.stats{gap:10px}.new-team-form{grid-template-columns:1fr}.people-pane,.teams-pane{padding:13px}.team-card{padding:13px}.header{gap:8px}.brand{gap:8px}.header-right .button{padding:8px}.footer{flex-direction:column;text-align:center}}

/* Narrow mobile/portrait screenshots must never be wider than the viewport. */
@media(max-width:620px){
 html,body{width:100%;max-width:100%;overflow-x:hidden}
 .header{min-width:0;max-width:100%;flex-wrap:wrap;justify-content:center;padding:13px;gap:10px}
 .brand{min-width:0;max-width:100%;flex:1 1 100%;justify-content:center}
 .brand>span:last-child{min-width:0}
 .header-right{width:100%;justify-content:center;min-width:0}
 .header-right .button{max-width:100%;white-space:normal;text-align:center}
 .container{min-width:0;max-width:100%;padding-left:13px;padding-right:13px}
 .hero{padding:34px 0 28px;min-width:0}
 .hero h1{font-size:clamp(24px,6.3vw,30px);line-height:1.35;overflow-wrap:anywhere}
 .hero p:not(.eyebrow){max-width:100%;font-size:12px;padding:0 4px}
 .stats{flex-wrap:wrap;font-size:11px}
 .excel-area{max-width:100%;min-width:0;gap:12px}
 .excel-area .excel-actions{min-width:0;justify-content:stretch}
 .excel-area .excel-actions .button{flex:1 1 130px;white-space:normal;text-align:center}
 .workspace,.people-pane,.teams-pane,.new-team-form,.form,.team-card{min-width:0;max-width:100%}
 .catalog-head{flex-wrap:wrap}
 .search{min-width:0}
}

#auth-screen[hidden],#admin-root[hidden]{display:none!important}
.auth-screen{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 8%,#253e59,#091421 70%);padding:24px}
.auth-panel{width:min(100%,470px);background:linear-gradient(155deg,#16283c,#0e1d2f);border:1px solid #726048;padding:35px;box-shadow:0 25px 100px rgba(0,0,0,.3);text-align:center}
.auth-mark{width:74px;height:74px;margin:0 auto 18px;display:grid;place-items:center;border:1px solid var(--gold);font:700 28px Georgia,serif;color:var(--gold)}
.auth-panel h1{margin:0 0 12px;font-size:28px}
.auth-panel p:not(.eyebrow){line-height:1.75;color:#b7c6d5;font-size:13px}
.auth-panel form{display:grid;gap:11px;text-align:left;margin-top:24px}
.auth-panel label{font-size:13px;color:#e0cdad}
.auth-panel button{width:100%;margin-top:6px;padding:14px}
.auth-panel .auth-hint{margin-top:20px!important;font-size:11px!important}
.login-error{color:#ffc7c7!important}
