:root,:root[data-theme=dark]{--bg-0: #08090c;--bg-1: #0d1016;--bg-2: #12151d;--surface: rgba(255, 255, 255, .028);--surface-strong: rgba(255, 255, 255, .045);--surface-hover: rgba(255, 255, 255, .06);--border-subtle: rgba(255, 255, 255, .055);--border: rgba(255, 255, 255, .09);--border-strong: rgba(255, 255, 255, .16);--text: #f2f4f8;--text-muted: #98a1b2;--text-subtle: #6b7385;--text-inverse: #0a0d12;--accent: #f4b73f;--accent-strong: #f7c968;--accent-soft: rgba(244, 183, 63, .14);--accent-glow: rgba(244, 183, 63, .28);--info: #6ba7ff;--info-soft: rgba(107, 167, 255, .14);--success: #34d399;--success-soft: rgba(52, 211, 153, .14);--warning: #fbbf24;--warning-soft: rgba(251, 191, 36, .14);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .16);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px rgba(0, 0, 0, .4), 0 2px 6px rgba(0, 0, 0, .25);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .5), 0 8px 20px rgba(0, 0, 0, .3);--grid-line: rgba(255, 255, 255, .028);--scrim: rgba(4, 6, 10, .55);color-scheme:dark}:root[data-theme=light]{--bg-0: #f5f6f8;--bg-1: #ffffff;--bg-2: #fafbfd;--surface: rgba(255, 255, 255, .75);--surface-strong: rgba(255, 255, 255, .95);--surface-hover: rgba(255, 255, 255, 1);--border-subtle: rgba(15, 20, 32, .06);--border: rgba(15, 20, 32, .09);--border-strong: rgba(15, 20, 32, .16);--text: #0e1420;--text-muted: #5b6472;--text-subtle: #8b93a2;--text-inverse: #ffffff;--accent: #b8842a;--accent-strong: #a37122;--accent-soft: rgba(184, 132, 42, .1);--accent-glow: rgba(184, 132, 42, .18);--info: #2563eb;--info-soft: rgba(37, 99, 235, .08);--success: #059669;--success-soft: rgba(5, 150, 105, .09);--warning: #b45309;--warning-soft: rgba(180, 83, 9, .1);--danger: #dc2626;--danger-soft: rgba(220, 38, 38, .09);--shadow-sm: 0 1px 2px rgba(15, 20, 32, .06);--shadow-md: 0 6px 20px rgba(15, 20, 32, .08), 0 2px 4px rgba(15, 20, 32, .04);--shadow-lg: 0 24px 60px rgba(15, 20, 32, .12), 0 8px 16px rgba(15, 20, 32, .06);--grid-line: rgba(15, 20, 32, .05);--scrim: rgba(20, 25, 35, .4);color-scheme:light}:root{--r-xs: 6px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--r-full: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--s-16: 64px;--font-sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI Variable", "Segoe UI", "Inter", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "Menlo", "Consolas", "Liberation Mono", monospace;--dur-fast: .15s;--dur-base: .26s;--dur-slow: .46s;--dur-lux: .9s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--sidebar-w: 288px;--header-h: 64px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{height:100%;-webkit-text-size-adjust:100%}body{min-height:100dvh;font-family:var(--font-sans);font-feature-settings:"ss01","cv11","kern";font-size:15px;line-height:1.55;color:var(--text);background:var(--bg-0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:radial-gradient(1000px 700px at 78% -10%,var(--accent-soft),transparent 60%),radial-gradient(900px 620px at -5% 110%,var(--info-soft),transparent 60%),linear-gradient(180deg,var(--bg-0),var(--bg-1));opacity:1}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(ellipse 90% 70% at 50% 40%,#000 40%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 40%,#000 40%,transparent 100%)}button,input,textarea,select{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer;padding:0}a{color:inherit;text-decoration:none}::selection{background:var(--accent);color:var(--text-inverse)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.mono{font-family:var(--font-mono);font-feature-settings:"tnum","zero"}.tnum{font-variant-numeric:tabular-nums}.app{position:relative;z-index:1;height:100dvh;overflow:hidden;display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:auto 1fr;grid-template-areas:"sidebar header" "sidebar main"}.app-header{grid-area:header;height:var(--header-h);padding:0 var(--s-6);display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);border-bottom:1px solid var(--border-subtle);background:color-mix(in oklab,var(--bg-0) 70%,transparent);backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px);position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:var(--s-3);min-width:0}.brand-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(140deg,var(--accent),color-mix(in oklab,var(--accent) 60%,#ff8a00));box-shadow:0 0 0 1px #ffffff14 inset,0 8px 20px var(--accent-glow);color:var(--text-inverse);flex-shrink:0}.brand-title{display:flex;flex-direction:column;min-width:0}.brand-title strong{font-size:.94rem;font-weight:600;letter-spacing:-.01em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-title span{font-size:.72rem;color:var(--text-subtle);letter-spacing:.06em;text-transform:uppercase}.header-actions{display:flex;align-items:center;gap:var(--s-2)}.icon-btn{width:36px;height:36px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--text-muted);background:transparent;border:1px solid transparent;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.icon-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-subtle)}.icon-btn:active{transform:scale(.96)}.icon-btn svg{transition:transform var(--dur-base) var(--ease-spring)}.icon-btn[data-active=true] svg{transform:rotate(-8deg) scale(1.05)}.sidebar{grid-area:sidebar;border-right:1px solid var(--border-subtle);background:color-mix(in oklab,var(--bg-0) 60%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;flex-direction:column;min-height:100dvh;position:sticky;top:0;z-index:20}.sidebar-inner{padding:var(--s-5) var(--s-4);display:flex;flex-direction:column;gap:var(--s-4);height:100dvh;overflow-y:auto}.sidebar-heading{display:flex;align-items:center;justify-content:space-between;padding:0 var(--s-2);font-size:.7rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-subtle)}.sidebar-heading button{color:var(--text-subtle);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;transition:color var(--dur-fast)}.sidebar-heading button:hover{color:var(--text-muted)}.recent-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--s-1)}.recent-item{padding:0}.recent-btn{width:100%;text-align:left;padding:var(--s-3);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--s-1);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.recent-btn:hover{background:var(--surface-hover);border-color:var(--border);transform:translateY(-1px)}.recent-btn:active{transform:translateY(0)}.recent-btn .row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}.recent-num{font-family:var(--font-mono);font-size:.82rem;color:var(--text);letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-time{font-size:.7rem;color:var(--text-subtle);white-space:nowrap;flex-shrink:0}.sidebar-empty{padding:var(--s-4);border:1px dashed var(--border);border-radius:var(--r-md);color:var(--text-subtle);font-size:.82rem;text-align:center}.sidebar-foot{margin-top:auto;padding:var(--s-3) var(--s-2);font-size:.7rem;color:var(--text-subtle);border-top:1px solid var(--border-subtle);display:flex;align-items:center;gap:var(--s-2)}.sidebar-foot .dot{width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px var(--success-soft);animation:pulseDot 2.6s var(--ease-in-out) infinite;flex-shrink:0;transition:background var(--dur-base),box-shadow var(--dur-base)}.sidebar-foot[data-status=pending] .dot,.sidebar-foot[data-status=unknown] .dot{background:var(--warning);box-shadow:0 0 0 3px var(--warning-soft)}.main{grid-area:main;overflow-y:auto;min-height:0}.stack{display:flex;flex-direction:column;gap:var(--s-5);max-width:1080px;width:100%;margin:0 auto;padding:var(--s-8) var(--s-6) var(--s-16)}.card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s-6);box-shadow:var(--shadow-md);backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);transition:border-color var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.card--flush{padding:0;overflow:hidden}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;padding:1px;background:linear-gradient(180deg,color-mix(in oklab,var(--text) 6%,transparent),transparent 40%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.search-hero{padding:var(--s-8);display:flex;flex-direction:column;gap:var(--s-5)}.search-eyebrow{display:inline-flex;align-items:center;gap:var(--s-2);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);padding:var(--s-1) var(--s-3);border-radius:var(--r-full);background:var(--accent-soft);border:1px solid color-mix(in oklab,var(--accent) 30%,transparent);align-self:flex-start}.search-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.search-title{font-size:clamp(1.6rem,3.4vw,2.35rem);font-weight:620;line-height:1.1;letter-spacing:-.025em;margin:0;color:var(--text);max-width:26ch}.search-title em{font-style:normal;background:linear-gradient(120deg,var(--accent-strong),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}.search-lede{color:var(--text-muted);font-size:.95rem;max-width:56ch;margin:0}.search-form{display:flex;gap:var(--s-2);padding:var(--s-2);background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-lg);align-items:center;transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.search-form:focus-within{border-color:color-mix(in oklab,var(--accent) 55%,transparent);box-shadow:0 0 0 4px var(--accent-soft)}.search-form .prefix{padding-left:var(--s-3);color:var(--text-subtle);display:grid;place-items:center}.search-form input{flex:1;min-width:0;padding:var(--s-3) var(--s-3);background:transparent;border:0;outline:none;font-family:var(--font-mono);font-size:1.02rem;letter-spacing:.02em;color:var(--text)}.search-form input::placeholder{color:var(--text-subtle);font-family:var(--font-mono)}.btn{height:44px;padding:0 var(--s-5);border-radius:var(--r-md);font-weight:600;font-size:.92rem;letter-spacing:.01em;display:inline-flex;align-items:center;gap:var(--s-2);transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast);white-space:nowrap}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg,var(--accent-strong),var(--accent));color:var(--text-inverse);box-shadow:0 4px 14px var(--accent-glow),inset 0 1px #ffffff40}.btn-primary:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 8px 22px var(--accent-glow),inset 0 1px #ffffff4d}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text);border-color:var(--border-strong)}.search-meta{display:flex;flex-wrap:wrap;gap:var(--s-3);color:var(--text-subtle);font-size:.8rem;padding-top:var(--s-1)}.search-meta code{font-family:var(--font-mono);padding:2px var(--s-2);background:var(--surface-strong);border:1px solid var(--border-subtle);border-radius:var(--r-xs);color:var(--text-muted);cursor:pointer;transition:color var(--dur-fast),border-color var(--dur-fast)}.search-meta code:hover{color:var(--text);border-color:var(--border)}.empty{padding:var(--s-8);display:grid;grid-template-columns:1fr;gap:var(--s-5)}.empty-grid{display:grid;gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.empty-tile{padding:var(--s-5);background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--r-md);display:flex;flex-direction:column;gap:var(--s-2)}.empty-tile .ico{width:34px;height:34px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--accent);background:var(--accent-soft);border:1px solid color-mix(in oklab,var(--accent) 24%,transparent);margin-bottom:var(--s-1)}.empty-tile h4{margin:0;font-size:.95rem;font-weight:600;color:var(--text)}.empty-tile p{margin:0;color:var(--text-muted);font-size:.85rem;line-height:1.5}.skel{background:linear-gradient(90deg,var(--surface) 0%,var(--surface-strong) 50%,var(--surface) 100%);background-size:200% 100%;border-radius:var(--r-xs);animation:shimmer 1.8s var(--ease-in-out) infinite}.skel-lg{height:22px}.skel-md{height:14px}.skel-sm{height:10px}.skel-row{display:flex;gap:var(--s-3);flex-wrap:wrap}.status-hero{padding:0;overflow:hidden}.status-band{padding:var(--s-6) var(--s-6) var(--s-5);display:grid;gap:var(--s-4);grid-template-columns:1fr auto;align-items:start}.status-band-left{display:flex;flex-direction:column;gap:var(--s-3);min-width:0}.status-badge{display:inline-flex;align-items:center;gap:var(--s-2);padding:var(--s-1) var(--s-3);border-radius:var(--r-full);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;align-self:flex-start}.status-badge .dot{width:7px;height:7px;border-radius:50%;animation:pulseDot 2.4s var(--ease-in-out) infinite}.status-badge[data-state=delivered]{color:var(--success);background:var(--success-soft);border:1px solid color-mix(in oklab,var(--success) 35%,transparent)}.status-badge[data-state=delivered] .dot{background:var(--success);box-shadow:0 0 0 3px var(--success-soft)}.status-badge[data-state=transit]{color:var(--accent-strong);background:var(--accent-soft);border:1px solid color-mix(in oklab,var(--accent) 35%,transparent)}.status-badge[data-state=transit] .dot{background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.status-badge[data-state=exception]{color:var(--danger);background:var(--danger-soft);border:1px solid color-mix(in oklab,var(--danger) 35%,transparent)}.status-badge[data-state=exception] .dot{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.status-badge[data-state=pending]{color:var(--info);background:var(--info-soft);border:1px solid color-mix(in oklab,var(--info) 35%,transparent)}.status-badge[data-state=pending] .dot{background:var(--info);box-shadow:0 0 0 3px var(--info-soft)}.status-track{font-family:var(--font-mono);font-size:1.25rem;letter-spacing:.02em;color:var(--text);font-weight:500}.status-desc{color:var(--text-muted);margin:0;max-width:60ch;font-size:.94rem}.status-band-right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--s-2);text-align:right}.eta-label{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-subtle)}.eta-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:500;color:var(--text);line-height:1;letter-spacing:-.02em}.eta-value .sep{color:var(--text-subtle);margin:0 6px}.eta-sub{font-size:.82rem;color:var(--text-muted)}.progress{position:relative;height:8px;border-radius:var(--r-full);background:var(--surface-strong);overflow:hidden;margin:0 var(--s-6) var(--s-5)}.progress-fill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-strong));transform-origin:left;transform:scaleX(var(--p, 0));transition:transform var(--dur-lux) var(--ease-out);box-shadow:0 0 24px var(--accent-glow)}.progress-fill:after{content:"";position:absolute;right:0;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:var(--accent-strong);box-shadow:0 0 18px var(--accent-glow)}.progress-fill[data-state=delivered]{background:linear-gradient(90deg,var(--success),color-mix(in oklab,var(--success) 65%,white 20%));box-shadow:0 0 24px var(--success-soft)}.progress-fill[data-state=delivered]:after{background:var(--success);box-shadow:0 0 18px var(--success-soft)}.progress-milestones{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-2);padding:0 var(--s-6) var(--s-6)}.milestone{display:flex;flex-direction:column;gap:4px;padding-left:var(--s-3);border-left:2px solid var(--border-subtle);min-width:0}.milestone[data-reached=true]{border-left-color:var(--accent)}.milestone[data-current=true]{border-left-color:var(--accent-strong)}.milestone .label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.milestone[data-reached=true] .label{color:var(--text)}.milestone .sub{font-size:.78rem;color:var(--text-subtle);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route{padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-4)}.route-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4)}.route-head h3{margin:0;font-size:.95rem;font-weight:600;letter-spacing:-.01em}.route-svg-wrap{position:relative;border-radius:var(--r-md);padding:var(--s-6) var(--s-4);background:linear-gradient(180deg,var(--bg-1),var(--bg-2));border:1px solid var(--border-subtle);overflow:hidden}.route-svg-wrap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:24px 24px;mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,#000 30%,transparent 90%);-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,#000 30%,transparent 90%)}.route-svg{position:relative;display:block;width:100%;height:auto;z-index:1}.route-path{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-dasharray:6 6;filter:drop-shadow(0 0 6px var(--accent-glow))}.route-path--anim{stroke-dasharray:6 6;animation:dashFlow 3.8s linear infinite}.route-vehicle{fill:var(--accent-strong);filter:drop-shadow(0 0 10px var(--accent-glow))}.route-node{fill:var(--bg-1);stroke:var(--text-muted);stroke-width:1.5}.route-node--active{stroke:var(--accent);fill:var(--bg-1)}.route-label-city{font-family:var(--font-sans);font-size:13px;font-weight:600;fill:var(--text);letter-spacing:-.01em}.route-label-sub{font-family:var(--font-sans);font-size:10px;fill:var(--text-subtle);letter-spacing:.08em;text-transform:uppercase}.route-caption{display:flex;justify-content:center;width:100%}.route-caption-card{display:inline-flex;flex-direction:column;align-items:center;gap:1px;max-width:100%;padding:5px 9px;text-align:center;background:var(--surface-strong);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-sm);backdrop-filter:blur(6px) saturate(140%);-webkit-backdrop-filter:blur(6px) saturate(140%)}.route-caption .rc-desc{font-family:var(--font-sans);font-size:11px;font-weight:700;line-height:1.25;color:var(--text)}.route-caption .rc-loc{font-family:var(--font-sans);font-size:10.5px;line-height:1.25;color:var(--text-muted)}.route-caption .rc-time{font-family:var(--font-mono);font-size:9.5px;line-height:1.3;color:var(--text-subtle)}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s-4) var(--s-5);margin-top:var(--s-2)}.field{display:flex;flex-direction:column;gap:2px;min-width:0}.field-label{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-subtle);font-weight:600}.field-value{font-size:.96rem;color:var(--text);word-break:break-word}.field-value.mono{font-size:.9rem}.field-missing{color:var(--text-subtle);font-style:italic;font-size:.9rem}.details{padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-4)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.section-head h3{margin:0;font-size:.95rem;font-weight:600;letter-spacing:-.01em}.section-head .meta{color:var(--text-subtle);font-size:.8rem}.divider{height:1px;background:var(--border-subtle);border:0;margin:0}.timeline{padding:var(--s-6);display:flex;flex-direction:column;gap:var(--s-4)}.timeline-list{list-style:none;padding:0;margin:0;position:relative}.timeline-list:before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:1px;background:linear-gradient(180deg,var(--accent) 0%,var(--border) 30%,var(--border-subtle) 100%);transform-origin:top;animation:drawLine var(--dur-lux) var(--ease-out) both}.timeline-row{position:relative;padding:var(--s-3) 0 var(--s-3) var(--s-6);display:grid;grid-template-columns:1fr auto;gap:var(--s-3);align-items:start}.timeline-row+.timeline-row{border-top:1px dashed var(--border-subtle)}.timeline-row:before{content:"";position:absolute;left:3px;top:calc(var(--s-3) + 4px);width:10px;height:10px;border-radius:50%;background:var(--bg-1);border:2px solid var(--border);z-index:1;transition:border-color var(--dur-base),background var(--dur-base)}.timeline-row[data-latest=true]:before{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.timeline-desc{color:var(--text);font-weight:500;font-size:.94rem;margin:0 0 2px}.timeline-location{color:var(--text-muted);font-size:.85rem;margin:0}.timeline-time{color:var(--text-subtle);font-family:var(--font-mono);font-size:.78rem;letter-spacing:.02em;white-space:nowrap;text-align:right;padding-top:2px}.error-card{padding:var(--s-6);display:flex;gap:var(--s-4);border-color:color-mix(in oklab,var(--danger) 35%,transparent);background:linear-gradient(180deg,var(--danger-soft),transparent 80%),var(--surface)}.error-card .ico{width:40px;height:40px;border-radius:var(--r-md);display:grid;place-items:center;color:var(--danger);background:var(--danger-soft);flex-shrink:0}.error-card h3{margin:0 0 var(--s-1);font-size:1rem;color:var(--text)}.error-card p{margin:0;color:var(--text-muted);font-size:.9rem}.missing-card{padding:var(--s-4) var(--s-5);display:flex;align-items:center;gap:var(--s-3);background:var(--warning-soft);border-color:color-mix(in oklab,var(--warning) 30%,transparent)}.missing-card .ico{color:var(--warning)}.missing-card strong{color:var(--text);font-weight:600;font-size:.85rem}.missing-card span{color:var(--text-muted);font-size:.85rem}.address-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}.address-block{padding:var(--s-4);border-radius:var(--r-md);background:var(--bg-1);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--s-1)}.address-block .lbl{font-size:.7rem;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.12em;font-weight:600;display:flex;align-items:center;gap:var(--s-1)}.address-block .city{font-size:1.05rem;font-weight:600;color:var(--text);letter-spacing:-.01em}.address-block .rest{color:var(--text-muted);font-size:.86rem}.reveal{opacity:0;transform:translateY(8px);animation:reveal var(--dur-slow) var(--ease-out) forwards}@keyframes reveal{to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.85)}}@keyframes dashFlow{to{stroke-dashoffset:-60}}@keyframes drawLine{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes vehicleMove{0%{offset-distance:0%}to{offset-distance:100%}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:40;opacity:0;animation:reveal var(--dur-base) var(--ease-out) forwards}@media (max-width: 900px){.app{grid-template-columns:1fr;grid-template-areas:"header" "main"}.sidebar{position:fixed;top:0;left:0;height:100dvh;width:min(320px,88vw);z-index:50;background:color-mix(in oklab,var(--bg-0) 90%,transparent);transform:translate(-105%);transition:transform var(--dur-base) var(--ease-out);border-right:1px solid var(--border)}.sidebar[data-open=true]{transform:translate(0)}.status-band{grid-template-columns:1fr}.status-band-right{align-items:flex-start;text-align:left}.progress-milestones{grid-template-columns:repeat(2,1fr);gap:var(--s-3)}.address-grid{grid-template-columns:1fr}.stack{padding:var(--s-6) var(--s-4) var(--s-12)}.search-hero,.status-band,.details,.timeline,.route,.empty{padding:var(--s-5)}.timeline-row{grid-template-columns:1fr}.timeline-time{text-align:left}}@media (max-width: 560px){.search-form{flex-direction:column;align-items:stretch}.search-form .prefix{display:none}.btn{justify-content:center;width:100%}.search-form input{padding:var(--s-3)}}.menu-btn{display:none}@media (max-width: 900px){.menu-btn{display:grid}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.progress-fill,.status-badge .dot,.route-path--anim,.sidebar-foot .dot{animation:none!important}.reveal{opacity:1;transform:none}.timeline-list:before{transform:scaleY(1)}}.view-tabs{display:inline-flex;gap:var(--s-1);padding:var(--s-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);align-self:flex-start}.view-tabs button{display:inline-flex;align-items:center;gap:var(--s-2);height:36px;padding:0 var(--s-4);border-radius:var(--r-full);font-size:.85rem;font-weight:600;color:var(--text-muted);transition:color var(--dur-fast),background var(--dur-fast)}.view-tabs button:hover{color:var(--text)}.view-tabs button[data-active]{color:var(--text-inverse);background:linear-gradient(180deg,var(--accent-strong),var(--accent));box-shadow:0 2px 8px var(--accent-glow)}.bulk-input{display:flex;flex-direction:column;gap:var(--s-4)}.bulk-label{font-size:.9rem;color:var(--text-muted)}.bulk-textarea{width:100%;resize:vertical;min-height:120px;padding:var(--s-4);border-radius:var(--r-md);background:var(--surface-strong);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);font-size:.9rem;line-height:1.6;transition:border-color var(--dur-fast)}.bulk-textarea:focus{outline:none;border-color:var(--border-strong)}.bulk-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap}.bulk-count{font-size:.85rem;color:var(--text-subtle)}.bulk-count[data-warn]{color:var(--warning)}.bulk-summary{display:inline-flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.chip{display:inline-flex;align-items:center;padding:var(--s-1) var(--s-3);border-radius:var(--r-full);font-size:.75rem;font-weight:600}.chip[data-state=delivered]{color:var(--success);background:var(--success-soft)}.chip[data-state=transit]{color:var(--accent-strong);background:var(--accent-soft)}.chip[data-state=exception]{color:var(--danger);background:var(--danger-soft)}.chip[data-state=error]{color:var(--text-muted);background:var(--surface-strong)}.bulk-table-wrap{overflow-x:auto;margin-top:var(--s-4)}.bulk-table{width:100%;border-collapse:collapse;font-size:.88rem}.bulk-table th{text-align:left;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle);font-weight:600;padding:var(--s-2) var(--s-3);border-bottom:1px solid var(--border);white-space:nowrap}.bulk-table td{padding:var(--s-3);border-bottom:1px solid var(--border-subtle);color:var(--text-muted);vertical-align:middle}.bulk-table td.mono{font-family:var(--font-mono);color:var(--text);white-space:nowrap}.bulk-row--clickable{cursor:pointer;transition:background var(--dur-fast)}.bulk-row--clickable:hover,.bulk-row--clickable:focus-visible{background:var(--surface-hover);outline:none}.bulk-row[data-pending] .bulk-pending-cell{color:var(--text-subtle);font-style:italic}.bulk-row[data-error] .bulk-error-cell{color:var(--danger)}.bulk-scan{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge--sm{padding:2px var(--s-2);font-size:.68rem;letter-spacing:.05em}.status-badge--sm .dot{width:6px;height:6px}.proof-signature{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--border-subtle)}.proof-signature .field-label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-subtle)}.proof-signature img{max-width:320px;width:100%;border-radius:var(--r-sm);background:#fff;padding:var(--s-3);border:1px solid var(--border)}
