:root{--brand-900:#0f3d2e;--brand-700:#155d44;--brand-600:#1f6b4f;--brand-100:#e3f1eb;--accent-600:#4f46e5;--accent-700:#4338ca;--accent-100:#e8e7fc;--av:#2e8b57;--bk:#c9a227;--sd:#b5482e;--rs:#3a6fb5;--bl:#6b7280;--av-100:#e4f2eb;--bk-100:#f7f0d9;--sd-100:#f6e5e0;--rs-100:#e2ecf6;--bl-100:#eef0f2;--canvas:#f5f7fa;--surface:#fff;--subtle:#eef1f5;--border:#e2e8f0;--border-strong:#cbd5e1;--ink:#0f172a;--ink-2:#475569;--ink-muted:#64748b;--ink-inv:#f8fafc;--map-bg:#0e1520;--success:#15803d;--warning:#b45309;--danger:#b91c1c;--info:#0e7490;--r-sm:8px;--r-md:12px;--r-lg:16px;--sh-sm:0 1px 2px #0f172a0f;--sh-md:0 4px 12px #0f172a14;--sh-lg:0 12px 32px #0f172a24;--display:"Bricolage Grotesque", "Inter", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--bg:var(--canvas);--line:var(--border);--line-strong:var(--border-strong);--ink-3:var(--ink-muted);--accent:var(--accent-600);--accent-soft:var(--accent-100);--ok:var(--success);--ok-soft:var(--av-100);--warn:var(--warning);--warn-soft:var(--bk-100);--bad:var(--danger);--bad-soft:var(--sd-100);--idle:var(--bl);--idle-soft:var(--bl-100);--radius:var(--r-md)}*{box-sizing:border-box}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font:14px/22px Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent-600);font-weight:600;text-decoration:none}a:hover{text-decoration:underline}.shell{min-height:100vh;display:flex}.sb{background:var(--brand-900);color:#cbe6da;flex-direction:column;flex:0 0 248px;width:248px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.sb__logo{align-items:center;gap:10px;padding:6px 8px 22px;display:flex}.sb__logo .lk{background:var(--brand-600);border-radius:8px;place-items:center;width:30px;height:30px;display:grid}.sb__logo .lk svg{color:#fff;width:17px;height:17px}.sb__logo b{font-family:var(--display);color:#fff;letter-spacing:-.01em;font-size:18px;font-weight:800}.sb a{color:#a7cbbd;border-radius:8px;align-items:center;gap:11px;margin-bottom:2px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.sb a svg{opacity:.85;flex:none;width:18px;height:18px}.sb a:hover{color:#e7f2ed;background:#ffffff0f;text-decoration:none}.sb a.active{background:var(--brand-700);color:#fff}.sb .navcap{letter-spacing:.12em;text-transform:uppercase;color:#6f9887;padding:16px 12px 6px;font-size:11px;font-weight:700}.sb__sp{flex:1}.sb__me{border-top:1px solid #ffffff14;align-items:center;gap:10px;margin-top:8px;padding:10px 12px;display:flex}.sb__me .av{background:var(--accent-600);color:#fff;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:13px;font-weight:700;display:grid}.sb__me b{color:#e7f2ed;font-size:13px;font-weight:600;display:block}.sb__me small{color:#7da795;font-size:11px;display:block}.mn{flex-direction:column;flex:1;min-width:0;display:flex}.tb{border-bottom:1px solid var(--border);z-index:10;background:#fff;flex:0 0 56px;align-items:center;gap:14px;height:56px;padding:0 28px;display:flex;position:sticky;top:0}.tb .co{color:var(--ink);font-weight:600}.tb .right{color:var(--ink-muted);align-items:center;gap:14px;margin-left:auto;font-size:13px;display:flex}.tb .right .av{background:var(--brand-100);width:30px;height:30px;color:var(--brand-700);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.bd,.page{flex:1;width:100%;max-width:1320px;padding:28px 32px}.crumb{color:var(--ink-muted);margin-bottom:4px;font-size:13px}.page h1,.h1{letter-spacing:-.01em;margin:0;font-size:24px;font-weight:700;line-height:32px}.page h2,.h2{margin:28px 0 12px;font-size:16px;font-weight:600;line-height:24px}.h3{margin:0;font-size:16px;font-weight:600;line-height:24px}.sub{color:var(--ink-2);margin:6px 0 22px}.cap{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);font-size:12px;font-weight:600}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.mut,.muted{color:var(--ink-muted);font-weight:400}.sm{font-size:13px}.tiles,.g4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;display:grid}.g2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;display:grid}.g3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.kpi,.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-md);padding:16px 18px;position:relative;overflow:hidden}.kpi .acc,.tile:before{content:"";background:var(--brand-600);width:3px;position:absolute;top:0;bottom:0;left:0}.tile.ok:before{background:var(--success)}.tile.bad:before{background:var(--danger)}.kpi .lab,.tile .label{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);font-size:12px;font-weight:600}.kpi .num,.tile .value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:4px;font-size:30px;font-weight:700;line-height:36px}.tile .value.sm{font-size:22px;line-height:30px}.kpi .sub,.tile .note{color:var(--ink-muted);margin:2px 0 0;font-size:12px}.tile.bad .value{color:var(--danger)}.tile.ok .value{color:var(--success)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--sh-md);overflow:hidden}.card-head{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:14px 18px;font-weight:600;display:flex}.card-head .spacer{flex:1}.card-body{padding:18px}table,.tbl{border-collapse:collapse;background:#fff;width:100%}th,.tbl thead th{background:var(--subtle);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);text-align:left;border-bottom:1px solid var(--border);padding:11px 14px;font-size:12px;font-weight:600}td,.tbl td{border-top:1px solid var(--border);color:var(--ink-2);padding:13px 14px;font-size:13.5px}thead+tbody tr:first-child td{border-top:none}td b,.tbl td b{color:var(--ink);font-weight:600}tbody tr:hover{background:#fafbfc}td.num,th.num,.tbl .r{text-align:right;font-variant-numeric:tabular-nums}td.mono{font-family:var(--mono);font-size:13px}.chip,.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;line-height:16px;display:inline-flex}.chip:before,.pill:before{content:"";border-radius:50%;flex:none;width:7px;height:7px}.chip.av,.pill.ok{background:var(--av-100);color:var(--av)}.chip.av:before,.pill.ok:before{background:var(--av)}.chip.bk,.pill.warn{background:var(--bk-100);color:#8a6d12}.chip.bk:before,.pill.warn:before{background:var(--bk)}.chip.sd,.pill.bad{background:var(--sd-100);color:var(--sd)}.chip.sd:before,.pill.bad:before{background:var(--sd)}.chip.rs,.pill.accent{background:var(--rs-100);color:var(--rs)}.chip.rs:before,.pill.accent:before{background:var(--rs)}.chip.bl,.pill.idle,.chip.ghost{background:var(--bl-100);color:var(--bl)}.chip.bl:before,.pill.idle:before,.chip.ghost:before{background:var(--bl)}.chip.solid{color:#fff}.chip.solid:before{display:none}.chip.solid.av{background:var(--av)}.chip.solid.bk{background:var(--bk);color:#1f2937}.chip.solid.sd{background:var(--sd)}.chip.solid.rs{background:var(--rs)}.chip.solid.bl{background:var(--bl)}.avbar,.bar{background:var(--subtle);border-radius:999px;height:12px;display:flex;overflow:hidden}.avbar i,.bar i{height:100%;display:block}.bar i.available{background:var(--av)}.bar i.booked{background:var(--bk)}.bar i.pending{background:var(--bk);opacity:.6}.bar i.sold{background:var(--sd)}.bar i.resale{background:var(--rs)}.avlabels,.legend{color:var(--ink-2);flex-wrap:wrap;gap:14px;margin-top:8px;font-size:12px;display:flex}.avlabels b{align-items:center;gap:5px;font-weight:500;display:inline-flex}.legend b,.avlabels b i,.swatch{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.legend span{align-items:center;gap:6px;display:inline-flex}.progress{background:#e2e6ec;border-radius:999px;height:8px;margin-top:8px;overflow:hidden}.progress i{background:var(--success);height:100%;display:block}.progress.big{height:12px}.field{margin-bottom:16px}.field label,label{color:var(--ink-2);margin-bottom:6px;font-size:13px;font-weight:600;display:block}input,select,textarea{width:100%;height:40px;font:inherit;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--ink);background:#fff;padding:0 12px}textarea{height:auto;padding:10px 12px}input:focus,select:focus,textarea:focus{border-color:var(--accent-600);outline:none;box-shadow:0 0 0 3px #4f46e533}input.mono,.finp{font-family:var(--mono)}input.narrow{width:70px}button,.btn,a.button{font:inherit;border-radius:var(--r-sm);background:var(--accent-600);color:#fff;cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;height:40px;padding:0 16px;font-size:14px;font-weight:600;display:inline-flex}a.button:hover,button:hover{filter:brightness(1.06);text-decoration:none}button:disabled{opacity:.45;cursor:not-allowed;filter:none}button.ghost,.btn-sec{border-color:var(--border);color:var(--ink);background:#fff}button.ghost:hover{background:var(--subtle);filter:none}.btn-brand{background:var(--brand-600);color:#fff}.btn-danger{border-color:var(--border);color:var(--danger);background:#fff}.btn-sm,td button{height:32px;padding:0 12px;font-size:13px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips .chip{cursor:pointer;border:1px solid var(--border);color:var(--ink-2);background:#fff}.chips .chip:before{background:var(--ink-muted)}.chips .chip.on{background:var(--accent-600);border-color:var(--accent-600);color:#fff}.chips .chip.on:before{background:#fff}.login-wrap{background:var(--canvas);place-items:center;min-height:100vh;padding:24px;display:grid}.login{width:100%;max-width:400px}.login .card-body{padding:26px}.error{background:var(--sd-100);color:var(--danger);border-radius:var(--r-sm);border:1px solid #f0cfc7;margin-bottom:14px;padding:11px 13px;font-size:13px}.notice{background:var(--av-100);color:var(--success);border-radius:var(--r-sm);border:1px solid #c3e3ce;margin-bottom:14px;padding:11px 13px;font-size:13px}.warning{background:var(--bk-100);color:#8a6d12;border-radius:var(--r-sm);border:1px solid #ecdcac;margin-bottom:12px;padding:11px 13px;font-size:13px;line-height:1.6}.hint,.note{color:var(--ink-muted);margin-top:12px;font-size:12.5px;line-height:1.6}.empty{border:1px dashed var(--border-strong);border-radius:var(--r-md);text-align:center;color:var(--ink-muted);background:#fff;padding:34px}.grid2{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (width<=1100px){.grid2,.g2,.g3{grid-template-columns:minmax(0,1fr)}}.kv{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:8px 0;font-size:14px;display:flex}.kv:last-child{border-bottom:none}.kv span{color:var(--ink-2)}.kv b{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.between{justify-content:space-between}.divln{background:var(--border);height:1px;margin:16px 0}td.ellipsis{text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}details summary{cursor:pointer;color:var(--ink-2);padding:8px 0;font-size:13px}.naksha{border:1px solid var(--border);border-radius:var(--r-sm);background:#fcfcfd;width:100%;height:auto;max-height:70vh;display:block}.naksha polygon{cursor:pointer}.naksha polygon:hover{fill-opacity:.7}.plot-map{background:var(--map-bg);border-radius:var(--r-md);max-height:70vh;overflow:auto}.plot-map svg{min-width:100%}.plot-map polygon:hover{fill-opacity:.85}.install-slot:empty{display:none}.install{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--brand-600);border-radius:var(--r-md);box-shadow:var(--sh-md);flex-wrap:wrap;align-items:flex-start;gap:14px;margin:24px 32px 0;padding:14px 16px;display:flex}.install--card{border-left-width:1px;border-top:3px solid var(--brand-600);margin:16px 0 0}.install__icon{border-radius:var(--r-sm);background:var(--brand-100);width:34px;height:34px;color:var(--brand-700);flex:none;place-items:center;display:grid}.install__icon svg{width:19px;height:19px}.install__body{flex-direction:column;flex:220px;gap:2px;min-width:0;display:flex}.install__body b{font-size:14px}.install__body span{color:var(--ink-2);font-size:13px}.install__note{font-weight:600;color:var(--brand-700)!important}.install__actions{align-items:center;gap:6px;margin-left:auto;display:flex}.install__actions button{height:34px;padding:0 14px;font-size:13px}.install__close{color:var(--ink-muted);background:0 0;width:32px;height:34px;padding:0 6px;font-size:22px;line-height:1}.install__close:hover{background:var(--subtle);filter:none}.updatebar{background:var(--brand-900);color:#e7f2ed;align-items:center;gap:14px;padding:10px 32px;font-size:13.5px;display:flex}.updatebar button{color:var(--brand-900);background:#fff;margin-left:auto}.scrim,.hamb,.sb__close{display:none}@media (width<=1024px){.grid2,.g2,.g3{grid-template-columns:minmax(0,1fr)}.bd,.page{padding:20px 18px}.install{margin:18px 18px 0}.updatebar{padding:10px 18px}}@media (width<=860px){.sb{z-index:60;height:100%;box-shadow:var(--sh-lg);padding-top:max(20px, env(safe-area-inset-top));padding-bottom:max(20px, env(safe-area-inset-bottom));transition:transform .24s cubic-bezier(.32,.72,0,1);position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sb.open{transform:translate(0)}.sb__close{color:#cbe6da;border-radius:var(--r-sm);background:#ffffff14;border:none;width:36px;height:36px;margin-left:auto;padding:0;font-size:22px;line-height:1;display:block}.sb__close:hover{filter:none;background:#ffffff29}.scrim{z-index:55;opacity:0;pointer-events:none;background:#0f172a73;transition:opacity .24s;display:block;position:fixed;inset:0}.scrim.show{opacity:1;pointer-events:auto}.hamb{flex:none;width:40px;margin-left:-8px;padding:0;display:inline-flex}.hamb svg{width:20px;height:20px}.tb{padding:0 16px;padding-top:env(safe-area-inset-top);height:calc(56px + env(safe-area-inset-top));flex-basis:calc(56px + env(safe-area-inset-top))}.hide-sm{display:none}.bd,.page{padding:16px 14px calc(24px + env(safe-area-inset-bottom))}.install{flex-wrap:wrap;margin:14px 14px 0}.install__actions{justify-content:flex-end;width:100%}.updatebar{padding:10px 14px}.page h1,.h1{font-size:21px;line-height:28px}.tiles,.g4{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.kpi .num,.tile .value{font-size:24px;line-height:30px}.card table,.card .tbl{min-width:700px}.card:has(table){-webkit-overflow-scrolling:touch;overflow-x:auto}.card{min-width:0}th,.tbl thead th{padding:10px 12px}td,.tbl td{padding:11px 12px}.row{gap:10px}.row>.field{flex:100%}input,select,textarea{height:44px;font-size:16px}button,.btn,a.button{height:44px}td button,.btn-sm,.install__actions button{height:36px}}@media (width<=560px){.tiles,.g4{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.kpi,.tile{padding:13px 14px}.kpi .num,.tile .value{font-size:21px;line-height:27px}.card-body{padding:14px}.card-head{padding:12px 14px}.crumb{font-size:12px}}@media (display-mode:standalone){.mn{height:100vh;overflow:hidden}.bd,.page{-webkit-overflow-scrolling:touch;overflow-y:auto}}
