@font-face{font-family:Poppins;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/poppins-400.woff2) format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/poppins-500.woff2) format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/poppins-600.woff2) format("woff2")}@font-face{font-family:Poppins;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/poppins-700.woff2) format("woff2")}:root{color-scheme:light;--brand-red: #ec2c2b;--brand-red-deep: #d22027;--brand-ink: #231f20;--bg: #f4f4f5;--surface: #ffffff;--surface-2: #eeedee;--surface-translucent: rgba(255, 255, 255, .92);--border: #e0dedf;--text: var(--brand-ink);--muted: #6d6a6b;--accent: var(--brand-red);--accent-press: var(--brand-red-deep);--accent-text: var(--brand-red-deep);--accent-soft: rgba(236, 44, 43, .1);--accent-line: rgba(236, 44, 43, .32);--on-accent: #ffffff;--ok: #0f7a52;--ok-soft: rgba(15, 122, 82, .12);--ok-line: rgba(15, 122, 82, .35);--warn: #9a6200;--warn-soft: rgba(154, 98, 0, .12);--warn-line: rgba(154, 98, 0, .35);--warn-surface: #fbf1e0;--danger: var(--brand-red-deep);--danger-soft: rgba(210, 32, 39, .1);--danger-line: rgba(210, 32, 39, .32);--neutral-fill: #e4e2e3;--neutral-line: #b5b1b3;--neutral-text: #3a3537;--shadow: 0 1px 2px rgba(35, 31, 32, .06), 0 1px 3px rgba(35, 31, 32, .08);--shadow-lift: 0 10px 30px rgba(35, 31, 32, .18);--radius: 12px;--header-h: 56px;--nav-h: 60px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:Poppins,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}#app{min-height:100%}button{font:inherit;color:inherit;cursor:pointer}.shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;height:calc(var(--header-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 14px 0;background:var(--surface-translucent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.header h1{flex:1;margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header .brandmark{flex:0 0 auto;width:17px;height:27px;margin-right:2px;object-fit:contain}.header .back{display:flex;align-items:center;justify-content:center;width:36px;height:36px;margin-left:-8px;background:none;border:0;border-radius:8px;font-size:22px;line-height:1}.header .back:active{background:var(--surface-2)}.content{flex:1;padding:14px 14px calc(var(--nav-h) + env(safe-area-inset-bottom) + 20px)}.nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface-translucent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border)}.nav button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0;background:none;border:0;color:var(--muted);font-size:11px;font-weight:500}.nav button .icon{font-size:20px;line-height:1}.nav button.active{color:var(--accent-text);font-weight:600}.nav button .dot{position:absolute;top:8px;margin-left:18px;width:8px;height:8px;background:var(--warn);border-radius:50%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;margin-bottom:12px}.card.inert{background:var(--surface-2);box-shadow:none;cursor:default}.card h2,.card h3{margin:0 0 8px;font-size:15px;font-weight:600;letter-spacing:-.01em}.card .meta{color:var(--muted);font-size:13.5px}.card-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;font-size:15px;font-weight:600;text-decoration:none}.btn:active{transform:scale(.985)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:active{background:var(--accent-press);border-color:var(--accent-press)}.btn.danger{background:var(--brand-red-deep);border-color:var(--brand-red-deep);color:#fff}.btn.ghost{background:none}.btn.block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-row{display:flex;gap:8px}.btn-row .btn{flex:1}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}.badge.planned{background:var(--neutral-fill);color:var(--neutral-text)}.badge.in_progress{background:var(--warn-soft);color:var(--warn)}.badge.completed{background:var(--ok-soft);color:var(--ok)}.badge.missed,.badge.cancelled,.badge.critical{background:var(--danger-soft);color:var(--danger)}.badge.required,.badge.deferred,.badge.warning{background:var(--neutral-fill);color:var(--neutral-text)}label{display:block;margin-bottom:6px;color:var(--muted);font-size:13px;font-weight:600}input[type=text],input[type=password],input[type=number],input[type=date],input[type=email],select,textarea{width:100%;min-height:46px;padding:11px 12px;background:var(--surface);border:1px solid var(--neutral-line);border-radius:10px;color:var(--text);font-size:16px;font-family:inherit}textarea{min-height:92px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.field{margin-bottom:14px}.choice{display:flex;align-items:center;gap:10px;min-height:46px;padding:8px 12px;margin-bottom:8px;background:var(--surface);border:1px solid var(--border);border-radius:10px}.choice.selected{border-color:var(--accent);background:var(--accent-soft)}.choice input{width:20px;height:20px;min-height:0;margin:0;flex:0 0 auto;accent-color:var(--accent)}.choice span{flex:1;font-size:15px}.segmented{display:flex;gap:6px}.segmented button{flex:1;min-height:40px;padding:6px 4px;background:var(--surface);border:1px solid var(--border);border-radius:9px;color:var(--muted);font-size:13px;font-weight:600}.segmented button.on-present{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.segmented button.on-late{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.segmented button.on-absent{background:var(--neutral-fill);border-color:var(--neutral-line);color:var(--neutral-text)}.segmented.tabs{position:sticky;top:0;z-index:5;gap:4px;margin-bottom:12px;padding:8px 0;background:var(--bg)}.segmented.tabs button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:38px;font-size:12.5px}.segmented.tabs button.on-tab{background:var(--surface);border-color:var(--brand-ink);color:var(--text);box-shadow:inset 0 -2px 0 var(--brand-red)}.tab-count{min-width:18px;padding:0 5px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:11px;line-height:18px}.segmented.tabs button.on-tab .tab-count{background:var(--brand-red);color:#fff}.strip{display:flex;align-items:center;gap:8px;padding:9px 12px;margin-bottom:12px;border-radius:10px;font-size:13.5px}.strip.info{background:var(--neutral-fill);border:1px solid var(--neutral-line);color:var(--neutral-text)}.strip.warn{background:var(--warn-soft);border:1px solid var(--warn-line);color:var(--warn)}.strip.danger{background:var(--danger-soft);border:1px solid var(--danger-line);color:var(--danger)}.strip.ok{background:var(--ok-soft);border:1px solid var(--ok-line);color:var(--ok)}.chip{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap}.chip.pending{background:var(--warn-soft);border-color:var(--warn-line);color:var(--warn)}.chip.syncing{background:var(--neutral-fill);border-color:var(--neutral-line);color:var(--neutral-text)}.tracking-bar{position:sticky;top:calc(var(--header-h) + env(safe-area-inset-top));z-index:15;display:flex;align-items:center;gap:9px;padding:10px 14px;background:var(--accent-soft);border-bottom:1px solid var(--accent-line);color:var(--accent-text);font-size:13.5px}.tracking-bar.stalled{background:var(--warn-soft);border-bottom-color:var(--warn-line);color:var(--warn)}.pulse{width:9px;height:9px;background:var(--brand-red);border-radius:50%;animation:pulse 1.6s ease-in-out infinite;flex:0 0 auto}.tracking-bar.stalled .pulse{background:var(--warn);animation:none}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(1.35)}}.login{display:flex;flex-direction:column;justify-content:center;min-height:100vh;min-height:100dvh;padding:28px 22px calc(28px + env(safe-area-inset-bottom))}.login .brand{margin-bottom:26px;text-align:center}.login .brand .wordmark{width:168px;max-width:62%;height:auto;margin-bottom:18px}.login .brand h1{margin:0;font-size:22px;font-weight:600;letter-spacing:-.01em}.login .brand p{margin:4px 0 0;color:var(--muted);font-size:14px}.nav-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:var(--bg)}.nav-map{position:absolute;top:0;left:0;right:0;bottom:calc(72px + env(safe-area-inset-bottom))}.nav-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:24px;background:var(--bg);text-align:center}.nav-top{position:absolute;top:calc(env(safe-area-inset-top) + 8px);left:0;right:0;display:flex;flex-direction:column;gap:8px}.nav-banner{margin:0 10px;padding:12px 14px;background:var(--brand-ink);color:#fff;border-radius:var(--radius);box-shadow:0 6px 20px #231f2059}.nav-distance{font-size:26px;font-weight:700;line-height:1.15}.nav-instruction{font-size:15px;font-weight:500;opacity:.92}.nav-footer{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:10px;height:calc(72px + env(safe-area-inset-bottom));padding:0 14px env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border)}.nav-eta{display:flex;flex-direction:column;flex:1;min-width:0}.nav-eta strong{font-size:18px}.nav-actions{display:flex;gap:8px;flex:0 0 auto}.nav-warning{margin:0 10px;padding:8px 12px;background:var(--warn-surface);border:1px solid var(--warn-line);box-shadow:0 4px 14px #231f202e;border-radius:10px;color:var(--warn);font-size:13px;font-weight:500;text-align:center}.empty{padding:40px 20px;color:var(--muted);text-align:center}.empty .big{margin-bottom:8px;font-size:34px}.spinner{width:22px;height:22px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin:28px auto}@keyframes spin{to{transform:rotate(360deg)}}.list-divider{height:1px;background:var(--border);margin:10px 0}.progress{height:5px;background:var(--neutral-fill);border-radius:999px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .25s ease}.stack>*+*{margin-top:10px}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.grow{flex:1;min-width:0}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:11.5px}.warn-text{color:var(--warn)}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12.5px}.thumb{width:64px;height:64px;object-fit:cover;border:1px solid var(--border);border-radius:8px}.toast{position:fixed;left:14px;right:14px;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 14px);z-index:60;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lift);font-size:14px}.toast.err{border-color:var(--danger-line)}.toast.ok{border-color:var(--ok-line)}.toast.warn{border-color:var(--warn-line);background:var(--warn-surface);color:var(--warn)}
