/* Capital Core — Spiel & Onboarding (setzt base.css voraus). Thema: Nacht über Falkenrode. */

/* Seitengerüst */
.site{display:flex;flex-direction:column;min-height:100vh;}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem clamp(1.25rem,4vw,3rem);border-bottom:1px solid var(--line-soft);}
.site-brand{display:flex;align-items:center;gap:0.65rem;color:var(--paper);}
.site-brand:hover{text-decoration:none;}
.site-brand-name{font-family:var(--font-display);font-weight:600;font-size:1.1rem;}
.site-nav{display:flex;gap:0.6rem;align-items:center;flex-wrap:wrap;}
.game-clock{display:inline-flex;flex-direction:column;line-height:1.25;padding:0.3rem 0.7rem;border:1px solid var(--line-soft);border-radius:3px;background:var(--ink-1);}
.game-clock-date{font-family:var(--font-mono);font-size:0.76rem;letter-spacing:0.02em;color:var(--gold-bright);}
.game-clock-day{font-family:var(--font-mono);font-size:0.68rem;color:var(--paper);}
.game-clock-real{font-family:var(--font-mono);font-size:0.64rem;color:var(--faint);}
.game-clock-next{font-family:var(--font-mono);font-size:0.64rem;color:var(--muted);}
.game-body{display:flex;flex:1;width:100%;}
.player-nav-sprite{position:absolute;width:0;height:0;overflow:hidden;}
.player-nav{flex:none;width:230px;display:flex;flex-direction:column;gap:1.1rem;padding:0.9rem 0;border-right:1px solid var(--line-soft);background:rgb(15 20 32 / 55%);position:sticky;top:0;height:100vh;overflow-y:auto;transition:width 0.16s ease;}
.player-nav.is-collapsed{width:60px;}
.player-nav.is-collapsed .player-nav-toggle-text,.player-nav.is-collapsed .player-nav-text,.player-nav.is-collapsed .player-nav-label,.player-nav.is-collapsed .player-nav-badge{display:none;}
.player-nav-toggle{display:flex;align-items:center;gap:0.5rem;width:calc(100% - 1.6rem);margin:0 0.8rem;background:none;border:1px solid var(--line-soft);border-radius:3px;color:var(--faint);font-family:var(--font-mono);font-size:0.64rem;letter-spacing:0.08em;text-transform:uppercase;padding:0.4rem 0.6rem;cursor:pointer;}
.player-nav-toggle:hover{color:var(--paper);border-color:var(--line);}
.player-nav-toggle-icon{width:14px;height:14px;flex:none;stroke:currentcolor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;fill:none;transition:rotate 0.16s ease;}
.player-nav.is-collapsed .player-nav-toggle-icon{rotate:180deg;}
.player-nav-group{display:flex;flex-direction:column;}
.player-nav-label{display:block;padding:0 1rem;margin-bottom:0.35rem;font-family:var(--font-mono);font-size:0.6rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--faint);white-space:nowrap;}
.player-nav-link{display:flex;align-items:center;gap:0.65rem;padding:0.5rem 1rem;border-left:2px solid transparent;color:var(--muted);font-size:0.85rem;white-space:nowrap;}
.player-nav-link:hover{color:var(--paper);background:var(--ink-1);text-decoration:none;}
.player-nav-link.is-active{color:var(--gold-bright);border-left-color:var(--gold);background:var(--ink-1);font-weight:600;}
.player-nav-link.is-placeholder{color:var(--faint);}
.player-nav-link.is-placeholder:hover{color:var(--muted);}
.player-nav-icon{width:16px;height:16px;flex:none;stroke:currentcolor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;fill:none;}
.player-nav-badge{margin-left:auto;}
.site-main{flex:1;min-width:0;max-width:1440px;margin:0 auto;padding:2.5rem clamp(1.25rem,4vw,3rem) 4rem;}
.site-foot{display:flex;flex-wrap:wrap;gap:0.75rem 1.5rem;justify-content:space-between;padding:1.25rem clamp(1.25rem,4vw,3rem);border-top:1px solid var(--line-soft);color:var(--faint);font-size:0.75rem;font-family:var(--font-mono);letter-spacing:0.06em;}
.site-foot-links{display:flex;gap:1.25rem;}
.site-foot-links a{color:var(--faint);}

