:root{--page:#f9f9f7;--surface:#fcfcfb;--text-primary:#0b0b0b;--text-secondary:#52514e;--text-muted:#898781;--grid:#e1e0d9;--baseline:#c3c2b7;--border:hsla(0,0%,4%,.1);--series-1:#2a78d6;--series-2:#eb6834;--series-3:#1baf7a;--series-4:#eda100;--de-emphasis:#c3c2b7;--status-good:#0ca30c;--status-warning:#fab219;--status-serious:#ec835a;--status-critical:#d03b3b;--delta-good:#006300;--accent:var(--series-1);--accent-ink:#fff;--shadow:0 1px 2px hsla(0,0%,4%,.05),0 1px 8px hsla(0,0%,4%,.04);--overlay:hsla(0,0%,4%,.45);--hover:hsla(0,0%,4%,.04);--radius:12px;--radius-sm:8px;--gap:12px;--pad:16px;--tap:44px;--font:system-ui,-apple-system,"Segoe UI",sans-serif;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--page:#0d0d0d;--surface:#1a1a19;--text-primary:#fff;--text-secondary:#c3c2b7;--text-muted:#898781;--grid:#2c2c2a;--baseline:#383835;--border:hsla(0,0%,100%,.1);--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--de-emphasis:#52514e;--delta-good:#0ca30c;--shadow:0 1px 2px rgba(0,0,0,.4),0 1px 8px rgba(0,0,0,.3);--overlay:rgba(0,0,0,.6);--hover:hsla(0,0%,100%,.06);color-scheme:dark}}:root[data-theme=dark]{--page:#0d0d0d;--surface:#1a1a19;--text-primary:#fff;--text-secondary:#c3c2b7;--text-muted:#898781;--grid:#2c2c2a;--baseline:#383835;--border:hsla(0,0%,100%,.1);--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--series-4:#c98500;--de-emphasis:#52514e;--delta-good:#0ca30c;--shadow:0 1px 2px rgba(0,0,0,.4),0 1px 8px rgba(0,0,0,.3);--overlay:rgba(0,0,0,.6);--hover:hsla(0,0%,100%,.06);color-scheme:dark}*,:after,:before{box-sizing:border-box}body,canvas,html,img,video{max-width:100%}body,html{margin:0;padding:0;width:100%;overscroll-behavior-x:none}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow:visible}:target{scroll-margin-top:76px}body{background:var(--page);color:var(--text-primary);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain}.app-shell{width:100%;max-width:100%;min-width:0;min-height:100dvh;overflow:visible;padding-bottom:env(safe-area-inset-bottom)}h1,h2,h3,h4{margin:0 0 8px;line-height:1.25;font-weight:650;letter-spacing:-.01em}h1{font-size:22px}h2{font-size:18px}h3{font-size:16px}p{margin:0 0 12px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.small-text,small{font-size:13px;color:var(--text-secondary)}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}hr{border:0;border-top:1px solid var(--border);margin:16px 0}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--hover);border-radius:4px;padding:1px 5px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.page{max-width:min(1100px,100%);min-width:0;margin:0 auto;padding:16px max(14px,env(safe-area-inset-right)) 56px max(14px,env(safe-area-inset-left));overflow:visible}@media (min-width:720px){.page{padding:24px 20px 64px}}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap;min-width:0}.page-head>*{min-width:0;max-width:100%}.page-head h1{margin:0}.page-head .sub{color:var(--text-secondary);font-size:14px;margin:2px 0 0;overflow-wrap:anywhere}.row{gap:var(--gap)}.row,.row-tight{display:flex;align-items:center;flex-wrap:wrap}.row-tight{gap:8px}.spread{align-items:center;justify-content:space-between;flex-wrap:wrap;min-width:0;max-width:100%}.spread,.stack{display:flex;gap:var(--gap)}.stack{flex-direction:column}.grow{flex:1 1 auto;min-width:0;max-width:100%}.right{margin-left:auto}.grid{display:grid;grid-gap:var(--gap);gap:var(--gap);grid-template-columns:1fr}.grid-2,.grid-3,.grid-4{display:grid;grid-gap:var(--gap);gap:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width:720px){.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.card-grid{display:grid;grid-gap:var(--gap);gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));align-items:stretch}.card-grid>.card,.grid-2>.card,.grid-2>.stat,.grid-3>.card,.grid-3>.stat,.grid-4>.card,.grid-4>.stat,.grid>.card,.grid>.stat{height:100%}.stat-spark{margin-top:auto}@media (max-width:719px){.grid-3>:last-child:nth-child(odd),.grid-4>:last-child:nth-child(odd){grid-column:1/-1}}.section{margin-top:24px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--pad);box-shadow:var(--shadow);min-width:0;max-width:100%}.card+.card{margin-top:var(--gap)}.card-grid>.card+.card,.grid-2>.card+.card,.grid-3>.card+.card,.grid-4>.card+.card,.grid>.card+.card{margin-top:0}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:10px}.card-title{font-size:15px;font-weight:650;margin:0;overflow-wrap:anywhere}.card-sub{font-size:13px;color:var(--text-secondary);margin:2px 0 0}.card-tight{padding:12px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:2px;min-width:0}.stat-label{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600}.stat-value{font-size:24px;font-weight:680;letter-spacing:-.02em;line-height:1.15}.stat-sub,.stat-value{overflow-wrap:anywhere}.stat-sub{font-size:13px;color:var(--text-secondary)}.stat-delta{font-size:13px;font-weight:600}.stat-delta.up{color:var(--delta-good)}.stat-delta.down{color:var(--status-critical)}.stat-spark{margin-top:6px;height:28px}a.stat-link{color:inherit;text-decoration:none;cursor:pointer;transition:border-color .12s ease,background .12s ease}a.stat-link:hover{border-color:var(--accent);background:var(--hover);text-decoration:none}.card-link{white-space:nowrap}.driver-row{display:flex;align-items:flex-start;gap:8px;width:100%;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;min-height:var(--tap)}.ptr-indicator{position:fixed;top:0;left:50%;z-index:60;display:flex;align-items:center;gap:8px;margin-top:-44px;padding:8px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);box-shadow:var(--shadow);color:var(--text-secondary);font-size:13px;font-weight:600;white-space:nowrap;pointer-events:none}.ptr-spinner{display:inline-block;font-size:15px;line-height:1;color:var(--accent)}.ptr-spinner.spinning{animation:ptr-spin .8s linear infinite}@keyframes ptr-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.ptr-spinner.spinning{animation-duration:2.4s}}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--tap);padding:10px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-primary);font:inherit;font-size:15px;font-weight:600;line-height:1.2;cursor:pointer;text-align:center;transition:background .12s ease,border-color .12s ease,opacity .12s ease;-webkit-tap-highlight-color:transparent}.btn,.btn:hover{text-decoration:none}.btn:hover{background:var(--hover)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.06);background:var(--accent)}.btn.danger{border-color:var(--status-critical);color:#fff}.btn.danger,.btn.danger:hover{background:var(--status-critical)}.btn.danger:hover{filter:brightness(1.06)}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn.ghost:hover{background:var(--hover);color:var(--text-primary)}.btn.small{min-height:34px;padding:6px 10px;font-size:13px;border-radius:7px}@media (pointer:coarse){.badge-button,.btn.small,.pill{position:relative}.badge-button:after,.btn.small:after,.pill:after{content:"";position:absolute;left:0;right:0;top:50%;height:var(--tap);transform:translateY(-50%)}.pill-row{align-items:center;min-height:var(--tap);padding-bottom:0}}.btn.block{width:100%}.btn.big{min-height:56px;font-size:17px;border-radius:var(--radius)}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.confirm-wrap{display:inline-flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.confirm-note{font-size:12px;color:var(--text-secondary);max-width:32ch}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field+.field{margin-top:12px}.field-label{font-size:13px;font-weight:600;color:var(--text-secondary)}.field-hint{font-size:12px;color:var(--text-muted)}.field-error{font-size:12px;color:var(--status-critical);font-weight:600}.input,.select,.textarea,input[type=date],input[type=datetime-local],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{width:100%;min-height:var(--tap);padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);font:inherit;font-size:16px;line-height:1.3}.textarea,textarea{min-height:88px;resize:vertical}.select,select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;background-image:linear-gradient(45deg,transparent 50%,currentColor 0),linear-gradient(135deg,currentColor 50%,transparent 0);background-position:calc(100% - 17px) calc(50% + 1px),calc(100% - 12px) calc(50% + 1px);background-size:5px 5px,5px 5px;background-repeat:no-repeat}input:disabled,select:disabled,textarea:disabled{opacity:.6}input::placeholder,textarea::placeholder{color:var(--text-muted)}.checkbox-row{display:flex;align-items:center;gap:8px;min-height:var(--tap)}.checkbox-row input[type=checkbox],.checkbox-row input[type=radio]{width:20px;height:20px;min-height:0;accent-color:var(--accent)}.form-section-title{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600;margin:20px 0 8px}.form-error{border:1px solid var(--status-critical);border-left-width:3px;background:color-mix(in srgb,var(--status-critical) 8%,transparent);color:var(--text-primary);border-radius:var(--radius-sm)}.form-error,.form-note{padding:10px 12px;font-size:14px}.form-note{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);color:var(--text-secondary);background:var(--surface)}.form-grid{display:grid;grid-gap:var(--gap);gap:var(--gap);grid-template-columns:1fr;align-items:start}.form-grid>.field+.field{margin-top:0}@media (min-width:560px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid>.full{grid-column:1/-1}}.filter-bar{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;box-shadow:var(--shadow)}.filter-bar-label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--text-secondary)}.filter-bar .spread{flex-wrap:wrap;gap:8px}.filter-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--gap);min-width:0;max-width:100%}.filter-row>*{flex:1 1 140px;min-width:min(100%,140px);max-width:100%}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.table-wrap table{width:100%;border-collapse:collapse;font-size:14px;white-space:nowrap}.table-wrap td,.table-wrap th{padding:10px 12px;text-align:left;border-bottom:1px solid var(--grid);vertical-align:middle}.table-wrap thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--surface);border-bottom:1px solid var(--baseline);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:650}.table-wrap tbody tr:last-child td{border-bottom:0}.table-wrap tbody tr:hover td{background:var(--hover)}.table-wrap td.num,.table-wrap th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.table-wrap td.wrap{white-space:normal;min-width:180px}.table-wrap.sticky-first td.stick,.table-wrap.sticky-first th.stick{position:-webkit-sticky;position:sticky;left:0;z-index:2;background:var(--surface);box-shadow:1px 0 0 var(--grid)}.table-wrap.sticky-first thead th.stick{z-index:3}.table-wrap.sticky-first tbody tr:hover td.stick{background:color-mix(in srgb,var(--text-primary) 4%,var(--surface))}.table-wrap.fits table,.table-wrap.fits td,.table-wrap.fits th{white-space:normal}.table-wrap.fits .badge,.table-wrap.fits td.num{white-space:nowrap}.table-wrap.fits td,.table-wrap.fits th{padding-left:8px;padding-right:8px}.table-wrap.fits td.wrap{min-width:150px}.record-list{display:flex;flex-direction:column;gap:var(--gap)}.record{flex-direction:column;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.record,.record-head{display:flex;gap:10px;min-width:0}.record-head{align-items:flex-start}.record-heading{min-width:0;flex:1 1 auto}.record-title{font-weight:650;line-height:1.3;overflow-wrap:anywhere}.record-sub{margin-top:2px;font-size:13px;color:var(--text-muted);overflow-wrap:anywhere}.record-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));grid-gap:10px 12px;gap:10px 12px}.record-fact{display:flex;flex-direction:column;gap:1px;min-width:0}.record-fact-label{font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:600;color:var(--text-muted)}.record-fact-value{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.record-actions{display:flex;flex-wrap:wrap;gap:8px}.on-hand-grid{display:grid;grid-gap:var(--gap);gap:var(--gap);grid-template-columns:1fr}@media (min-width:560px){.on-hand-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}}.on-hand-size{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;max-width:100%;min-height:var(--tap);padding:12px;margin:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--page);color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.on-hand-size:hover{background:var(--hover)}.on-hand-size.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.on-hand-size-label{font-size:13px;font-weight:650;color:var(--text-secondary);overflow-wrap:anywhere}.on-hand-size-count{display:flex;align-items:baseline;gap:6px;font-size:28px;font-weight:700;line-height:1.15;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:-.02em}.on-hand-size-unit{font-size:15px;font-weight:650;letter-spacing:0;color:var(--text-secondary)}.on-hand-breakdown{margin:10px 0 0;font-size:13px;font-weight:600;color:var(--text-secondary);overflow-wrap:anywhere}.on-hand-marks{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:6px}.lot-mark{display:inline-flex;align-items:center;gap:5px;max-width:100%;font-size:12px;font-weight:600;color:var(--text-secondary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lot-mark-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:12px;font-weight:600;line-height:1.4;white-space:nowrap}.badge:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--de-emphasis);flex:0 0 auto}.badge.good:before{background:var(--status-good)}.badge.warning:before{background:var(--status-warning)}.badge.serious:before{background:var(--status-serious)}.badge.critical:before{background:var(--status-critical)}.badge.accent:before{background:var(--accent)}.badge.neutral:before{background:var(--de-emphasis)}.badge.plain:before{display:none}.badge-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;padding:0;margin:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;border-radius:999px;-webkit-tap-highlight-color:transparent}.badge-button,.badge-button:hover{text-decoration:none}.badge-button:hover .badge{background:var(--hover);border-color:color-mix(in srgb,var(--text-primary) 16%,var(--border))}.badge-button:disabled{opacity:.5;cursor:not-allowed}.chart-tip{position:fixed;z-index:80;pointer-events:none;background:var(--surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:8px 10px;min-width:132px;max-width:240px;font-size:12px;line-height:1.45}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin-bottom:8px;font-size:12px;color:var(--text-secondary)}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-swatch{width:10px;height:10px;border-radius:2px;flex:0 0 auto}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:36px 20px;border:1px dashed var(--baseline);border-radius:var(--radius);background:var(--surface);color:var(--text-secondary)}.empty-icon{font-size:26px;line-height:1;opacity:.7}.empty-title{font-size:16px;font-weight:650;color:var(--text-primary)}.empty-body{font-size:14px;max-width:42ch;margin:0}.empty-actions{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.error-state{margin-bottom:12px}.error-state-detail{margin:4px 0 10px}.modal-backdrop{position:fixed;inset:0;z-index:100;background:var(--overlay);display:flex;align-items:flex-end;justify-content:center;padding:0;overscroll-behavior:contain}@media (min-width:640px){.modal-backdrop{align-items:center;padding:24px}}.modal{background:var(--surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:560px;max-height:92vh;overflow-y:auto;box-shadow:0 -8px 40px rgba(0,0,0,.25);padding:var(--pad);padding-bottom:calc(var(--pad) + env(safe-area-inset-bottom))}@media (min-width:640px){.modal{border-radius:var(--radius);box-shadow:0 12px 48px rgba(0,0,0,.3)}}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.modal-title{font-size:18px;font-weight:650;margin:0}.modal-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-muted);font-size:22px;line-height:1;width:var(--tap);height:var(--tap);margin:-4px -6px 0 0;border-radius:var(--radius-sm);cursor:pointer;flex:0 0 auto}.modal-close:disabled{opacity:.5;cursor:not-allowed}.modal-close:hover{background:var(--hover);color:var(--text-primary)}.modal-foot{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}.modal-foot .btn{flex:1 1 auto}@media (min-width:640px){.modal-foot .btn{flex:0 0 auto}}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;max-width:100%;overflow-x:hidden;padding-top:env(safe-area-inset-top);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border-bottom:1px solid var(--border);box-shadow:0 1px 0 color-mix(in srgb,var(--text-primary) 4%,transparent)}.nav--menu-open{box-shadow:none}.nav-bar{max-width:min(1100px,100%);margin:0 auto;justify-content:space-between;min-height:56px;padding:10px max(16px,env(safe-area-inset-right)) 10px max(16px,env(safe-area-inset-left))}.nav-bar,.nav-left{min-width:0;display:flex;align-items:center;gap:12px}.nav-left{flex:1 1 auto}.nav-rule{width:1px;height:22px;flex-shrink:0;background:var(--border);border-radius:1px}.nav-brand{font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--text-primary);white-space:nowrap}.brand-link,.nav-brand:hover{text-decoration:none}.brand-link{color:inherit;display:inline-flex;min-width:0;border-radius:12px;outline-offset:2px}.brand-link:hover{text-decoration:none}.brand-link:focus-visible{outline:2px solid var(--accent)}.brand-mark{display:inline-flex;align-items:center;gap:10px;min-width:0}.brand-logo{display:block;border-radius:10px;object-fit:cover;background:#0a0a0a;flex-shrink:0;box-shadow:0 0 0 1px color-mix(in srgb,var(--text-primary) 8%,transparent),0 2px 8px color-mix(in srgb,#000 22%,transparent)}.brand-mark--nav .brand-logo{width:36px;height:36px}.brand-mark--logo-only .brand-logo{width:40px;height:40px;border-radius:12px}.brand-mark--auth{flex-direction:column;text-align:center;gap:12px;margin-bottom:20px;width:100%}.brand-mark--auth .brand-logo{width:96px;height:96px;border-radius:22px;box-shadow:0 10px 28px color-mix(in srgb,#000 30%,transparent)}.brand-text{min-width:0}.brand-title{font-weight:700;letter-spacing:-.03em;color:var(--text-primary);line-height:1.1}.brand-mark--nav .brand-title{font-size:15px}.brand-mark--auth .brand-title{font-size:28px}.brand-tag{color:var(--text-secondary);font-size:14px;margin-top:4px;line-height:1.35}.nav-context{display:flex;flex-direction:column;justify-content:center;min-width:0;gap:1px;line-height:1.15}.nav-current{font-size:17px;font-weight:650;letter-spacing:-.03em;color:var(--text-primary)}.nav-current,.nav-team{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-team{font-size:11px;font-weight:500;letter-spacing:.01em;color:var(--text-muted);max-width:100%}.nav-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.nav-menu-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid transparent;border-radius:999px;background:var(--text-primary);color:var(--page);font:inherit;font-size:13px;font-weight:650;letter-spacing:-.01em;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s ease,opacity .12s ease,background .12s ease}.nav-menu-btn:hover{opacity:.92}.nav-menu-btn:active{transform:scale(.98)}.nav-menu-btn.is-open{background:var(--hover);color:var(--text-primary);border-color:var(--border)}.nav-menu-icon{display:inline-flex;line-height:0}.nav-signout{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;color:var(--text-secondary);font:inherit;font-size:13px;font-weight:550;padding:8px 10px;border-radius:999px;cursor:pointer;-webkit-tap-highlight-color:transparent}.nav-signout:hover{color:var(--text-primary);background:var(--hover)}.nav-backdrop{position:fixed;inset:0;z-index:40;border:0;padding:0;margin:0;background:var(--overlay);cursor:pointer;-webkit-tap-highlight-color:transparent;animation:nav-fade-in .16s ease}@keyframes nav-fade-in{0%{opacity:0}to{opacity:1}}.nav-panel{position:relative;z-index:45;background:var(--surface);border-bottom:1px solid var(--border);max-height:min(70dvh,560px);overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:nav-panel-in .18s ease;box-shadow:0 18px 40px color-mix(in srgb,#000 18%,transparent)}@keyframes nav-panel-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.nav-panel-inner{max-width:1100px;margin:0 auto;padding:16px max(16px,env(safe-area-inset-right)) 20px max(16px,env(safe-area-inset-left));display:grid;grid-template-columns:1fr;grid-gap:18px;gap:18px}.nav-group-title{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0 0 8px 4px}.nav-group-links{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.nav-link{display:flex;align-items:center;justify-content:center;min-height:46px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--page);color:var(--text-secondary);font-size:14px;font-weight:600;letter-spacing:-.01em;text-align:center;white-space:normal;line-height:1.25;word-break:break-word;transition:background .12s ease,border-color .12s ease,color .12s ease}.nav-link:hover{background:var(--hover);color:var(--text-primary);text-decoration:none;border-color:color-mix(in srgb,var(--text-primary) 16%,var(--border))}.nav-link.active{background:color-mix(in srgb,var(--accent) 14%,var(--page));color:var(--text-primary);border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.icon-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:transparent;color:var(--text-secondary);width:38px;height:38px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;-webkit-tap-highlight-color:transparent}.icon-btn:hover{background:var(--hover);color:var(--text-primary)}.nav-actions .btn.small{border-radius:999px;min-height:38px;padding-inline:12px;font-weight:600}@media (max-width:380px){.nav-menu-btn{padding-inline:11px}.nav-menu-btn-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.nav-signout{padding-inline:6px;font-size:12px}.nav-bar{padding-inline:max(12px,env(safe-area-inset-left)) max(12px,env(safe-area-inset-right));gap:8px}.nav-left{gap:10px}.nav-current{font-size:16px}}@media (min-width:640px){.nav-panel-inner{gap:20px 24px;padding:18px max(20px,env(safe-area-inset-right)) 22px max(20px,env(safe-area-inset-left))}.nav-group-links,.nav-panel-inner{grid-template-columns:1fr 1fr}}@media (min-width:900px){.nav-bar{padding:12px 24px;min-height:60px}.nav-panel-inner{grid-template-columns:1fr 1fr 1fr 1fr}.nav-current{font-size:18px}}.auth-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:max(24px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 32px max(16px,env(safe-area-inset-left))}.auth-card{width:100%;max-width:400px}.auth-brand{text-align:center;margin-bottom:20px}.auth-brand .mark{font-size:28px;font-weight:700;letter-spacing:-.02em}.auth-alt,.auth-brand .tag{color:var(--text-secondary);font-size:14px}.auth-alt{text-align:center;margin-top:16px}.quick{align-items:center;gap:var(--gap)}.quick,.quick-counts{display:flex;flex-wrap:wrap}.quick-counts{gap:8px;flex:1 1 auto}@media (max-width:560px){.quick>.btn{width:100%}}.glance{display:inline-flex;align-items:baseline;gap:8px;min-height:var(--tap);padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);font-size:13px;font-weight:600;text-decoration:none}.glance:hover{background:var(--hover);text-decoration:none}.glance-value{font-size:20px;font-weight:700;color:var(--text-primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.glance.quiet,.glance.quiet .glance-value{color:var(--text-muted)}.glance.loud{border-color:var(--status-warning);box-shadow:inset 0 0 0 1px var(--status-warning)}.glance.loud .glance-value{color:var(--status-warning)}.glance.alert{border-color:var(--status-critical);box-shadow:inset 0 0 0 1px var(--status-critical)}.glance.alert .glance-value{color:var(--status-critical)}.pill-row.primary .pill{min-height:var(--tap);padding:10px 18px;font-size:14px}.cal-nav{display:flex;align-items:center;gap:8px;padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.cal-range{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;gap:1px;text-align:center;line-height:1.3}.cal-range strong{font-size:15px;letter-spacing:-.01em}.cal-step{width:var(--tap);padding:10px 0;font-size:17px}.cal-step,.cal-today{flex:0 0 auto}.cal-legend{margin-bottom:10px;gap:6px 14px}.legend-swatch--hollow{background:transparent;border:1px dashed var(--baseline)}.legend-swatch--hatched{background:repeating-linear-gradient(45deg,var(--baseline) 0 2px,transparent 2px 5px);border:1px solid var(--baseline)}.cal-day{display:grid;grid-template-columns:54px minmax(0,1fr);grid-gap:0;gap:0}.cal-axis{position:relative}.cal-axis-tick{position:absolute;right:8px;transform:translateY(-50%);font-size:11px;color:var(--text-muted);white-space:nowrap}.cal-canvas{position:relative;min-width:0;border-left:1px solid var(--grid)}.cal-rule{border-top:1px solid var(--grid)}.cal-now,.cal-rule{position:absolute;left:0;right:0}.cal-now{z-index:3;border-top:2px solid var(--accent);pointer-events:none}.cal-now-dot{position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.cal-blocks{position:absolute;inset:0 3px 0 3px;z-index:2}.cal-block{position:absolute;overflow:hidden;display:block;padding:4px 7px;border:1px solid var(--edge,var(--job,var(--baseline)));border-left:3px solid var(--job,var(--baseline));border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);text-decoration:none;transition:box-shadow .12s ease}.cal-block:hover{text-decoration:none;box-shadow:var(--shadow)}.cal-block-tint{position:absolute;inset:0;background:var(--job,var(--de-emphasis));opacity:.14;pointer-events:none}.cal-block-body{position:relative;display:flex;flex-direction:column;gap:1px;height:100%;min-width:0;overflow:hidden}.cal-block-time{font-size:11px;font-weight:700}.cal-block-time,.cal-block-who{color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-block-who{font-size:12px;line-height:1.25}.cal-block-where{font-size:11px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-block--pickup{border-style:dashed dashed dashed solid}.cal-block--pickup .cal-block-tint{background:repeating-linear-gradient(45deg,var(--job,var(--de-emphasis)) 0 3px,transparent 3px 8px);opacity:.3}.cal-block--unassigned .cal-block-tint{opacity:0}.cal-block--unassigned.cal-block--pickup .cal-block-tint{opacity:.22}.cal-block--overdue{--edge:var(--status-critical);border-width:2px 2px 2px 3px}.cal-block--flagged{--edge:var(--status-serious);border-width:2px 2px 2px 3px}.cal-block--done{--edge:var(--baseline)}.cal-block--done .cal-block-tint{opacity:.06}.cal-block--done .cal-block-time,.cal-block--done .cal-block-who{color:var(--text-muted)}.cal-week-scroll{overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-left:54px;-webkit-overflow-scrolling:touch}.cal-week-grid{display:grid;grid-template-columns:54px repeat(7,minmax(132px,1fr));grid-template-rows:auto auto;min-width:min-content}.cal-axis--week,.cal-week-corner{position:-webkit-sticky;position:sticky;left:0;z-index:5;background:var(--surface)}.cal-week-corner{border-bottom:1px solid var(--grid)}.cal-week-head{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-height:var(--tap);padding:6px 4px;border:0;border-bottom:1px solid var(--grid);border-left:1px solid var(--grid);background:none;color:var(--text-secondary);font:inherit;cursor:pointer;scroll-snap-align:start;-webkit-tap-highlight-color:transparent}.cal-week-head:hover{background:var(--hover)}.cal-week-dow{font-size:11px;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.cal-week-dom{font-size:17px;font-weight:650;line-height:1.15;color:var(--text-primary)}.cal-week-count{font-size:11px;color:var(--text-muted);min-height:15px}.cal-week-head.is-today{color:var(--accent);border-bottom:2px solid var(--accent)}.cal-week-head.is-today .cal-week-dom{color:var(--accent)}.cal-daycol{scroll-snap-align:start}.cal-daycol.is-today{background:var(--hover)}@media (min-width:900px){.cal-week-grid{grid-template-columns:54px repeat(7,minmax(0,1fr));min-width:0}}.cal-rail-row{display:flex;align-items:center;gap:10px;min-height:var(--tap);padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-primary);text-decoration:none}.cal-rail-row:hover{background:var(--hover);border-color:var(--accent);text-decoration:none}.cal-rail-row .grow{display:flex;flex-direction:column;gap:1px;min-width:0}.cal-rail-spine{flex:0 0 auto;width:4px;align-self:stretch;min-height:26px;border-radius:2px;background:var(--de-emphasis)}.cal-rail-spine--hollow{background:transparent;border:1px dashed var(--baseline)}.cal-rail-title{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-rail-go{flex:0 0 auto;color:var(--text-muted);font-size:18px}.cal-rail-pair{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cal-rail-pair>.cal-rail-row{flex:1 1 220px}.job-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px;scroll-margin-top:84px;transition:box-shadow .2s ease,border-color .2s ease}.job-card--focused{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.job-card{transition:none}}.center{text-align:center}.nowrap{white-space:nowrap}.row-line{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}@media (max-width:559px){.row-line{flex-wrap:wrap;max-width:100%}}.wide-only{display:none}@media (min-width:1100px){.wide-only{display:block}.narrow-only{display:none}}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.divider{height:1px;background:var(--border);margin:14px 0}.pill-row{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.pill-row::-webkit-scrollbar{display:none}.pill{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);border-radius:999px;padding:7px 14px;font:inherit;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent}.pill,.pill:hover{text-decoration:none}.pill:hover{background:var(--hover);color:var(--text-primary)}.pill.active{border-color:var(--accent)}.pill.active,.pill.active:hover{background:var(--accent);color:var(--accent-ink)}.loading{display:flex;align-items:center;justify-content:center;min-height:50dvh;color:var(--text-muted);font-size:14px}.loading.inline{min-height:0;padding:20px 0}.skeleton{background:linear-gradient(90deg,var(--grid) 25%,var(--hover) 37%,var(--grid) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}