.downloads{height:100%;overflow-y:auto;padding:16px;padding-bottom:calc(16px + var(--safe-area-bottom))}.downloads-header{margin-bottom:20px}.downloads-header h2{font-size:1.5rem;font-weight:600;color:var(--color-text);margin-bottom:4px}.downloads-subtitle{color:var(--color-text-muted);font-size:.9rem}.download-summary{background:var(--color-surface);border-radius:var(--radius-md);padding:16px;margin-bottom:20px}.summary-stats{display:flex;justify-content:space-around;margin-bottom:16px}.summary-stat{text-align:center}.summary-stat .stat-value{font-size:1.5rem;font-weight:600;color:var(--color-primary)}.summary-stat .stat-label{font-size:.8rem;color:var(--color-text-muted)}.download-progress{display:flex;align-items:center;gap:12px}.progress-bar{flex:1;height:8px;background:var(--color-bg);border-radius:var(--radius-sm);overflow:hidden}.progress-fill{height:100%;background:var(--color-primary);transition:width .3s ease}.progress-text{font-size:.85rem;color:var(--color-text-muted);white-space:nowrap}.download-progress .download-speed{font-size:.85rem;white-space:nowrap}.tile-list{display:flex;flex-direction:column;gap:8px}.tile-item{display:flex;align-items:center;justify-content:space-between;background:var(--color-surface);padding:12px 16px;border-radius:var(--radius-md);transition:background .15s}.tile-item.downloaded{opacity:.7}.tile-item.downloading{background:var(--color-surface-hover)}.tile-info{display:flex;flex-direction:column;gap:2px}.tile-id{font-family:monospace;font-size:.9rem;color:var(--color-text)}.tile-meta{font-size:.8rem;color:var(--color-text-muted)}.tile-status{display:flex;align-items:center}.status-downloaded{color:var(--color-success)}.downloads-loading,.downloads-error{height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.download-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#0006;z-index:var(--z-above-sheet);padding:20px}.download-card{background:var(--color-surface);border-radius:var(--radius-xl);padding:24px;max-width:280px;width:100%;text-align:center;position:relative;box-shadow:var(--shadow-lg)}.download-card .close-btn{position:absolute;top:12px;right:12px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:background .15s}.download-card .close-btn:hover{background:var(--color-surface-hover)}.download-icon{width:64px;height:64px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;background:rgba(var(--color-primary-rgb),.12);border-radius:var(--radius-xl);color:var(--color-primary)}.download-icon.downloading svg{animation:bounce 1s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.download-card h3{font-size:1.1rem;font-weight:600;color:var(--color-text);margin-bottom:8px}.download-btn{width:100%;padding:14px;background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-lg);font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,transform .15s}.download-btn:hover{background:var(--color-primary-dark)}.download-btn:active{transform:scale(.98)}.download-body{margin:0;font-size:.9rem;line-height:1.4;color:var(--color-text-muted)}.download-actions{display:flex;flex-direction:column;gap:8px}.download-progress-bar{height:8px;background:var(--color-bg);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:12px}.download-progress-bar .progress-fill{height:100%;background:var(--color-primary);transition:width .3s ease}.download-progress-card h3{margin-bottom:12px}.download-stats{display:flex;justify-content:space-between;font-size:.8rem;color:var(--color-text-muted);margin-top:8px}.download-speed{color:var(--color-primary);font-weight:500}.download-eta{font-size:.85rem;color:var(--color-text);margin-top:8px;text-align:center}.download-options{width:100%;margin-bottom:16px}.download-stat{display:flex;flex-direction:column;align-items:center;gap:2px;margin:8px 0 20px}.download-stat-size{font-size:1.9rem;font-weight:700;line-height:1.1;color:var(--color-text);white-space:nowrap}.download-stat-detail{font-size:.8rem;color:var(--color-text-muted)}.download-option{display:flex;align-items:center;gap:10px;padding:12px;border-radius:var(--radius-md);cursor:pointer;transition:background .15s;margin-bottom:4px}.download-option:hover:not(.done):not(.unavailable){background:var(--color-surface-hover)}.download-option.done{opacity:.6}.download-option.unavailable{opacity:.4;cursor:not-allowed}.download-option input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary)}.download-option-label{flex:1;font-size:.95rem;color:var(--color-text)}.download-option-size{font-size:.85rem;color:var(--color-text-muted);font-weight:500}.download-option.done .download-option-size{color:var(--color-primary)}.download-total{display:flex;justify-content:space-between;padding:12px;border-top:1px solid var(--color-border);margin-top:8px;font-weight:600;color:var(--color-text)}.download-btn:disabled{opacity:.5;cursor:not-allowed}.download-btn-secondary{background:var(--color-surface-hover);color:var(--color-text)}.download-btn-secondary:hover{background:var(--color-border)}.download-cancel-btn{margin-top:16px;padding:10px 20px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:.9rem;cursor:pointer;transition:background .15s,color .15s}.download-cancel-btn:hover{background:var(--color-surface-hover);color:var(--color-text)}.download-delete-btn{margin-top:8px;padding:8px 16px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-danger, #c0392b);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.download-delete-btn:hover{background:#c0392b14;border-color:var(--color-danger, #c0392b)}.download-error-card{text-align:center}.download-error-icon{background:rgba(var(--color-error-rgb),.12);color:var(--color-error)}.download-error-message{font-size:.9rem;color:var(--color-text-muted);margin:8px 0 20px}.download-error-actions{display:flex;flex-direction:column;gap:8px}.download-success-card{text-align:center}.download-success-icon{background:rgba(var(--color-success-rgb),.12);color:var(--color-success)}.download-success-icon svg{animation:success-check .3s ease-out}@keyframes success-check{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.stale-tiles-toast{position:fixed;bottom:80px;left:50%;transform:translate(-50%);z-index:calc(var(--z-panel) + 10);display:flex;flex-direction:column;gap:10px;max-width:min(520px,calc(100vw - 32px));padding:14px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 6px 24px #00000040;font-size:.9rem;color:var(--color-text)}.stale-tiles-toast-body{display:flex;flex-direction:column;gap:2px}.stale-tiles-toast-detail{font-size:.8rem;color:var(--color-text-muted)}.stale-tiles-toast-actions{display:flex;gap:8px;align-items:center}.stale-tiles-toast-btn{flex:1;padding:8px 12px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.stale-tiles-toast-btn:hover:not(:disabled){background:var(--color-surface-hover)}.stale-tiles-toast-btn:disabled{opacity:.5;cursor:not-allowed}.stale-tiles-toast-btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}.stale-tiles-toast-btn-primary:hover:not(:disabled){background:var(--color-primary-hover, var(--color-primary));filter:brightness(1.05)}.stale-tiles-toast-dismiss{flex:none;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-muted);font-size:1.4rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.stale-tiles-toast-dismiss:hover{background:var(--color-surface-hover);color:var(--color-text)}.manifest-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:24px;text-align:center}.manifest-error-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:rgba(var(--color-error-rgb),.12);border-radius:var(--radius-lg);color:var(--color-error);margin-bottom:16px}.manifest-error p{font-size:.95rem;color:var(--color-text-muted);margin-bottom:16px}.manifest-retry-btn{padding:10px 24px;background:var(--color-primary);color:var(--color-primary-text);border:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s}.manifest-retry-btn:hover{background:var(--color-primary-dark)}.downloads-panel-body{padding:20px;display:flex;flex-direction:column;gap:14px;flex:1;min-height:0;overflow-y:auto}.downloads-panel-summary{display:flex;flex-direction:column;gap:3px}.downloads-panel-summary h4{margin:0;font-size:15px;font-weight:600;color:var(--color-text)}.downloads-panel-summary p{margin:0;font-size:13px;color:var(--color-text-muted)}.downloads-panel-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0}.downloads-panel-metrics div{min-width:0;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.downloads-panel-metrics dt{margin:0 0 4px;font-size:11px;color:var(--color-text-muted)}.downloads-panel-metrics dd{margin:0;font-size:14px;font-weight:600;color:var(--color-text)}.downloads-panel-progress,.downloads-panel-outdated{padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.downloads-panel-progress-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:13px;color:var(--color-text)}.downloads-panel-progress-bar{height:7px;overflow:hidden;border-radius:var(--radius-full);background:var(--color-surface-hover)}.downloads-panel-progress-bar>div{height:100%;border-radius:inherit;background:var(--color-primary);transition:width .2s ease}.downloads-panel-outdated{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 12px;font-size:13px;color:var(--color-text)}.downloads-panel-outdated-actions{display:flex;align-items:center;gap:8px}.downloads-panel-outdated button{flex:none;padding:7px 10px;border:1px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-primary-text);font-size:12px;font-weight:500;cursor:pointer}.downloads-panel-outdated button.downloads-panel-outdated-secondary{border-color:var(--color-border);background:transparent;color:var(--color-text)}.downloads-panel-outdated button.downloads-panel-outdated-dismiss{border-color:transparent;background:transparent;color:var(--color-text-muted)}.downloads-panel-outdated button:disabled{opacity:.55;cursor:not-allowed}.downloads-panel-regions{display:flex;flex-direction:column;min-height:0;gap:8px}.downloads-panel-section-title{font-size:13px;font-weight:600;color:var(--color-text)}.downloads-panel-list{display:flex;flex-direction:column;max-height:min(340px,42dvh);overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.downloads-panel-row{display:grid;grid-template-columns:minmax(0,1fr) auto 34px;align-items:center;gap:10px;min-height:48px;padding:8px 8px 8px 12px;border-bottom:1px solid var(--color-border)}.downloads-panel-row:last-child{border-bottom:none}.downloads-panel-row.is-stale{background:#c7770014}.downloads-panel-row-main{display:flex;align-items:center;gap:8px;min-width:0}.downloads-panel-tile-id{min-width:0;overflow:hidden;color:var(--color-text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.downloads-panel-stale-badge{flex:none;padding:2px 6px;border-radius:var(--radius-full);background:#c7770024;color:var(--color-warning);font-size:10px;font-weight:600}.downloads-panel-row-size{color:var(--color-text-muted);font-size:12px;white-space:nowrap}.downloads-panel-delete{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s}.downloads-panel-delete:hover:not(:disabled){background:#c0392b14;color:var(--color-danger, #c0392b)}.downloads-panel-delete:disabled{opacity:.55;cursor:not-allowed}.downloads-panel-delete-text{font-size:12px;font-weight:600}.downloads-panel-empty{padding:18px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-muted);font-size:13px;text-align:center}.downloads-panel-hint{font-size:13px;color:var(--color-text-muted);margin:0;line-height:1.5}.downloads-panel-actions{display:flex;justify-content:flex-start}.downloads-panel-show-grid{padding:10px 12px;font-size:13px;font-weight:500;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer}.downloads-panel-show-grid:hover{background:var(--color-surface-hover)}.tile-grid-pill{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--bottom-bar-h, 56px) + 10px + var(--safe-area-bottom));z-index:var(--z-map-chrome);display:flex;align-items:center;gap:10px;max-width:calc(100vw - 24px);padding:6px 6px 6px 14px;font-size:.85rem;color:var(--color-text);background:color-mix(in srgb,var(--color-surface) 85%,transparent);border:1px solid var(--color-border);border-radius:var(--radius-md);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:var(--shadow-xs)}.tile-grid-pill button{padding:6px 12px;font-size:.85rem;font-weight:500;color:var(--color-primary-text);background:var(--color-primary);border:none;border-radius:var(--radius-sm);cursor:pointer}.downloads-panel-clear{padding:8px 0;font-size:13px;font-weight:500;color:var(--color-danger, #c0392b);background:none;border:none;cursor:pointer;transition:all .15s}.downloads-panel-clear:hover{color:var(--color-danger, #c0392b);text-decoration:underline}.downloads-panel-clear:disabled{opacity:.5;cursor:not-allowed}.settings-content{padding:12px 16px;display:flex;flex-direction:column;gap:20px;flex:1;min-height:0;overflow-y:auto}.settings-section{display:flex;flex-direction:column;gap:8px}.settings-group{display:flex;flex-direction:column;gap:16px}.settings-group+.settings-group{padding-top:20px;border-top:1px solid var(--color-border)}.settings-group-title{font-size:15px;font-weight:700;color:var(--color-text)}.settings-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.settings-toggle-group{display:flex;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.settings-toggle-btn{flex:1;padding:8px 12px;background:transparent;border:none;color:var(--color-text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.settings-toggle-btn+.settings-toggle-btn{border-left:1px solid var(--color-border)}.settings-toggle-btn:hover{background:var(--color-surface-hover)}.settings-toggle-btn.active{background:rgba(var(--color-primary-rgb),.15);color:var(--color-text)}.settings-about-text{display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--color-text)}.settings-muted{font-size:12px;color:var(--color-text-muted)}.settings-themes{display:flex;align-items:center;gap:8px}.settings-theme-btn{background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:50%}.settings-theme-swatch{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.15);opacity:.5;transition:opacity .2s,transform .2s,box-shadow .2s}.settings-theme-btn.active .settings-theme-swatch{opacity:1;transform:scale(1.15);box-shadow:0 0 0 3px var(--color-bg),0 0 0 5px currentColor}.settings-theme-btn:hover:not(.active) .settings-theme-swatch{opacity:.8;transform:scale(1.05)}.settings-storage-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--color-text)}.settings-action-btn{padding:8px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.settings-action-btn:hover:not(:disabled){background:var(--color-surface-hover)}.settings-action-btn:disabled{opacity:.5;cursor:not-allowed}.settings-action-danger{color:#c44;border-color:#c446}.settings-action-danger:hover:not(:disabled){background:#cc444414}.settings-pw-form{display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.settings-pw-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--color-text-muted)}.settings-pw-field input{padding:8px 10px;font-size:14px;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);outline:none;transition:border-color .15s}.settings-pw-field input:focus{border-color:var(--color-brand)}.settings-pw-hint{font-size:11px;color:#c44}.settings-pw-forgot{display:flex;justify-content:center;font-size:12px;margin-top:4px}.settings-link-row{display:flex;gap:12px;flex-wrap:wrap}.settings-link{background:none;border:none;padding:0;color:var(--color-primary);font-size:13px;cursor:pointer;text-decoration:underline}.settings-link:hover{opacity:.8}