/* Landing: Nachthimmel */
.landing{overflow-x:hidden;background:linear-gradient(180deg,#04060b 0%,#0a0d14 34%,#0d1322 68%,#141c30 100%);}

/* Held der Aufbaujahre (gestaffelter Auftritt) */
.hero{padding-top:3rem;}
.hero-eyebrow{display:inline-block;animation:rise 0.6s ease both;}
.hero-title{font-size:clamp(2.4rem,6.5vw,4rem);line-height:1.06;max-width:18ch;margin-top:0.9rem;animation:rise 0.6s ease 0.12s both;}
.hero-title strong{color:var(--gold-bright);font-weight:600;}
.hero-lead{color:var(--muted);font-size:1.06rem;max-width:56ch;margin-top:1.25rem;animation:rise 0.6s ease 0.24s both;}
.hero-actions{display:flex;gap:1rem;margin-top:2.25rem;flex-wrap:wrap;align-items:center;animation:rise 0.6s ease 0.36s both;}
.hero-note{margin-top:1.1rem;display:inline-block;animation:rise 0.6s ease 0.5s both;}
.landing .btn-gold{box-shadow:0 0 26px rgb(217 164 65 / 22%);}
.landing .btn-gold:hover{box-shadow:0 0 34px rgb(242 198 109 / 32%);}

/* Horizont: Falkenrode an der Corve, gespiegelt im Fluss */
.horizon{position:relative;margin:4.5rem calc(50% - 50vw) 0;}
.horizon::before{content:"";position:absolute;left:50%;top:46%;width:min(64rem,94vw);height:24rem;transform:translate(-50%,-50%);background:radial-gradient(50% 50% at 50% 50%,rgb(217 164 65 / 13%),transparent 72%);pointer-events:none;}
.skyline{display:block;width:100%;height:auto;position:relative;}
.skyline-block{fill:#141b2b;}
.skyline-core{fill:#1d2740;}
.skyline-cap{fill:var(--gold-dim);}
.skyline-ground{fill:#243048;}
.skyline-mirror{opacity:0.09;}
.skyline-windows rect{fill:var(--gold-bright);opacity:0;animation:window-on 0.9s ease forwards;}
.skyline-windows rect:nth-child(2n){animation-delay:0.6s;}
.skyline-windows rect:nth-child(3n){animation-delay:1.2s;}
.skyline-windows rect:nth-child(5n){animation-delay:1.9s;}
.skyline-windows rect:nth-child(7n){animation-delay:2.6s;}
.skyline-windows rect:nth-child(9n){animation:window-on 0.9s ease 1.4s forwards,window-light 4.5s ease-in-out 4s infinite;}

/* Kurier-Ticker */
.ticker{display:flex;gap:1rem;align-items:baseline;margin-top:2.75rem;padding:0.7rem 0.25rem;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);}
.ticker-label{font-family:var(--font-mono);font-size:0.68rem;font-weight:500;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold);white-space:nowrap;}
.ticker-feed{flex:1;min-width:0;height:1.6em;overflow:hidden;}
.ticker-feed ul{list-style:none;margin:0;padding:0;animation:ticker-roll 18s ease-in-out infinite;}
.ticker-feed li{height:1.6em;line-height:1.6em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:0.9rem;}

/* Säulen-Karten */
.pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;margin-top:3.5rem;}
.pillars .card{position:relative;transition:transform 0.2s ease,border-color 0.2s ease;}
.pillars .card::before{content:"";position:absolute;top:-1px;left:0;width:42px;height:2px;background:var(--gold-dim);transition:width 0.3s ease;}
.pillars .card:hover{transform:translateY(-3px);border-color:var(--line);}
.pillars .card:hover::before{width:100%;}
.pillar-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;}
.pillar-num{font-family:var(--font-mono);font-size:0.7rem;font-weight:500;letter-spacing:0.22em;color:var(--gold);}
.pillar-icon{width:2.35rem;height:2.35rem;padding:0.45rem;border:1px solid var(--line-soft);border-radius:3px;color:var(--gold-bright);stroke:currentcolor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;background:rgb(217 164 65 / 6%);}
.pillar-title{margin:0.5rem 0 0.4rem;}
.pillar-text{color:var(--muted);font-size:0.88rem;margin:0;}

/* Schlussakkord */
.finale{margin-top:4.5rem;padding:3.25rem 2rem 3rem;text-align:center;border:1px solid var(--line-soft);border-top:2px solid var(--gold-dim);background:radial-gradient(85% 130% at 50% 115%,rgb(217 164 65 / 11%),transparent 70%);}
.finale-icon{width:2.75rem;height:2.75rem;margin-bottom:0.9rem;padding:0.55rem;border:1px solid var(--line);border-radius:3px;color:var(--gold-bright);stroke:currentcolor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;background:rgb(217 164 65 / 7%);}
.finale-title{font-size:clamp(1.8rem,4.5vw,2.6rem);margin-top:0.75rem;}
.finale-text{color:var(--muted);max-width:44ch;margin:0.9rem auto 1.75rem;}

/* Formblatt (Onboarding) */
.sheet{max-width:560px;margin:0 auto;background:var(--ink-1);border:1px solid var(--line-soft);border-top:2px solid var(--gold-dim);padding:2.25rem;animation:rise 0.5s ease both;}
.sheet-head{margin-bottom:1.6rem;padding-bottom:1.1rem;border-bottom:1px dashed var(--line);display:flex;flex-direction:column;gap:0.5rem;}
.sheet-title{font-size:1.6rem;}
.sheet-lead{color:var(--muted);font-size:0.9rem;margin:0;}
.sheet-foot{margin-top:1.6rem;padding-top:1.1rem;border-top:1px dashed var(--line);display:flex;flex-wrap:wrap;gap:0.5rem 1.5rem;justify-content:space-between;font-size:0.85rem;color:var(--muted);}
.sheet .form{max-width:none;}

/* Code-Eingabe (zweiter Schlüssel) */
.code-input{font-family:var(--font-mono);font-size:1.55rem;letter-spacing:0.45em;text-align:center;}

/* Bewilligt-Stempel */
.stamp{display:inline-block;font-family:var(--font-mono);font-weight:500;font-size:0.85rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--ok);border:2px solid var(--ok);border-radius:3px;padding:0.35rem 0.9rem 0.35rem 1.2rem;transform:rotate(-4deg);margin-bottom:1rem;}
.stamp-err{color:var(--err);border-color:var(--err);}

