:root{--accent:#1d9e75;--accent-soft:#c7e5d7;--coral:#d85a30;--amber:#ba7517;--red:#e24b4a;--blue:#378add;--green:#639922;--ink:#1f1f1b;--ink-soft:#4a4a45;--ink-faint:#8a8a82;--paper:#f7f4ec;--paper-2:#efebe0;--paper-card:#fbfaf4;--font:"Plus Jakarta Sans", system-ui, sans-serif;--display:"Plus Jakarta Sans", system-ui, sans-serif;--hand:"Plus Jakarta Sans", system-ui, sans-serif;--mono:"JetBrains Mono", monospace}*,:before,:after{box-sizing:border-box}html,body{color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#d4d0c6;height:100%;margin:0;padding:0}#root{justify-content:center;align-items:flex-start;height:100dvh;display:flex;overflow:hidden}.app-shell{background:var(--paper);flex-direction:column;width:100%;max-width:390px;height:100dvh;display:flex;position:relative;overflow:hidden;box-shadow:0 0 40px #00000026}.screen-content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.disp{font-family:var(--font);letter-spacing:-.02em;font-weight:800}.hand{font-family:var(--font)}.mono{font-family:var(--mono)}.ink{color:var(--ink)}.soft{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.accent-c{color:var(--accent)}.coral-c{color:var(--coral)}.red-c{color:var(--red)}.amber-c{color:var(--amber)}.blue-c{color:var(--blue)}.green-c{color:var(--green)}.sketch-box{border:1.8px solid var(--ink);background:var(--paper-card);border-radius:14px 12px 16px 11px;position:relative}.sketch-box.dashed{border-style:dashed}.sketch-btn{font-family:var(--font);border:1.8px solid var(--ink);background:var(--paper-card);color:var(--ink);box-shadow:2px 2px 0 var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;text-align:center;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:15px;font-weight:600;line-height:1.2;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.sketch-btn:active{box-shadow:1px 1px 0 var(--ink);transform:translate(1px,1px)}.sketch-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:2px 2px #1d9e7566}.sketch-btn.primary:active{box-shadow:1px 1px #1d9e7566}.sketch-btn.coral-btn{background:var(--coral);color:#fff;border-color:var(--coral);box-shadow:2px 2px #d85a3066}.sketch-btn.ghost{box-shadow:none;border-color:var(--ink-faint);color:var(--ink-soft);background:0 0}.sketch-btn.danger{background:var(--red);color:#fff;border-color:var(--red);box-shadow:2px 2px #e24b4a66}.sketch-btn.disabled{background:var(--paper-2);color:var(--ink-faint);box-shadow:1px 1px 0 var(--ink-faint);border-color:var(--ink-faint);cursor:default;pointer-events:none}.sketch-btn.sm{padding:7px 12px;font-size:13px}.sketch-btn.lg{padding:13px 20px;font-size:17px}.sketch-btn.full{width:100%}.sketch-input{border:1.8px solid var(--ink);background:var(--paper);font-family:var(--font);color:var(--ink);border-radius:10px;outline:none;width:100%;padding:10px 12px;font-size:15px;transition:border-color .15s;display:block}.sketch-input::placeholder{color:var(--ink-faint)}.sketch-input:focus{border-color:var(--accent)}.sketch-tag{font-family:var(--font);border:1.5px solid var(--ink);background:var(--paper-card);color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:12px;font-weight:500;display:inline-flex}.sketch-tag.green{border-color:var(--green);color:var(--green);background:#ddf0cc}.sketch-tag.amber{border-color:var(--amber);color:var(--amber);background:#f5e3c2}.sketch-tag.red{border-color:var(--red);color:var(--red);background:#f4d1d1}.sketch-tag.blue{border-color:var(--blue);color:var(--blue);background:#d6e5f6}.sketch-tag.accent{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.sketch-tag.faint{background:var(--paper-2);border-color:var(--ink-faint);color:var(--ink-faint)}.sketch-tag.coral{border-color:var(--coral);color:var(--coral);background:#ffe4d0}.divider-dashed{border:0;border-top:1.5px dashed var(--ink-faint);margin:10px 0}.placeholder-img{background:repeating-linear-gradient(135deg, var(--paper-2) 0 8px, var(--paper-card) 8px 16px);border:1.6px dashed var(--ink-faint);color:var(--ink-faint);font-family:var(--mono);text-transform:uppercase;letter-spacing:.6px;border-radius:12px;justify-content:center;align-items:center;font-size:10px;display:flex}.underline-sketch{text-underline-offset:2px;cursor:pointer;text-decoration:underline}.avatar{border:1.6px solid var(--ink);background:var(--paper-2);font-family:var(--font);color:var(--ink);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:inline-flex}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:#1f1f1b33;border-radius:4px}@keyframes trip-cta-pulse{0%,to{transform:translateY(0);box-shadow:2px 2px #d85a3059}50%{transform:translateY(-1px);box-shadow:2px 2px #d85a3059,0 0 0 6px #d85a3024}}.trip-cta-pulse{animation:2.2s ease-in-out infinite trip-cta-pulse}@keyframes trip-cta-press{0%{transform:scale(1)}50%{transform:scale(.98)}to{transform:scale(1)}}.trip-cta-btn:active:not(.disabled){animation:.18s trip-cta-press}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.sheet-up{animation:.34s cubic-bezier(.32,.72,0,1) sheet-up}@keyframes sheet-backdrop-in{0%{opacity:0}to{opacity:1}}.sheet-backdrop{animation:.22s sheet-backdrop-in}@keyframes card-enter{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.active-trip-card{animation:.42s cubic-bezier(.32,.72,0,1) card-enter}@keyframes trip-stagger-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.trip-stagger-1{animation:.4s ease-out 80ms both trip-stagger-in}.trip-stagger-2{animation:.4s ease-out .14s both trip-stagger-in}.trip-stagger-3{animation:.4s ease-out .2s both trip-stagger-in}.trip-stagger-4{animation:.4s ease-out .26s both trip-stagger-in}.trip-stagger-5{animation:.4s ease-out .32s both trip-stagger-in}@keyframes trip-icon-float{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.trip-icon-float{animation:2.4s ease-in-out infinite trip-icon-float}@keyframes trip-earnings-pop{0%{opacity:.6;transform:scale(.92)}60%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.trip-earnings-pop{animation:.5s cubic-bezier(.32,.72,0,1) trip-earnings-pop}@keyframes trip-badge-pop{0%{transform:scale(0)}70%{transform:scale(1.15)}to{transform:scale(1)}}.trip-badge-pop{animation:.4s cubic-bezier(.32,.72,0,1) trip-badge-pop}@keyframes trip-hint-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.trip-hint-fade{animation:.36s .2s both trip-hint-fade}@keyframes trip-warn-bounce{0%,to{transform:scale(1)}40%{transform:scale(1.06)}}.trip-warn-icon{animation:.6s .12s both trip-warn-bounce}@keyframes trip-shimmer{0%{background-position:-120% 0}to{background-position:220% 0}}.trip-occupancy-bar__fill--animated{background:linear-gradient(90deg, var(--accent) 0%, var(--coral) 45%, #ffb88a 55%, var(--coral) 100%);background-size:200% 100%;animation:2.8s ease-in-out infinite trip-shimmer}@keyframes live-header-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.live-trip-header{animation:.38s ease-out live-header-in}.live-trip-content>*{animation:.42s ease-out both trip-stagger-in}.live-trip-content>:first-child{animation-delay:60ms}.live-trip-content>:nth-child(2){animation-delay:.12s}.live-trip-content>:nth-child(3){animation-delay:.18s}.live-trip-content>:nth-child(4){animation-delay:.24s}.live-trip-content>:nth-child(5){animation-delay:.3s}.live-trip-content>:nth-child(6){animation-delay:.36s}.active-trip-card__header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.active-trip-card__time{align-items:flex-start;gap:8px;display:flex}.active-trip-card__route{align-items:center;gap:4px;margin-top:2px;font-size:11px;display:flex}.active-trip-card__meta{border-top:1.5px dashed var(--ink-faint);justify-content:space-between;align-items:center;margin-top:4px;padding:10px 0 4px;display:flex}.trip-back-btn{cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:10px;padding:6px;transition:background .15s,transform .1s}.trip-back-btn:active{background:#ffffff24;transform:scale(.94)}.trip-icon-btn--lift{transition:transform .18s,box-shadow .18s,background .15s}.trip-icon-btn--lift:hover{transform:translateY(-1px);box-shadow:2px 3px #1f1f1b14}.trip-icon-btn--lift:active{transform:translateY(0)scale(.97)}.live-trip-hint{justify-content:center;align-items:flex-start;gap:6px;display:flex}.trip-progress{margin:4px 0 2px}.trip-progress__track{justify-content:space-between;align-items:flex-start;padding:0 4px;display:flex;position:relative}.trip-progress__line{background:var(--paper-2);z-index:0;border-radius:3px;height:3px;position:absolute;top:13px;left:18px;right:18px;overflow:hidden}.trip-progress__line-fill{background:linear-gradient(90deg, var(--accent), var(--coral));border-radius:3px;height:100%;transition:width .5s cubic-bezier(.32,.72,0,1)}.trip-progress--dark .trip-progress__line{background:#ffffff1f}.trip-progress--dark .trip-progress__line-fill{background:linear-gradient(90deg,#7ec8a8,#ff9a6b)}.trip-progress--dark .trip-progress__compact-label{color:#ffffffa6!important}.trip-progress--dark .trip-progress__step.is-active .trip-progress__label{color:#ffb88a}.trip-progress--dark .trip-progress__step.is-done .trip-progress__label{color:#7ec8a8}.trip-progress--dark .trip-progress__step.is-active .trip-progress__dot{background:#ff9a6b33;border-color:#ff9a6b;box-shadow:0 0 0 3px #ff9a6b26}.trip-progress--dark .trip-progress__step.is-done .trip-progress__dot{background:#7ec8a826;border-color:#7ec8a8}.trip-progress__step{z-index:1;flex-direction:column;flex:1;align-items:center;gap:4px;display:flex;position:relative}.trip-progress__dot{border:1.8px solid var(--ink-faint);background:var(--paper-card);width:26px;height:26px;color:var(--ink-faint);border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:800;transition:border-color .2s,background .2s,color .2s,transform .2s;display:flex}.trip-progress__step.is-done .trip-progress__dot{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}@keyframes trip-step-pop{0%{transform:scale(.85)}60%{transform:scale(1.12)}to{transform:scale(1.08)}}.trip-progress__step.is-active .trip-progress__dot{border-color:var(--coral);color:var(--coral);background:#ffe4d0;animation:.42s cubic-bezier(.32,.72,0,1) trip-step-pop;transform:scale(1.08);box-shadow:0 0 0 3px #d85a301f}.trip-progress__step{animation:.36s ease-out both trip-stagger-in}.trip-progress__label{color:var(--ink-faint);text-align:center;max-width:72px;font-size:9px;font-weight:600;line-height:1.2}.trip-progress__step.is-active .trip-progress__label{color:var(--coral);font-weight:700}.trip-progress__step.is-done .trip-progress__label{color:var(--accent)}.trip-progress--compact .trip-progress__compact-label{text-align:center;margin-top:6px;font-size:10px}.trip-occupancy-bar{background:var(--paper-2);border-radius:4px;height:4px;margin-top:8px;overflow:hidden}.trip-occupancy-bar__fill{background:linear-gradient(90deg, var(--accent), var(--coral));border-radius:4px;height:100%;transition:width .4s}.trip-icon-btn{border:1.6px solid var(--ink);background:var(--paper-card);cursor:pointer;font-family:var(--font);color:var(--ink);border-radius:10px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;transition:background .15s,transform .1s;display:inline-flex;position:relative}.trip-icon-btn:active{transform:scale(.97)}.trip-icon-btn__badge{background:var(--red);color:#fff;border:2px solid var(--paper-card);border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:10px;font-weight:800;display:flex;position:absolute;top:-7px;right:-7px}.live-trip-footer{border-top:1.5px dashed var(--ink-faint);background:var(--paper);flex-shrink:0;padding:10px 12px 20px}.live-trip-hint{color:var(--ink-soft);text-align:center;margin-bottom:8px;padding:0 4px;font-size:11px;line-height:1.45}@media (prefers-reduced-motion:reduce){.trip-cta-pulse,.trip-icon-float,.trip-occupancy-bar__fill--animated,.trip-progress__step.is-active .trip-progress__dot,.trip-warn-icon,.active-trip-card,.sheet-up,.sheet-backdrop,.live-trip-header,.live-trip-content>*,.trip-stagger-1,.trip-stagger-2,.trip-stagger-3,.trip-stagger-4,.trip-stagger-5,.trip-earnings-pop,.trip-badge-pop,.trip-hint-fade{transition:none!important;animation:none!important}.car-loading__fill,.car-loading__car{animation:none!important}}@keyframes car-loading-fill{0%{width:6%}45%{width:78%}70%{width:88%}to{width:100%}}@keyframes car-loading-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.car-loading-shell{background:var(--paper);flex:1;justify-content:center;align-items:center;padding:24px 20px;display:flex}.car-loading{flex-direction:column;align-items:center;gap:14px;width:100%;max-width:280px;margin-inline:auto;display:flex}.car-loading--screen{min-height:120px}.car-loading--inline{padding:28px 16px}.car-loading--compact{gap:10px;max-width:200px;padding:12px 0}.car-loading--compact .car-loading__track{height:7px}.car-loading--compact .car-loading__car{width:26px;height:26px}.car-loading--compact .car-loading__label{font-size:.8rem}.car-loading__track{background:var(--paper-2);border:1px solid var(--border);border-radius:999px;width:100%;height:10px;position:relative;overflow:visible}.car-loading__fill{background:linear-gradient(90deg, var(--accent) 0%, color-mix(in srgb, var(--accent) 72%, white) 100%);border-radius:999px;min-width:28px;height:100%;animation:2.4s cubic-bezier(.45,.05,.25,1) infinite car-loading-fill;position:absolute;top:0;left:0}.car-loading__fill--controlled{width:6%;transition:width .22s cubic-bezier(.32,.72,0,1);animation:none}.car-loading__car{background:var(--paper);border:1.5px solid var(--border);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;animation:.55s ease-in-out infinite car-loading-bounce;display:flex;position:absolute;top:50%;right:-2px;transform:translate(50%,-58%);box-shadow:0 2px 8px #00000014}.car-loading__label{text-align:center;margin:0;font-size:.9rem}
