@layer base{:root{--zinc-900: #171c21;--zinc-800: #1f262c;--zinc-700: #2c343c;--zinc-600: #3d4750;--zinc-500: #5b6670;--zinc-400: #8e989f;--zinc-300: #c3cacf;--zinc-200: #dde2e5;--zinc-100: #edf0f2;--zinc-050: #f6f8f9;--white: #ffffff;--blueprint-700: #163ba6;--blueprint-600: #1f4fd8;--blueprint-500: #3d6ce8;--blueprint-100: #e4ebfc;--cuivre-700: #8d4b2b;--cuivre-600: #b4643a;--cuivre-500: #cb7d52;--cuivre-100: #f7e9e1;--vert-air-600: #1f8a70;--vert-air-100: #e0f2ed;--ambre-600: #d98a0b;--ambre-100: #fbeed3;--rouille-600: #c0392b;--rouille-100: #f9e3e0;--font-display: "Archivo", "Archivo Fallback", system-ui, sans-serif;--font-body: "IBM Plex Sans", "IBM Plex Sans Fallback", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9375rem;--text-lg: 1.0625rem;--text-xl: 1.375rem;--text-2xl: 1.875rem;--text-3xl: 2.5rem;--tracking-display: -.021em;--tracking-label: .055em;--space-px: 1px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 3px;--radius-md: 5px;--radius-lg: 8px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgb(23 28 33 / .06), 0 0 0 1px rgb(23 28 33 / .04);--shadow-md: 0 2px 8px rgb(23 28 33 / .08), 0 0 0 1px rgb(23 28 33 / .05);--shadow-lg: 0 12px 32px -8px rgb(23 28 33 / .22), 0 0 0 1px rgb(23 28 33 / .07);--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-instant: 90ms;--dur-quick: .12s;--dur-move: .26s;--surface-ground: var(--zinc-100);--surface-raised: var(--white);--surface-sunken: var(--zinc-050);--surface-inverse: var(--zinc-900);--border-hairline: var(--zinc-200);--border-strong: var(--zinc-300);--text-primary: var(--zinc-900);--text-secondary: var(--zinc-500);--text-muted: var(--zinc-400);--text-inverse: var(--white);--accent: var(--blueprint-600);--accent-hover: var(--blueprint-700);--accent-wash: var(--blueprint-100);--accent-warm: var(--cuivre-600);--accent-warm-wash: var(--cuivre-100);--focus-ring: var(--blueprint-600);--stage-intake: var(--blueprint-500);--stage-quoting: var(--ambre-600);--stage-scheduled: #0e7fa8;--stage-in-progress: var(--cuivre-600);--stage-awaiting-payment: var(--ambre-600);--stage-won: var(--vert-air-600);--stage-lost: var(--rouille-600);--stage-cancelled: var(--zinc-400);--state-positive: var(--vert-air-600);--state-positive-wash: var(--vert-air-100);--state-caution: var(--ambre-600);--state-caution-wash: var(--ambre-100);--state-negative: var(--rouille-600);--state-negative-wash: var(--rouille-100)}[data-surface=field]{--surface-ground: var(--zinc-900);--surface-raised: var(--zinc-800);--surface-sunken: #10151a;--surface-inverse: var(--white);--border-hairline: #2a3238;--border-strong: var(--zinc-600);--text-primary: #f2f5f6;--text-secondary: var(--zinc-400);--text-muted: var(--zinc-500);--text-inverse: var(--zinc-900);--accent: var(--blueprint-500);--accent-hover: #5b83ee;--accent-wash: #1b2740;--accent-warm: var(--cuivre-500);--accent-warm-wash: #33221a;--state-positive: #2fb894;--state-positive-wash: #122b25;--state-caution: #eda520;--state-caution-wash: #322512;--state-negative: #e05a4b;--state-negative-wash: #331a17;--stage-won: #2fb894;--stage-lost: #e05a4b;--stage-in-progress: var(--cuivre-500);--shadow-sm: 0 1px 2px rgb(0 0 0 / .4), 0 0 0 1px rgb(255 255 255 / .04);--shadow-md: 0 2px 10px rgb(0 0 0 / .45), 0 0 0 1px rgb(255 255 255 / .05);--shadow-lg: 0 16px 40px -10px rgb(0 0 0 / .6), 0 0 0 1px rgb(255 255 255 / .07)}}@layer base{html{font-family:var(--font-body);font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--surface-ground);color:var(--text-primary);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}.tnum,input[type=number],td.numeric,.money,.phone{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"zero" 1}h1,h2,h3{font-family:var(--font-display);letter-spacing:var(--tracking-display);font-weight:700;margin:0}.label{font-family:var(--font-body);font-size:var(--text-2xs);letter-spacing:var(--tracking-label);text-transform:uppercase;font-weight:600;color:var(--text-secondary)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}}.dimension{display:flex;align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:var(--text-xs)}.dimension:before,.dimension:after{content:"";flex:1;height:1px;background:var(--border-strong);position:relative}.dimension:before{box-shadow:inset 1px 0 0 0 var(--border-strong);border-left:1px solid var(--border-strong);height:7px;background:linear-gradient(to bottom,transparent 3px,var(--border-strong) 3px,var(--border-strong) 4px,transparent 4px)}.dimension:after{border-right:1px solid var(--border-strong);height:7px;background:linear-gradient(to bottom,transparent 3px,var(--border-strong) 3px,var(--border-strong) 4px,transparent 4px)}:root{--field-gutter: 16px;--field-radius: 12px;--tap: 44px;--tap-primary: 56px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px)}*{box-sizing:border-box}body{overscroll-behavior-y:none}.shell{min-height:100dvh;display:flex;flex-direction:column;padding-top:var(--safe-top)}.shell__bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;padding:6px var(--field-gutter);background:var(--surface-sunken);border-bottom:1px solid var(--border-hairline)}.shell__nav{margin-left:auto;display:flex;gap:4px}.shell__nav a{display:grid;place-items:center;min-width:var(--tap);min-height:var(--tap);color:var(--text-secondary);text-decoration:none;font-size:20px}.shell__position{font-size:12px;color:var(--accent-warm);white-space:nowrap}.shell__main{flex:1;padding:0 var(--field-gutter) calc(96px + var(--safe-bottom))}.sync{display:flex;align-items:center;gap:6px;min-height:var(--tap);flex:1}.sync__body{display:flex;align-items:center;gap:8px;color:var(--text-primary);text-decoration:none;font-size:13px}.sync__dot{width:9px;height:9px;border-radius:50%;background:var(--state-positive);flex:none}.sync__dot--offline{background:var(--accent-warm)}.sync__dot--queued{background:var(--state-caution)}.sync__dot--failed{background:var(--state-negative)}.sync__time{color:var(--text-muted)}.sync__action{min-width:var(--tap);min-height:var(--tap);display:grid;place-items:center;background:none;border:0;color:var(--text-secondary)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spin{animation:none}}.banner,.warning{display:flex;align-items:center;gap:12px;margin:8px var(--field-gutter);padding:12px;border-radius:var(--field-radius);background:var(--accent-wash);border:1px solid var(--accent);font-size:14px}.warning{background:var(--state-caution-wash);border-color:var(--state-caution)}.banner p,.warning p{margin:0;flex:1}.banner button,.warning button{min-height:var(--tap);padding:0 16px;border-radius:8px;border:1px solid currentColor;background:none;color:inherit;font:inherit}.today__head{padding:16px 0 8px}.today__head h1{margin:0;font-family:var(--font-display, inherit);font-size:26px;letter-spacing:-.01em}.today__count{margin:2px 0 0;color:var(--text-secondary);font-size:14px}.stoplist{list-style:none;margin:0;padding:0;display:grid;gap:12px}.stop{border:1px solid var(--border-hairline);border-radius:var(--field-radius);background:var(--surface-raised);overflow:hidden}.stop--en_route,.stop--delayed,.stop--arrived,.stop--working{border-color:var(--accent-warm)}.stop--done,.stop--not_done{opacity:.62}.stop__main{display:block;padding:14px;color:inherit;text-decoration:none}.stop__when{display:flex;align-items:center;gap:8px;margin-bottom:6px}.stop__time{font-size:18px;font-weight:600}.badge{font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:999px;background:var(--surface-sunken);color:var(--text-secondary)}.badge--en_route,.badge--arrived,.badge--working{background:var(--accent-warm-wash);color:var(--accent-warm)}.badge--delayed{background:var(--state-caution-wash);color:var(--state-caution)}.badge--done{background:var(--state-positive-wash);color:var(--state-positive)}.badge--not_done{background:var(--state-negative-wash);color:var(--state-negative)}.badge--pending{background:var(--accent-wash);color:var(--accent)}.stop__customer{margin:0;font-size:18px;font-weight:600}.stop__org{margin:0;color:var(--text-secondary);font-size:13px}.stop__address{margin:4px 0 0;font-size:15px}.stop__address span{display:block;color:var(--text-secondary);font-size:13px}.stop__services{margin:6px 0 0;color:var(--text-secondary);font-size:13px}.stop__access,.stopscreen__access{margin:10px 0 0;padding:10px;border-left:3px solid var(--accent-warm);background:var(--accent-warm-wash);border-radius:0 8px 8px 0;font-size:14px}.stop__hazard{margin:10px 0 0;padding:10px;border-left:3px solid var(--state-negative);background:var(--state-negative-wash);border-radius:0 8px 8px 0;font-size:14px}.label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-bottom:2px}.stop__chips,.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.chip{font-size:13px;padding:8px 12px;min-height:var(--tap);display:inline-flex;align-items:center;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-sunken);color:var(--text-primary)}.chip--warm{border-color:var(--accent-warm);color:var(--accent-warm)}.chip--danger{border-color:var(--state-negative);color:var(--state-negative)}.chip--positive{border-color:var(--state-positive);color:var(--state-positive)}.chip--on{background:var(--accent-wash);border-color:var(--accent);color:var(--text-primary)}.stop__footer{display:flex;justify-content:space-between;gap:8px;margin-top:10px;font-size:12px;color:var(--text-secondary)}.stop__actions{display:flex;border-top:1px solid var(--border-hairline)}.stop__action{flex:1;min-height:var(--tap-primary);display:flex;align-items:center;justify-content:center;gap:8px;color:var(--accent);text-decoration:none;font-size:14px}.stop__action+.stop__action{border-left:1px solid var(--border-hairline)}.stopscreen__head{display:flex;align-items:center;gap:10px;padding:12px 0}.back{min-width:var(--tap);min-height:var(--tap);display:grid;place-items:center;font-size:28px;line-height:1;color:var(--text-primary);text-decoration:none}.stopscreen__title{flex:1;min-width:0}.stopscreen__title h1{margin:0;font-size:20px}.stopscreen__title p{margin:0;color:var(--text-secondary);font-size:13px}.stopscreen__where{padding-bottom:12px;border-bottom:1px solid var(--border-hairline)}.stopscreen__address{margin:0;font-size:16px}.stopscreen__address span{display:block;color:var(--text-secondary);font-size:13px}.stopscreen__links{display:flex;gap:8px;margin-top:8px}.stopscreen__services{margin:10px 0 0;color:var(--text-secondary);font-size:14px}.ghost{min-height:var(--tap);padding:0 16px;display:inline-flex;align-items:center;border-radius:8px;border:1px solid var(--border-strong);background:none;color:var(--accent);text-decoration:none;font:inherit}.ghost--danger{color:var(--state-negative)}.ghost--big{min-height:var(--tap-primary);width:100%;justify-content:center}.checklist{list-style:none;margin:12px 0;padding:0;display:grid;gap:4px}.check{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-secondary)}.check--done{color:var(--state-positive)}.check--warn{color:var(--state-caution)}.check__mark{width:16px;text-align:center}.tabs{display:flex;gap:4px;margin:12px 0;border-bottom:1px solid var(--border-hairline)}.tabs button{flex:1;min-height:var(--tap);background:none;border:0;border-bottom:2px solid transparent;color:var(--text-secondary);font:inherit;font-size:14px}.tabs button.on{color:var(--text-primary);border-bottom-color:var(--accent-warm)}.stopscreen__act{position:fixed;left:0;right:0;bottom:0;display:flex;gap:8px;padding:10px var(--field-gutter) calc(10px + var(--safe-bottom));background:linear-gradient(to top,var(--surface-ground) 70%,transparent);z-index:15}.big{flex:1;min-height:var(--tap-primary);padding:10px 16px;border-radius:var(--field-radius);border:1px solid transparent;font:inherit;font-size:16px;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--accent);color:#fff}.big--warm{background:var(--accent-warm)}.big--danger{background:var(--state-negative)}.big--positive{background:var(--state-positive);color:var(--zinc-900, #171c21)}.big--quiet{background:var(--surface-raised);color:var(--text-primary);border-color:var(--border-strong)}.big[disabled]{opacity:.45}.big__hint{font-size:11px;font-weight:400;opacity:.85}.door__block,.work__block,.finish__block,.pendingscreen__block,.settings__block{padding:14px 0;border-bottom:1px solid var(--border-hairline)}.door__block h3,.work__block h3,.finish__block h3,.pendingscreen__block h2,.settings__block h2{margin:0 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}h4{margin:12px 0 6px;font-size:13px;color:var(--text-secondary);font-weight:600}.door__block--hazard,.finish__block--warn{border-left:3px solid var(--state-negative);padding-left:10px;background:var(--state-negative-wash);border-radius:0 8px 8px 0}.finish__block--warn{border-left-color:var(--state-caution);background:var(--state-caution-wash)}.quiet{color:var(--text-muted);font-size:13px}.meta{color:var(--text-muted);font-size:12px;margin:2px 0 0}.warn{color:var(--state-caution);font-size:13px}.positive{color:var(--state-positive)}.held{color:var(--accent-warm);font-size:13px}.work__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.work__block--actions{display:grid;gap:8px}.assets,.history,.thread,.owing,.readings,.scanned,.devices,.pendingscreen__block ul,.door__block ul,.finish__block ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}.assets__name{margin:0;font-size:15px}.assets__serial{margin:0;color:var(--text-secondary);font-size:13px}.history li{display:grid;grid-template-columns:auto 1fr auto;gap:8px;font-size:13px;align-items:baseline}.history__when{color:var(--text-secondary)}.history__who{color:var(--text-muted);font-size:12px}.thread li{padding:8px 10px;border-radius:8px;background:var(--surface-raised);font-size:14px}.thread li p:last-child{margin:2px 0 0}.thread__customer{border-left:3px solid var(--accent)}.owing li,.readings li{display:flex;justify-content:space-between;gap:8px;font-size:14px}.readings li.out{color:var(--state-caution)}.readings__flag{font-size:11px;text-transform:uppercase}.sev{font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:2px 8px;border-radius:999px;background:var(--state-negative);color:#fff}.sev--customer{background:var(--state-caution);color:var(--zinc-900, #171c21)}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.gallery li{border:1px solid var(--border-hairline);border-radius:8px;overflow:hidden;background:var(--surface-raised);display:grid}.gallery img{width:100%;aspect-ratio:1;object-fit:cover;display:block}.gallery__kind{padding:20px 6px;text-align:center;font-size:12px;color:var(--text-secondary)}.gallery__label{padding:4px 6px;font-size:11px;color:var(--text-secondary)}.gallery__pending{border-color:var(--accent)}.field{display:grid;gap:4px;margin:10px 0}.field span{font-size:13px;color:var(--text-secondary)}.field input,.field textarea{min-height:var(--tap);padding:10px 12px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface-sunken);color:var(--text-primary);font:inherit;font-size:16px}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.keypad__key{min-height:var(--tap-primary);font-size:22px;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface-raised);color:var(--text-primary);font-family:var(--font-mono, monospace)}.reading__value{font-size:40px;text-align:center;margin:8px 0}.reading__value span{font-size:18px;color:var(--text-secondary)}.reading__out{color:var(--state-caution);text-align:center}.minutes{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:8px;padding:6px 0}.minutes button{min-width:var(--tap);min-height:var(--tap);border-radius:8px;border:1px solid var(--border-strong);background:var(--surface-raised);color:var(--text-primary);font-size:22px}.minutes__value{min-width:84px;text-align:right}.sign__pad{width:100%;height:180px;border:1px dashed var(--border-strong);border-radius:8px;background:var(--surface-sunken);touch-action:none}.sign__label{font-size:13px;color:var(--text-secondary)}.sign__actions{display:flex;gap:8px;margin-top:8px}.scanner{width:100%;border-radius:8px;margin-top:8px;background:#000}.qr{background:#fff;padding:12px;border-radius:8px;margin:12px 0}.qr__hint{color:#333;font-size:12px;text-align:center;margin:8px 0 0}.qr__value{color:#111;font-size:12px;word-break:break-all}.sheet__scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:40;display:flex;align-items:flex-end}.sheet{width:100%;max-height:92dvh;overflow-y:auto;background:var(--surface-raised);border-radius:var(--field-radius) var(--field-radius) 0 0;padding-bottom:calc(16px + var(--safe-bottom))}.sheet__head{position:sticky;top:0;display:flex;align-items:center;gap:8px;padding:12px var(--field-gutter);background:var(--surface-raised);border-bottom:1px solid var(--border-hairline)}.sheet__head h2{margin:0;flex:1;font-size:17px}.sheet__close{min-width:var(--tap);min-height:var(--tap);background:none;border:0;color:var(--text-secondary);font-size:18px}.sheet__body{padding:12px var(--field-gutter);display:grid;gap:4px}.delay{display:grid;gap:8px}.hint{color:var(--text-muted);font-size:12px}.notice{border:1px solid var(--state-caution);border-radius:8px;padding:12px;margin-top:10px}.empty{padding:48px 0;text-align:center;color:var(--text-secondary)}.empty__action{color:var(--accent)}.loading{min-height:60dvh}.lockscreen,.signin{min-height:100dvh;display:grid;align-content:center;gap:12px;padding:var(--field-gutter);text-align:center}.lockscreen h1,.signin h1{font-size:24px;margin:0}.signin{text-align:left}.signin h1{text-align:center}.pending__label{margin:0;font-size:14px}.pending__actions{display:flex;gap:8px;margin-top:6px}.pendingscreen__block--failed{border-left:3px solid var(--state-negative);padding-left:10px}.devices li{display:grid;gap:2px;padding:8px 0;border-bottom:1px solid var(--border-hairline)}.devices li p{margin:0}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.report{white-space:pre-wrap;font-family:var(--font-mono, monospace);font-size:13px;line-height:1.5;background:var(--surface-sunken);border:1px solid var(--border-hairline);border-radius:8px;padding:12px;max-height:50dvh;overflow-y:auto;margin:10px 0}.quote__done{display:grid;gap:10px;text-align:center}.gate{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;padding:calc(16px + var(--safe-top)) var(--field-gutter) calc(16px + var(--safe-bottom));gap:12px}.gate__head h1{margin:0;font-size:22px}.gate__body{overflow-y:auto;background:var(--surface-raised);border:1px solid var(--border-hairline);border-radius:var(--field-radius);padding:14px;line-height:1.6}.gate__body p{white-space:pre-wrap;margin:0 0 12px}.gate__body a{color:var(--accent)}.gate__act{display:grid}.notice{margin:8px var(--field-gutter);border-radius:var(--field-radius);border:1px solid var(--border-strong);background:var(--surface-raised);overflow:hidden}.notice--warn{border-color:var(--state-caution)}.notice--rule{border-color:var(--accent)}.notice__head{width:100%;min-height:var(--tap);display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:none;border:0;color:var(--text-primary);font:inherit;text-align:left}.notice__title{font-weight:600;font-size:14px}.notice__body{padding:0 12px 10px;font-size:14px}.notice__body p{white-space:pre-wrap;margin:0 0 8px}.notice__body a{color:var(--accent)}.notice__ack{width:100%;min-height:var(--tap);border:0;border-top:1px solid var(--border-hairline);background:none;color:var(--accent);font:inherit}