/* Rechtstexte */
.prose{max-width:70ch;color:var(--muted);}
.prose h2{margin:1.75rem 0 0.5rem;color:var(--paper);}

/* Firma und Arbeitsmarkt */
.sheet-wide{max-width:680px;}
.block-line{display:block;}
.company-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--ink-1);border:1px solid var(--line-soft);padding:1.25rem;margin-bottom:1.25rem;}
.company-ledger{display:flex;flex-direction:column;gap:0.1rem;align-items:flex-end;color:var(--muted);font-size:0.85rem;}
.company-ledger strong{font-family:var(--font-display);font-size:1.35rem;color:var(--gold-bright);}
.founding-note{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:center;border:1px dashed var(--line);padding:0.85rem 1rem;color:var(--muted);}
.founding-note strong{color:var(--paper);font-family:var(--font-display);font-size:1.2rem;}
.table-wrap{overflow-x:auto;border:1px solid var(--line-soft);background:var(--ink-1);}
.data-table{width:100%;border-collapse:collapse;min-width:860px;}
.labor-table{min-width:1120px;}
.data-table th,.data-table td{padding:0.8rem 1rem;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:middle;}
.data-table th{font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--faint);}
.data-table tr:last-child td{border-bottom:0;}
.table-sub{display:block;color:var(--faint);font-size:0.78rem;overflow-wrap:anywhere;}
.skill-chip{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:0.12rem 0.45rem;margin:0.1rem;color:var(--muted);font-size:0.75rem;white-space:nowrap;}
.market-note{margin-top:1rem;}
.market-filter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.9rem 1rem;margin-bottom:1.25rem;padding:1.15rem;border:1px solid var(--line-soft);background:var(--ink-1);align-items:end;}
.market-filter-actions{display:flex;gap:0.5rem;align-items:flex-end;flex-wrap:wrap;}
.field-span{grid-column:span 2;}
.field-pair{display:flex;gap:0.5rem;}
.field-pair .field-input{width:100%;}
.empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:0.9rem;min-height:220px;border:1px dashed var(--line);background:var(--ink-1);padding:2rem;}
.empty-state h2{font-size:1.45rem;max-width:34ch;}

