:root{--color-bg: #fff8ee;--color-surface: #ffffff;--color-surface2: #fff3db;--color-accent: #e8900a;--color-accent-dim:#c8770a;--color-text: #1a1208;--color-text-muted:#7a6a52;--color-border: #e8d8be;--color-error: #d94040;--color-success: #2f9e44;--font-family: "Inter", system-ui, -apple-system, sans-serif;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--header-h: 56px;--nav-h: 68px;--touch-min: 48px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font-family);background-color:var(--color-bg);color:var(--color-text);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%}.app{display:flex;flex-direction:column;height:100%;max-width:480px;margin:0 auto;position:relative}.app-header{height:var(--header-h);background:linear-gradient(135deg,#e8900a,#f5a623 60%,#f9c355);border-bottom:none;display:flex;align-items:center;justify-content:space-between;padding:0 16px;flex-shrink:0;position:sticky;top:0;z-index:10;box-shadow:0 2px 12px #e8900a4d}.app-header-title{font-size:18px;font-weight:700;color:#fff;letter-spacing:.3px}.avatar-btn{background:none;border:2px solid rgba(255,255,255,.7);border-radius:50%;cursor:pointer;width:36px;height:36px;padding:0;overflow:hidden;display:flex;align-items:center;justify-content:center;transition:opacity .2s}.avatar-btn:hover{opacity:.8}.avatar-img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{font-size:16px;font-weight:700;color:#fff;color:var(--color-accent)}.app-content{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-bottom:8px}.app-content::-webkit-scrollbar{width:4px}.app-content::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.bottom-nav{height:var(--nav-h);background:var(--color-surface);border-top:1px solid var(--color-border);display:flex;align-items:stretch;flex-shrink:0;padding-bottom:env(safe-area-inset-bottom,0)}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-decoration:none;color:var(--color-text-muted);min-height:var(--touch-min);transition:color .15s;-webkit-tap-highlight-color:transparent}.nav-item:hover{color:var(--color-text)}.nav-item--active{color:var(--color-accent)}.nav-emoji{font-size:20px;line-height:1}.nav-label{font-size:10px;font-weight:500;letter-spacing:.2px}.loading-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:var(--color-bg);color:var(--color-text-muted)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-screen{height:100%;display:flex;align-items:center;justify-content:center;background:var(--color-bg);padding:24px}.login-card{width:100%;max-width:360px;background:var(--color-surface);border-radius:var(--radius-lg);padding:40px 32px;text-align:center;border:1px solid var(--color-border)}.login-logo{font-size:56px;margin-bottom:16px}.login-title{font-size:28px;font-weight:800;color:var(--color-accent);margin-bottom:8px}.login-subtitle{font-size:14px;color:var(--color-text-muted);margin-bottom:32px}.login-error{background:#ff6b6b26;border:1px solid var(--color-error);color:var(--color-error);border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;margin-bottom:16px}.btn-google{width:100%;min-height:var(--touch-min);background:var(--color-surface2);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:15px;font-weight:600;font-family:var(--font-family);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:background .2s,border-color .2s}.btn-google:hover{background:var(--color-border);border-color:var(--color-accent)}.google-icon{flex-shrink:0}.card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);padding:16px;margin:0 16px 12px}.card-title{font-size:14px;font-weight:700;color:var(--color-accent);text-transform:uppercase;letter-spacing:.8px;margin-bottom:12px}.btn{min-height:var(--touch-min);padding:0 20px;border-radius:var(--radius-md);font-size:15px;font-weight:600;font-family:var(--font-family);cursor:pointer;border:none;transition:filter .15s,box-shadow .15s;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:active{filter:brightness(.92)}.btn-primary{background:linear-gradient(135deg,#e8900a,#f5a623);color:#fff;box-shadow:0 2px 8px #e8900a59}.btn-primary:hover{filter:brightness(1.06)}.btn-secondary{background:#fff;color:var(--color-text);border:1.5px solid var(--color-border);box-shadow:0 1px 4px #00000012}.btn-secondary:hover{background:var(--color-surface2)}.section-header{padding:20px 16px 8px;font-size:12px;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:1px}.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;background:var(--color-surface2);color:var(--color-text-muted)}.badge--accent{background:#e8900a26;color:var(--color-accent)}.countdown{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px 32px;gap:8px;min-height:calc(100vh - var(--header-h) - var(--nav-h));text-align:center}.countdown-label{font-size:13px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:1.2px}.countdown-trip-name{font-size:22px;font-weight:800;color:var(--color-text);margin-bottom:24px}.countdown-grid{display:flex;align-items:center;gap:4px;margin-bottom:24px}.countdown-unit{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:64px}.countdown-value{font-size:52px;font-weight:800;color:var(--color-accent);line-height:1;font-variant-numeric:tabular-nums;animation:countFlip .25s ease-out}.countdown-value--flash{animation:countFlip .25s ease-out,countPulse 1s ease-in-out infinite}.countdown-unit-label{font-size:10px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.8px}.countdown-sep{font-size:44px;font-weight:700;color:var(--color-accent);opacity:.5;line-height:1;margin-bottom:20px;-webkit-user-select:none;user-select:none}.countdown-departure{font-size:13px;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:8px 16px}@keyframes countFlip{0%{opacity:.4;transform:translateY(-6px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes countPulse{0%,to{opacity:1}50%{opacity:.7}}@media (max-width: 360px){.countdown-value{font-size:40px}.countdown-sep{font-size:34px}.countdown-unit{min-width:50px}}@media (min-width: 480px){.app{border-left:1px solid var(--color-border);border-right:1px solid var(--color-border)}}.trip-tab{padding-bottom:16px}.trip-section{margin:0 16px 16px}.section-header-row{display:flex;align-items:center;justify-content:space-between;padding:20px 0 10px}.section-title{font-size:16px;font-weight:700;color:var(--color-text)}.section-loading{color:var(--color-text-muted);font-size:13px;text-align:center;padding:16px}.section-empty{color:var(--color-text-muted);font-size:14px;padding:16px;text-align:center;background:var(--color-surface);border-radius:var(--radius-md);border:1px dashed var(--color-border)}.today-card{margin:16px 16px 0;background:linear-gradient(135deg,var(--color-surface) 0%,var(--color-surface2) 100%);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;border-left:4px solid var(--color-accent)}.today-card--upcoming{border-left-color:var(--color-text-muted);opacity:.85}.today-card-header{margin-bottom:12px}.today-card-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px}.today-badge{font-size:11px}.today-day-counter{font-size:12px;color:var(--color-text-muted);font-weight:600}.today-date{font-size:12px;color:var(--color-text-muted);text-transform:capitalize}.today-destination{margin-bottom:12px}.today-destination-name{font-size:20px;font-weight:800;color:var(--color-text);line-height:1.2;margin-bottom:8px}.today-badges-row{display:flex;flex-wrap:wrap;gap:6px}.badge--drive{background:#64b46433;color:#7dce82}.badge--flight{background:#6496ff33;color:#8ab4f8}.badge--hotel{background:#e8900a26;color:var(--color-accent)}.badge--warn{background:#ffaa3233;color:#ffaa32}.badge--danger{background:#ff505033;color:#ff6b6b}.badge--car{background:#64b46433;color:#7dce82}.badge--info{background:#6496ff26;color:#8ab4f8}.today-first-activity{font-size:14px;color:var(--color-text);margin-bottom:4px;display:flex;gap:8px;line-height:1.4}.today-first-activity--dim{color:var(--color-text-muted)}.today-activity-dot{color:var(--color-accent);font-weight:700;flex-shrink:0}.today-accommodation{margin-top:12px;padding:10px 12px;background:var(--color-bg);border-radius:var(--radius-sm);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.today-acc-label{font-size:12px;color:var(--color-text-muted)}.today-acc-name{font-size:13px;font-weight:600;flex:1}.today-nav-btn{flex-shrink:0}.today-tip{margin-top:12px;font-size:12px;color:var(--color-text-muted);background:var(--color-bg);border-radius:var(--radius-sm);padding:8px 10px;line-height:1.4}.flight-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px;margin-bottom:8px}.flight-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.flight-number{font-size:16px;font-weight:700}.flight-airline{font-size:13px;color:var(--color-text-muted)}.flight-route{display:flex;align-items:center;gap:8px;margin-bottom:12px}.flight-endpoint{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:60px}.flight-endpoint--right{align-items:flex-end}.flight-code{font-size:22px;font-weight:800;color:var(--color-accent);line-height:1}.flight-city{font-size:11px;color:var(--color-text-muted)}.flight-time{font-size:15px;font-weight:600}.flight-date-small{font-size:11px;color:var(--color-text-muted)}.flight-arrow{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px}.flight-duration{font-size:10px;color:var(--color-text-muted);font-weight:600}.flight-arrow-line{display:flex;align-items:center;width:100%;gap:2px}.flight-arrow-dot{width:6px;height:6px;border-radius:50%;background:var(--color-border);flex-shrink:0}.flight-arrow-track{flex:1;height:1px;background:var(--color-border)}.flight-arrow-plane{font-size:14px;color:var(--color-accent);flex-shrink:0}.flight-details{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.flight-airport{font-size:10px}.flight-note{font-size:12px;color:var(--color-text-muted);margin-bottom:10px}.flight-actions{display:flex;flex-wrap:wrap;gap:6px;padding-top:8px;border-top:1px solid var(--color-border)}.connection-badge{font-size:12px;font-weight:600;color:var(--color-text-muted);padding:4px 12px;margin-bottom:4px;text-align:center}.acc-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px;margin-bottom:10px;position:relative}.acc-card--active{border-color:var(--color-accent);background:linear-gradient(135deg,var(--color-surface),var(--color-surface2))}.acc-card--past{opacity:.6}.acc-status{position:absolute;top:12px;right:12px;font-size:10px}.acc-status--past{background:transparent;color:var(--color-text-muted)}.acc-name{font-size:16px;font-weight:700;margin-bottom:4px;padding-right:80px}.acc-location{font-size:13px;color:var(--color-text-muted);margin-bottom:10px}.acc-dates{display:flex;align-items:center;gap:8px;margin-bottom:10px}.acc-date-item{display:flex;flex-direction:column;gap:2px}.acc-date-label{font-size:10px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.acc-date-value{font-size:14px;font-weight:600}.acc-nights{color:var(--color-accent)}.acc-date-arrow{color:var(--color-text-muted);font-size:16px;margin:0 4px}.acc-address,.acc-confirm,.acc-notes{font-size:12px;color:var(--color-text-muted);margin-bottom:4px;line-height:1.4}.acc-actions{display:flex;flex-wrap:wrap;gap:6px;padding-top:10px;border-top:1px solid var(--color-border)}.btn-nav-hotel{display:flex;flex-direction:column;align-items:center;justify-content:center;width:calc(100% - 32px);margin:12px 16px 4px;min-height:60px;border-radius:var(--radius-md);font-size:16px;font-weight:700;gap:2px}.btn-nav-subtitle{font-size:12px;font-weight:400;opacity:.8}.weather-location{font-size:13px;color:var(--color-text-muted);margin-bottom:12px}.weather-error{color:var(--color-error);font-size:13px;background:#ff6b6b1a;border-radius:var(--radius-sm);padding:8px 12px}.weather-loading{display:flex;justify-content:center;padding:16px}.weather-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}.weather-day{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.weather-day--today{border-color:var(--color-accent);background:linear-gradient(135deg,var(--color-surface),var(--color-surface2))}.weather-day-label{font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:capitalize}.weather-icon{font-size:28px;line-height:1}.weather-desc{font-size:10px;color:var(--color-text-muted);line-height:1.2}.weather-temps{display:flex;gap:4px;align-items:baseline}.weather-tmax{font-size:16px;font-weight:700;color:var(--color-text)}.weather-tmin{font-size:13px;color:var(--color-text-muted)}.weather-sync{font-size:11px;color:var(--color-text-muted);text-align:right}.fuel-alert-wrapper{margin-bottom:4px}.fuel-alert{display:flex;gap:10px;padding:12px 14px;border-radius:var(--radius-md);margin-bottom:6px;align-items:flex-start}.fuel-alert--danger{background:#ff505026;border:1px solid rgba(255,80,80,.4)}.fuel-alert--warn{background:#ffaa321f;border:1px solid rgba(255,170,50,.35)}.fuel-alert--ok{background:#50c8501a;border:1px solid rgba(80,200,80,.3)}.fuel-alert-icon{font-size:20px;flex-shrink:0}.fuel-alert-body{font-size:13px;line-height:1.5}.fuel-alert-body strong{display:block;font-size:14px;margin-bottom:2px}.fuel-alert-body p{color:var(--color-text-muted);margin:0}.fuel-calc-toggle{width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font-family);font-size:15px;font-weight:600;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;min-height:var(--touch-min);transition:background .15s}.fuel-calc-toggle:hover{background:var(--color-surface2)}.fuel-calc-arrow{font-size:20px;color:var(--color-text-muted);transition:transform .2s;display:inline-block}.fuel-calc-arrow--open{transform:rotate(90deg)}.fuel-calc-body{background:var(--color-surface);border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);padding:16px}.fuel-range-display{display:flex;align-items:baseline;gap:8px;padding:12px;background:var(--color-bg);border-radius:var(--radius-sm);margin-bottom:16px}.fuel-range-value{font-size:32px;font-weight:800;color:var(--color-accent);font-variant-numeric:tabular-nums}.fuel-range-label{font-size:13px;color:var(--color-text-muted)}.fuel-field{margin-bottom:14px}.fuel-field-row{display:flex;align-items:center;gap:8px}.fuel-input-num{max-width:100px}.fuel-unit{font-size:13px;color:var(--color-text-muted);white-space:nowrap}.fuel-slider{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;background:var(--color-surface2);border-radius:3px;outline:none;cursor:pointer;margin:8px 0 4px}.fuel-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--color-accent);cursor:pointer;box-shadow:0 2px 6px #0006}.fuel-slider-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--color-text-muted)}.fuel-divider{text-align:center;font-size:11px;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.8px;padding:8px 0 12px;border-top:1px solid var(--color-border);margin:8px 0}.fuel-results{background:var(--color-bg);border-radius:var(--radius-sm);padding:12px;margin-top:8px}.fuel-result-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:14px}.fuel-result-row--accent .fuel-result-value{color:var(--color-accent);font-weight:700;font-size:16px}.fuel-result-label{color:var(--color-text-muted)}.fuel-result-value{font-weight:600}.fuel-warn-inline{font-size:12px;color:#ffaa32;margin-top:8px;padding:6px 8px;background:#ffaa321a;border-radius:var(--radius-sm)}.med-person-group{margin-bottom:12px}.med-person-name{font-size:14px;font-weight:700;color:var(--color-text-muted);padding:8px 0 6px;border-bottom:1px solid var(--color-border);margin-bottom:8px}.med-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px;margin-bottom:8px}.med-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.med-drug{font-size:18px;font-weight:700;letter-spacing:.3px}.med-dose{font-size:12px}.med-schedule{font-size:14px;color:var(--color-text);margin-bottom:4px}.med-notes{font-size:13px;color:var(--color-text-muted);line-height:1.4;margin-bottom:8px}.med-actions{display:flex;gap:6px;padding-top:8px;border-top:1px solid var(--color-border)}.numbers-group{margin-bottom:12px}.numbers-group-label{margin-bottom:8px}.number-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 14px;margin-bottom:6px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.number-card-main{display:flex;align-items:flex-start;gap:10px;flex:1;min-width:0}.number-icon{font-size:22px;flex-shrink:0;line-height:1;margin-top:2px}.number-info{display:flex;flex-direction:column;gap:2px;min-width:0}.number-label{font-size:14px;font-weight:600;line-height:1.2}.number-value{font-size:16px;font-weight:700;color:var(--color-accent);font-variant-numeric:tabular-nums}.number-empty{font-size:12px;color:var(--color-error);font-style:italic}.number-notes{font-size:11px;color:var(--color-text-muted);line-height:1.3;white-space:pre-line}.number-card-actions{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.btn-call{font-size:13px;padding:0 14px;background:linear-gradient(135deg,#2f9e44,#40c057)!important;box-shadow:0 2px 8px #2f9e444d!important}.btn-call:hover{filter:brightness(1.06)}.rental-quickdial{display:flex;flex-direction:column;gap:6px;padding:12px 16px 0}.rental-quickdial-btn{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#e8900a,#f5a623);border:none;border-radius:var(--radius-md);padding:12px 16px;text-decoration:none;color:#fff;font-weight:700;min-height:var(--touch-min);transition:filter .15s;box-shadow:0 2px 10px #e8900a4d}.rental-quickdial-btn:hover{filter:brightness(1.06)}.rental-quickdial-number{color:#ffffffe6!important}.rental-quickdial-icon{font-size:20px;flex-shrink:0}.rental-quickdial-label{flex:1;font-size:13px;font-weight:600}.rental-quickdial-number{font-size:14px;font-weight:700;color:var(--color-accent)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:100;display:flex;align-items:flex-end}.modal-sheet{width:100%;max-width:480px;margin:0 auto;background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:90vh;overflow-y:auto;animation:slideUp .25s ease-out;padding-bottom:env(safe-area-inset-bottom,0)}.modal-sheet--compact{max-height:40vh}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-handle{width:40px;height:4px;background:var(--color-border);border-radius:2px;margin:12px auto 0}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 8px;border-bottom:1px solid var(--color-border)}.modal-title{font-size:17px;font-weight:700}.modal-close-btn{background:none;border:none;color:var(--color-text-muted);font-size:18px;cursor:pointer;padding:4px;min-width:32px;min-height:32px}.modal-body{padding:16px 20px 20px}.form-grid{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-label{font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:6px}.form-input{width:100%;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-family:var(--font-family);font-size:15px;padding:10px 12px;min-height:44px;outline:none;transition:border-color .15s;-webkit-appearance:none}.form-input:focus{border-color:var(--color-accent)}.form-input--large{font-size:17px;min-height:50px}.form-textarea{min-height:auto;resize:vertical;line-height:1.5}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.form-actions{display:flex;gap:8px;justify-content:flex-end;border-top:1px solid var(--color-border);padding-top:16px}select.form-input{cursor:pointer}.btn-sm{min-height:36px;padding:0 12px;font-size:13px;border-radius:var(--radius-sm)}.btn-large{min-height:56px;font-size:16px}.btn-danger{background:var(--color-error);color:#fff}.btn-danger-outline{background:transparent;border:1px solid rgba(255,107,107,.5);color:var(--color-error);min-height:36px;padding:0 10px;border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-family);cursor:pointer;transition:background .15s}.btn-danger-outline:hover{background:#ff6b6b1a}.confirm-message{font-size:16px;text-align:center;margin-bottom:20px;color:var(--color-text)}.confirm-actions{display:flex;gap:8px;justify-content:center}.nearby-tab{padding:0 0 16px}.driving-mode-btn{display:flex;align-items:center;gap:8px;width:calc(100% - 32px);margin:16px 16px 8px;background:var(--color-surface2);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font-family);font-size:15px;font-weight:600;padding:12px 16px;cursor:pointer;min-height:var(--touch-min);transition:background .15s}.driving-mode-btn:hover{background:var(--color-border)}.nearby-geo-error{display:flex;gap:8px;align-items:flex-start;margin:0 16px 12px;padding:12px 14px;background:#ff6b6b1f;border:1px solid rgba(255,107,107,.35);border-radius:var(--radius-md);font-size:13px;color:var(--color-error)}.nearby-geo-loading{display:flex;align-items:center;gap:10px;margin:0 16px 12px;padding:10px 14px;background:var(--color-surface);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-muted)}.nearby-position{font-size:11px;color:var(--color-text-muted);padding:0 16px 8px}.nearby-cat-bar{display:flex;gap:8px;padding:4px 16px 12px}.nearby-cat-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px 4px;cursor:pointer;min-height:var(--touch-min);transition:background .15s,border-color .15s}.nearby-cat-btn--active{background:var(--color-surface2);border-color:var(--color-accent)}.nearby-cat-btn--active .nearby-cat-label{color:var(--color-accent)}.nearby-cat-emoji{font-size:22px;line-height:1}.nearby-cat-label{font-size:11px;font-weight:600;color:var(--color-text-muted)}.nearby-surprise-card{margin:0 16px 8px;padding:4px;background:linear-gradient(135deg,#e8900a26,#e8900a0d);border:1px solid var(--color-accent);border-radius:var(--radius-md)}.nearby-surprise-label{font-size:12px;font-weight:700;color:var(--color-accent);padding:8px 12px 4px;text-transform:uppercase;letter-spacing:.5px}.nearby-fetch-error{margin:0 16px 8px;padding:10px 14px;background:#ffaa321a;border:1px solid rgba(255,170,50,.3);border-radius:var(--radius-md);font-size:13px;color:#ffaa32}.nearby-loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:32px 16px;color:var(--color-text-muted);font-size:14px}.nearby-empty{text-align:center;padding:32px 16px;color:var(--color-text-muted);font-size:14px}.nearby-list{padding:0 16px;display:flex;flex-direction:column;gap:8px}.place-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.place-card--highlighted{border-color:var(--color-accent);background:linear-gradient(135deg,var(--color-surface),var(--color-surface2))}.place-card-main{flex:1;min-width:0}.place-info{display:flex;flex-direction:column;gap:4px}.place-name{font-size:15px;font-weight:700;line-height:1.2}.place-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.place-type{font-size:11px;color:var(--color-text-muted);background:var(--color-surface2);padding:2px 8px;border-radius:10px}.place-distance{font-size:12px;font-weight:700;color:var(--color-accent)}.place-rating{font-size:12px;font-weight:600;color:gold}.place-address{font-size:11px;color:var(--color-text-muted);margin-top:2px;line-height:1.3}.place-nav-btn{flex-shrink:0;align-self:flex-start}.nearby-footer{display:flex;align-items:center;gap:8px;padding:12px 16px 0;flex-wrap:wrap}.nearby-sync-info{font-size:11px;color:var(--color-text-muted);flex:1}.driving-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0a0d1a;display:flex;flex-direction:column;align-items:center;padding:24px 20px env(safe-area-inset-bottom,16px);overflow-y:auto}.driving-close{align-self:flex-end;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);color:var(--color-text);font-family:var(--font-family);font-size:14px;font-weight:600;padding:8px 16px;cursor:pointer;min-height:var(--touch-min);transition:background .15s;margin-bottom:16px}.driving-close:hover{background:#ffffff26}.driving-speed-block{display:flex;flex-direction:column;align-items:center;margin:8px 0}.driving-speed{font-size:100px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;transition:color .3s}.driving-speed-unit{font-size:24px;font-weight:600;color:var(--color-text-muted);margin-top:-8px}.driving-accuracy{font-size:12px;color:var(--color-text-muted);margin-top:4px}.driving-gps-error{font-size:12px;color:var(--color-error);margin-top:4px}.driving-timer{font-size:20px;font-weight:700;color:var(--color-text-muted);font-variant-numeric:tabular-nums;margin-bottom:24px}.driving-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:360px;margin-bottom:20px}.driving-info-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);padding:14px;display:flex;flex-direction:column;gap:4px}.driving-info-label{font-size:11px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.8px}.driving-info-value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.driving-info-value--dest{font-size:15px}.driving-fuel{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);width:100%;max-width:360px;margin-bottom:16px;font-size:14px}.driving-fuel--low{background:#ff505026;border-color:#ff505066}.driving-fuel-icon{font-size:20px}.driving-fuel-range{flex:1;font-weight:600}.driving-fuel-warn{font-weight:800;color:var(--color-error);font-size:16px;animation:countPulse 1s ease-in-out infinite}.driving-today{font-size:12px;color:var(--color-text-muted);text-align:center}.plan-tab{padding-bottom:16px}.plan-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px 16px;color:var(--color-text-muted)}.plan-header{padding:20px 16px 12px}.plan-title{font-size:20px;font-weight:800}.plan-subtitle{font-size:13px;color:var(--color-text-muted);display:block;margin-top:4px}.day-card{margin:0 16px 8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:border-color .15s}.day-card--today{border-color:var(--color-accent)}.day-card--past{opacity:.7}.day-card--done{border-color:#50c85066}.day-card-header{width:100%;background:none;border:none;cursor:pointer;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;color:var(--color-text);font-family:var(--font-family);-webkit-tap-highlight-color:transparent}.day-card-header:hover{background:#00000005}.day-card-header-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.day-card-top-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.day-today-badge{font-size:10px}.day-done-mark{color:#51cf66;font-weight:800;font-size:16px}.day-number{font-size:12px;font-weight:700;color:var(--color-text-muted)}.day-date{font-size:12px;color:var(--color-text-muted)}.day-card-dest-row{display:flex;align-items:center;gap:8px}.day-destination{font-size:15px;font-weight:700}.day-card-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.day-progress-wrap{display:flex;align-items:center;gap:6px}.day-progress-bar{width:60px;height:4px;background:var(--color-border);border-radius:2px;overflow:hidden}.day-progress-fill{height:100%;background:var(--color-accent);border-radius:2px;transition:width .3s}.day-progress-label{font-size:11px;color:var(--color-text-muted);font-weight:600}.day-chevron{font-size:20px;color:var(--color-text-muted);transition:transform .2s;display:inline-block}.day-chevron--open{transform:rotate(90deg)}.day-card-body{padding:0 12px 14px;border-top:1px solid var(--color-border)}.section-block{margin-top:14px}.section-block-header{display:flex;align-items:center;gap:6px;margin-bottom:8px}.section-block-emoji{font-size:16px}.section-block-label{font-size:13px;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.6px;flex:1}.section-block-count{font-size:11px;color:var(--color-border)}.section-empty-hint{font-size:12px;color:var(--color-border);padding:4px 0;font-style:italic}.activity-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--color-border);min-height:40px}.activity-row--done .activity-text{text-decoration:line-through;opacity:.5}.activity-row:last-of-type{border-bottom:none}.activity-checkbox{width:22px;height:22px;flex-shrink:0;border:2px solid var(--color-border);border-radius:6px;background:none;cursor:pointer;font-size:14px;font-weight:700;color:var(--color-accent);display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.activity-checkbox--done{background:#e8900a33;border-color:var(--color-accent)}.activity-text{flex:1;font-size:13px;line-height:1.4}.activity-actions{display:flex;gap:2px;flex-shrink:0;opacity:0;transition:opacity .15s}.activity-row:hover .activity-actions{opacity:1}.activity-action-btn{background:none;border:none;cursor:pointer;font-size:14px;padding:4px;border-radius:4px}.activity-action-btn:hover{background:var(--color-surface2)}.activity-edit-row{display:flex;gap:6px;align-items:center;flex:1}.activity-edit-input{flex:1;min-height:36px;font-size:13px;padding:6px 10px}.activity-add-row{display:flex;gap:6px;align-items:center;padding-top:6px}.activity-add-input{flex:1;min-height:36px;font-size:13px;padding:6px 10px}.activity-add-btn{width:100%;background:none;border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-family:var(--font-family);font-size:13px;padding:8px;cursor:pointer;margin-top:4px;transition:background .15s,border-color .15s}.activity-add-btn:hover{background:var(--color-surface2);border-color:var(--color-accent);color:var(--color-accent)}.day-tips{display:flex;gap:8px;align-items:flex-start;margin-top:14px;padding:10px 12px;background:#e8900a14;border-radius:var(--radius-sm);border-left:3px solid var(--color-accent)}.day-tips-icon{font-size:16px;flex-shrink:0}.day-tips-text{font-size:12px;color:var(--color-text-muted);line-height:1.4}.day-notes-wrap{margin-top:12px}.day-notes-label{font-size:11px;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:6px;margin-bottom:6px}.day-notes-saving{font-size:10px;color:var(--color-accent);font-weight:400;text-transform:none}.day-notes-input{font-size:13px;min-height:60px}.update-prompt{position:fixed;top:0;left:0;right:0;z-index:9999;background:var(--color-surface2);border-bottom:2px solid var(--color-accent);padding:10px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;box-shadow:0 2px 16px #0006;animation:slideDown .3s ease}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.update-prompt-text{flex:1;font-size:14px;font-weight:600;min-width:160px}.update-prompt-actions{display:flex;gap:8px}.offline-banner{position:sticky;top:var(--header-h);z-index:100;background:#ff505026;border-bottom:1px solid rgba(255,80,80,.35);display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:13px;color:var(--color-error)}.offline-banner-icon{font-size:16px}.offline-banner-text{flex:1;font-weight:600}.offline-banner-note{font-size:11px;opacity:.7}.skeleton-block{background:linear-gradient(90deg,var(--color-surface) 25%,var(--color-surface2) 50%,var(--color-surface) 75%);background-size:200% 100%;animation:skeletonShimmer 1.4s infinite;display:block}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px;margin:0 16px 8px}.skeleton-list{display:flex;flex-direction:column}.app-content>*{animation:tabEnter .22s ease both}@keyframes tabEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.trip-invite-card{margin:16px 16px 0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:10px}.trip-invite-label{font-size:11px;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.6px}.trip-invite-code{font-size:32px;font-weight:900;letter-spacing:6px;color:var(--color-accent);font-variant-numeric:tabular-nums;text-align:center;padding:4px 0}.trip-invite-actions{display:flex;gap:8px}.trip-invite-actions .btn{flex:1}.trip-version-footer{text-align:center;font-size:11px;color:var(--color-border);margin-top:16px;padding-bottom:4px}.checklist-tab{padding-bottom:16px}.checklist-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:48px 16px;color:var(--color-text-muted)}.checklist-no-trip{padding:32px 16px;text-align:center;color:var(--color-text-muted);font-size:14px}.checklist-header{display:flex;align-items:center;justify-content:space-between;padding:20px 16px 12px;gap:8px}.checklist-header-left{display:flex;flex-direction:column;gap:4px;min-width:0}.checklist-title{font-size:20px;font-weight:800}.checklist-trip-badge{background:none;border:none;color:var(--color-accent);font-family:var(--font-family);font-size:12px;font-weight:600;cursor:pointer;padding:0;text-align:left;opacity:.85;transition:opacity .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.checklist-trip-badge:hover{opacity:1}.checklist-manage-btn{white-space:nowrap;flex-shrink:0}.personal-checklist{padding:0 16px 8px}.personal-checklist-progress-wrap{margin-bottom:16px}.personal-checklist-progress-bar{height:6px;background:var(--color-border);border-radius:3px;overflow:hidden;margin-bottom:6px}.personal-checklist-progress-fill{height:100%;background:var(--color-accent);border-radius:3px;transition:width .4s ease}.personal-checklist-progress-label{font-size:13px;font-weight:700;color:var(--color-text-muted)}.personal-checklist-new-items{background:#e8900a14;border:1px solid rgba(232,144,10,.3);border-radius:var(--radius-md);padding:12px;margin-bottom:16px}.personal-checklist-new-title{font-size:13px;font-weight:700;color:var(--color-accent);margin-bottom:8px}.personal-checklist-new-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid rgba(232,144,10,.15);flex-wrap:wrap}.personal-checklist-new-row:last-child{border-bottom:none}.personal-checklist-new-text{flex:1;font-size:13px;min-width:100px}.personal-checklist-new-cat{font-size:11px;color:var(--color-text-muted);background:var(--color-surface2);padding:2px 6px;border-radius:8px}.personal-checklist-cat{margin-bottom:8px}.personal-checklist-cat-header{display:flex;align-items:center;justify-content:space-between;padding:10px 0 6px;border-bottom:1px solid var(--color-border)}.personal-checklist-cat-name{font-size:13px;font-weight:700}.personal-checklist-cat-count{font-size:11px;color:var(--color-text-muted)}.personal-checklist-row{width:100%;background:none;border:none;border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:10px;padding:10px 0;cursor:pointer;color:var(--color-text);font-family:var(--font-family);text-align:left;transition:background .1s;-webkit-tap-highlight-color:transparent;min-height:44px}.personal-checklist-row:hover{background:#00000005}.personal-checklist-row:last-child{border-bottom:none}.personal-checklist-row--done .personal-checklist-text{text-decoration:line-through;opacity:.45}.personal-checklist-row--custom{opacity:.85}.personal-checklist-checkbox{width:22px;height:22px;flex-shrink:0;border:2px solid var(--color-border);border-radius:6px;font-size:13px;font-weight:700;color:var(--color-accent);display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.personal-checklist-checkbox--done{background:#e8900a33;border-color:var(--color-accent)}.personal-checklist-text{flex:1;font-size:13px;line-height:1.4}.personal-checklist-custom-badge{font-size:9px;font-weight:700;background:#e8900a26;color:var(--color-accent);padding:2px 6px;border-radius:8px;text-transform:uppercase;letter-spacing:.4px;flex-shrink:0}.personal-checklist-footer{margin-top:8px}.personal-checklist-add-row{display:flex;gap:6px;align-items:center}.personal-checklist-add-input{flex:1;min-height:36px;font-size:13px;padding:6px 10px}.personal-checklist-add-btn{width:100%}.global-checklist{padding:0 0 8px}.global-checklist-hint{font-size:13px;color:var(--color-text-muted);margin-bottom:14px;line-height:1.4}.global-checklist-cat{margin-bottom:8px}.global-checklist-cat-header{display:flex;align-items:center;justify-content:space-between;padding:8px 0 4px;border-bottom:1px solid var(--color-border);margin-bottom:4px}.global-checklist-cat-name{font-size:13px;font-weight:700}.global-checklist-cat-count{font-size:11px;color:var(--color-text-muted)}.global-checklist-item{display:flex;align-items:center;justify-content:space-between;padding:8px 4px;border-bottom:1px solid var(--color-border);gap:8px}.global-checklist-item:last-of-type{border-bottom:none}.global-checklist-item-text{font-size:13px;flex:1}.global-checklist-del-btn{background:none;border:none;cursor:pointer;font-size:14px;padding:4px;border-radius:4px;color:var(--color-text-muted);opacity:.5;transition:opacity .15s;flex-shrink:0}.global-checklist-del-btn:hover{opacity:1}.global-checklist-add-row{display:flex;gap:6px;align-items:center;margin-top:4px}.global-checklist-add-input{flex:1;min-height:36px;font-size:13px;padding:6px 10px}.global-checklist-add-btn{width:100%;background:none;border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-family:var(--font-family);font-size:12px;padding:6px;cursor:pointer;margin-top:2px;transition:background .15s,border-color .15s}.global-checklist-add-btn:hover{background:var(--color-surface2);border-color:var(--color-accent);color:var(--color-accent)}.trip-selector{display:flex;flex-direction:column;gap:12px}.trip-selector-title{font-size:16px;font-weight:700;margin-bottom:4px}.trip-selector-hint{font-size:13px;color:var(--color-text-muted)}.trip-selector-error{font-size:13px;color:var(--color-error)}.trip-selector-list{display:flex;flex-direction:column;gap:8px}.trip-selector-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;color:var(--color-text);font-family:var(--font-family);transition:background .15s,border-color .15s;min-height:var(--touch-min)}.trip-selector-item--active{border-color:var(--color-accent);background:var(--color-surface2)}.trip-selector-item:hover:not(.trip-selector-item--active){background:var(--color-surface2)}.trip-selector-item-emoji{font-size:24px;flex-shrink:0}.trip-selector-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.trip-selector-item-name{font-size:15px;font-weight:700}.trip-selector-item-dates{font-size:11px;color:var(--color-text-muted)}.trip-selector-item-check{font-size:16px;color:var(--color-accent);font-weight:800;flex-shrink:0}.trip-selector-actions{display:flex;flex-direction:column;gap:8px}.trip-selector-code-input{text-align:center;font-size:24px;font-weight:800;letter-spacing:8px}.trip-select-screen{min-height:100dvh;display:flex;flex-direction:column;background:var(--color-bg);padding:40px 24px 24px}.trip-select-header{text-align:center;margin-bottom:32px}.trip-select-logo{font-size:56px;display:block;margin-bottom:12px}.trip-select-title{font-size:28px;font-weight:900;color:var(--color-accent);margin-bottom:6px}.trip-select-subtitle{font-size:14px;color:var(--color-text-muted)}.trip-select-body{flex:1}.trip-select-signout{background:none;border:none;color:var(--color-text-muted);font-family:var(--font-family);font-size:13px;cursor:pointer;padding:12px;margin-top:16px;text-align:center;width:100%;transition:color .15s}.trip-select-signout:hover{color:var(--color-text)}.trip-back-btn{display:flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;color:#fff;font-family:var(--font-family);padding:4px 8px;border-radius:var(--radius-sm);transition:background .15s;flex:1;min-width:0;max-width:calc(100% - 56px)}.trip-back-btn:hover{background:#0000001a}.trip-back-emoji{font-size:18px;flex-shrink:0}.trip-back-name{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trip-back-arrow{font-size:12px;color:#fffc;flex-shrink:0}.checklist-tabs-bar{display:flex;gap:0;margin:0 16px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.checklist-tab-btn{flex:1;background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-family:var(--font-family);font-size:14px;font-weight:600;padding:12px 8px;transition:background .15s,color .15s;border-right:1px solid var(--color-border)}.checklist-tab-btn:last-child{border-right:none}.checklist-tab-btn--active{background:var(--color-surface2);color:var(--color-accent)}.checklist-tab-content{padding:0 16px}
