:root{--bg: #f3f2ef;--surface: #ffffff;--surface-2: #e9e7e2;--text: #1d1c1a;--muted: #6b6862;--border: #d9d6cf;--accent: #1f5f8b;--accent-text: #ffffff;--late: #b42318;--late-bg: #fdecea;--safe: #2e8b57;--warn: #e0a800;--s1: #8a8680;--s2: #c27c0e;--s3: #b5532a;--s4: #7b4fa3;--s5: #1d8a8a;--s6: #2e7d4f;--shadow: 0 1px 2px rgb(0 0 0 / .06), 0 1px 1px rgb(0 0 0 / .04);--shadow-lifted: 0 10px 24px rgb(0 0 0 / .18);--mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #161615;--surface: #222120;--surface-2: #1c1b1a;--text: #ecebe8;--muted: #a19d96;--border: #3a3836;--accent: #5aa3d6;--accent-text: #0d1a24;--late: #ff8a7a;--late-bg: #3a1d19;--safe: #4caf7a;--warn: #e8b923;--shadow: none;--shadow-lifted: 0 10px 24px rgb(0 0 0 / .5);color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:6px 12px;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.link{border:none;background:none;color:var(--muted);text-decoration:underline dotted}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:16px;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}.topbar h1{font-size:17px;margin:0;letter-spacing:-.01em}.search{flex:1;max-width:360px;min-width:160px;padding:7px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--border)}.toolbar .search{max-width:420px}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.board{flex:1;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;padding:16px 20px;overflow-x:auto;align-items:start}.column{background:var(--surface-2);border-radius:10px;border-top:3px solid var(--col, var(--s1));display:flex;flex-direction:column;max-height:calc(100vh - 100px);transition:background .15s}.column.s1{--col: var(--s1)}.column.s2{--col: var(--s2)}.column.s3{--col: var(--s3)}.column.s4{--col: var(--s4)}.column.s5{--col: var(--s5)}.column.s6{--col: var(--s6)}.column.over{background:color-mix(in srgb,var(--col) 14%,var(--surface-2))}.column>header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 6px}.column h2{font-size:13px;text-transform:uppercase;letter-spacing:.05em;margin:0}.count{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.cards{display:flex;flex-direction:column;gap:8px;padding:4px 10px 12px;overflow-y:auto;min-height:80px}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;box-shadow:var(--shadow);cursor:grab;-webkit-user-select:none;user-select:none}.card:hover{border-color:var(--col, var(--accent))}.card.lifted{cursor:grabbing;box-shadow:var(--shadow-lifted);transform:rotate(1.5deg)}.placeholder .card{opacity:.35}.card-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.number{font-family:var(--mono);font-size:13px;font-weight:600}.number.big{font-size:18px}.date{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.date.late{color:var(--late);background:var(--late-bg);padding:1px 6px;border-radius:4px;font-weight:600}.client{margin-top:4px;font-weight:500}.meta{margin-top:2px;font-size:12px;color:var(--muted)}.empty{text-align:center;color:var(--muted);margin:80px auto}.backdrop{position:fixed;inset:0;background:#00000059;display:flex;justify-content:flex-end;z-index:10}.panel{width:min(720px,100%);height:100%;overflow-y:auto;background:var(--surface);padding:20px 24px 40px;box-shadow:-8px 0 24px #00000026}.panel-head{display:flex;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}.panel-controls{display:flex;align-items:flex-start;gap:8px}.panel-controls select{padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.close{font-size:20px;line-height:1;padding:4px 10px}.panel h3{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:24px 0 8px}.items{width:100%;border-collapse:collapse;font-size:13px}.items th{text-align:left;font-weight:600;color:var(--muted);border-bottom:1px solid var(--border);padding:6px 8px}.items td{padding:5px 8px;border-bottom:1px solid var(--surface-2);vertical-align:top}.items .code{font-family:var(--mono);white-space:nowrap}.items .num{text-align:right;font-variant-numeric:tabular-nums}.items tr.group td{background:var(--surface-2);font-weight:600;font-size:12px;padding-top:8px}.history{list-style:none;margin:0 0 16px;padding:0}.event{padding:8px 0 8px 14px;border-left:2px solid var(--border);position:relative}.event:before{content:"";position:absolute;left:-5px;top:13px;width:8px;height:8px;border-radius:50%;background:var(--border)}.event.comment:before{background:var(--accent)}.event.status_changed:before{background:var(--s6)}.event-line{font-size:13px}.event .actor{font-weight:600}.event time{color:var(--muted);font-size:12px;margin-left:8px}.event .comment{margin:6px 0 0;padding:8px 10px;background:var(--surface-2);border-radius:6px;white-space:pre-wrap}.comment-box{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.comment-box textarea,.dialog input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);resize:vertical}.backdrop:has(.dialog){justify-content:center;align-items:center}.dialog{background:var(--surface);border-radius:10px;padding:20px;width:min(380px,calc(100% - 32px))}.dialog h2{margin:0 0 4px;font-size:17px}.dialog p{margin:0 0 12px;color:var(--muted);font-size:13px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);padding:10px 16px;border-radius:8px;background:var(--text);color:var(--bg);box-shadow:var(--shadow-lifted);max-width:calc(100% - 32px);z-index:20;cursor:pointer}.toast.error{background:var(--late);color:#fff}@media(max-width:700px){.topbar{padding:10px 16px}.toolbar{padding:8px 16px}.board{padding:12px 16px;grid-auto-columns:80vw}.panel{padding:16px}}.brand{display:flex;align-items:center}.brand img{height:22px;display:block}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.user{color:var(--muted);font-size:13px}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{width:min(360px,100%);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px 24px 24px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow)}.login-logo{height:30px;align-self:center}.login-card h1{margin:0 0 6px;text-align:center;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.login-card label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:500}.login-card input{padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.login-card button{margin-top:4px;padding:9px 12px}.password-form{display:flex;flex-direction:column;gap:12px}.password-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:500}.password-form input{padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.password-form button{margin-top:4px;padding:9px 12px}.dashboard.profile{max-width:520px}.profile-details{display:grid;grid-template-columns:max-content 1fr;gap:8px 16px;margin:0;padding:16px 18px;font-size:14px}.profile-details dt{color:var(--muted)}.profile-details dd{margin:0}.profile-body{padding:16px 18px 18px}.profile-body .widget-note{margin:0 0 12px;color:var(--muted);font-size:13px}.profile-body .password-form button{align-self:flex-start}button.link.user.active{color:var(--text)}.login-hint{margin:0;color:var(--muted);font-size:13px;text-align:center}.login-error{margin:0;color:var(--late);font-size:13px}button.danger{background:var(--late);border-color:var(--late);color:#fff;font-weight:600}button.danger-outline{color:var(--late);border-color:color-mix(in srgb,var(--late) 40%,var(--border))}.danger-text{color:var(--late)}.card.blocked{background:var(--late-bg);border-color:var(--late);box-shadow:inset 4px 0 0 var(--late),var(--shadow)}.card.blocked:hover{border-color:var(--late)}.card-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:2px}.card-bottom .meta{margin-top:0}.blocked-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#fff;background:var(--late);padding:1px 6px;border-radius:4px}.block-tooltip{position:fixed;z-index:30;max-width:340px;background:var(--surface);border:1px solid var(--late);border-radius:8px;padding:10px 12px;box-shadow:var(--shadow-lifted);pointer-events:none}.block-tooltip-title,.block-banner-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--late)}.block-tooltip p,.block-banner p{margin:4px 0;white-space:pre-wrap;overflow-wrap:anywhere}.block-banner{display:flex;justify-content:space-between;gap:16px;margin-top:16px;padding:12px 14px;background:var(--late-bg);border:1px solid var(--late);border-left-width:4px;border-radius:8px}.block-banner-actions,.panel-actions{display:flex;gap:8px;align-items:flex-start}.panel-actions{margin-top:16px}.event.blocked:before,.event.unblocked:before{background:var(--late)}.event.blocked .comment{background:var(--late-bg)}.dialog textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);resize:vertical}.dialog .number{color:var(--text)}.context-menu{position:fixed;z-index:40;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px;box-shadow:var(--shadow-lifted);display:flex;flex-direction:column}.context-menu button{border:none;background:none;text-align:left;padding:7px 10px;border-radius:5px}.context-menu button:hover,.context-menu button:focus-visible{background:var(--surface-2);outline:none}.tabs{display:flex;gap:2px;padding:3px;background:var(--bg);border:1px solid var(--border);border-radius:8px}.tabs button{border:none;background:none;padding:5px 14px;border-radius:6px;color:var(--muted);font-weight:500}.tabs button:hover{color:var(--text)}.tabs button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow),0 0 0 1px var(--border)}.dashboard{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:20px;display:grid;gap:16px;align-content:start}.widget{background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);overflow:hidden}.widget-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--border);border-top:3px solid var(--accent-color, var(--border))}.accent-late{--accent-color: var(--late)}.accent-safe{--accent-color: var(--safe)}.accent-quality{--accent-color: var(--accent)}.accent-top3{--accent-color: var(--warn)}.widget-header h2{margin:0;font-size:15px;display:flex;align-items:center;gap:8px}.widget-header .count{min-width:22px;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--accent-color) 14%,transparent);color:var(--accent-color);font-size:12px;font-weight:700;text-align:center}.widget-header .count.zero{background:var(--surface-2);color:var(--muted)}.late-chip{font-size:12px;font-weight:600;color:var(--late)}.widget-empty{margin:0;padding:32px 18px;text-align:center;color:var(--muted)}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:10px 14px;background:var(--surface-2);white-space:nowrap}.data-table td{padding:11px 14px;border-top:1px solid var(--border);vertical-align:top}.data-table td.text{min-width:160px;white-space:pre-wrap;overflow-wrap:anywhere}.data-table td.nowrap{white-space:nowrap}.data-table tbody tr{cursor:pointer}.data-table tbody tr:hover,.data-table tbody tr:focus-visible{background:var(--surface-2);outline:none}.missing{color:var(--muted)}@media(max-width:700px){.dashboard{padding:12px 16px}.widget-header{padding:12px 14px}}@media(max-width:860px){.data-table thead{display:none}.data-table tr{display:block;padding:10px 14px;border-top:1px solid var(--border)}.data-table td{display:flex;gap:12px;padding:3px 0;border:none}.data-table td.text{min-width:0}.data-table td:before{content:attr(data-label);flex:0 0 92px;font-size:12px;color:var(--muted)}}.block-info{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:6px 0;font-size:13px}.block-info dt{color:var(--muted)}.block-info dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.block-info dd.late{color:var(--late);font-weight:600}.block-dialog{width:min(480px,calc(100% - 32px))}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;flex:1;min-width:0}.field>span{font-size:12px;font-weight:600;color:var(--muted)}.field-row{display:flex;gap:12px;flex-wrap:wrap}.field-row .field{min-width:160px}.dashboard-row{display:grid;grid-template-columns:minmax(300px,360px) 1fr;gap:16px;align-items:start}@media(max-width:960px){.dashboard-row{grid-template-columns:1fr}}.widget-tools{display:flex;align-items:center;gap:12px}.widget-tools .meta{margin:0}.month-nav{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500}.month-nav span{min-width:120px;text-align:center}.month-nav button{padding:2px 9px;font-size:15px;line-height:1.2}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:calc(100% - 28px);max-width:300px;margin:14px auto 8px}.weekday{text-align:center;font-size:11px;font-weight:600;color:var(--muted);padding-bottom:2px}.day-cell{width:100%;aspect-ratio:1;padding:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;border-radius:5px;border:1px solid var(--border);background:var(--surface-2);color:var(--muted)}.day-cell:not(:disabled):hover{border-color:var(--text)}.day-cell:disabled{opacity:.4}.day-cell.today{outline:2px solid var(--text);outline-offset:1px}.day-cell.none,.day-cell.minor,.day-cell.lost_time{border-color:transparent;color:#fff}.day-cell.none{background:var(--safe)}.day-cell.minor{background:var(--warn);color:#3a2e00}.day-cell.lost_time{background:var(--late)}.safety-legend{list-style:none;margin:0;padding:10px 18px 16px;display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;font-size:12px;color:var(--muted)}.safety-legend li{display:flex;align-items:center;gap:5px}.safety-legend strong{color:var(--text)}.swatch{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}.context-menu button{display:flex;align-items:center;gap:8px;white-space:nowrap}.kind-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:4px;white-space:nowrap}.kind-badge.internal{color:var(--s4);background:color-mix(in srgb,var(--s4) 14%,transparent)}.kind-badge.external{color:var(--s3);background:color-mix(in srgb,var(--s3) 14%,transparent)}.wide-dialog{width:min(520px,calc(100% - 32px))}.segmented{display:inline-flex;flex-wrap:wrap;align-self:flex-start;gap:2px;padding:3px;background:var(--bg);border:1px solid var(--border);border-radius:8px}.segmented button{border:none;background:none;padding:4px 14px;border-radius:6px;color:var(--muted)}.segmented button.active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow),0 0 0 1px var(--border)}.pager{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:10px 18px;border-top:1px solid var(--border);font-size:13px}.pager .meta{margin:0;font-variant-numeric:tabular-nums}.pager-size{display:flex;align-items:center;gap:6px;color:var(--muted);margin-left:auto}.pager-size select{padding:3px 6px;border:1px solid var(--border);border-radius:6px;background:var(--surface)}.pager-nav{display:flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums}.pager-nav button{padding:2px 9px;font-size:15px;line-height:1.2}.top3{padding:14px 18px 4px}.top3 h3{margin:0 0 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.top3 ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}@media(max-width:860px){.top3 ol{grid-template-columns:1fr}}.top3-slot{display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:8px;background:color-mix(in srgb,var(--warn) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--warn) 45%,var(--border))}.top3-slot.vacant{align-items:center;background:none;border:1px dashed var(--border)}.top3-slot.vacant .meta{margin:0}.top3-rank{flex:none;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;background:var(--warn);color:#3a2e00}.top3-slot.vacant .top3-rank{background:var(--surface-2);color:var(--muted)}.top3-body{flex:1;min-width:0;display:flex;flex-direction:column;align-self:stretch}.top3-main{flex:1;cursor:pointer}.top3-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}.top3-body p{margin:4px 0 2px;font-weight:500;overflow-wrap:anywhere}.top3-body .meta{margin:0}button.resolve{flex:none;font-size:12px;font-weight:600;color:var(--safe);border-color:color-mix(in srgb,var(--safe) 50%,var(--border));padding:4px 10px}button.resolve:hover{background:var(--safe);border-color:var(--safe);color:#fff}.occ-filters{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:12px 18px}.check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);cursor:pointer}.occ-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:4px;white-space:nowrap;--c: var(--muted);color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}.occ-badge.k-safety{--c: var(--late)}.occ-badge.k-absence{--c: var(--s4)}.occ-badge.k-5s{--c: var(--s5)}.occ-badge.k-purchasing{--c: var(--s2)}.occ-badge.k-quality{--c: var(--accent)}.occ-badge.k-production{--c: var(--s6)}.occ-badge.k-planning{--c: var(--s1)}.status-pill{--c: var(--muted);font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid color-mix(in srgb,var(--c) 45%,transparent);background:color-mix(in srgb,var(--c) 12%,transparent);color:var(--c);white-space:nowrap}.status-pill:hover{border-color:var(--c)}.status-pill.s-open{--c: #a77a00}.status-pill.s-in_progress{--c: var(--accent)}.status-pill.s-resolved{--c: var(--safe)}.status-pill.s-cancelled{--c: var(--muted);text-decoration:line-through}@media(prefers-color-scheme:dark){.status-pill.s-open{--c: var(--warn)}}.age{margin-left:6px;font-size:12px;color:var(--muted)}.top3-status{margin-left:6px;font-size:11px;font-weight:600;color:var(--accent)}.data-table tr.closed td{color:var(--muted)}.card-tags{display:flex;gap:4px;align-items:center}.stage-badge{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:4px;--c: var(--s6);color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}.stage-badge.pickup{--c: var(--accent)}.warehouse-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-top:16px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-2)}.warehouse-bar .meta{margin:0}button.conclude{margin-left:auto;font-weight:600;color:var(--safe);border-color:color-mix(in srgb,var(--safe) 50%,var(--border))}button.conclude:hover{background:var(--safe);border-color:var(--safe);color:#fff}.toast-action{margin-left:12px;padding:2px 10px;border:1px solid currentColor;background:transparent;color:inherit;font-weight:600}.history{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:20px}@media(max-width:700px){.history{padding:12px 16px}}.history-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px;padding:14px 18px;border-bottom:1px solid var(--border)}.history-filters .search{flex:1 1 240px;max-width:360px}.filter{display:flex;flex-direction:column;gap:3px;font-size:12px}.filter>span{font-weight:600;color:var(--muted)}.filter select,.filter input{padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface);font-size:13px;max-width:260px}.data-table.sortable th{padding:0}.data-table.sortable th button{width:100%;display:flex;align-items:center;gap:4px;padding:10px 14px;border:none;border-radius:0;background:none;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;white-space:nowrap}.data-table.sortable th button:hover,.data-table.sortable th[aria-sort=ascending] button,.data-table.sortable th[aria-sort=descending] button{color:var(--text)}.data-table th.num button{justify-content:flex-end}.data-table td.num{text-align:right;font-variant-numeric:tabular-nums}.sort-arrow{font-size:9px;min-width:9px}.compliance{font-size:12px;font-weight:600;padding:1px 7px;border-radius:999px}.compliance.on-time{color:var(--safe);background:color-mix(in srgb,var(--safe) 12%,transparent)}.compliance.late{color:var(--late);background:var(--late-bg)}.history .data-table td,.history .data-table.sortable th button{padding-left:10px;padding-right:10px}