/* Firmenliste & Gründerschuld */
.company-list{display:flex;flex-direction:column;gap:1rem;}
.company-card{display:flex;flex-direction:column;gap:1rem;background:var(--ink-1);border:1px solid var(--line-soft);padding:1.25rem;}
.company-card .company-summary{margin:0;padding:0;border:0;background:none;}
.debt-open{color:var(--warn);}
.debt-clear{color:var(--ok);}
.repay-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:0.85rem;border-top:1px dashed var(--line);padding-top:1rem;}
.repay-form .field{flex:1;min-width:12rem;}

/* Standorte: Unternehmen, Standort-Karten und Gebäudeauswahl */
.company-location-list{display:flex;flex-direction:column;gap:2.25rem;}
.company-location-section{display:flex;flex-direction:column;gap:1.15rem;padding-bottom:2.25rem;border-bottom:1px solid var(--line-soft);}
.company-location-section:last-child{padding-bottom:0;border-bottom:0;}
.company-location-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;}
.company-location-stats{display:grid;grid-template-columns:repeat(3,minmax(8rem,1fr));gap:0.55rem;min-width:min(100%,34rem);}
.company-location-stats span{display:flex;flex-direction:column;gap:0.15rem;border:1px solid var(--line-soft);background:var(--ink-1);padding:0.7rem 0.8rem;color:var(--muted);font-size:0.78rem;}
.company-location-stats strong{font-family:var(--font-display);font-size:1.05rem;line-height:1.2;color:var(--gold-bright);}
.company-operation{display:flex;align-items:center;justify-content:space-between;gap:1rem;border:1px solid var(--line-soft);background:var(--ink-1);padding:1rem;}
.company-operation h3{font-size:1.05rem;margin-top:0.25rem;}
.location-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin:0;}
.location-card{display:flex;flex-direction:column;gap:0.75rem;background:var(--ink-1);border:1px solid var(--line-soft);padding:1.15rem;}
.location-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0.75rem;}
.location-name{display:flex;align-items:center;gap:0.65rem;flex-wrap:wrap;}
.location-name h3{font-size:1.1rem;}
.location-chip{display:inline-flex;font-family:var(--font-mono);font-size:0.64rem;letter-spacing:0.08em;text-transform:uppercase;padding:0.15rem 0.5rem;border-radius:2px;border:1px solid var(--line);color:var(--muted);white-space:nowrap;}
.location-chip.is-owned{color:var(--ok);border-color:var(--ok);}
.location-company{font-family:var(--font-mono);font-size:0.66rem;color:var(--faint);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.location-building{margin:0;color:var(--muted);font-size:0.85rem;}
.location-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0.5rem;margin:0;}
.location-facts div{border:1px solid var(--line-soft);background:var(--ink-2);padding:0.55rem 0.65rem;}
.location-facts dt{font-family:var(--font-mono);font-size:0.62rem;letter-spacing:0.16em;text-transform:uppercase;color:var(--faint);}
.location-facts dd{margin:0.18rem 0 0;color:var(--paper);font-size:0.9rem;}
.location-staff{margin:0;}
.location-actions{display:flex;flex-wrap:wrap;gap:0.6rem;align-items:center;border-top:1px dashed var(--line);padding-top:0.85rem;}
.location-rename{display:flex;gap:0.4rem;align-items:center;flex:1;min-width:14rem;}
.location-rename .field-input{flex:1;}
.location-empty{display:flex;flex-direction:column;align-items:flex-start;gap:0.75rem;border:1px dashed var(--line);background:var(--ink-1);padding:1.5rem;}
.location-empty h3{font-size:1.15rem;}
.location-add{border:1px solid var(--line-soft);background:var(--ink-1);}
.location-add[open]{border-color:var(--line);}
.location-add-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0.85rem 1rem;color:var(--gold-bright);font-weight:600;cursor:pointer;list-style:none;}
.location-add-summary::after{content:"+";display:inline-flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;border:1px solid var(--line);border-radius:3px;color:var(--paper);}
.location-add[open] .location-add-summary::after{content:"-";}
.location-add-summary::-webkit-details-marker{display:none;}
.location-add-panel{display:flex;flex-direction:column;gap:1rem;border-top:1px dashed var(--line);padding:1rem;}
.location-add-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;}
.location-building-table{min-width:820px;}

