:root{--bg:#f4f4f5;--panel:#ffffff;--panel2:#f7f7f8;--hover:#ececee;--ink:#2b2a2f;--muted:#7d838a;--line:#e2e2e6;--acc:#e23b48;--acc-hover:#c92a37;--acc-soft:#fdecee;--dark:#2b2a2f;--link:#c92a37;--info:#3b7ddd;--ok:#2f9e52;--warn:#e0a400;--danger:#d72f3d;--teal:#1fae96;--font:20px }*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:var(--font)/1.35 -apple-system,Segoe UI,Roboto,Arial,sans-serif}button,input{font:inherit}a{color:var(--link)}input,select,textarea{width:100%;padding:14px 16px;border-radius:12px;border:2px solid var(--line);background:var(--panel);color:var(--ink);min-height:64px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--acc-soft)}input::placeholder{color:var(--muted)}.muted{color:var(--muted)}.error{color:var(--danger);padding:12px;border:1px solid var(--danger);border-radius:12px;background:var(--acc-soft)}.center{display:flex;align-items:center;justify-content:center;height:100%;padding:24px;text-align:center}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.card{background:var(--panel);border-radius:16px;padding:16px;border:1px solid var(--line);box-shadow:0 1px 2px #2b2a2f0f,0 1px 1px #2b2a2f08}h1{font-size:28px;margin:0 0 12px;letter-spacing:-.01em}h2{font-size:24px;margin:0 0 10px}h3{font-size:20px;margin:0 0 8px}.big-btn{min-height:72px;padding:0 20px;border:0;border-radius:16px;font-size:22px;font-weight:600;color:#fff;background:var(--acc);cursor:pointer;touch-action:manipulation}.big-btn:hover{background:var(--acc-hover)}.big-btn:disabled{opacity:.45;cursor:default}.big-btn:active{transform:scale(.98)}.tone-neutral{background:var(--dark)}.tone-neutral:hover{background:#3d3c42}.tone-danger{background:var(--danger)}.tone-warn{background:var(--warn)}.tone-success{background:var(--ok)}.numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.numpad .big-btn{min-height:64px}.numpad-ok{grid-column:1/-1}.pin-dots{font-size:34px;letter-spacing:10px;text-align:center}.login{max-width:520px;margin:0 auto;padding:32px 20px;display:flex;flex-direction:column;gap:16px}.tabs{display:flex;gap:8px}.tabs button{flex:1;min-height:56px;border-radius:12px;border:2px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer}.tabs button:hover{background:var(--hover)}.tabs .active{background:var(--dark);border-color:var(--dark);color:#fff}.scan-input{position:relative}.scan-cam{position:absolute;right:8px;top:8px;min-height:48px;min-width:48px;border:0;border-radius:10px;background:var(--dark);color:#fff;font-size:22px}.cam-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;display:flex;align-items:center;justify-content:center;z-index:50}.cam-overlay video{max-width:100%;max-height:100%}.sf{display:flex;flex-direction:column;height:100%}.sf-header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--panel);border-bottom:1px solid var(--line)}.sf-user{font-weight:600;flex:1}.sf-logout{min-width:56px;min-height:56px;border:0;border-radius:12px;background:var(--dark);color:#fff;font-size:22px}.sf-menu{display:inline-flex;align-items:center;min-height:56px;padding:0 16px;border-radius:12px;background:var(--panel2);color:var(--ink);font-weight:600;font-size:16px;text-decoration:none;white-space:nowrap}.sf-menu:hover{background:var(--hover)}.kanban-card{cursor:grab}.kanban-card[draggable=true]:active{cursor:grabbing}.kanban-card.dragging{opacity:.45}.kanban-col.drop-target{outline:2px dashed var(--acc);outline-offset:-2px;background:var(--hover)}.sf-main{flex:1;overflow:auto;padding:16px}.offline-ind{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--panel2);font-size:16px}.offline-ind .dot{width:12px;height:12px;border-radius:50%;background:var(--ok)}.state-offline .dot{background:var(--warn)}.state-error .dot{background:var(--danger)}.state-blocked{background:var(--danger);color:#fff}.state-blocked .dot{background:#fff}.pending{color:var(--muted)}.status-badge{display:inline-block;padding:6px 12px;border-radius:999px;color:#fff;font-weight:600;background:var(--dark)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b2a2f73;display:flex;align-items:flex-end;z-index:40}.sheet{width:100%;background:var(--panel);border-radius:20px 20px 0 0;padding:20px;display:flex;flex-direction:column;gap:14px;box-shadow:0 -8px 32px #2b2a2f26}.sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.toasts{position:fixed;top:12px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:60}.toast{padding:14px 20px;border-radius:12px;background:var(--dark);color:#fff;box-shadow:0 8px 24px #2b2a2f40}.toast-ok{background:var(--ok)}.toast-warn{background:var(--warn)}.toast-error{background:var(--danger)}.office{display:grid;grid-template-columns:200px 1fr;height:100%;font-size:15px}.office-nav{background:var(--panel);padding:14px 12px;display:flex;flex-direction:column;gap:2px;border-right:1px solid var(--line);overflow:auto}.office-nav a{color:var(--ink);text-decoration:none;padding:9px 12px;border-radius:8px}.office-nav a:hover{background:var(--hover)}.office-nav a.active{background:var(--dark);color:#fff}.brand{font-weight:800;font-size:19px;letter-spacing:.5px;margin-bottom:10px;display:flex;flex-direction:column;align-items:flex-start;gap:0;line-height:1.15;color:var(--ink)}.brand-version{font-size:11px;font-weight:400;color:var(--muted);letter-spacing:0;line-height:1.2}.office-nav a.brand{padding:4px 6px;border-radius:8px;text-decoration:none;color:var(--ink)}.office-nav a.brand:hover{background:var(--hover)}.office-nav a.brand:hover .brand-logo{color:var(--acc)}.brand-logo{white-space:nowrap}.brand-logo span{color:var(--acc);margin:0 1px}.login h1.brand-logo{font-size:34px;font-weight:800;letter-spacing:.5px;text-align:center}.office-user{margin-top:auto;display:flex;flex-direction:column;gap:6px;padding-top:12px;border-top:1px solid var(--line)}.office-user button{min-height:40px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer}.office-user button:hover{background:var(--hover)}.office-main{padding:20px;overflow:auto}.office input,.office select,.office textarea{min-height:40px;padding:8px 12px;font-size:15px;border-width:1px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left}th{color:var(--muted);font-weight:600;background:var(--panel2)}tbody tr:hover{background:var(--bg)}.task-card{background:var(--panel);border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:14px;border:2px solid var(--line)}.task-text{font-size:28px;font-weight:700}.task-route{font-size:22px;color:var(--muted)}.state-bar{padding:18px 20px;border-radius:16px;color:#fff;font-size:30px;font-weight:700;display:flex;justify-content:space-between;align-items:center}.kpi-tile{background:var(--panel);border-radius:12px;padding:12px;border:1px solid var(--line)}.kpi-tile b{display:block;font-size:26px}.feed{display:flex;flex-direction:column;gap:6px;font-size:14px;max-height:60vh;overflow:auto}.feed div{padding:6px 8px;border-left:3px solid var(--line)}.plant-map{width:100%;height:auto;background:var(--panel2);border-radius:12px;border:1px solid var(--line)}@media (max-width:900px){.office{grid-template-columns:1fr}.office-nav{flex-direction:row;flex-wrap:wrap}.office-user{margin-top:0;border-top:0;padding-top:0}}
