:root{
  --bg:#0a0d13; --panel:#10151f; --panel2:#151b27; --panel3:#1a2130; --line:#273244;
  --text:#f3ead7; --soft:#aab4c3; --faint:#718096; --amber:#f0b65d; --amber2:#d98d38;
  --green:#69cc8a; --red:#ee7474; --blue:#6fb7ff; --pink:#d86f95; --purple:#9a79dd;
  --shadow:0 18px 50px rgba(0,0,0,.38);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 52% -10%,#1c2435 0%,#0f141e 35%,#090c11 75%);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}button,input,select{font:inherit}.hidden{display:none!important}.hidden-app{visibility:hidden;height:0;overflow:hidden}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#0e131d,#0a0e15);border-right:1px solid #202a38;padding:20px 14px;display:flex;flex-direction:column;gap:14px;position:sticky;top:0;height:100vh}.brand{padding:4px 8px 15px;border-bottom:1px solid #202a38}.brand-main{font-family:Georgia,serif;font-size:38px;line-height:.88;color:#f3c987;font-weight:800;letter-spacing:-1px;text-shadow:2px 2px 0 #4a2c18}.brand-sub{margin-top:9px;color:#d5b98b;font-size:11px;letter-spacing:1.45px;text-transform:uppercase}.side-status{display:grid;grid-template-columns:1fr 1fr;gap:8px}.side-status>div{background:#141b27;border:1px solid #263244;border-radius:12px;padding:9px 10px}.side-status span{display:block;color:#8e9aab;text-transform:uppercase;font-size:10px;letter-spacing:1px}.side-status strong{font-size:18px;margin-top:2px;display:block}.nav{display:flex;flex-direction:column;gap:5px}.nav-btn{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:center;text-align:left;border:1px solid transparent;background:transparent;color:#d6deea;padding:10px 11px;border-radius:11px;cursor:pointer}.nav-btn:hover{background:#151d2a;border-color:#29384c}.nav-btn.active{background:linear-gradient(90deg,rgba(240,182,93,.19),rgba(240,182,93,.07));border-color:#725026;color:#ffe0a8}.side-objective{background:#141a24;border:1px solid #283446;border-radius:14px;padding:12px}.micro{font-size:10px;text-transform:uppercase;letter-spacing:1.3px;color:#e6b66c}.side-objective strong{display:block;margin-top:5px;font-family:Georgia,serif;font-size:18px}.side-objective p{margin:7px 0 0;color:#aab4c3;font-size:12px;line-height:1.45}.side-poster{margin-top:auto;border:1px solid #6f4825;background:#17120f;border-radius:16px;overflow:hidden}.poster-sky{height:84px;background:
linear-gradient(180deg,rgba(8,12,22,.15),rgba(8,12,22,.65)),
linear-gradient(160deg,transparent 55%,#1e2635 56% 66%,transparent 67%),
linear-gradient(20deg,transparent 58%,#273149 59% 70%,transparent 71%),
radial-gradient(circle at 65% 62%,#efac51 0 2px,transparent 3px),
radial-gradient(circle at 49% 70%,#f6bd68 0 2px,transparent 3px),
linear-gradient(180deg,#19223a,#20161b)}.poster-copy{padding:12px}.poster-copy strong{display:block;font-family:Georgia,serif;font-size:23px;line-height:1.05;margin:6px 0}.poster-copy span{font-size:12px;color:#d4c4af;line-height:1.4}.side-footer{font-size:10px;color:#6d7888;text-align:center}.main{min-width:0;padding:12px 16px 28px}.topbar{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;align-items:stretch;position:sticky;top:0;z-index:20;background:rgba(10,13,19,.92);backdrop-filter:blur(12px);padding:0 0 12px}.top-date,.top-stats,.top-actions{background:#101722;border:1px solid #253246;border-radius:12px}.top-date{padding:8px 13px;min-width:145px}.top-date span{display:block;color:#d7b371;font-size:12px}.top-date strong{display:block;margin-top:2px;font-size:15px}.night-button{border:1px solid #865c29;border-radius:12px;background:linear-gradient(180deg,#f4c66f,#e29b42);color:#241607;font-weight:800;padding:0 20px;cursor:pointer;box-shadow:inset 0 1px rgba(255,255,255,.4)}.night-button:hover{filter:brightness(1.05)}.top-stats{display:grid;grid-template-columns:repeat(5,minmax(92px,1fr));overflow:hidden}.top-stat{padding:8px 12px;border-right:1px solid #283446}.top-stat:last-child{border-right:none}.top-stat span{display:block;color:#9ba8b8;font-size:10px;text-transform:uppercase;letter-spacing:.7px}.top-stat strong{display:block;margin-top:2px;font-size:16px}.top-stat .good{color:#76dc99}.top-stat .warn{color:#f2bd6e}.top-actions{display:flex;align-items:center;padding:6px}.icon-btn{width:38px;height:38px;border-radius:9px;border:1px solid #2b394d;background:#151d29;color:#dbe3ed;cursor:pointer}.icon-btn+ .icon-btn{margin-left:6px}.view{display:none}.view.active{display:block}.panel{background:linear-gradient(180deg,#111722,#0e131d);border:1px solid #263244;border-radius:16px;box-shadow:var(--shadow)}.section{padding:15px}.section+.section{margin-top:12px}.section-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}.kicker{color:#e8b867;text-transform:uppercase;letter-spacing:1.2px;font-size:10px}.section-head h2,.section-head h1{font-family:Georgia,serif;margin:2px 0 0}.section-head h1{font-size:34px}.section-head h2{font-size:26px}.section-head p{margin:6px 0 0;color:#9eabba;font-size:13px;line-height:1.5;max-width:780px}.btn{border:none;border-radius:10px;padding:10px 13px;cursor:pointer}.btn.primary{background:linear-gradient(180deg,#f3c36d,#dd9940);color:#231608;font-weight:800}.btn.secondary{background:#171f2c;color:#e7edf4;border:1px solid #2d3a4f}.btn.danger{background:#3a1e24;color:#ffd7d7;border:1px solid #69343e}.btn.small{padding:7px 10px;font-size:12px}.btn.wide{width:100%;margin-top:12px}.btn:disabled{opacity:.45;cursor:not-allowed}.hero-start{padding:18px;display:grid;grid-template-columns:1.35fr .65fr;gap:16px;background:
radial-gradient(circle at 82% 10%,rgba(216,111,149,.15),transparent 28%),
radial-gradient(circle at 18% 20%,rgba(240,182,93,.12),transparent 28%),
linear-gradient(180deg,#121927,#0e131c)}.hero-start h1{font-family:Georgia,serif;font-size:46px;line-height:.95;margin:0}.hero-start .lead{color:#d6deea;line-height:1.55;margin:12px 0 0;max-width:820px}.goal-card{background:#151c29;border:1px solid #2a384d;border-radius:14px;padding:14px}.goal-card h3{font-family:Georgia,serif;margin:4px 0 8px;font-size:23px}.goal-card p{color:#aab5c4;margin:0 0 12px;line-height:1.45}.goal-row{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:12px;margin:8px 0 4px}.progress{height:8px;border-radius:999px;background:#0b0f16;border:1px solid #202b3b;overflow:hidden}.progress>span{display:block;height:100%;background:linear-gradient(90deg,#f0b65d,#d76a84)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}.step{background:#131a26;border:1px solid #273548;border-radius:14px;padding:13px;position:relative}.step-no{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#3a2b1b;color:#ffd691;border:1px solid #6d4b27;font-weight:800}.step h3{font-family:Georgia,serif;margin:10px 0 6px}.step p{color:#9eabba;font-size:13px;line-height:1.45;min-height:56px}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:12px}.map-card{padding:12px}.city-map svg{display:block;width:100%;height:auto}.district-shape{cursor:pointer}.district-shape:hover path{filter:brightness(1.15)}.district-shape.active path{stroke:#ffd37f!important;stroke-width:3}.overview-side{display:flex;flex-direction:column;gap:12px}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.metric{background:#141c28;border:1px solid #29374a;border-radius:12px;padding:11px}.metric span{color:#8f9dad;font-size:10px;text-transform:uppercase}.metric strong{display:block;font-size:22px;margin-top:3px}.metric small{color:#7d8999}.card-list{display:flex;flex-direction:column;gap:9px}.mini-card{background:#141b27;border:1px solid #29364a;border-radius:12px;padding:10px}.mini-card-head{display:flex;justify-content:space-between;gap:10px}.mini-card h3{font-family:Georgia,serif;margin:0;font-size:18px}.mini-card p{color:#9eabba;font-size:12px;margin:5px 0 0;line-height:1.4}.badge-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.badge{font-size:10px;padding:4px 7px;border-radius:999px;background:#1d2735;border:1px solid #314056;color:#dce4ee}.badge.gold{background:#33291d;border-color:#5b452b;color:#ffd691}.badge.green{background:#172a20;border-color:#2c4e39;color:#a8e6bd}.badge.red{background:#311d22;border-color:#5c3038;color:#ffc1c1}.venue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.venue-card{display:grid;grid-template-columns:190px 1fr;gap:12px;background:#131a25;border:1px solid #283548;border-radius:14px;padding:10px}.venue-image{aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#0a0e14}.venue-image img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.venue-card h3{font-family:Georgia,serif;font-size:22px;margin:0}.venue-meta{color:#92a0b1;font-size:12px;margin:3px 0 8px}.venue-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:8px 0}.num{background:#0f151e;border:1px solid #263344;border-radius:8px;padding:7px}.num span{display:block;font-size:9px;color:#8390a0;text-transform:uppercase}.num strong{display:block;margin-top:2px;font-size:14px}.actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.event-card{display:grid;grid-template-columns:170px 1fr;gap:12px;background:#131a25;border:1px solid #283548;border-radius:14px;padding:10px}.event-image{aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#0a0e14}.event-image img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.event-card h3{font-family:Georgia,serif;font-size:20px;margin:0}.event-card p{color:#9ca9b9;font-size:12px;line-height:1.45;margin:5px 0}.people-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.person-card{background:#131a25;border:1px solid #283548;border-radius:14px;overflow:hidden}.person-image{aspect-ratio:2/3;background:#0a0e14;overflow:hidden}.person-image img{width:100%;height:100%;object-fit:cover;object-position:center 22%;image-rendering:pixelated}.person-body{padding:10px}.person-card h3{font-family:Georgia,serif;font-size:20px;margin:0}.person-role{color:#98a6b6;font-size:12px;margin:2px 0 7px}.person-quote{font-size:12px;line-height:1.45;color:#d6dee8;min-height:52px}.person-cost{display:flex;justify-content:space-between;gap:8px;margin:8px 0;font-size:11px;color:#91a0b0}.assignment{margin-top:8px}.assignment label{display:block;color:#8d9aaa;font-size:10px;margin-bottom:4px}.assignment select{width:100%;background:#0f151e;color:#e4ebf4;border:1px solid #2a384c;border-radius:8px;padding:7px}.finance-layout{display:grid;grid-template-columns:1fr 1fr;gap:12px}.finance-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.finance-box{background:#141b27;border:1px solid #29374a;border-radius:12px;padding:11px}.finance-box span{color:#8f9dad;font-size:10px;text-transform:uppercase}.finance-box strong{display:block;font-size:23px;margin-top:3px}.positive{color:#6fd593!important}.negative{color:#f07b7b!important}.history-table{width:100%;border-collapse:collapse;font-size:12px}.history-table th,.history-table td{padding:8px 7px;border-bottom:1px solid #243044;text-align:right}.history-table th:first-child,.history-table td:first-child{text-align:left}.history-table th{color:#8d9aaa;font-weight:500;text-transform:uppercase;font-size:9px}.tier-list{display:flex;flex-direction:column;gap:10px}.tier-card{background:#141b27;border:1px solid #29374a;border-radius:12px;padding:12px}.tier-card.current{border-color:#7a5528;box-shadow:inset 0 0 0 1px rgba(240,182,93,.16)}.tier-card h3{font-family:Georgia,serif;margin:0}.tier-card p{color:#99a7b7;font-size:12px;line-height:1.45}.unlock-list{display:flex;gap:6px;flex-wrap:wrap}.journal-list{display:flex;flex-direction:column;gap:8px}.journal-entry{display:grid;grid-template-columns:90px 1fr;gap:10px;background:#131a25;border:1px solid #283548;border-radius:10px;padding:9px}.journal-entry time{font-size:10px;color:#8290a0;text-transform:uppercase}.journal-entry p{margin:0;font-size:12px;color:#d9e1ea;line-height:1.45}.gate-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(circle at 50% 10%,#243047 0,#111722 40%,#080b10 100%)}.gate-card{width:min(460px,100%);background:#111823;border:1px solid #2b3a4f;border-radius:18px;padding:24px;box-shadow:var(--shadow)}.gate-card h1{font-family:Georgia,serif;color:#f3c987;font-size:40px;line-height:.92;margin:10px 0}.gate-card p{color:#aeb8c6;line-height:1.5}.gate-card label{font-size:11px;color:#d8e0e9}.gate-card input{width:100%;margin-top:6px;background:#0c1118;color:#fff;border:1px solid #2a394e;border-radius:10px;padding:12px}.gate-message{color:#8895a5;font-size:11px;margin-top:8px}.modal{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:18px}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.68);backdrop-filter:blur(3px)}.modal-card{position:relative;z-index:2;background:#111722;border:1px solid #2c3a4d;border-radius:16px;width:min(960px,100%);max-height:92vh;overflow:auto;padding:16px;box-shadow:var(--shadow)}.modal-close{position:absolute;right:10px;top:10px;width:34px;height:34px;border-radius:50%;border:1px solid #33445b;background:#151d29;color:#fff;cursor:pointer}.result-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.result-box{background:#0f151f;border:1px solid #273448;border-radius:10px;padding:9px}.result-box span{display:block;font-size:9px;text-transform:uppercase;color:#8290a0}.result-box strong{display:block;margin-top:3px;font-size:18px}.result-venues{display:grid;grid-template-columns:1fr 1fr;gap:10px}.result-list{background:#0f151f;border:1px solid #273448;border-radius:10px;padding:10px}.result-list h4{font-family:Georgia,serif;margin:0 0 7px}.result-list ul{margin:0;padding-left:18px;color:#aeb9c7;font-size:12px;line-height:1.5}.toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:90;background:#101722;border:1px solid #304058;color:#f2f6fa;border-radius:10px;padding:10px 14px;box-shadow:var(--shadow);font-size:12px}
@media(max-width:1280px){.people-grid{grid-template-columns:repeat(3,1fr)}.venue-grid,.event-grid{grid-template-columns:1fr}.top-stats{grid-template-columns:repeat(3,minmax(90px,1fr))}.top-stat:nth-child(n+4){display:none}.dashboard-grid,.hero-start,.finance-layout{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:960px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto;border-right:none;border-bottom:1px solid #202a38}.side-poster,.side-footer{display:none}.nav{display:grid;grid-template-columns:repeat(3,1fr)}.topbar{position:relative;grid-template-columns:1fr 1fr}.top-stats{grid-column:1/-1}.top-actions{position:absolute;right:0;top:0}.steps{grid-template-columns:1fr}.people-grid{grid-template-columns:repeat(2,1fr)}.result-grid{grid-template-columns:repeat(2,1fr)}.result-venues{grid-template-columns:1fr}}
@media(max-width:620px){.main{padding:8px}.topbar{gap:7px}.top-date{min-width:0}.night-button{padding:0 10px}.nav{grid-template-columns:1fr 1fr}.nav-btn{font-size:12px}.top-stats{grid-template-columns:repeat(2,1fr)}.top-stat:nth-child(3){display:none}.hero-start h1{font-size:34px}.metrics-grid{grid-template-columns:repeat(2,1fr)}.venue-card,.event-card{grid-template-columns:1fr}.venue-image,.event-image{aspect-ratio:16/9}.people-grid{grid-template-columns:1fr 1fr}.person-quote{min-height:auto}.result-grid{grid-template-columns:1fr 1fr}.section-head{flex-direction:column}}

/* V1.1 Pixel Premium */
.venue-image img,.event-image img{image-rendering:auto;filter:saturate(1.03) contrast(1.02)}
.person-image img{image-rendering:auto;object-position:center center;filter:saturate(1.02) contrast(1.02)}
.venue-image,.event-image,.person-image{box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),0 8px 24px rgba(0,0,0,.24)}
/* 2.0 — Les nuits du Valais. Ratios designed with individual source assets. */
:root{--text:#f2e5cf;--amber:#e7b466;--line:#3d423b;--soft:#b1b7af;--shadow:0 12px 35px #0003}
html,body{background:#111a1d;color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.4}
body{background-image:radial-gradient(ellipse at 90% 0,#24362e55,transparent 60%)}
button{transition:background .15s,border-color .15s,transform .15s}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,select:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid #ffcb73;outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.45}
.sidebar{background:#10191c;border-color:#36403b;overflow:auto;scrollbar-width:thin;gap:15px;padding:25px 17px;width:230px}.app{grid-template-columns:230px minmax(0,1fr)}.brand{border-color:#36403b;padding:4px 8px 20px}.brand-main{font-size:41px;letter-spacing:-2px}.brand-sub{font:9px/1.6 monospace;letter-spacing:1px}.side-status>div,.side-objective{background:#192326;border-color:#344039;border-radius:5px}.nav-btn{border-radius:5px;padding:10px 9px;font-size:13px}.nav-btn.active{border-color:#a78348;background:#c2984a1c}.side-poster{border-radius:5px;min-height:240px;flex-shrink:0}.poster-sky{background:linear-gradient(0deg,#171c1c00,#171c1c20),url('assets/venues/guinguette.webp') center/cover;height:110px}.poster-copy strong{font-size:24px}.main{padding:18px 25px 40px;max-width:1800px;width:100%;margin:auto}.topbar{background:#111a1df5;grid-template-columns:auto 1fr auto auto;padding:0 0 18px;gap:10px;align-items:stretch}.top-date{min-width:140px;background:none;border:0;border-radius:0;padding:8px 0}.top-date strong{font-size:12px;max-width:190px}.top-stats{grid-column:2;grid-row:1;grid-template-columns:repeat(5,minmax(65px,1fr));background:#182326;border-color:#3a443d;border-radius:5px}.top-stat{padding:9px;border-color:#3a443d}.top-stat strong{font:700 15px/1.6 monospace;white-space:nowrap}.top-stat span{font-size:9px}.top-actions{grid-column:4;background:transparent;border:0;padding:0}.icon-btn{background:#1c292b;border-color:#3a4943;border-radius:4px}.night-button{grid-column:3;grid-row:1;border-radius:5px;padding:10px 14px;font-size:12px}.top-date span{font-family:monospace;letter-spacing:1px}.panel{background:#172124;border-color:#3b443d;border-radius:7px;box-shadow:none}.section{padding:22px}.section-head{margin-bottom:20px}.section-head h1{font-size:36px;letter-spacing:-1px}.section-head h2{font-size:25px}.section-head p{color:#aeb9b5}.kicker,.micro{font:10px/1.5 monospace;letter-spacing:2px;color:#d1ad71}.welcome-strip{display:flex;justify-content:space-between;gap:12px;font:9px/1.4 monospace;letter-spacing:2px;color:#a1aca6;margin:9px 0 14px}.hero-start{position:relative;isolation:isolate;min-height:390px;padding:34px;grid-template-columns:1.3fr .7fr;align-items:center;background:linear-gradient(90deg,#111a1df2 0%,#111a1ddc 48%,#111a1d70),url('assets/venues/caveau.webp') center/cover;border-color:#726348}.hero-start h1{font-size:clamp(38px,4.2vw,68px);line-height:1.02;letter-spacing:-2px;margin-top:12px}.hero-start .lead{font-size:14px;max-width:570px;color:#e0dbcf;line-height:1.75}.goal-card{background:#182322ea;border-color:#807251;border-radius:5px;padding:22px}.goal-card h3{font-size:25px}.goal-card p{font-size:13px;color:#bfc6bd}.progress{height:5px;border:0;border-radius:1px;background:#39413a}.progress>span{background:#d2ad69}.steps{gap:14px;margin:18px 0}.step{background:#1d292b;border-color:#3c4640;border-radius:5px;padding:20px;display:flex;flex-direction:column}.step h3{font-size:22px}.step .btn{align-self:flex-start;margin-top:auto}.step p{color:#b0bab5;line-height:1.65}.step-no{border-radius:3px;background:#b58a4a;color:#111a1d;border:none;font-family:monospace}.btn{border-radius:4px;padding:11px 14px}.btn.small{padding:9px 11px}.btn.secondary{background:#253132;border-color:#49544a;color:#e5e6dc}.btn.secondary:hover{background:#35423c;border-color:#a28a5f}.btn.primary,.night-button{background:#ddb36c;border:1px solid #eec982;box-shadow:none}.btn.primary:hover{background:#ebc784}.btn.danger{background:#422c2b;border-color:#794b45}.metric,.mini-card,.finance-box,.tier-card,.result-box,.result-list{background:#1c292b;border-color:#3b4841;border-radius:4px}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.metric strong{font:700 22px/1.5 monospace}.metric small{display:block;line-height:1.55;color:#aeb6ae;font-size:11px;margin-top:5px}.metric span{color:#b5b4a5}.badge{border-radius:3px;background:#283631;border-color:#415046;font:10px/1.4 monospace}.badge.gold{background:#3b3426;border-color:#6c5937}.badge.green{background:#1d3b2f}.badge.red{background:#472b2c}.venue-grid,.event-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.venue-card,.event-card{display:flex;flex-direction:column;padding:0;gap:0;overflow:hidden;background:#1c292b;border-color:#465047;border-radius:6px}.venue-card>div:last-child,.event-card>div:last-child{padding:17px;display:flex;flex-direction:column;flex:1}.venue-card .actions,.event-card .actions{margin-top:auto;padding-top:12px}.venue-image,.event-image{width:100%;aspect-ratio:16/9;border-radius:0;box-shadow:none;flex-shrink:0}.venue-image img,.event-image img{display:block;object-fit:cover;object-position:center;image-rendering:auto;filter:none}.venue-card h3{font-size:25px}.venue-card .mini-card-head,.event-card .mini-card-head{flex-wrap:wrap;gap:5px}.venue-meta{color:#b1bbb3;line-height:1.6}.venue-numbers{gap:5px}.num{background:#142021;border-color:#39473f;padding:8px 6px;border-radius:3px}.num strong{font:700 13px/1.5 monospace}.num span{color:#adb8ad;font-size:8px}.people-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.person-card{background:#1c292b;border-color:#435047;border-radius:5px;display:flex;flex-direction:column}.person-image{aspect-ratio:2/3;box-shadow:none;width:100%;flex-shrink:0}.person-image img{display:block;object-fit:cover;object-position:center;filter:none;image-rendering:auto}.person-body{padding:16px;display:flex;flex-direction:column;flex:1}.person-body h3{font-size:26px}.person-role{color:#c2b694;line-height:1.6}.person-quote{color:#d0d5cc;font-family:Georgia,serif;font-size:13px;line-height:1.55}.person-cost{flex-direction:column;margin-top:auto;padding-top:12px}.bonus-copy{font:11px/1.7 monospace;color:#b9cbba;margin:10px 0 0}.assignment select{background:#172224;border-color:#52604e;min-height:40px}.forecast{display:grid;grid-template-columns:1.1fr 1fr auto;gap:18px;padding:22px;align-items:center;margin-bottom:18px;border-left:3px solid #d2ad69}.forecast h2{font:25px Georgia,serif;margin:7px 0}.forecast p,.forecast small{color:#b0bdb4;font-size:12px;line-height:1.6}.forecast span{font:10px monospace;text-transform:uppercase}.forecast strong{display:block;font:700 26px/1.6 monospace}.forecast small{display:block}.dashboard-grid{grid-template-columns:1.2fr .8fr}.overview-side .section+.section{margin-top:0}.city-map{background:#15232b;border:1px solid #4f584b;border-radius:5px;overflow:hidden}.map-card{padding:20px}.district-info{text-align:left;color:var(--text);width:100%}.district-shape{outline:none}.district-shape:focus-visible>path{stroke:#fff;stroke-width:3}.finance-layout{grid-template-columns:1fr 1fr}.table-scroll{overflow-x:auto;min-width:0}.history-table{font-family:monospace;font-size:11px}.history-table th,.history-table td{padding:12px 7px;border-color:#3f4b43}.history-table td:first-child{min-width:80px}.profile-grid{display:grid;gap:25px}.modal-card{background:#172124;border-color:#686750;border-radius:7px;padding:30px;max-width:960px}.modal-close{border-radius:4px;background:#2c3836;border-color:#626750;z-index:1}.modal-card h1{padding-right:30px}.modal-card .event-image{max-width:620px;border-radius:4px}.result-grid{grid-template-columns:repeat(3,1fr)}.result-box strong{font-family:monospace}.result-box span{color:#b2bcaf}.result-venues{margin-top:18px}.alert{padding:14px;background:#452d29;border-left:3px solid #da8b67;color:#f3d1b6}.gate-overlay{background:linear-gradient(90deg,#111a1de6,#111a1d88),url('assets/venues/guinguette.webp') center/cover}.gate-card{background:#152123f2;border-color:#8b754e;border-radius:6px;padding:36px}.gate-card h1{font-size:54px;letter-spacing:-2px}.gate-card input{background:#101b1d;border-color:#5c6958;border-radius:4px}.gate-kicker{font:10px monospace;color:#d4b078;letter-spacing:2px}.toast{background:#23342e;border-color:#a3956b;max-width:calc(100% - 24px);text-align:center;border-radius:4px}.journal-entry{background:#1b282a;border-color:#3f4d43;border-radius:3px}.journal-entry p{color:#d1d8ce}.section-head p,.mini-card p,.tier-card p{color:#b2beb5}
@media(min-width:1650px){.main{padding-left:38px;padding-right:38px}.hero-start{min-height:470px}}
@media(max-width:1400px){.venue-grid,.event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top-date{display:none}.topbar{grid-template-columns:1fr auto auto}.top-stats{grid-column:1}.night-button{grid-column:2}.top-actions{grid-column:3}.top-stat:nth-child(n+4){display:block}.people-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-start{grid-template-columns:1.2fr .8fr}.dashboard-grid{grid-template-columns:1fr}.forecast{grid-template-columns:1fr 1fr}.forecast .btn{grid-column:1/-1;justify-self:start}}
@media(max-width:1050px){.app{grid-template-columns:1fr}.sidebar{position:relative;width:100%;height:auto;padding:18px;display:grid;grid-template-columns:1fr auto;gap:12px;overflow:visible}.brand{padding:0;border:0}.brand-main{font-size:25px;line-height:.9}.brand-main br{display:none}.brand-sub{font-size:8px;margin-top:5px}.side-status,.side-objective,.side-poster,.side-footer{display:none}.nav{grid-column:1/-1;display:flex;flex-direction:row;overflow-x:auto;padding-bottom:5px;gap:6px}.nav-btn{display:flex;flex-shrink:0;min-height:44px;padding:9px 12px;border-color:#35483d}.sidebar>#reset-button{grid-column:2;grid-row:1;align-self:center}.main{padding:15px}.topbar{position:sticky;top:0}.top-actions{position:static}.top-stats{grid-row:1;grid-column:1;grid-template-columns:repeat(5,minmax(0,1fr))}.top-stat:nth-child(n){display:block}.top-stat strong{font-size:13px}.top-stat{padding:7px}.hero-start h1{font-size:44px}.finance-layout{grid-template-columns:1fr}.profile-grid{grid-template-columns:210px 1fr!important}}
@media(max-width:650px){.main{padding:10px}.sidebar{padding:14px 10px}.brand-main{font-size:23px}.brand-sub{max-width:210px;letter-spacing:.5px}.nav{margin:0 -10px;padding:8px 10px}.nav-btn{font-size:12px}.topbar{grid-template-columns:1fr auto;gap:7px;padding-bottom:10px;position:sticky}.top-stats{grid-column:1/-1;grid-row:1;grid-template-columns:repeat(5,minmax(0,1fr))}.top-stat span{font-size:7px;letter-spacing:0}.top-stat strong{font-size:11px}.top-stat{padding:8px 4px}.night-button{grid-column:1;grid-row:2;min-height:44px;font-size:13px}.top-actions{grid-column:2;grid-row:2;padding:0}.icon-btn{height:44px;width:44px}.welcome-strip{font-size:8px;letter-spacing:1px}.welcome-strip span:last-child{display:none}.hero-start{grid-template-columns:1fr;padding:24px 20px;gap:24px;background:linear-gradient(0deg,#111a1def,#111a1dc9),url('assets/venues/caveau.webp') center/cover}.hero-start h1{font-size:41px;letter-spacing:-1.5px}.hero-start .lead{font-size:13px}.goal-card{padding:18px}.goal-card h3{font-size:23px}.steps{grid-template-columns:1fr;gap:10px}.step{padding:17px}.step p{min-height:0}.step h3{margin-top:9px}.section{padding:17px 12px}.section-head h1{font-size:30px}.venue-grid,.event-grid{grid-template-columns:1fr}.venue-image,.event-image{aspect-ratio:16/9}.people-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.person-body{padding:11px}.person-body h3{font-size:23px}.person-role{font-size:11px}.person-quote{font-size:12px}.person-cost{font-size:10px}.bonus-copy{font-size:10px}.person-body .badge{font-size:8px;padding:3px}.person-body .btn{font-size:11px;padding:10px 9px;min-height:40px}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric{padding:10px}.metric strong{font-size:18px;overflow-wrap:anywhere}.forecast{grid-template-columns:1fr;padding:18px;gap:10px}.forecast .btn{grid-column:1}.result-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-box strong{font-size:16px}.modal{padding:10px}.modal-card{padding:22px 14px;max-height:94vh}.profile-grid{grid-template-columns:1fr!important}.profile-grid .person-image{max-width:250px;margin:auto}.result-venues{grid-template-columns:1fr}.finance-box strong{font-size:20px}.journal-entry{grid-template-columns:62px 1fr}.gate-card{padding:25px}.gate-card h1{font-size:45px}.btn.small{min-height:40px}.mini-card-head{flex-wrap:wrap}.map-card{padding:12px}.table-scroll{max-width:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.mini-card-head{align-items:flex-start}.brand-main{font-size:36px;letter-spacing:-1.7px}.brand-main br{display:block}.active-roster{grid-template-columns:repeat(2,minmax(0,1fr))}.active-roster .person-card{display:grid;grid-template-columns:155px minmax(0,1fr);align-items:start}.active-roster .person-image{height:auto}.active-roster .person-quote{min-height:0}.active-roster .person-cost{margin-top:0}.icon-btn svg{vertical-align:middle}
@media(max-width:1050px){.brand-main{font-size:25px;letter-spacing:-1px}.brand-main br{display:inline}.brand-main br:after{content:' '}.active-roster{grid-template-columns:1fr}}
@media(max-width:650px){.brand-main{font-size:23px}.active-roster .person-card{grid-template-columns:115px minmax(0,1fr)}.active-roster .person-image{margin-top:12px}.active-roster .person-body{padding:12px}.active-roster .badge-row{gap:3px}}
@media(max-width:650px){.top-date{display:flex;align-items:center;gap:12px;grid-column:1/-1;grid-row:1;padding:1px 3px}.top-date span{font-size:10px}.top-date strong{font-size:10px;max-width:none;margin:0;color:#b5c0b4}.top-stats{grid-row:2}.night-button,.top-actions{grid-row:3}}
