:root{--bg:#fbfbfd;--bg2:#f4f5f8;--card:#fff;--fg:#0b0d12;--fg2:#4a5160;--fg3:#8a91a0;--line:rgba(15,20,35,.08);--line2:rgba(15,20,35,.14);
--ok:#10b981;--warn:#f59e0b;--bad:#ef4444;--r:14px;--sh:0 1px 2px rgba(16,24,40,.04),0 8px 24px -8px rgba(16,24,40,.10);--sh2:0 24px 64px -16px rgba(16,24,40,.25);
--c-sfh:#0ea5e9;--c-mfh:#0d9488;--c-commercial:#f59e0b;--c-industrial:#64748b;--c-public:#e11d48;--c-agricultural:#84cc16;--c-other:#94a3b8}
[data-theme=dark]{--bg:#08090c;--bg2:#0e1015;--card:#12141a;--fg:#eef0f5;--fg2:#a4abba;--fg3:#6b7385;--line:rgba(255,255,255,.07);--line2:rgba(255,255,255,.12);--accbg:rgba(16,185,129,.14);--sh:0 1px 2px rgba(0,0,0,.4),0 8px 24px -8px rgba(0,0,0,.5);--sh2:0 24px 64px -16px rgba(0,0,0,.7)}
*{box-sizing:border-box}html,body{margin:0}body{font:14px/1.5 var(--font);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;letter-spacing:-.006em}
h1,h2,h3{font-family:var(--font-head);letter-spacing:-.025em;margin:0}a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
.btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--line2);background:var(--card);cursor:pointer;font-weight:500;transition:all .15s ease;white-space:nowrap}
.btn:hover{border-color:var(--fg3);transform:translateY(-1px)}.btn.pri{background:var(--fg);color:var(--bg);border-color:transparent}.btn.pri:hover{box-shadow:0 6px 20px -6px rgba(13,148,136,.6)}
.btn.acc{background:linear-gradient(135deg,var(--acc),var(--acc2));color:#fff;border:0}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--bg2)}.btn.sm{height:30px;padding:0 10px;font-size:13px;border-radius:8px}
.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:99px;border:1px solid var(--line2);background:var(--card);font-size:12.5px;cursor:pointer;user-select:none;transition:all .12s}
.chip.on{background:var(--fg);color:var(--bg);border-color:var(--fg)}.chip .dot{width:8px;height:8px;border-radius:50%}
.input{height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--line2);background:var(--card);width:100%;outline:none;transition:border .15s,box-shadow .15s}.input:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--accbg)}
.muted{color:var(--fg2)}.faint{color:var(--fg3)}.badge{display:inline-flex;align-items:center;height:20px;padding:0 7px;border-radius:6px;font-size:11.5px;font-weight:600;background:var(--bg2);color:var(--fg2)}
.lang{position:relative}.lang select{appearance:none;background:transparent;border:1px solid var(--line2);border-radius:8px;height:30px;padding:0 26px 0 10px;cursor:pointer;font-size:13px}
.lang:after{content:'';position:absolute;right:10px;top:12px;border:4px solid transparent;border-top-color:var(--fg3);pointer-events:none}
.fade{animation:fade .35s ease both}@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.modal{position:fixed;inset:0;background:rgba(8,9,12,.45);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;z-index:100}.modal.on{display:flex}
.modal .box{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh2);padding:28px;width:min(400px,92vw);animation:fade .25s ease}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:10px;box-shadow:var(--sh2);z-index:200;font-weight:500;animation:fade .2s}
[hidden]{display:none!important}
