:root{--bg:#f4f7fb;--panel:#fff;--text:#172033;--muted:#748096;--blue:#2878e5;--line:#e4e9f1;--side:#151d29}*{box-sizing:border-box}body{margin:0;font:14px/1.45 Inter,system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--blue);text-decoration:none}aside{position:fixed;inset:0 auto 0 0;width:220px;background:linear-gradient(180deg,#18212e,#111923);padding:22px 12px;color:#fff;overflow:auto}.side-brand{font-size:27px;font-weight:800;padding:0 10px 24px}.side-brand small{display:block;font-size:12px;font-weight:400;opacity:.75}.nav{display:flex;gap:11px;align-items:center;padding:10px 12px;border-radius:8px;color:#e7edf6;margin:3px 0}.nav:hover,.nav.active{background:#286fc7;color:#fff}.nav span{width:18px;text-align:center}.logout{margin-top:25px}.app{margin-left:220px;min-height:100vh}header{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 22px;position:sticky;top:0;z-index:5}.menu{display:none}.search{font-size:15px;color:#59667a;flex:1}.user{font-weight:600}.dot{display:inline-block;width:9px;height:9px;background:#22b65f;border-radius:50%;margin-right:7px}main{padding:24px;max-width:1600px;margin:auto}h1{font-size:28px;margin:0 0 4px}h2{font-size:18px;margin:0 0 14px}.muted{color:var(--muted);margin-top:0}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0}.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px}.kpi small{display:block;color:#556175;margin-bottom:8px}.kpi strong{font-size:27px}.kpi.blue{background:#edf5ff}.kpi.green{background:#effaf3}.kpi.orange{background:#fff7e7}.kpi.purple{background:#f6f0ff}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;margin:16px 0;box-shadow:0 2px 9px #18263b0a}.panel-title,.titlebar{display:flex;align-items:center;justify-content:space-between;gap:15px}.kanban{display:grid;grid-template-columns:repeat(9,1fr);gap:8px}.kanban>div{padding:12px 8px;background:#f5f7fb;border:1px solid var(--line);border-radius:8px;text-align:center}.kanban small{display:block;min-height:38px}.kanban b{font-size:22px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px 9px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:12px;color:#667287}.badge{display:inline-block;background:#edf2f8;padding:4px 8px;border-radius:6px;font-size:12px}.badge.good{background:#e5f7eb;color:#14743a}.badge.bad{background:#feeaea;color:#ba2525}.badge.warn{background:#fff3d8;color:#9b6700}.btn{border:1px solid #d6deea;background:#fff;border-radius:7px;padding:9px 13px;cursor:pointer;font-weight:600;color:#223047}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn.small,.btn.tiny{padding:6px 9px;font-size:12px}.full{width:100%;margin-top:16px}.inline{display:flex;gap:6px}.alert{padding:11px 14px;border-radius:8px;margin-bottom:15px;background:#e9f8ef;color:#126a35}.alert.err{background:#ffeded;color:#a92121}.alert.ok{background:#e9f8ef;color:#126a35}label{display:block;font-size:12px;font-weight:700;margin:12px 0 5px;color:#526078}input,select,textarea{width:100%;border:1px solid #d8e0ea;border-radius:7px;padding:10px;background:#fff;color:#172033}textarea{min-height:80px;resize:vertical}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.formpanel{max-width:900px}dialog{border:0;border-radius:13px;padding:0;box-shadow:0 20px 60px #0004;width:min(560px,94vw)}dialog::backdrop{background:#15203099}dialog form{padding:20px}.modalhead{display:flex;justify-content:space-between;align-items:center}.modalhead button{border:0;background:transparent;font-size:26px;cursor:pointer}.auth{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#eaf3ff,#f6f8fc 50%,#eef2f8)}.auth-card{width:min(430px,92vw);background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:0 18px 50px #17365d18}.auth-card.wide{width:min(760px,94vw)}.auth-card .brand{font-size:34px;font-weight:850;color:#1d6fd0}.auth-card h1{margin-top:8px}.tiny{font-size:12px;color:var(--muted);margin-top:18px}.hidden{display:none}hr{border:0;border-top:1px solid var(--line);margin:20px 0}@media(max-width:1050px){.cards{grid-template-columns:1fr 1fr}.kanban{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){aside{transform:translateX(-100%);transition:.2s;z-index:20}body.open aside{transform:none}.app{margin-left:0}.menu{display:block;border:0;background:transparent;font-size:22px;margin-right:12px}.cards{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(2,1fr)}main{padding:16px}.titlebar{align-items:flex-start;flex-direction:column}}
@media print{aside,header,.no-print,.btn,dialog{display:none!important}.app{margin:0!important}.panel{box-shadow:none!important;border:0!important}.invoice-print{max-width:none!important}body{background:#fff!important}}
.invoice-actions{display:flex;gap:8px;flex-wrap:wrap}.invoice-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:16px 0}.invoice-meta>div{padding:12px;background:#f7f8fa;border-radius:10px}.invoice-totalbox{text-align:right;font-size:1.3rem;margin-top:18px}.danger-note{padding:12px;border:1px solid #e5a7a7;border-radius:10px;background:#fff7f7}.readonly-note{padding:12px;border-radius:10px;background:#f3f5f8;margin-bottom:14px}
.health{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.health>div{padding:14px;border:1px solid #e5e7eb;border-radius:12px}.health .ok{background:#ecfdf5}.health .warn{background:#fff7ed}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.tabs a{padding:8px 12px;border:1px solid #ddd;border-radius:8px;text-decoration:none}.mono{font-family:ui-monospace,monospace}.right{text-align:right}.danger{background:#fee2e2!important}
