.auth-dialog .dialog-header{margin-bottom:16px}.google-button{display:flex;justify-content:center;min-height:44px}.auth-divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:#999;font-size:12px;text-transform:uppercase}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:1px solid #e0e0e0}.auth-submit{width:100%;margin-top:4px}.auth-switch{margin:16px 0 0;text-align:center;font-size:14px;color:#555}.link-btn{background:none;border:none;padding:0;color:#007bff;font-size:inherit;font-weight:500}.link-btn:hover{text-decoration:underline}.account-menu{display:flex;align-items:center;gap:10px;min-width:0}.account-avatar{width:32px;height:32px;border-radius:50%;flex-shrink:0;object-fit:cover}.account-initials{display:inline-flex;align-items:center;justify-content:center;background:#1976d2;color:#fff;font-size:13px;font-weight:600}.account-user{position:relative;display:flex;align-items:center;gap:10px;min-width:0}.account-name{font-weight:500;color:#333;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default}@media (max-width: 760px){.account-name{display:none}}.account-sign-in{min-width:0;padding:6px 14px}.account-dropdown{display:none;position:absolute;top:100%;right:0;padding-top:8px;z-index:1}.account-user:hover>.account-dropdown,.account-user:focus-within>.account-dropdown{display:block}.account-dropdown-panel{min-width:200px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;box-shadow:0 4px 16px #0000001f;padding:4px}.menu-row{position:relative}.menu-item{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-width:0;padding:8px 12px;border:none;border-radius:4px;background:none;color:#333;font-size:14px;font-weight:500;text-align:left}.menu-item.selected{background:#e3f2fd;color:#1565c0}.menu-item:hover,.menu-row:hover>.menu-item,.menu-row:focus-within>.menu-item{background:#f3f7fb}.menu-flyout{display:none;position:absolute;top:-4px;right:100%;padding-right:6px}.menu-row:hover>.menu-flyout,.menu-row:focus-within>.menu-flyout{display:block}.menu-empty{margin:0;padding:8px 12px;color:#888;font-size:13px}.account-error{color:#dc3545;font-size:12px}.brand{display:flex;align-items:flex-end;gap:2px;margin:0;min-width:0}.brand-mark{width:40px;height:40px;border-radius:8px;flex-shrink:0;display:block}.brand-name{color:#2f9a32;margin-bottom:2px;font-size:1.45rem;font-weight:700;letter-spacing:-.03em;line-height:1}.activity-filter{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:10px 0}.activity-filter-label{color:#666;font-size:12px;font-weight:600}.activity-filter label{display:inline-flex;align-items:center;gap:4px;font-size:13px;cursor:pointer}.import-period-dates{display:flex;gap:12px;margin-bottom:8px}.import-period-dates>label,.import-date-to{flex:1;min-width:0}.import-period-dates label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:500}.import-period-dates input{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box;background:#fff}.import-date-to{display:flex;align-items:flex-end;gap:8px}.import-date-to label{flex:1}.today-btn{flex-shrink:0;padding:8px 12px;border:1px solid #ddd;border-radius:4px;background:#f5f5f5;color:#555;font-size:13px;font-weight:500}.today-btn:hover:not(:disabled){background:#eee}.today-btn:disabled{color:#aaa;cursor:default}@media (max-width: 760px){.import-period-dates{flex-direction:column}}.workout-check{display:block;height:auto;margin:12px 0}.workout-check-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:6px}.workout-check .workout-select-all{display:flex;align-items:center;gap:6px;margin:0;font-size:13px;font-weight:600;color:#333;cursor:pointer}.workout-check-count{color:#888;font-size:12px}.workout-check-list{list-style:none;margin:0;padding:0;border:1px solid #e0e0e0;border-radius:6px}.workout-check-list li+li{border-top:1px solid #f0f0f0}.workout-check-list label{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;cursor:pointer}.workout-check-list input{margin-top:2px}.workout-check-main{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;font-size:13px}.workout-check-activity{display:flex;align-items:center;gap:6px}.workout-check-date,.workout-check-taken{color:#888;font-size:12px}.workout-check-taken{font-style:italic}.dialog.provider-dialog{width:min(560px,92vw);max-height:min(900px,94vh)}.provider-dialog .btn{display:block;width:100%;margin-top:8px}.provider-dialog .checkbox-row{display:flex;align-items:flex-start;gap:8px;font-weight:500;cursor:pointer}.garmin-routes{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:8px}.garmin-route-types{display:block;color:#888;font-size:12px;font-weight:400}.garmin-message{color:#155724}.dialog.import-past-dialog{width:min(560px,92vw);max-height:min(900px,94vh)}.import-past-dialog .checkbox-row{display:flex;align-items:center;gap:8px;margin-top:6px;font-weight:500;cursor:pointer}.import-past-dialog .btn{display:block;width:100%;margin-top:8px}.import-past-route{margin-bottom:12px;color:#333;font-size:14px;font-weight:600}.import-past-types{display:block;color:#888;font-size:12px;font-weight:400}.import-past-message{margin-top:12px;color:#155724}.route-map{position:relative;flex:1;min-height:0}.map-canvas{height:100%;width:100%}.map-loading{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffe6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;z-index:1000}.map-loading .spinner{width:32px;height:32px;border-width:3px}.map-loading p{margin:0;color:#666}.route-map-error{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f8f9fa;color:#666;padding:40px;text-align:center}.route-map-error h3{margin:0 0 10px;color:#dc3545}.activity-picker{display:grid;grid-template-columns:1fr 1fr;gap:6px}.form-group .activity-option{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid #e0e0e0;border-radius:4px;font-size:13px;font-weight:400;cursor:pointer;transition:background-color .15s,border-color .15s}.form-group .activity-option:hover{border-color:#90caf9}.form-group .activity-option:has(input:checked){background:#e3f2fd;border-color:#90caf9}.activity-picker[aria-invalid=true] .activity-option{border-color:#dc3545}.activity-icon{flex-shrink:0}.location-autocomplete{position:relative;width:100%}.input-container{position:relative}.input-container input.has-suggestions{border-bottom-left-radius:0;border-bottom-right-radius:0}.input-spinner{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:flex}.suggestions-dropdown{position:absolute;top:100%;left:0;right:0;margin:0;padding:0;list-style:none;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 4px 4px;box-shadow:0 4px 12px #0000001a;z-index:1000;max-height:200px;overflow-y:auto}.suggestion-item{padding:12px;cursor:pointer;border-bottom:1px solid #f0f0f0;transition:background-color .2s ease}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover,.suggestion-item.selected{background-color:#f8f9fa}.suggestion-main{font-weight:500;color:#333;margin-bottom:2px}.suggestion-secondary{font-size:12px;color:#666;line-height:1.3}.route-form-panel{position:absolute;top:12px;left:12px;width:400px;max-width:calc(100% - 24px);max-height:calc(100% - 24px);overflow-y:auto;box-sizing:border-box;padding:20px;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #0000001a;z-index:1200}.route-stats{display:flex;flex-direction:column;gap:4px}fieldset.auto-import{border:1px solid #e0e0e0;border-radius:6px;padding:10px 12px}.form-group .checkbox-row{display:flex;align-items:center;gap:8px;font-weight:500;cursor:pointer}.auto-import-options{display:flex;flex-direction:column;gap:8px;margin-top:10px}.import-past-form-btn{margin-top:8px}@media (max-width: 760px){.route-form-panel{top:72px;left:8px;right:8px;width:auto;max-width:none;max-height:calc(100% - 84px);padding:16px}}.sidebar{width:var(--sidebar-width);height:100vh;height:100dvh;background-color:#f8f9fa;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;position:fixed;left:0;top:0;z-index:1000;box-sizing:border-box}@media (max-width: 760px){.sidebar{width:100%;height:min(72dvh,640px);top:auto;bottom:0;border-right:none;border-top:1px solid #e0e0e0;border-radius:16px 16px 0 0;box-shadow:0 -8px 24px #0000002e;transform:translateY(calc(100% + 24px));padding-bottom:env(safe-area-inset-bottom)}.home-page.routes-open .sidebar{transform:none}.sidebar-resize{display:none}}@media (max-width: 760px) and (prefers-reduced-motion: no-preference){.sidebar{transition:transform .2s ease}}.sidebar-resize{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;touch-action:none}.sidebar-resize:hover,.sidebar-resize:focus-visible{background:#007bff59}.sidebar-header{padding:12px 16px;border-bottom:1px solid #e0e0e0;background-color:#fff;display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:inherit}.sidebar-close{display:none;margin-left:auto;border:none;background:none;color:#666;font-size:24px;line-height:1;width:36px;height:36px;border-radius:50%}@media (max-width: 760px){.sidebar-close{display:inline-flex;align-items:center;justify-content:center}}.sidebar-content{padding:10px 10px 36px;flex:1;min-height:0;display:flex;flex-direction:column;overflow-y:auto}.sidebar-empty{color:#888;font-size:13px;text-align:center;margin-top:16px}.add-route-btn{width:100%;padding:12px 16px;background-color:#007bff;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;transition:background-color .2s ease}.add-route-btn:hover:not(:disabled){background-color:#0056b3}.add-route-btn:disabled{background-color:#9ec5fe;cursor:not-allowed}.routes-list{list-style:none;margin:10px 0 0;padding:0 8px 0 0}.route-section{margin-top:12px}.route-section h3{margin:0}.route-section-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:4px 0;border:none;background:none;color:#555;font-size:12px;font-weight:600;letter-spacing:.3px;text-align:left}.route-section-toggle:hover{color:#1976d2}.route-section-count{margin-left:auto;color:#888;font-weight:500}.routes-list::-webkit-scrollbar{width:6px}.routes-list::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.routes-list::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.route-item{position:relative;padding:6px;background-color:#fff;border:1px solid #e0e0e0;border-radius:6px;margin-bottom:6px;transition:background-color .2s ease,border-color .2s ease;display:flex;align-items:flex-start;gap:6px}.route-item:hover{background-color:#f8f9fa;border-color:#007bff}.route-item.selected{background-color:#e3f2fd;border-color:#007bff}.route-item.dragging{opacity:.5}.route-item.drop-before:before,.route-item.drop-after:after{content:"";position:absolute;left:4px;right:4px;height:3px;border-radius:2px;background:#007bff;pointer-events:none}.route-item.drop-before:before{top:-5px}.route-item.drop-after:after{bottom:-5px}.drag-handle{color:#ccc;font-size:12px;cursor:grab;-webkit-user-select:none;user-select:none;width:12px;text-align:center;padding-top:4px}.drag-handle:hover{color:#999}.route-content{flex:1;min-width:0}.route-fold-row{display:flex;align-items:flex-start;gap:2px}.fold-route-btn{width:16px;height:18px;flex-shrink:0;border:none;background:none;color:#666;font-size:10px;padding:0;display:flex;align-items:center;justify-content:center}.fold-route-btn:hover{color:#007bff}.route-select{display:block;flex:1;min-width:0;padding:0;background:none;border:none;text-align:left;color:inherit;font:inherit}.route-covered{display:block;margin-top:1px;color:#2196f3;font-weight:500}.route-title{display:block;font-weight:600;color:#333;margin-bottom:2px;font-size:13px;overflow-wrap:anywhere}.route-details{display:block;font-size:11px;color:#666}.route-distance{font-weight:500;color:#007bff;float:right;margin-left:4px}.route-path{display:block;margin:1px 0;color:#555;overflow-wrap:anywhere}.route-activities{display:flex;flex-wrap:wrap;gap:2px 8px;color:#888;font-style:italic}.route-activity{display:inline-flex;align-items:center;gap:3px}.route-progress{margin-top:6px;padding-top:4px;border-top:1px solid #f0f0f0}.progress-bar-mini{width:100%;height:3px;background-color:#e0e0e0;border-radius:2px;overflow:hidden;margin-bottom:4px}.progress-fill-mini{height:100%;background-color:#2196f3;transition:width .3s ease}.route-stats-row{display:flex;justify-content:space-between;align-items:center;gap:4px}.workout-count-mini{color:#666;font-size:9px;flex:1}.workout-time-mini{color:#888}.progress-percentage{color:#2196f3;font-size:9px;font-weight:500;min-width:40px;text-align:center}.progress-actions{display:flex;gap:4px;align-items:center}.expand-workouts-btn{width:16px;height:16px;border:none;background:none;color:#666;font-size:10px;display:flex;align-items:center;justify-content:center;padding:0}.expand-workouts-btn:hover{color:#2196f3}.add-workout-mini-btn{width:18px;height:18px;border:1px solid #2196f3;border-radius:50%;background-color:#fff;color:#2196f3;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;transition:background-color .2s,color .2s}.add-workout-mini-btn:hover{background-color:#2196f3;color:#fff}.expanded-workouts{list-style:none;margin:4px -6px 0;padding:4px 0 0 12px;border-top:1px solid #f0f0f0}.workout-text-item{display:flex;align-items:flex-start;gap:6px;padding:4px 0;border-bottom:1px solid #f8f8f8}.workout-select-all{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:12px;font-weight:600;color:#333;cursor:pointer}.workout-row-check{display:flex;align-items:center;height:18px;cursor:pointer}.workout-text-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.workout-date{color:#666;font-size:11px;line-height:16px}.workout-text-item:last-child{border-bottom:none}.workout-text-info{display:flex;align-items:baseline;gap:6px;min-width:0;font-size:13px;color:#333}.workout-text-info strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2196f3}.workout-distance{margin-left:auto;flex-shrink:0;font-weight:600}.workout-text-info .activity-icon{align-self:center;flex-shrink:0}.delete-workouts-btn{display:block;width:100%;margin-top:6px;padding:4px 0;border:none;background:none;color:#c62828;font-size:12px;font-weight:600;text-align:left}.delete-workouts-btn:hover{text-decoration:underline}.no-workouts{color:#999;font-size:10px;font-style:italic;text-align:center;padding:4px}.item-actions{display:flex;align-items:center;gap:2px;flex-shrink:0}.icon-btn{background:none;border:none;font-size:14px;opacity:.6;transition:opacity .2s ease,background-color .2s ease;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;width:28px;height:28px}.icon-btn:hover{opacity:1;background-color:#f0f0f0}.icon-btn-danger:hover{background-color:#ffebee}.route-sources{display:flex;flex-wrap:wrap;gap:2px 12px;margin-top:6px}.route-source{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#333;cursor:pointer}.route-auto-import{display:block;margin-top:2px;color:#2e7d32;font-size:10px}.route-auto-import.route-completed{color:#888}.home-page{--sidebar-width: 290px;display:flex;height:100vh;height:100dvh;overflow:hidden}.map-area{flex:1;display:flex;flex-direction:column;margin-left:var(--sidebar-width);min-width:0}.privacy-link{position:fixed;left:16px;bottom:10px;z-index:1101;color:#666;font-size:12px;text-decoration:none}.privacy-link:hover{text-decoration:underline}.map-account{position:absolute;top:12px;right:12px;z-index:1300;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000002e;padding:4px 8px}.map-brand{display:none}.map-stage{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.page-alert{margin:8px 20px 0}.page-alert-text{flex:1}.completion-notice{display:flex;align-items:center;gap:10px}.routes-toggle,.routes-backdrop{display:none}@media (max-width: 760px){.map-area{margin-left:0}.page-alert{margin:8px 8px 0}.map-account{max-width:calc(100% - 24px);padding:2px}.map-brand{display:flex;position:absolute;top:12px;left:12px;z-index:1300;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000002e;padding:4px 12px 4px 4px}.home-page.routes-open .map-brand{display:none}.leaflet-top.leaflet-left{top:68px}.routes-backdrop{display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:990;border:none;padding:0;background:#00000059}.privacy-link{left:12px;bottom:calc(68px + env(safe-area-inset-bottom));background:#fff;padding:6px 10px;border-radius:999px;box-shadow:0 2px 8px #0000002e}.home-page.routes-open .privacy-link{display:none}.routes-toggle{display:inline-flex;align-items:center;position:absolute;left:12px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:1100;padding:10px 16px;border:none;border-radius:999px;background:#fff;color:#333;font-size:14px;font-weight:600;box-shadow:0 2px 8px #0000002e}}.privacy-page{max-width:640px;margin:0 auto;padding:32px 20px 64px;color:#213547}.privacy-home{display:inline-flex;text-decoration:none;margin-bottom:28px}.privacy-page h1{margin:0 0 16px;font-size:1.75rem}.privacy-page h2{margin:28px 0 8px;font-size:1.15rem}.privacy-page p,.privacy-page li{font-size:15px;line-height:1.6}.privacy-page ul{margin:8px 0;padding-left:1.2rem}.privacy-page li+li{margin-top:8px}.confirm-popover{position:fixed;z-index:3000;width:240px;box-sizing:border-box;padding:12px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 6px 20px #0000002e;animation:confirm-popover-in .12s ease-out}.confirm-popover:before{content:"";position:absolute;left:calc(var(--arrow-x, 50%) - 6px);width:10px;height:10px;background:#fff;border:1px solid #e0e0e0;transform:rotate(45deg)}.confirm-popover-below:before{top:-6px;border-right:none;border-bottom:none}.confirm-popover-above:before{bottom:-6px;border-left:none;border-top:none}.confirm-popover-message{margin:0 0 12px;font-size:14px;color:#333}.confirm-popover-actions{display:flex;justify-content:flex-end;gap:8px}@keyframes confirm-popover-in{0%{opacity:0;transform:translateY(-4px)}}.confirm-popover-above{animation-name:confirm-popover-in-above}@keyframes confirm-popover-in-above{0%{opacity:0;transform:translateY(4px)}}@media (prefers-reduced-motion: reduce){.confirm-popover{animation:none}}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,system-ui,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background-color:#fff}button{font-family:inherit;cursor:pointer}button:focus-visible,[role=button]:focus-visible{outline:2px solid #007bff;outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:16px;height:16px;border:2px solid #e3f2fd;border-top-color:#1976d2;border-radius:50%;animation:spin 1s linear infinite;flex-shrink:0}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-group label,.location-autocomplete label{display:block;font-weight:500;color:#333;font-size:14px}.location-autocomplete label{margin-bottom:6px}.form-group input,.form-group select,.location-autocomplete input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;box-sizing:border-box;background-color:#fff;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.location-autocomplete input:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}[aria-invalid=true]{border-color:#dc3545!important}.field-hint{margin:0;color:#888;font-size:12px}.field-error{margin:4px 0 0;color:#dc3545;font-size:12px}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.btn{padding:10px 20px;border:1px solid transparent;border-radius:4px;font-size:14px;font-weight:500;transition:background-color .2s;min-width:100px}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background:#0056b3}.btn-secondary{background:#f5f5f5;color:#555;border-color:#ddd}.btn-secondary:hover:not(:disabled){background:#eee}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover:not(:disabled){background:#bb2d3b}.btn-small{min-width:0;padding:6px 12px;font-size:13px}.btn:disabled{background:#ccc;color:#fff;cursor:not-allowed}.alert{padding:12px;border-radius:4px;margin-bottom:16px;font-size:14px}.alert-info{display:flex;align-items:center;gap:10px;background:#e3f2fd;color:#1976d2}.alert-success{background:#d4edda;color:#155724}.alert-error{background:#f8d7da;color:#721c24}.alert-warning{background:#fff3cd;color:#856404;font-size:12px;padding:8px 12px;margin:8px 0 0}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:2000}.dialog{background:#fff;border-radius:8px;padding:24px;width:400px;max-width:90vw;max-height:90vh;max-height:90dvh;overflow-y:auto;box-sizing:border-box;box-shadow:0 4px 20px #00000026}@media (max-width: 760px){.dialog-overlay{align-items:flex-end}.dialog,.dialog.import-past-dialog,.dialog.provider-dialog{width:100%;max-width:100%;max-height:92dvh;border-radius:16px 16px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}}.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:12px;margin-bottom:20px;border-bottom:1px solid #eee}.dialog-header h3{margin:0;color:#333;font-size:18px}.dialog-subtitle{margin:2px 0 0;color:#666;font-size:14px;font-style:italic}.close-btn{background:none;border:none;font-size:24px;line-height:1;color:#999;width:30px;height:30px;border-radius:50%;flex-shrink:0}.close-btn:hover{background:#f5f5f5;color:#333}.form-group input[type=checkbox]{width:auto;margin:0;padding:0}fieldset.form-group{border:none;margin:0 0 16px;padding:0;min-width:0}.form-legend{padding:0;margin-bottom:6px;font-weight:500;color:#333;font-size:14px}
