:root{--bg:#eef2f7;--card:#fff;--side:#0f172a;--side2:#1e293b;--side-text:#cbd5e1;--side-active:#2563eb;--text:#0f172a;--muted:#64748b;--line:#e2e8f0;--accent:#2563eb;--accent-d:#1d4ed8;--accent-soft:#dbeafe;--ok:#16a34a;--ok-soft:#dcfce7;--warn:#d97706;--err:#dc2626;--err-soft:#fee2e2;--shadow:0 1px 3px #0f172a14, 0 1px 2px #0f172a0a;--shadow-lg:0 10px 30px #0f172a2e;--radius:12px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:700}a{color:var(--accent);text-decoration:none}button{font:inherit;cursor:pointer;background:var(--accent);color:#fff;white-space:nowrap;border:none;border-radius:9px;padding:.6em 1.1em;font-weight:600;transition:background .12s,box-shadow .12s,transform 40ms}button:hover{background:var(--accent-d)}button:active{transform:translateY(1px)}button.secondary{color:var(--text);border:1px solid var(--line);background:#fff}button.secondary:hover{background:#f8fafc;border-color:#cbd5e1}button.danger{color:var(--err);background:#fff;border:1px solid #fecaca}button.danger:hover{background:var(--err);color:#fff;border-color:var(--err)}button.ghost{color:var(--muted);background:0 0;border:1px solid #0000}button.ghost:hover{color:var(--text);background:#f1f5f9}button.small{border-radius:7px;padding:.35em .7em;font-size:.82em}button:disabled{opacity:.55;cursor:not-allowed}input,select,textarea{font:inherit;color:var(--text);border:1px solid var(--line);background:#fff;border-radius:9px;width:100%;padding:.55em .7em;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}label{color:var(--muted);margin:.7rem 0 .25rem;font-size:.78rem;font-weight:600;display:block}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);padding:.7em .8em}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;background:#fafbfc;font-size:.72rem;font-weight:600}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:#f8fafc}.muted{color:var(--muted)}.pill{color:var(--muted);background:#f1f5f9;border-radius:999px;align-items:center;gap:.35em;padding:.2em .6em;font-size:.74rem;font-weight:600;display:inline-flex}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.off{color:var(--muted);background:#f1f5f9}.pill.warn{color:var(--warn);background:#fef3c7}.dot{background:currentColor;border-radius:50%;width:7px;height:7px;display:inline-block}.center{background:radial-gradient(1200px 600px at 50% -10%, #1e293b, var(--bg));place-items:center;height:100%;display:grid}.box{background:var(--card);border:1px solid var(--line);width:380px;box-shadow:var(--shadow-lg);border-radius:18px;padding:2.2rem}.box h1{align-items:center;gap:.5rem;font-size:1.5rem;display:flex}.box .sub{color:var(--muted);margin:.3rem 0 1.2rem}.layout{grid-template-columns:250px 1fr;height:100%;display:grid}.side{background:linear-gradient(180deg, var(--side2), var(--side));color:var(--side-text);flex-direction:column;gap:.15rem;padding:1.1rem .8rem;display:flex;overflow-y:auto}.brand{flex-direction:column;align-items:center;gap:.3rem;padding:.7rem .6rem 1.2rem;display:flex}.brand-sub{letter-spacing:.18em;text-transform:uppercase;color:#7c8ca5;font-size:.68rem;font-weight:700}.brand .logo{background:var(--accent);border-radius:8px;place-items:center;width:30px;height:30px;font-size:1rem;display:grid}.navsec{text-transform:uppercase;letter-spacing:.08em;color:#64748b;padding:1rem .8rem .35rem;font-size:.68rem;font-weight:700}.navlink{color:var(--side-text);cursor:pointer;border-radius:9px;align-items:center;gap:.7rem;padding:.6rem .7rem;font-weight:500;transition:background .12s,color .12s;display:flex}.navlink:hover{color:#fff;background:#ffffff0f}.navlink.active{background:var(--side-active);color:#fff;box-shadow:0 2px 8px #2563eb66}.navlink .ico{text-align:center;width:20px;font-size:1rem}.side .userbox{color:#94a3b8;border-top:1px solid #ffffff14;margin-top:auto;padding:.7rem .8rem;font-size:.78rem}.side .userbox b{color:#e2e8f0;font-weight:600}.main{flex-direction:column;display:flex;overflow:auto}.topbar{border-bottom:1px solid var(--line);z-index:5;background:#fff;align-items:center;gap:.8rem;padding:.8rem 1.5rem;display:flex;position:sticky;top:0}.topbar .spacer{flex:1}.tenantsel{background:#f1f5f9;border-radius:10px;align-items:center;gap:.5rem;padding:.3rem .3rem .3rem .7rem;display:flex}.tenantsel select{background:#fff;border:none;width:auto;min-width:190px}.userchip{align-items:center;gap:.5rem;font-size:.85rem;display:flex}.avatar{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;font-weight:700;display:grid}.content{width:100%;max-width:1200px;padding:1.6rem}.pagehead{align-items:flex-end;gap:1rem;margin-bottom:1.3rem;display:flex}.pagehead h2{font-size:1.4rem}.pagehead .sub{color:var(--muted);font-size:.9rem}.pagehead .spacer{flex:1}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card.pad{padding:1.1rem 1.3rem}.tablecard{overflow:hidden}.kpis{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:1.3rem;display:grid}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;box-shadow:var(--shadow);align-items:center;gap:.9rem;padding:1.1rem 1.2rem;transition:transform .1s,box-shadow .1s,border-color .1s;display:flex}.kpi:hover{box-shadow:var(--shadow-lg);border-color:#c7d2fe;transform:translateY(-2px)}.kpi .kico{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:11px;flex:none;place-items:center;font-size:1.3rem;display:grid}.kpi .n{font-size:1.7rem;font-weight:800;line-height:1}.kpi .l{color:var(--muted);margin-top:.2rem;font-size:.82rem}.toolbar{flex-wrap:wrap;align-items:center;gap:.8rem;margin-bottom:1.1rem;display:flex}.toolbar .count{color:var(--muted);background:#f1f5f9;border-radius:999px;padding:.15em .6em;font-size:.78rem;font-weight:600}.toolbar .spacer{flex:1}.toolbar input.search{max-width:280px}.pwcell{font-family:ui-monospace,monospace;font-size:.85em}.modal-bg{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;background:#0f172a73;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{background:var(--card);width:580px;max-width:96vw;max-height:90vh;box-shadow:var(--shadow-lg);border-radius:16px;padding:1.5rem;overflow:auto}.modal h3{margin-bottom:1.1rem;font-size:1.2rem}.grid2{grid-template-columns:1fr 1fr;gap:.2rem .9rem;display:grid}.actions{justify-content:flex-end;gap:.6rem;margin-top:1.4rem;display:flex}.err-msg{color:var(--err);min-height:1.2em;margin-top:.5rem;font-size:.85rem}.checks{background:#f8fafc;border-radius:10px;flex-wrap:wrap;gap:1.3rem;margin-top:.8rem;padding:.8rem;display:flex}.checks label{color:var(--text);align-items:center;gap:.45rem;margin:0;font-weight:500;display:flex}.checks input{width:auto}.toast{color:#fff;z-index:100;box-shadow:var(--shadow-lg);background:#0f172a;border-radius:10px;padding:.8rem 1.1rem;font-weight:500;animation:.2s slidein;position:fixed;bottom:1.4rem;right:1.4rem}.toast.ok{background:var(--ok)}.toast.err{background:var(--err)}@keyframes slidein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.rowbtns{justify-content:flex-end;gap:.4rem;display:flex}.repeater-row{grid-template-columns:70px 1fr 1fr auto;align-items:center;gap:.4rem;margin-bottom:.4rem;display:grid}.empty{text-align:center;color:var(--muted);padding:2.5rem 1rem}.empty .big{margin-bottom:.5rem;font-size:2rem}.hint{color:var(--muted);border:1px solid var(--line);background:#f8fafc;border-radius:9px;margin-top:.6rem;padding:.6rem .8rem;font-size:.8rem}