/* Arbeitsmarkt: Ladezustand, Zähler und Paginierung */
.market[data-market-loading]{opacity:0.55;transition:opacity 0.15s ease;}
.market-results{margin-top:0.25rem;}
.market-count{margin:0 0 0.85rem;font-family:var(--font-mono);font-size:0.8rem;letter-spacing:0.04em;color:var(--muted);}
.market-pager{display:flex;flex-wrap:wrap;align-items:center;gap:0.35rem;margin-top:1.25rem;}
.market-pager-link{display:inline-flex;justify-content:center;min-width:2.1rem;border:1px solid var(--line-soft);border-radius:3px;padding:0.3rem 0.55rem;color:var(--muted);font-family:var(--font-mono);font-size:0.82rem;}
.market-pager-link:hover{color:var(--paper);border-color:var(--line);text-decoration:none;}
.market-pager-link.is-active{color:#1c1608;background:var(--gold);border-color:var(--gold);}
.market-pager-gap{padding:0 0.2rem;color:var(--faint);}

/* Finanzen */
.amount-in{color:var(--ok);}
.amount-out{color:var(--err);}

/* Angebote */
.impact-meter{width:100%;max-width:12rem;height:0.55rem;accent-color:var(--gold);}
.impact-meter.is-good{accent-color:var(--ok);}
.impact-meter.is-bad{accent-color:var(--err);}
.offer-impact{display:flex;flex-direction:column;gap:0.35rem;min-width:10rem;}
.offer-impact-line{display:flex;align-items:center;gap:0.55rem;}
.offer-impact-line strong{font-family:var(--font-mono);font-size:0.82rem;white-space:nowrap;}

/* Dashboard */
.dashboard-empty{margin-top:1.5rem;}
.dashboard-bridge{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0.75rem;}
.bridge-row{display:flex;flex-direction:column;gap:0.25rem;border:1px solid var(--line-soft);background:var(--ink-1);padding:1rem;}
.bridge-row span{font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--faint);}
.bridge-row strong{font-family:var(--font-display);font-size:1.3rem;}
.bridge-row.is-total{border-color:var(--gold-dim);}
.dashboard-delta{margin-top:0.9rem;color:var(--muted);}
.dashboard-columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:1.25rem;align-items:start;}
.dashboard-panel{border:1px solid var(--line-soft);background:var(--ink-1);padding:1.1rem;}
.dashboard-table{min-width:620px;}
.dashboard-table .morale-meter{max-width:10rem;}
.dashboard-list{list-style:none;display:flex;flex-direction:column;gap:0.8rem;margin:0;padding:0;}
.dashboard-list li{display:flex;flex-direction:column;gap:0.1rem;color:var(--muted);}
.dashboard-list strong{color:var(--paper);}
.decision-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;}
.decision-card{display:flex;flex-direction:column;gap:0.8rem;align-items:flex-start;border:1px solid var(--line-soft);background:var(--ink-1);padding:1.1rem;}
.decision-card h3{font-size:1.05rem;}

/* Tabellen-Aktionen (Personal, Arbeitsmarkt) */
.table-action{text-align:right;white-space:nowrap;}

/* Personal: Mitarbeiter-Karten und Moral */
.employee-list{display:flex;flex-direction:column;gap:1rem;}
.employee-card{display:flex;flex-direction:column;gap:0.85rem;background:var(--ink-1);border:1px solid var(--line-soft);padding:1.25rem;}
.employee-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0.75rem;}
.employee-salary{text-align:right;}
.employee-salary strong{display:block;font-family:var(--font-display);font-size:1.25rem;color:var(--gold-bright);}
.morale{display:flex;flex-direction:column;gap:0.35rem;}
.morale-meter{width:100%;max-width:22rem;height:0.55rem;accent-color:var(--gold);}
.morale-meter.is-low{accent-color:var(--err);}
.morale-meter.is-mid{accent-color:var(--warn);}
.morale-meter.is-high{accent-color:var(--ok);}
.morale-text{font-size:0.8rem;color:var(--muted);}
.employee-skills{display:flex;flex-wrap:wrap;gap:0.25rem;}
.employee-actions{display:flex;flex-wrap:wrap;gap:0.6rem;align-items:flex-end;border-top:1px dashed var(--line);padding-top:0.85rem;}
.inline-form{display:flex;gap:0.4rem;align-items:center;}
.inline-input{width:8rem;}

