:root{--brand-accent:#0090f8;--brand-accent-dark:#0072c6;--brand-ink:#0d0f14;--brand-silver:#b4b4bc;--brand-silver-light:#e8e8ec;--app-tabbar-height:64px}*{box-sizing:border-box}html,body{max-width:100vw;min-height:100%;overflow-x:hidden}body{min-height:100dvh;color:var(--brand-ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;margin:0;font-family:Arial,Helvetica,sans-serif}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}input,select,textarea{font-size:16px!important}:focus-visible{outline:2px solid var(--brand-accent-dark);outline-offset:2px}.skip-link{z-index:1000;color:#fff;background:var(--brand-ink);border-radius:8px;padding:10px 14px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.app-shell{background:linear-gradient(#eef8ff 0,#fff 260px);min-height:100dvh}.app-shell-header{z-index:10;min-height:calc(52px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border-bottom:1px solid #0d0f1414;align-items:center;display:flex;position:sticky;top:0}.app-shell-brand{min-height:44px;color:var(--brand-ink);align-items:center;gap:8px;font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex}.app-shell-main{width:min(100%,680px);min-height:calc(100dvh - var(--app-tabbar-height));padding:24px 16px calc(var(--app-tabbar-height) + env(safe-area-inset-bottom) + 24px);margin:0 auto}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-header h1{color:var(--brand-ink);font-size:clamp(1.5rem,6vw,2rem)}.page-header-description{color:#52606d;margin-top:4px;font-size:1rem}.bottom-navigation{z-index:30;min-height:calc(var(--app-tabbar-height) + env(safe-area-inset-bottom));padding:6px 8px env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff5;border-top:1px solid #0d0f141a;position:fixed;bottom:0;left:0;right:0}.bottom-navigation-inner{width:min(100%,680px);min-height:var(--app-tabbar-height);grid-template-columns:repeat(4,minmax(0,1fr));margin:0 auto;display:grid}.bottom-navigation-link{color:#52606d;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:44px;min-height:52px;font-size:1rem;line-height:1;text-decoration:none;display:flex}.bottom-navigation-link[aria-current=page]{color:var(--brand-accent-dark);background:#e6f6ff}.bottom-navigation-link:active,.action-button:active{filter:brightness(.94)}.bottom-navigation-label{font-size:.75rem;font-weight:600;line-height:1.2}.action-button{min-height:44px;font-size:1rem}.bottom-action{z-index:20;right:0;bottom:calc(var(--app-tabbar-height) + env(safe-area-inset-bottom));background:linear-gradient(#fff0,#fff 38%);padding:12px 16px;position:fixed;left:0}.bottom-action-inner{width:min(100%,680px);margin:0 auto}.bottom-action .action-button{width:100%;min-height:48px}.bottom-sheet-content{overscroll-behavior:contain;padding-bottom:max(16px, env(safe-area-inset-bottom))}.bottom-sheet-body{overscroll-behavior:contain}.form-feedback{border-radius:8px;margin:12px 0 0;padding:10px 12px;font-size:1rem}.form-feedback:empty{display:none}.form-feedback-error{color:#9b1c1c;background:#fff0f0}.form-feedback-success{color:#166534;background:#ecfdf3}.welcome-page-content{text-align:center;flex-direction:column;align-items:center;gap:16px;margin-top:48px;display:flex}.welcome-logo{width:min(180px,50vw);height:auto}.dashboard{gap:28px;padding-bottom:88px;display:grid}.dashboard-summary{background:linear-gradient(135deg,#e6f6ff,#fff);border:1px solid #0090f833;border-radius:16px;padding:24px 20px;box-shadow:0 6px 22px #0d0f140f}.dashboard-month,.dashboard-total-label,.dashboard-trip-count{margin:0}.dashboard-month{color:var(--brand-accent-dark);font-size:1rem;font-weight:700}.dashboard-total-label{color:#52606d;margin-top:20px;font-size:1rem}.dashboard-total{color:var(--brand-ink);letter-spacing:-.05em;margin:2px 0 0;font-size:clamp(2.25rem,12vw,3.5rem);font-weight:800;line-height:1}.dashboard-trip-count{color:#52606d;margin-top:12px}.dashboard-section{gap:12px;display:grid}.dashboard-section h2{color:var(--brand-ink);font-size:1.125rem}.dashboard-section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.dashboard-section-heading a{min-height:44px;color:var(--brand-accent-dark);align-items:center;font-weight:700;text-decoration:none;display:inline-flex}.dashboard-quick-places{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.dashboard-quick-place,.dashboard-links a{min-height:48px;color:var(--brand-ink);background:#fff;border:1px solid #0d0f141f;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-weight:700;text-decoration:none;display:flex}.dashboard-quick-place:active,.dashboard-links a:active{background:#e6f6ff}.dashboard-empty{color:#52606d;text-align:center;border:1px dashed #0d0f1433;border-radius:12px;margin:0;padding:24px 16px}.dashboard-trips-list{gap:10px;display:grid}.dashboard-trip-card{background:#fff;border:1px solid #0d0f141a;border-radius:12px;gap:4px;padding:16px;display:grid;box-shadow:0 4px 18px #0d0f140d}.dashboard-trip-card p,.dashboard-trip-card h3{margin:0}.dashboard-trip-date{color:#52606d;font-size:.875rem;font-weight:700}.dashboard-trip-card h3{color:var(--brand-ink);font-size:1rem}.dashboard-trip-card h3 span{color:var(--brand-accent-dark)}.dashboard-trip-card>p:last-child{color:var(--brand-accent-dark);font-weight:700}.dashboard-links{gap:8px;display:grid}.dashboard-links a{justify-content:flex-start}.dashboard-add-trip-link{color:#fff;background:var(--brand-accent-dark);border-radius:10px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:48px;padding:10px 16px;font-weight:700;text-decoration:none;display:flex}.dashboard-add-trip-link:active{background:var(--brand-accent)}.placeholder-page{min-height:50dvh}.settings-page,.settings-forms{gap:24px;display:grid}.settings-section{background:#fff;border:1px solid #0d0f141a;border-radius:12px;padding:20px;box-shadow:0 4px 18px #0d0f140d}.settings-section h2{color:var(--brand-ink);font-size:1.25rem}.settings-section-description{color:#52606d;margin:4px 0 0}.settings-form{margin-top:20px}.settings-site-fieldset{border:1px solid #0d0f141f;border-radius:10px;min-width:0;margin:0;padding:16px}.settings-site-fieldset legend{color:var(--brand-ink);padding:0 6px;font-weight:700}.settings-link{min-height:44px;color:var(--brand-accent-dark);align-items:center;margin-top:16px;font-weight:700;display:inline-flex}.places-page{gap:24px;padding-bottom:88px;display:grid}.places-list{gap:12px;display:grid}.places-empty{color:#52606d;text-align:center;border:1px dashed #0d0f1433;border-radius:12px;padding:24px 16px}.place-card{background:#fff;border:1px solid #0d0f141a;border-radius:12px;gap:16px;padding:16px;display:grid;box-shadow:0 4px 18px #0d0f140d}.place-card h3{color:var(--brand-ink);font-size:1.125rem}.place-card p{color:#52606d;margin-top:4px}.place-card-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.place-card-actions .action-button,.place-card-actions form{width:100%}.inactive-places{padding:4px 0}.inactive-places summary{min-height:44px;color:var(--brand-ink);cursor:pointer;padding:12px 4px;font-weight:700}.inactive-places-list{padding-top:8px}.place-form{gap:16px;display:grid}.new-trip-page{padding-bottom:88px}.trips-new-link{color:#fff;background:var(--brand-accent-dark);border-radius:10px;justify-content:center;align-items:center;min-height:48px;margin-top:24px;padding:10px 16px;font-weight:700;text-decoration:none;display:flex}.trips-new-link:active{background:var(--brand-accent)}.trip-form{gap:24px;margin-top:24px;display:grid}.place-picker{gap:12px;display:grid}.place-picker h2{color:var(--brand-ink);font-size:1.125rem}.place-picker-group{gap:6px;display:grid}.place-picker-group>p{color:#52606d;font-size:.875rem;font-weight:700}.place-picker-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.place-option{min-height:48px;color:var(--brand-ink);font:inherit;text-align:left;background:#fff;border:1px solid #0d0f1429;border-radius:10px;padding:10px 12px;font-size:1rem;font-weight:600}.place-option[aria-pressed=true]{border-color:var(--brand-accent-dark);color:var(--brand-accent-dark);background:#e6f6ff}.place-option:active{background:#d3eeff}.place-option-custom{border-style:dashed;width:100%}.place-picker-custom-fields{background:#f7fbff;border-radius:10px;gap:12px;padding:16px;display:grid}.place-picker-error{color:#9b1c1c;margin:0}.trip-date-time{border:1px solid #0d0f141f;border-radius:10px}.trip-date-time summary{min-height:44px;color:var(--brand-ink);cursor:pointer;padding:13px 16px;font-weight:700}.trip-date-time-fields{gap:12px;padding:0 16px 16px;display:grid}.trip-history,.trip-detail-page{gap:24px;padding-bottom:88px;display:grid}.trip-history-summary,.trip-detail-summary{background:linear-gradient(135deg,#e6f6ff,#fff);border:1px solid #0090f833;border-radius:14px;padding:20px;box-shadow:0 4px 18px #0d0f140d}.trip-history-month-navigation{text-align:center;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:8px;display:grid}.trip-history-month-navigation>a{width:48px;min-height:48px;color:var(--brand-accent-dark);background:#fff;border-radius:10px;justify-content:center;align-items:center;font-size:1.25rem;display:flex}.trip-history-month-navigation>a:active{background:#d3eeff}.trip-history-month-navigation h1,.trip-history-month-navigation p{margin:0}.trip-history-month-navigation h1{color:var(--brand-ink);font-size:1.25rem}.trip-history-month-navigation p{color:#52606d;margin-top:4px}.trip-history-list{gap:12px;display:grid}.trip-history-list h2,.trip-delete-section h2{color:var(--brand-ink);font-size:1.125rem}.trip-history-empty{color:#52606d;text-align:center;border:1px dashed #0d0f1433;border-radius:12px;margin:0;padding:24px 16px}.trip-history-card{color:var(--brand-ink);background:#fff;border:1px solid #0d0f141a;border-radius:12px;gap:4px;padding:16px;text-decoration:none;display:grid;box-shadow:0 4px 18px #0d0f140d}.trip-history-card:active{background:#f7fbff}.trip-history-card p,.trip-history-card h3{margin:0}.trip-history-card-date{color:#52606d;font-size:.875rem;font-weight:700}.trip-history-card h3{font-size:1rem}.trip-history-card h3 span,.trip-history-card-distance{color:var(--brand-accent-dark)}.trip-history-card-reason{color:#52606d}.trip-history-card-distance{font-weight:700}.trip-detail-summary{gap:6px;display:grid}.trip-detail-summary p,.trip-detail-summary strong{margin:0}.trip-detail-summary>p:first-child{color:var(--brand-ink);font-size:1.125rem;font-weight:700}.trip-detail-summary>p:first-child span,.trip-detail-summary strong{color:var(--brand-accent-dark)}.trip-detail-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.trip-detail-actions a{min-height:44px;color:var(--brand-accent-dark);text-align:center;background:#e6f6ff;border-radius:10px;justify-content:center;align-items:center;padding:8px 10px;font-size:.875rem;font-weight:700;text-decoration:none;display:flex}.trip-detail-actions a:active{background:#d3eeff}.trip-delete-section{background:snow;border:1px solid #f0b4b4;border-radius:12px;gap:12px;padding:20px;display:grid}.trip-delete-section h2,.trip-delete-section p{margin:0}.trip-delete-section p,.delete-trip-form p{color:#52606d}.delete-trip-form{gap:12px;display:grid}.delete-trip-form p{margin:0}.login-screen{min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom));background:linear-gradient(#e6f6ff 0,#fff 360px);justify-content:center;align-items:center;display:flex}.login-card{text-align:center;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:360px;display:flex}.login-logo{width:min(260px,70vw);height:auto;margin-bottom:4px}.login-card h1{color:var(--brand-ink);font-size:1.375rem}.login-subtitle{color:#52606d;margin-bottom:24px}.login-error{color:#9b1c1c;margin-bottom:16px;font-size:1rem}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
