:root {
  color-scheme: dark;
  --bg: #080d17;
  --bg-soft: #0c1422;
  --panel: rgba(17, 28, 45, .86);
  --panel-solid: #111c2d;
  --line: rgba(167, 197, 226, .14);
  --line-strong: rgba(167, 197, 226, .28);
  --text: #f4f7fb;
  --muted: #96a8bd;
  --mint: #65edca;
  --mint-dark: #2ebc9c;
  --gold: #ffc966;
  --violet: #ae8aff;
  --danger: #ff7685;
  --success: #55dea0;
  --radius: 18px;
  --shadow: 0 24px 70px rgba(0, 0, 0, .35);
}

/* Regrywalność 2.0: tablica dnia, rotacje, mapa, kolekcje i przygody dwuosobowe */
.weekly-rotation,.regularity-strip,.movement-strip,.weekly-region-bonus{display:flex;align-items:center;gap:18px;margin:16px 0;padding:18px 22px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,rgba(26,35,57,.96),rgba(18,45,49,.88));color:var(--text);text-decoration:none}.weekly-rotation>span,.regularity-strip>span,.movement-strip>span,.weekly-region-bonus>span{display:grid;place-items:center;flex:0 0 52px;height:52px;border-radius:15px;background:rgba(63,224,190,.12);color:var(--mint);font-size:26px}.weekly-rotation div,.regularity-strip div,.movement-strip div,.weekly-region-bonus div{min-width:0;flex:1}.weekly-rotation small,.regularity-strip small,.movement-strip small,.weekly-region-bonus small{display:block;color:var(--mint);font-weight:800;letter-spacing:.09em}.weekly-rotation b,.regularity-strip b,.movement-strip b,.weekly-region-bonus b{display:block;margin:3px 0;font-size:18px}.weekly-rotation p,.regularity-strip p,.movement-strip p,.weekly-region-bonus p{margin:0;color:var(--muted)}.weekly-rotation em{font-style:normal;color:#ffd574;font-weight:800}.weekly-region-bonus.is-active{border-color:rgba(63,224,190,.5)}
.daily-board{margin:22px 0;padding:24px}.daily-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.daily-card{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:18px;border:1px solid var(--line);border-radius:16px;background:rgba(8,16,28,.52)}.daily-card>span{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:rgba(139,104,255,.16);color:#bca8ff;font-weight:900}.daily-card>div{min-width:0}.daily-card small{color:var(--muted)}.daily-card h3{margin:4px 0 7px}.daily-card p{min-height:44px;margin:0 0 8px;color:var(--muted)}.daily-card b{font-size:13px;color:#ffd574}.daily-card form,.daily-card>a,.daily-card>small{grid-column:2}.daily-card.is-selected{border-color:rgba(63,224,190,.55);background:rgba(24,66,63,.32)}.daily-card.is-complete>span{background:rgba(63,224,190,.2);color:var(--mint)}
.next-actions{margin:26px 0}.next-actions>div:last-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.next-actions a{display:flex;align-items:center;gap:14px;padding:16px;text-decoration:none;color:var(--text)}.next-actions a>span{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:rgba(255,255,255,.05);color:var(--mint);font-size:22px}.next-actions a>div{flex:1}.next-actions a b,.next-actions a small{display:block}.next-actions a small{margin-top:3px;color:var(--muted)}
.difficulty-form{display:grid;gap:10px;margin-top:14px}.difficulty-form label{font-size:12px;color:var(--muted)}.difficulty-form select{width:100%;margin-top:5px}.turn-battle-hero .eyebrow{text-transform:uppercase}
.shared-map-road{position:relative;display:grid;gap:16px;margin:24px auto;max-width:920px}.shared-map-road:before{content:"";position:absolute;left:34px;top:30px;bottom:30px;width:2px;background:linear-gradient(var(--mint),rgba(139,104,255,.2))}.map-tile{position:relative;display:flex;align-items:center;gap:20px;padding:22px;margin-left:0}.map-tile>span{z-index:1;display:grid;place-items:center;flex:0 0 68px;height:68px;border-radius:50%;background:#111d2e;border:2px solid var(--line);font-size:25px}.map-tile>div{flex:1}.map-tile h2,.map-tile p{margin:4px 0}.map-tile small{color:var(--mint);font-weight:800}.map-tile--locked{opacity:.62}.map-tile--active{border-color:rgba(63,224,190,.55)}.map-action{display:flex;align-items:center;gap:18px;padding:22px}.map-action>span{font-size:35px;color:var(--mint)}.map-action>div{flex:1}.map-action h2,.map-action p{margin:4px 0}
.collection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.collection-card{padding:22px}.collection-card header{display:flex;gap:14px}.collection-card header>span{font-size:28px;color:#bca8ff}.collection-card h2,.collection-card p{margin:4px 0}.collection-items{display:grid;gap:8px;margin:18px 0}.collection-items>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:11px;border-radius:11px;background:rgba(255,255,255,.035);opacity:.68}.collection-items>div.is-found{opacity:1}.collection-items b,.collection-items small{display:block}.collection-items form{grid-column:3;grid-row:1/3}.collection-card footer{display:flex;justify-content:space-between;gap:10px;padding-top:14px;border-top:1px solid var(--line)}.collection-card.is-complete{border-color:rgba(255,213,116,.48)}
.specialization-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.specialization-card{display:flex;flex-direction:column;padding:24px}.specialization-card>span{font-size:38px;color:var(--mint)}.specialization-card h2{margin:10px 0 4px}.specialization-card p{flex:1;color:var(--muted)}.specialization-card>div{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 18px}.specialization-card>div b{padding:5px 8px;border-radius:8px;background:rgba(63,224,190,.1);color:var(--mint);font-size:12px}.specialization-card.is-chosen{border-color:rgba(63,224,190,.6);background:linear-gradient(145deg,rgba(27,73,68,.45),rgba(17,25,41,.96))}
.guild-project{margin:22px 0;padding:22px}.guild-project header{display:flex;align-items:center;gap:16px}.guild-project header>span{font-size:32px}.guild-project header>div{flex:1}.guild-project header h2,.guild-project header p{margin:3px 0}.guild-project header>b{font-size:23px}.project-contributions{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.guild-project-picker>div:last-child{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.guild-project-picker form{display:flex;flex-direction:column;padding:18px}.guild-project-picker form>span{font-size:28px}.guild-project-picker form p{flex:1;color:var(--muted)}
.duo-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.duo-rules>div{padding:15px;border:1px solid var(--line);border-radius:14px;background:rgba(15,25,41,.82)}.duo-rules b,.duo-rules span{display:block}.duo-rules span{margin-top:4px;color:var(--muted)}.duo-board,.duo-definitions{display:grid;gap:12px}.duo-board-card,.duo-definition{display:flex;align-items:center;gap:16px;padding:18px}.duo-board-card>span,.duo-definition>span{font-size:30px;color:var(--mint)}.duo-board-card>div,.duo-definition>div:first-of-type{flex:1}.duo-board-card h3,.duo-board-card p,.duo-definition h3,.duo-definition p{margin:4px 0}.duo-board-card p,.duo-definition p{color:var(--muted)}.duo-definition details{margin-top:8px}.duo-definition details form{display:grid;gap:8px;margin-top:10px}.duo-hub-columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:20px;margin-top:28px}.duo-hub-columns>aside{align-self:start;padding:20px;position:sticky;top:90px}.duo-mine-row{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none}.duo-mine-row>div{flex:1}.duo-mine-row b,.duo-mine-row small{display:block}.duo-mine-row small{color:var(--muted)}.duo-detail{margin:20px 0;padding:24px}.duo-detail>header{display:flex;justify-content:space-between;gap:16px}.duo-stage{margin:20px 0;padding:20px;border-radius:16px;background:rgba(8,16,28,.55)}.duo-stage blockquote{margin:14px 0;padding:15px;border-left:3px solid var(--mint);background:rgba(63,224,190,.08)}.duo-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.duo-actions label input{position:absolute;opacity:0}.duo-actions label span{display:block;height:100%;padding:14px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.duo-actions label input:checked+span{border-color:var(--mint);background:rgba(63,224,190,.1)}.duo-actions b,.duo-actions small{display:block}.duo-chat ul{max-height:360px;overflow:auto;padding:0;list-style:none}.duo-chat li{padding:11px;border-bottom:1px solid var(--line)}.duo-chat p{margin:5px 0}.duo-chat form{display:flex;gap:10px}.duo-chat textarea{flex:1}
.replay-settings,.rotation-editor{margin:18px 0;padding:22px}.admin-duo-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.8fr);gap:20px}.admin-duo-grid>section{display:grid;gap:16px;align-content:start}.duo-stage-editor{border:1px solid var(--line);border-radius:14px;background:rgba(8,16,28,.35);overflow:hidden}.duo-stage-editor>summary{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer}.duo-stage-editor>summary small{color:var(--muted)}.duo-stage-editor>.studio-form-grid{padding:4px 16px 18px}.communication-card.is-hidden{opacity:.6}.table-scroll{overflow:auto}
@media(max-width:980px){.daily-card-grid,.specialization-grid,.guild-project-picker>div:last-child{grid-template-columns:1fr}.collection-grid,.next-actions>div:last-child{grid-template-columns:1fr}.duo-hub-columns,.admin-duo-grid{grid-template-columns:1fr}.duo-hub-columns>aside{position:static}.weekly-rotation,.weekly-region-bonus{align-items:flex-start;flex-wrap:wrap}.weekly-rotation em{width:100%}}
@media(max-width:640px){.daily-board{padding:16px}.daily-card{grid-template-columns:auto 1fr}.weekly-rotation,.regularity-strip,.movement-strip,.map-action{align-items:flex-start;padding:15px}.weekly-rotation>span,.regularity-strip>span,.movement-strip>span{flex-basis:42px;height:42px}.duo-rules{grid-template-columns:1fr}.duo-board-card,.duo-definition{align-items:flex-start;flex-wrap:wrap}.duo-board-card>form,.duo-definition>div:last-child{width:100%}.duo-actions{grid-template-columns:1fr}.duo-detail>header,.duo-chat form{flex-direction:column}.collection-items>div{grid-template-columns:auto 1fr}.collection-items form{grid-column:2;grid-row:auto}.shared-map-road:before{left:24px}.map-tile>span{flex-basis:48px;height:48px}.project-contributions form{width:100%}.project-contributions button{width:100%}}

/* Walka turowa 3.0 */
.turn-combat-preview{margin:12px 0;padding:10px 12px;border:1px solid rgba(93,230,210,.18);border-radius:12px;background:rgba(93,230,210,.06);display:grid;gap:3px}.turn-combat-preview b{color:var(--mint,#63ead7);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.turn-combat-preview span{font-size:.78rem;color:var(--muted,#9cb0ca)}
.turn-battle-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:20px}.turn-battle-hero h1{margin:.35rem 0;font-size:clamp(1.8rem,4vw,3.4rem)}.turn-battle-hero h1 em{display:block;color:var(--mint,#63ead7);font-style:normal;font-size:.42em;letter-spacing:.16em;text-transform:uppercase}.turn-battle-hero>div>p{max-width:760px;color:var(--muted,#9cb0ca)}.turn-battle-hero>b{font-size:1.1rem;border:1px solid rgba(93,230,210,.35);border-radius:999px;padding:10px 16px;color:var(--mint,#63ead7);white-space:nowrap}
.turn-fighters{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}.turn-fighter{background:linear-gradient(145deg,rgba(19,34,52,.98),rgba(13,24,40,.98));border:1px solid rgba(113,151,194,.22);border-radius:18px;padding:18px}.turn-fighter.is-enemy{border-color:rgba(244,102,124,.25)}.turn-fighter header{display:flex;align-items:center;gap:12px}.turn-fighter header>span{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:rgba(93,230,210,.1);font-size:1.35rem}.turn-fighter.is-enemy header>span{background:rgba(244,102,124,.1)}.turn-fighter header div{flex:1}.turn-fighter h2{margin:2px 0;font-size:1.25rem}.turn-fighter header small{color:var(--mint,#63ead7);font-weight:700;letter-spacing:.09em}.turn-fighter header>b{font-size:1rem}.turn-hp{height:12px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden;margin:14px 0}.turn-hp i{height:100%;display:block;background:linear-gradient(90deg,#50d6a7,#71ead8);border-radius:inherit;transition:width .25s}.turn-fighter.is-enemy .turn-hp i{background:linear-gradient(90deg,#f15d78,#ff9978)}
.turn-statuses{display:flex;gap:6px;flex-wrap:wrap}.turn-status{font-size:.72rem;padding:5px 8px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(255,255,255,.04)}.turn-status--poison{color:#8eea8c}.turn-status--burn{color:#ff9872}.turn-status--stun{color:#ffd66e}.turn-status--barrier,.turn-status--guard{color:#75dcea}.turn-status--weaken{color:#d4a8ff}.turn-no-status{color:var(--muted,#9cb0ca)}
.turn-phase{display:flex;gap:14px;align-items:center;border:1px solid rgba(255,190,90,.24);background:rgba(255,166,72,.07);border-radius:16px;padding:13px 16px;margin-bottom:16px}.turn-phase>span{font-weight:800;color:#ffc06c;white-space:nowrap}.turn-phase div{display:grid;gap:2px}.turn-phase small{color:var(--muted,#9cb0ca)}
.turn-command{margin:0 0 18px}.turn-action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}.turn-action-grid label{cursor:pointer}.turn-action-grid input{position:absolute;opacity:0;pointer-events:none}.turn-action-grid span{height:100%;min-height:104px;border:1px solid rgba(113,151,194,.22);border-radius:14px;padding:14px;display:grid;align-content:center;text-align:center;gap:4px;font-size:1.35rem;background:rgba(255,255,255,.025)}.turn-action-grid b{font-size:.88rem}.turn-action-grid small{font-size:.7rem;color:var(--muted,#9cb0ca)}.turn-action-grid input:checked+span{border-color:var(--mint,#63ead7);background:rgba(93,230,210,.1);box-shadow:0 0 0 2px rgba(93,230,210,.07)}.turn-action-grid input:disabled+span{opacity:.35;cursor:not-allowed}.turn-command-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.turn-style-rules{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:14px 0}.turn-style-rules span{padding:8px;border-radius:9px;background:rgba(255,255,255,.035);font-size:.72rem;text-align:center}.turn-submit{display:flex;align-items:center;gap:14px;margin-top:14px}.turn-submit small{color:var(--muted,#9cb0ca)}
.turn-wait,.turn-finished{display:flex;align-items:center;gap:18px;margin-bottom:18px}.turn-wait>span,.turn-finished>span{font-size:2.4rem}.turn-wait>div,.turn-finished>div{flex:1}.turn-wait h2,.turn-finished h2{margin:3px 0}.turn-finished.is-win{border-color:rgba(93,230,210,.35)}.turn-finished.is-loss{border-color:rgba(244,102,124,.28)}
.turn-log ol{list-style:none;padding:0;margin:0;display:grid;gap:8px}.turn-log-row{display:grid;grid-template-columns:34px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid rgba(113,151,194,.14);border-radius:12px;background:rgba(255,255,255,.018)}.turn-log-row>span{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:rgba(93,230,210,.08);font-weight:800}.turn-log-row.is-opponent>span{background:rgba(244,102,124,.08)}.turn-log-row p{margin:3px 0}.turn-log-row small,.turn-log-row em{display:block;color:var(--muted,#9cb0ca);font-size:.74rem}.turn-log-row em{color:#9edbce}.turn-log-row>b{font-size:.75rem;color:var(--mint,#63ead7);text-align:right}.turn-log-row.is-opponent>b{color:#ff8a9d}
.turn-duel-list{display:grid;gap:10px;margin-bottom:22px}.turn-duel-row{display:grid;grid-template-columns:44px 1fr auto;gap:13px;align-items:center;border:1px solid rgba(113,151,194,.18);border-radius:15px;background:rgba(19,34,52,.8);padding:14px}.turn-duel-row.is-my-turn{border-color:rgba(93,230,210,.36);background:rgba(93,230,210,.055)}.turn-duel-row>span{font-size:1.4rem}.turn-duel-row h3{margin:2px 0}.turn-duel-row p{margin:0;color:var(--muted,#9cb0ca);font-size:.78rem}.turn-duel-rules{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.turn-duel-rules span{font-size:.69rem;border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:5px 8px}
.shop-buy-row{display:grid!important;gap:8px}.shop-buy-row form{display:flex;align-items:end;gap:8px}.shop-buy-row label{display:grid;gap:3px;font-size:.72rem}.shop-buy-row input[type=number]{width:82px;padding:8px}.shop-buy-row label small{color:var(--mint,#63ead7);white-space:nowrap}
.admin-alert-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:20px}.admin-alert-card{display:grid;grid-template-columns:52px 1fr auto;gap:14px;align-items:center;padding:18px;border-radius:17px;background:rgba(19,34,52,.86);border:1px solid rgba(113,151,194,.18);color:inherit;text-decoration:none}.admin-alert-card.has-items{border-color:rgba(255,183,77,.35);background:linear-gradient(145deg,rgba(255,163,66,.07),rgba(19,34,52,.9))}.admin-alert-card>span{font-size:1.55rem}.admin-alert-card h2{margin:3px 0}.admin-alert-card p{margin:0;color:var(--muted,#9cb0ca);font-size:.8rem}.admin-alert-card>div>small{color:var(--mint,#63ead7);font-weight:800}.admin-alert-card>b{font-size:1.7rem}.admin-alert-feed{list-style:none;padding:0;margin:0;display:grid;gap:8px}.admin-alert-feed li{display:flex;align-items:center;gap:12px;padding:10px;border-bottom:1px solid rgba(255,255,255,.07)}.admin-alert-feed li>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:rgba(255,183,77,.1)}.admin-alert-feed small{display:block;color:var(--muted,#9cb0ca)}
@media(max-width:760px){.turn-battle-hero{align-items:flex-start;flex-direction:column}.turn-fighters,.turn-command-options,.admin-alert-grid{grid-template-columns:1fr}.turn-action-grid{grid-template-columns:1fr 1fr}.turn-style-rules{grid-template-columns:1fr 1fr}.turn-duel-row{grid-template-columns:36px 1fr}.turn-duel-row>a{grid-column:1/-1}.turn-log-row{grid-template-columns:30px 1fr}.turn-log-row>b{grid-column:2;text-align:left}.turn-wait,.turn-finished{align-items:flex-start;flex-wrap:wrap}.turn-wait>a,.turn-finished>a{width:100%}.shop-buy-row form{align-items:stretch;flex-wrap:wrap}}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

html { min-height: 100%; overflow-x: clip; scroll-behavior: smooth; }

body {
  min-height: 100vh;
  margin: 0;
  background:
    radial-gradient(circle at 12% 10%, rgba(66, 227, 190, .08), transparent 30rem),
    radial-gradient(circle at 88% 24%, rgba(148, 110, 255, .08), transparent 34rem),
    var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.55;
  overflow-x: hidden;
}

button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
p, h1, h2, h3, blockquote { margin-top: 0; }

.ambient {
  position: fixed;
  z-index: -1;
  width: 34rem;
  height: 34rem;
  border: 1px solid rgba(101, 237, 202, .04);
  border-radius: 50%;
  pointer-events: none;
}

.ambient::before, .ambient::after {
  content: "";
  position: absolute;
  inset: 12%;
  border: inherit;
  border-radius: inherit;
}

.ambient::after { inset: 28%; }
.ambient--one { left: -20rem; top: 12rem; }
.ambient--two { right: -22rem; top: -8rem; border-color: rgba(174, 138, 255, .045); }

.topbar {
  position: sticky;
  z-index: 20;
  top: 0;
  min-height: 74px;
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 12px clamp(18px, 4vw, 54px);
  background: rgba(8, 13, 23, .82);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}

.brand { display: inline-flex; align-items: center; gap: 12px; min-width: max-content; }
.brand-mark {
  width: 43px;
  height: 43px;
  display: grid;
  place-items: center;
  color: #07120f;
  background: linear-gradient(135deg, var(--mint), #b0ffe9);
  border: 1px solid rgba(255, 255, 255, .46);
  border-radius: 13px 4px 13px 4px;
  font-family: Georgia, serif;
  font-size: 19px;
  font-weight: 800;
  box-shadow: 0 0 30px rgba(101, 237, 202, .18);
  transform: rotate(-2deg);
}

.brand > span:last-child { display: grid; line-height: 1.08; }
.brand b { font-family: Georgia, serif; font-size: 19px; letter-spacing: .02em; }
.brand small { margin-top: 4px; color: var(--muted); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }

.resource-strip { display: flex; gap: 8px; margin-left: auto; }
.resource-strip span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 7px 11px;
  color: var(--muted);
  background: rgba(255, 255, 255, .035);
  border: 1px solid var(--line);
  border-radius: 10px;
  font-size: 12px;
}
.resource-strip b { color: var(--text); font-variant-numeric: tabular-nums; }

.account-chip { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.resource-strip + .account-chip { margin-left: 0; }
.account-chip > span:nth-child(2) { display: grid; min-width: 0; max-width: 150px; line-height: 1.15; }
.account-profile-link { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 3px; border-radius: 12px; }
.account-profile-link:hover { background: rgba(101,237,202,.05); }
.account-profile-link > span:last-child { display: grid; min-width: 0; max-width: 150px; line-height: 1.15; }
.account-chip small { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.account-chip b { margin-top: 3px; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.avatar-dot {
  width: 36px;
  height: 36px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  color: var(--mint);
  background: rgba(101, 237, 202, .09);
  border: 1px solid rgba(101, 237, 202, .25);
  border-radius: 50%;
  font-weight: 800;
}

.link-button {
  padding: 5px;
  color: var(--muted);
  background: none;
  border: 0;
  cursor: pointer;
  font-size: 12px;
}
.link-button:hover { color: var(--mint); }
.link-button--danger { color: #e98b98; }
.link-button--danger:hover { color: var(--danger); }
.logout-button b { display: none; }

.sidebar {
  position: fixed;
  z-index: 10;
  top: 74px;
  bottom: 0;
  left: 0;
  width: 220px;
  display: flex;
  flex-direction: column;
  padding: 22px 16px;
  background: rgba(8, 14, 24, .66);
  border-right: 1px solid var(--line);
}
.sidebar nav { display: grid; flex: 1; align-content: start; gap: 7px; overflow-y: auto; scrollbar-width: none; }
.sidebar nav::-webkit-scrollbar { display: none; }
.nav-link {
  min-height: 49px;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 9px 13px;
  color: var(--muted);
  border: 1px solid transparent;
  border-radius: 12px;
  transition: .18s ease;
}
.nav-link span { min-width: 24px; color: var(--mint); font-family: Georgia, serif; font-weight: 800; text-align: center; }
.nav-link strong { font-size: 13px; }
.nav-link:hover { color: var(--text); background: rgba(255,255,255,.035); }
.nav-link.is-active { color: var(--text); background: rgba(101, 237, 202, .08); border-color: rgba(101, 237, 202, .16); }

.sidebar-rune {
  display: grid;
  gap: 4px;
  margin-top: auto;
  padding: 15px;
  background: linear-gradient(145deg, rgba(174, 138, 255, .1), rgba(101, 237, 202, .035));
  border: 1px solid rgba(174, 138, 255, .16);
  border-radius: 14px;
}
.sidebar-rune span { color: var(--muted); font-size: 10px; letter-spacing: .11em; text-transform: uppercase; }
.sidebar-rune b { color: var(--violet); font-family: Georgia, serif; font-size: 20px; }
.sidebar-rune small { color: #c7d0dd; font-size: 10px; }

.page-content { width: min(1180px, calc(100% - 40px)); min-height: calc(100vh - 150px); margin: 0 auto; padding: 46px 0 72px; }
.app-shell .page-content { width: min(1160px, calc(100% - 270px)); margin-left: max(250px, calc((100vw - 1160px + 220px) / 2)); }
.footer { display: flex; justify-content: space-between; gap: 20px; padding: 26px clamp(18px,4vw,54px); color: #718299; border-top: 1px solid var(--line); font-size: 11px; }
.app-shell .footer { padding-left: 250px; }
.bottom-nav { display: none; }

.panel {
  background: linear-gradient(145deg, rgba(18, 30, 48, .91), rgba(12, 21, 35, .91));
  border: 1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: 0 16px 50px rgba(0, 0, 0, .16);
}

.button {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 10px 18px;
  color: var(--text);
  background: transparent;
  border: 1px solid var(--line-strong);
  border-radius: 11px;
  cursor: pointer;
  font-weight: 750;
  font-size: 13px;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.button:hover { transform: translateY(-1px); border-color: rgba(101, 237, 202, .45); }
.button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible { outline: 3px solid rgba(101, 237, 202, .32); outline-offset: 2px; }
.button--primary { color: #061511; background: linear-gradient(135deg, var(--mint), #93f4da); border-color: transparent; box-shadow: 0 12px 30px rgba(101, 237, 202, .16); }
.button--ghost { background: rgba(255,255,255,.025); }
.button--light { color: #0d1720; background: #f1f6f5; border-color: #fff; }
.button--danger { background: rgba(255, 118, 133, .08); border-color: rgba(255, 118, 133, .28); }
.button--success { color: #07160f; background: var(--success); border-color: transparent; }
.button--small { min-height: 34px; padding: 6px 11px; font-size: 11px; }
.button--wide { width: 100%; }
.button:disabled { opacity: .55; cursor: not-allowed; }
.button.is-loading { opacity: .65; pointer-events: none; }

.eyebrow { display: flex; align-items: center; gap: 9px; margin-bottom: 15px; color: var(--mint); font-size: 11px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.eyebrow span { width: 24px; height: 1px; background: var(--mint); }
.tag { display: inline-block; color: var(--mint); font-size: 9px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }

h1, h2, h3 { color: var(--text); line-height: 1.12; }
h1 { font-family: Georgia, "Times New Roman", serif; font-size: clamp(36px, 5.3vw, 72px); font-weight: 500; letter-spacing: -.035em; }
h2 { font-family: Georgia, "Times New Roman", serif; font-size: 25px; font-weight: 500; }
h3 { font-size: 15px; }

.hero { min-height: 620px; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(390px, .95fr); align-items: center; gap: 60px; }
.hero-copy { padding: 40px 0; }
.hero h1 { margin-bottom: 25px; }
.hero h1 em { color: var(--mint); font-style: normal; }
.hero-copy > p { max-width: 650px; color: #a7b7c9; font-size: 18px; line-height: 1.7; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.trust-row { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 27px; color: #7f93aa; font-size: 11px; }
.trust-row span::first-letter { color: var(--mint); }

.hero-art { position: relative; min-height: 520px; display: grid; place-items: center; }
.orbit { position: absolute; border: 1px solid rgba(101, 237, 202, .12); border-radius: 50%; }
.orbit::before { content: ""; position: absolute; top: 50%; left: -4px; width: 8px; height: 8px; background: var(--mint); border-radius: 50%; box-shadow: 0 0 20px var(--mint); }
.orbit--one { width: 420px; height: 420px; transform: rotate(24deg); }
.orbit--two { width: 310px; height: 310px; border-color: rgba(174, 138, 255, .13); transform: rotate(-40deg); }
.rune-card {
  position: relative;
  z-index: 2;
  width: 250px;
  height: 355px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 30px;
  background:
    linear-gradient(150deg, rgba(101, 237, 202, .12), transparent 45%),
    linear-gradient(330deg, rgba(174, 138, 255, .13), transparent 45%),
    #111b2b;
  border: 1px solid rgba(164, 226, 210, .28);
  border-radius: 42px 10px 42px 10px;
  box-shadow: 0 40px 100px rgba(0,0,0,.45), inset 0 0 40px rgba(101,237,202,.03);
  transform: rotate(3deg);
}
.rune-card::before, .rune-card::after { content: "✦"; position: absolute; color: rgba(101,237,202,.4); }
.rune-card::before { left: 18px; top: 18px; }
.rune-card::after { right: 18px; bottom: 18px; }
.rune-card small, .rune-card span { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .21em; }
.rune-card strong { margin: 14px 0 24px; color: var(--mint); font-family: Georgia, serif; font-size: 100px; line-height: .9; text-shadow: 0 0 34px rgba(101,237,202,.2); }
.floating-card { position: absolute; z-index: 3; display: grid; gap: 2px; padding: 12px 16px; background: rgba(19,31,48,.92); border: 1px solid var(--line-strong); border-radius: 12px; box-shadow: var(--shadow); }
.floating-card b { color: var(--gold); font-size: 13px; }
.floating-card span { color: var(--muted); font-size: 10px; }
.floating-card--a { left: 1%; top: 25%; }
.floating-card--b { right: -2%; bottom: 25%; }

.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 22px; }
.feature-grid article { min-height: 190px; padding: 26px; background: rgba(15, 25, 40, .62); border: 1px solid var(--line); border-radius: var(--radius); }
.feature-grid h2 { margin: 18px 0 9px; font-size: 20px; }
.feature-grid p { color: var(--muted); font-size: 13px; }
.feature-icon { width: 38px; height: 38px; display: grid; place-items: center; color: var(--mint); background: rgba(101,237,202,.08); border: 1px solid rgba(101,237,202,.15); border-radius: 10px; font-family: Georgia, serif; font-weight: 800; }

.auth-layout { min-height: 620px; display: grid; grid-template-columns: minmax(280px, .85fr) minmax(420px, 1.15fr); align-items: center; gap: clamp(36px, 8vw, 110px); }
.auth-layout--compact { grid-template-columns: 1fr 420px; }
.auth-intro h1 { font-size: clamp(44px, 5vw, 68px); }
.auth-intro > p { max-width: 570px; color: var(--muted); font-size: 16px; }
.privacy-card { display: grid; gap: 6px; margin-top: 28px; padding: 18px; background: rgba(101,237,202,.045); border-left: 2px solid var(--mint); border-radius: 0 12px 12px 0; }
.privacy-card b { color: var(--mint); font-size: 12px; }
.privacy-card span { color: var(--muted); font-size: 12px; }

.form-panel { display: grid; gap: 17px; padding: clamp(24px, 4vw, 38px); }
.form-panel h2 { margin-bottom: 0; }
label { display: grid; gap: 7px; color: #dbe4ee; font-size: 12px; font-weight: 700; }
label small { color: #768ba2; font-weight: 500; }
input, select, textarea {
  width: 100%;
  min-height: 46px;
  padding: 10px 13px;
  color: var(--text);
  background: rgba(3, 9, 16, .48);
  border: 1px solid var(--line-strong);
  border-radius: 10px;
}
textarea { min-height: 100px; resize: vertical; }
input:hover, select:hover, textarea:hover { border-color: rgba(101,237,202,.33); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.form-divider { display: flex; align-items: center; gap: 13px; color: #6f8298; font-size: 9px; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.form-divider::before, .form-divider::after { content: ""; height: 1px; flex: 1; background: var(--line); }
.checkbox { display: flex; grid-template-columns: none; flex-direction: row; align-items: flex-start; gap: 10px; color: var(--muted); font-weight: 500; }
.checkbox input { width: 17px; min-height: 17px; margin-top: 1px; accent-color: var(--mint); }
.form-foot { margin: 0; color: var(--muted); font-size: 12px; text-align: center; }
.form-foot a { color: var(--mint); }

.notice { position: relative; z-index: 5; margin-bottom: 20px; padding: 13px 17px; border: 1px solid; border-radius: 11px; font-size: 12px; }
.notice--success { color: #b8ffe1; background: rgba(85,222,160,.07); border-color: rgba(85,222,160,.27); }
.notice--error { color: #ffc3ca; background: rgba(255,118,133,.07); border-color: rgba(255,118,133,.27); }
.notice--info { color: #cfc2ff; background: rgba(174,138,255,.07); border-color: rgba(174,138,255,.27); }

.center-stage { min-height: 620px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.center-stage h1 { max-width: 760px; margin: 18px 0; font-size: clamp(38px, 5vw, 62px); }
.center-stage > p { max-width: 650px; color: var(--muted); }
.waiting-rune { width: 110px; height: 110px; display: grid; place-items: center; margin-bottom: 28px; color: var(--mint); background: rgba(101,237,202,.055); border: 1px solid rgba(101,237,202,.25); border-radius: 36px 8px 36px 8px; font-family: Georgia, serif; font-size: 45px; box-shadow: 0 0 70px rgba(101,237,202,.08); }
.status-line { display: flex; align-items: center; gap: 9px; margin-top: 22px; padding: 10px 15px; color: #adc0d3; background: rgba(255,255,255,.03); border: 1px solid var(--line); border-radius: 999px; font-size: 11px; }
.pulse { width: 8px; height: 8px; background: var(--gold); border-radius: 50%; box-shadow: 0 0 12px var(--gold); }
.inline-form { width: min(480px, 100%); display: grid; gap: 14px; margin-top: 22px; padding: 24px; text-align: left; }

.page-heading, .welcome-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 30px; }
.page-heading h1, .welcome-row h1, .academy-header h1 { margin-bottom: 9px; font-size: clamp(36px, 4.5vw, 56px); }
.page-heading p, .welcome-row p, .academy-header p { margin-bottom: 0; color: var(--muted); }

.creation-form { display: grid; gap: 18px; }
.creation-form > .panel { padding: clamp(22px, 4vw, 35px); }
.section-title { display: flex; align-items: center; gap: 13px; margin-bottom: 20px; }
.section-title > span { width: 38px; height: 38px; display: grid; flex: 0 0 auto; place-items: center; color: var(--mint); background: rgba(101,237,202,.07); border: 1px solid rgba(101,237,202,.14); border-radius: 10px; font-family: Georgia, serif; font-weight: 800; }
.section-title h2 { margin-bottom: 3px; font-size: 20px; }
.section-title p { margin: 0; color: var(--muted); font-size: 11px; }
.choice-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.choice-card { cursor: pointer; }
.choice-card input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.choice-card > span { min-height: 102px; display: grid; align-content: center; gap: 7px; padding: 16px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 12px; transition: .18s; }
.choice-card b { font-family: Georgia, serif; font-size: 16px; }
.choice-card small { color: var(--muted); line-height: 1.45; }
.choice-card input:checked + span { background: rgba(101,237,202,.075); border-color: rgba(101,237,202,.42); box-shadow: inset 0 0 24px rgba(101,237,202,.035); }
.race-choice__body { grid-template-columns: auto 1fr; gap: 13px !important; }
.race-choice__body > i { width: 38px; height: 38px; display: grid; place-items: center; align-self: start; color: var(--mint); background: rgba(101,237,202,.07); border: 1px solid rgba(101,237,202,.18); border-radius: 11px 4px 11px 4px; font-family: Georgia,serif; font-size: 18px; font-style: normal; }
.race-choice__body > span { display: grid; gap: 5px; }
.race-choice em { color: var(--mint); font-size: 9px; font-style: normal; font-weight: 800; letter-spacing: .02em; }
.creation-note { margin: 16px 0 0; color: var(--muted); font-size: 10px; }
.creation-submit { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 0; color: var(--muted); font-size: 12px; }
.creation-submit b { color: var(--mint); }

.level-card { min-width: 220px; padding: 14px 16px; background: rgba(255,255,255,.025); border: 1px solid var(--line); border-radius: 12px; }
.level-card span { display: block; margin-bottom: 4px; color: var(--mint); font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.level-card b { font-size: 12px; }
.progress { height: 5px; margin-top: 10px; overflow: hidden; background: rgba(255,255,255,.06); border-radius: 9px; }
.progress i { display: block; height: 100%; background: linear-gradient(90deg, var(--mint-dark), var(--mint)); border-radius: inherit; }

.quest-highlight { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 22px; margin-bottom: 38px; padding: 22px; background: linear-gradient(110deg, rgba(101,237,202,.14), rgba(174,138,255,.13)); border: 1px solid rgba(154,219,211,.23); border-radius: var(--radius); }
.quest-highlight h2 { margin: 5px 0; font-size: 23px; }
.quest-highlight p { margin: 0; color: #b4c3d2; font-size: 12px; }
.energy-regeneration-banner { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 14px; margin: -8px 0 18px; padding: 13px 17px; background: rgba(255,201,102,.055); border: 1px solid rgba(255,201,102,.16); border-radius: 13px; }
.energy-regeneration-banner > span { width: 39px; height: 39px; display: grid; place-items: center; color: #0b151c; background: var(--gold); border-radius: 11px; font-size: 18px; }
.energy-regeneration-banner div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px 12px; }
.energy-regeneration-banner small { width: 100%; color: var(--gold); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.energy-regeneration-banner b { color: var(--text); font-size: 13px; }
.energy-regeneration-banner p { margin: 0; color: var(--muted); font-size: 10px; }
.energy-regeneration-banner.is-disabled { background: rgba(255,255,255,.025); border-color: var(--line); }
.energy-regeneration-banner.is-disabled > span { color: var(--muted); background: rgba(255,255,255,.06); }
.quest-rune { width: 60px; height: 60px; display: grid; place-items: center; color: #061512; background: var(--mint); border-radius: 16px 5px 16px 5px; font-family: Georgia, serif; font-weight: 900; }

.section-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 15px; }
.section-heading span { color: var(--mint); font-size: 9px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.section-heading h2 { margin: 5px 0 0; }
.section-heading small { color: var(--muted); }
.activity-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.activity-card { min-height: 140px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; padding: 22px; background: rgba(17,29,46,.78); border: 1px solid var(--line); border-radius: 15px; transition: .18s; }
.activity-card:hover { transform: translateY(-2px); border-color: rgba(101,237,202,.3); background: rgba(20,34,53,.9); }
.activity-card small { color: var(--mint); font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.activity-card h3 { margin: 5px 0; font-family: Georgia, serif; font-size: 19px; }
.activity-card p { margin: 0; color: var(--muted); font-size: 11px; }
.activity-card > b { color: var(--muted); }
.activity-symbol { width: 46px; height: 46px; display: grid; place-items: center; color: var(--mint); background: rgba(101,237,202,.06); border: 1px solid rgba(101,237,202,.13); border-radius: 13px; font-family: Georgia,serif; font-size: 20px; }
.activity-card--battle .activity-symbol { color: var(--danger); background: rgba(255,118,133,.06); border-color: rgba(255,118,133,.15); }
.activity-card--bestiary .activity-symbol { color: var(--gold); background: rgba(255,201,102,.06); border-color: rgba(255,201,102,.16); }
.activity-card--contracts .activity-symbol { color: var(--violet); background: rgba(174,138,255,.06); border-color: rgba(174,138,255,.16); }
.activity-card--campaign { background: linear-gradient(135deg,rgba(255,201,102,.09),rgba(17,29,46,.88)); }
.activity-card--campaign .activity-symbol { color: var(--gold); background: rgba(255,201,102,.06); border-color: rgba(255,201,102,.18); }
.activity-card--dungeon .activity-symbol { color: var(--danger); background: rgba(255,118,133,.06); border-color: rgba(255,118,133,.18); }
.activity-card--companions { background: linear-gradient(135deg,rgba(174,138,255,.09),rgba(17,29,46,.88)); }
.activity-card--companions .activity-symbol { color: var(--violet); background: rgba(174,138,255,.07); border-color: rgba(174,138,255,.2); }
.split-panels { display: grid; grid-template-columns: 1.2fr .8fr; gap: 12px; margin-top: 12px; }
.split-panels > article { padding: 22px; }
.inventory-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; }
.inventory-grid span { display: flex; justify-content: space-between; padding: 11px; color: var(--muted); background: rgba(255,255,255,.025); border-radius: 9px; font-size: 11px; }
.inventory-grid b { color: var(--text); }
.tip-card blockquote { margin: 14px 0 8px; color: #e3e8ef; font-family: Georgia,serif; font-size: 18px; line-height: 1.4; }
.tip-card small { color: var(--muted); }

.academy-header { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 28px; }
.academy-stamp { width: 90px; height: 90px; display: grid; place-items: center; align-content: center; color: var(--mint); border: 1px solid rgba(101,237,202,.28); border-radius: 50%; font-family: Georgia,serif; font-weight: 800; transform: rotate(5deg); }
.academy-stamp small { color: var(--muted); font-family: inherit; font-size: 8px; text-transform: uppercase; }
.academy-wings { margin-bottom:16px; }
.academy-wing-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; }
.academy-wing { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); gap:11px; padding:16px; overflow:hidden; border:1px solid var(--line); border-radius:15px; background:linear-gradient(145deg,rgba(17,29,46,.78),rgba(13,22,37,.86)); transition:.18s; }
.academy-wing:hover { transform:translateY(-2px); border-color:rgba(101,237,202,.28); }
.academy-wing.is-active { border-color:rgba(101,237,202,.45); background:linear-gradient(145deg,rgba(101,237,202,.1),rgba(17,29,46,.92)); box-shadow:0 0 0 2px rgba(101,237,202,.06); }
.academy-wing > span { width:38px; height:38px; display:grid; place-items:center; color:var(--mint); border:1px solid rgba(101,237,202,.18); border-radius:12px 4px; background:rgba(101,237,202,.06); font-family:Georgia,serif; font-weight:800; }
.academy-wing small { color:var(--mint); font-size:7px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.academy-wing h2 { margin:2px 0 5px; font:700 17px Georgia,serif; }
.academy-wing p { min-height:60px; margin:0; color:var(--muted); font-size:9px; line-height:1.45; }
.academy-wing__progress { display:grid; grid-template-columns:1fr auto; align-items:center; gap:7px; margin-top:11px; }
.academy-wing__progress b { color:var(--gold); font-size:9px; }
.academy-wing em { display:block; margin-top:4px; color:#71869e; font-size:7px; font-style:normal; }
.academy-training { display:grid; grid-template-columns:minmax(240px,.75fr) minmax(0,1.25fr); gap:22px; align-items:center; margin:0 0 20px; padding:17px 20px; }
.academy-training__levels { min-width:0; display:grid; gap:8px; }
.academy-training__levels > div { display:grid; }
.academy-training__levels > div > b,.academy-set-heading > b { font:700 15px Georgia,serif; }
.academy-training__levels > div > small,.academy-set-heading > small { color:var(--muted); font-size:8px; }
.academy-training .filter-chips { margin:0; }
.academy-mode-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.academy-mode { display:grid; gap:2px; min-height:62px; padding:10px 12px; border:1px solid var(--line); border-radius:11px; background:rgba(255,255,255,.018); }
.academy-mode b { font-size:10px; }
.academy-mode small { color:var(--muted); font-size:8px; line-height:1.35; }
.academy-mode.is-active { border-color:rgba(255,201,102,.38); background:rgba(255,201,102,.06); }
.academy-mode.is-active b { color:var(--gold); }
.academy-set-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:0 2px 8px; }
.academy-set-list { margin:0 0 18px; }
.academy-layout { display: grid; grid-template-columns: minmax(0, 1fr) 270px; gap: 14px; }
.question-card { padding: clamp(24px,4vw,42px); }
.question-meta { display: flex; justify-content: space-between; gap: 15px; color: var(--muted); font-size: 9px; letter-spacing: .09em; text-transform: uppercase; }
.question-card h2 { margin: 28px 0; font-size: clamp(24px,4vw,35px); line-height: 1.3; }
.answers { display: grid; gap: 9px; margin-bottom: 24px; }
.answer-option { cursor: pointer; }
.answer-option input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.answer-option span { display: flex; align-items: center; gap: 13px; min-height: 55px; padding: 10px 14px; color: #ced8e4; background: rgba(255,255,255,.018); border: 1px solid var(--line); border-radius: 11px; transition: .16s; }
.answer-option span b { width: 29px; height: 29px; display: grid; place-items: center; color: var(--muted); border: 1px solid var(--line-strong); border-radius: 8px; }
.answer-option input:checked + span { color: var(--text); background: rgba(101,237,202,.07); border-color: rgba(101,237,202,.36); }
.answer-option input:checked + span b { color: #071511; background: var(--mint); border-color: var(--mint); }
.academy-aside { display: grid; align-content: start; gap: 12px; }
.academy-aside article { padding: 20px; }
.academy-aside h3 { margin: 0 0 10px; }
.academy-aside p { margin: 0; color: var(--muted); font-size: 11px; }
.academy-progress h3 { margin: 10px 0 4px; }
.academy-rhythm > div { display:flex; align-items:end; gap:7px; margin:10px 0 7px; }
.academy-rhythm > div b { color:var(--gold); font:800 36px Georgia,serif; line-height:1; }
.academy-rhythm > div small { color:var(--muted); font-size:9px; text-transform:uppercase; }
.academy-quota > div { display:flex; align-items:end; gap:8px; margin:11px 0 8px; }
.academy-quota > div b { color:var(--mint); font:800 34px Georgia,serif; line-height:1; }
.academy-quota > div small { color:var(--muted); font-size:9px; font-weight:800; text-transform:uppercase; }
.academy-quota p { margin:0; }
.academy-quota.is-limited { border-color:rgba(255,201,102,.4); background:linear-gradient(145deg,rgba(255,201,102,.08),var(--panel)); }
.academy-quota.is-limited > div b { color:var(--gold); }
.academy-empty { min-height:420px; display:grid; place-content:center; justify-items:center; text-align:center; }
.academy-empty > span { width:68px; height:68px; display:grid; place-items:center; color:var(--success); border:1px solid rgba(85,222,160,.25); border-radius:50%; background:rgba(85,222,160,.06); font-size:27px; }
.academy-empty h2 { margin:18px 0 6px; }
.academy-empty p { max-width:560px; color:var(--muted); }
.reward-preview { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; }
.reward-preview .tag { grid-column: 1/-1; margin-bottom: 6px; }
.reward-preview div { display: grid; gap: 2px; padding: 9px 3px; background: rgba(255,255,255,.025); border-radius: 8px; text-align: center; }
.reward-preview b { color: var(--gold); font-size: 15px; }
.reward-preview small { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.explanation { margin-top: 14px; padding: 20px; border-color: rgba(174,138,255,.24); }
.explanation p { margin: 8px 0 0; color: #cbd5e2; }

.monster-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.page-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.region-tabs { display: flex; gap: 7px; margin-bottom: 12px; padding-bottom: 4px; overflow-x: auto; scrollbar-width: none; }
.region-tabs::-webkit-scrollbar { display: none; }
.region-tabs .filter-chip { display: inline-flex; align-items: center; gap: 6px; }
.region-tabs .filter-chip > span { font-family: Georgia,serif; font-size: 14px; }
.region-intro { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 18px; margin-bottom: 12px; padding: 19px 23px; background: linear-gradient(110deg,rgba(101,237,202,.06),rgba(174,138,255,.04)); }
.region-intro > span { width: 56px; height: 56px; display: grid; place-items: center; color: var(--mint); background: rgba(101,237,202,.06); border: 1px solid rgba(101,237,202,.15); border-radius: 15px; font-family: Georgia,serif; font-size: 25px; }
.region-intro small { color: var(--mint); font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.region-intro h2 { margin: 2px 0; font-family: Georgia,serif; }
.region-intro p { margin: 0; color: var(--muted); font-size: 11px; }
.monster-card { position: relative; overflow: hidden; padding: 24px; background: linear-gradient(150deg,rgba(255,118,133,.06),rgba(17,28,45,.8)); border: 1px solid var(--line); border-radius: var(--radius); text-align: center; transition: .18s; }
.monster-card:hover { transform: translateY(-2px); border-color: rgba(255,118,133,.28); }
.monster-card--elite { background: linear-gradient(150deg,rgba(174,138,255,.08),rgba(17,28,45,.86)); border-color: rgba(174,138,255,.19); }
.monster-card--boss { background: radial-gradient(circle at 50% 25%,rgba(255,201,102,.11),transparent 34%),linear-gradient(150deg,rgba(255,118,133,.08),rgba(17,28,45,.9)); border-color: rgba(255,201,102,.24); }
.monster-card.is-locked { filter: saturate(.55); opacity: .72; }
.monster-level { position: absolute; top: 14px; left: 14px; color: var(--danger); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.monster-level span { margin-right: 5px; color: var(--gold); }
.monster-art { width: 80px; height: 80px; display: grid; place-items: center; margin: 18px auto; color: var(--danger); background: rgba(255,118,133,.06); border: 1px solid rgba(255,118,133,.15); border-radius: 50% 35% 50% 35%; font-family: Georgia,serif; font-size: 30px; }
.monster-card--elite .monster-art { color: var(--violet); background: rgba(174,138,255,.07); border-color: rgba(174,138,255,.18); }
.monster-card--boss .monster-art { color: var(--gold); background: rgba(255,201,102,.07); border-color: rgba(255,201,102,.2); box-shadow: 0 0 40px rgba(255,201,102,.06); }
.monster-card h3 { margin-bottom: 5px; font-family: Georgia,serif; font-size: 18px; }
.monster-card p { color: var(--muted); font-size: 11px; }
.monster-card > small { display: block; min-height: 34px; color: var(--gold); font-size: 9px; }
.monster-card form { margin-top: 12px; }
.monster-traits { display: flex; justify-content: center; flex-wrap: wrap; gap: 5px; margin: 10px 0; }
.monster-traits span { padding: 4px 7px; color: #b7c6d7; background: rgba(255,255,255,.025); border: 1px solid var(--line); border-radius: 999px; font-size: 8px; }
.boss-phase-preview { display: grid; gap: 4px; margin: 11px 0; padding: 9px; background: rgba(255,201,102,.035); border: 1px solid rgba(255,201,102,.13); border-radius: 10px; text-align: left; }
.boss-phase-preview > b { color: var(--gold); font-size: 7px; letter-spacing: .13em; }
.boss-phase-preview > span, .bestiary-phases > span { display: flex; align-items: center; gap: 6px; color: #bac7d6; font-size: 8px; }
.boss-phase-preview > span > span, .bestiary-phases > span > span { min-width: 0; display: grid; gap: 1px; }
.boss-phase-preview strong, .bestiary-phases strong { color: #d9e2ec; font-size: 8px; }
.boss-phase-preview small, .bestiary-phases small { margin: 0; color: #7f92a8; font-size: 7px; }
.boss-phase-preview i, .bestiary-phases i { width: 16px; height: 16px; display: inline-grid; place-items: center; flex: 0 0 auto; color: #101a29; background: var(--gold); border-radius: 50%; font-size: 7px; font-style: normal; font-weight: 900; }
.monster-record { margin-top: 7px; color: #71869e; font-size: 8px; }

.bestiary-hero { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 30px; margin-bottom: 34px; padding: clamp(24px,4vw,38px); background: radial-gradient(circle at 85% 30%,rgba(255,201,102,.1),transparent 35%),rgba(17,28,45,.86); }
.bestiary-hero h1 { margin: 8px 0; font-family: Georgia,serif; font-size: clamp(36px,6vw,58px); }
.bestiary-hero p { max-width: 720px; margin: 0; color: var(--muted); }
.bestiary-progress { width: 132px; height: 132px; display: grid; place-content: center; grid-template-columns: auto auto; color: var(--gold); border: 1px solid rgba(255,201,102,.28); border-radius: 50%; text-align: center; }
.bestiary-progress b { font-family: Georgia,serif; font-size: 46px; line-height: 1; }
.bestiary-progress > span { align-self: end; color: var(--muted); font-size: 17px; }
.bestiary-progress small { grid-column: 1/-1; margin-top: 6px; color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.bestiary-region { margin-top: 32px; }
.bestiary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.bestiary-card { min-height: 190px; display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 16px; padding: 19px; background: rgba(17,28,45,.72); border: 1px solid var(--line); border-radius: 14px; }
.bestiary-card--elite { border-color: rgba(174,138,255,.2); }
.bestiary-card--boss { border-color: rgba(255,201,102,.24); background: linear-gradient(125deg,rgba(255,201,102,.05),rgba(17,28,45,.8)); }
.bestiary-symbol { width: 52px; height: 52px; display: grid; place-items: center; color: var(--gold); background: rgba(255,201,102,.06); border: 1px solid rgba(255,201,102,.15); border-radius: 14px; font-family: Georgia,serif; font-size: 23px; }
.bestiary-card > div:last-child > span { color: var(--mint); font-size: 8px; font-weight: 900; letter-spacing: .11em; }
.bestiary-card h3 { margin: 4px 0; font-family: Georgia,serif; font-size: 18px; }
.bestiary-card p { margin: 0; color: var(--muted); font-size: 10px; }
.bestiary-card small { display: block; margin-top: 10px; color: #71869e; font-size: 8px; }
.bestiary-card .monster-traits { justify-content: flex-start; }
.bestiary-phases { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-top: 9px; }
.bestiary-card.is-unknown { border-style: dashed; opacity: .58; }
.bestiary-card.is-unknown .bestiary-symbol { color: var(--muted); background: rgba(255,255,255,.02); border-color: var(--line); }

.contract-list { display: grid; gap: 10px; }
.contract-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 20px; padding: 21px; background: rgba(17,28,45,.78); border: 1px solid var(--line); border-radius: 15px; }
.contract-card--accepted { border-color: rgba(101,237,202,.22); }
.contract-card--completed { background: linear-gradient(110deg,rgba(85,222,160,.07),rgba(17,28,45,.82)); border-color: rgba(85,222,160,.25); }
.contract-mark { width: 54px; height: 54px; display: grid; place-items: center; color: var(--violet); background: rgba(174,138,255,.07); border: 1px solid rgba(174,138,255,.17); border-radius: 14px; font-size: 22px; }
.contract-card h2 { margin: 7px 0 3px; font-family: Georgia,serif; font-size: 21px; }
.contract-card p { margin: 0 0 6px; color: var(--muted); font-size: 11px; }
.contract-card small { color: #bac7d6; }
.contract-progress { float: right; margin-top: -13px; color: var(--mint); font-size: 9px; }
.contract-reward { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
.contract-reward span { padding: 4px 8px; color: var(--gold); background: rgba(255,201,102,.04); border: 1px solid rgba(255,201,102,.11); border-radius: 7px; font-size: 9px; }
.contract-state { width: 42px; height: 42px; display: grid; place-items: center; color: var(--success); border: 1px solid rgba(85,222,160,.22); border-radius: 50%; }
.log-panel { margin-top: 14px; padding: 22px; }
.history-list, .expedition-list, .market-list, .review-list, .student-list, .reward-list, .chat-window ul { margin: 0; padding: 0; list-style: none; }
.history-list li, .student-list li, .reward-list li { display: flex; align-items: center; gap: 12px; min-height: 54px; padding: 10px 0; border-top: 1px solid var(--line); }
.history-list li:first-child, .student-list li:first-child, .reward-list li:first-child { border-top: 0; }
.history-list div, .student-list div, .reward-list div { display: grid; flex: 1; }
.history-list small, .student-list small, .reward-list small { color: var(--muted); font-size: 9px; }
.history-list strong, .reward-list strong { color: var(--gold); font-size: 11px; }
.result-dot { width: 8px; height: 8px; border-radius: 50%; }
.result-dot--win { background: var(--success); box-shadow: 0 0 9px var(--success); }
.result-dot--loss { background: var(--danger); }

.destination-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.destination-card { position: relative; min-height: 330px; display: flex; flex-direction: column; justify-content: flex-end; overflow: hidden; padding: 28px; background: linear-gradient(180deg,transparent,rgba(8,14,24,.92)), radial-gradient(circle at 50% 0,rgba(101,237,202,.2),transparent 65%),#122033; border: 1px solid var(--line); border-radius: var(--radius); }
.destination-card--2 { background: linear-gradient(180deg,transparent,rgba(8,14,24,.92)), radial-gradient(circle at 50% 0,rgba(174,138,255,.22),transparent 65%),#171c35; }
.destination-card--3 { background: linear-gradient(180deg,transparent,rgba(8,14,24,.92)), radial-gradient(circle at 50% 0,rgba(255,201,102,.2),transparent 65%),#272117; }
.destination-card--4 { background: linear-gradient(180deg,transparent,rgba(8,14,24,.92)), radial-gradient(circle at 50% 0,rgba(255,118,133,.18),transparent 65%),#261821; }
.destination-card--5 { background: linear-gradient(180deg,transparent,rgba(8,14,24,.92)), radial-gradient(circle at 50% 0,rgba(90,174,255,.18),transparent 65%),#111d2d; }
.destination-number { position: absolute; top: 18px; right: 20px; color: rgba(255,255,255,.11); font-family: Georgia,serif; font-size: 70px; }
.destination-card h2 { margin: 10px 0 8px; }
.destination-card p { min-height: 55px; color: #a7b7c7; font-size: 11px; }
.destination-card form { margin-top: 12px; }
.expedition-approaches { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }
.expedition-approaches form { margin-top: 0; }
.expedition-approaches .button { width: 100%; height: 100%; display: grid; gap: 2px; padding: 9px 7px; }
.expedition-approaches .button b { font-size: 9px; }
.expedition-approaches .button small { color: rgba(7,22,17,.68); font-size: 7px; line-height: 1.25; }
.expedition-list li { display: grid; grid-template-columns: 180px 1fr; gap: 20px; padding: 11px 0; border-top: 1px solid var(--line); }
.expedition-list li:first-child { border-top: 0; }
.expedition-list div { display: grid; }
.expedition-list small { color: var(--muted); font-size: 9px; }
.expedition-list > li > span { color: #acbdcf; font-size: 11px; }

.recipe-list { padding: 12px 24px; }
.recipe-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; padding: 18px 0; border-top: 1px solid var(--line); }
.recipe-card:first-child { border-top: 0; }
.recipe-icon { width: 48px; height: 48px; display: grid; place-items: center; color: var(--mint); background: rgba(101,237,202,.06); border: 1px solid rgba(101,237,202,.13); border-radius: 13px; font-size: 22px; }
.recipe-card h3 { margin: 0 0 5px; font-family: Georgia,serif; font-size: 18px; }
.recipe-card p { margin: 0; color: var(--muted); font-size: 11px; }
.cost-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.cost-row span, .cost-row strong { padding: 4px 8px; background: rgba(255,255,255,.025); border-radius: 6px; color: var(--muted); font-size: 9px; }
.cost-row strong { color: var(--gold); }
.craft-specialties { margin-bottom: 14px; }
.craft-specialty-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.specialty-card { display: grid; align-content: start; padding: 21px; text-align: center; }
.specialty-card > span { width: 58px; height: 58px; display: grid; place-items: center; justify-self: center; color: var(--mint); background: rgba(101,237,202,.06); border: 1px solid rgba(101,237,202,.15); border-radius: 17px; font-size: 25px; }
.specialty-card h3 { margin: 12px 0 5px; font-family: Georgia,serif; }
.specialty-card p { min-height: 70px; color: var(--muted); font-size: 10px; }
.specialty-card .button { margin-top: auto; }
.craft-profile { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 19px; margin-bottom: 12px; padding: 22px; background: linear-gradient(110deg,rgba(101,237,202,.08),rgba(174,138,255,.05)); }
.craft-profession-mark { width: 63px; height: 63px; display: grid; place-items: center; color: var(--mint); border: 1px solid rgba(101,237,202,.25); border-radius: 18px; font-size: 26px; }
.craft-profile h2 { margin: 6px 0 3px; font-family: Georgia,serif; }
.craft-profile p { margin: 0; color: var(--muted); font-size: 11px; }
.craft-level { min-width: 120px; display: grid; text-align: center; }
.craft-level b { color: var(--gold); font-family: Georgia,serif; font-size: 38px; line-height: 1; }
.craft-level span { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.craft-level small { margin-top: 4px; color: var(--mint); }
.material-vault { margin-bottom: 12px; padding: 21px; }
.material-list { display: flex; flex-wrap: wrap; gap: 7px; }
.material-pill { display: inline-flex; align-items: center; gap: 6px; padding: 7px 9px; color: #bdcbd9; background: rgba(255,255,255,.025); border: 1px solid var(--line); border-radius: 9px; font-size: 9px; }
.material-pill b { color: var(--mint); font-family: Georgia,serif; font-size: 13px; }
.material-pill strong { min-width: 21px; padding: 1px 5px; color: var(--gold); background: rgba(255,201,102,.07); border-radius: 5px; text-align: center; }
.material-pill--rare { border-color: rgba(174,138,255,.2); }
.material-pill--legendary { border-color: rgba(255,201,102,.25); }
.recipe-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.recipe-heading > span { color: var(--violet); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.recipe-materials { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.recipe-materials span { padding: 3px 7px; color: var(--mint); background: rgba(101,237,202,.04); border: 1px solid rgba(101,237,202,.11); border-radius: 6px; font-size: 8px; }
.recipe-materials span.is-missing { color: var(--danger); border-color: rgba(255,118,133,.15); }
.specialty-bonus { display: block; margin-top: 7px; color: var(--success); font-size: 8px; }
.recipe-lock { min-width: 108px; padding: 8px 10px; color: var(--muted); background: rgba(255,255,255,.025); border: 1px dashed var(--line); border-radius: 8px; font-size: 8px; text-align: center; }
.recipe-card.is-undiscovered { opacity: .56; }
.recipe-card.is-undiscovered .recipe-icon { color: var(--muted); background: rgba(255,255,255,.02); border-color: var(--line); }

.chat-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 12px; }
.chat-window { min-height: 520px; padding: 12px 22px; }
.chat-window__heading { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:8px 0 12px; border-bottom:1px solid var(--line); }
.chat-window__heading b { font-family:Georgia,serif; font-size:17px; }
.chat-window__heading small { color:var(--muted); font-size:9px; text-transform:uppercase; }
.chat-window > .pagination { margin-top:14px; }
.chat-window li { display: flex; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); }
.chat-window li:first-child { border-top: 0; }
.chat-avatar { width: 35px; height: 35px; display: grid; flex: 0 0 auto; place-items: center; color: var(--violet); background: rgba(174,138,255,.07); border: 1px solid rgba(174,138,255,.17); border-radius: 50%; font-weight: 800; }
.player-link { color: var(--text); font-weight: 800; }
.player-link:hover { color: var(--mint); }
.chat-window li > div { flex: 1; }
.chat-window li > div > div { display: flex; justify-content: space-between; gap: 20px; }
.chat-window time { color: var(--muted); font-size: 9px; }
.chat-window p { margin: 5px 0 0; color: #c1cddd; font-size: 12px; }
.chat-form { display: grid; align-content: start; gap: 15px; padding: 22px; }
.chat-form small { color: var(--muted); font-size: 9px; }
.report-form { margin-top: 6px; }
.report-link { padding: 0; color: #74879d; background: none; border: 0; cursor: pointer; font-size: 9px; }
.report-link:hover { color: var(--gold); }
.report-state { display: inline-block; margin-top: 6px; color: var(--gold); }

.market-layout, .guild-layout { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 12px; align-items: start; }
.market-layout > section, .guild-list { padding: 22px; }
.market-list li { display: flex; align-items: center; gap: 12px; min-height: 62px; padding: 10px 0; border-top: 1px solid var(--line); }
.market-list li:first-child { border-top: 0; }
.market-resource { width: 34px; height: 34px; display: grid; place-items: center; color: var(--mint); background: rgba(101,237,202,.06); border-radius: 9px; }
.market-list li > div { display: grid; flex: 1; }
.market-list small { color: var(--muted); font-size: 9px; }
.market-list strong { color: var(--gold); font-size: 12px; }
.own-offer { color: var(--muted); font-size: 9px; }

.guild-list { display: grid; gap: 10px; }
.guild-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 15px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 12px; }
.guild-crest { width: 46px; height: 46px; display: grid; place-items: center; color: var(--guild-accent,var(--violet)); background: color-mix(in srgb,var(--guild-accent,var(--violet)) 9%,transparent); border: 1px solid color-mix(in srgb,var(--guild-accent,var(--violet)) 26%,transparent); border-radius: 14px 5px 14px 5px; font-family: Georgia,serif; font-weight: 800; }
.guild-card h3 { margin: 0 0 4px; font-family: Georgia,serif; font-size: 17px; }
.guild-card p { margin: 0 0 5px; color: var(--muted); font-size: 10px; }
.guild-card div > span { color: #71859c; font-size: 9px; }
.guild-theme--violet { --guild-accent:#ae8aff; }
.guild-theme--gold { --guild-accent:#e5bd66; }
.guild-theme--mint { --guild-accent:#65edca; }
.guild-theme--crimson { --guild-accent:#ff7685; }
.guild-theme--azure { --guild-accent:#67b8ff; }
.guild-theme--silver { --guild-accent:#c4cfdd; }
.guild-card blockquote { margin: 0 0 5px; color: var(--guild-accent,var(--violet)); font-family: Georgia,serif; font-size: 11px; font-style: italic; }
.guild-join { position:relative; }
.guild-join > summary { list-style:none; cursor:pointer; }
.guild-join > summary::-webkit-details-marker { display:none; }
.guild-join form { position:absolute; z-index:5; right:0; top:calc(100% + 7px); width:260px; padding:12px; background:#111c2b; border:1px solid var(--line); border-radius:12px; box-shadow:0 18px 38px rgba(0,0,0,.35); }
.guild-join label { display:grid; gap:5px; color:var(--muted); font-size:9px; }
.guild-join input { min-width:0; }
.guild-join button { margin-top:8px; width:100%; }
.guild-command-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(290px,.65fr); gap:12px; margin-bottom:12px; }
.guild-fortress { margin:24px 0 30px; }
.guild-fortress .section-heading { align-items:center; }
.guild-treasury { display:flex; align-items:baseline; gap:7px; padding:11px 15px; border:1px solid rgba(255,201,102,.25); border-radius:13px; background:rgba(255,201,102,.055); }
.guild-treasury small { color:var(--muted); font-size:7px; font-weight:900; letter-spacing:.09em; }
.guild-treasury b { color:var(--gold); font-family:Georgia,serif; font-size:24px; }
.guild-treasury span { color:#d9c38c; font-size:8px; }
.guild-fortress-intro { max-width:850px; margin:-8px 0 15px; color:var(--muted); font-size:9px; line-height:1.6; }
.guild-upgrade-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.guild-upgrade-card { display:grid; grid-template-columns:auto minmax(0,1fr); gap:14px; padding:18px; background:linear-gradient(135deg,rgba(255,201,102,.035),rgba(17,28,45,.82)); }
.guild-upgrade-card.is-maxed { border-color:rgba(101,237,202,.28); background:linear-gradient(135deg,rgba(101,237,202,.055),rgba(17,28,45,.84)); }
.guild-upgrade-symbol { width:50px; height:50px; display:grid; place-items:center; border:1px solid rgba(255,201,102,.2); border-radius:14px; background:rgba(255,201,102,.06); color:var(--gold); font-size:22px; }
.guild-upgrade-card small { color:var(--muted); font-size:7px; }
.guild-upgrade-card h3 { margin:3px 0 5px; font-family:Georgia,serif; font-size:19px; }
.guild-upgrade-card p { margin:0 0 9px; color:var(--muted); font-size:8px; line-height:1.5; }
.guild-upgrade-card > div > b { display:block; margin:8px 0; color:#d9c38c; font-size:8px; }
.guild-upgrade-levels { display:flex; gap:5px; }
.guild-upgrade-levels i { width:34px; height:5px; border-radius:999px; background:rgba(255,255,255,.07); }
.guild-upgrade-levels i.is-built { background:linear-gradient(90deg,var(--gold),var(--mint)); }
.guild-upgrade-max { color:var(--mint)!important; letter-spacing:.05em; }
.guild-upgrade-history { margin-top:12px; padding:17px 19px; border:1px solid var(--line); border-radius:14px; background:rgba(17,28,45,.72); }
.guild-upgrade-history h3 { margin:0 0 10px; font-family:Georgia,serif; font-size:16px; }
.guild-upgrade-history ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px 12px; margin:0; padding:0; list-style:none; }
.guild-upgrade-history li { display:flex; align-items:center; gap:9px; padding:8px 10px; border-radius:10px; background:rgba(255,255,255,.025); }
.guild-upgrade-history li > span { color:var(--gold); font-size:17px; }
.guild-upgrade-history li div { display:grid; gap:2px; min-width:0; }
.guild-upgrade-history li b { font-size:8px; }
.guild-upgrade-history li small { color:var(--muted); font-size:7px; }
.activity-card--craft { border-color:rgba(255,201,102,.19); background:linear-gradient(135deg,rgba(255,201,102,.05),rgba(17,29,46,.9)); }
.activity-card--craft .activity-symbol { color:var(--gold); border-color:rgba(255,201,102,.2); background:rgba(255,201,102,.06); }
.guild-roster, .guild-applications, .guild-pending-application { padding:22px; }
.guild-roster ul, .guild-applications ul { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.guild-member, .guild-applications li { display:flex; gap:11px; align-items:center; padding:11px; background:rgba(255,255,255,.025); border:1px solid var(--line); border-radius:11px; }
.guild-member > div:nth-child(2), .guild-applications li > div:first-child { display:grid; flex:1; gap:3px; min-width:0; }
.guild-member small, .guild-applications small { color:var(--muted); font-size:9px; }
.guild-applications { margin-bottom:22px; }
.guild-applications li p { margin:5px 0 0; color:var(--muted); }
.guild-applications li form { display:flex; gap:6px; }
.guild-pending-application { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:18px; border-color:rgba(229,189,102,.24); }
.guild-pending-application h2 { margin:7px 0 4px; }
.guild-pending-application p { margin:0; color:var(--muted); }
.guild-profile-editor { align-self:start; }
.guild-profile-editor > .danger-link { display:block; margin:13px auto 0; }
.admin-guild-list { display:grid; gap:12px; }
.admin-guild-card { padding:0; overflow:hidden; }
.admin-guild-card > summary { display:grid; grid-template-columns:auto 1fr auto; gap:14px; align-items:center; padding:18px 20px; cursor:pointer; list-style:none; }
.admin-guild-card > summary::-webkit-details-marker { display:none; }
.admin-guild-card > summary > span:nth-child(2) { display:grid; gap:4px; }
.admin-guild-card > summary small { color:var(--muted); }
.admin-guild-card > summary em { color:var(--mint); font-size:9px; font-style:normal; font-weight:900; }
.admin-guild-body { display:grid; gap:18px; padding:20px; border-top:1px solid var(--line); }
.admin-guild-lists { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.admin-guild-lists h3 { margin:0 0 8px; }
.craft-success { display:grid; grid-template-columns:auto 1fr auto; gap:18px; align-items:center; margin-bottom:16px; padding:20px; border-color:rgba(101,237,202,.3); background:linear-gradient(120deg,rgba(101,237,202,.09),rgba(18,28,43,.95)); }
.craft-success > span { display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:rgba(101,237,202,.13); color:var(--mint); font-size:24px; }
.craft-success small { color:var(--mint); font-weight:900; }
.craft-success h2 { margin:4px 0; }
.craft-success p { margin:0; color:var(--muted); }
@media (max-width:900px) {
  .guild-command-grid, .admin-guild-lists { grid-template-columns:1fr; }
  .guild-pending-application, .craft-success { grid-template-columns:1fr; display:grid; align-items:start; }
}
@media (max-width:620px) {
  .guild-member, .guild-applications li { align-items:flex-start; flex-wrap:wrap; }
  .guild-member .compact-actions, .guild-applications li form { width:100%; }
  .guild-join { width:100%; }
  .guild-join form { position:static; width:auto; margin-top:8px; }
  .admin-guild-card > summary { grid-template-columns:auto 1fr; }
  .admin-guild-card > summary em { grid-column:1/-1; }
  .craft-success .button { width:100%; }
}

.guild-hunt { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 22px; margin-bottom: 12px; padding: 26px; background: radial-gradient(circle at 10% 50%,rgba(255,118,133,.11),transparent 30%),linear-gradient(125deg,rgba(31,23,39,.95),rgba(14,24,39,.95)); border: 1px solid rgba(255,118,133,.22); border-radius: 18px; }
.guild-hunt--complete { grid-template-columns: auto 1fr; background: linear-gradient(120deg,rgba(85,222,160,.08),rgba(14,24,39,.95)); border-color: rgba(85,222,160,.22); }
.guild-boss-symbol { width: 82px; height: 82px; display: grid; place-items: center; color: var(--danger); background: rgba(255,118,133,.07); border: 1px solid rgba(255,118,133,.2); border-radius: 50% 34% 50% 34%; font-family: Georgia,serif; font-size: 34px; }
.guild-hunt--complete .guild-boss-symbol { color: var(--success); background: rgba(85,222,160,.07); border-color: rgba(85,222,160,.2); }
.guild-hunt h2 { margin: 7px 0 4px; font-family: Georgia,serif; font-size: 30px; }
.guild-hunt p { margin: 0; color: var(--muted); }
.guild-hunt__copy > small { display: block; margin-top: 9px; color: #71869e; font-size: 9px; }
.guild-hunt-meter { margin-top: 15px; }
.guild-hunt-meter > div:first-child { display: flex; justify-content: space-between; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.guild-hunt-meter b { color: var(--danger); }
.guild-hunt__action { min-width: 170px; display: grid; gap: 6px; text-align: center; }
.guild-hunt__action small { color: var(--muted); font-size: 8px; }
.guild-hunt__action form + form { margin-top: 7px; }
.team-requirements,.raid-readiness { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.team-requirements > span,.raid-readiness > span { display:grid; min-width:120px; padding:8px 11px; border:1px solid rgba(255,255,255,.14); border-radius:11px; background:rgba(255,255,255,.035); }
.team-requirements b,.raid-readiness b { color:#efd99d; font-size:14px; }
.team-requirements small,.raid-readiness small { color:#bcb4d0; font-size:8px; letter-spacing:.06em; text-transform:uppercase; }
.team-requirements .is-ready,.raid-readiness .is-ready { border-color:rgba(85,222,160,.38); background:rgba(85,222,160,.09); }
.team-requirements .is-ready b,.raid-readiness .is-ready b { color:#8ee1b2; }
.team-requirements .is-missing,.raid-readiness .is-missing { border-color:rgba(255,118,133,.4); background:rgba(255,118,133,.09); }
.team-requirements .is-missing b,.raid-readiness .is-missing b { color:#ff9eaa; }
.team-gate { padding:11px 13px; border:1px solid rgba(255,255,255,.14); border-radius:12px; }
.team-gate b { display:block; color:#fff; font-size:12px; }
.team-gate p { margin:4px 0 0; color:#d8d3e7; font-size:10px; line-height:1.45; }
.team-gate--blocked { border-color:rgba(255,118,133,.45); background:rgba(255,118,133,.12); }
.team-gate--waiting { border-color:rgba(255,201,102,.4); background:rgba(255,201,102,.08); }
.team-gate--ready { border-color:rgba(85,222,160,.36); background:rgba(85,222,160,.08); }
.is-unavailable { opacity:.68; }
.guild-contributions { margin-bottom: 24px; padding: 22px; }
.guild-contributions ul { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; margin: 0; padding: 0; list-style: none; }
.guild-contributions li { position: relative; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px; overflow: hidden; padding: 11px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 10px; }
.guild-contributions li > i { position: absolute; right: 0; bottom: 0; left: 0; height: 2px; background: var(--mint); }
.guild-contributions li > div { display: grid; }
.guild-contributions small { color: var(--muted); font-size: 8px; }
.guild-hunter { width: 34px; height: 34px; display: grid; place-items: center; color: var(--violet); background: rgba(174,138,255,.08); border-radius: 50%; font-weight: 900; }
.guild-hunt-picker { margin: 30px 0; }
.guild-hunt-options { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.guild-hunt-options form { display: grid; align-content: start; padding: 21px; }
.guild-hunt-options form > span { color: var(--danger); font-family: Georgia,serif; font-size: 31px; }
.guild-hunt-options h3 { margin: 8px 0 4px; font-family: Georgia,serif; font-size: 20px; }
.guild-hunt-options p { min-height: 54px; color: var(--muted); font-size: 10px; }
.guild-hunt-options small { margin-bottom: 14px; color: var(--gold); font-size: 8px; }
.guild-hunt-options .button { margin-top: auto; }
.guild-rules { padding: 22px; }
.guild-rules h2 { margin: 10px 0 6px; font-family: Georgia,serif; }
.guild-rules p { color: var(--muted); }

.dungeon-hero { min-height: 270px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 30px; margin-bottom: 18px; padding: clamp(28px,5vw,55px); background: radial-gradient(circle at 85% 40%,rgba(255,118,133,.13),transparent 31%),linear-gradient(130deg,rgba(20,27,43,.95),rgba(10,16,28,.95)); border: 1px solid rgba(255,118,133,.18); border-radius: 20px; }
.dungeon-hero h1 { margin: 8px 0 12px; font-family: Georgia,serif; font-size: clamp(42px,7vw,70px); }
.dungeon-hero p { max-width: 730px; margin: 0; color: var(--muted); font-size: 14px; }
.dungeon-hero__mark { width: 150px; height: 150px; display: grid; place-content: center; color: var(--danger); border: 1px solid rgba(255,118,133,.25); border-radius: 50%; font-family: Georgia,serif; font-size: 55px; text-align: center; }
.dungeon-hero__mark small { display: block; color: var(--muted); font-family: Inter,sans-serif; font-size: 8px; text-transform: uppercase; }
.dungeon-list { display: grid; gap: 15px; }
.dungeon-card { overflow: hidden; background: linear-gradient(145deg,rgba(18,30,48,.91),rgba(12,21,35,.91)); border: 1px solid var(--line); border-radius: 18px; }
.dungeon-card.is-active { border-color: rgba(255,118,133,.24); box-shadow: inset 0 0 70px rgba(255,118,133,.025); }
.dungeon-card > header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; padding: 25px; }
.dungeon-emblem { width: 65px; height: 65px; display: grid; place-items: center; color: var(--danger); background: rgba(255,118,133,.06); border: 1px solid rgba(255,118,133,.17); border-radius: 18px 6px 18px 6px; font-family: Georgia,serif; font-size: 28px; }
.dungeon-card h2 { margin: 7px 0 3px; font-family: Georgia,serif; font-size: 27px; }
.dungeon-card header p { margin: 0; color: var(--muted); font-size: 11px; }
.dungeon-count { display: grid; min-width: 64px; text-align: center; }
.dungeon-count b { color: var(--gold); font-family: Georgia,serif; font-size: 34px; }
.dungeon-count small { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.dungeon-timeline { display: grid; grid-template-columns: repeat(6,minmax(85px,1fr)); gap: 6px; margin: 0; padding: 0 25px 16px; overflow-x: auto; list-style: none; scrollbar-width: none; }
.dungeon-timeline::-webkit-scrollbar { display: none; }
.dungeon-node { min-height: 54px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 7px; padding: 8px; color: #5f7288; background: rgba(255,255,255,.018); border: 1px solid var(--line); border-radius: 9px; }
.dungeon-node b { width: 26px; height: 26px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: 9px; }
.dungeon-node span { font-size: 8px; font-weight: 800; line-height: 1.25; text-transform: uppercase; }
.dungeon-node--done { color: var(--success); }
.dungeon-node--current { color: var(--gold); background: rgba(255,201,102,.05); border-color: rgba(255,201,102,.2); }
.dungeon-progress { height: 3px; margin: 0 25px 20px; }
.dungeon-current { display: grid; grid-template-columns: minmax(0,1fr) minmax(340px,.8fr); gap: 26px; padding: 28px; background: radial-gradient(circle at 85% 50%,rgba(255,201,102,.06),transparent 40%),rgba(6,12,21,.38); border-top: 1px solid var(--line); }
.dungeon-current h3 { margin: 9px 0; font-family: Georgia,serif; font-size: 32px; }
.dungeon-current p { color: #b5c3d3; line-height: 1.7; }
.dungeon-current > div > small { color: var(--gold); font-size: 9px; }
.dungeon-choices { display: grid; align-content: center; gap: 7px; }
.dungeon-choice { width: 100%; display: grid; gap: 3px; padding: 13px 15px; color: var(--text); background: rgba(255,255,255,.025); border: 1px solid var(--line-strong); border-radius: 10px; cursor: pointer; text-align: left; }
.dungeon-choice:hover { background: rgba(101,237,202,.06); border-color: rgba(101,237,202,.28); }
.dungeon-choice--boss { border-color: rgba(255,118,133,.25); }
.dungeon-choice small { color: var(--muted); font-size: 9px; }
.dungeon-log { display: grid; grid-template-columns: repeat(2,1fr); gap: 5px; margin: 0; padding: 15px 25px; list-style: none; }
.dungeon-log li { display: flex; align-items: center; gap: 9px; padding: 9px; background: rgba(255,255,255,.018); border-radius: 8px; }
.dungeon-log li > div { display: grid; }
.dungeon-log small { color: var(--muted); font-size: 8px; }
.dungeon-abandon { padding: 0 25px 18px; text-align: right; }
.dungeon-card > footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 25px; border-top: 1px solid var(--line); }
.dungeon-card > footer > span { color: var(--muted); font-size: 10px; }

.campaign-hero { min-height: 330px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 35px; padding: clamp(30px,6vw,65px); background: radial-gradient(circle at 82% 38%,rgba(255,201,102,.14),transparent 28%),radial-gradient(circle at 10% 90%,rgba(174,138,255,.1),transparent 30%),#101827; border: 1px solid rgba(255,201,102,.2); border-radius: 22px; }
.campaign-hero h1 { margin: 8px 0 0; font-family: Georgia,serif; font-size: clamp(44px,7vw,76px); line-height: 1; }
.campaign-hero h2 { margin: 8px 0 16px; color: var(--gold); font-family: Georgia,serif; font-size: clamp(24px,4vw,39px); font-weight: 400; }
.campaign-hero p { max-width: 720px; color: #acbccd; font-size: 14px; line-height: 1.75; }
.campaign-party { display: inline-flex; gap: 8px; padding: 8px 12px; color: var(--violet); background: rgba(174,138,255,.06); border: 1px solid rgba(174,138,255,.16); border-radius: 999px; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.campaign-seal { width: 150px; height: 150px; display: grid; place-content: center; color: var(--gold); border: 1px solid rgba(255,201,102,.27); border-radius: 50%; font-family: Georgia,serif; font-size: 52px; text-align: center; }
.campaign-seal b { color: var(--text); font-family: Inter,sans-serif; font-size: 11px; }
.campaign-timeline { display: grid; grid-template-columns: repeat(8,1fr); gap: 6px; margin: 14px 0; padding: 0; overflow-x: auto; list-style: none; scrollbar-width: none; }
.campaign-timeline::-webkit-scrollbar { display: none; }
.campaign-node { min-width: 76px; display: grid; justify-items: center; gap: 4px; padding: 9px; color: #5d7188; background: rgba(255,255,255,.018); border: 1px solid var(--line); border-radius: 9px; }
.campaign-node b { width: 25px; height: 25px; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: 9px; }
.campaign-node span { font-size: 8px; font-weight: 800; text-transform: uppercase; }
.campaign-node--done { color: var(--success); }
.campaign-node--current { color: var(--gold); background: rgba(255,201,102,.05); border-color: rgba(255,201,102,.2); }
.campaign-panel { min-height: 500px; display: grid; place-items: center; padding: clamp(28px,6vw,70px); background: radial-gradient(circle at 85% 15%,rgba(255,201,102,.09),transparent 34%),linear-gradient(145deg,rgba(18,30,48,.96),rgba(9,16,28,.96)); }
.campaign-scene { width: min(850px,100%); }
.campaign-scene > h2, .campaign-ending h2 { margin: 12px 0 18px; font-size: clamp(32px,5vw,53px); }
.campaign-scene > p, .campaign-ending > p { color: #b5c3d2; font-size: 15px; line-height: 1.8; }
.campaign-decisions { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 26px; }
.campaign-decisions button { width: 100%; height: 100%; display: grid; gap: 6px; padding: 18px; color: var(--text); background: rgba(255,255,255,.025); border: 1px solid var(--line-strong); border-radius: 12px; cursor: pointer; text-align: left; }
.campaign-decisions button:hover { background: rgba(255,201,102,.06); border-color: rgba(255,201,102,.28); }
.campaign-decisions b { font-family: Georgia,serif; font-size: 18px; }
.campaign-decisions small { color: var(--muted); line-height: 1.5; }
.campaign-companions { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; margin-top: 25px; }
.campaign-companion { display: grid; align-content: start; padding: 20px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 14px; }
.campaign-companion > span { width: 55px; height: 55px; display: grid; place-items: center; color: var(--gold); background: rgba(255,201,102,.06); border: 1px solid rgba(255,201,102,.16); border-radius: 16px; font-family: Georgia,serif; font-size: 24px; }
.campaign-companion.companion--violet > span { color: var(--violet); background: rgba(174,138,255,.06); border-color: rgba(174,138,255,.16); }
.campaign-companion.companion--mint > span { color: var(--mint); background: rgba(101,237,202,.06); border-color: rgba(101,237,202,.16); }
.campaign-companion h3 { margin: 10px 0 0; font-family: Georgia,serif; font-size: 22px; }
.campaign-companion > b { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.campaign-companion p { min-height: 100px; margin: 10px 0; color: var(--muted); font-size: 10px; }
.campaign-companion > small { margin-bottom: 13px; color: var(--gold); font-size: 8px; text-transform: uppercase; }
.campaign-companion .button { margin-top: auto; }
.campaign-requirement { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 15px; margin-top: 25px; padding: 17px; background: rgba(255,118,133,.045); border: 1px solid rgba(255,118,133,.18); border-radius: 13px; }
.campaign-requirement > span { color: var(--danger); font-size: 30px; }
.campaign-requirement p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.campaign-riddle { display: grid; gap: 8px; margin-top: 24px; }
.campaign-riddle label input { position: absolute; opacity: 0; }
.campaign-riddle label span { display: block; padding: 13px; color: #bdc8d5; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.campaign-riddle label input:checked + span { color: var(--gold); background: rgba(255,201,102,.05); border-color: rgba(255,201,102,.28); }
.campaign-riddle .button { justify-self: start; margin-top: 8px; }
.campaign-scene--battle small { display: block; margin-top: 10px; color: var(--danger); }
.campaign-ending { width: min(800px,100%); text-align: center; }
.campaign-ending__rewards { display: flex; justify-content: center; flex-wrap: wrap; gap: 7px; margin-top: 20px; }
.campaign-ending__rewards span { padding: 8px 11px; color: var(--gold); background: rgba(255,201,102,.05); border: 1px solid rgba(255,201,102,.14); border-radius: 999px; font-size: 9px; }
.campaign-ending .story-actions { justify-content: center; }
.campaign-values { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin-top: 12px; }
.campaign-values article { padding: 16px; background: rgba(255,255,255,.018); border: 1px solid var(--line); border-radius: 11px; }
.campaign-values article > span { color: var(--violet); font-size: 20px; }
.campaign-values h3 { margin: 6px 0 3px; font-family: Georgia,serif; }
.campaign-values p { margin: 0; color: var(--muted); font-size: 9px; }

.companion-hero { min-height: 270px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 30px; padding: clamp(28px,5vw,52px); background: radial-gradient(circle at 85% 35%,rgba(174,138,255,.14),transparent 32%),linear-gradient(145deg,rgba(20,29,48,.96),rgba(11,18,31,.96)); }
.companion-hero h1 { margin: 9px 0 12px; font-family: Georgia,serif; font-size: clamp(38px,6vw,62px); }
.companion-hero p { max-width: 720px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.75; }
.companion-moon { width: 130px; height: 130px; display: grid; place-items: center; color: var(--violet); background: rgba(174,138,255,.05); border: 1px solid rgba(174,138,255,.24); border-radius: 50%; font-family: Georgia,serif; font-size: 50px; }
.companion-activities, .companion-collection { margin-top: 32px; }
.companion-activity-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.companion-activity-grid form { display: grid; padding: 20px; text-align: center; }
.companion-activity-grid form > span { color: var(--violet); font-size: 28px; }
.companion-activity-grid h3 { margin: 8px 0 3px; font-family: Georgia,serif; }
.companion-activity-grid p { color: var(--muted); font-size: 9px; }
.companion-activity-grid .button { margin-top: auto; }
.companion-callout { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 17px; margin-top: 12px; padding: 22px; background: linear-gradient(110deg,rgba(255,201,102,.08),rgba(174,138,255,.07)); border: 1px solid rgba(255,201,102,.18); border-radius: 15px; }
.companion-callout > span { color: var(--gold); font-size: 34px; }
.companion-callout p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.companion-callout strong { color: var(--gold); font-size: 10px; }
.companion-list { display: grid; grid-template-columns: repeat(2,1fr); gap: 9px; }
.companion-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; min-height: 190px; padding: 20px; background: rgba(17,28,45,.75); border: 1px solid var(--line); border-radius: 14px; }
.companion-card.is-active { background: linear-gradient(125deg,rgba(174,138,255,.08),rgba(17,28,45,.82)); border-color: rgba(174,138,255,.24); }
.companion-symbol { width: 62px; height: 62px; display: grid; place-items: center; color: var(--gold); background: rgba(255,201,102,.06); border: 1px solid rgba(255,201,102,.17); border-radius: 19px 7px 19px 7px; font-family: Georgia,serif; font-size: 27px; }
.companion-card--violet .companion-symbol { color: var(--violet); background: rgba(174,138,255,.06); border-color: rgba(174,138,255,.18); }
.companion-card--mint .companion-symbol { color: var(--mint); background: rgba(101,237,202,.06); border-color: rgba(101,237,202,.18); }
.companion-card h3 { margin: 6px 0 3px; font-family: Georgia,serif; font-size: 22px; }
.companion-card h3 small { color: var(--muted); font-family: Inter,sans-serif; font-size: 9px; text-transform: uppercase; }
.companion-card p { margin: 0; color: var(--muted); font-size: 10px; }
.bond-line { display: grid; grid-template-columns: 1fr auto; margin-top: 12px; color: var(--muted); font-size: 8px; text-transform: uppercase; }
.bond-line b { color: var(--violet); }
.bond-line .progress { grid-column: 1/-1; }
.companion-active-dot { color: var(--success); }
.companion-card.is-locked { opacity: .55; border-style: dashed; }
.companion-card.is-locked .companion-symbol { color: var(--muted); background: rgba(255,255,255,.02); border-color: var(--line); }
.title-vault { margin-top: 12px; padding: 22px; }
.title-list { display: flex; flex-wrap: wrap; gap: 7px; }
.title-chip button { display: grid; gap: 2px; padding: 9px 11px; color: var(--text); background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 9px; cursor: pointer; text-align: left; }
.title-chip small { color: var(--muted); font-size: 7px; }
.title-chip span { color: var(--mint); font-size: 7px; text-transform: uppercase; }
.title-chip.is-active button { border-color: rgba(101,237,202,.3); background: rgba(101,237,202,.06); }

.admin-welcome { align-items: center; }
.admin-metrics { display: flex; gap: 9px; }
.admin-metrics span { min-width: 110px; display: grid; padding: 12px; color: var(--muted); background: rgba(255,255,255,.025); border: 1px solid var(--line); border-radius: 10px; font-size: 9px; text-transform: uppercase; }
.admin-metrics b { color: var(--text); font-size: 22px; }
.admin-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(320px,.75fr); gap: 12px; align-items: start; }
.admin-grid > section { padding: 22px; }
.review-list { display: grid; gap: 8px; }
.review-item { display: grid; grid-template-columns: minmax(190px,1fr) minmax(120px,.6fr) auto; align-items: center; gap: 14px; padding: 14px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 11px; }
.identity { display: flex; align-items: center; gap: 10px; }
.identity > div, .nick-review { display: grid; }
.identity small, .nick-review span, .nick-review small { color: var(--muted); font-size: 9px; }
.nick-review b { color: var(--mint); }
.review-actions { display: flex; gap: 6px; }
.reward-form { background: linear-gradient(145deg,rgba(101,237,202,.07),rgba(17,28,45,.9)); }
.student-list li { flex-wrap: wrap; }
.status-badge { padding: 4px 7px; border-radius: 6px; font-size: 8px; font-weight: 900; text-transform: uppercase; }
.status-badge--active { color: var(--success); background: rgba(85,222,160,.08); }
.status-badge--suspended { color: var(--danger); background: rgba(255,118,133,.08); }
.reward-list time { color: var(--muted); font-size: 8px; }

.activity-card--story { background: linear-gradient(135deg, rgba(174,138,255,.1), rgba(17,29,46,.86)); }
.activity-card--story .activity-symbol { color: var(--violet); border-color: rgba(174,138,255,.22); background: rgba(174,138,255,.08); }

.story-timeline { display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; margin: 0 0 14px; padding: 0; list-style: none; }
.story-node { min-height: 64px; display: flex; align-items: center; gap: 10px; padding: 10px 13px; color: #64788f; background: rgba(255,255,255,.018); border: 1px solid var(--line); border-radius: 11px; }
.story-node b { width: 27px; height: 27px; display: grid; flex: 0 0 auto; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: 10px; }
.story-node span { font-size: 10px; font-weight: 800; text-transform: uppercase; }
.story-node--done { color: var(--success); background: rgba(85,222,160,.035); }
.story-node--current { color: var(--mint); background: rgba(101,237,202,.08); border-color: rgba(101,237,202,.3); }
.chapter-status { padding: 8px 12px; color: var(--mint); background: rgba(101,237,202,.06); border: 1px solid rgba(101,237,202,.18); border-radius: 999px; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.story-panel { min-height: 390px; display: grid; place-items: center; padding: clamp(28px,6vw,70px); background: radial-gradient(circle at 80% 20%,rgba(174,138,255,.12),transparent 35%), linear-gradient(145deg,rgba(18,30,48,.96),rgba(9,16,28,.96)); }
.story-scene { width: min(730px,100%); }
.story-scene h2 { margin: 12px 0 18px; font-size: clamp(30px,5vw,48px); }
.story-scene p { color: #b1c0d1; font-size: 15px; line-height: 1.8; }
.story-scene em, .story-scene p b { color: var(--mint); }
.story-question { display: grid; gap: 9px; margin-top: 24px; }
.story-question .button { margin-top: 9px; justify-self: start; }
.story-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.story-badge { width: 82px; height: 82px; display: grid; place-items: center; margin-bottom: 24px; color: #08140f; background: var(--mint); border-radius: 26px 7px 26px 7px; font-family: Georgia,serif; font-size: 34px; font-weight: 900; }
.story-journal { margin-top: 12px; padding: 18px 22px; }
.story-journal p { margin: 7px 0 0; color: var(--muted); font-size: 11px; }

.equipment-stats { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px; }
.equipment-stats span { min-width: 96px; display: grid; padding: 9px 11px; color: var(--muted); background: rgba(255,255,255,.025); border: 1px solid var(--line); border-radius: 9px; font-size: 9px; text-transform: uppercase; }
.equipment-stats b { color: var(--mint); font-size: 16px; }
.equipment-layout { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(330px,.75fr); gap: 12px; align-items: start; }
.inventory-panel, .shop-panel, .economy-panel { padding: 22px; }
.shop-column { display: grid; gap: 12px; }
.item-list, .shop-grid { display: grid; gap: 9px; }
.shop-category { margin-top: 10px; border-top: 1px solid var(--line); }
.shop-category > summary { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 9px; padding: 13px 2px 9px; color: var(--text); cursor: pointer; list-style: none; }
.shop-category > summary::-webkit-details-marker, .recipe-category > summary::-webkit-details-marker { display: none; }
.shop-category > summary span { color: var(--mint); font-size: 18px; }
.shop-category > summary b { font: 700 16px Georgia,serif; }
.shop-category > summary small { min-width: 25px; padding: 4px 7px; color: var(--gold); background: rgba(255,201,102,.07); border: 1px solid rgba(255,201,102,.15); border-radius: 99px; text-align: center; }
.shop-category > .shop-grid { padding: 2px 0 8px; }
.item-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 15px; padding: 15px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 12px; }
.item-icon { width: 48px; height: 48px; display: grid; place-items: center; color: var(--mint); background: rgba(101,237,202,.06); border: 1px solid rgba(101,237,202,.15); border-radius: 14px 5px 14px 5px; font-family: Georgia,serif; font-weight: 800; }
.rarity--rare { border-color: rgba(174,138,255,.28); }
.rarity--rare .item-icon, .rarity--legendary .item-icon { color: var(--violet); background: rgba(174,138,255,.08); border-color: rgba(174,138,255,.2); }
.rarity--legendary { border-color: rgba(255,201,102,.38); box-shadow: inset 0 0 35px rgba(255,201,102,.035); }
.rarity--legendary .item-icon { color: var(--gold); }
.item-copy h3, .shop-card h3 { margin: 4px 0; font-family: Georgia,serif; font-size: 17px; }
.item-copy p, .shop-card p { margin: 0; color: var(--muted); font-size: 10px; }
.item-copy > small { color: var(--gold); font-size: 9px; }
.item-meta { display: flex; justify-content: space-between; gap: 10px; color: var(--muted); font-size: 8px; text-transform: uppercase; }
.item-meta b { color: var(--mint); }
.item-actions { display: grid; justify-items: end; gap: 6px; }
.shop-card { padding: 14px; background: rgba(255,255,255,.018); border: 1px solid var(--line); border-radius: 11px; }
.shop-effect { display: block; margin-top: 8px; color: var(--gold); font-size: 8px; line-height: 1.45; }
.shop-card > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
.shop-card > div > b { color: var(--gold); }
.economy-panel h3 { margin-bottom: 10px; }
.positive { color: var(--success) !important; }
.negative { color: var(--danger) !important; }

.recipe-category { border-bottom: 1px solid var(--line); }
.recipe-category:last-child { border-bottom: 0; }
.recipe-category > summary { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 18px 4px; cursor: pointer; list-style: none; }
.recipe-category > summary > span { width: 42px; height: 42px; display: grid; place-items: center; color: var(--gold); background: rgba(255,201,102,.06); border: 1px solid rgba(255,201,102,.16); border-radius: 12px 4px; font-size: 20px; }
.recipe-category > summary h2 { margin: 0; font: 700 18px Georgia,serif; }
.recipe-category > summary small { color: var(--muted); font-size: 9px; }
.recipe-category > summary > b { color: var(--mint); font-size: 18px; }
.recipe-category__list { display: grid; gap: 9px; padding: 0 0 16px; }

.admin-jump { position: sticky; z-index: 8; top: 82px; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; padding: 8px; background: rgba(8,13,23,.88); border: 1px solid var(--line); border-radius: 12px; backdrop-filter: blur(14px); }
.admin-jump a { padding: 7px 12px; color: var(--muted); border-radius: 8px; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.admin-jump a:hover { color: var(--text); background: rgba(101,237,202,.07); }
.admin-section { margin-top: 44px; scroll-margin-top: 150px; }
.moderation-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: start; }
.moderation-grid > section { padding: 22px; }
.moderation-log { grid-column: 1/-1; }
.moderation-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.moderation-item { display: grid; grid-template-columns: 1fr auto; gap: 14px; padding: 13px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 10px; }
.moderation-item.is-hidden { opacity: .58; }
.moderation-item p { margin: 4px 0; color: #becad8; font-size: 11px; }
.moderation-item small { color: var(--muted); font-size: 8px; }
.message-author { display: flex; justify-content: space-between; gap: 10px; }
.message-author span { color: var(--gold); font-size: 8px; }
.compact-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 5px; }
.question-admin-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(380px,.75fr); gap: 12px; align-items: start; }
.question-bank { padding: 22px; }
.category-stats { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 18px; }
.category-stats span { padding: 7px 9px; color: var(--muted); background: rgba(255,255,255,.025); border: 1px solid var(--line); border-radius: 8px; font-size: 9px; }
.category-stats b { color: var(--mint); }
.form-row--three { grid-template-columns: repeat(3,1fr); }

.empty { min-height: 70px; display: grid !important; place-items: center; color: var(--muted); font-size: 11px; text-align: center; }

.quest-highlight--calm { background: linear-gradient(120deg, rgba(54,91,111,.8), rgba(31,54,77,.92)); }
.filter-chips { display: flex; gap: 7px; margin: -8px 0 16px; padding-bottom: 3px; overflow-x: auto; }
.filter-chip { flex: 0 0 auto; padding: 8px 11px; color: var(--muted); background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 999px; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.filter-chip b { margin-left: 5px; color: var(--mint); }
.filter-chip.is-active { color: #071611; background: var(--mint); border-color: var(--mint); }
.mission-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.mission-card { padding: 24px; }
.mission-card.is-complete { border-color: rgba(101,237,202,.36); }
.mission-card__top, .mission-progress > div:first-child, .mission-reward { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.mission-card__top > b { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.mission-card h2 { margin: 18px 0 8px; font-family: Georgia,serif; font-size: 24px; }
.mission-card p { min-height: 42px; color: var(--muted); font-size: 11px; line-height: 1.65; }
.mission-card > small { color: var(--violet); }
.mission-progress { margin-top: 22px; }
.mission-progress > div:first-child { margin-bottom: 7px; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.mission-progress b, .mission-reward b { color: var(--mint); }
.mission-reward { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 10px; }
.empty-state { grid-column: 1/-1; min-height: 330px; display: grid; place-items: center; align-content: center; padding: 40px; text-align: center; }
.empty-state__icon { color: var(--mint); font-size: 50px; }
.empty-state p { max-width: 590px; color: var(--muted); line-height: 1.7; }
.metric-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.metric-card { padding: 20px; }
.metric-card > span { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.metric-card > b { display: block; margin: 10px 0 4px; color: var(--mint); font-family: Georgia,serif; font-size: 31px; }
.metric-card > b small { color: var(--muted); font-family: inherit; font-size: 13px; }
.metric-card p { min-height: 28px; color: var(--muted); font-size: 10px; }
.report-explainer { margin-top: 12px; padding: 24px; }
.report-explainer h2 { margin: 10px 0 5px; }
.report-explainer p { margin: 0; color: var(--muted); line-height: 1.7; }
.month-filter, .admin-filter { display: flex; align-items: end; gap: 9px; }
.month-filter label, .admin-filter label { min-width: 170px; }

.league-strip { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 15px; margin-bottom: 12px; padding: 15px 18px; color: var(--text); background: linear-gradient(110deg,rgba(255,201,102,.13),rgba(101,237,202,.06)); border: 1px solid rgba(255,201,102,.3); border-radius: 13px; }
.league-strip > span { width: 42px; height: 42px; display: grid; place-items: center; color: var(--gold); border: 1px solid rgba(255,201,102,.4); border-radius: 50%; font-size: 21px; }
.league-strip > div { display: grid; grid-template-columns: 1fr auto; gap: 2px 15px; }
.league-strip small { grid-column: 1/-1; color: var(--gold); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.league-strip b { font-family: Georgia,serif; font-size: 16px; }
.league-strip em { color: var(--muted); font-size: 9px; font-style: normal; }
.league-strip > strong { color: var(--mint); font-size: 10px; }
.league-hero { min-height: 220px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 30px; margin-bottom: 12px; padding: clamp(24px,4vw,48px); overflow: hidden; background: radial-gradient(circle at 90% 20%,rgba(255,201,102,.16),transparent 34%),linear-gradient(135deg,#121b2b,#0a111d); border-color: rgba(255,201,102,.25); }
.league-hero h2 { margin: 12px 0 9px; font-family: Georgia,serif; font-size: clamp(30px,4vw,49px); }
.league-hero p { max-width: 720px; color: #b7c4d5; line-height: 1.7; }
.league-hero small { color: var(--muted); }
.league-score { width: 160px; height: 160px; display: grid; place-items: center; align-content: center; text-align: center; background: rgba(255,201,102,.05); border: 1px solid rgba(255,201,102,.34); border-radius: 50%; box-shadow: inset 0 0 45px rgba(255,201,102,.06); }
.league-score b { color: var(--gold); font-family: Georgia,serif; font-size: 58px; line-height: .9; }
.league-score > span { color: var(--muted); font-size: 11px; }
.league-score small { max-width: 120px; margin-top: 7px; color: var(--mint); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.league-final { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 22px; margin-top: 12px; padding: 24px; border-color: rgba(174,138,255,.25); }
.league-final.is-complete { border-color: rgba(101,237,202,.36); }
.league-final__mark { width: 78px; height: 78px; display: grid; place-items: center; color: var(--violet); border: 1px solid rgba(174,138,255,.4); border-radius: 50%; font-family: Georgia,serif; font-size: 27px; }
.league-final.is-complete .league-final__mark { color: var(--mint); border-color: rgba(101,237,202,.4); }
.league-final h2 { margin: 7px 0 4px; font-family: Georgia,serif; }
.league-final p { margin: 0 0 12px; color: var(--muted); line-height: 1.6; }
.league-final small { display: block; margin-top: 6px; color: var(--violet); }
.league-decision { margin-top: 12px; padding: 23px; border-color: rgba(255,201,102,.23); }
.league-decision h2 { margin: 9px 0 5px; font-family: Georgia,serif; }
.league-decision p { margin: 0; color: var(--muted); line-height: 1.6; }
.league-decision--grade_5, .league-decision--grade_6, .league-decision--recognition { border-color: rgba(101,237,202,.34); }
.league-sleep { min-height: 270px; display: grid; grid-template-columns: auto minmax(0,650px); place-content: center; align-items: center; gap: 24px; padding: 35px; }
.league-sleep__mark { width: 96px; height: 96px; display: grid; place-items: center; color: var(--gold); border: 1px solid rgba(255,201,102,.35); border-radius: 50%; font-size: 35px; }
.league-sleep h2 { margin: 9px 0; font-family: Georgia,serif; font-size: 30px; }
.league-sleep p { color: var(--muted); line-height: 1.7; }
.chronicle-section { margin-top: 26px; }
.chronicle-list { display: grid; gap: 10px; }
.chronicle-entry { display: grid; grid-template-columns: auto 1fr; gap: 17px; padding: 21px; background: linear-gradient(120deg,rgba(255,255,255,.035),rgba(255,255,255,.015)); border: 1px solid var(--line); border-radius: var(--radius); }
.chronicle-seal { width: 58px; height: 58px; display: grid; place-items: center; color: var(--gold); background: rgba(255,201,102,.05); border: 1px solid rgba(255,201,102,.25); border-radius: 50%; font-family: Georgia,serif; font-size: 22px; }
.chronicle-entry--season .chronicle-seal { color: var(--violet); border-color: rgba(174,138,255,.3); }
.chronicle-entry span { color: var(--gold); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.chronicle-entry h3 { margin: 5px 0; font-family: Georgia,serif; font-size: 20px; }
.chronicle-entry p { margin: 0 0 7px; color: var(--muted); line-height: 1.55; }
.chronicle-entry small { color: #71849c; }
.chronicle-empty { padding: 30px; text-align: center; border: 1px dashed var(--line); border-radius: var(--radius); }

.admin-filter { margin-bottom: 12px; padding: 13px; }
.admin-filter label { flex: 1; margin: 0; }
.password-flash { display: grid; gap: 7px; }
.password-flash strong { color: var(--gold); font-family: ui-monospace,Consolas,monospace; font-size: 21px; letter-spacing: .04em; }
.password-flash code { color: var(--text); }

.temporary-password-stage { width:min(720px,100%); margin:40px auto; text-align:center; }
.temporary-password-stage > p { max-width:580px; margin:12px auto 24px; color:var(--muted); }
.temporary-password-mark { display:grid; place-items:center; width:64px; height:64px; margin:0 auto 18px; border-radius:22px; color:#68f0c8; background:rgba(78,227,187,.1); border:1px solid rgba(78,227,187,.3); font-size:30px; }
.temporary-password-stage .eyebrow { justify-content:center; }
.temporary-password-card { display:grid; grid-template-columns:1fr 1fr; gap:16px; text-align:left; }
.temporary-password-card > div { display:grid; gap:7px; padding:14px 16px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.025); }
.temporary-password-card small { color:var(--mint); font-size:10px; font-weight:800; letter-spacing:.13em; }
.temporary-password-card code { color:var(--text); font-size:17px; overflow-wrap:anywhere; }
.temporary-password-card .temporary-password-value { grid-column:1/-1; border-color:rgba(255,201,102,.34); background:rgba(255,201,102,.06); }
.temporary-password-card .temporary-password-value code { color:var(--gold); font-size:clamp(22px,5vw,34px); font-weight:900; letter-spacing:.06em; text-align:center; }
.temporary-password-card > button { grid-column:1/-1; }
.temporary-password-stage .notice { margin-top:18px; text-align:left; }
.temporary-password-stage .hero-actions { justify-content:center; }
.admin-player-password code { color:var(--gold); font-size:16px; }
.admin-player-password form { margin-top:18px; }

@media (max-width:640px) {
  .temporary-password-card { grid-template-columns:1fr; }
  .temporary-password-card .temporary-password-value,.temporary-password-card > button { grid-column:1; }
}
.class-layout, .mission-admin-layout, .backup-layout { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(340px,.75fr); gap: 12px; align-items: start; }
.class-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.class-card { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 15px; min-height: 160px; padding: 20px; background: rgba(255,255,255,.025); border: 1px solid var(--line); border-radius: var(--radius); }
.class-card.is-disabled { opacity: .62; }
.class-card h3 { margin: 10px 0 4px; font-family: Georgia,serif; font-size: 26px; }
.class-card p { color: var(--muted); font-size: 10px; }
.class-card code { display: inline-block; padding: 7px 10px; color: var(--gold); background: rgba(255,201,102,.07); border: 1px solid rgba(255,201,102,.18); border-radius: 7px; font-size: 15px; letter-spacing: .08em; }
.class-card .compact-actions { display: grid; justify-items: end; }
.class-editor { grid-column: 1/-1; width: 100%; padding-top: 10px; border-top: 1px solid var(--line); }
.class-editor summary { color: var(--mint); cursor: pointer; font-size: 9px; font-weight: 800; }
.class-editor form { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 8px; padding-top: 12px; }
.class-editor label { margin: 0; }
.student-admin-row { align-items: flex-start !important; }
.student-class-inline { display: flex; align-items: center; gap: 7px; }
.student-class-inline select { min-width: 76px; padding: 7px 27px 7px 8px; }
.admin-center-students .pagination { padding-bottom: 14px; }
.center-student-filter { display: grid; grid-template-columns: minmax(170px,1fr) auto auto; align-items: end; gap: 8px; margin: 14px 0 10px; padding: 10px; background: rgba(255,255,255,.018); border: 1px solid var(--line); border-radius: 10px; }
.center-student-filter label { margin: 0; }
.bulk-reward-filters { display: grid; grid-template-columns: minmax(220px,1.2fr) minmax(170px,.7fr) auto auto; align-items: end; gap: 9px; margin-bottom: 10px; padding: 14px 16px; }
.bulk-reward-filters label { margin: 0; }
.bulk-reward-form { padding: 20px; }
.bulk-reward-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }
.bulk-reward-toolbar > div { display: grid; }
.bulk-reward-toolbar small { color: var(--muted); font-size: 9px; }
.student-check-grid { max-height: 280px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; overflow-y: auto; }
.student-check-grid.is-disabled { opacity: .42; }
.student-check { min-height: 54px; margin: 0; padding: 9px 10px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 9px; }
.student-check span { display: grid; }
.student-check small { color: var(--muted); font-size: 8px; }
.reward-scope-field { margin: 16px 0 0; padding: 13px; border: 1px solid var(--line); border-radius: 11px; }
.reward-scope-field legend { padding: 0 7px; color: var(--mint); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.reward-scope-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.reward-scope { min-height: 58px; margin: 0; padding: 10px 11px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 9px; }
.reward-scope:has(input:checked) { border-color: rgba(101,237,202,.42); background: rgba(101,237,202,.07); }
.reward-scope span { display: grid; }
.reward-scope small { color: var(--muted); font-size: 8px; line-height: 1.4; }
.reward-scope--all:has(input:checked) { border-color: rgba(255,201,102,.45); background: rgba(255,201,102,.07); }
.bulk-controls { display: grid; grid-template-columns: .7fr .4fr 1.5fr auto; align-items: end; gap: 9px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.bulk-controls label { margin: 0; }
.check-field { margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.check-field legend { padding: 0 6px; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.check-grid { display: flex; flex-wrap: wrap; gap: 5px 12px; }
.compact-check { margin: 0; }
.mission-admin-layout { grid-template-columns: minmax(0,1fr) minmax(430px,.85fr); }
.report-note { margin-bottom: 12px; padding: 18px 22px; border-color: rgba(255,201,102,.2); }
.report-note b { color: var(--gold); }
.report-note p { margin: 5px 0 0; color: var(--muted); line-height: 1.6; }
.report-layout { display: grid; grid-template-columns: 1fr; gap: 12px; align-items: start; }
.table-panel, .report-layout > aside { padding: 18px; }
.table-scroll { overflow-x: auto; }
.report-table { width: 100%; border-collapse: collapse; font-size: 10px; }
.report-table th { padding: 8px; color: var(--muted); text-align: left; text-transform: uppercase; white-space: nowrap; }
.report-table td { min-width: 80px; padding: 10px 8px; border-top: 1px solid var(--line); vertical-align: top; }
.report-table td:first-child { min-width: 150px; }
.report-table td:last-child { min-width: 220px; }
.report-table td > small { display: block; margin-top: 3px; color: var(--muted); font-size: 8px; }
.award-inline { display: grid; gap: 5px; }
.award-inline select, .award-inline input { min-height: 32px; padding: 6px 8px; font-size: 9px; }
.difficulty-list { display: grid; gap: 7px; margin: 14px 0 0; padding: 0; list-style: none; }
.difficulty-list li { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 10px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 8px; }
.difficulty-list small { display: block; margin-top: 4px; color: var(--muted); }
.difficulty-list strong { color: var(--gold); }
.backup-layout > section { padding: 22px; }
.danger-link { color: var(--danger); }
.league-admin-setup { display: grid; grid-template-columns: minmax(0,1fr); gap: 18px; align-items: start; }
.league-admin-current { min-width: 0; display: grid; gap: 12px; }
.league-admin-banner { min-height: 180px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 20px; padding: 27px; background: radial-gradient(circle at 90% 20%,rgba(255,201,102,.15),transparent 36%),linear-gradient(135deg,#121b2b,#0b1320); border: 1px solid rgba(255,201,102,.25); border-radius: var(--radius); }
.league-admin-banner h3 { margin: 10px 0 6px; font-family: Georgia,serif; font-size: 30px; }
.league-admin-banner p, .league-admin-banner small { color: var(--muted); }
.league-admin-banner > div:last-child { display: grid; text-align: center; }
.league-admin-banner > div:last-child b { color: var(--gold); font-family: Georgia,serif; font-size: 48px; }
.league-admin-banner > div:last-child span { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.league-teacher-tools { display: grid; grid-template-columns: minmax(360px,.8fr) 1.2fr; gap: 12px; }
.league-points-form p { color: var(--muted); line-height: 1.55; }
.league-teacher-tools > section { padding: 22px; }
.league-table-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 10px; }
.league-table-head h3 { margin: 0 0 3px; }
.league-table-head p { margin: 0; color: var(--muted); font-size: 9px; }
.league-table td:last-child { min-width: 225px; }
.league-total { color: var(--gold); font-size: 20px; }
.league-candidate { display: inline-block; max-width: 130px; color: var(--mint); font-size: 9px; font-weight: 800; }
.final-badge { display: inline-flex; padding: 5px 8px; color: var(--muted); border: 1px solid var(--line); border-radius: 20px; }
.final-badge.is-done { color: var(--mint); border-color: rgba(101,237,202,.3); }
.league-admin-empty { min-height: 260px; display: grid; place-content: center; padding: 35px; text-align: center; }
.league-admin-empty h3 { margin: 10px 0 5px; font-family: Georgia,serif; font-size: 28px; }
.league-admin-empty p { max-width: 520px; color: var(--muted); line-height: 1.6; }
.league-history { margin-top: 12px; padding: 22px; }
.league-history-list { display: grid; gap: 8px; margin-top: 13px; }
.league-history-card { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 15px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 10px; }
.league-history-card h3 { margin: 7px 0 3px; }
.league-history-card p, .league-history-card small { margin: 0; color: var(--muted); font-size: 9px; }
.activity-review-entry { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:20px; padding:24px; color:var(--text); text-decoration:none; border-color:rgba(255,201,102,.28); background:linear-gradient(120deg,rgba(255,201,102,.09),rgba(101,237,202,.04)); }
.activity-review-entry > span { width:58px; height:58px; display:grid; place-items:center; color:var(--gold); border:1px solid rgba(255,201,102,.38); border-radius:50%; font-size:25px; }
.activity-review-entry small { color:var(--gold); font-size:9px; font-weight:900; letter-spacing:.1em; }
.activity-review-entry h2 { margin:6px 0; font-family:Georgia,serif; }
.activity-review-entry p { margin:0; color:var(--muted); line-height:1.55; }
.activity-review-entry > b { color:var(--mint); font-size:10px; }
.activity-review-modes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:12px 0; }
.activity-mode-card { display:grid; grid-template-columns:auto 1fr; gap:15px; padding:20px; color:var(--text); text-decoration:none; background:var(--panel); border:1px solid var(--line); border-radius:14px; transition:.18s ease; }
.activity-mode-card:hover, .activity-mode-card.is-active { transform:translateY(-2px); border-color:rgba(101,237,202,.42); background:linear-gradient(135deg,rgba(101,237,202,.09),rgba(255,201,102,.05)); }
.activity-mode-card > span { width:46px; height:46px; display:grid; place-items:center; color:var(--gold); border:1px solid rgba(255,201,102,.3); border-radius:13px; font-weight:900; }
.activity-mode-card small { color:var(--mint); font-size:8px; font-weight:900; letter-spacing:.1em; }
.activity-mode-card h2 { margin:5px 0; font:500 21px Georgia,serif; }
.activity-mode-card p { margin:0 0 10px; color:var(--muted); font-size:10px; line-height:1.5; }
.activity-mode-card b { color:var(--gold); font-size:9px; }
.activity-review-summary { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin:12px 0; }
.activity-review-summary article { padding:18px; background:var(--panel); border:1px solid var(--line); border-radius:13px; }
.activity-review-summary b { display:block; color:var(--gold); font-family:Georgia,serif; font-size:30px; }
.activity-review-summary span { color:var(--muted); font-size:9px; text-transform:uppercase; letter-spacing:.06em; }
.activity-review-filters { display:grid; grid-template-columns:repeat(4,minmax(140px,1fr)); align-items:end; gap:14px; margin-bottom:12px; }
.activity-review-filters fieldset { min-width:0; margin:0; padding:10px 12px; border:1px solid var(--line); border-radius:10px; }
.activity-review-filters legend { padding:0 5px; color:var(--muted); font-size:9px; font-weight:800; text-transform:uppercase; }
.activity-review-filters legend small { color:var(--muted); font-weight:400; text-transform:none; }
.activity-review-filters .check-grid { max-height:105px; overflow:auto; }
.activity-review-filters fieldset { grid-column:span 2; }
.activity-review-filters > button { min-height:42px; }
.activity-review-table td:first-child { min-width:220px; }
.activity-review-table td:last-child { min-width:270px; }
.activity-review-table td small { display:block; margin-top:4px; color:var(--muted); }
.activity-plus-total { color:var(--mint); font-size:20px; }
.activity-table-head { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:10px; }
.activity-table-head h2 { margin:0 0 3px; }
.activity-table-head p { margin:0; color:var(--muted); font-size:9px; }
.activity-total { color:var(--gold); font-size:20px; }
.activity-candidate { display:inline-block; max-width:145px; color:var(--mint); font-size:9px; font-weight:800; }
.activity-decision-form { display:grid; gap:7px; }
.activity-decision-form select, .activity-decision-form input { width:100%; }
.activity-decision-form small { color:var(--mint); }

.season-strip { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 15px; margin-bottom: 12px; padding: 14px 18px; color: var(--text); background: linear-gradient(110deg,rgba(174,138,255,.12),rgba(101,237,202,.06)); border: 1px solid rgba(174,138,255,.26); border-radius: 13px; }
.season-strip > span { width: 42px; height: 42px; display: grid; place-items: center; color: var(--violet); border: 1px solid rgba(174,138,255,.35); border-radius: 50%; font-size: 22px; }
.season-strip > div { display: grid; grid-template-columns: 1fr auto; gap: 2px 15px; }
.season-strip small { grid-column: 1/-1; color: var(--violet); font-size: 8px; font-weight: 900; letter-spacing: .12em; }
.season-strip b { font-family: Georgia,serif; font-size: 16px; }
.season-strip em { color: var(--muted); font-size: 9px; font-style: normal; }
.season-strip > strong { color: var(--mint); font-size: 10px; }
.season-hero { min-height: 390px; display: grid; grid-template-columns: minmax(0,1fr) 270px; align-items: center; gap: 45px; margin-bottom: 14px; padding: clamp(28px,5vw,65px); overflow: hidden; background: radial-gradient(circle at 85% 50%,rgba(174,138,255,.18),transparent 33%),linear-gradient(135deg,#111a2b,#0b1220); border: 1px solid rgba(174,138,255,.25); border-radius: 22px; }
.season-hero h1 { margin: 13px 0 16px; font-family: Georgia,serif; font-size: clamp(42px,6vw,76px); line-height: .95; }
.season-hero h1 em { display: block; margin-top: 10px; color: var(--violet); font-size: .48em; font-style: normal; }
.season-hero p { max-width: 720px; color: #b4c1d3; line-height: 1.8; }
.season-hero--empty { min-height: 520px; }
.season-hero--empty h1 { line-height: 1.05; }
.season-dates { display: flex; justify-content: space-between; gap: 12px; margin: 28px 0 9px; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.season-dates b { color: var(--mint); }
.season-sigil { width: 240px; height: 240px; display: grid; place-items: center; align-content: center; justify-self: end; color: var(--violet); background: radial-gradient(circle,rgba(174,138,255,.15),transparent 65%); border: 1px solid rgba(174,138,255,.25); border-radius: 50%; font-size: 76px; box-shadow: 0 0 80px rgba(174,138,255,.12); }
.season-sigil b { display: block; margin-top: -18px; color: var(--mint); font-family: Georgia,serif; font-size: 35px; }
.season-sigil small { margin-top: 10px; color: var(--muted); font-size: 8px; letter-spacing: .16em; }
.season-intro { margin-bottom: 14px; padding: 19px 24px; }
.season-intro p { margin: 8px 0 0; color: var(--muted); line-height: 1.7; }
.season-timeline { display: grid; gap: 13px; }
.season-chapter { padding: 26px; background: rgba(17,27,44,.82); border: 1px solid var(--line); border-radius: 16px; }
.season-chapter--current { border-color: rgba(101,237,202,.35); box-shadow: inset 3px 0 var(--mint); }
.season-chapter--upcoming { opacity: .68; }
.season-chapter header { display: flex; align-items: center; gap: 17px; }
.season-chapter header > span { width: 52px; height: 52px; display: grid; place-items: center; color: var(--mint); background: rgba(101,237,202,.06); border: 1px solid rgba(101,237,202,.2); border-radius: 14px 5px 14px 5px; font-family: Georgia,serif; font-size: 20px; }
.season-chapter header small { color: var(--violet); font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.season-chapter h2 { margin: 3px 0 0; font-family: Georgia,serif; font-size: 26px; }
.season-story { color: #b6c2d1; line-height: 1.75; }
.learning-goal { display: grid; grid-template-columns: auto 1fr; gap: 12px; margin: 15px 0; padding: 12px 14px; background: rgba(174,138,255,.06); border: 1px solid rgba(174,138,255,.14); border-radius: 9px; font-size: 10px; }
.learning-goal b { color: var(--violet); text-transform: uppercase; }
.learning-goal span { color: var(--muted); }
.season-chapter ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.season-mission { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px; padding: 13px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 10px; }
.season-mission > span { color: var(--violet); font-size: 20px; }
.season-mission.is-complete > span, .season-mission.is-complete > strong { color: var(--mint); }
.season-mission > div { display: grid; gap: 4px; }
.season-mission small { display: block; color: var(--muted); font-size: 8px; }
.season-mission .progress { height: 3px; margin-top: 3px; }
.season-mission > strong { min-width: 92px; color: var(--gold); text-align: right; }
.season-chapter footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; }
.season-chapter time { color: var(--muted); font-size: 8px; }
.button.is-disabled { pointer-events: none; opacity: .58; }

.season-admin-hero { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(350px,.75fr); gap: 12px; padding: 28px; background: radial-gradient(circle at 20% 20%,rgba(174,138,255,.12),transparent 32%),rgba(12,19,33,.75); border: 1px solid rgba(174,138,255,.22); border-radius: 18px; }
.season-admin-hero > div > h3 { margin: 12px 0 8px; font-family: Georgia,serif; font-size: 38px; }
.season-admin-hero > div > p { max-width: 720px; color: var(--muted); line-height: 1.7; }
.season-preview { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; margin-top: 22px; }
.season-preview article { display: grid; grid-template-columns: auto 1fr; gap: 11px; padding: 12px; background: rgba(255,255,255,.025); border: 1px solid var(--line); border-radius: 9px; }
.season-preview article > span { color: var(--violet); font-family: Georgia,serif; font-size: 20px; }
.season-preview article div { display: grid; gap: 3px; }
.season-preview small { color: var(--muted); line-height: 1.4; }
.active-seasons { margin-top: 12px; padding: 22px; }
.active-season-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 10px; padding: 15px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 10px; }
.active-season-card h3 { margin: 8px 0 3px; font-family: Georgia,serif; }
.active-season-card p, .active-season-card small { color: var(--muted); font-size: 9px; }

/* Karta bohatera */
.profile-hero {
  position: relative;
  min-height: 335px;
  display: grid;
  grid-template-columns: auto minmax(0,1fr) 230px;
  align-items: center;
  gap: clamp(24px,4vw,50px);
  margin-bottom: 12px;
  padding: clamp(28px,5vw,58px);
  overflow: hidden;
  background: linear-gradient(135deg,#142238,#0a1020);
  border: 1px solid color-mix(in srgb,var(--profile-accent) 30%,transparent);
  border-radius: 24px;
  box-shadow: var(--shadow);
}
.profile-banner--twilight { background: radial-gradient(circle at 18% 20%,rgba(101,237,202,.19),transparent 32%),linear-gradient(135deg,#142238,#0a1020); }
.profile-banner--forest { background: radial-gradient(circle at 18% 20%,rgba(76,205,127,.22),transparent 34%),linear-gradient(135deg,#102a25,#08131a); }
.profile-banner--ember { background: radial-gradient(circle at 18% 20%,rgba(255,118,86,.27),transparent 34%),linear-gradient(135deg,#321a1b,#100e18); }
.profile-banner--ocean { background: radial-gradient(circle at 18% 20%,rgba(72,167,255,.24),transparent 34%),linear-gradient(135deg,#102b3c,#090f20); }
.profile-banner--aurora { background: radial-gradient(circle at 18% 20%,rgba(174,138,255,.26),transparent 34%),linear-gradient(135deg,#251d40,#091523); }
.profile-banner--royal { background: radial-gradient(circle at 18% 20%,rgba(255,201,102,.23),transparent 34%),linear-gradient(135deg,#30251b,#111222); }
.profile-hero__pattern { position: absolute; inset: 0; opacity: .25; pointer-events: none; background-image: linear-gradient(30deg,transparent 47%,var(--profile-accent) 48%,transparent 49%),linear-gradient(-30deg,transparent 47%,var(--profile-accent) 48%,transparent 49%); background-size: 68px 68px; mask-image: linear-gradient(90deg,#000,transparent 68%); }
.profile-emblem { position: relative; width: 150px; height: 150px; display: grid; place-items: center; align-content: center; color: var(--profile-accent); background: rgba(5,10,18,.48); border: 1px solid color-mix(in srgb,var(--profile-accent) 48%,transparent); border-radius: 50%; box-shadow: 0 0 70px color-mix(in srgb,var(--profile-accent) 14%,transparent),inset 0 0 35px rgba(255,255,255,.025); }
.profile-emblem::before, .profile-emblem::after { content: ""; position: absolute; inset: 10px; border: 1px solid color-mix(in srgb,var(--profile-accent) 28%,transparent); border-radius: 50%; }
.profile-emblem::after { inset: -8px; border-style: dashed; animation: profile-orbit 32s linear infinite; }
@keyframes profile-orbit { to { transform: rotate(360deg); } }
.profile-emblem > span { position: relative; z-index: 1; font-family: Georgia,serif; font-size: 48px; font-weight: 900; }
.profile-emblem small { position: relative; z-index: 1; margin-top: 5px; color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .14em; }
.profile-identity { position: relative; min-width: 0; }
.profile-identity .tag { color: var(--profile-accent); border-color: color-mix(in srgb,var(--profile-accent) 25%,transparent); }
.profile-identity h1 { margin: 12px 0 4px; overflow-wrap: anywhere; font-family: Georgia,serif; font-size: clamp(42px,6vw,72px); line-height: .95; }
.profile-identity > p { color: #c1ccda; }
.profile-identity blockquote { max-width: 700px; margin: 22px 0 0; color: #edf3f9; font-family: Georgia,serif; font-size: clamp(17px,2vw,23px); font-style: italic; line-height: 1.45; }
.profile-hero__actions { position: relative; display: grid; gap: 9px; align-content: center; }
.profile-hero__actions .button { justify-content: center; }
.profile-hero__actions small { color: #aab8c9; font-size: 8px; line-height: 1.5; text-align: center; }
.profile-level { margin-bottom: 12px; padding: 17px 20px; background: rgba(17,28,45,.82); border: 1px solid var(--line); border-radius: 13px; }
.profile-level > div:first-child { display: flex; justify-content: space-between; gap: 15px; font-size: 10px; }
.profile-level > div:first-child span { color: var(--mint); font-weight: 900; letter-spacing: .12em; }
.profile-level > small { display: block; margin-top: 9px; color: var(--muted); font-size: 9px; }
.profile-stat-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 9px; margin-bottom: 34px; }
.profile-stat-grid article { min-width: 0; display: grid; place-items: center; gap: 5px; padding: 17px 9px; background: rgba(17,28,45,.68); border: 1px solid var(--line); border-radius: 13px; text-align: center; }
.profile-stat-grid span { color: var(--profile-accent,var(--mint)); font-size: 19px; }
.profile-stat-grid b { font-family: Georgia,serif; font-size: 22px; }
.profile-stat-grid small { color: var(--muted); font-size: 8px; line-height: 1.35; }
.profile-story-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 12px; margin-bottom: 34px; }
.profile-about { padding: 25px; }
.profile-about > p { min-height: 74px; color: #b8c5d4; line-height: 1.75; }
.profile-heritage { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 15px; padding-top: 18px; border-top: 1px solid var(--line); }
.profile-heritage > span { width: 54px; height: 54px; display: grid; place-items: center; color: var(--mint); background: rgba(101,237,202,.07); border: 1px solid rgba(101,237,202,.19); border-radius: 15px 5px 15px 5px; font-family: Georgia,serif; font-size: 22px; }
.profile-heritage small { display: block; color: var(--muted); font-size: 8px; letter-spacing: .12em; }
.profile-heritage b { display: block; margin: 4px 0 1px; }
.profile-heritage p { margin: 0; color: var(--mint); font-size: 9px; }
.profile-favorite { display: grid; grid-template-columns: auto 1fr; align-content: center; gap: 18px; min-height: 250px; padding: 28px; background: radial-gradient(circle at 13% 25%,rgba(174,138,255,.14),transparent 35%),rgba(17,28,45,.78); border: 1px solid var(--line); border-radius: var(--radius); }
.profile-favorite > span { width: 72px; height: 72px; display: grid; place-items: center; color: var(--violet); border: 1px solid rgba(174,138,255,.27); border-radius: 50%; font-size: 28px; }
.profile-favorite small { color: var(--violet); font-size: 8px; font-weight: 900; letter-spacing: .13em; }
.profile-favorite h3 { margin: 5px 0 8px; font-family: Georgia,serif; font-size: 25px; }
.profile-favorite p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.65; }
.profile-favorite--empty { opacity: .76; }
.profile-showcase { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; margin-bottom: 34px; }
.profile-showcase-card { min-height: 175px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 20px; padding: 25px; background: linear-gradient(135deg,rgba(255,201,102,.065),rgba(17,28,45,.78)); border: 1px solid rgba(255,201,102,.16); border-radius: var(--radius); }
.profile-showcase-card > span { width: 68px; height: 68px; display: grid; place-items: center; color: var(--gold); background: rgba(255,201,102,.06); border: 1px solid rgba(255,201,102,.2); border-radius: 18px 6px 18px 6px; font-family: Georgia,serif; font-size: 25px; }
.profile-showcase-card small { color: var(--gold); font-size: 8px; font-weight: 900; letter-spacing: .11em; }
.profile-showcase-card h3 { margin: 7px 0; font-family: Georgia,serif; font-size: 21px; }
.profile-showcase-card p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.6; }
.profile-showcase-card.is-empty { filter: saturate(.45); opacity: .72; }
.profile-milestones { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-bottom: 34px; }
.profile-milestones article { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 13px; padding: 18px; background: rgba(17,28,45,.7); border: 1px solid var(--line); border-radius: 13px; }
.profile-milestones article > span { width: 42px; height: 42px; display: grid; place-items: center; color: var(--mint); background: rgba(101,237,202,.06); border-radius: 50%; font-size: 18px; }
.profile-milestones b { display: block; font-size: 12px; }
.profile-milestones small { display: block; margin-top: 3px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.profile-private { margin-bottom: 14px; padding: 25px; border-color: rgba(105,200,255,.18); }
.profile-private-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 9px; }
.profile-private-grid article { display: grid; gap: 5px; padding: 16px; background: rgba(105,200,255,.04); border: 1px solid rgba(105,200,255,.11); border-radius: 10px; }
.profile-private-grid b { color: #9bdcff; font-family: Georgia,serif; font-size: 22px; }
.profile-private-grid small { color: var(--muted); font-size: 8px; }
.profile-privacy-note { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding: 11px 13px; color: #bcd1e3; background: rgba(105,200,255,.035); border-radius: 9px; font-size: 9px; }
.profile-privacy-note span { color: #69c8ff; }
.profile-privacy-note p { margin: 0; }
.profile-editor { padding: 0; overflow: hidden; scroll-margin-top: 110px; }
.profile-editor summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 26px; cursor: pointer; list-style: none; }
.profile-editor summary::-webkit-details-marker { display: none; }
.profile-editor summary > span { display: grid; gap: 3px; }
.profile-editor summary b { font-family: Georgia,serif; font-size: 20px; }
.profile-editor summary small { color: var(--muted); }
.profile-editor summary strong { color: var(--mint); font-size: 10px; text-transform: uppercase; }
.profile-editor[open] summary { border-bottom: 1px solid var(--line); }
.profile-editor form { display: grid; gap: 28px; padding: 28px; }
.profile-editor fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.profile-editor legend { margin-bottom: 12px; color: var(--text); font-family: Georgia,serif; font-size: 17px; font-weight: 800; }
.profile-choice-grid { display: grid; gap: 9px; }
.profile-choice-grid--avatars { grid-template-columns: repeat(6,1fr); }
.profile-choice-grid--banners { grid-template-columns: repeat(3,1fr); }
.profile-choice-grid--accents { grid-template-columns: repeat(6,1fr); }
.profile-choice-grid--styles { grid-template-columns: repeat(3,1fr); }
.profile-choice { position: relative; min-width: 0; cursor: pointer; }
.profile-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.profile-choice--avatar { display: grid; place-items: center; gap: 6px; min-height: 88px; padding: 10px 4px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 11px; text-align: center; }
.profile-choice--avatar > span { color: var(--mint); font-family: Georgia,serif; font-size: 25px; }
.profile-choice--avatar small, .profile-choice--accent small, .profile-choice--banner small { color: var(--muted); font-size: 7px; line-height: 1.25; }
.profile-choice--avatar:has(input:checked), .profile-choice--accent:has(input:checked), .profile-choice--banner:has(input:checked), .profile-choice--style:has(input:checked) { border-color: rgba(101,237,202,.55); box-shadow: inset 0 0 0 1px rgba(101,237,202,.18),0 0 25px rgba(101,237,202,.05); }
.profile-choice--banner { min-height: 80px; display: grid; align-content: end; gap: 7px; padding: 9px; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; }
.profile-choice--banner > span { min-height: 34px; border: 1px solid rgba(255,255,255,.07); border-radius: 7px; }
.profile-choice--accent { display: grid; place-items: center; gap: 7px; min-height: 77px; padding: 9px; border: 1px solid var(--line); border-radius: 11px; text-align: center; }
.profile-choice--accent > span { width: 26px; height: 26px; background: var(--swatch); border: 2px solid rgba(255,255,255,.3); border-radius: 50%; box-shadow: 0 0 20px color-mix(in srgb,var(--swatch) 30%,transparent); }
.profile-choice--style { display: grid; grid-template-columns: auto 1fr; gap: 2px 11px; padding: 16px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 11px; }
.profile-choice--style > span { grid-row: 1/3; align-self: center; color: var(--violet); font-size: 22px; }
.profile-choice--style b { font-size: 11px; }
.profile-choice--style small { color: var(--muted); font-size: 8px; line-height: 1.35; }
.profile-form-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 13px; }
.profile-form-wide { grid-column: 1/-1; }
.profile-form-grid label > small { margin-top: -4px; color: var(--muted); font-size: 8px; font-weight: 500; }
.profile-save { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 20px; border-top: 1px solid var(--line); }
.profile-save span { max-width: 660px; color: var(--muted); font-size: 9px; }

/* Forum */
.forum-layout { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(300px,.55fr); gap: 14px; align-items: start; }
.forum-board { padding: 22px; }
.forum-topic-list { display: grid; gap: 8px; }
.forum-topic { display: grid; grid-template-columns: 1fr auto; align-items: center; min-width: 0; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 12px; transition: border-color .2s,transform .2s; }
.forum-topic:hover { border-color: rgba(101,237,202,.28); transform: translateY(-1px); }
.forum-topic.is-pinned { background: linear-gradient(100deg,rgba(255,201,102,.055),rgba(255,255,255,.015)); border-color: rgba(255,201,102,.16); }
.forum-topic__main { min-width: 0; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 13px; padding: 15px; color: var(--text); }
.forum-topic__symbol { width: 39px; height: 39px; display: grid; place-items: center; color: var(--mint); background: rgba(101,237,202,.06); border: 1px solid rgba(101,237,202,.12); border-radius: 10px; }
.forum-topic__main > span:last-child { min-width: 0; display: grid; gap: 3px; }
.forum-topic__main small { color: var(--muted); font-size: 7px; font-weight: 800; letter-spacing: .06em; }
.forum-topic__main strong { overflow: hidden; font-family: Georgia,serif; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.forum-topic__main em { color: #8193a8; font-size: 8px; font-style: normal; }
.forum-topic__count { min-width: 75px; display: grid; gap: 1px; padding: 13px; border-left: 1px solid var(--line); text-align: center; }
.forum-topic__count b { color: var(--gold); font-family: Georgia,serif; font-size: 18px; }
.forum-topic__count small { color: var(--muted); font-size: 7px; }
.forum-composer { position: sticky; top: 96px; }
.forum-composer.is-blocked { padding: 24px; }
.forum-composer.is-blocked h2 { margin: 14px 0 8px; font-family: Georgia,serif; }
.forum-composer.is-blocked p { color: var(--muted); line-height: 1.6; }
.forum-heading { margin-bottom: 14px; }
.back-link { display: inline-flex; margin-bottom: 12px; color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.forum-thread { display: grid; gap: 10px; }
.forum-post { display: grid; grid-template-columns: 145px 1fr; min-width: 0; overflow: hidden; background: rgba(17,28,45,.75); border: 1px solid var(--line); border-radius: var(--radius); }
.forum-post > aside { display: flex; align-items: center; flex-direction: column; gap: 7px; padding: 22px 14px; background: rgba(255,255,255,.018); border-right: 1px solid var(--line); text-align: center; }
.forum-post > aside .chat-avatar { width: 50px; height: 50px; font-size: 17px; }
.forum-post > aside small { color: var(--muted); font-size: 7px; letter-spacing: .08em; }
.forum-post > div { min-width: 0; padding: 22px 24px; }
.forum-post header { min-height: 24px; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 8px; }
.forum-post h1 { margin: 7px 0 20px; font-family: Georgia,serif; font-size: clamp(24px,3vw,36px); }
.forum-post p { min-height: 42px; margin: 0 0 18px; color: #d5deea; font-size: 11px; line-height: 1.75; }
.forum-post--root { border-color: rgba(101,237,202,.16); }
.forum-reply { margin-top: 10px; }

/* Centrum bezpieczeństwa */
.admin-primary-nav { position: static; margin: -8px 0 16px; background: rgba(17,28,45,.66); }
.admin-primary-nav a.is-active { color: #071510; background: var(--mint); }
.safety-hero, .studio-hero { position: relative; overflow: hidden; min-height: 190px; padding: 30px; background: radial-gradient(circle at 85% 30%,rgba(255,101,119,.11),transparent 35%),linear-gradient(135deg,rgba(17,28,45,.88),rgba(9,16,28,.95)); border: 1px solid rgba(255,101,119,.16); border-radius: var(--radius); }
.safety-hero p, .studio-hero p { max-width: 730px; color: var(--muted); line-height: 1.65; }
.safety-shield { width: 92px; height: 105px; display: grid; place-items: center; color: #ff8d9a; background: rgba(255,101,119,.055); border: 1px solid rgba(255,101,119,.22); clip-path: polygon(50% 0,94% 17%,86% 77%,50% 100%,14% 77%,6% 17%); font-family: Georgia,serif; font-size: 42px; }
.safety-metrics { display: grid; grid-template-columns: repeat(5,1fr); gap: 9px; margin-bottom: 14px; }
.safety-metrics article { display: grid; gap: 4px; padding: 17px; background: rgba(17,28,45,.72); border: 1px solid var(--line); border-radius: 12px; }
.safety-metrics b { color: #ff8d9a; font-family: Georgia,serif; font-size: 27px; }
.safety-metrics span { color: var(--muted); font-size: 8px; }
.safety-jump, .studio-jump { top: 82px; }
.safety-report-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.safety-report { min-width: 0; padding: 20px; background: linear-gradient(145deg,rgba(17,28,45,.9),rgba(11,18,31,.9)); border: 1px solid rgba(255,101,119,.16); border-radius: var(--radius); }
.safety-report__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.safety-report__head time { color: var(--muted); font-size: 8px; }
.safety-report blockquote { margin: 17px 0; padding: 15px; color: #e2e8f0; background: rgba(0,0,0,.17); border-left: 2px solid #ff6577; border-radius: 0 9px 9px 0; font-size: 10px; line-height: 1.65; }
.safety-report dl { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin: 0 0 16px; }
.safety-report dl > div { min-width: 0; display: grid; gap: 3px; }
.safety-report dt { color: var(--muted); font-size: 7px; font-weight: 900; text-transform: uppercase; }
.safety-report dd { overflow: hidden; margin: 0; color: #cbd7e5; font-size: 9px; text-overflow: ellipsis; }
.safety-empty { grid-column: 1/-1; }
.content-audit-list { padding: 9px 20px; }
.content-audit-card { display: grid; grid-template-columns: 120px minmax(0,1fr) auto; align-items: center; gap: 15px; padding: 14px 3px; border-bottom: 1px solid var(--line); }
.content-audit-card:last-child { border-bottom: 0; }
.content-audit-card.is-hidden { opacity: .55; }
.content-audit-card__meta { display: grid; gap: 4px; color: var(--mint); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.content-audit-card__meta time { color: var(--muted); font-size: 7px; font-weight: 500; text-transform: none; }
.content-audit-card > div:nth-child(2) { min-width: 0; }
.content-audit-card p { overflow: hidden; margin: 5px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
.student-safety-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.student-safety-card { min-width: 0; padding: 19px; scroll-margin-top: 120px; background: rgba(17,28,45,.72); border: 1px solid var(--line); border-radius: var(--radius); }
.student-safety-card__identity { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 12px; }
.student-safety-card h3 { margin: 0; font-family: Georgia,serif; font-size: 18px; }
.student-safety-card p { margin: 4px 0; color: var(--muted); font-size: 9px; }
.student-safety-card small { color: #73869c; font-size: 8px; }
.moderation-note { padding: 10px; background: rgba(255,201,102,.04); border-radius: 8px; line-height: 1.5; }
.moderation-note--danger { color: #ffb6bf !important; background: rgba(255,92,111,.07); border: 1px solid rgba(255,92,111,.18); }
.student-sanction-editor { display: grid; gap: 10px; margin-top: 14px; padding: 13px; background: rgba(4,10,18,.32); border: 1px solid var(--line); border-radius: 10px; }
.student-sanction-editor > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.student-sanction-editor label { margin: 0; }
.student-sanction-editor input, .student-sanction-editor select { padding: 9px 10px; font-size: 10px; }
.student-sanction-editor .button { justify-self: start; }
.student-sanctions { display: flex; flex-wrap: wrap; gap: 7px 13px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.safety-log li { min-height: 52px; }

/* Studio świata */
.studio-hero { background: radial-gradient(circle at 84% 30%,rgba(166,124,255,.14),transparent 34%),linear-gradient(135deg,rgba(17,28,45,.88),rgba(9,16,28,.95)); border-color: rgba(166,124,255,.2); }
.studio-hero__numbers { display: flex; gap: 9px; }
.studio-hero__numbers span { min-width: 90px; display: grid; padding: 13px; background: rgba(166,124,255,.045); border: 1px solid rgba(166,124,255,.13); border-radius: 10px; color: var(--muted); font-size: 8px; }
.studio-hero__numbers b { color: #c8acff; font-family: Georgia,serif; font-size: 23px; }
.studio-editor-list { display: grid; gap: 8px; }
.studio-editor { min-width: 0; background: rgba(17,28,45,.72); border: 1px solid var(--line); border-radius: 12px; scroll-margin-top: 130px; }
.studio-editor.is-disabled { opacity: .58; }
.studio-editor--create { border-color: rgba(101,237,202,.26); background: linear-gradient(120deg,rgba(101,237,202,.035),rgba(17,28,45,.75)); }
.studio-editor > summary { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 13px; padding: 14px 17px; cursor: pointer; list-style: none; }
.studio-editor > summary::-webkit-details-marker { display: none; }
.studio-editor > summary > span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.studio-editor > summary b { overflow: hidden; font-family: Georgia,serif; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.studio-editor > summary small { color: var(--muted); font-size: 8px; }
.studio-editor > summary em { color: var(--mint); font-size: 7px; font-style: normal; font-weight: 900; letter-spacing: .08em; }
.studio-symbol { width: 38px; height: 38px; display: grid; place-items: center; color: #c8acff; background: rgba(166,124,255,.06); border: 1px solid rgba(166,124,255,.14); border-radius: 10px; font-family: Georgia,serif; }
.studio-editor[open] > summary { border-bottom: 1px solid var(--line); }
.studio-editor > form { display: grid; gap: 15px; padding: 18px; }
.studio-form-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; }
.studio-wide { grid-column: 1/-1; }
.studio-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; padding: 0 18px 18px; }
.studio-actions > form { display: inline-flex; }
.studio-actions form:first-child { display: contents; }
.studio-secondary-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; padding: 0 18px 18px; }
.studio-secondary-actions form { display: inline-flex; }
.studio-section { scroll-margin-top: 120px; }

.craft-odds { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 11px 0; }
.craft-odds b { padding: 7px 10px; color: #06130f; background: var(--mint); border-radius: 8px; font-size: 12px; }
.craft-odds span { color: var(--gold); font-size: 11px; font-weight: 800; }
.campaign-library { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; }
.campaign-library-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 18px; padding: 24px; color: inherit; text-decoration: none; }
.campaign-library-card:hover { border-color: rgba(174,138,255,.42); transform: translateY(-2px); }
.campaign-library-card.is-complete { border-color: rgba(101,237,202,.3); }
.campaign-library-symbol, .duel-avatar { display: grid; place-items: center; width: 58px; height: 58px; color: var(--violet); background: rgba(174,138,255,.1); border: 1px solid rgba(174,138,255,.25); border-radius: 17px; font: 700 25px Georgia,serif; }
.campaign-library-card h2 { margin: 7px 0 0; font-family: Georgia,serif; }
.campaign-library-card h3 { margin: 2px 0 8px; color: var(--violet); font-size: 12px; }
.campaign-library-card p { color: var(--muted); }
.campaign-library-card small { color: var(--gold); }
.duel-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-bottom: 18px; }
.duel-card { display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding: 18px; }
.duel-card h3, .duel-card p { margin: 0 0 4px; }
.duel-card p, .duel-card small { color: var(--muted); }
.safety-banner { margin-bottom: 18px; border-color: rgba(101,237,202,.22); }
.safety-banner p { margin-bottom: 0; color: var(--muted); }
.guild-war { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; margin-bottom: 16px; border-color: rgba(231,101,121,.3); }
.guild-war h2 small { color: var(--muted); font-size: .55em; }
.war-score { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; max-width: 430px; margin: 16px 0; text-align: center; }
.war-score b { padding: 10px; color: var(--gold); background: rgba(255,201,102,.08); border-radius: 10px; font-size: 26px; }
.war-score span { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.guild-war > form { display: grid; gap: 7px; text-align: center; }
.guild-war-declare { margin-bottom: 16px; }
.guild-war-declare > div { display: flex; flex-wrap: wrap; gap: 8px; }
.competition-admin { display: grid; grid-template-columns: minmax(300px,.9fr) repeat(2,minmax(0,1fr)); gap: 15px; align-items: start; }
.energy-admin-layout { display: grid; grid-template-columns: minmax(300px,.72fr) minmax(0,1.28fr); gap: 15px; align-items: stretch; }
.energy-admin-summary { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 20px; padding: 24px; }
.energy-admin-summary > span { width: 68px; height: 68px; display: grid; place-items: center; color: #09130f; background: var(--gold); border-radius: 20px 7px 20px 7px; font-size: 27px; box-shadow: 0 14px 35px rgba(255,201,102,.12); }
.energy-admin-summary small { color: var(--gold); font-size: 9px; font-weight: 900; letter-spacing: .12em; }
.energy-admin-summary h3 { margin: 6px 0; font: 500 25px Georgia,serif; }
.energy-admin-summary p { margin: 0 0 9px; color: var(--muted); }
.energy-admin-summary b { color: var(--mint); font-size: 10px; }

@media (max-width: 1040px) {
  .activity-review-modes { grid-template-columns:1fr; }
  .activity-review-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .activity-review-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .activity-review-filters fieldset { grid-column:1/-1; }
  .academy-wing-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .hero { grid-template-columns: 1fr .8fr; gap: 20px; }
  .hero-art { transform: scale(.86); }
  .choice-grid { grid-template-columns: repeat(2,1fr); }
  .admin-grid { grid-template-columns: 1fr; }
  .review-item { grid-template-columns: 1fr auto; }
  .nick-review { grid-row: 2; }
  .review-actions { grid-column: 2; grid-row: 1/3; flex-direction: column; }
  .equipment-layout, .question-admin-layout { grid-template-columns: 1fr; }
  .metric-grid { grid-template-columns: repeat(2,1fr); }
  .class-layout, .mission-admin-layout, .backup-layout, .report-layout { grid-template-columns: 1fr; }
  .student-check-grid { grid-template-columns: repeat(2,1fr); }
  .bulk-controls { grid-template-columns: 1fr 1fr; }
  .bulk-reward-filters { grid-template-columns: 1fr 1fr; }
  .season-admin-hero { grid-template-columns: 1fr; }
  .league-admin-setup, .league-teacher-tools { grid-template-columns: 1fr; }
  .expedition-approaches { grid-template-columns: 1fr; }
  .guild-hunt-options { grid-template-columns: 1fr; }
  .guild-hunt-options p { min-height: 0; }
  .campaign-companions { grid-template-columns: 1fr; }
  .campaign-companion p { min-height: 0; }
  .profile-hero { grid-template-columns: auto 1fr; }
  .profile-hero__actions { grid-column: 1/-1; grid-template-columns: repeat(2,minmax(0,220px)); }
  .profile-hero__actions small { grid-column: 1/-1; text-align: left; }
  .profile-stat-grid { grid-template-columns: repeat(3,1fr); }
  .profile-choice-grid--avatars, .profile-choice-grid--accents { grid-template-columns: repeat(4,1fr); }
  .forum-layout { grid-template-columns: 1fr; }
  .forum-composer { position: static; }
  .safety-metrics { grid-template-columns: repeat(3,1fr); }
  .content-audit-card { grid-template-columns: 100px minmax(0,1fr); }
  .content-audit-card .compact-actions { grid-column: 1/-1; }
  .studio-form-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

/* Wielorundowy system walki */
.skill-hero { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 30px; margin-bottom: 12px; padding: clamp(24px,4vw,38px); background: radial-gradient(circle at 88% 30%,rgba(174,138,255,.13),transparent 34%),linear-gradient(135deg,rgba(17,28,45,.9),rgba(9,16,28,.94)); border-color: rgba(174,138,255,.2); }
.skill-hero h1 { margin: 8px 0; font-family: Georgia,serif; font-size: clamp(35px,5vw,54px); }
.skill-hero p { max-width: 760px; margin: 0; color: var(--muted); line-height: 1.65; }
.skill-points { width: 135px; height: 135px; display: grid; place-content: center; color: var(--violet); border: 1px solid rgba(174,138,255,.3); border-radius: 50%; text-align: center; }
.skill-points b { font-family: Georgia,serif; font-size: 50px; line-height: .9; }
.skill-points span, .skill-points small { display: block; margin-top: 5px; color: #cdbdff; font-size: 8px; font-weight: 900; text-transform: uppercase; }
.skill-points small { color: var(--muted); font-size: 7px; }
.skill-rules { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-bottom: 22px; }
.skill-rules > div { display: grid; gap: 3px; padding: 13px 16px; background: rgba(255,255,255,.025); border: 1px solid var(--line); border-radius: 10px; }
.skill-rules b { color: var(--mint); font-size: 9px; }
.skill-rules span { color: var(--muted); font-size: 8px; }
.skill-tree { position: relative; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; max-width: 980px; margin: 0 auto 18px; }
.skill-tree::before { content: ''; position: absolute; z-index: -1; top: 100px; bottom: 100px; left: 50%; width: 1px; background: linear-gradient(var(--violet),rgba(174,138,255,.1),var(--violet)); }
.skill-node { position: relative; min-height: 205px; display: grid; grid-template-columns: auto 1fr; gap: 15px; padding: 21px; background: rgba(17,28,45,.8); border: 1px solid var(--line); border-radius: 16px; }
.skill-node--1, .skill-node--4, .skill-node--5, .skill-node--6 { grid-column: 1/-1; width: min(590px,100%); justify-self: center; }
.skill-node::after { content: ''; position: absolute; top: -17px; left: 50%; width: 8px; height: 8px; background: #26364a; border: 2px solid #0d1725; border-radius: 50%; transform: translateX(-50%); }
.skill-node--1::after { display: none; }
.skill-node.is-unlocked { background: linear-gradient(135deg,rgba(101,237,202,.065),rgba(17,28,45,.86)); border-color: rgba(101,237,202,.28); }
.skill-node.is-available { border-color: rgba(255,201,102,.38); box-shadow: 0 0 35px rgba(255,201,102,.04); }
.skill-node.is-locked { opacity: .58; filter: saturate(.65); }
.skill-node__symbol { width: 54px; height: 54px; display: grid; place-items: center; color: var(--violet); background: rgba(174,138,255,.07); border: 1px solid rgba(174,138,255,.18); border-radius: 14px; font-size: 23px; }
.skill-node.is-unlocked .skill-node__symbol { color: var(--mint); background: rgba(101,237,202,.07); border-color: rgba(101,237,202,.2); }
.skill-node__copy > span { color: var(--violet); font-size: 7px; font-weight: 900; letter-spacing: .11em; }
.skill-node__copy h2 { margin: 5px 0; font-family: Georgia,serif; font-size: 21px; }
.skill-node__copy p { min-height: 34px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.skill-effects { display: flex; flex-wrap: wrap; gap: 5px; margin: 11px 0; }
.skill-effects span { padding: 5px 7px; color: #bdcaD9; background: rgba(255,255,255,.025); border: 1px solid var(--line); border-radius: 999px; font-size: 7px; }
.skill-node form { margin-top: 10px; }
.skill-node__copy > small { color: #7f91a6; font-size: 8px; }
.skill-owned { display: inline-block; margin-top: 8px; color: var(--mint); font-size: 8px; letter-spacing: .08em; }
.next-skill-point { max-width: 980px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 14px; margin: 0 auto 28px; }
.next-skill-point > span { width: 42px; height: 42px; display: grid; place-items: center; color: var(--gold); background: rgba(255,201,102,.06); border-radius: 11px; }
.next-skill-point p { margin: 4px 0 0; color: var(--muted); font-size: 9px; }
.status-codex { margin-top: 30px; }
.status-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; }
.status-grid article { min-width: 0; display: grid; grid-template-columns: auto 1fr; gap: 10px; padding: 14px; background: rgba(17,28,45,.72); border: 1px solid var(--line); border-radius: 12px; }
.status-grid article > span { width: 34px; height: 34px; display: grid; place-items: center; color: var(--gold); background: rgba(255,201,102,.055); border-radius: 9px; }
.status-grid b { font-size: 9px; }
.status-grid p { margin: 3px 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
.status-grid small { color: #718398; font-size: 7px; }
.combat-intro { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(300px,.8fr); align-items: center; gap: 20px; margin-bottom: 15px; padding: 22px; background: linear-gradient(120deg,rgba(255,118,133,.055),rgba(101,237,202,.035)); border-color: rgba(255,118,133,.17); }
.combat-intro h2 { margin: 7px 0; font-family: Georgia,serif; }
.combat-intro > div:first-child > p { margin: 0; color: var(--muted); line-height: 1.6; }
.class-skill-card { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 13px; padding: 15px; background: rgba(0,0,0,.16); border: 1px solid rgba(174,138,255,.18); border-radius: 13px; }
.class-skill-card > span { width: 46px; height: 46px; display: grid; place-items: center; color: var(--violet); background: rgba(174,138,255,.07); border: 1px solid rgba(174,138,255,.18); border-radius: 12px; font-size: 20px; }
.class-skill-card small { display: block; color: var(--violet); font-size: 7px; font-weight: 900; letter-spacing: .09em; }
.class-skill-card b { display: block; margin: 3px 0; font-family: Georgia,serif; }
.class-skill-card p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.combat-planner { display: grid; gap: 9px; padding: 12px; background: rgba(5,11,20,.42); border: 1px solid rgba(255,255,255,.065); border-radius: 11px; text-align: left; }
.combat-planner > label:first-child { display: grid; gap: 5px; color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.combat-ability-select, .combat-item-select { display: grid; gap: 5px; color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.combat-ability-select select, .combat-item-select select { width: 100%; min-width: 0; }
.combat-item-select small { color: #718398; font-size: 7px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.combat-item-empty { padding: 8px 9px; color: #718398; background: rgba(255,255,255,.018); border-radius: 8px; font-size: 8px; }
.combat-skill-locked a { color: var(--mint); }
.combat-planner select, .defense-doctrine select { width: 100%; min-width: 0; }
.combat-ability-toggle { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 9px; padding: 9px; cursor: pointer; background: rgba(174,138,255,.045); border: 1px solid rgba(174,138,255,.14); border-radius: 9px; }
.combat-ability-toggle input { margin-top: 3px; accent-color: var(--violet); }
.combat-ability-toggle span { display: grid; gap: 3px; }
.combat-ability-toggle b { color: #d9c8ff; font-size: 9px; }
.combat-ability-toggle small, .combat-skill-locked small { color: var(--muted); font-size: 8px; font-weight: 400; line-height: 1.4; }
.combat-skill-locked { display: grid; gap: 3px; padding: 9px; color: #78899d; background: rgba(255,255,255,.02); border-radius: 9px; }
.combat-skill-locked b { font-size: 8px; }
.combat-plan-summary { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 10px; }
.combat-plan-summary span { color: #8da0b6; font-size: 8px; line-height: 1.4; }
.combat-plan-summary b { color: var(--gold); font-size: 8px; white-space: nowrap; }
.combat-plan-summary i { font-style: normal; }
.monster-card form .combat-planner { margin-bottom: 9px; }
.monster-card .combat-planner + .button { margin-top: 0; }
.pvp-command-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(330px,.8fr); gap: 12px; margin-bottom: 25px; }
.pvp-command-grid .safety-banner { margin-bottom: 0; }
.defense-doctrine { display: grid; grid-template-columns: 1fr minmax(150px,.55fr) auto; align-items: center; gap: 13px; border-color: rgba(174,138,255,.2); }
.defense-doctrine h3 { margin: 5px 0 3px; font-family: Georgia,serif; }
.defense-doctrine p { margin: 0; color: var(--muted); font-size: 9px; }
.duel-card { display: flex; align-items: stretch; flex-direction: column; }
.duel-card__identity { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 13px; }
.duel-card > form { display: grid; gap: 9px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.battle-history-result { display: grid; justify-items: end; gap: 3px; }
.battle-history-result a { color: var(--mint); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.combat-report { margin-bottom: 17px; overflow: hidden; padding: 0; border-color: rgba(101,237,202,.26); box-shadow: 0 22px 80px rgba(0,0,0,.18); }
.combat-report--loss { border-color: rgba(255,118,133,.25); }
.combat-report-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px; background: linear-gradient(110deg,rgba(101,237,202,.07),rgba(17,28,45,.1)); }
.combat-report--loss .combat-report-head { background: linear-gradient(110deg,rgba(255,118,133,.07),rgba(17,28,45,.1)); }
.combat-report-head h2 { margin: 7px 0 4px; font-family: Georgia,serif; font-size: 25px; }
.combat-report-head p { margin: 0; color: var(--muted); font-size: 9px; }
.combat-verdict { color: var(--mint); font-size: 10px; font-weight: 900; letter-spacing: .13em; }
.combat-report--loss .combat-verdict { color: var(--danger); }
.combat-verdict-reason { margin: 0; padding: 14px 22px; color: var(--muted); border-top: 1px solid var(--line); font-size: 13px; line-height: 1.55; }
.combat-verdict-reason b { color: var(--text); }
.combat-hp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 16px 22px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.combat-hp > div:first-child { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 6px; font-size: 9px; }
.combat-hp > div:first-child span { color: var(--muted); }
.combat-hp .progress i { background: var(--mint); }
.combat-hp--enemy .progress i { background: var(--danger); }
.combat-round-log { padding: 0 22px 18px; }
.combat-round-log summary { padding: 15px 0; color: var(--gold); cursor: pointer; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.combat-round-log ol { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; counter-reset: combat-round; }
.combat-round-log li { display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 10px; background: rgba(255,255,255,.022); border: 1px solid var(--line); border-radius: 9px; }
.combat-round-log li.is-phase-change { border-color: rgba(255,201,102,.22); background: linear-gradient(105deg,rgba(255,201,102,.045),rgba(255,255,255,.018)); }
.combat-round-no { width: 28px; height: 28px; display: grid; place-items: center; color: var(--gold); background: rgba(255,201,102,.06); border-radius: 8px; font-family: Georgia,serif; }
.combat-round-actions { min-width: 0; display: grid; gap: 3px; }
.boss-phase-transition { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px; margin: 0 0 6px; padding: 8px 9px; background: rgba(255,201,102,.055); border-left: 2px solid var(--gold); border-radius: 0 7px 7px 0; }
.boss-phase-transition > span { color: var(--gold); font-size: 7px; font-weight: 900; letter-spacing: .1em; white-space: nowrap; }
.boss-phase-transition b { display: block; color: #ffe0a5; font-family: Georgia,serif; font-size: 11px; }
.boss-phase-transition small { display: block; margin-top: 2px; color: var(--muted); font-size: 7px; }
.boss-phase-transition em { display: block; margin-top: 3px; color: var(--gold); font-size: 7px; font-style: normal; font-weight: 800; }
.combat-round-actions p { margin: 0; color: #b9c6d5; font-size: 9px; }
.combat-round-actions p.is-critical { color: #ffd78c; }
.combat-round-actions strong { color: #eef4fa; }
.combat-effect { margin-top: 3px; color: var(--violet); font-size: 8px; }
.combat-effect--status { color: var(--danger); }
.round-statuses { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.status-chip { padding: 3px 6px; color: #d8caff; background: rgba(174,138,255,.065); border: 1px solid rgba(174,138,255,.17); border-radius: 999px; font-size: 7px; font-weight: 900; text-transform: uppercase; }
.status-chip--poison { color: #9bea9c; background: rgba(114,222,128,.06); border-color: rgba(114,222,128,.18); }
.status-chip--burn { color: #ffb079; background: rgba(255,140,74,.06); border-color: rgba(255,140,74,.18); }
.status-chip--barrier { color: #8fd8ff; background: rgba(88,181,236,.06); border-color: rgba(88,181,236,.18); }
.combat-tick, .combat-absorb { display: block; margin-top: 3px; color: #ef9c73; font-size: 7px; }
.combat-absorb { color: #8fd8ff; }
.combat-resisted { display: block; margin-top: 3px; color: var(--mint); font-size: 7px; }
.combat-item-activation { display: block; margin-top: 4px; color: var(--gold); font-size: 8px; }
.boss-phase-editor small { display: block; margin-top: 2px; color: var(--gold); font-size: 8px; font-weight: 500; line-height: 1.45; text-transform: none; }
.combat-round-hp { display: grid; justify-items: end; gap: 3px; color: var(--muted); font-size: 8px; }
.combat-safety-note { margin: 0; padding: 12px 22px; color: var(--muted); background: rgba(101,237,202,.035); border-top: 1px solid var(--line); font-size: 8px; }

@media (max-width: 820px) {
  .academy-wing-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .academy-training { grid-template-columns:1fr; }
  .energy-admin-layout { grid-template-columns: 1fr; }
  .topbar { min-height: 64px; padding: 9px 14px; }
  .brand-mark { width: 39px; height: 39px; }
  .brand b { font-size: 16px; }
  .brand small { display: none; }
  .account-chip > span:nth-child(2), .account-profile-link > span:last-child, .logout-button span { display: none; }
  .logout-button { width: 36px; height: 36px; display: grid; place-items: center; padding: 0; color: var(--muted); border: 1px solid var(--line); border-radius: 50%; }
  .logout-button b { display: block; margin: 0; font-size: 15px; }
  .resource-strip { order: 3; width: 100%; justify-content: center; margin-left: 0; padding-top: 7px; border-top: 1px solid var(--line); }
  .resource-strip span { flex: 1; justify-content: center; min-height: 30px; padding: 5px; }
  .app-shell .topbar { flex-wrap: wrap; }
  .sidebar { display: none; }
  .page-content, .app-shell .page-content { width: min(100% - 28px, 720px); margin: 0 auto; padding: 30px 0 104px; }
  .app-shell .footer { display: none; }
  .bottom-nav { position: fixed; z-index: 25; right: 9px; bottom: max(9px, env(safe-area-inset-bottom)); left: 9px; display: grid; grid-template-columns: repeat(5,1fr); padding: 7px; background: rgba(11,19,31,.94); border: 1px solid var(--line-strong); border-radius: 16px; box-shadow: 0 20px 60px #000; backdrop-filter: blur(18px); }
  .bottom-nav .nav-link { min-height: 53px; display: grid; place-items: center; gap: 1px; padding: 4px; border-radius: 10px; }
  .bottom-nav .nav-link span { font-size: 15px; }
  .bottom-nav .nav-link strong { font-size: 8px; }
  .bottom-nav .mobile-menu { min-width:0; }
  .bottom-nav .mobile-menu > summary { list-style:none; min-height:53px; display:grid; place-items:center; gap:1px; padding:4px; border-radius:10px; cursor:pointer; }
  .bottom-nav .mobile-menu > summary::-webkit-details-marker { display:none; }
  .mobile-menu-panel { position:fixed; right:9px; bottom:calc(83px + env(safe-area-inset-bottom)); left:9px; max-height:calc(100dvh - 165px); overflow-y:auto; overscroll-behavior:contain; padding:15px; background:#101d2e; border:1px solid var(--line-strong); border-radius:18px; box-shadow:0 0 0 100vmax rgba(0,0,0,.54),0 18px 55px #000; }
  .mobile-menu-heading { display:grid; gap:3px; margin:2px 5px 12px; }
  .mobile-menu-heading b { color:var(--text); font:700 20px Georgia,serif; }
  .mobile-menu-heading small { color:var(--muted); font-size:12px; }
  .mobile-menu-panel > .nav-link { min-height:44px; }
  .bottom-nav .mobile-menu-panel .nav-link { display:flex; align-items:center; justify-content:flex-start; gap:12px; min-height:44px; padding:10px 12px; }
  .bottom-nav .mobile-menu-panel .nav-link strong { font-size:12px; }
  .mobile-menu-panel .nav-group > summary { min-height:46px; }
  .mobile-menu-panel .nav-group .nav-link { min-height:44px; }
  .hero { min-height: 0; grid-template-columns: 1fr; }
  .hero-art { min-height: 430px; order: -1; transform: scale(.78); margin: -55px 0; }
  .feature-grid { grid-template-columns: 1fr; }
  .auth-layout, .auth-layout--compact { min-height: 0; grid-template-columns: 1fr; gap: 24px; }
  .auth-intro h1 { font-size: 44px; }
  .page-heading, .welcome-row, .academy-header { align-items: flex-start; flex-direction: column; }
  .level-card { width: 100%; }
  .quest-highlight { grid-template-columns: auto 1fr; }
  .quest-highlight .button { grid-column: 1/-1; }
  .academy-layout, .chat-layout, .market-layout, .guild-layout { grid-template-columns: 1fr; }
  .academy-aside { grid-template-columns: 1fr 1fr; }
  .monster-grid, .destination-grid { grid-template-columns: 1fr; }
  .destination-card { min-height: 280px; }
  .review-item { grid-template-columns: 1fr; }
  .review-actions { grid-column: auto; grid-row: auto; flex-direction: row; }
  .nick-review { grid-row: auto; }
  .story-timeline { grid-template-columns: repeat(5, minmax(54px,1fr)); overflow-x: auto; }
  .story-node { min-height: 52px; justify-content: center; padding: 8px; }
  .story-node span { display: none; }
  .story-panel { min-height: 0; padding: 28px 20px; }
  .equipment-stats { width: 100%; }
  .moderation-grid { grid-template-columns: 1fr; }
  .moderation-log { grid-column: auto; }
  .admin-jump { top: 65px; overflow-x: auto; flex-wrap: nowrap; }
  .admin-metrics { flex-wrap: wrap; }
  .mission-grid { grid-template-columns: 1fr; }
  .admin-filter { align-items: stretch; flex-direction: column; }
  .admin-filter label { width: 100%; }
  .class-grid { grid-template-columns: 1fr; }
  .season-hero { grid-template-columns: 1fr; }
  .season-sigil { width: 170px; height: 170px; justify-self: center; order: -1; font-size: 56px; }
  .league-hero { grid-template-columns: 1fr; }
  .league-score { width: 130px; height: 130px; justify-self: center; order: -1; }
  .league-score b { font-size: 46px; }
  .league-table-head { align-items: flex-start; flex-direction: column; }
  .page-actions { width: 100%; justify-content: flex-start; }
  .bestiary-grid { grid-template-columns: 1fr; }
  .craft-specialty-grid { grid-template-columns: 1fr; }
  .specialty-card p { min-height: 0; }
  .dungeon-hero, .campaign-hero, .companion-hero { grid-template-columns: 1fr; }
  .dungeon-hero__mark, .campaign-seal, .companion-moon { width: 115px; height: 115px; order: -1; }
  .dungeon-current { grid-template-columns: 1fr; }
  .campaign-decisions { grid-template-columns: 1fr; }
  .campaign-values { grid-template-columns: repeat(2,1fr); }
  .companion-list { grid-template-columns: 1fr; }
  .guild-hunt { grid-template-columns: auto 1fr; }
  .guild-hunt__action { grid-column: 1/-1; }
  .profile-hero { grid-template-columns: 1fr; justify-items: center; padding: 32px 24px; text-align: center; }
  .profile-hero__actions { grid-column: auto; width: min(100%,420px); grid-template-columns: repeat(2,1fr); }
  .profile-hero__actions small { text-align: center; }
  .profile-identity blockquote { margin-right: auto; margin-left: auto; }
  .profile-story-grid { grid-template-columns: 1fr; }
  .profile-showcase { grid-template-columns: 1fr; }
  .profile-milestones { grid-template-columns: repeat(2,1fr); }
  .profile-private-grid { grid-template-columns: repeat(2,1fr); }
  .profile-choice-grid--styles { grid-template-columns: repeat(2,1fr); }
  .profile-form-grid { grid-template-columns: 1fr 1fr; }
  .safety-report-grid, .student-safety-grid { grid-template-columns: 1fr; }
  .studio-form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 580px) {
  .center-student-filter,.bulk-reward-filters,.reward-scope-grid { grid-template-columns:1fr; }
  .bulk-reward-toolbar { align-items:stretch; flex-direction:column; }
  .academy-wing-grid,.academy-mode-grid { grid-template-columns:1fr; }
  .academy-wing p { min-height:0; }
  .academy-set-heading { align-items:flex-start; flex-direction:column; }
  .public-shell .page-content { padding-top: 24px; }
  .footer { flex-direction: column; }
  .hero-copy { padding-top: 10px; }
  .hero h1 { font-size: 48px; }
  .hero-copy > p { font-size: 15px; }
  .hero-actions .button { width: 100%; }
  .trust-row { display: grid; gap: 8px; }
  .form-panel { padding: 21px; }
  .form-row { grid-template-columns: 1fr; }
  .choice-grid { grid-template-columns: 1fr; }
  .choice-card > span { min-height: 82px; }
  .creation-submit { align-items: stretch; flex-direction: column; }
  .activity-grid, .split-panels { grid-template-columns: 1fr; }
  .activity-card { min-height: 120px; padding: 17px; }
  .quest-highlight { padding: 17px; }
  .question-card { padding: 21px; }
  .question-meta { flex-direction: column; gap: 4px; }
  .academy-aside { grid-template-columns: 1fr; }
  .academy-stamp { width: 70px; height: 70px; }
  .recipe-list { padding: 8px 18px; }
  .recipe-card { grid-template-columns: auto 1fr; }
  .recipe-card form { grid-column: 1/-1; }
  .recipe-card .button { width: 100%; }
  .expedition-list li { grid-template-columns: 1fr; gap: 5px; }
  .guild-card { grid-template-columns: auto 1fr; }
  .guild-card form, .guild-card > .tag { grid-column: 1/-1; }
  .admin-metrics { width: 100%; }
  .admin-metrics span { flex: 1; min-width: 0; }
  .review-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .review-actions .button { width: 100%; }
  .item-card { grid-template-columns: auto 1fr; }
  .item-actions { grid-column: 1/-1; grid-template-columns: 1fr auto; justify-items: stretch; }
  .item-actions .button { width: 100%; }
  .moderation-item { grid-template-columns: 1fr; }
  .compact-actions { justify-content: flex-start; }
  .form-row--three { grid-template-columns: repeat(3,1fr); }
  .story-actions .button, .story-actions form { width: 100%; }
  .story-actions form .button { width: 100%; }
  .metric-grid, .student-check-grid, .bulk-controls { grid-template-columns: 1fr; }
  .month-filter { width: 100%; align-items: stretch; flex-direction: column; }
  .class-card { grid-template-columns: 1fr; align-items: flex-start; }
  .class-card .compact-actions { justify-items: start; }
  .class-editor { grid-column: auto; }
  .class-editor form { grid-template-columns: 1fr; }
  .season-strip { grid-template-columns: auto 1fr; }
  .season-strip > strong { grid-column: 1/-1; }
  .season-strip > div { grid-template-columns: 1fr; }
  .season-strip small { grid-column: auto; }
  .season-hero { min-height: 0; padding: 28px 21px; }
  .season-hero h1 { font-size: 46px; }
  .season-preview { grid-template-columns: 1fr; }
  .season-admin-hero { padding: 18px; }
  .season-chapter { padding: 19px; }
  .learning-goal { grid-template-columns: 1fr; }
  .season-mission { grid-template-columns: auto 1fr; }
  .season-mission > strong { grid-column: 2; text-align: left; }
  .season-chapter footer, .active-season-card { align-items: flex-start; flex-direction: column; }
  .league-strip { grid-template-columns: auto 1fr; }
  .league-strip > strong { grid-column: 1/-1; }
  .league-strip > div { grid-template-columns: 1fr; }
  .league-strip small { grid-column: auto; }
  .league-final, .league-sleep { grid-template-columns: 1fr; text-align: left; }
  .league-final__mark, .league-sleep__mark { width: 68px; height: 68px; }
  .league-hero { padding: 25px 20px; }
  .league-admin-banner { grid-template-columns: 1fr; }
  .league-admin-banner > div:last-child { justify-self: start; text-align: left; }
  .league-history-card { align-items: flex-start; flex-direction: column; }
  .activity-review-entry { grid-template-columns:auto 1fr; }
  .activity-review-entry > b { grid-column:1/-1; }
  .activity-review-modes, .activity-review-summary, .activity-review-filters { grid-template-columns:1fr; }
  .activity-review-filters fieldset { grid-column:auto; }
  .region-intro { grid-template-columns: 1fr; }
  .region-intro > span { width: 45px; height: 45px; }
  .bestiary-hero { grid-template-columns: 1fr; }
  .bestiary-progress { width: 110px; height: 110px; order: -1; }
  .bestiary-progress b { font-size: 38px; }
  .bestiary-card { grid-template-columns: 1fr; }
  .contract-card { grid-template-columns: auto 1fr; gap: 13px; padding: 17px; }
  .contract-card > form, .contract-card > .contract-state { grid-column: 1/-1; width: 100%; }
  .contract-card > form .button { width: 100%; }
  .contract-state { border-radius: 10px; }
  .craft-profile { grid-template-columns: auto 1fr; }
  .craft-level { grid-column: 1/-1; padding-top: 12px; border-top: 1px solid var(--line); }
  .recipe-heading { align-items: flex-start; flex-direction: column; gap: 2px; }
  .recipe-lock { grid-column: 1/-1; width: 100%; }
  .dungeon-card > header { grid-template-columns: auto 1fr; padding: 19px; }
  .dungeon-count { grid-column: 1/-1; grid-template-columns: auto 1fr; align-items: center; justify-content: start; gap: 7px; text-align: left; }
  .dungeon-count b { font-size: 25px; }
  .dungeon-timeline { padding-right: 19px; padding-left: 19px; }
  .dungeon-progress { margin-right: 19px; margin-left: 19px; }
  .dungeon-current { padding: 22px 19px; }
  .dungeon-log { grid-template-columns: 1fr; padding-right: 19px; padding-left: 19px; }
  .dungeon-card > footer { align-items: stretch; flex-direction: column; padding: 17px 19px; }
  .dungeon-card > footer .button { width: 100%; }
  .campaign-panel { min-height: 0; padding: 29px 20px; }
  .campaign-requirement { grid-template-columns: auto 1fr; }
  .campaign-requirement .button { grid-column: 1/-1; width: 100%; }
  .campaign-values { grid-template-columns: 1fr; }
  .campaign-node span { display: none; }
  .campaign-node { min-width: 46px; }
  .companion-activity-grid { grid-template-columns: 1fr; }
  .companion-callout { grid-template-columns: auto 1fr; }
  .companion-callout strong { grid-column: 1/-1; }
  .companion-card { grid-template-columns: auto 1fr; padding: 17px; }
  .companion-card > form, .companion-active-dot { grid-column: 1/-1; }
  .companion-card > form .button { width: 100%; }
  .guild-hunt { grid-template-columns: 1fr; padding: 20px; }
  .guild-boss-symbol { width: 65px; height: 65px; }
  .guild-hunt__action { grid-column: auto; }
  .guild-hunt__action .button { width: 100%; }
  .guild-contributions ul { grid-template-columns: 1fr; }
  .profile-emblem { width: 125px; height: 125px; }
  .profile-emblem > span { font-size: 40px; }
  .profile-identity h1 { font-size: 32px; }
  .profile-hero__actions { grid-template-columns: 1fr; }
  .profile-hero__actions small { grid-column: auto; }
  .profile-stat-grid { grid-template-columns: repeat(2,1fr); }
  .profile-story-grid, .profile-showcase, .profile-milestones { grid-template-columns: 1fr; }
  .profile-favorite, .profile-showcase-card { grid-template-columns: 1fr; }
  .profile-favorite > span, .profile-showcase-card > span { width: 54px; height: 54px; }
  .profile-private-grid { grid-template-columns: 1fr; }
  .profile-editor summary { align-items: flex-start; flex-direction: column; padding: 20px; }
  .profile-editor form { padding: 20px; }
  .profile-choice-grid--avatars, .profile-choice-grid--accents { grid-template-columns: repeat(3,1fr); }
  .profile-choice-grid--banners, .profile-choice-grid--styles, .profile-form-grid { grid-template-columns: 1fr; }
  .profile-save { align-items: stretch; flex-direction: column; }
  .profile-save .button { width: 100%; }
  .forum-topic { grid-template-columns: 1fr; }
  .forum-topic__count { display: none; }
  .forum-topic__main strong { white-space: normal; }
  .forum-post { grid-template-columns: 1fr; }
  .forum-post > aside { align-items: center; flex-direction: row; padding: 12px 16px; border-right: 0; border-bottom: 1px solid var(--line); text-align: left; }
  .forum-post > aside .chat-avatar { width: 38px; height: 38px; }
  .forum-post > div { padding: 18px; }
  .safety-hero, .studio-hero { min-height: 0; padding: 23px 20px; }
  .safety-shield { width: 65px; height: 75px; font-size: 30px; }
  .safety-metrics { grid-template-columns: repeat(2,1fr); }
  .safety-report dl { grid-template-columns: 1fr; }
  .content-audit-card { grid-template-columns: 1fr; gap: 9px; }
  .content-audit-card p { white-space: normal; }
  .student-safety-card__identity { grid-template-columns: auto 1fr; }
  .student-safety-card__identity .status-badge { grid-column: 1/-1; justify-self: start; }
  .student-sanction-editor > div { grid-template-columns: 1fr; }
  .studio-hero__numbers { width: 100%; overflow-x: auto; }
  .studio-editor > summary { grid-template-columns: auto minmax(0,1fr); }
  .studio-editor > summary em { grid-column: 2; }
  .studio-form-grid { grid-template-columns: 1fr; }
  .studio-wide { grid-column: auto; }
  .studio-actions { align-items: stretch; flex-direction: column; }
  .studio-actions .button { width: 100%; }
  .studio-secondary-actions { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 820px) {
  .campaign-library, .duel-grid, .competition-admin { grid-template-columns: 1fr; }
  .guild-war { grid-template-columns: 1fr; }
  .combat-intro, .pvp-command-grid { grid-template-columns: 1fr; }
  .defense-doctrine { grid-template-columns: 1fr; }
  .status-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .guild-upgrade-grid { grid-template-columns:1fr; }
  .guild-upgrade-history ol { grid-template-columns:1fr; }
}

@media (max-width: 580px) {
  .campaign-library-card, .duel-card { grid-template-columns: auto 1fr; padding: 17px; }
  .campaign-library-card > b, .duel-card > form { grid-column: 1/-1; }
  .duel-card > form .button { width: 100%; }
  .campaign-library-symbol, .duel-avatar { width: 48px; height: 48px; }
  .combat-report-head { align-items: flex-start; flex-direction: column; padding: 18px; }
  .combat-hp-grid { grid-template-columns: 1fr; padding: 14px 18px; }
  .combat-round-log { padding: 0 13px 14px; }
  .combat-round-log li { grid-template-columns: 27px minmax(0,1fr); }
  .bestiary-phases { grid-template-columns: 1fr; }
  .combat-round-hp { grid-column: 2; grid-template-columns: auto auto; justify-content: start; gap: 10px; }
  .combat-plan-summary { grid-template-columns: 1fr; }
  .combat-plan-summary b { white-space: normal; }
  .skill-hero { grid-template-columns: 1fr; }
  .skill-points { width: 115px; height: 115px; justify-self: center; order: -1; }
  .skill-rules, .skill-tree, .status-grid { grid-template-columns: 1fr; }
  .skill-node, .skill-node--1, .skill-node--4, .skill-node--5, .skill-node--6 { grid-column: auto; width: 100%; min-height: 0; }
  .skill-node { padding: 17px; }
  .skill-tree::before { left: 27px; }
  .skill-node::after { left: 27px; }
}

.activity-card--mastery { border-color:rgba(255,201,102,.22); background:linear-gradient(135deg,rgba(255,201,102,.085),rgba(17,29,46,.9)); }
.activity-card--mastery:hover { border-color:rgba(255,201,102,.42); background:linear-gradient(135deg,rgba(255,201,102,.12),rgba(20,34,53,.94)); }
.activity-card--mastery .activity-symbol { color:var(--gold); border-color:rgba(255,201,102,.2); background:rgba(255,201,102,.07); }
.mastery-hero { display:grid; grid-template-columns:minmax(0,1fr) 190px; gap:32px; align-items:center; margin-bottom:18px; padding:36px; overflow:hidden; border:1px solid #e7d4a9; border-radius:24px; background:radial-gradient(circle at 85% 20%,rgba(222,176,70,.25),transparent 32%),linear-gradient(135deg,#17263b,#263c55); color:#fff; }
.mastery-hero h1 { margin:5px 0 10px; color:#fff; font-size:clamp(34px,5vw,54px); }
.mastery-hero p { max-width:760px; color:#dce7f2; }
.mastery-hero__facts { display:flex; flex-wrap:wrap; gap:9px; margin-top:22px; }
.mastery-hero__facts span { padding:8px 12px; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(255,255,255,.08); color:#dce7f2; font-size:12px; }
.mastery-hero__facts b { color:#ffd978; font-size:15px; }
.mastery-seal { display:grid; place-items:center; min-height:165px; padding:18px; border:1px solid rgba(255,217,120,.45); border-radius:50%; background:rgba(8,18,31,.42); text-align:center; box-shadow:inset 0 0 35px rgba(255,211,105,.08); }
.mastery-seal > span { font-size:44px; color:#ffd978; }
.mastery-seal > b { font-size:34px; line-height:1; }
.mastery-seal small { max-width:130px; color:#dce7f2; }
.mastery-rules { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:18px 0 30px; }
.mastery-rules > div { display:grid; gap:3px; padding:15px 17px; border:1px solid var(--line); border-radius:15px; background:rgba(17,29,46,.78); }
.mastery-rules b { color:var(--text); }
.mastery-rules span { color:var(--muted); font-size:12px; }
.mastery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; margin-bottom:30px; }
.mastery-grid--styles { grid-template-columns:repeat(2,minmax(0,1fr)); }
.mastery-card { padding:19px; border:1px solid var(--line); border-radius:18px; background:linear-gradient(145deg,rgba(17,29,46,.92),rgba(13,22,37,.94)); box-shadow:0 14px 34px rgba(0,0,0,.18); }
.mastery-card.is-current { border-color:rgba(255,201,102,.58); box-shadow:0 0 0 2px rgba(255,201,102,.1),0 14px 34px rgba(0,0,0,.2); }
.mastery-card.is-untrained:not(.is-current) { opacity:.76; }
.mastery-card__head { display:grid; grid-template-columns:auto 1fr auto; gap:11px; align-items:center; }
.mastery-card__head > span { display:grid; place-items:center; width:45px; height:45px; border:1px solid rgba(255,201,102,.2); border-radius:14px; background:rgba(255,201,102,.07); color:var(--gold); font-size:23px; }
.mastery-card__head small { color:var(--gold); font-size:9px; letter-spacing:.08em; }
.mastery-card__head h2 { margin:2px 0 0; color:var(--text); font-size:18px; }
.mastery-card__head > b { color:var(--mint); font-size:11px; white-space:nowrap; }
.mastery-card > p { min-height:40px; margin:14px 0; color:var(--muted); font-size:13px; }
.mastery-progress > div:first-child { display:flex; justify-content:space-between; gap:10px; margin-bottom:6px; color:var(--muted); font-size:11px; }
.mastery-progress strong { color:var(--gold); }
.combat-mastery-note { display:block; padding:8px 11px; border:1px solid rgba(255,201,102,.15); border-radius:10px; background:rgba(255,201,102,.06); color:#e8d39f; font-size:11px; }
.mastery-card footer { display:flex; gap:16px; margin-top:12px; color:var(--muted); font-size:11px; }

.guild-raid { margin:0 0 28px; overflow:hidden; border:1px solid #b9a1da; border-radius:22px; background:linear-gradient(145deg,#121c30,#2d2447); color:#fff; box-shadow:0 20px 50px rgba(25,20,48,.16); }
.guild-raid > header { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:18px; align-items:center; padding:25px; }
.guild-raid h2 { margin:4px 0; color:#fff; font-size:27px; }
.guild-raid p { color:#d8d3e7; }
.guild-raid__symbol { display:grid; place-items:center; width:70px; height:70px; border:1px solid rgba(255,255,255,.2); border-radius:20px; background:rgba(255,255,255,.08); color:#e6c9ff; font-size:33px; }
.guild-raid__total { text-align:right; }
.guild-raid__total b { display:block; color:#efd99d; font-size:25px; }
.guild-raid__total small { color:#bcb4d0; }
.raid-readiness { margin:0; padding:0 25px 18px; }
.raid-readiness > span { flex:1; }
.raid-composition { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,.55fr); gap:18px; align-items:center; padding:18px 25px; border-top:1px solid rgba(255,255,255,.1); border-bottom:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.035); }
.raid-composition > div > small { display:block; margin-bottom:8px; color:#bcb4d0; letter-spacing:.1em; }
.raid-composition > div > div { display:flex; flex-wrap:wrap; gap:7px; }
.raid-role { display:grid; padding:7px 10px; border:1px solid rgba(255,255,255,.16); border-radius:10px; }
.raid-role b { font-size:12px; }
.raid-role small { color:#c9c1d9; font-size:9px; }
.raid-role.is-present { border-color:#65c895; background:rgba(57,159,107,.18); }
.raid-role.is-missing { opacity:.65; }
.raid-composition > p { margin:0; font-size:13px; }
.raid-composition > p.is-ready { color:#8ee1b2; }
.raid-phases { display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:0; padding:0; list-style:none; }
.raid-phase { display:grid; grid-template-columns:auto 1fr; gap:10px; padding:19px; border-right:1px solid rgba(255,255,255,.1); opacity:.5; }
.raid-phase:last-child { border-right:0; }
.raid-phase.is-current,.raid-phase.is-done { opacity:1; }
.raid-phase > span { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:rgba(255,255,255,.1); }
.raid-phase.is-current > span { background:#b884e3; }
.raid-phase.is-done > span { background:#399f6b; }
.raid-phase b { color:#fff; }
.raid-phase p { margin:4px 0; font-size:11px; }
.raid-phase small { color:#efd99d; }
.raid-party { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(250px,.6fr); gap:20px; padding:22px 25px 25px; background:rgba(17,28,45,.94); color:var(--text); }
.raid-party h3 { margin:0 0 10px; }
.raid-party ul { display:grid; gap:7px; margin:0; padding:0; list-style:none; }
.raid-party li { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; padding:9px 11px; border-radius:11px; background:#f4f6f8; }
.raid-party li > span { color:#654386; font-size:20px; }
.raid-party li small { display:block; color:var(--muted); }
.raid-party aside { padding:17px; border:1px solid #dfd4eb; border-radius:15px; background:#f8f4fc; }
.raid-party aside p { color:var(--muted); font-size:12px; }
.guild-raid--complete { display:grid; grid-template-columns:auto 1fr; gap:18px; align-items:center; padding:25px; background:linear-gradient(135deg,#173c35,#245d4d); border-color:#6db798; }
.raid-template-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; margin-bottom:30px; }
.raid-template { display:grid; align-content:start; gap:10px; }
.raid-template > span { color:#654386; font-size:34px; }
.raid-template h3,.raid-template p { margin:0; }
.raid-template > div { display:flex; flex-wrap:wrap; gap:5px; }
.raid-template > div small { padding:4px 7px; border-radius:8px; background:#f3edf8; }
.raid-template > div small.is-missing { color:#9b3445; background:#f9e7eb; }
.raid-template > div small.is-ready { color:#276c51; background:#e6f4ed; }
.raid-template > button { align-self:end; margin-top:5px; }

.balance-hero { display:grid; grid-template-columns:minmax(0,1fr) 150px; gap:25px; align-items:center; margin-bottom:16px; padding:32px; border-radius:23px; background:linear-gradient(135deg,#0f293c,#1f5263); color:#fff; }
.balance-hero h1 { margin:4px 0 8px; color:#fff; font-size:44px; }
.balance-hero p { max-width:760px; color:#d5e7eb; }
.balance-window { display:grid; place-items:center; min-height:130px; border:1px solid rgba(255,255,255,.2); border-radius:18px; background:rgba(255,255,255,.07); text-align:center; }
.balance-window b { color:#9ee7d5; font-size:43px; line-height:1; }
.balance-window span,.balance-window small { color:#d5e7eb; }
.balance-filters { display:flex; gap:12px; align-items:end; margin:18px 0; padding:16px; }
.balance-filters label { min-width:200px; }
.balance-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:11px; margin-bottom:28px; }
.balance-metrics article { display:grid; grid-template-columns:auto 1fr; gap:11px; align-items:center; padding:17px; border:1px solid var(--line); border-radius:16px; background:rgba(17,28,45,.88); }
.balance-metrics article > span { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:#edf6f4; color:#176553; font-size:21px; }
.balance-metrics small { display:block; color:var(--muted); font-size:9px; letter-spacing:.07em; }
.balance-metrics b { font-size:25px; }
.balance-metrics p { margin:0; color:var(--muted); font-size:11px; }
.balance-signal-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-bottom:28px; }
.balance-signal { display:grid; grid-template-columns:auto 1fr; gap:12px; padding:16px; border:1px solid; border-radius:15px; background:rgba(17,28,45,.88); }
.balance-signal > span { font-size:25px; }
.balance-signal h3,.balance-signal p { margin:2px 0; }
.balance-signal small { color:var(--muted); }
.balance-signal--high { border-color:#e9bd67; }
.balance-signal--low { border-color:#e39a9a; }
.balance-calm { display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:center; grid-column:1/-1; padding:18px; border:1px solid #b7dbc9; border-radius:15px; background:#f0faf5; }
.balance-calm > span { color:#238158; font-size:25px; }
.balance-calm p { margin:3px 0 0; color:var(--muted); }
.balance-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-bottom:14px; }
.balance-columns > .panel,.balance-wide,.balance-mastery { padding:20px; }
.balance-wide,.balance-mastery { margin-bottom:14px; }
.balance-table-wrap { overflow-x:auto; }
.balance-table { width:100%; border-collapse:collapse; font-size:12px; }
.balance-table th { padding:8px; color:var(--muted); font-size:9px; text-align:left; letter-spacing:.06em; }
.balance-table td { padding:10px 8px; border-top:1px solid var(--line); }
.balance-table td small { display:block; color:var(--muted); }
.balance-rate { position:relative; min-width:90px; height:22px; overflow:hidden; border-radius:7px; background:#edf1f3; }
.balance-rate i { display:block; height:100%; background:linear-gradient(90deg,#87c9b7,#3b9a82); }
.balance-rate span { position:absolute; inset:0; display:grid; place-items:center; color:#17382f; font-size:10px; font-weight:800; }
.balance-mastery ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:0; padding:0; list-style:none; }
.balance-mastery li { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:center; padding:11px; border-radius:12px; background:#f4f6f8; }
.balance-mastery li > span { color:#654386; font-size:20px; }
.balance-mastery li small { display:block; color:var(--muted); }
.balance-mastery li strong { font-size:11px; }

/* Aktualizacja 1.1: czytelność, katalog graczy i narzędzia nauczyciela */
.resource-gold { color: var(--gold) !important; border-color: rgba(255,201,102,.22) !important; background: rgba(255,201,102,.06) !important; }
.resource-gold b { color: var(--gold) !important; }
.nav-group { border: 1px solid transparent; border-radius: 13px; }
.nav-group[open] { padding-bottom: 5px; background: rgba(255,255,255,.018); border-color: rgba(167,197,226,.07); }
.nav-group > summary { min-height: 42px; display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 10px; padding: 8px 12px; color: #b8c6d5; cursor: pointer; list-style: none; }
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary > span { color: var(--violet); text-align: center; }
.nav-group > summary > strong { font-size: 10px; letter-spacing: .09em; text-transform: uppercase; }
.nav-group > summary > b { color: var(--muted); font-size: 11px; transition: transform .18s ease; }
.nav-group[open] > summary > b { transform: rotate(180deg); }
.nav-group > div { display: grid; gap: 2px; padding: 0 5px; }
.nav-group .nav-link { min-height: 39px; padding: 6px 9px; }
.nav-group .nav-link strong { font-size: 12px; }
.nav-group .nav-link span { min-width: 20px; }
.sidebar-online { margin-top: 12px; padding: 12px; border: 1px solid rgba(101,237,202,.14); border-radius: 13px; background: rgba(101,237,202,.035); }
.sidebar-online header { display: flex; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 8px; text-transform: uppercase; }
.sidebar-online header span { color: var(--mint); font-weight: 900; letter-spacing: .1em; }
.sidebar-online header a:hover { color: var(--mint); }
.sidebar-online i,.online-dot,.online-state i,.player-directory-name i { display: inline-block; width: 7px; height: 7px; margin-right: 4px; border-radius: 50%; background: var(--success); box-shadow: 0 0 10px rgba(85,222,160,.7); }
.sidebar-online ul { display: grid; gap: 5px; margin: 10px 0 0; padding: 0; list-style: none; }
.sidebar-online li a { display: grid; grid-template-columns: 24px minmax(0,1fr) auto; align-items: center; gap: 6px; min-width: 0; }
.sidebar-online li a > span { width: 24px; height: 24px; display: grid; place-items: center; border: 1px solid rgba(101,237,202,.15); border-radius: 50%; color: var(--mint); font-size: 9px; }
.sidebar-online li b { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-online li small { color: var(--gold); font-size: 9px; }
.sidebar-online > small { display: block; margin-top: 9px; color: var(--muted); font-size: 9px; }
.resource-inventory { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; margin: -14px 0 20px; }
.resource-inventory article { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 11px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: rgba(17,28,45,.78); }
.resource-inventory article > span { color: var(--mint); font-size: 22px; }
.resource-inventory article > div { display: grid; }
.resource-inventory small { color: var(--muted); font-size: 8px; letter-spacing: .08em; }
.resource-inventory b { font-size: 21px; }
.resource-inventory__gold { border-color: rgba(255,201,102,.2) !important; }
.resource-inventory__gold > span,.resource-inventory__gold b { color: var(--gold) !important; }
.resource-inventory--compact { max-width: 720px; }
.question-card { scroll-margin-top: 95px; }
.healer-button { min-width: 155px; white-space: nowrap; }

.directory-filters,.admin-player-filters,.communication-filters { display: grid; grid-template-columns: minmax(220px,1.4fr) minmax(190px,1fr) auto; gap: 12px; align-items: end; margin-bottom: 16px; padding: 17px; }
.player-directory { padding: 20px; }
.player-directory > header { display: flex; justify-content: space-between; gap: 14px; align-items: end; padding-bottom: 15px; border-bottom: 1px solid var(--line); }
.player-directory > header span { color: var(--mint); font-size: 9px; font-weight: 900; letter-spacing: .1em; }
.player-directory > header h2 { margin: 3px 0 0; }
.player-directory > header small { color: var(--muted); }
.player-directory > div { display: grid; gap: 7px; margin-top: 12px; }
.player-directory-card { display: grid; grid-template-columns: 34px 54px minmax(0,1fr) 70px auto; align-items: center; gap: 13px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.018); }
.player-directory-card.is-online { border-color: rgba(85,222,160,.22); background: rgba(85,222,160,.025); }
.player-rank { color: var(--muted); text-align: center; font: 18px Georgia,serif; }
.player-directory-avatar { width: 52px; height: 52px; display: grid; place-items: center; color: var(--violet); background: rgba(174,138,255,.08); border: 1px solid rgba(174,138,255,.2); border-radius: 16px 6px 16px 6px; font: 800 17px Georgia,serif; }
.player-directory-name { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.player-directory-name > a { font-family: Georgia,serif; font-size: 18px; font-weight: 700; }
.player-directory-name > span { color: var(--success); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.player-directory-card p,.player-directory-card small { margin: 2px 0 0; color: var(--muted); font-size: 10px; }
.player-directory-level { display: grid; text-align: center; }
.player-directory-level b { color: var(--gold); font: 25px Georgia,serif; }
.player-directory-level span { color: var(--muted); font-size: 7px; letter-spacing: .08em; }

.admin-player-filters { grid-template-columns: minmax(220px,1.4fr) 180px 150px auto auto; }
.admin-player-table-wrap { overflow-x: auto; padding: 12px; }
.admin-player-table { width: 100%; min-width: 860px; border-collapse: collapse; font-size: 11px; }
.admin-player-table th { padding: 9px; color: var(--muted); font-size: 8px; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.admin-player-table td { padding: 11px 9px; border-top: 1px solid var(--line); vertical-align: middle; }
.admin-player-table td > small,.admin-player-table td > a + small,.admin-player-table td span + small { display: block; margin-top: 3px; color: var(--muted); }
.online-state { color: var(--muted); font-size: 9px; }
.admin-player-table tr.is-online .online-state { color: var(--success); }
.admin-player-hero { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 20px; align-items: center; margin: 14px 0; padding: 25px; }
.admin-player-hero h1 { margin: 4px 0; font-size: clamp(32px,5vw,52px); }
.admin-player-hero p,.admin-player-hero small { margin: 0; color: var(--muted); }
.admin-player-metrics { display: grid; grid-template-columns: repeat(6,1fr); gap: 8px; margin-bottom: 16px; }
.admin-player-metrics article { display: grid; padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: rgba(17,28,45,.78); }
.admin-player-metrics b { color: var(--mint); font-size: 21px; }
.admin-player-metrics span { color: var(--muted); font-size: 8px; text-transform: uppercase; }
.admin-player-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-bottom: 12px; }
.admin-player-columns > .panel,.admin-character-summary,.admin-player-sanctions { padding: 20px; }
.admin-character-summary > div { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-character-summary > div span { padding: 7px 9px; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); }
.admin-character-summary b { color: var(--text); }
.profile-admin-details { display: grid; gap: 7px; margin: 0; }
.profile-admin-details > div { display: grid; grid-template-columns: 100px 1fr; gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line); }
.profile-admin-details dt { color: var(--muted); font-size: 9px; text-transform: uppercase; }
.profile-admin-details dd { margin: 0; overflow-wrap: anywhere; }
.admin-player-sanctions { margin-bottom: 12px; border-color: rgba(255,118,133,.18); }
.admin-player-sanctions form { display: grid; grid-template-columns: 180px 160px minmax(220px,1fr) auto; gap: 10px; align-items: end; }

.communication-filters { grid-template-columns: minmax(240px,1.5fr) 150px 160px 150px auto; }
.communication-list { display: grid; gap: 9px; }
.communication-card { display: grid; grid-template-columns: 105px minmax(0,1fr) auto; gap: 16px; padding: 17px; border: 1px solid var(--line); border-radius: 15px; background: linear-gradient(145deg,rgba(18,30,48,.9),rgba(12,21,35,.9)); }
.communication-card.is-hidden { opacity: .65; border-style: dashed; }
.communication-card > header { display: grid; align-content: start; gap: 6px; }
.communication-card time,.communication-card small { color: var(--muted); font-size: 9px; }
.communication-card h3 { margin: 8px 0 4px; }
.communication-card p { margin: 7px 0 0; overflow-wrap: anywhere; color: #d3dce7; }
.communication-card > footer { display: grid; align-content: space-between; justify-items: end; gap: 10px; }
.communication-card > footer > span { color: var(--muted); font-size: 8px; letter-spacing: .08em; }

.import-report,.import-form,.import-history { margin-bottom: 15px; padding: 22px; }
.import-report.is-valid { border-color: rgba(85,222,160,.3); }
.import-report.is-invalid { border-color: rgba(255,118,133,.3); }
.import-report > div { display: flex; flex-wrap: wrap; gap: 8px; }
.import-report > div span { display: grid; min-width: 100px; padding: 9px; border: 1px solid var(--line); border-radius: 10px; color: var(--muted); font-size: 8px; }
.import-report > div b { color: var(--mint); font-size: 19px; }
.import-report li { color: var(--danger); }
.import-form { display: grid; gap: 15px; }
.file-drop { padding: 17px; border: 1px dashed rgba(101,237,202,.35); border-radius: 13px; background: rgba(101,237,202,.03); }
.file-drop input { display: block; width: 100%; margin-bottom: 8px; }
.file-drop span { color: var(--muted); font-size: 10px; }
.import-form textarea { font-family: ui-monospace,SFMono-Regular,Consolas,monospace; font-size: 11px; }
.import-form > div { display: flex; flex-wrap: wrap; gap: 9px; }

/* Nowsze moduły nie mogą przełączać się przypadkiem w jasny motyw. */
.balance-metrics article,.balance-signal,.balance-calm,.balance-mastery li,
.raid-party,.raid-party li,.raid-party aside,.raid-template > div small {
  color: var(--text); background: rgba(17,28,45,.88); border-color: var(--line);
}
.balance-rate { background: rgba(255,255,255,.08); }
.balance-rate span { color: #dffbf3; }
.raid-party { border-top: 1px solid rgba(255,255,255,.1); }
.raid-party p,.raid-party small { color: var(--muted); }
.duel-card h3 { font-size: 17px; line-height: 1.25; }
.duel-card p,.duel-card small { font-size: 10px; line-height: 1.5; }
.duel-card select,.defense-doctrine select { width: 100%; color: var(--text); background: #101b2c; }
.duel-card option,.defense-doctrine option { color: var(--text); background: #101b2c; }

#pytanie { scroll-margin-top: 24px; }
.notification-bell { position:relative; display:grid; place-items:center; width:38px; height:38px; border:1px solid var(--line); border-radius:12px; color:var(--muted); text-decoration:none; background:rgba(255,255,255,.03); }
.notification-bell.has-unread { color:var(--gold); border-color:rgba(255,201,102,.35); background:rgba(255,201,102,.08); }
.notification-bell b { position:absolute; top:-7px; right:-7px; min-width:20px; height:20px; padding:0 5px; display:grid; place-items:center; border-radius:20px; background:var(--danger); color:white; font-size:9px; }
.healer-room { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:24px; padding:30px; }
.healer-room__symbol { display:grid; place-items:center; width:82px; height:82px; border-radius:25px; background:rgba(101,237,202,.1); color:var(--mint); font-size:36px; border:1px solid rgba(101,237,202,.2); }
.healer-room .progress { max-width:480px; margin:12px 0; }

.assignment-grid,.assignment-admin-list,.submission-review-list,.knowledge-duel-list,.notification-list { display:grid; gap:13px; }
.assignment-card { display:grid; gap:15px; padding:22px; color:var(--text); text-decoration:none; transition:.2s ease; }
.assignment-card:hover { transform:translateY(-2px); border-color:rgba(101,237,202,.3); }
.assignment-card h2 { margin:9px 0 6px; }
.assignment-card p { color:var(--muted); }
.mission-copy { white-space:pre-wrap; overflow-wrap:anywhere; }
.assignment-card footer { display:flex; justify-content:space-between; gap:10px; border-top:1px solid var(--line); padding-top:13px; color:var(--muted); font-size:10px; }
.assignment-card footer b { color:var(--mint); }
.assignment-detail { max-width:980px; margin:0 auto 28px; padding:28px; }
.assignment-detail h1 { margin:15px 0 8px; }
.assignment-files { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:18px 0; padding:14px; border-radius:12px; background:rgba(105,200,255,.06); }
.assignment-files a { color:var(--sky); }
.assignment-status { margin:18px 0; padding:14px; border:1px solid var(--line); border-radius:12px; }
.assignment-status--approved { border-color:rgba(101,237,202,.3); background:rgba(101,237,202,.06); }
.assignment-status--rejected { border-color:rgba(255,201,102,.3); background:rgba(255,201,102,.06); }
.assignment-answer-form { display:grid; gap:20px; margin-top:22px; }
.assignment-answer-form fieldset,.assignment-question-builder { border:1px solid var(--line); border-radius:13px; padding:15px; }
.assignment-answer-form legend { padding:0 8px; font-weight:700; }
.assignment-admin-layout { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr); gap:20px; align-items:start; }
.assignment-question-builder { margin:3px 0; background:rgba(255,255,255,.02); }
.assignment-question-builder summary { cursor:pointer; font-weight:700; }
.assignment-question-builder summary small { color:var(--muted); font-weight:400; margin-left:8px; }
.assignment-question-builder > div { display:grid; gap:12px; margin-top:15px; }
.assignment-admin-card { padding:18px; }
.assignment-admin-card h3 { margin:9px 0 5px; }
.assignment-admin-card p { color:var(--muted); }
.mission-editor { max-width:1100px; }
.mission-editor > section { display:grid; gap:12px; padding:15px; border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.02); }
.mission-editor > section[hidden] { display:none; }
.submission-review { padding:0; overflow:hidden; }
.submission-review > summary { display:flex; justify-content:space-between; gap:15px; padding:18px 20px; cursor:pointer; }
.submission-review > summary span { display:grid; gap:4px; }
.submission-review > summary small { color:var(--muted); }
.submission-review > summary em { color:var(--mint); font-size:9px; font-style:normal; letter-spacing:.08em; }
.submission-review > div,.submission-review > form { padding:0 20px 20px; }
.submission-answers { display:grid; gap:8px; }
.submission-answers article { padding:13px; border-radius:10px; background:rgba(255,255,255,.035); }
.submission-answers p { margin:7px 0; white-space:pre-wrap; }
.submission-answers small { color:var(--gold); }

.knowledge-hero { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.7fr); gap:22px; align-items:center; padding:35px; margin-bottom:28px; border:1px solid rgba(174,138,255,.2); border-radius:24px; background:linear-gradient(135deg,rgba(174,138,255,.1),rgba(17,28,45,.8)); }
.knowledge-hero h1 { font-size:clamp(36px,6vw,67px); margin:10px 0; }
.knowledge-stats { display:flex; flex-wrap:wrap; gap:9px; margin-top:18px; }
.knowledge-stats span { display:grid; padding:10px 14px; border:1px solid var(--line); border-radius:11px; color:var(--muted); }
.knowledge-stats b { color:var(--text); font-size:20px; }
.knowledge-hero form { display:grid; gap:13px; padding:22px; }
.knowledge-duel-row { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:18px 20px; }
.knowledge-duel-row h3 { margin:8px 0 4px; }
.knowledge-duel-row h3 b { color:var(--gold); margin:0 6px; }
.knowledge-result { margin-bottom:22px; padding:22px; border-color:rgba(255,201,102,.25); }
.knowledge-play { max-width:900px; margin:0 auto; }
.knowledge-play > header { display:grid; grid-template-columns:1fr auto; gap:20px; align-items:center; margin-bottom:22px; }
.knowledge-play h1 { font-size:clamp(25px,4vw,44px); }
.knowledge-play form { padding:24px; }
.duel-timer { display:grid; place-items:center; width:110px; height:110px; border-radius:50%; border:2px solid var(--mint); background:rgba(101,237,202,.07); color:var(--mint); }
.duel-timer b { font-size:38px; line-height:1; }
.duel-timer small { font-size:9px; letter-spacing:.1em; text-transform:uppercase; }
.duel-timer.is-urgent { color:var(--danger); border-color:var(--danger); animation:pulse 1s infinite; }
.knowledge-admin-layout,.notification-admin-layout { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:start; }
.knowledge-admin-bank { display:grid; gap:8px; max-height:900px; overflow:auto; }
.knowledge-admin-question { display:flex; justify-content:space-between; gap:15px; padding:14px; border:1px solid var(--line); border-radius:11px; background:rgba(17,28,45,.88); }
.knowledge-admin-question > div { display:grid; gap:6px; }
.knowledge-admin-question small { color:var(--muted); }

.notification-card { display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:start; padding:20px; border:1px solid var(--line); border-radius:15px; background:rgba(17,28,45,.82); }
.notification-card > span { display:grid; place-items:center; width:42px; height:42px; border-radius:12px; background:rgba(255,255,255,.04); color:var(--muted); }
.notification-card.is-unread { border-color:rgba(255,201,102,.28); background:linear-gradient(90deg,rgba(255,201,102,.07),rgba(17,28,45,.88)); }
.notification-card.is-unread > span { color:var(--gold); }
.notification-card h2 { margin:5px 0; font-size:19px; }
.notification-card p { color:var(--muted); }
.notification-card a { color:var(--mint); }
.notification-card form { display:flex; flex-wrap:wrap; gap:10px 16px; align-items:center; }
.notification-card form .link-button[name="open"] { color:var(--mint); }
.inventory-groups { display:grid; gap:12px; }
.inventory-category { border:1px solid var(--line); border-radius:13px; overflow:hidden; background:rgba(255,255,255,.018); }
.inventory-category > summary { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:10px; padding:14px 16px; cursor:pointer; }
.inventory-category > summary > span { color:var(--mint); }
.inventory-category > summary > small { color:var(--muted); }
.inventory-category > .item-list { padding:0 12px 12px; }
.shop-owned { margin-top:10px; color:var(--muted); font-size:10px; }
.shop-owned b { color:var(--text); }

.pagination { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:18px 4px 4px; }
.pagination small { color:var(--muted); }
.pagination > div { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.pagination a,.pagination span { display:grid; place-items:center; min-width:35px; height:35px; padding:0 9px; border:1px solid var(--line); border-radius:9px; color:var(--muted); text-decoration:none; }
.pagination a:hover,.pagination a.is-active { border-color:var(--mint); background:rgba(101,237,202,.1); color:var(--mint); }

.tutorial-strip { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:17px; margin-bottom:16px; padding:17px 20px; border:1px solid rgba(101,237,202,.28); border-radius:15px; color:var(--text); text-decoration:none; background:linear-gradient(100deg,rgba(101,237,202,.1),rgba(123,92,246,.08)); }
.tutorial-strip > span { display:grid; place-items:center; width:48px; height:48px; border-radius:13px; background:var(--mint); color:#07150f; font-family:var(--display); font-weight:900; }
.tutorial-strip div { display:grid; gap:3px; }
.tutorial-strip small { color:var(--mint); letter-spacing:.11em; font-weight:800; }
.tutorial-strip p { margin:0; color:var(--muted); }
.tutorial-strip > strong { color:var(--mint); }
.tutorial-hero { display:grid; grid-template-columns:1fr auto; gap:24px; align-items:center; padding:35px; border:1px solid rgba(101,237,202,.25); border-radius:20px; background:radial-gradient(circle at 90% 20%,rgba(101,237,202,.12),transparent 36%),var(--panel); }
.tutorial-hero h1 { margin:9px 0; font-size:clamp(34px,5vw,58px); }
.tutorial-hero p { color:var(--muted); max-width:680px; }
.tutorial-progress { display:grid; place-items:center; min-width:130px; aspect-ratio:1; border:2px solid var(--mint); border-radius:50%; color:var(--mint); }
.tutorial-progress b { font-size:34px; }
.tutorial-progress span { font-size:9px; letter-spacing:.12em; }
.tutorial-road { display:grid; gap:10px; margin:18px 0; }
.tutorial-step { display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:center; padding:18px 20px; border:1px solid var(--line); border-radius:14px; background:var(--panel); }
.tutorial-step > span { display:grid; place-items:center; width:44px; height:44px; border-radius:12px; background:rgba(255,255,255,.05); color:var(--muted); font-weight:900; }
.tutorial-step small { color:var(--muted); letter-spacing:.1em; }
.tutorial-step h2 { margin:3px 0; font-size:19px; }
.tutorial-step p { margin:0; color:var(--muted); }
.tutorial-step.is-done { border-color:rgba(101,237,202,.3); }
.tutorial-step.is-done > span { background:rgba(101,237,202,.13); color:var(--mint); }
.tutorial-step > b { color:var(--mint); font-size:10px; letter-spacing:.1em; }
.tutorial-reward { display:grid; grid-template-columns:auto 1fr auto; gap:17px; align-items:center; padding:22px; }
.tutorial-reward > span { font-size:30px; color:var(--gold); }
.tutorial-rules { margin-top:16px; }

.teacher-preview-banner { position:sticky; z-index:25; top:72px; margin-left:250px; display:flex; justify-content:space-between; align-items:center; gap:18px; padding:12px 28px; border-bottom:1px solid rgba(255,201,102,.35); background:#5c4217; box-shadow:0 12px 30px rgba(0,0,0,.24); }
.teacher-preview-banner > div { display:flex; align-items:center; gap:13px; }
.teacher-preview-banner > div > span { font-size:24px; }
.teacher-preview-banner p { display:grid; gap:2px; margin:0; }
.teacher-preview-banner small { color:#ffe6b4; }
.teacher-preview-mode form[aria-disabled="true"] { opacity:.62; pointer-events:none; }
.teacher-preview-mode form[aria-disabled="true"]::after { content:"Podgląd — akcja wyłączona"; display:block; margin-top:8px; color:var(--gold); font-size:10px; letter-spacing:.08em; }

.activity-filters { display:grid; grid-template-columns:2fr repeat(3,minmax(140px,1fr)) auto; gap:12px; align-items:end; margin-bottom:16px; }
.admin-activity-list { display:grid; gap:9px; }
.admin-activity-card { display:grid; grid-template-columns:auto 1fr; gap:14px; padding:16px 18px; border:1px solid var(--line); border-radius:13px; background:var(--panel); }
.admin-activity-card > span { display:grid; place-items:center; width:42px; height:42px; border-radius:11px; background:rgba(255,255,255,.045); color:var(--muted); }
.admin-activity-card header { display:flex; justify-content:space-between; gap:12px; color:var(--muted); font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.admin-activity-card h3 { margin:5px 0; font-size:17px; }
.admin-activity-card p { margin:0 0 5px; color:var(--muted); }
.admin-activity-card.severity--important { border-color:rgba(101,237,202,.25); }
.admin-activity-card.severity--important > span { color:var(--mint); }
.admin-activity-card.severity--warning { border-color:rgba(255,105,130,.36); }
.admin-activity-card.severity--warning > span { color:var(--danger); background:rgba(255,105,130,.08); }
.admin-player-hero-actions { display:grid; justify-items:end; gap:10px; }
.knowledge-fair-play { margin-bottom:18px; border-color:rgba(101,237,202,.24); }
.knowledge-audit-list .is-suspicious { border-left:3px solid var(--danger); }
.knowledge-audit-row > span { color:var(--mint); }
.knowledge-audit-row.is-suspicious > span { color:var(--danger); }

@keyframes pulse { 50% { transform:scale(.95); opacity:.75; } }

@media (max-width: 1040px) {
  .admin-player-metrics { grid-template-columns: repeat(3,1fr); }
  .admin-player-filters,.communication-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .admin-player-filters .button,.communication-filters .button { width: 100%; }
  .activity-filters { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 720px) {
  .resource-inventory { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 0; }
  .directory-filters,.admin-player-filters,.communication-filters,.activity-filters { grid-template-columns: 1fr; }
  .pagination { align-items:flex-start; flex-direction:column; }
  .teacher-preview-banner { top:64px; margin-left:0; padding:12px 16px; align-items:flex-start; }
  .teacher-preview-banner > div { align-items:flex-start; }
  .teacher-preview-banner .button { flex:none; }
  .tutorial-hero { grid-template-columns:1fr; padding:24px 20px; }
  .tutorial-progress { min-width:100px; width:100px; }
  .tutorial-step,.tutorial-reward,.tutorial-strip { grid-template-columns:auto 1fr; }
  .tutorial-step > .button,.tutorial-step > b,.tutorial-reward > .button,.tutorial-strip > strong { grid-column:2; justify-self:start; }
  .player-directory-card { grid-template-columns: 28px 48px minmax(0,1fr); }
  .player-directory-level { grid-column: 2; }
  .player-directory-card > .button { grid-column: 3; justify-self: start; }
  .player-directory > header { align-items: start; flex-direction: column; }
  .admin-player-hero { grid-template-columns: auto 1fr; }
  .admin-player-hero > .status-badge { grid-column: 1/-1; justify-self: start; }
  .admin-player-metrics { grid-template-columns: repeat(2,1fr); }
  .admin-player-columns { grid-template-columns: 1fr; }
  .admin-player-sanctions form { grid-template-columns: 1fr; }
  .communication-card { grid-template-columns: 1fr; }
  .communication-card > header { display: flex; justify-content: space-between; }
  .communication-card > footer { justify-items: start; }
  .healer-room,.assignment-admin-layout,.knowledge-hero,.knowledge-admin-layout,.notification-admin-layout { grid-template-columns:1fr; }
  .healer-room { justify-items:start; }
  .knowledge-play > header { grid-template-columns:1fr; }
  .duel-timer { width:82px; height:82px; }
  .notification-card { grid-template-columns:auto 1fr; }
  .notification-card form { grid-column:2; }
}

@media (max-width: 820px) {
  .mastery-grid,.mastery-grid--styles,.raid-template-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mastery-rules,.balance-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .raid-composition,.raid-party,.balance-columns { grid-template-columns:1fr; }
  .raid-phases { grid-template-columns:1fr; }
  .raid-phase { border-right:0; border-bottom:1px solid rgba(255,255,255,.1); }
}

@media (max-width: 580px) {
  .mastery-hero,.balance-hero { grid-template-columns:1fr; padding:23px 19px; }
  .mastery-seal { width:160px; justify-self:center; }
  .mastery-rules,.mastery-grid,.mastery-grid--styles,.raid-template-grid,.balance-metrics,.balance-signal-grid,.balance-mastery ul { grid-template-columns:1fr; }
  .guild-raid > header { grid-template-columns:auto 1fr; padding:19px; }
  .guild-raid__total { grid-column:1/-1; text-align:left; }
  .raid-composition,.raid-party { padding:17px 19px; }
  .balance-filters { align-items:stretch; flex-direction:column; }
  .balance-filters label,.balance-filters .button { width:100%; }
}

/* Aktualizacja 1.4 — żywy świat, kolekcje i gospodarka */
.world-event-strip{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin:16px 0;padding:20px 24px;color:var(--text);background:linear-gradient(120deg,rgba(174,138,255,.16),rgba(101,237,202,.08)),#111c2c;border:1px solid rgba(174,138,255,.3);border-radius:16px;text-decoration:none}.world-event-strip>span{width:54px;height:54px;display:grid;place-items:center;color:var(--violet);border:1px solid rgba(174,138,255,.35);border-radius:50%;font-size:25px}.world-event-strip small,.world-event-strip p{color:var(--muted)}.world-event-strip b{display:block;margin:4px 0;font-family:Georgia,serif;font-size:21px}.world-event-strip p{margin:0;font-size:11px}.world-event-strip strong{color:var(--mint);font-size:11px}
.city-surprise{display:grid;grid-template-columns:auto 1fr;gap:20px;margin:16px 0;border-color:rgba(255,201,102,.35);background:radial-gradient(circle at 0 0,rgba(255,201,102,.12),transparent 35%),var(--panel)}.city-surprise__symbol{width:66px;height:66px;display:grid;place-items:center;color:var(--gold);border:1px solid rgba(255,201,102,.35);border-radius:22px;font:34px Georgia,serif}.city-surprise h2{margin:7px 0;font:26px Georgia,serif}.city-surprise p{color:#b7c5d4;line-height:1.65}
.city-event-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.city-event-choice{display:grid;gap:5px;min-height:76px;padding:13px 16px;color:var(--text);background:rgba(255,255,255,.035);border:1px solid var(--line-strong);border-radius:12px;text-align:left;cursor:pointer}.city-event-choice.is-primary{border-color:rgba(255,201,102,.38);background:rgba(255,201,102,.07)}.city-event-choice:hover:not(:disabled){border-color:var(--mint);transform:translateY(-1px)}.city-event-choice:disabled{opacity:.48;cursor:not-allowed}.city-event-choice small{color:var(--muted);font-size:9px}.city-event-choice em{color:var(--danger);font-size:9px;font-style:normal}.city-surprise--result{border-color:rgba(85,222,160,.35);background:radial-gradient(circle at 0 0,rgba(85,222,160,.12),transparent 35%),var(--panel)}.city-surprise--result .city-surprise__symbol{color:var(--success);border-color:rgba(85,222,160,.35)}.city-surprise blockquote{margin:12px 0;padding:11px 14px;color:#dce7e3;background:rgba(85,222,160,.055);border-left:2px solid var(--success);border-radius:0 10px 10px 0}.city-event-effects{display:flex;flex-wrap:wrap;gap:7px;margin:11px 0}.city-event-effects span{padding:6px 9px;color:var(--muted);background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:8px;font-size:9px}.city-event-effects .is-cost{color:#ffabb5;border-color:rgba(255,118,133,.25)}.city-event-effects .is-reward{color:#9cf0c3;border-color:rgba(85,222,160,.25)}
.city-event-manager{margin:26px 0 36px;scroll-margin-top:24px}.city-manager-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.75fr);gap:25px;align-items:center;padding:25px;background:radial-gradient(circle at 0 0,rgba(255,201,102,.1),transparent 42%),rgba(17,28,45,.9)}.city-manager-hero h3{margin:8px 0 5px;font:25px Georgia,serif}.city-manager-hero p{max-width:720px;color:var(--muted)}.city-manager-hero>form{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:16px;border:1px solid var(--line);border-radius:14px;background:rgba(3,9,16,.25)}.city-manager-hero>form .checkbox,.city-manager-hero>form .button{grid-column:1/-1}.city-manager-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:13px 0 28px}.city-manager-metrics article{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--line);border-radius:13px;background:rgba(17,28,45,.76)}.city-manager-metrics article>span{width:36px;height:36px;display:grid;place-items:center;color:var(--gold);background:rgba(255,201,102,.07);border-radius:10px}.city-manager-metrics article div{display:grid}.city-manager-metrics small{color:var(--muted);font-size:8px}.city-manager-metrics b{font-size:23px}.city-event-library{display:grid;gap:9px}.city-event-editor{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:rgba(17,28,45,.78)}.city-event-editor.is-disabled{opacity:.62}.city-event-editor>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:15px 17px;cursor:pointer;list-style:none}.city-event-editor>summary::-webkit-details-marker{display:none}.city-event-editor>summary>span:nth-child(2){display:grid;gap:3px;min-width:0}.city-event-editor>summary b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.city-event-editor>summary small{color:var(--muted);font-size:9px}.city-event-editor>summary em{color:var(--mint);font-size:8px;font-style:normal}.city-event-editor[open]>summary{border-bottom:1px solid var(--line)}.city-event-editor__body{display:grid;gap:16px;padding:18px}.city-event-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.city-event-preview>p{grid-column:1/-1;margin:0;color:var(--muted)}.city-event-preview article{padding:13px;border:1px solid rgba(255,201,102,.18);border-radius:11px;background:rgba(255,201,102,.04)}.city-event-preview article p{margin:6px 0;color:#c7d2dd;font-size:11px}.city-event-preview article small{color:var(--gold);font-size:9px}.city-definition-form{display:grid;gap:16px;padding-top:16px;border-top:1px solid var(--line)}.city-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.city-choice-editor{display:grid;gap:11px;margin:0;padding:15px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.018)}.city-choice-editor legend{padding:0 7px;color:var(--gold);font-weight:800}.city-choice-editor details{padding:10px;border:1px solid var(--line);border-radius:10px}.city-choice-editor summary{cursor:pointer;color:#d9e3ec;font-size:10px;font-weight:700}.city-effect-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.city-event-creator{margin-top:14px;padding:0;overflow:hidden}.city-event-creator>summary{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;align-items:center;padding:18px;cursor:pointer;list-style:none}.city-event-creator>summary>span{grid-row:1/3;width:38px;height:38px;display:grid;place-items:center;color:var(--mint);border:1px solid rgba(101,237,202,.25);border-radius:11px}.city-event-creator>summary small{color:var(--muted)}.city-event-creator>.city-definition-form{padding:18px}.city-history-filters{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end;padding:16px}.city-history-list{display:grid;gap:8px;margin-top:10px}.city-history-card{display:grid;gap:9px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:rgba(17,28,45,.74)}.city-history-card>div{display:flex;align-items:center;gap:11px}.city-history-card>div>span{width:32px;height:32px;display:grid;place-items:center;color:var(--gold);border:1px solid rgba(255,201,102,.25);border-radius:9px}.city-history-card>div>div{display:grid}.city-history-card small{color:var(--muted);font-size:9px}.city-history-card p{margin:0 0 0 43px;color:#c4d0dc;font-size:11px}.city-history-card.is-resolved>div>span{color:var(--success);border-color:rgba(85,222,160,.25)}
.achievement-grid,.cosmetic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.achievement-badge{display:grid;grid-template-columns:auto 1fr;gap:16px;padding:20px;opacity:.55;background:rgba(255,255,255,.018);border:1px solid var(--line);border-radius:15px}.achievement-badge.is-unlocked{opacity:1;background:linear-gradient(145deg,rgba(255,201,102,.08),rgba(101,237,202,.035));border-color:rgba(255,201,102,.25)}.achievement-badge>span{width:54px;height:54px;display:grid;place-items:center;color:var(--gold);border:1px solid currentColor;border-radius:50%;font-size:22px}.achievement-badge small,.achievement-badge em{color:var(--muted);font-size:9px;font-style:normal;text-transform:uppercase}.achievement-badge h2{margin:5px 0;font:21px Georgia,serif}.achievement-badge p{min-height:34px;margin:0 0 10px;color:#aebdcd;font-size:11px}
.cosmetic-grid{padding:14px}.cosmetic-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:15px;background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:12px}.cosmetic-card.is-locked{opacity:.45;filter:saturate(.5)}.cosmetic-card>span{width:43px;height:43px;display:grid;place-items:center;color:var(--violet);background:rgba(174,138,255,.06);border-radius:12px;font-weight:800}.cosmetic-card h3,.cosmetic-card p{margin:0 0 4px}.cosmetic-card p,.cosmetic-card small{color:var(--muted);font-size:10px}
.reputation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.reputation-grid article{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:17px;background:var(--panel);border:1px solid var(--line);border-radius:13px}.reputation-grid article>span{width:40px;height:40px;display:grid;place-items:center;color:var(--mint);border:1px solid rgba(101,237,202,.24);border-radius:50%;font-family:Georgia,serif}.reputation-grid small,.reputation-grid em{display:block;color:var(--muted);font-size:9px;font-style:normal}.reputation-grid b{display:block;margin:4px 0 9px}.class-goal-list{display:grid;gap:10px}.class-goal{display:grid;grid-template-columns:auto 1fr;gap:18px;padding:22px;background:linear-gradient(135deg,rgba(105,200,255,.07),rgba(101,237,202,.04));border:1px solid rgba(105,200,255,.2);border-radius:15px}.class-goal>span{width:50px;height:50px;display:grid;place-items:center;color:var(--sky);border:1px solid currentColor;border-radius:50%}.class-goal h2,.class-goal p{margin:5px 0}.class-goal p,.class-goal small,.class-goal em{color:var(--muted);font-size:10px;font-style:normal}.class-goal.is-complete{border-color:rgba(101,237,202,.35)}
.discovery-journal{display:grid;gap:9px}.discovery-section{background:var(--panel);border:1px solid var(--line);border-radius:13px;overflow:hidden}.discovery-section summary{display:flex;justify-content:space-between;padding:16px 18px;cursor:pointer}.discovery-section summary span{color:var(--mint)}.discovery-section>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 14px 14px}.discovery-section article{display:flex;gap:11px;padding:12px;background:rgba(255,255,255,.02);border-radius:9px}.discovery-section article>span{color:var(--gold)}.discovery-section article small{display:block;margin-top:3px;color:var(--muted);font-size:9px}
.profile-frame--bronze{box-shadow:0 0 0 2px #9d7048,0 20px 60px rgba(0,0,0,.25)}.profile-frame--hunter{box-shadow:0 0 0 2px #65edca,0 0 38px rgba(101,237,202,.16)}.profile-frame--scholar{box-shadow:0 0 0 2px #ae8aff,0 0 38px rgba(174,138,255,.18)}.profile-frame--champion{box-shadow:0 0 0 2px #ffc966,0 0 0 6px rgba(174,138,255,.14),0 0 46px rgba(255,201,102,.22)}.profile-extra-bg--starlit{background-image:radial-gradient(circle at 15% 22%,rgba(255,255,255,.7) 0 1px,transparent 2px),radial-gradient(circle at 76% 35%,rgba(255,201,102,.8) 0 1px,transparent 2px),linear-gradient(130deg,#121a37,#17132d)!important;background-size:110px 110px,150px 150px,auto!important}.profile-extra-bg--dragon{background:radial-gradient(circle at 80% 35%,rgba(255,110,86,.25),transparent 28%),linear-gradient(130deg,#25131b,#111927)!important}
.auction-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.65fr);gap:16px;align-items:start}.auction-layout>aside{display:grid;gap:14px;position:sticky;top:90px}.auction-list{display:grid;gap:10px}.auction-card{display:grid;grid-template-columns:1fr auto;gap:20px}.auction-card h2{margin:8px 0;font:24px Georgia,serif}.auction-card p,.auction-card small{color:var(--muted)}.auction-price{min-width:190px;display:grid;align-content:center;gap:7px;padding-left:18px;border-left:1px solid var(--line)}.auction-price>b{color:var(--gold);font:32px Georgia,serif}.auction-price>span{color:var(--muted);font-size:9px;text-transform:uppercase}.auction-price form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:7px}
.world-threat{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:30px;padding:clamp(28px,5vw,58px);background:radial-gradient(circle at 82% 30%,rgba(174,138,255,.2),transparent 25%),linear-gradient(140deg,#16142a,#0e1927);border:1px solid rgba(174,138,255,.3);border-radius:22px}.world-threat h1{margin:10px 0 0;font:clamp(38px,6vw,68px) Georgia,serif}.world-threat h2{margin:0 0 15px;color:var(--violet);font:normal 28px Georgia,serif}.world-threat p{max-width:760px;color:#b8c4d2;line-height:1.7}.world-threat>aside{width:155px;height:155px;min-width:155px;display:grid;place-content:center;justify-items:center;color:var(--violet);border:1px solid rgba(174,138,255,.25);border-radius:50%}.world-threat>aside>span{font-size:35px}.world-threat>aside>b{font-size:28px}.world-threat>aside>small{font-size:8px}.world-threat-meter{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;max-width:760px;margin-top:24px}.world-threat-meter>div:first-child{display:flex;justify-content:space-between;margin:0}.world-threat-meter>.progress{width:100%;margin:0}.world-threat-meter>small{display:block;width:100%;padding:8px 11px;color:#aebdcd;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);border-radius:9px;font-size:9px;line-height:1.4}.world-event-action{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:15px}.world-event-action>div{display:flex;gap:15px;align-items:center}.world-event-action>div>span{font-size:32px;color:var(--gold)}.world-event-action h2,.world-event-action p{margin:4px 0}.world-event-action p,.world-event-action small{color:var(--muted)}
.tournament-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.tournament-card header{display:flex;gap:15px}.tournament-card header>span{width:55px;height:55px;display:grid;place-items:center;color:var(--gold);border:1px solid rgba(255,201,102,.28);border-radius:16px}.tournament-card h2,.tournament-card p{margin:5px 0}.tournament-card p,.tournament-card small,.tournament-card em{color:var(--muted);font-size:10px;font-style:normal}.tournament-rules{display:flex;gap:7px;margin:15px 0}.tournament-rules span{padding:7px 9px;background:rgba(255,255,255,.025);border-radius:7px;font-size:9px}.tournament-card ol{padding:0;list-style:none}.tournament-card li{display:grid;grid-template-columns:25px 1fr auto auto;gap:8px;align-items:center;padding:9px;border-top:1px solid var(--line)}.tournament-card li>span{color:var(--gold)}.tournament-card li small{text-align:right}.admin-world-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;align-items:start}.admin-world-grid>div{display:grid;gap:15px}.knowledge-admin-question[open]{padding-bottom:12px}.knowledge-admin-question summary{cursor:pointer}.knowledge-admin-question>.form-panel{margin:12px}.knowledge-toggle-form{margin:0 12px 8px}
@media(max-width:1050px){.admin-world-grid,.reputation-grid{grid-template-columns:1fr 1fr}.auction-layout{grid-template-columns:1fr}.auction-layout>aside{position:static}.tournament-grid{grid-template-columns:1fr}.city-manager-metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.achievement-grid,.cosmetic-grid,.reputation-grid,.discovery-section>div,.admin-world-grid,.city-manager-hero,.city-choice-grid,.city-event-preview{grid-template-columns:1fr}.world-event-strip,.world-threat,.auction-card{grid-template-columns:1fr}.world-event-strip>strong{display:none}.city-surprise{grid-template-columns:1fr}.city-event-choices{grid-template-columns:1fr}.city-event-preview>p{grid-column:auto}.city-manager-hero>form,.city-history-filters{grid-template-columns:1fr}.city-manager-hero>form .checkbox,.city-manager-hero>form .button{grid-column:auto}.city-effect-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.city-event-editor>summary{grid-template-columns:auto minmax(0,1fr)}.city-event-editor>summary em{grid-column:2}.auction-price{padding:14px 0 0;border-left:0;border-top:1px solid var(--line)}.world-threat>aside{min-width:120px;width:120px}.world-event-action{align-items:stretch;flex-direction:column}.tournament-rules{flex-wrap:wrap}.tournament-card li{grid-template-columns:22px 1fr auto}.tournament-card li small{display:none}}

.balance-version-note { display:flex; align-items:center; gap:16px; margin:18px 0; }
.balance-version-note > span { display:grid; place-items:center; flex:0 0 58px; height:58px; border-radius:18px; background:linear-gradient(135deg,var(--mint),var(--violet)); color:#071522; font-family:Georgia,serif; font-size:1.15rem; font-weight:900; }
.balance-version-note b { display:block; color:var(--text); margin-bottom:4px; }
.balance-version-note p { margin:0; color:var(--muted); line-height:1.55; }
.admin-world-grid .reward-list { max-height:380px; overflow:auto; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

@media (max-width: 720px) {
  .tag { font-size: 11px; line-height: 1.45; }
  .button--small { min-height:44px; }
  .bottom-nav .nav-link strong { font-size: 10px; }
  .combat-plan-summary span,.combat-plan-summary b,.defense-doctrine p { font-size: 12px; }
  .combat-mastery-note,.combat-item-empty small,.combat-skill-locked small { font-size: 11px; line-height: 1.5; }
  .world-threat>aside { width:120px; height:120px; min-width:120px; }
  .world-threat>aside>small,.world-threat-meter>small { font-size: 11px; }
  .admin-jump a { min-height:44px; display:flex; align-items:center; font-size:11px; }
  .compact-actions .link-button,.compact-actions .button { min-height:44px; padding:9px 10px; }
  .checkbox input { width:22px; height:22px; }
}
/* Grafiki świata i ustawienia gildii · 1.11 */
.world-media-banner {
  position: relative;
  width: 100%;
  height: clamp(150px, 24vw, 290px);
  margin: 0 0 24px;
  overflow: hidden;
  border: 1px solid var(--line, rgba(148, 163, 184, .2));
  border-radius: 22px;
  background: #101827;
  box-shadow: 0 18px 45px rgba(0, 0, 0, .22);
}

.world-media-banner::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(6, 10, 18, .34));
  pointer-events: none;
}

.world-media-banner img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

.world-media-guide { margin-bottom: 20px; }
.world-media-guide b { display: block; margin-bottom: 6px; color: var(--mint, #58f2cf); }
.world-media-guide p { margin: 0; color: var(--muted, #9fb0c8); }

.world-media-grid { display: grid; gap: 18px; }
.world-media-card {
  display: grid;
  grid-template-columns: minmax(220px, 34%) minmax(280px, 1fr) minmax(190px, 230px);
  gap: 20px;
  align-items: center;
}

.world-media-card__preview {
  aspect-ratio: 16 / 5;
  min-height: 130px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 15px;
  background: rgba(9, 15, 26, .72);
  border: 1px dashed rgba(148, 163, 184, .3);
  color: var(--muted, #9fb0c8);
}

.world-media-card__preview > span { font-size: 2rem; }
.world-media-card__preview img { width: 100%; height: 100%; object-fit: cover; }
.world-media-card__copy h2 { margin: 7px 0 5px; }
.world-media-card__copy p { margin: 0 0 12px; color: var(--muted, #9fb0c8); }
.world-media-spec, .world-media-current { display: flex; flex-direction: column; gap: 3px; margin-top: 8px; }
.world-media-spec small, .world-media-current small { color: var(--muted, #9fb0c8); }
.world-media-current.is-warning { padding: 8px 10px; border-radius: 10px; background: rgba(245, 158, 11, .1); color: #fbbf24; }
.world-media-card__actions { display: flex; flex-direction: column; gap: 10px; align-items: stretch; }
.world-media-card__actions form { display: flex; flex-direction: column; gap: 9px; }
.file-picker { display: flex; flex-direction: column; gap: 6px; font-size: .78rem; color: var(--muted, #9fb0c8); }
.file-picker input { width: 100%; font-size: .78rem; }

.guild-price-settings {
  display: grid;
  grid-template-columns: 1fr minmax(160px, 220px) auto;
  gap: 18px;
  align-items: end;
  margin-bottom: 20px;
}
.guild-price-settings h2 { margin: 7px 0 5px; }
.guild-price-settings p { margin: 0; color: var(--muted, #9fb0c8); }

.turn-action-grid { grid-template-columns: repeat(5, 1fr); }
.turn-duel-row > .compact-actions { flex-direction: column; align-items: stretch; }
.turn-duel-row > .compact-actions form { margin: 0; }
.turn-duel-row > .compact-actions .button { width: 100%; }
.turn-cancel-challenge {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 16px;
  border-color: rgba(255, 201, 102, .28);
}
.turn-cancel-challenge h3 { margin: 7px 0 4px; }
.turn-cancel-challenge p { margin: 0; color: var(--muted, #9fb0c8); }

@media (max-width: 900px) {
  .turn-action-grid { grid-template-columns: repeat(2, 1fr); }
  .world-media-card { grid-template-columns: 1fr; }
  .world-media-card__preview { min-height: 150px; }
  .guild-price-settings { grid-template-columns: 1fr; align-items: stretch; }
}

@media (max-width: 600px) {
  .turn-duel-row > .compact-actions { grid-column: 1 / -1; width: 100%; }
  .turn-cancel-challenge { align-items: stretch; flex-direction: column; }
  .turn-cancel-challenge .button { width: 100%; }
  .world-media-banner { height: 150px; margin-bottom: 16px; border-radius: 16px; }
  .world-media-card { padding: 14px; gap: 14px; }
  .world-media-card__preview { min-height: 120px; }
}

/* Serce Miasta · wydanie 2.1 */
.heart-city-hero,
.heart-next-step,
.heart-status,
.heart-today,
.class-portal,
.city-news,
.city-district-section { margin-bottom: 22px; }

.heart-city-hero {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 28px;
  padding: 8px 2px 4px;
}
.heart-city-hero h1 { margin: 8px 0 7px; font-size: clamp(2rem, 5vw, 4.4rem); }
.heart-city-hero p { margin: 0; max-width: 680px; color: var(--muted, #9fb0c8); }
.heart-level { min-width: 220px; padding: 18px; border-radius: 18px; background: rgba(16, 27, 45, .82); border: 1px solid rgba(88, 242, 207, .18); }
.heart-level > span, .heart-level > b { display: block; }
.heart-level > span { color: var(--mint, #58f2cf); font-size: .72rem; letter-spacing: .14em; font-weight: 900; }
.heart-level > b { margin: 5px 0 10px; }

.heart-next-step {
  display: grid;
  grid-template-columns: 68px 1fr auto;
  gap: 20px;
  align-items: center;
  padding: 22px 25px;
  border-radius: 22px;
  color: #f8fbff;
  text-decoration: none;
  background: linear-gradient(120deg, rgba(57, 214, 174, .22), rgba(89, 86, 214, .2)), #111d30;
  border: 1px solid rgba(88, 242, 207, .32);
  box-shadow: 0 18px 60px rgba(2, 10, 23, .24);
}
.heart-next-step > span { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 18px; background: rgba(88, 242, 207, .12); color: var(--mint, #58f2cf); font-weight: 900; font-size: 1.4rem; }
.heart-next-step small { color: var(--mint, #58f2cf); letter-spacing: .12em; font-weight: 900; }
.heart-next-step h2 { margin: 4px 0; }
.heart-next-step p { margin: 0; color: #b8c7d9; }
.heart-next-step em { display: block; margin-top: 8px; color: #8ea4bb; font-size: .75rem; font-style: normal; }
.heart-next-step > b { color: var(--mint, #58f2cf); white-space: nowrap; }
.heart-next-step:hover { transform: translateY(-2px); border-color: rgba(88, 242, 207, .6); }

.city2-identity { display: grid; grid-template-columns: 72px 1fr; gap: 18px; align-items: center; }
.city2-identity > span { display: grid; place-items: center; width: 68px; height: 68px; border-radius: 20px; color: var(--mint, #58f2cf); background: linear-gradient(145deg, rgba(88, 242, 207, .14), rgba(155, 118, 255, .13)); border: 1px solid rgba(88, 242, 207, .22); font: 800 1.3rem Georgia, serif; }
.city-return-digest { display: flex; align-items: center; gap: 12px; margin: -8px 0 18px; padding: 11px 14px; border-radius: 13px; color: #bed0df; background: rgba(155, 118, 255, .07); border: 1px solid rgba(155, 118, 255, .15); }
.city-return-digest > span { color: #b99cff; font-size: 1.1rem; }

.heart-status { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.heart-status > div { display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: center; padding: 13px 16px; border-radius: 14px; background: rgba(16, 27, 45, .68); border: 1px solid rgba(148, 163, 184, .13); }
.heart-status span { grid-row: 1 / 3; color: var(--mint, #58f2cf); font-size: 1.25rem; }
.heart-status b { font-size: 1.02rem; }
.heart-status small { color: var(--muted, #9fb0c8); }
.heart-status > .heart-energy-note { grid-column: 1 / -1; padding: 2px 5px; text-align: right; }

.heart-today > div:last-child { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; }
.city-today-card { display: grid; grid-template-columns: 42px 1fr auto; gap: 13px; align-items: center; min-width: 0; padding: 16px; border-radius: 16px; text-decoration: none; color: #f8fbff; background: #111d30; border: 1px solid rgba(148, 163, 184, .16); }
.city-today-card > span { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: rgba(88, 242, 207, .1); color: var(--mint, #58f2cf); font-weight: 900; }
.city-today-card > div { min-width: 0; }
.city-today-card small, .city-today-card b, .city-today-card p { display: block; }
.city-today-card small { color: var(--mint, #58f2cf); font-size: .66rem; letter-spacing: .08em; font-weight: 900; }
.city-today-card b { margin: 4px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.city-today-card p { margin: 0; color: var(--muted, #9fb0c8); font-size: .82rem; }
.city-today-card em { display: block; margin-top: 6px; color: #7f96ae; font-size: .7rem; font-style: normal; }
.city-today-card.is-complete { border-color: rgba(88, 242, 207, .36); }

.weekly-path { margin-bottom: 22px; overflow: hidden; border-color: rgba(255, 193, 102, .2); }
.weekly-path.is-ready { background: linear-gradient(125deg, rgba(255, 193, 102, .08), rgba(88, 242, 207, .06)), #111d30; border-color: rgba(255, 193, 102, .42); }
.weekly-path > header { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; margin-bottom: 15px; }
.weekly-path > header small { color: #ffc166; font-weight: 900; letter-spacing: .1em; }
.weekly-path > header h2 { margin: 5px 0; }
.weekly-path > header p { margin: 0; color: var(--muted, #9fb0c8); }
.weekly-path > header > strong { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; color: #15100a; background: #ffc166; font-size: 1.25rem; box-shadow: 0 0 30px rgba(255, 193, 102, .16); }
.weekly-path__tasks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 15px; }
.weekly-path__task { display: grid; grid-template-columns: 38px 1fr auto; gap: 11px; align-items: center; min-width: 0; padding: 14px; border-radius: 14px; color: #f8fbff; text-decoration: none; background: rgba(7, 14, 25, .48); border: 1px solid rgba(148, 163, 184, .13); }
.weekly-path__task > span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 11px; color: #ffc166; background: rgba(255, 193, 102, .08); font-weight: 900; }
.weekly-path__task small, .weekly-path__task b, .weekly-path__task p { display: block; }
.weekly-path__task small { color: #ffc166; font-size: .64rem; letter-spacing: .08em; font-weight: 900; }
.weekly-path__task p { margin: 4px 0 0; color: var(--muted, #9fb0c8); font-size: .75rem; }
.weekly-path__task.is-done { border-color: rgba(88, 242, 207, .35); background: rgba(88, 242, 207, .06); }
.weekly-path__task.is-done > span { color: var(--mint, #58f2cf); background: rgba(88, 242, 207, .1); }
.weekly-path__rewards { display: grid; grid-template-columns: minmax(170px, .8fr) repeat(3, 1fr); gap: 10px; align-items: stretch; margin-top: 15px; padding-top: 15px; border-top: 1px solid rgba(255, 193, 102, .16); }
.weekly-path__rewards > div { align-self: center; }
.weekly-path__rewards > div small { color: #ffc166; font-weight: 900; }
.weekly-path__rewards > div h3 { margin: 4px 0; }
.weekly-path__rewards form { display: grid; grid-template-columns: 32px 1fr; gap: 10px; padding: 13px; border-radius: 13px; background: rgba(7, 14, 25, .5); border: 1px solid rgba(148, 163, 184, .13); }
.weekly-path__rewards form > span { color: #ffc166; font-size: 1.25rem; }
.weekly-path__rewards form b, .weekly-path__rewards form small, .weekly-path__rewards form em { display: block; }
.weekly-path__rewards form small { margin-top: 3px; color: var(--muted, #9fb0c8); }
.weekly-path__rewards form em { margin-top: 5px; color: var(--mint, #58f2cf); font-size: .72rem; font-style: normal; }
.weekly-path__rewards form button { grid-column: 1 / -1; width: 100%; }
.weekly-path__hint { margin: 14px 0 0; color: #9fb0c8; }
.weekly-path__claimed { display: grid; grid-template-columns: 42px 1fr; gap: 12px; align-items: center; margin-top: 15px; padding: 13px; border-radius: 13px; background: rgba(88, 242, 207, .07); border: 1px solid rgba(88, 242, 207, .2); }
.weekly-path__claimed > span { color: var(--mint, #58f2cf); font-size: 1.35rem; text-align: center; }
.weekly-path__claimed p { margin: 3px 0 0; color: var(--muted, #9fb0c8); }

.city-drawer { padding: 0; overflow: hidden; }
.city-drawer > summary, .admin-toolbox > summary { display: grid; grid-template-columns: 48px 1fr auto; gap: 15px; align-items: center; padding: 18px 20px; cursor: pointer; list-style: none; }
.city-drawer > summary::-webkit-details-marker, .admin-toolbox > summary::-webkit-details-marker { display: none; }
.city-drawer > summary > span, .admin-toolbox > summary > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: rgba(88, 242, 207, .1); color: var(--mint, #58f2cf); font-weight: 900; }
.city-drawer > summary small, .city-drawer > summary b, .city-drawer > summary p,
.admin-toolbox > summary small, .admin-toolbox > summary b { display: block; }
.city-drawer > summary small { color: var(--mint, #58f2cf); font-weight: 900; letter-spacing: .1em; }
.city-drawer > summary p, .admin-toolbox > summary small { margin: 3px 0 0; color: var(--muted, #9fb0c8); }
.city-drawer[open] > summary > i, .admin-toolbox[open] > summary > i { transform: rotate(180deg); }
.heart-daily-grid, .seal-offers { display: grid; gap: 10px; padding: 0 20px 20px; }
.heart-daily-card, .seal-offers form { display: grid; grid-template-columns: 36px 1fr auto; gap: 13px; align-items: center; padding: 13px; border-radius: 13px; background: rgba(7, 14, 25, .52); border: 1px solid rgba(148, 163, 184, .11); }
.heart-daily-card > span, .seal-offers form > span { color: var(--mint, #58f2cf); font-weight: 900; font-size: 1.15rem; }
.heart-daily-card h3 { margin: 2px 0 4px; }
.heart-daily-card p { margin: 0 0 4px; color: var(--muted, #9fb0c8); }
.seal-offers form small, .seal-offers form b { display: block; }
.seal-offers form small { color: var(--muted, #9fb0c8); margin-top: 3px; }
.seal-offers form.is-owned { border-color: rgba(88, 242, 207, .22); background: rgba(88, 242, 207, .045); }

.class-portal { display: grid; grid-template-columns: 64px 1fr auto; gap: 20px; align-items: center; border-color: rgba(155, 118, 255, .26); }
.class-portal.is-open { background: linear-gradient(120deg, rgba(155, 118, 255, .13), rgba(88, 242, 207, .07)), #111d30; }
.class-portal__sigil { display: grid; place-items: center; width: 62px; height: 62px; border-radius: 50%; color: #b99cff; background: rgba(155, 118, 255, .12); font-size: 1.8rem; }
.class-portal h2 { margin: 5px 0; }
.class-portal p { margin: 0 0 12px; color: var(--muted, #9fb0c8); }
.portal-sources { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.portal-sources span, .portal-state { padding: 5px 8px; border-radius: 999px; background: rgba(148, 163, 184, .08); color: var(--muted, #9fb0c8); font-size: .72rem; }
.portal-unlock { display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; margin-top: 12px; padding: 11px 13px; border-radius: 12px; color: #f8fbff; text-decoration: none; background: rgba(155, 118, 255, .12); border: 1px solid rgba(185, 156, 255, .25); }
.portal-unlock > span { color: #b99cff; font-size: .66rem; font-weight: 900; letter-spacing: .08em; }
.portal-unlock > strong { color: var(--mint, #58f2cf); }

.city-news > div:last-child { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.city-news a { display: grid; grid-template-columns: 42px 1fr; gap: 12px; padding: 15px; color: #f8fbff; text-decoration: none; border-radius: 15px; background: rgba(16, 27, 45, .72); border: 1px solid rgba(148, 163, 184, .14); }
.city-news a > span { color: #b99cff; font-size: 1.4rem; }
.city-news a small, .city-news a b { display: block; }
.city-news a small { color: #b99cff; font-size: .66rem; letter-spacing: .08em; font-weight: 900; }
.city-news a p { margin: 4px 0 0; color: var(--muted, #9fb0c8); font-size: .8rem; }

.city-district-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 13px; }
.city-district { border-radius: 17px; background: rgba(16, 27, 45, .76); border: 1px solid rgba(148, 163, 184, .15); overflow: hidden; }
.city-district > summary { display: grid; grid-template-columns: 48px 1fr auto; gap: 13px; align-items: center; padding: 17px; cursor: pointer; list-style: none; }
.city-district > summary::-webkit-details-marker { display: none; }
.city-district > summary > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; background: rgba(88, 242, 207, .08); color: var(--mint, #58f2cf); font-weight: 900; }
.city-district > summary b, .city-district > summary small { display: block; }
.city-district > summary small { margin-top: 3px; color: var(--muted, #9fb0c8); }
.city-district[open] > summary { border-bottom: 1px solid rgba(148, 163, 184, .12); }
.city-district[open] > summary > i { transform: rotate(180deg); }
.city-district > div { display: grid; gap: 1px; padding: 7px; }
.city-district > div > a { display: grid; grid-template-columns: 36px 1fr auto; gap: 10px; align-items: center; padding: 11px; color: #f8fbff; text-decoration: none; border-radius: 10px; }
.city-district > div > a:hover { background: rgba(88, 242, 207, .07); }
.city-district > div > a > span { color: var(--mint, #58f2cf); text-align: center; }
.city-district > div > a b, .city-district > div > a small { display: block; }
.city-district > div > a small { color: var(--muted, #9fb0c8); }

.echo-lesson-hero { display: grid; grid-template-columns: 78px 1fr; gap: 22px; align-items: start; margin-bottom: 20px; padding: 28px; border-radius: 22px; background: linear-gradient(125deg, rgba(88, 242, 207, .15), rgba(90, 87, 210, .14)), #111d30; border: 1px solid rgba(88, 242, 207, .23); }
.echo-lesson-hero > span { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 20px; background: rgba(88, 242, 207, .1); color: var(--mint, #58f2cf); font-size: 1.5rem; font-weight: 900; }
.echo-lesson-hero small { color: var(--mint, #58f2cf); font-weight: 900; letter-spacing: .1em; }
.echo-lesson-hero h1 { margin: 6px 0; }
.echo-lesson-hero p { margin: 0; color: #c0cedd; line-height: 1.65; }
.echo-form { max-width: 860px; margin: 0 auto; }
.echo-answers { display: grid; gap: 10px; margin-bottom: 18px; }
.echo-answers label { cursor: pointer; }
.echo-answers input { position: absolute; opacity: 0; pointer-events: none; }
.echo-answers span { display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: center; padding: 14px; border-radius: 13px; border: 1px solid rgba(148, 163, 184, .17); background: rgba(8, 15, 27, .52); }
.echo-answers span b { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; color: var(--mint, #58f2cf); background: rgba(88, 242, 207, .09); }
.echo-answers input:checked + span { border-color: var(--mint, #58f2cf); background: rgba(88, 242, 207, .08); }
.echo-complete { display: grid; grid-template-columns: 52px 1fr auto; gap: 18px; align-items: center; }
.echo-complete > span { color: var(--mint, #58f2cf); font-size: 2rem; }

/* Czytelne centrum nauczyciela */
.admin-command-nav { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 22px; overflow: visible; }
.admin-command-home, .admin-command-nav details { flex: 1 1 0; min-width: 0; border-radius: 13px; background: rgba(16, 27, 45, .72); border: 1px solid rgba(148, 163, 184, .14); }
.admin-command-nav details { position: relative; }
.admin-command-home { display: flex; align-items: center; gap: 8px; min-height: 56px; padding: 13px; color: #eaf2fb; text-decoration: none; }
.admin-command-home.is-active, .admin-command-nav details:has(a.is-active) { border-color: rgba(88, 242, 207, .4); }
.admin-command-nav summary { display: grid; grid-template-columns: auto 1fr auto auto; gap: 8px; align-items: center; min-height: 56px; padding: 11px 12px; cursor: pointer; list-style: none; }
.admin-command-nav summary::-webkit-details-marker { display: none; }
.admin-command-nav summary small { color: var(--muted, #9fb0c8); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.admin-command-nav details > div { position: absolute; z-index: 8; display: grid; min-width: 230px; padding: 7px; border-radius: 12px; background: #111d30; border: 1px solid rgba(148, 163, 184, .2); box-shadow: 0 18px 40px rgba(2, 9, 20, .45); }
.admin-command-nav details > div a { padding: 10px 12px; border-radius: 8px; color: #dce8f4; text-decoration: none; }
.admin-command-nav details > div a:hover, .admin-command-nav details > div a.is-active { color: var(--mint, #58f2cf); background: rgba(88, 242, 207, .08); }
.admin-command-hero { margin-bottom: 18px; }
.admin-priority, .admin-module-center, .admin-quick-settings { margin: 24px 0; }
.admin-priority > div:last-child { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.admin-priority-card { display: grid; grid-template-columns: 46px 1fr auto; gap: 13px; align-items: center; padding: 16px; border-radius: 15px; color: #f8fbff; text-decoration: none; background: rgba(16, 27, 45, .72); border: 1px solid rgba(148, 163, 184, .14); }
.admin-priority-card > span { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 13px; color: var(--mint, #58f2cf); background: rgba(88, 242, 207, .08); font-weight: 900; }
.admin-priority-card small, .admin-priority-card b { display: block; }
.admin-priority-card small { margin-top: 3px; color: var(--muted, #9fb0c8); }
.admin-priority-card strong { display: grid; place-items: center; min-width: 34px; height: 34px; padding: 0 8px; border-radius: 999px; background: rgba(148, 163, 184, .1); }
.admin-priority-card.has-count { border-color: rgba(255, 193, 102, .35); }
.admin-priority-card.has-count strong { color: #15100a; background: #ffc166; }
.admin-pending-compact { margin: 20px 0; }
.admin-module-center > .section-heading { align-items: end; }
.admin-module-search { min-width: min(360px, 100%); }
.admin-module-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.admin-module-card { display: grid; grid-template-columns: 45px 1fr auto; gap: 13px; align-items: center; padding: 16px; min-height: 100px; border-radius: 15px; color: #f8fbff; text-decoration: none; background: rgba(16, 27, 45, .72); border: 1px solid rgba(148, 163, 184, .14); }
.admin-module-card > span { color: var(--mint, #58f2cf); font-size: 1.35rem; text-align: center; }
.admin-module-card h3 { margin: 0 0 4px; }
.admin-module-card p { margin: 0; color: var(--muted, #9fb0c8); font-size: .82rem; }
.admin-module-card:hover { transform: translateY(-2px); border-color: rgba(88, 242, 207, .35); }
.admin-toolbox { padding: 0; margin-bottom: 12px; overflow: visible; }
.admin-toolbox[open] > summary { border-bottom: 1px solid rgba(148, 163, 184, .12); }
.admin-toolbox > :not(summary) { margin: 18px; }
.admin-toolbox-grid, .heart-admin-editor { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }

.heart-admin-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; margin: 20px 0 26px; }
.heart-admin-metrics article { display: flex; align-items: center; gap: 13px; padding: 16px; border-radius: 15px; background: rgba(16, 27, 45, .72); border: 1px solid rgba(148, 163, 184, .14); }
.heart-admin-metrics article > span { color: var(--mint, #58f2cf); font-size: 1.35rem; }
.heart-admin-metrics b, .heart-admin-metrics small { display: block; }
.heart-admin-metrics b { font-size: 1.35rem; }
.heart-admin-metrics small { color: var(--muted, #9fb0c8); }
.heart-award-filters { display: grid; grid-template-columns: 1fr minmax(180px, 260px) auto; gap: 13px; align-items: end; margin-bottom: 12px; }
.heart-award-form { margin-bottom: 12px; }
.heart-admin-list { display: grid; gap: 8px; }
.heart-admin-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px; border-radius: 12px; background: rgba(8, 15, 27, .5); }
.heart-admin-row div small, .heart-admin-row div b, .heart-admin-row div span { display: block; }
.heart-admin-row div small { color: var(--mint, #58f2cf); font-size: .7rem; }
.heart-admin-row div span { color: var(--muted, #9fb0c8); margin-top: 3px; }
.heart-admin-row.is-disabled { opacity: .58; }
.portal-admin-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 12px; }
.portal-admin-card { padding: 16px; border-radius: 15px; background: rgba(16, 27, 45, .72); border: 1px solid rgba(148, 163, 184, .14); }
.portal-admin-card.is-open { border-color: rgba(88, 242, 207, .4); }
.portal-admin-card header { display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 10px; }
.portal-admin-card header > span { color: #b99cff; font-size: 1.3rem; }
.portal-admin-card h3 { margin: 2px 0; }
.portal-admin-card p { margin: 8px 0 3px; }
.portal-admin-card > small { color: var(--muted, #9fb0c8); }

@media (max-width: 1100px) {
  .admin-command-nav { display: grid; grid-template-columns: repeat(3, 1fr); }
  .admin-priority > div:last-child, .admin-module-grid, .portal-admin-grid { grid-template-columns: repeat(2, 1fr); }
  .heart-admin-metrics { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
  .heart-city-hero { align-items: stretch; flex-direction: column; }
  .heart-level { min-width: 0; }
  .heart-next-step { grid-template-columns: 52px 1fr; padding: 17px; }
  .heart-next-step > span { width: 48px; height: 48px; }
  .heart-next-step > b { grid-column: 2; white-space: normal; }
  .weekly-path__tasks, .weekly-path__rewards { grid-template-columns: 1fr; }
  .weekly-path__rewards > div { margin-bottom: 3px; }
  .heart-status { grid-template-columns: repeat(2, 1fr); }
  .heart-today > div:last-child, .city-news > div:last-child, .city-district-grid { grid-template-columns: 1fr; }
  .class-portal { grid-template-columns: 48px 1fr; }
  .class-portal__sigil { width: 46px; height: 46px; }
  .class-portal > form, .class-portal > .portal-state { grid-column: 1 / -1; }
  .admin-command-nav { grid-template-columns: repeat(2, 1fr); }
  .admin-command-nav details > div { position: static; min-width: 0; box-shadow: none; border: 0; border-top: 1px solid rgba(148, 163, 184, .12); border-radius: 0; }
  .admin-priority > div:last-child, .admin-module-grid, .heart-admin-editor, .admin-toolbox-grid, .portal-admin-grid { grid-template-columns: 1fr; }
  .heart-award-filters { grid-template-columns: 1fr; align-items: stretch; }
  .admin-module-center > .section-heading { align-items: stretch; flex-direction: column; }
  .admin-module-search { width: 100%; min-width: 0; }
}

@media (max-width: 520px) {
  .heart-status, .heart-admin-metrics, .admin-command-nav { grid-template-columns: 1fr; }
  .city-today-card { grid-template-columns: 38px 1fr; }
  .city-today-card > strong { grid-column: 2; }
  .city2-identity { grid-template-columns: 52px 1fr; align-items: start; }
  .city2-identity > span { width: 50px; height: 50px; border-radius: 15px; font-size: 1rem; }
  .weekly-path > header { grid-template-columns: 1fr; }
  .weekly-path > header > strong { width: 52px; height: 52px; }
  .weekly-path__task { grid-template-columns: 34px 1fr; }
  .weekly-path__task > strong { grid-column: 2; }
  .heart-daily-card, .seal-offers form { grid-template-columns: 30px 1fr; }
  .heart-daily-card > form, .heart-daily-card > a, .heart-daily-card > small, .seal-offers form > button { grid-column: 2; width: 100%; }
  .echo-lesson-hero { grid-template-columns: 1fr; padding: 20px; }
  .echo-complete { grid-template-columns: 42px 1fr; }
  .echo-complete .button { grid-column: 1 / -1; }
}

/* 2.2 · kampanie sezonowe i czytelne łupy */
.profile-frame--first-scribe{box-shadow:0 0 0 2px #ffc966,0 0 0 6px rgba(174,138,255,.12),0 0 48px rgba(255,201,102,.2)}
.profile-frame--arena{box-shadow:0 0 0 2px #a8b8ca,0 0 0 6px rgba(255,201,102,.1),0 0 46px rgba(101,237,202,.18)}
.profile-frame--city-heart{box-shadow:0 0 0 2px #65edca,0 0 0 6px rgba(174,138,255,.11),0 0 48px rgba(101,237,202,.2)}
.profile-extra-bg--city-dawn{background:radial-gradient(circle at 78% 18%,rgba(255,201,102,.22),transparent 24%),radial-gradient(circle at 14% 72%,rgba(101,237,202,.13),transparent 29%),linear-gradient(135deg,#171733,#13283a)!important}
.profile-crest--lesson{filter:drop-shadow(0 0 11px rgba(255,201,102,.42))}
.gold-dot{color:#ffc966!important;text-shadow:0 0 12px rgba(255,201,102,.45)}
.battle-reward-card,.expedition-result-card{margin:18px 0;padding:24px;background:linear-gradient(135deg,rgba(101,237,202,.12),rgba(255,201,102,.07)),#111d2d;border:1px solid rgba(101,237,202,.35);border-radius:18px;box-shadow:0 18px 50px rgba(0,0,0,.18)}
.battle-reward-card.is-loss{background:linear-gradient(135deg,rgba(255,110,86,.1),rgba(255,255,255,.025)),#111d2d;border-color:rgba(255,110,86,.28)}
.battle-reward-card__title,.expedition-result-card>header{display:flex;align-items:center;gap:14px;margin-bottom:18px}.battle-reward-card__title>span,.expedition-result-card>header>span{width:52px;height:52px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(101,237,202,.35);border-radius:50%;color:var(--mint);font-size:25px}.battle-reward-card small,.expedition-result-card small{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.1em}.battle-reward-card h2,.expedition-result-card h2{margin:3px 0 0;font-family:Georgia,serif}.expedition-result-card header p{margin:3px 0 0;color:var(--muted)}
.battle-reward-grid,.expedition-result-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.battle-reward-grid article,.expedition-result-grid article{display:grid;place-items:center;gap:3px;min-height:100px;padding:13px;background:rgba(4,10,20,.34);border:1px solid rgba(148,163,184,.13);border-radius:13px;text-align:center}.battle-reward-grid article>span,.expedition-result-grid article>span{color:var(--mint);font-size:21px}.battle-reward-grid b,.expedition-result-grid b{font-size:20px}.battle-loot-list{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:14px}.battle-loot-list span{padding:8px 11px;background:rgba(174,138,255,.1);border:1px solid rgba(174,138,255,.24);border-radius:999px}.battle-no-loot{color:var(--muted)}.battle-reward-card footer,.expedition-result-card footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(148,163,184,.13);color:var(--muted);font-size:11px}.battle-reward-card footer strong{color:var(--mint)}
.expedition-special-loot{display:flex;align-items:center;gap:12px;margin-top:10px;padding:12px 14px;background:rgba(174,138,255,.09);border:1px solid rgba(174,138,255,.2);border-radius:12px}.expedition-special-loot>span{font-size:24px;color:var(--violet)}.expedition-special-loot>div{display:grid;flex:1}.expedition-result-card footer a{color:var(--mint);font-weight:800}
.seasonal-campaign-strip{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:16px;margin:16px 0;padding:12px 18px;color:var(--text);background:linear-gradient(120deg,rgba(255,201,102,.14),rgba(174,138,255,.13)),#101a2a;border:1px solid rgba(255,201,102,.3);border-radius:16px;text-decoration:none;overflow:hidden}.seasonal-campaign-strip>img{width:72px;height:54px;object-fit:cover;border-radius:10px}.seasonal-campaign-strip>span{width:54px;height:54px;display:grid;place-items:center;color:#ffc966;border:1px solid rgba(255,201,102,.38);border-radius:50%;font-size:26px}.seasonal-campaign-strip small{color:#ffc966;font-size:9px;font-weight:900;letter-spacing:.12em}.seasonal-campaign-strip b{display:block;margin:3px 0;font-family:Georgia,serif;font-size:19px}.seasonal-campaign-strip p{margin:0;color:var(--muted);font-size:11px}.seasonal-campaign-strip>strong{color:var(--mint);font-size:11px}
.seasonal-library{display:grid;gap:16px}.seasonal-library-card{display:grid;grid-template-columns:minmax(150px,310px) 1fr;min-height:220px;color:var(--text);background:#111c2c;border:1px solid rgba(255,201,102,.25);border-radius:18px;overflow:hidden;text-decoration:none}.seasonal-library-card>img{width:100%;height:100%;object-fit:cover}.seasonal-library-card>span{display:grid;place-items:center;background:linear-gradient(145deg,rgba(255,201,102,.18),rgba(174,138,255,.15));color:#ffc966;font-size:56px}.seasonal-library-card>div{padding:24px}.seasonal-library-card small{color:#ffc966;font-weight:900;letter-spacing:.1em}.seasonal-library-card h2{margin:8px 0 2px;font-family:Georgia,serif;font-size:28px}.seasonal-library-card h3{margin:0;color:var(--violet);font-size:14px}.seasonal-library-card p{color:var(--muted);line-height:1.7}.seasonal-library-card b{color:var(--mint)}.seasonal-archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.seasonal-archive-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;color:var(--text);text-decoration:none}.seasonal-archive-card>span{color:var(--mint);font-size:24px}.seasonal-archive-card div{display:grid}.seasonal-archive-card small,.seasonal-archive-card p{color:var(--muted)}.seasonal-archive-card p{margin:4px 0}.seasonal-archive-card>strong{color:var(--mint);font-size:10px}
.seasonal-campaign-cover{height:min(35vw,370px);margin:0 0 18px;border:1px solid rgba(255,201,102,.2);border-radius:18px;overflow:hidden}.seasonal-campaign-cover img{width:100%;height:100%;object-fit:cover}.seasonal-hero{display:grid;grid-template-columns:1fr 240px;gap:28px;align-items:center;padding:26px;background:radial-gradient(circle at 80% 20%,rgba(255,201,102,.12),transparent 32%),#111c2c;border:1px solid rgba(255,201,102,.2);border-radius:18px}.seasonal-hero h1{margin:8px 0 2px;font-family:Georgia,serif;font-size:38px}.seasonal-hero h2{margin:0;color:#ffc966;font-size:16px}.seasonal-hero p{color:var(--muted);line-height:1.7}.seasonal-hero aside{display:grid;gap:5px;padding:20px;border:1px solid rgba(255,201,102,.24);border-radius:14px;text-align:center}.seasonal-hero aside>b{font:38px Georgia,serif;color:#ffc966}.seasonal-hero aside small{color:var(--muted);letter-spacing:.12em}.seasonal-hero aside span{font-size:10px;color:var(--muted)}
.seasonal-timeline{display:flex;gap:0;margin:24px 0;padding:0;overflow-x:auto;list-style:none}.seasonal-node{display:grid;justify-items:center;gap:6px;min-width:116px;position:relative;color:var(--muted);text-align:center}.seasonal-node:after{content:"";position:absolute;left:60%;top:16px;width:80%;height:1px;background:var(--line)}.seasonal-node:last-child:after{display:none}.seasonal-node>b{width:34px;height:34px;display:grid;place-items:center;z-index:1;background:#111c2c;border:1px solid var(--line);border-radius:50%}.seasonal-node.is-done>b{background:rgba(101,237,202,.15);border-color:var(--mint);color:var(--mint)}.seasonal-node.is-current>b,.seasonal-node.is-pending>b{border-color:#ffc966;color:#ffc966;box-shadow:0 0 20px rgba(255,201,102,.16)}.seasonal-node span{font-size:10px;font-weight:800}.seasonal-node small{font-size:8px}.seasonal-scene{max-width:940px;margin:0 auto;padding:30px}.seasonal-scene>h2{font:30px Georgia,serif}.seasonal-narrative{font-size:15px;line-height:1.85}.seasonal-stage-reward{display:flex;justify-content:space-between;gap:10px;margin:20px 0;padding:12px 14px;background:rgba(101,237,202,.07);border:1px solid rgba(101,237,202,.18);border-radius:11px}.seasonal-stage-reward small{color:var(--mint);font-weight:900}.seasonal-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.seasonal-choices button{padding:18px;color:var(--text);background:rgba(174,138,255,.08);border:1px solid rgba(174,138,255,.25);border-radius:13px;text-align:left;cursor:pointer}.seasonal-choices b,.seasonal-choices small{display:block}.seasonal-choices small{margin-top:6px;color:var(--muted)}.seasonal-question{display:grid;gap:13px}.seasonal-action-pair{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.seasonal-cost,.seasonal-feedback,.seasonal-hint{padding:12px 14px;border-radius:11px}.seasonal-feedback{background:rgba(255,201,102,.08);border:1px solid rgba(255,201,102,.18)}.seasonal-hint{margin-top:14px;background:rgba(174,138,255,.1);border:1px solid rgba(174,138,255,.25)}.seasonal-hint-form{display:flex;align-items:center;gap:12px;margin-top:16px}.seasonal-hint-form small{color:var(--muted)}.seasonal-pending,.seasonal-finale{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:22px;background:linear-gradient(120deg,rgba(255,201,102,.12),rgba(174,138,255,.08)),#111c2c;border:1px solid rgba(255,201,102,.25);border-radius:16px}.seasonal-pending>span,.seasonal-finale>span{font-size:34px;color:#ffc966}.seasonal-pending p{white-space:pre-wrap}.seasonal-pending small{color:var(--muted)}.seasonal-finale h2{margin:3px 0;font-family:Georgia,serif}.seasonal-finale p{margin:0;color:var(--muted)}.seasonal-community{display:grid;gap:12px}.seasonal-community>div:first-child{display:flex;align-items:baseline;gap:9px}.seasonal-community>div:first-child b{font-size:26px;color:var(--mint)}.seasonal-catchup{max-width:940px;margin:15px auto;color:var(--muted);font-size:10px;text-align:center}
.seasonal-review-list,.seasonal-admin-list{display:grid;gap:12px}.seasonal-review-card{display:grid;grid-template-columns:1.4fr 1fr;gap:22px}.seasonal-review-card p{padding:12px;white-space:pre-wrap;background:rgba(4,10,20,.35);border-radius:10px}.seasonal-admin-campaign{background:#111c2c;border:1px solid var(--line);border-radius:15px;overflow:hidden}.seasonal-admin-campaign>summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:18px;cursor:pointer;list-style:none}.seasonal-admin-campaign>summary>span{color:var(--mint);font-size:24px}.seasonal-admin-campaign>summary div{display:grid}.seasonal-admin-campaign>summary small,.seasonal-admin-campaign>summary p{color:var(--muted)}.seasonal-admin-campaign>summary p{margin:4px 0}.seasonal-admin-body{display:grid;gap:14px;padding:18px;border-top:1px solid var(--line)}.seasonal-admin-image{width:100%;max-height:280px;object-fit:cover;border-radius:12px}.seasonal-status-actions,.seasonal-image-form{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px}.seasonal-image-form label{flex:1;min-width:260px}.seasonal-admin-editor{display:grid;gap:14px}.seasonal-admin-editor textarea[name="stages_json"]{font-family:Consolas,monospace;font-size:11px;line-height:1.5}.seasonal-admin-help ol{display:grid;gap:8px;color:var(--muted)}
@media(max-width:850px){.battle-reward-grid,.expedition-result-grid{grid-template-columns:repeat(3,1fr)}.seasonal-hero{grid-template-columns:1fr}.seasonal-review-card{grid-template-columns:1fr}.seasonal-library-card{grid-template-columns:1fr}.seasonal-library-card>img{height:210px}.seasonal-library-card>span{min-height:160px}.seasonal-archive-grid{grid-template-columns:1fr}}
@media(max-width:620px){.battle-reward-card,.expedition-result-card{padding:17px}.battle-reward-grid,.expedition-result-grid{grid-template-columns:repeat(2,1fr)}.seasonal-campaign-strip{grid-template-columns:54px 1fr}.seasonal-campaign-strip>img{width:54px;height:54px}.seasonal-campaign-strip>strong{grid-column:2}.seasonal-hero h1{font-size:30px}.seasonal-choices{grid-template-columns:1fr}.seasonal-finale,.seasonal-pending{grid-template-columns:auto 1fr}.seasonal-finale .button{grid-column:1/-1}.seasonal-archive-card{grid-template-columns:auto 1fr}.seasonal-archive-card>strong{grid-column:2}.seasonal-stage-reward{align-items:flex-start;flex-direction:column}.seasonal-hint-form{align-items:flex-start;flex-direction:column}}

/* 2.2.1 · uczciwsza Arena */
.coin-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;border:0}.coin-choice legend{grid-column:1/-1;margin-bottom:2px;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase}.coin-choice label{cursor:pointer}.coin-choice input{position:absolute;opacity:0;pointer-events:none}.coin-choice label>span{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.025)}.coin-choice input:checked+span{color:var(--gold);border-color:rgba(255,201,102,.48);background:rgba(255,201,102,.09)}
.pvp-coin-toss{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;margin:18px 0;border-color:rgba(255,201,102,.34);background:radial-gradient(circle at 0 0,rgba(255,201,102,.12),transparent 40%),var(--panel)}.pvp-coin-toss>span{width:58px;height:58px;display:grid;place-items:center;color:var(--gold);border:1px solid rgba(255,201,102,.4);border-radius:50%;font-size:27px}.pvp-coin-toss h2,.pvp-coin-toss p{margin:4px 0}.pvp-coin-toss p{color:var(--muted)}.pvp-coin-toss.is-waiting{grid-template-columns:auto 1fr}.pvp-coin-result{display:flex;align-items:center;gap:11px;margin:12px 0;padding:11px 14px;color:#dce7ef;background:rgba(255,201,102,.06);border:1px solid rgba(255,201,102,.2);border-radius:11px}.pvp-coin-result>span{color:var(--gold);font-size:20px}.pvp-coin-result p{margin:0}.turn-status--immunity{color:#9ff1db!important;border-color:rgba(101,237,202,.35)!important;background:rgba(101,237,202,.08)!important}
.pvp-milestones{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:25px}.pvp-milestone{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:16px;opacity:.68;background:rgba(255,255,255,.02);border:1px solid var(--line);border-radius:14px}.pvp-milestone.is-complete{opacity:1;border-color:rgba(255,201,102,.35);background:linear-gradient(145deg,rgba(255,201,102,.09),rgba(101,237,202,.035))}.pvp-milestone>span{width:40px;height:40px;display:grid;place-items:center;color:var(--gold);border:1px solid currentColor;border-radius:50%;font-weight:800}.pvp-milestone h3,.pvp-milestone p{margin:3px 0}.pvp-milestone p,.pvp-milestone small,.pvp-milestone em{color:var(--muted);font-size:9px;font-style:normal}.pvp-milestone .progress{grid-column:1/-1;margin-top:8px}
@media(max-width:1050px){.pvp-milestones{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.pvp-milestones,.pvp-coin-toss{grid-template-columns:1fr}.pvp-coin-toss>button{width:100%}}

/* 2.3 · dwa tryby PvP i wyszukiwanie rywali */
.pvp-opponent-search{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:10px;margin-bottom:10px;padding:16px}.pvp-opponent-search label{margin:0}.pvp-opponent-search label>span{display:block;margin-bottom:6px;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.pvp-search-note{margin:0 0 14px;color:var(--muted);font-size:10px}.pvp-mode-choice{display:grid;gap:8px;margin:0;padding:0;border:0}.pvp-mode-choice legend{margin-bottom:2px;color:var(--muted);font-size:9px;font-weight:900;text-transform:uppercase}.pvp-mode-choice label{cursor:pointer}.pvp-mode-choice input{position:absolute;opacity:0;pointer-events:none}.pvp-mode-choice label>span{display:grid;gap:3px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.02)}.pvp-mode-choice label>span small{color:var(--muted);font-size:9px;line-height:1.45}.pvp-mode-choice input:checked+span{border-color:rgba(101,237,202,.48);background:rgba(101,237,202,.075);box-shadow:inset 3px 0 0 var(--mint)}.pvp-mode-notice{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:14px;margin:14px 0;padding:15px 17px;border:1px solid rgba(101,237,202,.3);border-radius:14px;background:linear-gradient(120deg,rgba(101,237,202,.09),rgba(174,138,255,.05)),var(--panel)}.pvp-mode-notice>span{width:44px;height:44px;display:grid;place-items:center;color:var(--mint);border:1px solid currentColor;border-radius:50%;font-size:21px}.pvp-mode-notice small,.pvp-mode-notice b{display:block}.pvp-mode-notice small{color:var(--mint);font-size:9px;font-weight:900;letter-spacing:.09em}.pvp-mode-notice p{margin:4px 0 0;color:var(--muted);font-size:10px;line-height:1.55}.pvp-mode-notice.is-open{border-color:rgba(255,201,102,.32);background:linear-gradient(120deg,rgba(255,201,102,.08),rgba(255,110,86,.04)),var(--panel)}.pvp-mode-notice.is-open>span,.pvp-mode-notice.is-open small{color:var(--gold)}
@media(max-width:720px){.pvp-opponent-search{grid-template-columns:1fr}.pvp-opponent-search .button{width:100%}.pvp-mode-notice{align-items:start}}
