.detail-panel{max-height:calc(100vh - 150px);overflow:auto;width:360px}
.worker-roster{display:grid;gap:6px;margin:14px 0;padding-top:10px;border-top:1px solid var(--line)}
.worker-roster h3{margin:0 0 4px;color:var(--gold);font-size:13px;letter-spacing:.08em}
.detail-panel .worker-card{display:grid;grid-template-columns:34px 1fr;position:relative;text-align:left;margin:0;padding:8px 10px}
.worker-card>span{grid-row:1/3;font-size:24px;align-self:center}
.worker-card b,.worker-card small{display:block}
.worker-card small{color:#9db0b8}
.worker-card em{position:absolute;right:9px;top:9px;color:var(--gold);font-size:10px;font-style:normal}
.worker-card:disabled em{display:none}
.worker-card:disabled{opacity:.66}
.activity-badges{position:absolute;left:50%;top:-8px;translate:-50%;display:flex;gap:4px;z-index:3;pointer-events:none}
.activity-badges i{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--gold);border-radius:50%;background:rgba(5,14,20,.9);font-style:normal;font-size:14px;box-shadow:0 3px 8px rgba(0,0,0,.45)}
.activity-badges i.idle{animation:worker-idle 1.8s ease-in-out infinite}
.activity-badges i.busy{opacity:.48;translate:0 5px}
.vacancy-warning{position:absolute;z-index:4;left:50%;top:-14px;translate:-50%;padding:4px 9px;border:1px solid #9bc9e8;border-radius:14px;background:rgba(5,14,20,.9);color:#cceaff;font-weight:800;font-size:13px;font-style:italic;letter-spacing:-1px;text-shadow:0 0 7px #7cc7ff;animation:sleep-float 2.2s ease-in-out infinite;pointer-events:auto;cursor:pointer}
.production-card{display:grid;gap:5px;margin:12px 0;padding:12px;border:1px solid rgba(126,205,157,.3);border-radius:10px;background:rgba(43,112,68,.14)}
.production-card>b{color:#9fe1b7}.production-card>span{font-size:18px;color:var(--gold)}.production-card>small{color:#a9bbc2}
.offline-report{display:grid;gap:7px;margin:14px 0;padding:12px;border-radius:10px;background:rgba(255,255,255,.05)}
.offline-report div{display:flex;justify-content:space-between}.offline-report b{color:var(--gold)}
.offline-report b.negative{color:#ef9292}
.tax-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.detail-panel .tax-options button{padding:9px 4px}.tax-options button.active{border:1px solid var(--gold);color:var(--gold);background:rgba(239,204,104,.12)}.tax-options small{display:block;margin-top:4px;color:#9db0b8;font-size:10px}
.research-screen{width:min(1180px,94vw);height:calc(100vh - 105px);overflow:auto;padding:22px}.research-screen>h2{margin:0 0 14px;color:var(--gold);font-size:28px}.research-active{display:flex;justify-content:space-between;margin-bottom:14px;padding:12px 16px;border:1px solid var(--gold);border-radius:10px;background:rgba(239,204,104,.12)}.research-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.research-columns section{padding:14px;border-radius:14px;background:rgba(3,10,15,.72);border:1px solid var(--line)}.research-columns h3{margin:0 0 12px;color:#dbe6e9;font-size:14px;letter-spacing:.08em}.tech-card{position:relative;display:grid;grid-template-columns:42px 1fr;width:100%;min-height:104px;margin:8px 0;padding:12px;text-align:left;border:1px solid rgba(239,204,104,.25);border-radius:10px;background:rgba(255,255,255,.055)}.tech-card i{grid-row:1/5;font-style:normal;font-size:27px}.tech-card b,.tech-card span,.tech-card small,.tech-card em{display:block}.tech-card span{color:#afc3ca}.tech-card small{margin-top:5px;color:var(--gold)}.tech-card em{margin-top:5px;color:#8dd4a7;font-size:11px;font-style:normal}.tech-card.locked{opacity:.55;filter:grayscale(.55)}.tech-card.done{border-color:#72c991;background:rgba(52,145,82,.16)}
.academy-controls{display:grid;grid-template-columns:1fr auto;gap:10px;margin:0 0 14px}.academy-controls button{min-height:52px;padding:8px 15px;border-radius:9px;background:rgba(5,18,25,.84);border:1px solid rgba(239,204,104,.35);color:#e7edf0}.academy-controls .upgrade-academy{color:var(--gold)}.academy-controls small{display:block;margin-top:4px;color:#aebdc4}.academy-controls button:disabled{opacity:.48}
.quest-screen,.inventory-screen{width:min(900px,92vw);max-height:calc(100vh - 110px);overflow:auto;padding:24px;color:#e7edef}.quest-screen h2,.inventory-screen h2{color:var(--gold)}.quest-list,.inventory-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quest-card,.inventory-card{padding:15px;border:1px solid var(--line);border-radius:12px;background:rgba(4,13,19,.82)}.quest-card{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center}.quest-card i,.inventory-card i{font-size:29px;font-style:normal}.quest-card span,.quest-card small{display:block;color:#adbdc3}.quest-card button{padding:10px;border-radius:8px;background:rgba(239,204,104,.16);border:1px solid rgba(239,204,104,.4);color:var(--gold)}.quest-card.done{border-color:#70bd8c}.quest-card.claimed{opacity:.5}.inventory-card{display:grid;grid-template-columns:45px 1fr}.inventory-card b{font-size:19px}.inventory-card span{display:block;color:var(--gold);font-size:24px}.inventory-card small{color:#aabac0}
.military-training{display:grid;gap:6px;margin:12px 0;padding:10px;border:1px solid rgba(193,92,78,.35);border-radius:10px;background:rgba(105,35,29,.12)}.military-training h3{margin:0 0 4px;color:#efb08f}.detail-panel .train-unit{margin:0}.train-unit small{display:block;color:#aebdc4;margin-top:3px}
.role-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:12px 0}.detail-panel .role-picker button{display:grid;grid-template-columns:30px 1fr;text-align:left;margin:0;padding:8px}.role-picker i{grid-row:1/3;font-size:22px;font-style:normal}.role-picker small{color:#9db0b8}.role-picker button.active{border:1px solid var(--gold);color:var(--gold)}
.auth-screen{position:fixed;z-index:500;inset:0;display:grid;place-items:center;background:linear-gradient(rgba(2,9,14,.5),rgba(2,9,14,.82)),url('assets/frostheim_upper_city.png') center/cover}.auth-screen.hidden{display:none}.auth-card{width:min(430px,calc(100vw - 32px));padding:28px;border:1px solid rgba(239,204,104,.32);border-radius:18px;background:rgba(4,13,20,.93);box-shadow:0 25px 80px rgba(0,0,0,.55);backdrop-filter:blur(12px)}.auth-brand{text-align:center}.auth-brand>span,.auth-brand:first-letter{color:var(--gold)}.auth-brand h1{margin:4px;color:var(--gold);letter-spacing:.12em}.auth-brand p{color:#aebdc4}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;margin:22px 0 14px;border-bottom:1px solid var(--line)}.auth-tabs button{padding:12px;color:#9fafb5;background:transparent}.auth-tabs button.active{color:var(--gold);border-bottom:2px solid var(--gold)}.auth-card form{display:grid;gap:12px}.auth-card form.hidden{display:none}.auth-card label{display:grid;gap:6px;color:#dbe5e8;font-size:13px}.auth-card input{padding:12px;border:1px solid var(--line);border-radius:8px;background:#09151c;color:white;font:inherit}.auth-card form>button{padding:13px;margin-top:5px;border:1px solid rgba(239,204,104,.45);border-radius:8px;background:rgba(239,204,104,.15);color:var(--gold);font-weight:800}.auth-message{min-height:20px;margin:13px 0 0;color:#ef9292;text-align:center}
.update-screen{position:fixed;z-index:600;inset:0;display:grid;place-items:center;background:linear-gradient(rgba(2,8,13,.5),rgba(2,8,13,.88)),url('assets/frostheim_upper_city.png') center/cover}.update-screen.hidden{display:none}.update-card{width:min(560px,calc(100vw - 36px));padding:34px;text-align:center;border:1px solid rgba(239,204,104,.42);border-radius:18px;background:rgba(3,12,18,.94);box-shadow:0 25px 90px #000}.update-rune{display:block;color:var(--gold);font-size:52px}.update-card small{color:#9eb1b9;letter-spacing:.18em}.update-card h2{margin:10px 0 22px;color:var(--gold)}.update-progress{height:14px;overflow:hidden;border:1px solid rgba(239,204,104,.35);border-radius:8px;background:#071116}.update-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#8b6a25,var(--gold),#fff0a6);box-shadow:0 0 16px rgba(239,204,104,.7);transition:width .25s ease}.update-card p{margin:16px 0 5px;color:#c7d2d6}.update-card>b{color:var(--gold);font-size:20px}.news-screen{position:fixed;z-index:550;inset:0;display:grid;place-items:center;background:rgba(2,8,13,.72);backdrop-filter:blur(8px)}.news-screen.hidden{display:none}.news-card{width:min(540px,calc(100vw - 36px));padding:30px;border:1px solid rgba(239,204,104,.4);border-radius:17px;background:linear-gradient(145deg,rgba(9,24,31,.98),rgba(3,11,17,.98));box-shadow:0 24px 80px #000;color:#dbe5e8}.news-card>small{color:var(--gold);letter-spacing:.16em}.news-card h2{margin:8px 0;color:#f4df9d}.news-card p{color:#b7c7cd}.news-card li{margin:9px 0}.news-card button{width:100%;margin-top:16px;padding:13px;border:1px solid rgba(239,204,104,.5);border-radius:8px;background:rgba(239,204,104,.14);color:var(--gold);font-weight:800}
@keyframes worker-idle{50%{translate:0 -4px;box-shadow:0 5px 12px rgba(239,204,104,.28)}}
@keyframes sleep-float{50%{translate:-50% -7px;opacity:.62}}
@media(max-width:900px){.detail-panel{width:auto;max-height:calc(100vh - 145px)}.research-columns{grid-template-columns:1fr}.research-screen{height:calc(100vh - 80px);padding:10px}.academy-controls,.quest-list,.inventory-grid{grid-template-columns:1fr}.news-screen{display:block;overflow-y:auto;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.news-card{width:100%;min-height:min-content;max-height:calc(100dvh - 24px);padding:20px;overflow-y:auto}.news-card button{position:sticky;bottom:0;z-index:1;background:#192520;box-shadow:0 -10px 20px rgba(3,11,17,.92)}}
