*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a1a;background:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app{min-height:100vh}.header{background:#ffd000;border-bottom:1px solid #e6bb00;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.header h1{cursor:pointer;font-size:1.25rem;font-weight:500}.header-group{align-items:center;gap:16px;display:flex}.header-back{color:#555;font-size:13px}.header-nav{color:#555;cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.header-nav.active{color:#1a1a1a}.header-nav:hover{color:#1a1a1a;background:0 0}.header-back:hover{color:#1a1a1a}.main{max-width:900px;margin:0 auto;padding:2rem}.garage-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.garage-header h2{font-size:1.25rem;font-weight:500}button{cursor:pointer;background:#fff;border:1px solid #d0d0d0;border-radius:6px;padding:8px 14px;font-size:13px}button:hover{background:#f5f5f5}.bike-form{background:#fff;border:1px solid #e5e5e5;border-radius:10px;flex-direction:column;gap:10px;margin-bottom:1.5rem;padding:1.25rem;display:flex}.bike-form input,.bike-form select{border:1px solid #d0d0d0;border-radius:6px;padding:8px 10px;font-size:14px}.bike-form input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.bike-form input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.component-edit-form input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.component-edit-form input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bike-form input[type=number],.component-edit-form input[type=number]{-moz-appearance:textfield}.form-field{flex-direction:column;gap:4px;display:flex}.form-field-label{color:#888;font-size:12px}.bike-form button{color:#fff;background:#1a1a1a;border:none;padding:10px;font-size:14px}.bike-form button:hover{background:#333}.bike-form-empty{background:#fff;border:1px solid #e5e5e5;border-radius:10px;flex-direction:column;gap:8px;margin-bottom:1.5rem;padding:1.25rem;display:flex}.bike-form-empty p{color:#1a1a1a;margin:0;font-size:14px}.bike-form-empty-hint{color:#666!important}.bike-form-empty-link{color:#1a1a1a;align-self:flex-start;margin-top:4px;font-size:14px;text-decoration:underline}.bike-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.bike-card{background:#fff;border:1px solid #e5e5e5;border-radius:10px;padding:1.25rem}.bike-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:8px;display:flex}.bike-card h3{margin-bottom:4px;font-size:15px;font-weight:500}.bike-type{color:#555;background:#f0f0f0;border-radius:4px;padding:2px 8px;font-size:11px}.bike-meta{color:#888;flex-wrap:wrap;gap:8px;margin-bottom:10px;font-size:12px;display:flex}.component-count{color:#aaa;font-size:12px}.bike-distance{color:#aaa;margin-top:2px;font-size:12px}.bike-status-pills{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.status-pill{border-radius:20px;padding:2px 8px;font-size:11px;font-weight:500}.status-pill-overdue{color:#c00;background:#fff0f0}.status-pill-due-soon{color:#c87000;background:#fff7e6}.bike-card-actions{gap:4px;display:flex}.edit-btn{color:#999;border-color:#0000;padding:4px 8px;font-size:11px}.edit-btn:hover{color:#1a1a1a;background:#f0f0f0}.delete-btn{color:#999;border-color:#0000;padding:4px 8px;font-size:11px}.delete-btn:hover{color:#c00;background:#fff5f5}.bike-edit-form{flex-direction:column;gap:8px;display:flex}.bike-edit-form input,.bike-edit-form select{box-sizing:border-box;border:1px solid #d0d0d0;border-radius:6px;width:100%;padding:8px 10px;font-size:13px}.bike-edit-actions{gap:8px;display:flex}.bike-edit-actions button{cursor:pointer;border-radius:6px;flex:1;padding:8px;font-size:13px}.bike-edit-actions button[type=submit]{color:#fff;background:#1a1a1a;border:none}.bike-edit-actions button[type=submit]:hover{background:#333}.bike-edit-actions button[type=button]{color:#555;background:#fff;border:1px solid #d0d0d0}.bike-edit-actions button[type=button]:hover{background:#f5f5f5}.empty{color:#888;font-size:14px}.component-list{flex-direction:column;gap:8px;display:flex}.component-row{background:#fff;border:1px solid #e5e5e5;border-radius:10px;align-items:center;gap:16px;padding:1rem 1.25rem;display:flex}.component-row.status-overdue{border-left:3px solid #c00}.component-row.status-due-soon{border-left:3px solid #c87000}.component-row.status-good{border-left:3px solid #3a7d3a}.component-info{min-width:160px}.component-actions{flex-direction:column;flex-shrink:0;gap:4px;display:flex}.component-name{font-size:14px;font-weight:500}.component-spec{color:#888;margin-top:2px;font-size:12px}.component-edit-form{flex-direction:column;gap:4px;margin-top:4px;display:flex}.component-edit-form input{border:1px solid #d0d0d0;border-radius:6px;width:100%;padding:4px 8px;font-size:12px}.wear-label{color:#aaa;text-transform:uppercase;letter-spacing:.04em;margin-top:6px;font-size:11px}.component-stats{flex:1}.component-numbers{color:#888;justify-content:space-between;font-size:12px;display:flex}.status-label{font-weight:500}.status-label-overdue{color:#c00}.status-label-due-soon{color:#c87000}.status-label-good{color:#3a7d3a}.bike-notes{background:#fff;border:1px solid #e5e5e5;border-radius:10px;flex-direction:column;gap:10px;margin:0 0 16px;padding:14px 16px;display:flex}.bike-notes-empty{background:#fafafa;border-style:dashed;flex-direction:row;align-items:center;gap:12px}.bike-notes-add{color:#1a1a1a;font-size:13px}.bike-notes-hint{color:#888;font-size:12px}.bike-notes-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.bike-notes-head h3{color:#1a1a1a;margin:0;font-size:15px}.bike-notes-input{resize:vertical;border:1px solid #ddd;border-radius:6px;min-height:88px;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.5}.bike-notes-actions{align-items:center;gap:8px;display:flex}.bike-notes-body{color:#1a1a1a;white-space:pre-wrap;margin:0;font-size:14px;line-height:1.55}.tab-bar{background:#fff;border-bottom:1px solid #e5e5e5;gap:0;padding:0 2rem;display:flex}.tab{color:#888;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:10px 16px;font-size:14px}.tab:hover{color:#1a1a1a;background:0 0}.tab.active{color:#1a1a1a;border-bottom-color:#1a1a1a;font-weight:500}.log-filter{background:#fff;border:1px solid #d0d0d0;border-radius:6px;width:100%;max-width:240px;margin-bottom:1rem;padding:7px 10px;font-size:13px}.log-list{flex-direction:column;gap:8px;display:flex}.log-entry{background:#fff;border:1px solid #e5e5e5;border-radius:10px;padding:1rem 1.25rem}.log-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.log-title{flex:1;min-width:0}.log-meta{align-items:center;gap:12px;display:flex}.log-actions{gap:6px;display:flex}.log-component{font-size:14px;font-weight:500}.log-date{color:#888;font-size:12px}.log-notes{color:#555;margin-bottom:4px;font-size:13px}.log-cost{color:#888;font-size:12px}.log-type{color:#888;text-transform:capitalize;font-size:12px}.account{max-width:560px}.account.admin{max-width:800px}.account-section{background:#fff;border:1px solid #e5e5e5;border-radius:10px;margin-bottom:1rem;padding:1.25rem}.account-section h3{color:#888;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;font-size:13px;font-weight:500}.account-row{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;padding:6px 0;font-size:14px;display:flex}.account-row:last-child{border-bottom:none;padding-bottom:0}.account-row-stacked{flex-direction:column;align-items:flex-start;gap:10px}.account-label{color:#888;min-width:80px;font-size:13px}.account-tier{text-transform:capitalize}.account-action-label{margin-bottom:4px;font-size:14px;font-weight:500}.account-action-desc{color:#888;font-size:13px;line-height:1.5}.strava-connected{color:#3a7d3a;font-size:13px}.strava-disconnected{color:#888;font-size:13px}.sync-success{color:#3a7d3a;font-size:13px}.sync-error{color:#c00;font-size:13px}.retention-hint{color:#555;margin:0 0 12px;font-size:13px;line-height:1.5}.retention-actions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.retention-result{border-top:1px solid #eee;padding-top:8px}.retention-ids{color:#888;font-size:12px}.retention-errors{color:#c00;margin-top:8px;font-size:13px}.retention-errors ul{margin:4px 0 0;padding-left:20px}.splash{opacity:1;z-index:100;background:#fff;justify-content:center;align-items:center;transition:opacity .6s;display:flex;position:fixed;inset:0}.splash-fading{opacity:0}.splash-content{text-align:center}.splash-emoji{margin-bottom:1rem;font-size:3rem}.splash-title{margin-bottom:.5rem;font-size:1.75rem;font-weight:500}.splash-subtitle{color:#888;font-size:1rem}.upgrade-pill{color:#fff;background:#1a1a1a;border:none;border-radius:20px;padding:3px 10px;font-size:11px}.upgrade-pill:hover{background:#333}.upgrade{max-width:560px}.upgrade-hero{text-align:center;background:#fff;border:1px solid #e5e5e5;border-radius:10px;margin-bottom:1rem;padding:1.5rem}.upgrade-hero-emoji{margin-bottom:.75rem;font-size:2.5rem}.upgrade-hero-text{color:#555;font-size:14px;line-height:1.6}.upgrade-features{background:#fff;border:1px solid #e5e5e5;border-radius:10px;margin-bottom:1rem;padding:.25rem 1.25rem}.upgrade-feature{border-bottom:1px solid #f0f0f0;padding:.85rem 0}.upgrade-feature:last-child{border-bottom:none}.upgrade-feature-title{margin-bottom:3px;font-size:14px;font-weight:500}.upgrade-feature-desc{color:#888;font-size:13px;line-height:1.5}.upgrade-cta{text-align:center}.upgrade-cta-price{margin-bottom:1rem}.upgrade-price{font-size:2rem;font-weight:500}.upgrade-price-period{color:#888;font-size:14px}.upgrade-btn{color:#fff;cursor:not-allowed;opacity:.5;background:#1a1a1a;border:none;border-radius:8px;width:100%;padding:12px;font-size:15px}.disclaimer-overlay{z-index:200;background:#00000073;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.disclaimer-modal{background:#fff;border-radius:12px;width:100%;max-width:480px;max-height:90vh;padding:2rem;overflow-y:auto}.disclaimer-title{margin-bottom:1rem;font-size:1.1rem;font-weight:600}.disclaimer-body{color:#444;margin-bottom:.75rem;font-size:14px;line-height:1.6}.disclaimer-btn{color:#fff;background:#1a1a1a;border:none;border-radius:8px;width:100%;margin-top:.5rem;padding:10px;font-size:15px}.disclaimer-btn:hover{background:#333}.disclaimer-note{color:#aaa;margin-bottom:1rem;font-size:12px}.unit-toggle{border:1px solid #d0d0d0;border-radius:6px;display:flex;overflow:hidden}.unit-toggle-btn{color:#888;cursor:pointer;background:#fff;border:none;border-radius:0;padding:4px 14px;font-size:13px}.unit-toggle-btn:hover{background:#f5f5f5}.unit-toggle-btn.active{color:#fff;background:#1a1a1a}.app-footer{text-align:center;color:#bbb;padding:1.5rem 2rem calc(1.5rem + env(safe-area-inset-bottom));border-top:1px solid #eee;margin-top:2rem;font-size:12px}.admin-user-row{border-bottom:1px solid #f0f0f0;padding:12px 0}.admin-user-row:last-child{border-bottom:none}.admin-user-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.admin-user-name{align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.admin-user-email{color:#888;margin-top:2px;font-size:12px}.admin-user-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.admin-user-actions select,.admin-user-actions button{padding:4px 8px;font-size:12px}.admin-user-stats{color:#888;flex-wrap:wrap;gap:6px;margin-top:6px;font-size:12px;display:flex}.admin-user-status{color:#3a7d3a;margin-top:6px;font-size:12px}.admin-user-status-error{color:#c00}.admin-badge{color:#fff;text-transform:uppercase;letter-spacing:.05em;background:#1a1a1a;border-radius:4px;padding:2px 6px;font-size:10px}.admin-badge-self{background:#888}.admin-badge-banned{background:#c00}.admin-user-ban-detail{color:#c00;margin-top:4px;font-size:12px}.admin-badge-trial{background:#1d7a4a}.admin-badge-subscribed{background:#1c4ea8}.admin-badge-noaccess{background:#888}.admin-tabs{border-bottom:1px solid #eee;gap:4px;margin:0 0 20px;display:flex}.admin-tab{color:#666;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;margin-bottom:-1px;padding:8px 14px;font-size:14px}.admin-tab:hover{color:#1a1a1a}.admin-tab.active{color:#1a1a1a;border-bottom-color:#1a1a1a;font-weight:500}.admin-user-controls{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.admin-user-search{border:1px solid #ddd;border-radius:4px;flex:200px;min-width:180px;padding:6px 10px;font-size:13px}.admin-user-controls select{background:#fff;border:1px solid #ddd;border-radius:4px;padding:6px 8px;font-size:13px}.admin-health-row{align-items:center}.admin-health-value{align-items:center;gap:8px;display:inline-flex}.admin-health-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.admin-health-dot.ok{background:#1d7a4a}.admin-health-dot.bad{background:#c62828}.admin-health-detail{color:#555;font-size:13px}.invite-code-redemptions{background:#fafafa;border:1px solid #eee;border-radius:4px;flex-direction:column;gap:8px;margin-top:10px;padding:10px 12px;display:flex}.invite-code-redemption{flex-wrap:wrap;align-items:baseline;gap:8px 12px;font-size:13px;display:flex}.pref-toggle{color:#444;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}.pref-toggle input[type=checkbox]{cursor:pointer;width:16px;height:16px}.pref-toggle input[type=checkbox]:disabled{cursor:wait}.admin-funnel-caption{color:#666;margin:0 0 12px;font-size:13px}.admin-funnel-row{border-bottom:1px solid #f0f0f0;padding:8px 0}.admin-funnel-row:last-child{border-bottom:none}.admin-funnel-meta{justify-content:space-between;align-items:baseline;margin-bottom:4px;display:flex}.admin-funnel-name{color:#1a1a1a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.admin-funnel-count{color:#666;font-size:12px}.admin-funnel-bar{background:#f0f0f0;border-radius:3px;height:6px;overflow:hidden}.admin-funnel-bar-fill{background:#1d7a4a;height:100%;transition:width .2s}.admin-events{flex-direction:column;display:flex}.admin-event-row{border-bottom:1px solid #f0f0f0;grid-template-columns:160px 1fr auto;align-items:baseline;gap:12px;padding:6px 0;font-size:13px;display:grid}.admin-event-row:last-child{border-bottom:none}.admin-event-name{color:#fff;text-align:center;background:#1a1a1a;border-radius:3px;justify-self:start;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.admin-event-name-signup{background:#0a58b8}.admin-event-name-strava_connected{background:#fc4c02}.admin-event-name-bike_added{background:#1d7a4a}.admin-event-name-component_installed{background:#6c45b8}.admin-event-name-service_logged{background:#c87000}.admin-event-name-trial_redeemed{background:#b83a8b}.admin-event-user{color:#1a1a1a;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-event-time{color:#888;white-space:nowrap;font-size:12px}.admin-badge-beta{background:#6c45b8}.feedback-fab{bottom:calc(20px + env(safe-area-inset-bottom));right:calc(20px + env(safe-area-inset-right));z-index:90;color:#1a1a1a;letter-spacing:.02em;cursor:pointer;background:#ffd000;border:none;border-radius:6px;padding:14px 24px;font-size:15px;font-weight:600;position:fixed;box-shadow:0 4px 12px #0000002e}.feedback-fab:hover{background:#e6bb00}.feedback-modal-overlay{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.feedback-modal{background:#fff;border-radius:8px;width:100%;max-width:480px;max-height:90vh;padding:20px 22px;overflow-y:auto;box-shadow:0 10px 32px #00000040}.feedback-modal-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.feedback-modal-head h3{margin:0;font-size:18px}.feedback-modal-close{color:#666;cursor:pointer;background:0 0;border:none;min-width:44px;min-height:44px;margin:-8px -8px -8px 0;padding:8px 12px;font-size:26px;line-height:1}.feedback-modal-close:hover{color:#1a1a1a}.feedback-preamble{color:#555;margin:0 0 12px;font-size:13px;line-height:1.5}.feedback-form{flex-direction:column;gap:10px;display:flex}.feedback-row{color:#555;flex-direction:column;gap:4px;font-size:13px;display:flex}.feedback-row select,.feedback-body{color:#1a1a1a;background:#fff;border:1px solid #ddd;border-radius:6px;padding:8px 10px;font-size:14px}.feedback-body{resize:vertical;min-height:96px;font-family:inherit}.feedback-actions{align-items:center;gap:8px;display:flex}.feedback-actions button[type=submit]{color:#fff;background:#1a1a1a;border-color:#1a1a1a;margin-left:auto}.feedback-actions button[type=submit]:hover:not(:disabled){background:#333}.feedback-actions button[type=submit]:disabled{cursor:not-allowed;background:#999;border-color:#999}.feedback-hint{color:#888;font-size:12px}.feedback-success{color:#1d5a2e;background:#e8f4ea;border:1px solid #bcd9c0;border-radius:6px;padding:12px 14px;font-size:13px;line-height:1.5}.feedback-success-id{margin-top:8px;font-size:12px}.feedback-success-id strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.admin-feedback-row{border:1px solid #eee;border-radius:6px;margin-bottom:10px;padding:12px}.admin-feedback-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.admin-feedback-meta{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.admin-feedback-submitter{color:#1a1a1a;font-weight:500}.admin-feedback-id{color:#1a1a1a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600}.admin-feedback-time{color:#888;font-size:12px}.admin-feedback-actions{flex-shrink:0}.admin-feedback-body{color:#1a1a1a;white-space:pre-wrap;background:#fafafa;border-radius:6px;margin-bottom:8px;padding:10px 12px;font-size:14px;line-height:1.5}.admin-feedback-context{color:#888;flex-wrap:wrap;gap:10px;margin-bottom:8px;font-size:11px;display:flex}.admin-feedback-ua{text-overflow:ellipsis;white-space:nowrap;flex-basis:100%;overflow:hidden}.admin-feedback-notes{flex-direction:column;gap:4px;display:flex}.admin-feedback-notes-label{color:#555;font-size:12px}.admin-feedback-notes-input{resize:vertical;border:1px solid #ddd;border-radius:6px;padding:6px 8px;font-family:inherit;font-size:13px}.admin-feedback-notes button{align-self:flex-start}.admin-feedback-status-new{background:#0a58b8}.admin-feedback-status-acknowledged{background:#888}.admin-feedback-status-planned{background:#c87000}.admin-feedback-status-shipped{background:#1d7a4a}.admin-feedback-status-wontfix{background:#555}.admin-feedback-category-bug{background:#c00}.admin-feedback-category-enhancement{background:#6c45b8}.admin-feedback-category-general{background:#1a1a1a}.privacy{color:#1a1a1a;max-width:720px;margin:0 auto;padding:24px 16px 48px}.privacy-draft-banner{color:#1a1a1a;background:#ffd000;border:1px solid #e6bb00;border-radius:6px;margin-bottom:16px;padding:12px 16px;font-size:14px}.privacy-meta{color:#888;margin-bottom:24px;font-size:13px}.privacy-section{margin-bottom:24px}.privacy-section h3{margin-bottom:8px;font-size:16px}.privacy-section p,.privacy-section li{color:#333;font-size:14px;line-height:1.55}.privacy-section ul{margin:8px 0;padding-left:20px}.changelog-entry{margin-bottom:28px}.changelog-entry h3{margin-bottom:6px;font-size:16px}.changelog-entry ul{margin:6px 0;padding-left:20px}.changelog-entry li{color:#333;margin-bottom:4px;font-size:14px;line-height:1.55}.changelog-meta{color:#888;margin-left:6px;font-size:13px;font-weight:400}.app-footer-link{color:inherit;cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.trial-badge{color:#6b4f00;text-transform:uppercase;letter-spacing:.04em;background:#fff4cc;border:1px solid #f0d878;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.invite-codes-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.invite-codes-header h3{margin:0}.invite-code-form{background:#fafafa;border:1px solid #e8e8e8;border-radius:6px;flex-direction:column;gap:12px;margin-bottom:16px;padding:16px;display:flex}.invite-form-row{flex-wrap:wrap;gap:12px;display:flex}.invite-form-row label,.invite-form-full{color:#555;flex-direction:column;flex:1;gap:4px;min-width:140px;font-size:12px;display:flex}.invite-form-full{flex-basis:100%}.invite-code-form input{border:1px solid #ddd;border-radius:4px;padding:6px 8px;font-size:14px}.invite-form-error{color:#b00020;margin:0;font-size:13px}.invite-code-row{border-top:1px solid #f0f0f0;padding:12px 0}.invite-code-row:first-of-type{border-top:none}.invite-code-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.invite-code-value{letter-spacing:1px;font-family:SF Mono,Menlo,monospace;font-size:16px;font-weight:600}.invite-code-meta{color:#888;flex-wrap:wrap;gap:6px;margin-top:4px;font-size:12px;display:flex}.invite-code-actions{flex-wrap:wrap;gap:8px;display:flex}.invite-code-actions button{padding:4px 10px;font-size:12px}.invite-code-status{text-transform:uppercase;letter-spacing:.05em;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600}.invite-code-status-active{color:#1a6c1a;background:#e0f5e0}.invite-code-status-revoked,.invite-code-status-expired{color:#888;background:#f0f0f0}.invite-code-status-redeemed-out{color:#6b4f00;background:#fff4cc}.redemption-banner{border-radius:6px;justify-content:space-between;align-items:center;gap:12px;margin:16px 24px 0;padding:12px 16px;font-size:14px;display:flex}.redemption-banner-success{color:#1a6c1a;background:#e0f5e0;border:1px solid #b8e0b8}.redemption-banner-error{color:#8a1a1a;background:#fce8e8;border:1px solid #f0c0c0}.redemption-banner button{color:inherit;background:0 0;border:1px solid;padding:4px 10px;font-size:12px}.paywall{background:#f7f7f7;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.paywall-card{text-align:center;background:#fff;border:1px solid #eee;border-radius:8px;width:100%;max-width:480px;padding:40px 32px}.paywall-emoji{margin-bottom:12px;font-size:48px}.paywall-title{margin:0 0 8px;font-size:22px}.paywall-body{color:#555;margin:0 0 24px;font-size:14px;line-height:1.5}.paywall-section{text-align:left;margin:24px 0}.paywall-label{color:#555;margin-bottom:6px;font-size:13px;display:block}.paywall-form{gap:8px;display:flex}.paywall-form input{text-transform:uppercase;border:1px solid #ccc;border-radius:4px;flex:1;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px}.paywall-form button{padding:8px 16px}.paywall-error{color:#c00;margin:8px 0 0;font-size:13px}.paywall-divider{color:#aaa;align-items:center;gap:12px;margin:24px 0;font-size:12px;display:flex}.paywall-divider:before,.paywall-divider:after{content:"";border-top:1px solid #eee;flex:1}.paywall-price{color:#555;text-align:center;margin:0 0 12px;font-size:13px}.paywall-price-amount{color:#1a1a1a;font-size:22px;font-weight:600}.paywall-price-period{color:#888}.paywall-subscribe{width:100%;padding:10px;font-size:14px}.paywall-hint{color:#888;text-align:center;margin:8px 0 0;font-size:12px}.paywall-logout{color:#888;background:0 0;margin-top:24px;font-size:13px}@media (width<=600px){input,select,textarea{font-size:16px}.disclaimer-overlay{padding:1rem}.header{padding:.75rem 1rem}.header h1{font-size:1.05rem}.header-group{gap:10px}.main{padding:1rem}.component-row{flex-direction:column;align-items:stretch;gap:12px}.component-info{min-width:0}.component-actions{flex-direction:row;justify-content:flex-end;gap:8px}.bike-notes{padding:12px 14px}.bike-notes-empty{flex-direction:column;align-items:flex-start;gap:6px}.log-header{flex-direction:column;align-items:stretch;gap:6px}.log-meta{flex-wrap:wrap;justify-content:space-between;gap:8px}.log-entry{padding:12px 14px}.tab-bar{padding:0 1rem}.tab{padding:12px 16px}button{padding:10px 14px}.header-nav,.header-back{margin:-8px -4px;padding:8px 4px;line-height:1.4}}