/* Dienstplan */
.location-tabs{display:flex;flex-wrap:wrap;gap:0.4rem;margin-bottom:1.25rem;}
.location-tab{display:inline-flex;border:1px solid var(--line-soft);border-radius:3px;padding:0.4rem 0.85rem;color:var(--muted);font-size:0.85rem;}
.location-tab:hover{color:var(--paper);border-color:var(--line);text-decoration:none;}
.location-tab.is-active{color:#1c1608;background:var(--gold);border-color:var(--gold);}
.coverage{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem;margin-bottom:1.25rem;padding:0.85rem 1rem;border:1px solid var(--line-soft);background:var(--ink-1);}
.coverage-label{margin-right:0.5rem;font-family:var(--font-mono);font-size:0.68rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--faint);}
.coverage-day{display:inline-flex;flex-direction:column;align-items:center;min-width:2.4rem;padding:0.2rem 0.4rem;border:1px solid var(--line-soft);border-radius:3px;}
.coverage-day strong{font-family:var(--font-mono);font-size:0.7rem;color:var(--muted);}
.coverage-day span{font-family:var(--font-display);color:var(--gold-bright);}
.schedule-form{display:flex;flex-direction:column;gap:0.85rem;}
.schedule-days{display:flex;flex-wrap:wrap;gap:0.4rem;}
.day-check{display:inline-flex;align-items:center;gap:0.35rem;padding:0.3rem 0.6rem;border:1px solid var(--line);border-radius:3px;font-size:0.82rem;color:var(--muted);}
.day-check input{accent-color:var(--gold);}

/* Bewegung */
@keyframes window-on{to{opacity:1;}}
@keyframes ticker-roll{0%,20%{transform:translateY(0);}25%,45%{transform:translateY(-1.6em);}50%,70%{transform:translateY(-3.2em);}75%,95%{transform:translateY(-4.8em);}100%{transform:translateY(-6.4em);}}

