:root{--bg:#f3f5f7;--surface:#fff;--ink:#101828;--muted:#667085;--line:#e4e7ec;--green:#12b76a;--amber:#f79009;--red:#f04438;--blue:#2563eb;--dark:#0b0f14;--soft:#f8fafb;--shadow:0 16px 38px rgba(16,24,40,.08);--radius:18px}
*{box-sizing:border-box}html{background:var(--bg)}html,body{margin:0;padding:0;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{min-height:100vh;background:linear-gradient(180deg,#f7f8fa 0,#f2f4f7 100%)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:244px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--dark);color:#fff;padding:26px 18px 18px;display:flex;flex-direction:column;gap:26px}.brand-row{display:flex;align-items:center;gap:12px;padding:0 8px}.brand-mark{width:42px;height:42px;border-radius:12px;background:#fff;color:#111;font-weight:950;display:grid;place-items:center;font-size:20px}.brand{font-weight:950;letter-spacing:.08em;font-size:14px}.brand-sub{font-size:9px;color:#7f8997;letter-spacing:.16em;margin-top:3px}.nav-list{display:flex;flex-direction:column;gap:7px}.nav-item{border:0;background:transparent;color:#98a2b3;padding:13px 14px;border-radius:12px;text-align:left;font-weight:750;display:flex;align-items:center;gap:10px}.nav-item span{font-size:9px;color:#475467}.nav-item:hover,.nav-item.active{background:#1a212b;color:#fff}.nav-item.active span{color:#98a2b3}.side-summary{border-top:1px solid #202834;padding:16px 8px 0}.side-summary p{margin:0 0 9px;font-size:9px;font-weight:900;letter-spacing:.14em;color:#667085}.side-cap{display:flex;align-items:center;gap:9px}.side-cap strong{font-size:18px}.side-cap span{height:6px;flex:1;background:#202834;border-radius:99px;overflow:hidden}.side-cap i{display:block;height:100%;background:#fff;border-radius:99px}.side-summary small{display:block;color:#7f8997;line-height:1.45;margin-top:8px}.worker-switch-card{margin-top:auto;border:1px solid #263140;background:#151b23;padding:13px;border-radius:15px;display:flex;align-items:center;justify-content:space-between;gap:10px}.worker-switch-card strong,.worker-switch-card span{display:block}.worker-switch-card strong{font-size:12px}.worker-switch-card span{font-size:9px;color:#8f9baa;margin-top:3px}.switch-btn{border:0;background:#fff;color:#111;padding:8px 10px;border-radius:9px;font-weight:850;font-size:11px}.user-chip{position:relative;display:flex;align-items:center;gap:10px;padding:7px}.avatar{width:38px;height:38px;border-radius:50%;background:#28313d;display:grid;place-items:center;font-weight:850;font-size:11px}.user-chip strong,.user-chip span{display:block}.user-chip strong{font-size:11px}.user-chip span{font-size:9px;color:#8f9baa;margin-top:2px}.presence-dot{position:absolute;left:36px;bottom:10px;width:9px;height:9px;border-radius:50%;background:var(--green);border:2px solid var(--dark)}.main-content{padding:26px 30px 70px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.eyebrow{font-size:10px;letter-spacing:.14em;font-weight:850;color:#98a2b3;margin:0 0 6px}.topbar h1,.section-heading h2,.panel h2,.control-toolbar h2{margin:0}.topbar h1{font-size:29px;letter-spacing:-.04em}.top-actions{display:flex;gap:9px}.ghost-btn,.primary-btn,.icon-btn{border-radius:11px;padding:10px 14px;font-weight:800;border:1px solid var(--line);background:#fff;color:#344054}.primary-btn{background:#111827;color:#fff;border-color:#111827}.icon-btn{width:39px;padding:0;position:relative;font-size:0}.icon-btn::after{content:'!';font-size:14px;font-weight:950}.notification-dot{position:absolute;right:7px;top:7px;width:7px;height:7px;background:var(--red);border-radius:50%;border:2px solid #fff}.full{width:100%;margin-top:15px}.view{display:none}.active-view{display:block}.status-strip{background:#111827;color:#fff;border-radius:15px;padding:11px 15px;display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.status-strip>div:first-child{display:grid;grid-template-columns:auto auto;column-gap:8px;align-items:center}.status-strip strong{font-size:11px}.status-strip small{grid-column:2;color:#98a2b3;font-size:9px}.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;position:relative}.green-pulse{background:var(--green)}.green-pulse::after{content:'';position:absolute;inset:-4px;border:1px solid var(--green);border-radius:50%;animation:pulse 1.8s infinite}@keyframes pulse{0%{transform:scale(.7);opacity:.9}100%{transform:scale(1.8);opacity:0}}.status-strip-stats{display:flex;gap:18px;font-size:10px;color:#98a2b3}.status-strip-stats b{color:#fff;margin-right:3px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.kpi-card{background:var(--surface);padding:17px;border-radius:16px;box-shadow:0 1px 1px rgba(0,0,0,.02);border:1px solid #e9edf1}.kpi-card.attention{border-color:#fecdca;background:linear-gradient(180deg,#fff,#fffafa)}.kpi-label{display:flex;justify-content:space-between;align-items:center}.kpi-label span{font-size:11px;color:var(--muted);font-weight:700}.kpi-label i{font-style:normal;font-size:10px;color:#98a2b3}.kpi-card strong{display:block;font-size:29px;margin:4px 0 2px;letter-spacing:-.03em}.kpi-card small{display:block;font-size:9px;color:#98a2b3}.ok{color:var(--green)!important}.danger{color:var(--red)!important}.control-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:27px 0 12px}.control-toolbar h2{font-size:20px;letter-spacing:-.02em}.toolbar-actions{display:flex;align-items:center;gap:13px}.filter-chips{display:flex;padding:3px;background:#e9edf1;border-radius:11px}.filter-chip{border:0;background:transparent;color:#667085;border-radius:8px;padding:7px 9px;font-size:9px;font-weight:850}.filter-chip.active{background:#fff;color:#111827;box-shadow:0 1px 3px rgba(16,24,40,.08)}.drag-hint{font-size:9px;color:#98a2b3}.lane-grid{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:4px}.lane{background:#eaedf0;border:1px solid #e3e7eb;border-radius:17px;padding:10px;min-height:360px;transition:.15s}.lane.drag-over{outline:2px solid #111827;outline-offset:2px;background:#e4e8ec}.lane-head{display:flex;justify-content:space-between;align-items:center;padding:5px 4px 10px}.lane-head div{display:flex;align-items:center;gap:7px}.lane-head span{font-size:10px;font-weight:950;letter-spacing:.08em}.lane-head strong{background:#fff;border-radius:7px;padding:3px 7px;font-size:10px}.lane-head small{font-size:9px;color:#7b8492}.capacity-alert{color:#b54708!important;font-weight:800}.lane-dropzone{min-height:295px}.job-card{position:relative;background:#fff;border:1px solid #e1e6eb;border-radius:14px;padding:13px 13px 12px;margin-bottom:9px;box-shadow:0 3px 10px rgba(16,24,40,.04);overflow:hidden;transition:transform .16s,box-shadow .16s,opacity .16s}.job-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.job-card.dragging{opacity:.45;transform:rotate(1.5deg)}.job-card.hidden{display:none}.job-status{position:absolute;left:0;top:0;bottom:0;width:4px}.green{background:var(--green)}.amber{background:var(--amber)}.red{background:var(--red)}.gray{background:#98a2b3}.job-top{display:flex;justify-content:space-between;gap:8px}.job-top h3{font-size:14px;margin:0 0 2px}.job-top p,.job-task{margin:0}.job-top p{font-size:9px;color:#98a2b3;font-weight:750}.job-task{font-size:11px;color:#475467;margin:12px 0 10px}.priority,.tag{font-size:8px;font-weight:950;letter-spacing:.04em;padding:5px 6px;border-radius:7px;background:#ecfdf3;color:#067647;align-self:flex-start;white-space:nowrap}.tag{background:#f2f4f7;color:#475467}.dark-tag{background:#111827;color:#fff}.danger-tag{background:#fef3f2;color:#b42318}.progress{height:5px;background:#edf0f2;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:#111827;border-radius:999px}.job-meta{display:flex;justify-content:space-between;gap:7px;margin-top:10px;font-size:9px;color:#667085}.job-alert{background:#fef3f2;color:#b42318;padding:7px;border-radius:8px;font-size:9px;font-weight:850}.job-wait{background:#fffaeb;color:#7a2e0e;padding:7px;border-radius:8px;font-size:9px}.blocked{border-color:#fecdca}.bottom-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:12px;margin-top:14px}.panel{background:#fff;border:1px solid #e9edf1;border-radius:17px;padding:17px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.panel h2{font-size:16px}.panel-badge{font-size:8px;font-weight:900;color:#475467;background:#f2f4f7;padding:5px 7px;border-radius:7px}.text-btn{border:0;background:transparent;color:#475467;font-size:9px;font-weight:850}.alert-row,.delivery-row{display:grid;align-items:center;gap:10px;border-top:1px solid #f1f2f4;padding:12px 0}.alert-row{grid-template-columns:auto 1fr auto;text-align:left;background:transparent;border-left:0;border-right:0;border-bottom:0;width:100%}.actionable:hover{background:#fbfcfd}.alert-icon{width:33px;height:33px;border-radius:10px;display:grid;place-items:center;font-weight:950}.red-bg{background:#fef3f2;color:#d92d20}.amber-bg{background:#fffaeb;color:#dc6803}.alert-row strong,.alert-row p{margin:0}.alert-row strong{font-size:11px}.alert-row p{font-size:9px;color:#667085;margin-top:3px}.alert-row>span:last-child{font-size:8px;color:#98a2b3}.delivery-row{grid-template-columns:52px 1fr auto}.delivery-row>strong{font-size:12px}.delivery-row div b,.delivery-row div span{display:block}.delivery-row div b{font-size:11px}.delivery-row div span{font-size:8px;color:#98a2b3}.ready,.working,.danger-pill{font-size:8px;font-weight:950;padding:5px 7px;border-radius:7px}.ready{background:#ecfdf3;color:#067647}.working{background:#eff8ff;color:#175cd3}.danger-pill{background:#fef3f2;color:#b42318}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:4px 0 16px}.section-heading h2{font-size:22px;letter-spacing:-.03em}.section-copy{margin:5px 0 0;color:#667085;font-size:10px;max-width:560px;line-height:1.45}.workshop-status-row{display:flex;gap:16px;margin:0 0 12px;font-size:9px;color:#667085}.workshop-status-row span{display:flex;align-items:center;gap:5px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.workshop-map{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.zone{background:#fff;border:1px solid #e7ebef;border-radius:17px;padding:13px;min-height:180px}.wide-zone{grid-column:span 3;min-height:auto}.zone-title{display:flex;justify-content:space-between;font-size:10px;font-weight:950;letter-spacing:.08em;margin-bottom:9px}.zone-title span{background:#f2f4f7;padding:3px 6px;border-radius:6px}.zone-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.parking-card,.bay{border:1px solid #eaecf0;border-radius:11px;padding:11px;margin-bottom:7px;font-size:11px;background:#fff;text-align:left;width:100%;position:relative}.parking-card{margin:0}.parking-card b,.parking-card small{display:block}.parking-card small,.bay span,.bay small{display:block;color:#667085;font-size:8px;margin-top:3px}.parking-card em{position:absolute;right:10px;top:10px;font-style:normal;font-size:9px;font-weight:850}.ready-card{background:#f6fef9;border-color:#abefc6}.bay{display:grid;grid-template-columns:1fr auto}.bay b{grid-column:1/-1;font-size:9px;color:#667085}.bay.active{background:#f8fafc}.bay.free{border-style:dashed;background:#fcfcfd}.bay.free span{color:#067647;font-weight:900}.blocked-bay{background:#fef3f2;border-color:#fecdca}.week-nav{display:flex;align-items:center;gap:10px}.week-nav button{border:1px solid var(--line);background:#fff;width:31px;height:31px;border-radius:8px}.week-nav strong{font-size:10px}.planning-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.planning-summary div{background:#fff;border:1px solid #eaecf0;border-radius:13px;padding:13px}.planning-summary span,.planning-summary strong{display:block}.planning-summary span{font-size:9px;color:#667085}.planning-summary strong{font-size:19px;margin-top:4px}.planning-table-wrap{overflow:auto;background:#fff;border:1px solid #eaecf0;border-radius:17px}.planning-table{width:100%;border-collapse:collapse;min-width:760px}.planning-table th,.planning-table td{padding:14px;border-bottom:1px solid #f0f2f5;border-right:1px solid #f0f2f5;text-align:center}.planning-table th:first-child,.planning-table td:first-child{text-align:left}.planning-table th{font-size:9px;color:#667085;letter-spacing:.04em}.planning-table td:first-child b,.planning-table td:first-child span{display:block}.planning-table td:first-child b{font-size:11px}.planning-table td:first-child span{font-size:8px;color:#98a2b3;margin-top:3px}.today-col{background:#fbfcfd}.capacity{width:100%;border:0;border-radius:9px;padding:10px 7px;font-size:11px;font-weight:950}.capacity small{display:block;font-size:7px;margin-top:2px;opacity:.75}.c50,.c60{background:#f2f4f7;color:#475467}.c70,.c80{background:#ecfdf3;color:#067647}.c90{background:#fffaeb;color:#b54708}.c100{background:#fef3f2;color:#b42318}.planner-focus{margin-top:12px;background:#111827;color:#fff;border-radius:16px;padding:17px;display:flex;align-items:center;justify-content:space-between;gap:16px}.planner-focus h3,.planner-focus p{margin:0}.planner-focus h3{font-size:15px}.planner-focus p{font-size:9px;color:#98a2b3;margin-top:5px;max-width:600px;line-height:1.5}.planner-focus .primary-btn{background:#fff;color:#111827;border-color:#fff}.vehicle-heading{align-items:flex-end}.vehicle-tools{display:flex;gap:8px}.search-input{border:1px solid var(--line);border-radius:11px;padding:10px 13px;min-width:260px;background:#fff}.vehicle-list{background:#fff;border-radius:17px;border:1px solid #e9edf1;overflow:hidden}.vehicle-row{display:grid;grid-template-columns:46px 1.2fr 1.5fr 50px auto;align-items:center;gap:13px;padding:14px 17px;border:0;border-bottom:1px solid #f0f2f5;background:#fff;text-align:left;width:100%}.vehicle-row:hover{background:#fbfcfd}.vehicle-avatar{width:41px;height:41px;background:#111827;color:#fff;border-radius:11px;display:grid;place-items:center;font-size:8px;font-weight:950}.vehicle-row>div:nth-child(2) strong,.vehicle-row>div:nth-child(2) span{display:block}.vehicle-row>div:nth-child(2) strong{font-size:11px}.vehicle-row>div:nth-child(2) span{font-size:8px;color:#98a2b3;margin-top:3px}.vehicle-progress{height:6px;background:#edf0f2;border-radius:99px;overflow:hidden}.vehicle-progress span{display:block;height:100%;background:#111827}.vehicle-row>b{font-size:10px}.empty-search{display:none;text-align:center;color:#667085;font-size:10px;padding:34px}.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.member-card{background:#fff;border:1px solid #e8ebef;border-radius:17px;padding:15px}.member-top{display:flex;justify-content:space-between;align-items:flex-start}.member-avatar{width:43px;height:43px;border-radius:12px;background:#111827;color:#fff;display:grid;place-items:center;font-weight:950;font-size:11px}.member-card h3,.member-card p{margin:0}.member-card h3{font-size:14px;margin-top:11px}.member-card p{font-size:9px;color:#98a2b3;margin-top:3px}.member-load{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin-top:13px}.member-load>span{height:5px;background:#edf0f2;border-radius:99px;overflow:hidden}.member-load i{display:block;height:100%;background:#111827}.member-load.warn i{background:var(--amber)}.member-load b{font-size:8px;color:#667085}.member-task{margin-top:12px;padding-top:11px;border-top:1px solid #f0f2f5}.member-task b,.member-task span{display:block}.member-task b{font-size:10px}.member-task span{font-size:8px;color:#667085;margin-top:3px}.bottom-nav{display:none}.modal{position:fixed;inset:0;background:rgba(16,24,40,.45);z-index:60;display:none;align-items:flex-end;justify-content:center;padding:20px;backdrop-filter:blur(4px)}.modal.show{display:flex}.modal-sheet{width:min(620px,100%);background:#fff;border-radius:21px;padding:21px;position:relative;box-shadow:0 30px 60px rgba(16,24,40,.24);max-height:90vh;overflow:auto}.close-modal{position:absolute;right:16px;top:14px;width:33px;height:33px;border-radius:9px;border:1px solid var(--line);background:#fff;font-size:18px}.modal-sheet h2{font-size:26px;margin:0;letter-spacing:-.04em}.modal-reg{color:#98a2b3;font-weight:800;font-size:11px}.vehicle-sheet-head{display:flex;justify-content:space-between;align-items:flex-start;padding-right:44px}.stage-track{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:18px 0}.stage{position:relative;text-align:center}.stage::before{content:'';position:absolute;top:13px;left:-50%;width:100%;height:2px;background:#e4e7ec}.stage:first-child::before{display:none}.stage i{position:relative;z-index:1;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;margin:auto;background:#f2f4f7;color:#98a2b3;font-style:normal;font-size:9px;font-weight:900}.stage span{display:block;font-size:7px;color:#98a2b3;margin-top:4px}.stage.done i{background:#ecfdf3;color:#067647}.stage.done::before{background:#abefc6}.stage.current i{background:#111827;color:#fff}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.detail-grid div{background:#fbfcfd;border:1px solid #eef0f3;border-radius:11px;padding:11px}.detail-grid span,.detail-grid strong{display:block}.detail-grid span{font-size:8px;color:#98a2b3}.detail-grid strong{font-size:11px;margin-top:4px}.sheet-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.sheet-copy{font-size:10px;color:#667085;line-height:1.45;margin:6px 0 17px}.form-sheet label{display:block;font-size:9px;font-weight:850;color:#475467;margin-bottom:10px}.form-sheet input,.form-sheet select{width:100%;margin-top:5px;border:1px solid #dfe3e8;border-radius:10px;padding:11px;background:#fff}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.issue-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.issue-grid button{border:1px solid #e4e7ec;background:#fff;border-radius:14px;text-align:left;padding:15px}.issue-grid button:hover{border-color:#98a2b3}.issue-grid span{font-size:20px}.issue-grid b,.issue-grid small{display:block}.issue-grid b{margin-top:10px;font-size:11px}.issue-grid small{font-size:8px;color:#98a2b3;margin-top:2px}.move-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.move-options button{border:1px solid #e4e7ec;background:#fff;border-radius:12px;padding:13px;font-size:10px;font-weight:850}.load-hero{display:flex;align-items:baseline;gap:8px;margin:18px 0 8px}.load-hero strong{font-size:38px;letter-spacing:-.05em}.load-hero span{font-size:9px;color:#667085}.load-bar{height:8px;background:#edf0f2;border-radius:99px;overflow:hidden}.load-bar i{display:block;height:100%;background:#111827}.load-sheet>p:last-of-type{font-size:10px;color:#667085;line-height:1.5}.worker-screen{position:fixed;inset:0;z-index:80;background:#0b0f14;color:#fff;display:none;overflow:auto}.worker-screen.show{display:block}.worker-header{padding:calc(20px + env(safe-area-inset-top)) 18px 18px;display:flex;justify-content:space-between;align-items:flex-start}.worker-header p,.worker-header h2{margin:0}.worker-header p{font-size:9px;letter-spacing:.16em;color:#8f9baa;font-weight:900}.worker-header h2{margin-top:5px;font-size:19px}.worker-header button{border:1px solid #29313c;color:#fff;background:#151b23;border-radius:9px;padding:8px 11px}.worker-content{padding:8px 15px calc(30px + env(safe-area-inset-bottom));max-width:520px;margin:auto}.worker-shift{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:#151b23;border:1px solid #232d39;border-radius:14px;padding:12px}.worker-shift strong,.worker-shift small{display:block}.worker-shift strong{font-size:10px}.worker-shift small{font-size:8px;color:#8f9baa;margin-top:2px}.worker-shift b{font-size:9px;color:#98a2b3}.worker-label{font-size:9px;letter-spacing:.15em;color:#8f9baa;font-weight:900;margin:15px 4px 9px}.worker-job-card{background:#fff;color:#111827;border-radius:22px;padding:18px}.worker-car-line{display:flex;justify-content:space-between}.worker-car-line span,.worker-car-line h1,.worker-car-line p{margin:0}.worker-car-line>div span{font-size:9px;font-weight:900;color:#667085}.worker-car-line h1{font-size:40px;letter-spacing:-.05em}.worker-car-line p{font-size:10px;color:#98a2b3;font-weight:800}.worker-time{background:#f2f4f7!important;color:#344054!important;padding:7px 9px;border-radius:9px;height:max-content;font-size:9px!important}.worker-task{margin:21px 0 12px}.worker-task span{font-size:9px;font-weight:900;color:#667085;letter-spacing:.1em}.worker-task h2{font-size:22px;margin:6px 0 8px;line-height:1.12}.worker-task p{font-size:10px;color:#667085}.live-timer{text-align:center;font-variant-numeric:tabular-nums;font-size:30px;font-weight:950;letter-spacing:-.03em;padding:13px 0;color:#98a2b3}.live-timer.running{color:#111827}.worker-main-btn{width:100%;border:0;border-radius:14px;background:#111827;color:#fff;padding:17px;font-weight:950;font-size:14px}.worker-running-actions{display:none;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-top:8px}.worker-running-actions.show{display:grid}.worker-running-actions button{border:1px solid #e4e7ec;background:#fff;border-radius:11px;padding:11px 6px;font-size:9px;font-weight:850}.worker-running-actions button:last-child{background:#ecfdf3;color:#067647;border-color:#abefc6}.worker-secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.worker-secondary-actions button{border:1px solid #e4e7ec;background:#fff;border-radius:11px;padding:11px;font-weight:800;color:#344054;font-size:9px}.next-job{background:#151b23;border:1px solid #26303b;border-radius:16px;padding:14px;display:flex;justify-content:space-between}.next-job strong,.next-job span,.next-job b{display:block}.next-job strong{font-size:11px}.next-job span{font-size:8px;color:#8f9baa;margin-top:3px}.next-job div:last-child{text-align:right}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,24px);z-index:120;background:#111827;color:#fff;border-radius:11px;padding:11px 14px;font-size:10px;font-weight:750;opacity:0;pointer-events:none;transition:.22s;box-shadow:var(--shadow)}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1150px){.app-shell{grid-template-columns:205px 1fr}.lane-grid{grid-template-columns:repeat(4,250px)}.team-grid{grid-template-columns:repeat(2,1fr)}.drag-hint{display:none}}
@media(max-width:760px){body{padding-bottom:74px}.app-shell{display:block}.sidebar{display:none}.main-content{padding:calc(17px + env(safe-area-inset-top)) 13px 28px}.topbar{align-items:flex-start;margin-bottom:14px}.topbar h1{font-size:23px}.topbar .eyebrow{font-size:8px}.top-actions{gap:6px}.ghost-btn,.primary-btn,.icon-btn{padding:9px 10px;font-size:10px}.icon-btn{width:36px}.top-actions .ghost-btn{display:none}.status-strip{align-items:flex-start;padding:11px 12px}.status-strip-stats{display:grid;gap:2px;text-align:right}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:8px}.kpi-card{padding:13px}.kpi-card strong{font-size:25px}.control-toolbar{align-items:flex-start;margin-top:22px}.control-toolbar h2{font-size:18px}.toolbar-actions{display:block}.filter-chips{overflow:auto;max-width:58vw}.lane-grid{grid-template-columns:repeat(4,84vw);scroll-snap-type:x mandatory;gap:9px}.lane{scroll-snap-align:start;min-height:345px}.bottom-grid{grid-template-columns:1fr}.section-heading{align-items:flex-start}.section-heading h2{font-size:20px}.section-copy{font-size:9px}.workshop-status-row{overflow:auto;white-space:nowrap}.workshop-map{grid-template-columns:1fr}.wide-zone{grid-column:auto}.zone-slots{grid-template-columns:1fr}.planning-summary{grid-template-columns:repeat(2,1fr)}.planner-focus{align-items:flex-start;flex-direction:column}.vehicle-heading{display:block}.vehicle-tools{margin-top:12px}.search-input{min-width:0;flex:1;width:100%}.vehicle-row{grid-template-columns:43px 1fr auto;padding:13px}.vehicle-row .vehicle-progress,.vehicle-row>b{display:none}.team-grid{grid-template-columns:1fr}.bottom-nav{position:fixed;z-index:40;bottom:0;left:0;right:0;height:66px;background:rgba(255,255,255,.96);border-top:1px solid #e5e7eb;display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:env(safe-area-inset-bottom);backdrop-filter:blur(18px)}.mobile-nav{border:0;background:transparent;color:#98a2b3;font-size:8px;font-weight:900;display:grid;place-items:center;gap:2px}.mobile-nav span{font-size:14px;line-height:1}.mobile-nav.active{color:#111827}.modal{padding:0}.modal-sheet{border-radius:20px 20px 0 0;padding:19px}.vehicle-sheet{max-height:92vh}.stage-track{overflow-x:auto;grid-template-columns:repeat(6,72px);padding-bottom:5px}.sheet-actions{display:grid;grid-template-columns:1fr 1fr}.sheet-actions .primary-btn{grid-column:1/-1}.detail-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.issue-grid{grid-template-columns:1fr 1fr}.toast{bottom:82px;width:calc(100% - 26px);text-align:center}}

/* BODYSHOP OS v0.3 — desktop/tablet-first production planner */
:root{--sidebar-wide:252px;--resource-col:176px;--planner-min:940px}
@media(min-width:1360px){.app-shell{grid-template-columns:var(--sidebar-wide) 1fr}.main-content{padding:24px 28px 72px}.lane-grid{grid-template-columns:repeat(4,minmax(230px,1fr));overflow:visible}.kpi-grid{gap:14px}.job-card{padding:14px}.topbar{position:sticky;top:0;z-index:24;background:rgba(247,248,250,.92);backdrop-filter:blur(18px);padding:10px 0 14px;margin-top:-10px}}
@media(min-width:1600px){.main-content{padding-left:34px;padding-right:34px}.lane-grid{gap:14px}.bottom-grid{grid-template-columns:1.55fr 1fr}.workshop-map{grid-template-columns:repeat(4,1fr)}.wide-zone{grid-column:span 2}}
.planning-heading{align-items:center}.planner-top-actions{display:flex;align-items:center;gap:10px}.date-nav,.planner-view-switch{display:flex;align-items:center;border:1px solid #e4e7ec;background:#fff;border-radius:11px;padding:3px}.date-nav button,.planner-view-switch button{border:0;background:transparent;border-radius:8px;height:32px;padding:0 10px;font-size:10px;font-weight:850;color:#667085}.date-nav strong{font-size:10px;padding:0 7px;min-width:86px;text-align:center}.planner-view-btn.active{background:#111827!important;color:#fff!important}.planner-view-panel{display:none}.planner-view-panel.active{display:block}.planner-workspace{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:12px;align-items:start}.timeline-card,.pending-panel{background:#fff;border:1px solid #e7eaee;border-radius:16px;box-shadow:0 1px 2px rgba(16,24,40,.025)}.timeline-card{overflow:hidden}.timeline-toolbar{height:49px;padding:0 13px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf0f3}.timeline-legend{display:flex;gap:14px;font-size:9px;color:#667085;font-weight:700}.timeline-legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:7px;height:7px;border-radius:50%}.working-dot{background:#12b76a}.waiting-dot{background:#98a2b3}.blocked-dot{background:#f04438}.zoom-control{display:flex;background:#f2f4f7;border-radius:9px;padding:2px}.zoom-btn{border:0;background:transparent;color:#667085;border-radius:7px;padding:6px 8px;font-size:8px;font-weight:850}.zoom-btn.active{background:#fff;color:#111827;box-shadow:0 1px 2px rgba(16,24,40,.08)}.timeline-scroll{overflow-x:auto;overscroll-behavior-x:contain}.timeline-grid{min-width:var(--planner-min);background:#fff}.timeline-hours,.timeline-row{display:grid;grid-template-columns:var(--resource-col) 1fr}.timeline-hours{position:sticky;top:0;z-index:8;background:#fff;border-bottom:1px solid #e9edf1}.resource-head{height:42px;padding:14px 13px 0;font-size:8px;font-weight:900;letter-spacing:.1em;color:#98a2b3;border-right:1px solid #e9edf1}.hours-track{height:42px;display:grid;grid-template-columns:repeat(11,1fr);align-items:start;padding-top:13px;background-image:linear-gradient(to right,#eef1f4 1px,transparent 1px);background-size:10% 100%}.hours-track span{font-size:8px;color:#98a2b3;transform:translateX(-1px)}.timeline-row{min-height:78px;border-bottom:1px solid #edf0f3}.timeline-row:last-child{border-bottom:0}.resource-cell{padding:12px 11px;display:flex;align-items:center;gap:9px;border-right:1px solid #e9edf1;background:#fbfcfd}.resource-avatar{width:35px;height:35px;border-radius:10px;background:#111827;color:#fff;display:grid;place-items:center;font-size:9px;font-weight:900;flex:0 0 auto}.resource-avatar.resource-icon{background:#eef2f6;color:#344054}.warning-avatar{background:#f79009}.resource-cell strong,.resource-cell span{display:block}.resource-cell strong{font-size:10px}.resource-cell span{font-size:8px;color:#98a2b3;margin-top:3px}.resource-cell .risk-text{color:#b54708}.schedule-track{position:relative;min-width:720px;background-image:linear-gradient(to right,#edf0f3 1px,transparent 1px);background-size:10% 100%;transition:.15s}.schedule-track::after{content:'';position:absolute;left:14.5%;top:0;bottom:0;width:2px;background:#f04438;opacity:.6;pointer-events:none}.timeline-row.drop-ready .schedule-track{background-color:#f5f7fa;outline:2px solid #111827;outline-offset:-2px}.risk-row .schedule-track{background-color:#fffaf4}.timeline-job{position:absolute;top:11px;left:calc(var(--start) * 10%);width:calc(var(--dur) * 10%);height:56px;border:1px solid #dfe4e9;background:#fff;border-radius:10px;padding:7px 8px;text-align:left;overflow:hidden;box-shadow:0 2px 5px rgba(16,24,40,.05);cursor:grab;transition:box-shadow .15s,transform .15s,border-color .15s;min-width:76px}.timeline-job:hover{z-index:5;box-shadow:0 8px 18px rgba(16,24,40,.12);transform:translateY(-1px)}.timeline-job:active{cursor:grabbing}.timeline-job b,.timeline-job span,.timeline-job small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-job b{font-size:9px}.timeline-job span{font-size:7px;color:#667085;margin-top:2px}.timeline-job small{font-size:7px;color:#98a2b3;margin-top:3px}.timeline-job.working-job{border-left:4px solid #12b76a}.timeline-job.waiting-job{border-left:4px solid #98a2b3}.timeline-job.blocked-job{border-color:#fecdca;border-left:4px solid #f04438;background:#fff7f6}.timeline-job.dragging-plan{opacity:.4}.pending-panel{padding:14px;position:sticky;top:87px}.pending-head{display:flex;align-items:flex-start;justify-content:space-between}.pending-head h3{margin:0;font-size:17px}.pending-head>span{display:grid;place-items:center;min-width:27px;height:27px;background:#111827;color:#fff;border-radius:8px;font-size:10px;font-weight:900}.pending-help{font-size:8px;color:#98a2b3;line-height:1.45;margin:7px 0 12px}.pending-list{display:grid;gap:7px}.pending-job{border:1px solid #e4e7ec;background:#fff;border-radius:11px;padding:10px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:4px 8px;cursor:grab;transition:.15s}.pending-job:hover,.pending-job.selected{border-color:#111827;box-shadow:0 4px 12px rgba(16,24,40,.08)}.pending-job.priority-pending{border-color:#fedf89;background:#fffcf5}.pending-job strong,.pending-job span,.pending-job small{display:block}.pending-job strong{font-size:9px}.pending-job span{font-size:7px;color:#98a2b3;margin-top:2px}.pending-job>b{font-size:9px;grid-column:2;grid-row:1}.pending-job small{font-size:7px;color:#667085;grid-column:1/-1}.pending-selection{margin-top:10px;border:1px dashed #d0d5dd;border-radius:10px;padding:9px;text-align:center;font-size:8px;color:#98a2b3}.pending-selection.active{border-style:solid;border-color:#111827;color:#111827;background:#f8fafc;font-weight:800}.timeline-recommendation{margin-top:12px}.capacity-view-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:10px}.capacity-view-head h3{margin:0;font-size:17px}.desktop-summary{margin-bottom:12px}

/* Laptop: preserve all control information without forcing mobile patterns. */
@media(min-width:1101px) and (max-width:1359px){.app-shell{grid-template-columns:218px 1fr}.sidebar{padding-left:14px;padding-right:14px}.main-content{padding:22px 20px 68px}.lane-grid{grid-template-columns:repeat(4,minmax(218px,1fr));gap:9px}.job-card{padding:11px}.job-top h3{font-size:13px}.planner-workspace{grid-template-columns:minmax(0,1fr) 250px}:root{--resource-col:158px;--planner-min:900px}.pending-panel{padding:12px}.top-actions .ghost-btn{display:none}}

/* Tablet: dedicated touch layout, not a stretched mobile UI. */
@media(min-width:761px) and (max-width:1100px){.app-shell{grid-template-columns:82px 1fr}.sidebar{padding:18px 10px;gap:20px}.brand-row{justify-content:center;padding:0}.brand-row>div:last-child,.nav-item:not(.active){font-size:0}.brand-mark{width:44px;height:44px}.nav-list{gap:8px}.nav-item{justify-content:center;padding:13px 8px;font-size:0;min-height:48px}.nav-item span{font-size:11px;color:#98a2b3}.nav-item.active{font-size:0}.side-summary,.worker-switch-card>div,.user-chip>div:not(.avatar),.presence-dot{display:none}.worker-switch-card{padding:7px;margin-top:auto;justify-content:center}.switch-btn{font-size:0;width:46px;height:42px}.switch-btn::after{content:'OP';font-size:9px}.user-chip{justify-content:center;padding:0}.avatar{width:42px;height:42px}.main-content{padding:19px 17px 64px}.topbar{margin-bottom:16px}.topbar h1{font-size:25px}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:8px}.kpi-card{padding:12px}.kpi-card strong{font-size:24px}.lane-grid{grid-template-columns:repeat(2,minmax(260px,1fr));overflow:visible}.lane{min-height:310px}.bottom-grid{grid-template-columns:1fr}.workshop-map{grid-template-columns:repeat(2,1fr)}.wide-zone{grid-column:span 2}.team-grid{grid-template-columns:repeat(2,1fr)}.planning-heading{align-items:flex-start}.planner-top-actions{flex-direction:column;align-items:flex-end}.planner-workspace{grid-template-columns:1fr}.pending-panel{position:static;order:-1}.pending-list{grid-template-columns:repeat(4,minmax(150px,1fr));overflow-x:auto;padding-bottom:2px}.pending-job{min-width:160px}.pending-help{margin-bottom:8px}.pending-selection{display:none}:root{--resource-col:150px;--planner-min:880px}.timeline-card{border-radius:14px}.timeline-scroll{touch-action:pan-x pan-y}.timeline-row{min-height:82px}.timeline-job{height:58px;top:12px}.planning-summary{grid-template-columns:repeat(4,1fr)}.planning-summary div{padding:11px}.section-copy{max-width:620px}.bottom-nav{display:none}}

/* Mobile remains worker-centric; management views stay accessible but secondary. */
@media(max-width:760px){#view-planning .desktop-summary{grid-template-columns:repeat(2,1fr)}.planner-top-actions{width:100%;justify-content:space-between;margin-top:8px}.planning-heading{display:block}.planner-workspace{display:block}.pending-panel{position:static;margin-bottom:10px}.pending-list{grid-template-columns:1fr 1fr}.pending-selection{display:none}.timeline-card{border-radius:13px}:root{--resource-col:132px;--planner-min:820px}.timeline-toolbar{height:45px}.timeline-legend span:nth-child(2){display:none}.timeline-row{min-height:74px}.resource-cell{padding:9px 8px}.resource-avatar{width:31px;height:31px}.timeline-job{top:9px;height:55px}.capacity-view-head{display:block}.capacity-view-head .week-nav{margin-top:10px}.planner-view-switch{margin-left:auto}.date-nav{flex:1}.timeline-recommendation{align-items:stretch}}

/* BODYSHOP OS v0.5 — perfiles, recepción, recambios y gerencia */
.role-hidden{display:none!important}.operator-shell-hidden{display:none!important}.user-chip-button{width:100%;border:0;background:transparent;color:#fff;text-align:left;cursor:pointer}.user-chevron{margin-left:auto;color:#667085;font-size:14px}.role-context-badge{display:inline-flex;align-items:center;border:1px solid #d0d5dd;background:#fff;color:#475467;border-radius:10px;padding:9px 11px;font-size:10px;font-weight:900;white-space:nowrap}.role-sheet{max-width:760px}.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.role-card{border:1px solid var(--line);background:#fff;border-radius:15px;padding:14px;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;text-align:left;color:var(--ink)}.role-card:hover,.role-card.selected-role{border-color:#111827;background:#f8fafc;box-shadow:0 7px 18px rgba(16,24,40,.07)}.role-icon{width:44px;height:44px;border-radius:12px;background:#111827;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:950}.role-card b,.role-card small{display:block}.role-card b{font-size:13px}.role-card small{font-size:10px;color:#667085;margin-top:3px}.role-card em{font-size:10px;font-style:normal;color:#98a2b3;white-space:nowrap}.role-note{font-size:10px;color:#98a2b3;margin:14px 0 0}.manager-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.manager-kpis article,.parts-kpis article{background:#fff;border:1px solid #e9edf1;border-radius:16px;padding:18px}.manager-kpis span,.parts-kpis span{display:block;color:#667085;font-size:10px;font-weight:750}.manager-kpis strong,.parts-kpis strong{display:block;font-size:27px;letter-spacing:-.03em;margin:7px 0 3px}.manager-kpis small{font-size:9px;color:#98a2b3}.manager-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;margin-top:14px}.health-row{display:grid;grid-template-columns:1fr 55px 130px;align-items:center;gap:12px;padding:13px 0;border-top:1px solid #f1f2f4;font-size:11px}.health-row>b{text-align:right}.health-row>i{height:7px;border-radius:99px;background:#eef1f4;overflow:hidden}.health-row>i>em{display:block;height:100%;background:#111827;border-radius:99px}.health-row.warning>i>em{background:var(--amber)}.management-alert{width:100%;border:0;border-top:1px solid #f1f2f4;background:transparent;padding:13px 2px;text-align:left;display:grid;grid-template-columns:1fr auto;gap:3px 12px}.management-alert b{font-size:11px}.management-alert span{font-size:10px;color:#667085}.management-alert em{grid-column:2;grid-row:1/3;align-self:center;font-size:9px;font-style:normal;font-weight:900;color:#475467}.reception-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.reception-item,.delivery-check{display:grid;grid-template-columns:60px 1fr auto;align-items:center;gap:12px;padding:14px 0;border-top:1px solid #f1f2f4}.reception-item time,.delivery-check time{font-size:15px;font-weight:900}.reception-item b,.reception-item span,.delivery-check b,.delivery-check span{display:block}.reception-item b,.delivery-check b{font-size:11px}.reception-item span,.delivery-check span{font-size:9px;color:#667085;margin-top:3px}.reception-item>strong{font-size:9px;color:#067647}.done-item{opacity:.72}.mini-action{border:1px solid #d0d5dd;background:#fff;border-radius:9px;padding:8px 10px;font-size:9px;font-weight:900}.reception-quick{margin-top:14px}.reception-quick>div{display:flex;justify-content:space-between;align-items:center;gap:22px}.reception-quick h2{margin:0 0 5px}.reception-quick p:last-child{font-size:10px;color:#667085;margin:0}.parts-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 14px}.parts-board{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:12px}.parts-board>section{background:#e9edf1;border-radius:17px;padding:10px;min-height:360px}.parts-board>section>header{display:flex;justify-content:space-between;align-items:center;padding:6px 4px 12px;font-size:9px;font-weight:950;letter-spacing:.06em}.parts-board>section>header b{background:#fff;border-radius:8px;padding:4px 7px}.part-card{background:#fff;border:1px solid #e1e6eb;border-radius:14px;padding:14px;margin-bottom:9px}.part-card>div:first-child{display:flex;justify-content:space-between;gap:8px}.part-card strong,.part-card span{display:block}.part-card strong{font-size:12px}.part-card span{font-size:9px;color:#667085;margin-top:2px}.part-card em{font-style:normal;font-size:8px;font-weight:950;color:#475467;background:#f2f4f7;border-radius:7px;padding:5px 6px;white-space:nowrap}.part-card p{font-size:9px;color:#667085;margin:12px 0 0}.critical-part{border-color:#fecdca}.critical-part em{background:#fef3f2;color:#b42318}.received-part{border-color:#abefc6}.received-part em{background:#ecfdf3;color:#067647}.part-actions{display:flex;gap:7px;margin-top:12px}.part-actions button{flex:1;border:1px solid #d0d5dd;background:#fff;border-radius:9px;padding:8px 7px;font-size:8px;font-weight:900}.part-actions button:disabled{opacity:.45;cursor:not-allowed}.part-actions .primary-small{background:#111827;color:#fff;border-color:#111827}.parts-received-label{width:100%;background:#ecfdf3;color:#067647;border-radius:9px;padding:9px;text-align:center;font-size:9px!important}.role-modal.show{z-index:1000}
@media(max-width:1180px){.manager-kpis,.parts-kpis{grid-template-columns:repeat(2,1fr)}.manager-grid,.reception-grid{grid-template-columns:1fr}.parts-board{grid-template-columns:1fr 1fr}.parts-board>section:first-child{grid-column:1/-1}.role-context-badge{display:none}}
@media(max-width:820px){.role-grid{grid-template-columns:1fr}.role-card{grid-template-columns:44px 1fr}.role-card em{grid-column:2}.manager-kpis,.parts-kpis{grid-template-columns:1fr 1fr}.parts-board{grid-template-columns:1fr}.parts-board>section:first-child{grid-column:auto}.reception-item,.delivery-check{grid-template-columns:52px 1fr auto}.reception-quick>div{align-items:flex-start;flex-direction:column}.health-row{grid-template-columns:1fr 45px 90px}}
