:root{--plum:#25142f;--plum2:#392047;--paper:#fffdfa;--canvas:#f1ede8;--ink:#271e29;--muted:#766d77;--line:#ddd6dc;--coral:#f27668;--amber:#f2b950;--mint:#56b99d;--violet:#8e67b4;--r:14px;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Manrope,system-ui,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}aside{height:100vh;position:sticky;top:0;padding:30px 24px;background:var(--plum);color:#fff;display:flex;flex-direction:column}.wordmark{display:flex;align-items:center;gap:10px;font:700 21px Syne,sans-serif}.wordmark i{width:27px;height:27px;border:7px solid var(--coral);border-right-color:var(--amber);transform:rotate(12deg);border-radius:5px}nav{display:grid;gap:6px;margin-top:52px}nav a{padding:12px 14px;border-radius:8px;color:#bfaec7;font-size:13px;font-weight:600}nav a:hover,nav a.active{background:#ffffff12;color:#fff}nav a.active:after{float:right;content:'•';color:var(--coral)}.operator{margin-top:auto;display:grid;grid-template-columns:38px 1fr auto;gap:9px;align-items:center;padding-top:20px;border-top:1px solid #ffffff1f}.operator>span{width:38px;height:38px;display:grid;place-items:center;background:var(--coral);border-radius:10px;font-weight:800}.operator b,.operator small{display:block}.operator b{font-size:11px}.operator small{font-size:9px;color:#a895b1}.operator button{border:0;background:none;color:#bfaec7;font-size:10px;cursor:pointer}.content{min-width:0;padding:0 35px 56px}.topbar{height:74px;display:flex;align-items:center;justify-content:flex-end;gap:20px}.topbar>span{font:10px 'Space Mono',monospace;color:var(--muted)}.topbar>span i,.live i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--mint);margin-right:7px}.topbar button{border:0;background:none;cursor:pointer;color:var(--ink)}.topbar button:first-child{display:none;margin-right:auto}.eyebrow{margin:0 0 8px;color:var(--violet);font:700 9px 'Space Mono',monospace;text-transform:uppercase;letter-spacing:.14em}.hero{min-height:380px;display:grid;grid-template-columns:1.25fr .75fr;align-items:center;padding:35px 7vw;background:var(--paper);border-radius:var(--r);position:relative;overflow:hidden}.hero:after{content:'';position:absolute;width:260px;height:520px;right:-60px;top:-80px;background:repeating-linear-gradient(0deg,var(--coral) 0 3px,transparent 3px 17px);opacity:.16;transform:rotate(20deg)}.hero h1,.page-head h1{margin:0;font:800 clamp(54px,6vw,86px)/.92 Syne,sans-serif;letter-spacing:-.055em}.hero h1 em{color:var(--coral);font-style:normal}.hero>div:first-child>p:last-child{max-width:600px;color:var(--muted);line-height:1.65}.occupancy-dial{position:relative;z-index:1;width:230px;height:230px;justify-self:center;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--coral) var(--pct),#e8e0e7 0);box-shadow:inset 0 0 0 20px var(--paper)}.occupancy-dial:after{content:'';position:absolute;inset:38px;border-radius:50%;background:var(--plum)}.occupancy-dial div{position:relative;z-index:1;text-align:center;color:#fff}.occupancy-dial strong,.occupancy-dial span{display:block}.occupancy-dial strong{font:800 48px Syne}.occupancy-dial span{font:9px 'Space Mono';text-transform:uppercase}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:24px 0;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.metrics article{padding:20px;background:var(--paper)}.metrics span,.metrics small{display:block;color:var(--muted);font-size:10px}.metrics strong{display:block;margin:8px 0 4px;font:700 24px Syne;font-variant-numeric:tabular-nums}.dashboard-grid,.split-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:20px;margin-bottom:20px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.panel>header{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 20px;border-bottom:1px solid var(--line)}.panel h2{margin:0;font:700 24px Syne}.panel header a{font-size:10px;font-weight:800;border-bottom:1px solid}.city-map{height:310px;background:linear-gradient(125deg,#e4ddd7,#f9f4ee)}.city-map svg,.full-map svg{width:100%;height:100%}.map-key{display:flex;justify-content:flex-end;gap:17px;padding:10px 18px;font-size:9px;color:var(--muted)}.map-key i{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;background:var(--plum)}.map-key i.occupied{background:var(--coral)}.renew-row{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;padding:13px 18px;border-bottom:1px solid var(--line)}.renew-row:hover{background:#faf6f2}.deadline{padding:6px 4px;border-radius:8px;background:#f4e5df;text-align:center}.deadline b,.deadline span,.renew-row strong,.renew-row small{display:block}.deadline b{font:700 17px Syne;color:#a5483e}.deadline span{font-size:7px;text-transform:uppercase}.renew-row strong{font-size:11px}.renew-row small{font-size:9px;color:var(--muted)}.yield-list{padding:6px 20px 18px}.yield-list>div{display:grid;grid-template-columns:34px minmax(150px,1fr) 2fr 150px;gap:15px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.yield-list .rank{font:10px 'Space Mono';color:var(--muted)}.yield-list b{font-size:11px}.yield-list>div>i{height:7px;background:#eee8ec;border-radius:10px;overflow:hidden}.yield-list u{display:block;height:100%;background:linear-gradient(90deg,var(--violet),var(--coral))}.yield-list strong{text-align:right;font-size:11px;font-variant-numeric:tabular-nums}.live{font:9px 'Space Mono';color:var(--muted)}.page-head{padding:28px 0 38px;display:flex;align-items:end;justify-content:space-between;gap:28px}.page-head h1{font-size:clamp(56px,6vw,82px)}.page-head p:last-child{max-width:620px;color:var(--muted)}.full-map{height:420px;margin-bottom:20px;background:#e9e3de;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.panel-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.panel-photo{height:150px;padding:17px;display:flex;align-items:flex-start;justify-content:space-between;background:linear-gradient(150deg,#432552,#a86880);color:#fff;position:relative}.panel-card:nth-child(2n) .panel-photo{background:linear-gradient(150deg,#3d516a,#6e8ca2)}.panel-card:nth-child(3n) .panel-photo{background:linear-gradient(150deg,#5f432b,#c1854e)}.panel-photo:after{content:'';position:absolute;inset:38px 20px 17px;border:4px solid #fff9;box-shadow:0 11px 20px #0003}.panel-photo span,.panel-photo b{position:relative;z-index:1;font:8px 'Space Mono';text-transform:uppercase}.panel-copy{padding:18px}.panel-copy>div:first-child{display:flex;justify-content:space-between;gap:10px}.panel-copy h2{margin:0;font:700 17px Syne}.status{height:max-content;padding:4px 7px;background:#dcefe9;color:#23775f;border-radius:20px;font-size:8px;font-weight:800}.vacant .status{background:#f4e5df;color:#9d453d}.panel-copy p{min-height:35px;color:var(--muted);font-size:10px}.panel-copy dl{display:flex;justify-content:space-between}.panel-copy dt{font-size:8px;color:var(--muted);text-transform:uppercase}.panel-copy dd{margin:4px 0;font-size:10px;font-weight:700}.contract-chip{display:flex;justify-content:space-between;padding-top:12px;border-top:1px solid var(--line);font-size:9px}.contract-chip span{font-weight:800}.contract-chip b{color:var(--muted)}.form-card{height:max-content}.stack-form{display:grid;gap:13px;padding:20px}.stack-form label,.contract-fields label,.login-panel label{display:grid;gap:6px;font-size:10px;font-weight:700}.stack-form input,.contract-fields input,.contract-fields select,.filters select,.login-panel input{height:42px;padding:0 11px;border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink)}.stack-form button,.contract-fields button,.filters button,.login-panel button,.small-button{height:42px;padding:0 16px;border:0;border-radius:7px;background:var(--plum);color:#fff;font-weight:700;cursor:pointer}.client-list>div{display:grid;grid-template-columns:42px 1fr 150px;gap:12px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}.client-list>div>span{width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:#efe5f0;color:var(--violet);font:700 12px Syne}.client-list b,.client-list small{display:block}.client-list b{font-size:11px}.client-list small{font-size:9px;color:var(--muted)}.client-list .num{text-align:right}.contract-form{margin-bottom:20px}.contract-fields{display:grid;grid-template-columns:1fr 1.2fr .8fr .8fr 1fr auto;gap:10px;align-items:end;padding:20px}.filters{display:flex;gap:8px}.filters select,.filters button{height:36px}table{width:100%;border-collapse:collapse;min-width:820px}.table-scroll{overflow:auto}th,td{padding:13px 17px;border-bottom:1px solid var(--line);text-align:left;font-size:10px}th{font:8px 'Space Mono';text-transform:uppercase;color:var(--muted);background:#faf7f4}td b,td small{display:block}td small{margin-top:3px;color:var(--muted);font-size:8px}.mono{font-family:'Space Mono'}.num{text-align:right;font-variant-numeric:tabular-nums}.pill{display:inline-block;padding:4px 7px;border-radius:10px;background:#e9e4e8;font-size:8px;font-weight:800;text-transform:uppercase}.pill.active,.pill.acknowledged{background:#dcefe9;color:#24745e}.pill.draft,.pill.pending,.pill.sending{background:#f8ebcd;color:#8d631c}.pill.retry{background:#f4deda;color:#9d453d}.small-button{height:30px;font-size:8px}.pipeline{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.pipeline>div{padding:16px;background:#e8e1e7;border-radius:var(--r)}.pipeline h2{margin:3px 2px 15px;font:700 17px Syne}.pipeline article{padding:17px;margin-bottom:10px;background:var(--paper);border-radius:10px;border-top:3px solid var(--coral)}.pipeline article>span{font:700 9px 'Space Mono';color:var(--coral)}.pipeline h3{margin:12px 0 3px;font:700 16px Syne}.pipeline p{margin:0;color:var(--muted);font-size:9px}.pipeline article>div{display:flex;justify-content:space-between;margin-top:17px;font-size:9px}.pipeline-empty{padding:35px 10px;text-align:center;color:var(--muted);font-size:9px}.reconcile{display:flex;align-items:center;gap:13px}.reconcile span,.reconcile span b{display:block}.reconcile span{font-size:9px;color:var(--muted)}.reconcile span b{font-size:16px;color:var(--ink)}.reconcile i{width:32px;border-top:1px solid}.reconcile strong{padding:8px;background:#e7dfe6;font-size:9px}.wrap-key{max-width:250px;overflow-wrap:anywhere}.error-text{max-width:270px;color:#9d453d}.empty-inline{padding:45px 20px;text-align:center;color:var(--muted);font-size:10px}.toast{position:fixed;right:25px;top:23px;z-index:60;max-width:420px;padding:14px 18px;border-radius:9px;background:var(--plum);color:#fff;border-left:4px solid var(--mint);box-shadow:0 15px 40px #0003;animation:toast 5s both}.toast.error{border-color:var(--coral)}@keyframes toast{0%{opacity:0;transform:translateY(-8px)}8%,86%{opacity:1;transform:none}100%{opacity:0;visibility:hidden}}.login-body{min-height:100vh;background:var(--plum);color:#fff}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.login-gallery{position:relative;overflow:hidden;background:linear-gradient(145deg,#341c40,#160c1c);padding:7vw}.login-gallery:after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,#f2766828,transparent 35%),radial-gradient(circle at 80% 70%,#f2b9501f,transparent 32%)}.frame{position:absolute;z-index:1;padding:18px;border:8px solid #fff6;box-shadow:0 30px 50px #0006;display:flex;flex-direction:column;justify-content:space-between;font:9px 'Space Mono';background:linear-gradient(155deg,#c86f71,#44244d)}.frame b{font:700 38px Syne;writing-mode:vertical-rl}.frame-a{width:250px;height:390px;left:12%;top:12%;transform:rotate(-7deg)}.frame-b{width:280px;height:230px;right:10%;bottom:13%;transform:rotate(8deg);background:linear-gradient(145deg,#627e90,#25142f)}.frame-b b{writing-mode:initial}.login-gallery>p{position:absolute;z-index:2;left:7vw;bottom:6vw;color:#d0c1d5;font-size:12px;line-height:1.6}.login-panel{padding:6vw;background:var(--paper);color:var(--ink);display:flex;flex-direction:column;justify-content:center}.login-panel>.wordmark{margin-bottom:70px}.login-panel h1{margin:0;font:800 clamp(38px,4vw,58px)/.98 Syne;letter-spacing:-.05em}.login-panel p{color:var(--muted)}.login-panel form{display:grid;gap:16px;margin-top:35px}.login-panel button{height:48px;background:var(--coral)}.login-error{padding:12px;border-left:3px solid var(--coral);background:#f4deda;color:#94423a;font-size:10px}
html[data-theme=dark]{--canvas:#160e19;--paper:#211627;--ink:#f5eef5;--muted:#aa9eaa;--line:#3e3040;color-scheme:dark}html[data-theme=dark] th{background:#1b121f}html[data-theme=dark] .renew-row:hover{background:#2a1d30}html[data-theme=dark] .pipeline>div{background:#2b2030}html[data-theme=dark] .reconcile strong{background:#3a2b3e}
@media(max-width:1100px){.app-shell{grid-template-columns:1fr}aside{position:fixed;z-index:50;width:250px;transform:translateX(-100%);transition:.2s}.menu-open aside{transform:none}.content{padding:0 22px 44px}.topbar button:first-child{display:block}.hero,.dashboard-grid,.split-grid{grid-template-columns:1fr}.occupancy-dial{position:absolute;right:5%;opacity:.2}.portfolio-grid{grid-template-columns:repeat(2,1fr)}.contract-fields{grid-template-columns:repeat(3,1fr)}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.content{padding:0 13px 35px}.hero{padding:38px 24px;min-height:400px}.hero h1{font-size:50px}.metrics,.portfolio-grid,.pipeline{grid-template-columns:1fr}.yield-list>div{grid-template-columns:26px 1fr 90px}.yield-list>div>i{display:none}.contract-fields{grid-template-columns:1fr}.page-head{display:block}.reconcile{margin-top:20px;flex-wrap:wrap}.login-shell{grid-template-columns:1fr}.login-gallery{display:none}.login-panel{min-height:100vh;padding:35px 25px}.login-panel>.wordmark{margin-bottom:55px}.panel>header{align-items:flex-start;flex-direction:column}.client-list>div{grid-template-columns:42px 1fr}.client-list .num{grid-column:2;text-align:left}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.receipt-form{display:grid;gap:9px;width:260px;margin-top:9px;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--paper);box-shadow:0 12px 28px #25142f20}.receipt-form label{display:grid;gap:4px;color:var(--muted);font-size:8px}.receipt-form input,.receipt-form select{width:100%;height:38px;padding:0 9px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink)}.receipt-form button{min-height:42px;border:0;border-radius:7px;background:var(--coral);color:#fff;font-weight:700}details summary{list-style:none}details summary::-webkit-details-marker{display:none}@media(max-width:700px){.hero>div:first-child{position:relative;z-index:1;min-width:0;width:100%}.hero h1{font-size:clamp(40px,12vw,50px);overflow-wrap:anywhere}.hero>div:first-child>p:last-child{max-width:100%}.receipt-form{width:240px}}
@media(max-width:700px){aside nav a{min-height:44px;display:flex;align-items:center}.operator button,.topbar button,.filters button,.small-button,.panel header a{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}}