/* Dienstplan — Stundenboard */
.roster{display:flex;flex-direction:column;gap:1.1rem;margin-top:1.5rem;}
.roster-card{min-width:0;border:1px solid var(--line-soft);border-left:3px solid var(--shift-accent);background:var(--ink-1);padding:0.9rem 1.1rem 1.1rem;}
.roster-card.is-color-0{--shift-accent:#d9a441;}
.roster-card.is-color-1{--shift-accent:#5bb5a2;}
.roster-card.is-color-2{--shift-accent:#d98b73;}
.roster-card.is-color-3{--shift-accent:#8f8ad1;}
.roster-card.is-color-4{--shift-accent:#7faf6b;}
.roster-card.is-color-5{--shift-accent:#c98bb0;}
.roster-legend{display:flex;align-items:center;gap:0.55rem;flex-wrap:wrap;width:100%;padding:0;}
.roster-dot{flex:none;width:0.7rem;height:0.7rem;border-radius:50%;background:var(--shift-accent);}
.roster-name{font-family:var(--font-display);font-weight:600;color:var(--paper);}
.roster-role{font-size:0.8rem;color:var(--muted);}
.roster-pref{font-family:var(--font-mono);font-size:0.74rem;color:var(--muted);}
.roster-pref strong{color:var(--paper);font-weight:600;}
.roster-shift{font-family:var(--font-mono);font-size:0.66rem;letter-spacing:0.04em;padding:0.1rem 0.4rem;border:1px solid var(--line);border-radius:2px;color:var(--muted);}
.roster-hours{margin-left:auto;font-family:var(--font-mono);font-size:0.8rem;color:var(--muted);}
.roster-hours [data-shift-total]{color:var(--paper);}
.roster-hours [data-shift-total].is-under{color:var(--gold-bright);}
.roster-hours [data-shift-total].is-over{color:#d98b73;}
.btn-small{min-height:auto;padding:0.2rem 0.55rem;font-size:0.72rem;}
.shift-grid{margin-top:0.8rem;overflow-x:auto;}
.shift-zones,.shift-ruler,.shift-lane{display:grid;grid-template-columns:2.4rem repeat(24,minmax(0.5rem,1fr));align-items:center;min-width:34rem;}
.shift-zones{height:1.05rem;margin-bottom:0.35rem;}
.shift-zone{grid-column:span 6;height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:0.6rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--faint);border-radius:2px;}
.shift-zone.is-zone-early{background:rgb(217 164 65 / 8%);}
.shift-zone.is-zone-midday{background:rgb(217 164 65 / 16%);}
.shift-zone.is-zone-late{background:rgb(255 255 255 / 3%);}
.shift-ruler{height:1rem;margin-bottom:0.2rem;}
.shift-tick{font-family:var(--font-mono);font-size:0.62rem;color:var(--faint);transform:translateX(-1px);}
.shift-lane{margin-bottom:2px;}
.shift-daycol{font-family:var(--font-mono);font-size:0.72rem;color:var(--muted);}
.shift-hour{position:relative;display:block;height:1.5rem;border-left:1px solid var(--line-soft);cursor:pointer;touch-action:none;}
.shift-hour:nth-child(6n+2){border-left-color:var(--line);}
.shift-hour span{display:block;height:100%;background:var(--ink-0);transition:background 0.08s ease;}
.shift-hour input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;}
.shift-hour input:checked + span{background:var(--shift-accent);}
.shift-hour input:focus-visible + span{outline:2px solid var(--gold-bright);outline-offset:-2px;}
.shift-hour:hover span{background:rgb(217 164 65 / 20%);}
.shift-hour input:checked:hover + span{background:var(--shift-accent);}
.occupancy-card{margin-top:1.5rem;}
.occupancy-card h2{margin:0 0 0.2rem;font-size:1rem;}
.occupancy-cell{display:flex;align-items:center;justify-content:center;height:1.4rem;border-left:1px solid var(--line-soft);font-family:var(--font-mono);font-size:0.66rem;color:var(--muted);}
.occupancy-cell:nth-child(6n+2){border-left-color:var(--line);}
.occupancy-cell.is-over{background:rgb(217 112 95 / 16%);color:#d98b73;font-weight:600;}
.roster-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:0.25rem;}

/* Breakpoints (gesammelt am Ende) */
@media (width <= 960px){.player-nav{width:196px;}.player-nav.is-collapsed{width:56px;}.market-filter{grid-template-columns:repeat(2,minmax(0,1fr));}.dashboard-columns{grid-template-columns:1fr;}}
@media (width <= 720px){.hero{padding-top:1.5rem;}.sheet{padding:1.6rem 1.25rem;}.site-header{flex-direction:column;align-items:flex-start;}.game-body{flex-direction:column;}.player-nav{width:100%;flex-direction:column;gap:0.6rem;border-right:none;border-bottom:1px solid var(--line-soft);padding:0.7rem 0.9rem;position:static;height:auto;overflow-y:visible;}.player-nav-toggle{display:none;}.player-nav-group{flex-flow:row wrap;align-items:center;gap:0.4rem;}.player-nav-label{padding:0;min-width:6rem;margin-bottom:0;}.ticker{flex-direction:column;gap:0.35rem;}.company-summary{align-items:stretch;flex-direction:column;}.company-ledger{align-items:flex-start;}.company-location-head{flex-direction:column;}.company-location-stats{grid-template-columns:1fr;min-width:0;width:100%;}.company-operation{align-items:stretch;flex-direction:column;}.location-facts{grid-template-columns:1fr;}.location-actions{align-items:stretch;}.location-rename{min-width:0;flex-direction:column;align-items:stretch;}.location-add-head{align-items:flex-start;flex-direction:column;}.founding-note{grid-template-columns:1fr;}.data-table{min-width:760px;}.labor-table{min-width:1120px;}.market-filter{grid-template-columns:1fr;}.empty-state{padding:1.5rem 1.2rem;}}
@media (prefers-reduced-motion: reduce){.hero-eyebrow{animation:none;}.hero-title{animation:none;}.hero-lead{animation:none;}.hero-actions{animation:none;}.hero-note{animation:none;}.sheet{animation:none;}.skyline-windows rect{animation:none;opacity:1;}.ticker-feed ul{animation:none;}.pillars .card{transition:none;}.shift-hour span{transition:none;}}
