:root{--bg:#10261f;--bg2:#17362a;--panel:#f4efe3;--panel2:#fffaf0;--ink:#1f2d29;--muted:#6d776f;--green:#4f8c57;--green2:#71a963;--orange:#ee9b36;--orange2:#ffbd55;--blue:#5a99b4;--red:#b55243;--line:#d8d1c0;--shadow:0 18px 45px rgba(0,0,0,.24)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:linear-gradient(180deg,#183d30 0,#10261f 420px,#0e211b 100%);min-height:100vh;position:relative}.fog{position:fixed;border-radius:50%;filter:blur(55px);opacity:.13;pointer-events:none}.fog-a{width:420px;height:240px;background:#fff;top:100px;left:-120px}.fog-b{width:500px;height:260px;background:#dff7e5;top:240px;right:-160px}.topbar{height:78px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;gap:24px;background:rgba(10,32,25,.86);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.08);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;min-width:260px}.brand strong{display:block;font-size:19px;letter-spacing:.2px}.brand small{display:block;color:#b8cabf;font-size:11px;margin-top:2px}.brand-mark{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:radial-gradient(circle at 42% 35%,#ffd66e 0 15%,#f2a23a 16% 44%,#bd6333 45% 62%,#314c46 63%);box-shadow:inset 0 0 0 5px rgba(255,255,255,.18),0 10px 25px rgba(0,0,0,.25);font-size:26px}.brand-mark.small{width:42px;height:42px;border-radius:13px;font-size:19px}.topbar nav{display:flex;gap:8px}.topbar nav a,.logout{color:#d7e5dd;text-decoration:none;padding:10px 13px;border-radius:11px;font-weight:700;font-size:14px}.topbar nav a:hover,.topbar nav a.active{background:#315e48;color:#fff}.top-actions{display:flex;align-items:center;gap:14px}.lang-links{display:flex;gap:5px}.lang-links a{color:#fff;text-decoration:none;background:rgba(255,255,255,.08);padding:6px 8px;border-radius:8px;font-size:12px;font-weight:800}.wrap{width:min(1420px,94vw);margin:0 auto;padding:34px 0 52px;position:relative;z-index:1}.hero{display:flex;justify-content:space-between;align-items:center;color:#fff;margin:10px 0 28px}.hero h1{margin:3px 0 6px;font-size:clamp(32px,4vw,52px);letter-spacing:-1.7px}.hero p{max-width:750px;margin:0;color:#c5d9cd;font-size:15px}.eyebrow{font-size:11px;font-weight:900;letter-spacing:2.2px;color:#ffcb70}.target-badge{width:112px;height:112px;border-radius:26px;background:linear-gradient(145deg,#f4a33d,#ce7332);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--shadow),inset 0 0 0 5px rgba(255,255,255,.15);transform:rotate(2deg)}.target-badge b{font-size:29px;color:#fff}.target-badge span{font-weight:800;color:#ffe9bf}.stats{display:grid;grid-template-columns:repeat(3,minmax(140px,1fr)) 1.3fr;gap:14px;margin-bottom:18px}.stats article{background:rgba(245,240,226,.96);padding:18px 20px;border-radius:18px;box-shadow:0 10px 25px rgba(0,0,0,.13);border:1px solid rgba(255,255,255,.5)}.stats span{display:block;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.5px}.stats b{display:block;font-size:27px;margin-top:5px}.grid{display:grid;grid-template-columns:1.7fr .8fr;gap:18px;margin-bottom:18px}.panel{background:linear-gradient(180deg,var(--panel2),var(--panel));border-radius:21px;padding:22px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.7)}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:17px}.panel-title h2{font-size:18px;margin:0}.chip{font-size:11px;font-weight:900;text-transform:uppercase;background:#dce9dc;color:#34583e;padding:6px 9px;border-radius:999px}.add-form{display:grid;grid-template-columns:1.2fr .8fr;gap:14px 18px}.full{grid-column:1/-1}label,.duration-block>span{display:block;font-size:12px;font-weight:850;color:#4f5e55}input,select{width:100%;border:1px solid #cfc7b7;background:#fffef9;border-radius:11px;padding:11px 12px;margin-top:6px;font:inherit;color:var(--ink);outline:none}input:focus,select:focus{border-color:#6c9e72;box-shadow:0 0 0 3px rgba(79,140,87,.12)}label small{display:block;font-size:11px;color:#879087;margin-top:5px;font-weight:500}.duration-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.duration-inputs label{text-align:center}.duration-inputs input{text-align:center;font-weight:800}.checkbox{display:flex;align-items:center;gap:10px;padding:8px 0}.checkbox input{width:auto;margin:0}.primary,.boost-button{border:0;border-radius:12px;padding:12px 16px;background:linear-gradient(180deg,#5f985f,#427c4c);color:white;font-weight:900;font-size:14px;cursor:pointer;box-shadow:0 6px 14px rgba(66,124,76,.25)}.primary:hover,.boost-button:hover{filter:brightness(1.05)}.boost-button{width:100%;background:linear-gradient(180deg,#ffba4b,#dd8230);box-shadow:0 8px 18px rgba(221,130,48,.28);font-size:15px}.boost-button:disabled{filter:grayscale(1);opacity:.5;cursor:not-allowed}.hint,.muted{color:var(--muted);font-size:12px;margin:0}.allocation-panel p{color:#617066;line-height:1.55;font-size:13px}.availability{min-width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:900}.availability.ready{background:#dff1df;color:#3d7546}.availability.empty{background:#e7e4dd;color:#777}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse;min-width:980px;background:rgba(255,255,255,.55)}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid #e1dacb;vertical-align:middle;font-size:13px}th{font-size:11px;text-transform:uppercase;letter-spacing:.45px;color:#68746d;background:#eee8d9;position:sticky;top:0}tbody tr:hover{background:#fffaf0}.order{font-weight:900;color:#8e826f}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.pct{font-weight:900;padding:5px 8px;border-radius:8px;display:inline-block}.pct-5{background:#dce9dc;color:#386b43}.pct-10{background:#dce9f0;color:#356b7e}.pct-15{background:#fee4b9;color:#9a5a18}.status{font-size:11px;font-weight:900;padding:6px 8px;border-radius:999px;white-space:nowrap}.status.waiting{background:#ffe1bc;color:#985b1d}.status.under_threshold{background:#dff1df;color:#377344}.status.donor_only{background:#dce9f0;color:#3b6b7d}.ready-text{color:#3c7d49;font-weight:800;font-size:12px}.cooldown{color:#9a6528;font-size:12px;font-weight:700}.row-actions{display:flex;align-items:center;gap:6px}.row-actions form{margin:0}.ghost,.danger-link{border:1px solid #c9c1b2;background:#fffaf0;padding:7px 9px;border-radius:9px;font-weight:800;cursor:pointer;color:#4c5b52}.danger-link{color:#9b493d}.empty-row{text-align:center;padding:36px;color:#8b8e87}.history{margin-top:18px}.event-list{display:grid;gap:8px}.event{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:11px 12px;background:rgba(255,255,255,.55);border:1px solid #e0d8c8;border-radius:13px}.event .bolt{width:36px;height:36px;border-radius:11px;background:#ffe2a6;display:grid;place-items:center}.event small{display:block;color:#7a827c;margin-top:3px}.event time{font-size:11px;color:#7c837d;font-weight:700}.flash{padding:13px 15px;border-radius:13px;margin-bottom:16px;font-weight:750;font-size:13px}.flash.ok{background:#dff1df;color:#315f39}.flash.info{background:#e3edf1;color:#365f6d}.flash.error{background:#f5d9d4;color:#883d33}dialog{border:0;border-radius:18px;padding:22px;background:#fffaf0;box-shadow:0 25px 80px rgba(0,0,0,.42);min-width:min(460px,90vw)}dialog::backdrop{background:rgba(7,20,16,.68);backdrop-filter:blur(3px)}dialog h3{margin-top:0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}footer{width:min(1420px,94vw);margin:0 auto;padding:0 0 26px;color:#8fa99a;font-size:11px;display:flex;justify-content:space-between}.login-body{display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at 50% 20%,#28563e 0,#10261f 55%,#091712)}.login-card{width:min(420px,90vw);background:linear-gradient(180deg,#fffaf0,#ece5d5);padding:34px;border-radius:26px;box-shadow:0 28px 90px rgba(0,0,0,.4);text-align:center}.login-card .brand-mark{margin:0 auto 14px}.login-card h1{margin:0;font-size:27px}.login-card form{text-align:left;margin-top:24px}.login-card .primary{width:100%;margin-top:14px}.login-card .lang-links{justify-content:center;margin-top:20px}.login-card .lang-links a{background:#315e48}@media(max-width:1000px){.topbar{height:auto;min-height:76px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}.brand{min-width:unset}.topbar nav{order:3;width:100%}.topbar nav a{flex:1;text-align:center}.grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.stats .wide{grid-column:span 2}}@media(max-width:680px){.wrap{width:94vw;padding-top:20px}.brand small,.logout{display:none}.top-actions{gap:5px}.topbar{padding-left:3vw;padding-right:3vw}.hero{align-items:flex-end}.target-badge{width:82px;height:82px;border-radius:20px}.target-badge b{font-size:23px}.target-badge span{font-size:11px}.add-form{grid-template-columns:1fr}.full{grid-column:auto}.stats{gap:8px}.stats article{padding:13px}.stats b{font-size:21px}.panel{padding:15px;border-radius:16px}.event{grid-template-columns:auto 1fr}.event time{grid-column:2}}
.pending-panel{margin-bottom:18px}.assignment-list{display:grid;gap:9px}.assignment{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 14px;background:rgba(255,255,255,.6);border:1px solid #ded6c6;border-radius:14px}.assignment-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.assignment-main small{color:var(--muted);margin-left:6px}.assignment-main .arrow{color:#8e826f;font-weight:900}.assignment-actions{display:flex;align-items:center;gap:8px}.assignment-actions form{margin:0}.assignment-actions .primary,.assignment-actions .danger-link{white-space:nowrap}@media(max-width:760px){.assignment{align-items:flex-start;flex-direction:column}.assignment-actions{width:100%}.assignment-actions form:first-child{flex:1}.assignment-actions .primary{width:100%}}

.brand{min-width:320px}
.brand-logo{width:78px;height:52px;object-fit:cover;border-radius:12px;box-shadow:0 8px 20px rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.22)}
.alliance-banner{margin:2px 0 24px;padding:10px;background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.08);border-radius:24px;box-shadow:var(--shadow);overflow:hidden}
.alliance-banner img{display:block;width:100%;height:auto;border-radius:18px}
.login-logo{display:block;width:min(100%,340px);margin:0 auto 18px;border-radius:18px;box-shadow:0 18px 40px rgba(0,0,0,.28)}
@media(max-width:680px){.brand-logo{width:56px;height:42px}.brand strong{font-size:15px}.alliance-banner{padding:8px}}

