:root{--bg:#f4f6f8;--card:#fff;--text:#16202a;--muted:#687381;--border:#dfe4ea;--accent:#1f5eff;--accent-soft:#e9efff;--danger:#b42318;--danger-soft:#fff1f0;--ok:#067647;--ok-soft:#ecfdf3;--warn:#b54708;--warn-soft:#fff7ed;--radius:18px}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button,.button{appearance:none;border:1px solid var(--border);background:#fff;color:var(--text);border-radius:14px;padding:12px 15px;min-height:46px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.soft{background:var(--accent-soft);border-color:#c9d6ff}.success{background:var(--ok-soft);color:var(--ok);border-color:#abefc6}.warning{background:var(--warn-soft);color:var(--warn);border-color:#fed7aa}.danger{background:var(--danger-soft);color:var(--danger);border-color:#fecdca}.shell{max-width:1420px;margin:0 auto;padding:16px}.topbar{display:flex;gap:16px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-bottom:14px}.brand{font-size:1.3rem;font-weight:900}.clock{font-size:2.4rem;font-weight:900;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.narrow{max-width:650px;margin:40px auto}.grid{display:grid;gap:12px}.grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}.stack{display:flex;flex-direction:column;gap:10px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.section-title{margin:0 0 10px;font-size:1.08rem}.big-action{font-size:1.05rem;padding:17px}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);padding:6px 10px;border-radius:999px;font-size:.9rem}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;background:#98a2b3}.dot.ok{background:#12b76a}.dot.warn{background:#f79009}.dot.danger{background:#f04438}.metric{font-size:1.45rem;font-weight:900;font-variant-numeric:tabular-nums}.timer{font-size:1.8rem;font-weight:900;font-variant-numeric:tabular-nums}.process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.process-button{min-height:64px;text-align:center}.worker-card{min-width:0}.worker-card .name{font-size:1.1rem;font-weight:900}.worker-card .state{font-size:.93rem}.active-job{border-left:6px solid var(--accent)}.job-title{font-size:1.1rem;font-weight:900}.job-list{display:flex;flex-direction:column;gap:12px}.hidden{display:none!important}label{display:block;font-size:.92rem;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:12px;padding:11px 12px;background:#fff;color:var(--text);margin-top:5px;min-height:44px}input[type=checkbox],input[type=radio]{width:auto;min-height:auto;margin:0}textarea{min-height:90px;resize:vertical}.checkline{display:flex;gap:9px;align-items:center;padding:9px 0}.notice{padding:11px 13px;border-radius:12px;margin:10px 0}.notice.ok{background:var(--ok-soft);color:var(--ok)}.notice.bad{background:var(--danger-soft);color:var(--danger)}.notice.warn{background:var(--warn-soft);color:var(--warn)}.modal-backdrop{position:fixed;inset:0;background:rgba(16,24,40,.48);display:flex;align-items:flex-start;justify-content:center;padding:28px 14px;overflow:auto;z-index:50}.modal{width:min(820px,100%);background:#fff;border-radius:20px;border:1px solid var(--border);padding:18px}.modal h2{margin-top:0}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.tab{padding:10px 13px}.tab.current{background:var(--accent);color:#fff;border-color:var(--accent)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:9px;border-bottom:1px solid var(--border);vertical-align:top}th{font-size:.85rem;color:var(--muted)}.table-wrap{overflow:auto}.kanban{display:grid;grid-template-columns:repeat(4,minmax(230px,1fr));gap:12px;overflow:auto}.kanban-col{background:#edf1f5;border-radius:16px;padding:12px;min-height:180px}.job-chip{background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px;margin-top:9px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(160px,1fr));gap:9px;overflow:auto}.calendar-day{background:#fff;border:1px solid var(--border);border-radius:14px;padding:10px;min-height:170px}.calendar-day h4{margin:0 0 8px}.money{font-variant-numeric:tabular-nums}.private{border:2px solid #c9d6ff}.tv .clock{font-size:3rem}.tv .worker-card,.tv .active-job{padding:18px}.tv .job-title{font-size:1.25rem}.badge-urgent{background:#fef3f2;color:#b42318}.badge-high{background:#fff7ed;color:#b54708}.badge-normal{background:#f2f4f7;color:#475467}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.spacer{height:8px}.login-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.kpi{padding:14px;border-radius:14px;background:#f8fafc;border:1px solid var(--border)}.kpi .v{font-size:1.45rem;font-weight:900}.small{font-size:.88rem}.right{text-align:right}@media(max-width:980px){.process-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.shell{padding:10px}.grid2,.grid3,.grid4{grid-template-columns:1fr}.process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.clock{font-size:2rem}.timer{font-size:1.45rem}.modal-backdrop{padding:10px}.calendar{grid-template-columns:repeat(7,minmax(145px,1fr))}}@media(max-width:420px){.process-grid{grid-template-columns:1fr 1fr}.button,button{padding:11px 12px}.clock{font-size:1.8rem}}

/* v3 */
.top-gap{margin-top:16px}.top-gap-sm{margin-top:9px}.modal-wide{width:min(1080px,100%)}.admin-split{grid-template-columns:minmax(340px,.9fr) minmax(500px,1.4fr)}
.flow-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.flow-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:13px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;text-align:left;min-height:68px}.flow-card.static{cursor:default}.flow-step{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#eef2f6;font-weight:900}.flow-count{font-size:1.35rem;font-weight:900}.quick-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:16px;min-height:90px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-decoration:none;color:var(--text)}.quick-card strong{font-size:1.05rem}.quick-card span{font-size:.88rem;color:var(--muted);font-weight:500;margin-top:4px}
.list-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:13px;background:#fff;padding:10px 12px;text-align:left;color:var(--text)}button.list-row{cursor:pointer}.list-row.static{cursor:default}.list-row span{min-width:0}.list-row small{display:block;color:var(--muted);font-weight:500;margin-top:3px}.list-row .right{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.status-badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:.82rem;font-weight:800;white-space:nowrap}.status-ordered{background:#f2f4f7;color:#475467}.status-receiving{background:#eff8ff;color:#175cd3}.status-pending{background:#fff7ed;color:#b54708}.status-in_progress,.status-finishing{background:#ecfdf3;color:#067647}.status-done{background:#eef4ff;color:#3538cd}.status-cancelled{background:#fef3f2;color:#b42318}
.process-wrap{display:flex;gap:5px;flex-wrap:wrap}.process-chip{display:inline-flex;border:1px solid var(--border);border-radius:999px;padding:4px 8px;font-size:.78rem;background:#fff}.process-chip.done{background:var(--ok-soft);color:var(--ok);border-color:#abefc6}.process-edit{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:12px;padding:8px}.process-edit .checkline{flex:1;margin:0}.process-done-toggle{min-height:38px;padding:7px 10px;font-size:.82rem}
.check-card{border:1px solid var(--border);border-radius:12px;padding:12px;display:flex;gap:9px;align-items:center;margin-top:0;min-height:46px}.check-card input{width:auto;margin:0}.delivery-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}.delivery-card{display:grid;grid-template-columns:46px 1fr minmax(170px,.35fr) auto;gap:12px;align-items:center;border:1px solid var(--border);border-radius:16px;background:#fff;padding:12px}.delivery-card.today{border-left:6px solid #f79009}.delivery-card.overdue{border-left:6px solid #f04438}.delivery-card.tomorrow{border-left:6px solid #fdb022}.delivery-rank{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#eef2f6;font-weight:900}.delivery-main{min-width:0}.delivery-due{display:flex;flex-direction:column}.delivery-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.inline-edit{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end}.material-admin{display:grid;grid-template-columns:1.2fr .55fr .65fr 1fr auto;gap:7px;align-items:end;border-bottom:1px solid var(--border);padding-bottom:9px}.material-admin input,.material-admin select{margin:0}.purchase-group,.purchase-order{border:1px solid var(--border);border-radius:15px;padding:13px;background:#fff}.purchase-order details{margin-top:9px}.purchase-order summary{cursor:pointer;font-weight:700}.help-list{line-height:1.55}.procurement-box{border:2px solid #d1e9ff}.tiny{min-height:28px;padding:3px 7px;font-size:.75rem;margin-left:5px}
.priority-panel{border-left:6px solid var(--accent)}.priority-jobs{display:flex;flex-direction:column;gap:9px;margin-top:12px}.priority-job{display:grid;grid-template-columns:44px 1fr minmax(170px,.55fr);gap:10px;align-items:center;border:1px solid var(--border);border-radius:15px;padding:12px;background:#fff}.priority-rank{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#eef2f6;font-weight:900}.priority-main{min-width:0}.priority-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}.compact-lists details>summary{cursor:pointer}.tablet-top{position:sticky;top:0;z-index:8;background:var(--bg);padding-top:3px}.tablet-shell .clock{font-size:2.7rem}.queue-tv{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center}.queue-num{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#eef2f6;font-weight:900}.tv-main{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}
@media(max-width:1100px){.admin-split,.tv-main{grid-template-columns:1fr}.delivery-card{grid-template-columns:42px 1fr auto}.delivery-due{grid-column:2}.delivery-actions{grid-column:3;grid-row:1/3}.material-admin{grid-template-columns:1fr 1fr}.material-admin button{grid-column:1/-1}.flow-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.flow-strip{grid-template-columns:1fr 1fr}.priority-job{grid-template-columns:36px 1fr}.priority-actions{grid-column:1/-1;justify-content:stretch}.priority-actions button{flex:1}.delivery-card{grid-template-columns:38px 1fr}.delivery-due,.delivery-actions{grid-column:2}.delivery-actions{grid-row:auto;justify-content:flex-start}.admin-tabs{overflow:auto;flex-wrap:nowrap;padding-bottom:3px}.admin-tabs .tab{white-space:nowrap}.material-admin{grid-template-columns:1fr}.inline-edit{grid-template-columns:1fr}.flow-card{min-height:58px}}

/* v4 */
.blocked-job{border-left:6px solid var(--danger);background:#fffafa}.blocked-pill{background:var(--danger-soft);color:var(--danger);border-color:#fecdca}.danger-text{color:var(--danger);font-weight:800}.completed-part{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--border);border-radius:13px;background:#fff;padding:11px 12px}.process-edit-v4{display:grid;grid-template-columns:minmax(170px,1fr) 100px auto}.estimate-mini{font-size:.78rem;color:var(--muted)}.estimate-mini input{margin-top:3px;padding:7px 8px;min-height:38px}.attachments-box{border:2px solid #e4e7ec}.requested-job{outline:4px solid rgba(31,94,255,.22);outline-offset:2px}.top-gap{margin-top:16px}.top-gap-sm{margin-top:9px}.file-note{word-break:break-word}
@media(max-width:760px){.completed-part{align-items:flex-start;flex-direction:column}.completed-part>.row{width:100%}.completed-part>.row button{flex:1}.process-edit-v4{grid-template-columns:1fr 90px}.process-edit-v4 .process-done-toggle{grid-column:1/-1}}
