:root{--bg:#f2f1ed;--bg-tint:#eeedeb;--surface:#ffffff;--surface-secondary:#fafaf8;--surface-elevated:#ffffff;--text:#1d1d1f;--text-secondary:#6e6e73;--text-tertiary:#aeaeb2;--text-placeholder:#c7c7cc;--accent:#0071e3;--accent-soft:#e8f2fd;--accent-pressed:#005bbd;--success:#2ea851;--success-soft:#e7f7ec;--warning:#e8980c;--warning-soft:#fef6eb;--danger:#dc3545;--danger-soft:#fef0f0;--info:#5e5ce6;--info-soft:#edecfb;--separator:rgba(0,0,0,0.06);--separator-strong:rgba(0,0,0,0.1);--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-xl:24px;--r-full:999px;--shadow-sm:0 1px 2px rgba(0,0,0,0.04);--shadow-md:0 2px 8px rgba(0,0,0,0.06);--shadow-lg:0 4px 16px rgba(0,0,0,0.08);--shadow-float:0 8px 32px rgba(0,0,0,0.1);--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-7:32px;--s-8:40px;--s-9:48px;--s-10:64px;--font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;--font-mono:"SF Mono","Cascadia Code","JetBrains Mono",ui-monospace,monospace;--sidebar-w:248px;--bottom-nav-h:max(56px,calc(56px + env(safe-area-inset-bottom)));--content-max:720px}*,:after,:before{box-sizing:border-box;margin:0}html{-webkit-text-size-adjust:100%;font:100%/1.5 var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}body{min-height:100dvh}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;background:none;border:none;padding:0}img,svg{display:block}input,select,textarea{font:inherit;color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.app-shell{display:flex;min-height:100dvh}.sidebar{display:none;position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);background:rgba(248,247,245,.85);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-right:1px solid var(--separator);flex-direction:column;padding:var(--s-5) var(--s-4);z-index:30}.sidebar-brand{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2);margin-bottom:var(--s-6);font-weight:700;font-size:1.05rem;letter-spacing:-.01em}.sidebar-brand-icon{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--r-sm);background:var(--accent);color:white}.sidebar-nav{display:flex;flex-direction:column;gap:2px}.sidebar-nav a{display:flex;align-items:center;gap:var(--s-3);padding:10px var(--s-3);border-radius:var(--r-sm);font-size:.875rem;font-weight:500;color:var(--text-secondary);transition:background .15s ease}.sidebar-nav a:hover{background:rgba(0,0,0,.04);color:var(--text)}.sidebar-nav a.active{background:rgba(0,113,227,.08);color:var(--accent);font-weight:550}.main-area{flex:1 1;min-width:0;display:flex;flex-direction:column}.top-bar{display:none;align-items:center;justify-content:space-between;height:44px;padding:0 var(--s-4);position:-webkit-sticky;position:sticky;top:0;z-index:20;background:rgba(242,241,237,.8);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border-bottom:1px solid var(--separator)}.top-bar-left,.top-bar-right{display:flex;align-items:center;gap:var(--s-3)}.top-bar-title{font-size:.85rem;font-weight:550;color:var(--text-secondary);margin:0}.demo-badge{display:inline-flex;align-items:center;font-size:.65rem;font-weight:600;padding:2px 8px;border-radius:var(--r-full);vertical-align:middle;letter-spacing:.02em}.demo-badge-demo{background:var(--separator);color:var(--text-tertiary)}.demo-badge-local{background:var(--warning-soft);color:var(--warning)}.demo-badge-mode{background:rgba(0,113,227,.08);color:var(--accent)}.main-content{flex:1 1;padding:var(--s-6) var(--s-4) var(--bottom-nav-h);max-width:var(--content-max);width:100%;margin:0 auto}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-h);background:rgba(242,241,237,.85);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid var(--separator);z-index:30}.bottom-nav a{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.6rem;font-weight:520;color:var(--text-secondary);transition:color .15s ease;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav .nav-add,.bottom-nav a.active{color:var(--accent)}.bottom-nav .nav-add svg{width:24px;height:24px}.page-header{margin-bottom:var(--s-6)}.page-header h1{font-size:1.65rem;font-weight:700;letter-spacing:-.025em;line-height:1.15;margin-bottom:var(--s-1)}.page-header p{color:var(--text-secondary);font-size:.9rem}.section-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:var(--s-3)}.section-header h2{font-size:.85rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.section-header a{font-size:.8rem;font-weight:500;color:var(--accent)}.card{padding:var(--s-5)}.card,.card-inset{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow-sm);border:1px solid var(--separator)}.card-inset{overflow:hidden}.card-link{display:block;transition:box-shadow .18s ease,transform .18s ease}.card-link:hover{box-shadow:var(--shadow-md)}.card-link:active{transform:scale(.985);transition:transform 80ms ease}.welcome{margin-bottom:var(--s-7)}.welcome-eyebrow{font-size:.75rem;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:var(--s-1)}.welcome-title{font-size:1.7rem;font-weight:700;letter-spacing:-.03em;line-height:1.12}.welcome-sub{color:var(--text-secondary);font-size:.9rem;margin-top:var(--s-1)}.hero-stats{display:flex;gap:var(--s-5);margin-top:var(--s-5)}.hero-stat{display:flex;flex-direction:column}.hero-stat-value{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.hero-stat-label{font-size:.75rem;color:var(--text-secondary);margin-top:2px}.hero-stat.focus .hero-stat-value{color:var(--success)}.pickup-card{background:linear-gradient(135deg,#1a6d3a,#2ea851);color:white;border-radius:var(--r-lg);padding:var(--s-6);margin-bottom:var(--s-6);box-shadow:0 4px 20px rgba(46,168,81,.25);position:relative;overflow:hidden}.pickup-card:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent,transparent 8px,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 10px)}.pickup-card h3{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;opacity:.75;margin-bottom:var(--s-3)}.pickup-code-large{font-size:2.4rem;font-weight:700;letter-spacing:.06em;font-family:var(--font-mono);margin-bottom:var(--s-2);position:relative}.pickup-card .meta{font-size:.82rem;opacity:.8}.metrics-strip{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:var(--s-2);gap:var(--s-2);margin-bottom:var(--s-6)}.metric-item{text-align:center;padding:var(--s-3) var(--s-2)}.metric-item-value{font-size:1.25rem;font-weight:700;letter-spacing:-.02em;font-feature-settings:"tnum"}.metric-item-label{font-size:.65rem;color:var(--text-secondary);font-weight:500;margin-top:2px;text-transform:uppercase;letter-spacing:.03em}.status-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--r-full);font-size:.68rem;font-weight:650;letter-spacing:.01em;white-space:nowrap}.status-pending{background:#f0f0f2;color:var(--text-secondary)}.status-picked_up{background:var(--info-soft);color:var(--info)}.status-in_transit{background:var(--accent-soft);color:var(--accent)}.status-arriving{background:var(--warning-soft);color:var(--warning)}.status-ready{background:var(--success-soft);color:var(--success)}.status-delivered{background:#f0f0f2;color:var(--text-secondary)}.status-exception{background:var(--danger-soft);color:var(--danger)}.parcel-list{display:flex;flex-direction:column}.parcel-list>*{border-bottom:1px solid var(--separator)}.parcel-list>:last-child{border-bottom:none}.parcel-list-item{padding:var(--s-4) var(--s-5);background:var(--surface)}.parcel-list-item:first-child{border-radius:var(--r-md) var(--r-md) 0 0}.parcel-list-item:last-child{border-radius:0 0 var(--r-md) var(--r-md)}.parcel-list-item:only-child{border-radius:var(--r-md)}.parcel-list-item:active{background:#f5f5f7}.parcel-row{gap:var(--s-3)}.parcel-row,.parcel-row-icon{display:flex;align-items:center}.parcel-row-icon{width:40px;height:40px;border-radius:var(--r-sm);justify-content:center;flex-shrink:0}.parcel-row-icon.ready{background:var(--success-soft);color:var(--success)}.parcel-row-icon.transit{background:var(--accent-soft);color:var(--accent)}.parcel-row-icon.pending{background:#f0f0f2;color:var(--text-secondary)}.parcel-row-icon.exception{background:var(--danger-soft);color:var(--danger)}.parcel-row-main{flex:1 1;min-width:0}.parcel-row-title{font-size:.9rem;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.parcel-row-meta{font-size:.78rem;color:var(--text-secondary);margin-top:2px;display:flex;gap:var(--s-2)}.parcel-row-right{display:flex;flex-direction:column;align-items:flex-end;gap:var(--s-1);flex-shrink:0}.journey-strip{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-3) 0}.journey-city{font-size:.78rem;font-weight:550}.journey-arrow{color:var(--text-tertiary)}.journey-line{flex:1 1;height:2px;background:linear-gradient(to right,var(--accent),var(--separator));border-radius:1px}.journey-current{font-size:.72rem;color:var(--accent);font-weight:600}.timeline{position:relative;padding:0 0 0 var(--s-6)}.timeline:before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:1.5px;background:var(--separator);border-radius:1px}.timeline-item{position:relative;padding-bottom:var(--s-4)}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:calc(-1 * var(--s-6) + 3px);top:4px;width:10px;height:10px;border-radius:50%;background:var(--separator-strong);border:2px solid var(--surface);z-index:1}.timeline-dot.completed{background:var(--accent);border-color:var(--surface)}.timeline-dot.current{background:var(--success);box-shadow:0 0 0 3px var(--success-soft)}.timeline-title{font-size:.88rem;font-weight:550}.timeline-desc{font-size:.78rem;color:var(--text-secondary);margin-top:2px}.timeline-meta{font-size:.72rem;color:var(--text-tertiary);margin-top:2px}.timeline-title-muted{color:var(--text-tertiary);font-weight:420}.detail-back{display:inline-flex;align-items:center;gap:4px;font-size:.85rem;font-weight:500;color:var(--accent)}.detail-back,.detail-header{margin-bottom:var(--s-5)}.detail-header-row{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;margin-bottom:var(--s-1)}.detail-header h1{font-size:1.4rem;font-weight:700;letter-spacing:-.02em}.detail-carrier{font-size:.82rem;color:var(--text-secondary)}.detail-tracking-row{display:flex;align-items:center;gap:var(--s-2);margin-top:var(--s-1)}.detail-tracking{font-size:.82rem;color:var(--text-tertiary);font-family:var(--font-mono)}.progress-wrap{margin-bottom:var(--s-5);height:3px;background:var(--separator);border-radius:2px;overflow:hidden}.progress-fill{height:100%;width:var(--pw,0);border-radius:2px;background:var(--accent);transition:width .5s ease}.detail-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0;margin-bottom:var(--s-5);background:var(--surface);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--separator)}.detail-cell{padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--separator);border-right:1px solid var(--separator)}.detail-cell:nth-child(2n){border-right:none}.detail-cell:nth-last-child(-n+2){border-bottom:none}.detail-cell-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:2px}.detail-cell-value{font-size:.88rem;font-weight:550}.pickup-info-inline{display:flex;align-items:center;gap:var(--s-5);padding:var(--s-5);background:var(--success-soft);border-radius:var(--r-md);margin-bottom:var(--s-5)}.pickup-info-inline .code{font-size:2rem;font-weight:700;letter-spacing:.06em;font-family:var(--font-mono);color:var(--success)}.pickup-info-inline .meta{font-size:.82rem;color:#1a6d3a}.exception-alert{padding:var(--s-4);background:var(--danger-soft);border:1px solid var(--danger);border-radius:var(--r-md);margin-bottom:var(--s-5)}.exception-alert h3{font-size:.85rem;font-weight:650;color:var(--danger)}.exception-alert p{font-size:.82rem;color:var(--danger);margin-top:2px}.local-actions{gap:var(--s-3);margin:var(--s-6) 0}.confirm-delete,.local-actions{display:flex;align-items:center}.confirm-delete{gap:var(--s-2);font-size:.85rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-1);height:44px;padding:0 var(--s-5);border-radius:var(--r-sm);font-size:.875rem;font-weight:600;transition:transform .1s ease,opacity .15s ease,background .15s ease}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;transform:none}.btn-primary{background:var(--accent);color:white}.btn-primary:hover{background:var(--accent-pressed)}.btn-secondary{background:var(--surface-secondary);color:var(--text)}.btn-secondary:hover{background:#f0f0f2}.btn-ghost{background:transparent;color:var(--accent)}.btn-ghost:hover{background:rgba(0,113,227,.06)}.btn-danger{background:var(--danger);color:white}.btn-danger:hover{background:#c4303f}.btn-sm{height:36px;padding:0 var(--s-3);font-size:.8rem;border-radius:var(--r-xs)}.btn-lg{height:52px;padding:0 var(--s-6);font-size:.95rem;border-radius:var(--r-md)}.btn-icon{width:44px;height:44px;padding:0;border-radius:var(--r-sm)}.copy-btn{display:inline-flex;align-items:center;gap:var(--s-1);padding:var(--s-1) var(--s-2);border-radius:var(--r-xs);font-size:.72rem;font-weight:520;color:var(--accent);transition:background .15s ease}.copy-btn:hover{background:var(--accent-soft)}.form-group{margin-bottom:var(--s-5)}.form-label{display:block;font-size:.82rem;font-weight:550;margin-bottom:var(--s-1);color:var(--text)}.form-input,.form-select{width:100%;height:48px;padding:0 var(--s-4);border:1px solid var(--separator-strong);border-radius:var(--r-sm);font-size:.92rem;background:var(--surface);outline:none;transition:border-color .18s ease,box-shadow .18s ease}.form-input:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(0,113,227,.12)}.form-input::placeholder{color:var(--text-placeholder)}.form-input:disabled{background:var(--surface-secondary);color:var(--text-secondary);cursor:not-allowed}.form-hint{color:var(--text-tertiary)}.form-error,.form-hint{font-size:.75rem;margin-top:var(--s-1)}.form-error{color:var(--danger)}.form-submit-error{background:var(--danger-soft);border:1px solid var(--danger);border-radius:var(--r-sm);color:var(--danger)}.form-submit-error,.form-success{font-size:.82rem;font-weight:500;text-align:center;padding:var(--s-3);margin-bottom:var(--s-3)}.form-success{background:var(--success-soft);border:1px solid var(--success);border-radius:var(--r-sm);color:var(--success)}.form-card{background:var(--surface);border-radius:var(--r-md);padding:var(--s-5);box-shadow:var(--shadow-sm);border:1px solid var(--separator);max-width:480px}.filter-bar{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-bottom:var(--s-3)}.filter-chip{padding:7px 15px;border-radius:var(--r-full);font-size:.75rem;font-weight:520;color:var(--text-secondary);background:var(--surface-secondary);transition:all .16s ease;white-space:nowrap}.filter-chip:hover{background:#eaeaeb}.filter-chip.active{background:var(--accent);color:white}.search-wrap{position:relative;margin-bottom:var(--s-4)}.search-wrap svg{position:absolute;left:14px;top:15px;color:var(--text-tertiary);pointer-events:none}.search-input{width:100%;height:44px;padding:0 var(--s-4) 0 40px;border:none;border-radius:var(--r-sm);font-size:.9rem;background:#eaeaeb;outline:none;transition:background .18s ease,box-shadow .18s ease}.search-input:focus{background:var(--surface);box-shadow:0 0 0 3px rgba(0,113,227,.12)}.search-input::placeholder{color:var(--text-placeholder)}.empty-state{text-align:center;padding:var(--s-10) var(--s-4)}.empty-state-icon{margin:0 auto var(--s-4);opacity:.2}.empty-state h3{font-size:1rem;font-weight:650;margin-bottom:var(--s-1)}.empty-state p{font-size:.85rem;color:var(--text-secondary);margin-bottom:var(--s-5)}.error-state{text-align:center;padding:var(--s-10) var(--s-4)}.error-state h3{font-size:1rem;font-weight:650;color:var(--danger);margin-bottom:var(--s-1)}.error-retry-btn{margin-top:var(--s-4)}.skeleton{background:linear-gradient(90deg,#eaeaeb 25%,#f5f5f7 50%,#eaeaeb 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--r-xs)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.demo-notice{text-align:center;padding:var(--s-3);border-radius:var(--r-sm);background:rgba(0,113,227,.04);color:var(--text-secondary);font-size:.75rem;font-weight:500;margin-top:var(--s-6)}.settings-section{margin-bottom:var(--s-6)}.settings-section h3{font-size:.78rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:var(--s-2);padding:0 var(--s-1)}.settings-group{background:var(--surface);border-radius:var(--r-md);box-shadow:var(--shadow-sm);border:1px solid var(--separator);overflow:hidden}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--separator);min-height:48px}.settings-row:last-child{border-bottom:none}.settings-row-label{font-size:.88rem}.settings-row-hint{font-size:.75rem;color:var(--text-secondary);margin-top:2px}.settings-danger-zone{background:var(--danger-soft);border:1px solid var(--danger);border-radius:var(--r-md);padding:var(--s-4);margin-top:var(--s-2)}.chart-row{display:flex;align-items:center;gap:var(--s-3);padding:6px 0}.chart-label{width:64px;text-align:right;font-size:.8rem;font-weight:500;color:var(--text-secondary);flex-shrink:0}.chart-track{flex:1 1;height:6px;background:var(--separator);border-radius:3px;overflow:hidden}.chart-fill{height:100%;border-radius:3px;transition:width .5s ease}.chart-value{width:28px;font-size:.8rem;font-weight:650;font-feature-settings:"tnum";flex-shrink:0}.insight-card{background:var(--surface);border-radius:var(--r-md);padding:var(--s-5);box-shadow:var(--shadow-sm);border:1px solid var(--separator);margin-bottom:var(--s-4)}.insight-card h3{font-size:.78rem;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:var(--s-3)}.china-map-wrap{position:relative;width:100%;height:340px;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--separator);margin-bottom:var(--s-6);background:#e8e6e0}.china-map-container{width:100%;height:100%}.china-map-attribution{position:absolute;bottom:4px;right:8px;font-size:.6rem;color:var(--text-tertiary);background:rgba(255,255,255,.7);padding:1px 6px;border-radius:var(--r-xs);pointer-events:none}.china-map-attribution a{color:var(--text-tertiary);pointer-events:auto}.china-map-wrap .maplibregl-ctrl-group{border-radius:var(--r-sm)!important;overflow:hidden;box-shadow:var(--shadow-md)!important;border:1px solid var(--separator)!important}.china-map-wrap .maplibregl-ctrl-group button{width:36px!important;height:36px!important}@media (max-width:767px){.china-map-wrap{height:260px;border-radius:var(--r-sm)}}@media (prefers-reduced-motion:reduce){.china-map-wrap .maplibregl-marker{transition:none!important}}.demo-map{position:relative;background:var(--surface-secondary);border-radius:var(--r-md);overflow:hidden;height:180px;margin-bottom:var(--s-2)}.demo-map svg{width:100%;height:100%}.map-caption{font-size:.7rem;color:var(--text-tertiary);text-align:center}.auth-feedback{text-align:center;font-size:.82rem;font-weight:500;padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);animation:fadeIn .25s ease-out}.feedback-error{color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger)}.feedback-success{color:var(--success);background:var(--success-soft);border:1px solid var(--success)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (min-width:768px){.sidebar{display:flex}.main-area{margin-left:var(--sidebar-w)}.top-bar{display:flex}.bottom-nav{display:none}.main-content{padding:var(--s-6) var(--s-6) var(--s-8)}.detail-grid{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:0s!important;animation-duration:0s!important}}