.receiver-only{display:inline-block;padding:5px 8px;border-radius:999px;background:#ece5d6;color:#766a58;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.35px;white-space:nowrap}.edit-can-give{margin-top:14px;margin-bottom:2px;padding:10px 12px;background:#eee8d9;border:1px solid #d8d1c0;border-radius:11px}.edit-can-give+ .hint{margin:0 0 15px 2px}

.pct-0{background:#e7e4dd;color:#777}.status.no_timer{background:#ece9e1;color:#746f66}.boost-unavailable{display:inline-block;padding:5px 8px;border-radius:999px;background:#e7e4dd;color:#746f66;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.35px;white-space:nowrap}
/* Reservoir module */
textarea{width:100%;border:1px solid #cfc7b7;background:#fffef9;border-radius:11px;padding:10px 11px;margin-top:6px;font:inherit;color:var(--ink);outline:none;resize:vertical}textarea:focus{border-color:#6c9e72;box-shadow:0 0 0 3px rgba(79,140,87,.12)}
.reservoir-wrap{width:min(1540px,95vw)}.reservoir-hero{margin-bottom:20px}.reservoir-date-badge{width:112px;height:112px;border-radius:28px;background:linear-gradient(145deg,#5a99b4,#315e70);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--shadow),inset 0 0 0 5px rgba(255,255,255,.14);color:#fff}.reservoir-date-badge b{font-size:27px}.reservoir-date-badge span{font-weight:850;color:#d9edf5}.reservoir-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.event-switch{min-width:260px}.new-event-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.new-event-form label{min-width:170px}.checkbox.compact{display:flex;min-width:0;align-items:center;padding:11px 0}.reservoir-main-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:18px;margin-bottom:18px}.reservoir-player-form{display:grid;grid-template-columns:1.5fr .55fr .8fr .8fr auto auto auto;gap:10px;align-items:end;margin-bottom:18px;padding:14px;background:#eee8d9;border:1px solid #d8d1c0;border-radius:14px}.reservoir-player-form input,.reservoir-player-form select{margin-top:5px}.lead-check{padding-bottom:11px}.reservoir-roster-list{display:grid;gap:7px;max-height:560px;overflow:auto}.roster-row{display:grid;grid-template-columns:1.2fr .9fr auto;gap:12px;align-items:center;padding:10px 11px;background:rgba(255,255,255,.58);border:1px solid #e0d8c8;border-radius:12px}.roster-row>div:first-child{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.roster-meta{display:flex;gap:8px;align-items:center;color:#667269;font-size:12px}.level-pill,.lead-pill,.role-pill{display:inline-block;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:900;white-space:nowrap}.level-pill{background:#e0e9dd;color:#48624a}.lead-pill{background:#fee4b9;color:#8d591e}.role-pill{background:#dce9f0;color:#356b7e;text-transform:uppercase}.role-pill.reserve{background:#fff1a9;color:#806514}.team-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.team-card{background:rgba(255,255,255,.58);border:1px solid #ded6c6;border-radius:14px;padding:13px}.team-card h3{margin:0 0 8px;font-size:14px;color:#395548}.team-card.reserve-card{grid-column:1/-1;background:#fff8d9}.team-member{display:flex;align-items:center;gap:7px;padding:6px 3px;border-bottom:1px solid rgba(0,0,0,.06);font-size:13px}.team-member:last-child{border-bottom:0}.team-member.lead{font-weight:900}.team-member small{margin-left:auto;color:#8a8d84}.battle-plan{margin-bottom:18px}.battle-grid{display:grid;grid-template-columns:180px repeat(5,minmax(150px,1fr));border:1px solid var(--line);border-radius:14px;overflow:auto}.battle-head{padding:11px;background:#e7dfcf;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.4px;border-right:1px solid #d5ccbb}.battle-head.reserve-head{background:#fff0a9}.battle-phase{padding:11px;background:#f5f0e4;border-top:1px solid #ded6c6;border-right:1px solid #ded6c6;min-height:85px}.battle-phase strong{display:block}.battle-phase small{display:block;color:#788078;margin-top:5px}.battle-cell{padding:7px;background:rgba(255,255,255,.52);border-top:1px solid #ded6c6;border-right:1px solid #ded6c6}.battle-cell textarea{height:70px;margin:0;border:0;border-radius:8px;background:#fffdf7}.battle-cell.reserve-cell{background:#fff9d8}.panel-actions{display:flex;justify-content:flex-end;margin-top:14px}.assignment-grid{grid-template-columns:1.4fr .6fr}.assignment-help{margin-bottom:13px}.assignment-form{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-bottom:17px}.player-check-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:6px;margin-top:7px;max-height:180px;overflow:auto;padding:8px;border:1px solid #d8d1c0;border-radius:11px;background:#fffdf7}.player-check{display:flex;gap:7px;align-items:center;padding:6px 7px;border-radius:8px;background:#f0ebdf;font-size:12px}.player-check input{width:auto;margin:0}.assignment-board{display:grid;gap:9px}.assignment-group{border:1px solid #ded6c6;border-radius:13px;background:rgba(255,255,255,.57);padding:10px 11px}.assignment-group header>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.zone-code{display:inline-block;padding:5px 8px;border-radius:8px;background:#344e46;color:#fff;font-weight:950;font-size:11px;margin-right:6px}.mission-pill{display:inline-block;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:900;text-transform:uppercase}.mission-attack{background:#f5d9d4;color:#8f3e32}.mission-defend{background:#dce9f0;color:#356b7e}.mission-occupy{background:#dff1df;color:#377344}.mission-flex{background:#fee4b9;color:#8d591e}.assigned-players{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.assigned-chip{display:inline-flex;align-items:center;gap:4px;background:#ece5d6;border-radius:999px;padding:5px 6px 5px 9px;font-size:11px;font-weight:800}.assigned-chip form{display:inline}.assigned-chip button{border:0;background:#c9bda9;color:#5c5042;border-radius:50%;width:19px;height:19px;cursor:pointer;font-weight:900;padding:0}.event-notes form{display:grid;gap:13px}.event-notes .primary{justify-self:start}.zone-reference{margin-bottom:18px}.zone-table{min-width:1050px}.zone-table td:first-child{min-width:240px}.zone-row td:first-child{border-left:6px solid transparent}.zone-green td:first-child{border-left-color:#91cf4c}.zone-orange td:first-child{border-left-color:#ff9e10}.zone-red td:first-child{border-left-color:#ef2929}.zone-center td:first-child{border-left-color:#333}.zone-table strong{font-size:12px}.reservoir-stats{grid-template-columns:repeat(4,1fr)}
@media(max-width:1200px){.reservoir-main-grid,.assignment-grid{grid-template-columns:1fr}.reservoir-player-form{grid-template-columns:repeat(4,1fr)}.reservoir-player-form .primary,.reservoir-player-form .ghost{align-self:end}.battle-grid{grid-template-columns:150px repeat(5,170px)}.player-check-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.reservoir-toolbar{align-items:stretch;flex-direction:column}.new-event-form{align-items:stretch;display:grid;grid-template-columns:1fr}.reservoir-player-form{grid-template-columns:1fr 1fr}.reservoir-player-form .lead-check{grid-column:1/-1}.roster-row{grid-template-columns:1fr}.team-cards{grid-template-columns:1fr}.team-card.reserve-card{grid-column:auto}.assignment-form{grid-template-columns:1fr}.player-check-grid{grid-template-columns:repeat(2,1fr)}.reservoir-stats{grid-template-columns:repeat(2,1fr)}.reservoir-date-badge{width:86px;height:86px}.reservoir-date-badge b{font-size:21px}}
.form-label{display:block;font-size:12px;font-weight:850;color:#4f5e55}.player-selector{align-self:start}


/* Queue sorting */
th.sortable{cursor:pointer;user-select:none;padding-right:28px;position:sticky}th.sortable::after{content:'↕';position:absolute;right:10px;opacity:.35;font-size:12px}th.sortable.sort-asc::after{content:'▲';opacity:.85}th.sortable.sort-desc::after{content:'▼';opacity:.85}th.sortable:focus{outline:2px solid rgba(79,140,87,.45);outline-offset:-2px}
/* Reservoir version history */
.reservoir-version-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding-top:15px;padding-bottom:15px}.reservoir-version-bar>div{display:grid;gap:3px}.reservoir-version-bar small{color:var(--muted);font-size:11px}.reservoir-version-bar label{min-width:min(520px,48vw)}.version-readonly-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px;background:#fff1a9;border:1px solid #ddc95e;border-radius:14px;padding:12px 14px}.version-readonly-banner strong{display:block}.version-readonly-banner small{color:#74641e}.version-roster-grid{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:10px}.version-team{background:rgba(255,255,255,.58);border:1px solid #ded6c6;border-radius:13px;padding:12px}.version-team h3{margin:0 0 8px;font-size:13px}.version-team .team-member{font-size:12px}.version-assignments-table{min-width:760px}.version-notes{white-space:pre-wrap;line-height:1.55;background:rgba(255,255,255,.55);border:1px solid #ded6c6;border-radius:12px;padding:14px}.version-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.version-meta .chip{text-transform:none}
@media(max-width:900px){.reservoir-version-bar{align-items:stretch;flex-direction:column}.reservoir-version-bar label{min-width:0}.version-roster-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.version-roster-grid{grid-template-columns:1fr}}
