:root{--nav:#0b1f3a;--blue:#1769e0;--green:#159a68;--bg:#f4f7fb;--line:#e2e7ef;--muted:#667085;--red:#d33}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:Inter,Arial,sans-serif;color:#172033}aside{width:245px;position:fixed;left:0;top:0;bottom:0;background:var(--nav);color:#fff;padding:20px 12px;z-index:5}.logo{font-size:22px;font-weight:900;padding:10px;margin-bottom:18px}.logo small{display:block;font-size:10px;opacity:.65;letter-spacing:1px;margin-top:4px}aside>a{display:block;color:#dce6f5;text-decoration:none;padding:10px 12px;border-radius:7px;margin:2px 0;font-size:14px}aside>a.on,aside>a:hover{background:#205daf;color:#fff}aside footer{position:absolute;bottom:18px;left:22px;font-size:11px;line-height:1.7}aside footer a{color:#fff}main{margin-left:245px;padding:24px;max-width:1550px}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}h1{margin:0;font-size:25px}h2{margin-top:0}header span,.hint,small{color:var(--muted);font-size:12px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.kpis>div{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px}.kpis b{display:block;font-size:25px;margin-top:8px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:16px;box-shadow:0 2px 12px #00000007}.form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form textarea{grid-column:1/-1;min-height:80px}input,select,textarea{font:inherit;padding:10px;border:1px solid #ccd4e0;border-radius:7px;width:100%;background:#fff}button,.button{font:inherit;background:var(--blue);color:#fff;border:0;border-radius:7px;padding:10px 14px;cursor:pointer;text-decoration:none;display:inline-block}.top{display:flex;justify-content:space-between;align-items:center}table{width:100%;border-collapse:collapse;font-size:13px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left}th{color:var(--muted);font-weight:600}.kanban{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;overflow:auto}.kanban>div{background:#f6f8fb;border-radius:8px;padding:8px;min-width:120px}.kanban strong{display:block;font-size:22px;margin:7px 0}.kanban article{background:#fff;border:1px solid var(--line);border-radius:6px;padding:7px;margin-top:6px;font-size:11px}.kanban article small{display:block;margin-top:4px}.metric{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0}.metric b{font-size:20px}.calendarHead{display:flex;justify-content:center;gap:15px;align-items:center;margin:15px}.monthgrid{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid var(--line);border-top:1px solid var(--line)}.day{min-height:105px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px}.day.head{min-height:auto;background:#f7f9fc;font-weight:bold}.ev{background:#eaf2ff;color:#1459bd;padding:4px;margin-top:5px;border-radius:4px}.ev small{display:block;color:#1459bd}.modal{display:none;position:fixed;inset:0;background:#0008;align-items:center;justify-content:center;z-index:10}.modal.show{display:flex}.modalbox{background:#fff;border-radius:12px;padding:20px;width:min(600px,92vw)}.tabs{display:flex;gap:8px;margin-bottom:15px}.tabs a{padding:8px 13px;border:1px solid var(--line);border-radius:18px;text-decoration:none;color:#172033}.add{display:grid;grid-template-columns:1fr 110px 170px 100px;gap:8px;margin:16px 0}.tot{text-align:right;border-top:1px solid var(--line);padding:15px;line-height:1.8}.tot b{font-size:23px;color:var(--green)}.qpage{margin:0 auto;max-width:1250px}.login{min-height:100vh;display:flex;align-items:center;justify-content:center}.loginbox{background:#fff;width:360px;padding:30px;border-radius:14px;box-shadow:0 15px 50px #0002}.brand{font-weight:900;font-size:22px;color:var(--nav)}.loginbox input,.loginbox button{margin:7px 0}.loginbox button{width:100%}.err{background:#fff0f0;color:#a00;padding:9px;border-radius:6px}.low{background:#fff3f3}@media(max-width:1050px){aside{position:static;width:100%;height:auto}aside footer{position:static;margin:12px}main{margin:0}.kpis{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(4,1fr)}}@media(max-width:650px){.kpis,.form{grid-template-columns:1fr}.form textarea{grid-column:auto}.add{grid-template-columns:1fr}.day{min-height:75px;padding:4px}table{font-size:11px}.card{padding:12px}}@media print{aside,.top,.add,.qpage header a{display:none!important}main,.qpage{margin:0;padding:0}.card{box-shadow:none;border:0}}
.ok{background:#edf9f1;color:#176b35;padding:9px;border-radius:6px;margin-bottom:12px}.small{padding:6px 9px;font-size:12px}.form button.small{width:auto}.tabs a:hover{background:#f3f6fb}.measure input[readonly]{background:#f3f5f8}.scan-card{margin-bottom:16px}.scan-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.uploadbox{display:flex!important;flex-direction:column;align-items:center;justify-content:center;min-height:150px;border:2px dashed #b8c4d6;border-radius:12px;padding:20px;margin:12px 0;background:#f8fafc;cursor:pointer;text-align:center}.uploadbox input{margin-bottom:12px}.uploadbox strong{font-size:18px}.uploadbox small{margin-top:6px;color:#667085}.hint{padding:10px 12px;border-radius:8px;background:#f1f5f9;margin-bottom:14px;color:#475467}.warn{color:#9a3412;font-weight:700}.ok{color:#166534;font-weight:700}.badge{display:inline-block;padding:5px 9px;border-radius:12px;background:#eaf2ff;color:#1459bd;font-size:11px}
