:root{--visit-type-transit: #fbc02d;--visit-type-visit: #388e3c;--visit-type-work: #1976d2;--visit-type-live: #7b1fa2;--visit-type-visit-alpha-10: rgba(56, 142, 60, .1);--visit-type-work-alpha-10: rgba(25, 118, 210, .1);--color-chart-text: #e5e7eb;--color-chart-accent-blue: #3b82f6;--color-chart-accent-blue-alpha-10: rgba(59, 130, 246, .1);--color-chart-accent-blue-border: #1e40af;--color-chart-accent-green: #10b981;--color-chart-accent-green-alpha-10: rgba(16, 185, 129, .1);--color-chart-comparison-mine-border: #1b5e20;--color-chart-comparison-other-border: #0d47a1;--color-chart-comparison-mine-text: #4caf50;--color-chart-comparison-other-text: #64b5f6;--color-chart-places-accent: #4a7c59;--color-pie-chart-border: #1a1a1a;--color-pie-chart-tooltip-bg: #2a2a2a;--place-marker-fill-visited: #4caf50;--place-marker-fill-visited-hover: #66bb6a;--place-marker-fill-unvisited: #9e9e9e;--place-marker-fill-unvisited-hover: #bdbdbd;--place-marker-line-visited-hover: #2e7d32;--place-marker-line-unvisited: #757575;--place-marker-line-unvisited-hover: #616161;--route-marker-first: #48c9b0;--route-marker-last: #e74c3c;--route-marker-middle: #667eea;--color-route-marker-highlight-ring: #f59e0b;--route-leg-driving: #2563eb;--route-leg-walking: #16a34a;--route-leg-flight: #7c3aed;--route-leg-boat: #0f766e;--map-region-base: #3498db;--map-region-border: #2980b9;--map-region-outline: #000000;--map-selected-outline: #f59e0b;--achievement-locked: #64748b;--achievement-locked-track: rgba(100, 116, 139, .25);--achievement-progress: #f59e0b;--achievement-unlocked: #facc15;--achievement-level-1: #faf7f7;--achievement-level-2: #22c55e;--achievement-level-3: #38bdf8;--achievement-level-4: #3b82f6;--achievement-level-5: #8b5cf6;--achievement-level-6: #f97316;--achievement-level-7: #ef4444;--achievement-level-8: #db2777;--achievement-level-9: #be123c;--achievement-level-10: #fbbf24;--compare-only-other: #3b82f6;--compare-only-mine: #10b981;--compare-both: #8b5cf6;--compare-together: #ec4899;--brand: #14b8a6;--brand-hover: #0d9488;--brand-active: #0f766e;--brand-contrast: #ffffff;--brand-soft: rgba(20, 184, 166, .14);--brand-ring: rgba(20, 184, 166, .45);--brand-fill: #0f766e;--brand-fill-hover: #115e59;--brand-fill-active: #134e4a;--gradient-brand: linear-gradient(135deg, #0f766e, #115e59);--color-white: #ffffff;--color-black: #000000;--color-surface-default: #ffffff;--color-surface-soft: #f8f9fa;--color-surface-canvas: #1c2731;--color-surface-panel: #2c3e50;--color-surface-elevated: #374151;--color-surface-hover: #253548;--color-input-bg: #111827;--color-overlay-soft: rgba(0, 0, 0, .3);--color-overlay-strong: rgba(0, 0, 0, .6);--color-surface-panel-alpha-95: rgba(44, 62, 80, .95);--color-surface-panel-alpha-90: rgba(44, 62, 80, .9);--color-surface-panel-alpha-80: rgba(44, 62, 80, .8);--color-border-default-alpha-80: rgba(52, 73, 94, .8);--color-border-default-alpha-60: rgba(52, 73, 94, .6);--color-border-default-alpha-40: rgba(52, 73, 94, .4);--color-black-alpha-50: rgba(0, 0, 0, .5);--color-black-alpha-45: rgba(0, 0, 0, .45);--color-black-alpha-38: rgba(0, 0, 0, .38);--color-black-alpha-20: rgba(0, 0, 0, .2);--color-black-alpha-15: rgba(0, 0, 0, .15);--color-black-alpha-12: rgba(0, 0, 0, .12);--color-black-alpha-10: rgba(0, 0, 0, .1);--color-black-alpha-6: rgba(0, 0, 0, .06);--color-white-alpha-95: rgba(255, 255, 255, .95);--color-white-alpha-80: rgba(255, 255, 255, .8);--color-white-alpha-20: rgba(255, 255, 255, .2);--color-white-alpha-15: rgba(255, 255, 255, .15);--color-white-alpha-12: rgba(255, 255, 255, .12);--color-white-alpha-8: rgba(255, 255, 255, .08);--color-white-alpha-7: rgba(255, 255, 255, .07);--color-white-alpha-6: rgba(255, 255, 255, .06);--color-white-alpha-5: rgba(255, 255, 255, .05);--color-white-alpha-4: rgba(255, 255, 255, .04);--color-text-on-dark-alpha-5: rgba(236, 240, 241, .05);--color-text-on-dark-alpha-40: rgba(236, 240, 241, .4);--color-border-default-alpha-70: rgba(52, 73, 94, .7);--color-border-default-alpha-50: rgba(52, 73, 94, .5);--color-border-default-alpha-30: rgba(52, 73, 94, .3);--color-calendar-bg: rgba(30, 45, 61, .98);--color-map-error-bg: rgba(255, 0, 0, .1);--color-focus-ring-legacy-blue: rgba(52, 152, 219, .2);--color-focus-ring-legacy-blue-soft: rgba(52, 152, 219, .15);--color-focus-ring-blue: rgba(59, 130, 246, .2);--color-tooltip-bg: rgba(31, 41, 55, .95);--color-trip-chip-border: rgba(159, 214, 255, .35);--color-trip-chip-bg: rgba(159, 214, 255, .12);--color-zoom-window-bg: rgba(96, 165, 250, .2);--color-zoom-window-bg-hover: rgba(96, 165, 250, .3);--color-border-accent-alpha-70: rgba(74, 106, 124, .7);--color-border-accent-alpha-50: rgba(74, 106, 124, .5);--color-trip-travellers-overlay-bg: rgba(7, 10, 18, .68);--color-trip-travellers-modal-gradient-start: rgba(18, 29, 44, .98);--color-trip-travellers-modal-gradient-end: rgba(32, 44, 63, .98);--color-photo-import-error-bg: rgba(231, 76, 60, .2);--color-photo-import-error-border: rgba(231, 76, 60, .4);--color-text-primary: #1f2937;--color-text-secondary: #4b5563;--color-text-muted: #6b7280;--color-text-on-dark: #ecf0f1;--color-text-on-dark-muted: #9ca3af;--color-text-on-dark-subtle: #7f8c8d;--color-border-light: #d1d5db;--color-border-default: #34495e;--color-border-subtle: #4b5563;--color-border-on-dark: rgba(255, 255, 255, .25);--color-divider-on-dark: rgba(255, 255, 255, .1);--color-action-primary: var(--brand);--color-action-primary-hover: var(--brand-hover);--color-action-secondary: var(--brand);--color-action-secondary-hover: var(--brand-hover);--color-action-tertiary: var(--brand);--color-action-tertiary-hover: var(--brand-hover);--color-action-success: #2e7d32;--color-action-success-hover: #16a34a;--color-action-danger: #dc2626;--color-action-danger-hover: #b91c1c;--color-status-warning: #fbbf24;--color-status-danger-bg: #450a0a;--color-status-danger-soft-bg: #fef2f2;--color-status-danger-soft-border: #fecaca;--color-status-success-bg: #052e16;--color-status-success-soft-bg: #e8f5e8;--color-status-success-soft-border: #c8e6c9;--color-status-info-soft-bg: #e3f2fd;--color-on-success-bg: #86efac;--color-on-danger-bg: #fca5a5;--color-warning-soft-bg: rgba(251, 191, 36, .15);--font-family-base: system-ui, Avenir, Helvetica, Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-body: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-heading: 2rem;--font-size-display: 2.5rem;--font-size-label: var(--font-size-sm);--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 2px 8px rgba(0, 0, 0, .25);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .35);--shadow-xl: 0 20px 40px rgba(0, 0, 0, .45);--transition-fast: .12s ease;--transition-base: .2s ease;--hover-lift: translateY(-2px);--focus-ring: 0 0 0 3px var(--brand-ring);--focus-ring-danger: 0 0 0 3px rgba(220, 38, 38, .25);--nav-height: 72px;--tabbar-height: 56px;--appbar-height: 56px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes skeletonShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes expandDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUpSheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.page-container{width:100%;max-width:1400px;margin-left:auto;margin-right:auto;padding:var(--space-4) var(--space-8)}@media(max-width:768px){.page-container{padding:var(--space-4) var(--space-4)}}@media(max-width:480px){.page-container{padding:var(--space-3) var(--space-3)}}@media(max-width:768px){.desktop-only{display:none!important}}@media(min-width:769px){.mobile-only{display:none!important}}.safe-bottom{padding-bottom:env(safe-area-inset-bottom,0px)}.safe-top{padding-top:env(safe-area-inset-top,0px)}a,button,[role=button],input,select,textarea,label{-webkit-tap-highlight-color:transparent}button,input,select,textarea{font-family:inherit}input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],input[type=tel],input[type=url],input[type=date]{-webkit-appearance:none;appearance:none}button,[role=button]{cursor:pointer}a,button,[role=button],label,select,input,textarea{touch-action:manipulation}@media(pointer:coarse){button{min-height:44px}}@media(max-width:768px){input[type=text],input[type=email],input[type=password],input[type=search],input[type=number],input[type=tel],input[type=url],input[type=date],select,textarea{font-size:16px}}.bg-surface,:where(.settings-card,.friend-request-modal,.home-region-modal,.region-edit-modal,.modal-content){background-color:var(--color-surface-default)}.bg-surface-muted,:where(.selected-region-controls,.trip-card,.country-section,.place-type-section){background-color:var(--color-surface-soft)}.bg-overlay,:where(.modal-overlay,.home-region-modal-overlay,.friend-request-modal-overlay){background-color:var(--color-overlay-strong)}.bg-overlay-soft,:where(.navigation,.trip-visits-list){background-color:var(--color-overlay-soft)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);line-height:1.2;white-space:nowrap;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;text-decoration:none;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.btn:disabled,.btn[aria-disabled=true],.btn.btn--loading{opacity:.6;cursor:not-allowed;pointer-events:none}.btn--loading:before{content:"";width:1em;height:1em;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--radius-pill);animation:spin .7s linear infinite;flex-shrink:0}.btn--sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.btn--lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-body)}.btn--full{width:100%}.btn--primary{background:var(--brand-fill);color:var(--brand-contrast);border-color:var(--brand-fill)}.btn--primary:hover{background:var(--brand-fill-hover);border-color:var(--brand-fill-hover)}.btn--primary:active{background:var(--brand-fill-active);border-color:var(--brand-fill-active)}.btn--secondary{background:var(--color-surface-elevated);color:var(--color-text-on-dark);border-color:var(--color-border-subtle)}.btn--secondary:hover{background:var(--color-surface-hover);border-color:var(--brand)}.btn--danger{background:var(--color-action-danger);color:var(--color-white);border-color:var(--color-action-danger)}.btn--danger:hover{background:var(--color-action-danger-hover);border-color:var(--color-action-danger-hover)}.btn--danger:active{background:var(--color-action-danger-hover);border-color:var(--color-action-danger-hover);filter:brightness(.92)}.btn--success{background:var(--color-action-success);color:var(--color-white);border-color:var(--color-action-success)}.btn--success:hover{background:var(--color-action-success-hover);border-color:var(--color-action-success-hover)}.btn--success:active{background:var(--color-action-success);border-color:var(--color-action-success)}.btn--secondary:active,.btn--ghost:active{background:var(--color-surface-hover);filter:brightness(.92)}.btn--ghost{background:transparent;color:var(--color-text-on-dark);border-color:var(--color-border-subtle)}.btn--ghost:hover{background:var(--color-surface-hover);border-color:var(--brand)}.btn--link{background:transparent;color:var(--brand);border-color:transparent;padding:var(--space-1) var(--space-2);margin:calc(var(--space-1) * -1) calc(var(--space-2) * -1);font-weight:var(--font-weight-medium)}.btn--link:hover{color:var(--brand-hover);text-decoration:underline}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;font-size:var(--font-size-lg);line-height:1;color:var(--color-text-on-dark);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.icon-btn:hover{background:var(--color-surface-hover)}.icon-btn--sm{width:1.75rem;height:1.75rem;font-size:var(--font-size-body)}.icon-btn--danger:hover{background:transparent;color:var(--color-action-danger)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}@media(pointer:coarse){.icon-btn,.icon-btn--sm{width:2.75rem;height:2.75rem}.btn--sm{min-height:2.5rem}}.text-muted,:where(.loading-message,.empty-state,.no-data-message,.subtitle,.hint){color:var(--color-text-on-dark-muted)}.text-error,:where(.error-message,.login-error,.settings-error,.achievement-detail__error,.achievement-form__error,.achievement-form__form-error,.admin-inline-error,.edit-place-form__error,.extreme-points-error,.home-region-modal-error,.map-error-overlay,.notification-error-message,.notification-modal-error,.place-controls-error,.place-type-error,.profile-friend-action-error,.region-edit-modal-error,.session-provider-error,.session-provider-error-button,.session-provider-error-heading,.session-provider-error-message,.trip-info-edit-error,.trip-join-error,.trip-route-error,.trip-travellers-error,.ui-form-field__error,.error-boundary,.error-boundary__actions,.error-boundary__detail,.error-boundary__message,.error-boundary__title,.toast--error){color:var(--color-action-danger)}.text-success,:where(.success-message,.login-success,.settings-success,.success-text,.btn--success,.ui-badge--success,.toast--success){color:var(--color-action-success)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-label,:where(label,.stat-label,.achievement-detail__condition-label,.achievements-page__sort-label,.comparison-days-label,.comparison-extreme-user-label,.country-days-list-label,.country-places-list-label,.data-card__field-label,.edit-place-form__props-label,.geometry-type-label,.icon-picker__item-label,.legend-label,.level-label,.mobile-tab__label,.nav-settings-label,.period-label,.place-filter-label,.place-properties-editor__label,.place-type-label,.popup-date-label,.popup-point-label,.privacy-option-label,.profile-trips-sort-label,.radio-label,.ranked-bar-list__label,.region-type-label,.shared-with-label,.spinner-block__label,.stat-card__label,.trip-join-visits-label,.trip-quick-add-switch-label,.trip-shared-with-label,.ui-chip__label,.ui-form-field__label,.users-toolbar__label,.visit-type-legend__label,.year-filter-label){color:var(--color-text-on-dark-muted);font-size:var(--font-size-label)}.trip-visits-list,.region-visits-list{margin-top:1rem;padding:1.5rem;background-color:var(--color-surface-panel-alpha-95);border-radius:8px;box-shadow:0 4px 12px var(--color-black-alpha-15)}.trip-visits-list h3,.region-visits-list h3{margin:0 0 1rem;color:var(--color-text-on-dark);font-size:1.2rem;font-weight:600}.no-visits{color:var(--color-text-on-dark-muted);font-style:italic;margin:0;text-align:center;padding:2rem}.visits-container{display:flex;flex-direction:column;gap:.5rem}.visit-item{background-color:var(--color-border-default-alpha-80);border:1px solid var(--color-border-subtle);border-radius:6px;padding:.75rem;transition:all .2s ease}.visit-item:hover{background-color:var(--color-border-default);border-color:var(--color-border-subtle)}.visit-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.visit-header.clickable{cursor:pointer;transition:background-color .2s ease;border-radius:6px;margin:-.25rem;padding:.25rem}.visit-header.clickable:hover{background-color:var(--color-text-on-dark-alpha-5)}.visit-header.clickable:hover .expand-icon{color:var(--color-text-on-dark);transform:scale(1.1)}.visit-info{display:flex;align-items:center;gap:.5rem;flex:1}.expand-icon{color:var(--color-text-on-dark-muted);font-size:.8rem;width:16px;height:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s ease;-webkit-user-select:none;user-select:none;padding:0;background:transparent;border:none;cursor:pointer}.visit-details{display:flex;align-items:center;gap:.75rem}.visit-flag-container{display:flex;align-items:center;justify-content:center;flex-shrink:0}.visit-flag{width:20px;height:15px;border-radius:2px;box-shadow:0 1px 3px var(--color-overlay-soft);object-fit:cover}.visit-name{color:var(--color-text-on-dark);font-weight:500;font-size:.9rem}.visit-type-badge{padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600;color:var(--color-white);text-transform:uppercase;letter-spacing:.5px}.children-counter{padding:.25rem .5rem;border-radius:12px;font-size:.7rem;font-weight:500;color:var(--color-text-on-dark-muted);background-color:var(--color-border-default-alpha-60);border:1px solid var(--color-border-subtle);white-space:nowrap}.shared-with-display{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;border-radius:8px;flex-wrap:wrap}.shared-with-label{font-size:.85rem;font-weight:600;color:var(--color-text-on-dark-muted);white-space:nowrap}.shared-with-users{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}.shared-user-link{background:none;border:none;color:var(--color-text-on-dark-muted);cursor:pointer;font-size:.85rem;font-weight:500;padding:0;text-decoration:underline;transition:all .2s ease}.shared-user-link:hover{color:var(--color-action-secondary);text-decoration-thickness:2px}.user-separator{color:var(--color-text-on-dark-muted);font-size:.8rem}.visit-actions{display:flex;align-items:center;gap:.75rem;justify-content:flex-end}.date-inputs{display:flex;align-items:center;gap:.5rem;flex:1;justify-content:flex-end}.date-input{width:120px;flex-shrink:0}.date-input .dp-trigger{background-color:var(--color-surface-panel-alpha-80);border:1px solid var(--color-border-subtle);border-radius:4px;padding:.25rem .5rem;color:var(--color-text-on-dark);font-size:.8rem}.date-input .dp-trigger.dp-trigger--open{border-color:var(--color-action-secondary);box-shadow:var(--focus-ring)}.date-separator{color:var(--color-text-on-dark-muted);font-size:.8rem;flex-shrink:0}.simplified-year-input{width:72px;padding:.2rem .4rem;border:1px solid var(--color-border-subtle);border-radius:4px;background:var(--color-surface-panel-alpha-80);color:var(--color-text-on-dark);font-size:.8rem;text-align:center;outline:none;transition:border-color .15s ease}.simplified-days-input{width:54px;padding:.2rem .4rem;border:1px solid var(--color-border-subtle);border-radius:4px;background:var(--color-surface-panel-alpha-80);color:var(--color-text-on-dark);font-size:.8rem;text-align:center;outline:none;transition:border-color .15s ease}.simplified-year-input:focus,.simplified-days-input:focus{border-color:var(--color-action-secondary);box-shadow:var(--focus-ring)}.simplified-year-input::-webkit-inner-spin-button,.simplified-year-input::-webkit-outer-spin-button,.simplified-days-input::-webkit-inner-spin-button,.simplified-days-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.simplified-year-input[type=number],.simplified-days-input[type=number]{-moz-appearance:textfield}.remove-button{flex-shrink:0}.visit-children{margin-top:.5rem;margin-left:1.5rem;padding-left:1rem;border-left:2px solid var(--color-border-subtle);position:relative;overflow:hidden;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.visit-children:before{content:"";position:absolute;left:-2px;top:-.5rem;bottom:0;width:2px;background:linear-gradient(180deg,var(--color-border-subtle) 0%,transparent 100%)}.visit-children .visit-item{background-color:var(--color-border-default-alpha-60);border-color:var(--color-border-accent-alpha-70)}.visit-children .visit-item:hover{background-color:var(--color-border-default-alpha-80);border-color:var(--color-border-subtle)}.visit-children .visit-children{margin-left:1rem}.visit-children .visit-children .visit-item{background-color:var(--color-border-default-alpha-40);border-color:var(--color-border-accent-alpha-50)}.visit-children .visit-children .visit-item:hover{background-color:var(--color-border-default-alpha-60)}@media(max-width:768px){.trip-visits-list,.region-visits-list{padding:.75rem}.visits-container{gap:.4rem}.visit-item{padding:.5rem .6rem}.visit-header{flex-direction:column;align-items:flex-start;gap:.4rem}.visit-info{width:100%;min-width:0}.visit-details{flex-wrap:wrap;row-gap:.3rem;min-width:0}.visit-actions{width:100%;justify-content:space-between}.date-inputs{flex-direction:row;flex-wrap:wrap;gap:.35rem;justify-content:flex-start}.date-input{width:auto}.children-counter{font-size:.65rem;padding:.2rem .4rem}.visit-type-badge{font-size:.68rem;padding:.2rem .45rem}}@media(max-width:480px){.visit-children{padding-left:.5rem;margin-left:1rem}.visit-children .visit-children{margin-left:.5rem}.expand-icon{font-size:.9rem;width:18px;height:18px}}.region-breadcrumb-link,.region-breadcrumb-current{border-radius:999px;padding:.2rem .55rem;font-size:.82rem;line-height:1.2}.region-breadcrumb-link{border:1px solid var(--color-border-subtle);background:var(--color-border-subtle);color:var(--color-action-primary);cursor:pointer}.region-breadcrumb-link:hover{background:var(--color-border-subtle);border-color:var(--color-border-subtle)}.region-breadcrumb-current{border:1px solid var(--color-border-subtle);background:var(--color-border-subtle);color:var(--color-text-on-dark)}.expand-button,.collapse-button,.go-to-region-button,.add-visit-button,.mark-visited-button,.edit-region-button,.edit-region-header-btn{padding:6px 12px;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.expand-button,.collapse-button,.go-to-region-button,.mark-visited-button,.edit-region-button,.edit-region-header-btn{border:1px solid var(--color-border-subtle);background:var(--color-border-default);color:var(--color-text-on-dark)}.edit-region-header-btn,.edit-region-button:hover,.edit-region-header-btn:hover{background:var(--color-border-subtle);border-color:var(--color-border-subtle)}.add-visit-button{border:1px solid var(--brand-fill);background:var(--brand-fill);color:var(--brand-contrast)}.add-visit-button:hover:not(:disabled){background:var(--brand-fill-hover);border-color:var(--brand-hover)}.expand-button:disabled,.collapse-button:disabled,.go-to-region-button:disabled,.add-visit-button:disabled,.mark-visited-button:disabled{background:var(--color-surface-panel);color:var(--color-text-on-dark-subtle);border-color:var(--color-border-subtle);cursor:not-allowed;opacity:.6}.region-edit-modal-subtitle{margin:0 0 var(--space-4);color:var(--color-text-on-dark-muted);font-size:var(--font-size-sm)}.region-edit-modal-error{margin:var(--space-3) 0 0;color:var(--color-action-danger);font-size:var(--font-size-sm)}.list-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}.list-title{font-size:20px;font-weight:600;color:var(--color-text-on-dark);margin:0}.list-controls{display:flex;gap:12px}.control-button{padding:8px 16px;background-color:var(--color-surface-panel);color:var(--color-text-on-dark);border:1px solid var(--color-surface-panel);border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.control-button:hover{background-color:var(--color-surface-panel);border-color:var(--color-surface-elevated)}.place-count-badge{padding:4px 12px;background-color:var(--color-action-success);color:var(--color-white);border-radius:12px;font-size:14px;font-weight:600}.places-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:16px 20px 20px;background-color:var(--color-surface-canvas)}.place-card{background-color:var(--color-surface-panel);border:1px solid var(--color-surface-panel);border-radius:6px;overflow:hidden;transition:all .2s}.place-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px var(--color-overlay-soft);border-color:var(--color-surface-panel)}.place-image-link{display:block;text-decoration:none}.place-image-placeholder{width:100%;height:180px;background:linear-gradient(135deg,var(--color-surface-panel) 0%,var(--color-surface-panel) 100%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;transition:background .2s}.place-image-placeholder:hover{background:linear-gradient(135deg,var(--color-surface-panel) 0%,var(--color-surface-panel) 100%)}.place-image-placeholder.loading{cursor:wait}.image-icon{font-size:32px}.place-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px}.country-days-bar-chart .bar-chart-title,.place-type-countries-chart .bar-chart-title{color:var(--color-text-on-dark);font-size:1.25rem;font-weight:600;text-align:center}.country-days-bar-chart .bar-chart-container,.place-type-countries-chart .bar-chart-container{position:relative}.country-days-bar-chart .bar-chart-wrapper,.place-type-countries-chart .bar-chart-wrapper{height:400px;margin-bottom:1rem}.country-days-bar-chart .bar-chart-empty,.place-type-countries-chart .bar-chart-empty{height:200px;display:flex;align-items:center;justify-content:center;color:var(--color-text-on-dark-muted);font-style:italic}.country-days-bar-chart .country-flags-row,.place-type-countries-chart .country-flags-row{position:relative;display:flex;align-items:flex-start}.country-days-bar-chart .country-flag-item,.place-type-countries-chart .country-flag-item{position:absolute;display:flex;flex-direction:column;align-items:center;transform:translate(-50%)}.country-days-bar-chart .country-flag-image,.place-type-countries-chart .country-flag-image{object-fit:cover;border-radius:2px;border:1px solid var(--color-text-muted);box-shadow:0 1px 3px var(--color-black-alpha-10)}.country-days-bar-chart .country-total,.place-type-countries-chart .country-total{margin-top:4px;font-weight:600;color:var(--color-text-on-dark);text-align:center;background-color:var(--color-black-alpha-50);border-radius:3px}.country-days-bar-chart .country-code-fallback,.place-type-countries-chart .country-code-fallback{display:flex;align-items:center;justify-content:center;background-color:var(--color-border-subtle);color:var(--color-text-on-dark);border-radius:2px;border:1px solid var(--color-text-muted)}.comparison-days-legend{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-on-dark)}.comparison-days-legend__item{display:inline-flex;align-items:center;gap:var(--space-2)}.comparison-days-legend__swatch{width:12px;height:12px;border-radius:var(--radius-sm);flex-shrink:0}.comparison-days-list{display:flex;flex-direction:column;gap:var(--space-3)}.comparison-days-row{display:flex;flex-direction:column;gap:var(--space-1)}.comparison-days-label{display:flex;align-items:center;gap:var(--space-2);min-width:0}.comparison-days-flag{width:22px;height:15px;object-fit:cover;border-radius:2px;flex-shrink:0}.comparison-days-name{color:var(--color-text-on-dark);font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comparison-days-bars{display:flex;flex-direction:column;gap:var(--space-1)}.comparison-days-bar{display:flex;align-items:center;gap:var(--space-2)}.comparison-days-bar-track{flex:1;height:8px;border-radius:var(--radius-pill);background:var(--color-surface-elevated);overflow:hidden}.comparison-days-bar-fill{height:100%;border-radius:var(--radius-pill);transition:width var(--transition-base)}.comparison-days-bar-val{min-width:2.5ch;text-align:right;font-size:var(--font-size-sm);color:var(--color-text-on-dark-muted);font-variant-numeric:tabular-nums}@media(max-width:768px){.country-days-bar-chart .bar-chart-wrapper,.place-type-countries-chart .bar-chart-wrapper{height:300px}}@media(max-width:480px){.country-days-bar-chart .bar-chart-wrapper,.place-type-countries-chart .bar-chart-wrapper{height:250px}}.extreme-point-card,.extreme-places-card{background:transparent;border-radius:.5rem;padding:1rem;margin-bottom:1rem;max-width:100%;overflow:hidden}.extreme-points-title,.extreme-places-title{font-size:1.125rem;font-weight:600;color:var(--color-text-on-dark);margin:0 0 1rem;text-align:center}.extreme-point-item,.extreme-place-item{background:var(--color-surface-elevated);border:1px solid var(--color-border-subtle);border-radius:.5rem;padding:1rem;transition:all .2s ease}.extreme-point-item:hover,.extreme-place-item:hover{background:var(--color-border-subtle);border-color:var(--color-text-muted);transform:translateY(-2px);box-shadow:0 4px 12px var(--color-overlay-soft)}.extreme-point-header,.extreme-place-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.extreme-point-card .direction-icon,.extreme-places-card .direction-icon{font-size:1.25rem;line-height:1}.extreme-point-card .direction-title,.extreme-places-card .direction-title{font-size:.875rem;font-weight:600;color:var(--color-text-on-dark);text-transform:uppercase;letter-spacing:.05em}.extreme-point-coordinate-row,.extreme-place-coordinate-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.extreme-point-coordinate,.extreme-place-coordinate{font-size:1.125rem;font-weight:700;color:var(--color-status-warning);font-family:Courier New,monospace;flex:1}.extreme-point-flags,.extreme-place-flags{margin-left:.5rem;display:flex;align-items:center;gap:.25rem}.extreme-point-flags .flag-image,.extreme-place-flags .flag-image{width:40px;height:25px;object-fit:cover;border-radius:2px;border:1px solid var(--color-text-muted);display:block}@media(max-width:768px){.extreme-point-card .direction-title,.extreme-places-card .direction-title{font-size:.75rem}.extreme-point-coordinate,.extreme-place-coordinate{font-size:1rem}}@media(max-width:480px){.extreme-point-card .direction-title,.extreme-places-card .direction-title{font-size:.6875rem}.extreme-point-flags .flag-image,.extreme-place-flags .flag-image{width:28px;height:18px}}*{margin:0;padding:0;box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%}:root{font-family:var(--font-family-base);line-height:1.5;font-weight:var(--font-weight-normal);color-scheme:dark;color:#ffffffde;background-color:var(--color-surface-canvas);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:var(--font-weight-medium);color:var(--brand);text-decoration:inherit;transition:color var(--transition-fast)}a:hover{color:var(--brand-hover)}h1{font-size:var(--font-size-heading);line-height:1.1}a:focus-visible,button:focus-visible,[role=button]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus-ring)}.session-provider-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:20px;text-align:center;background-color:var(--color-white)}.session-provider-error-heading{color:var(--color-action-danger);margin-bottom:16px}.session-provider-error-message{color:var(--color-surface-elevated);margin-bottom:24px;max-width:600px}.session-provider-error-button{padding:10px 20px;font-size:16px;background-color:var(--color-border-subtle);color:var(--color-white);border:none;border-radius:4px;cursor:pointer;transition:background-color .2s ease}.session-provider-error-button:hover,.session-provider-error-button:active{background-color:var(--color-border-subtle)}.ui-card{background:var(--color-surface-panel);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-md)}.ui-card--interactive{cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.ui-card--interactive:hover{transform:var(--hover-lift);box-shadow:var(--shadow-lg);border-color:var(--brand)}.ui-modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--color-overlay-strong);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn var(--transition-base) ease}.ui-modal{display:flex;flex-direction:column;width:100%;max-height:calc(100vh - var(--space-8));background:var(--color-surface-panel);color:var(--color-text-on-dark);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow:hidden;animation:scaleIn var(--transition-base) ease}.ui-modal--sm{max-width:24rem}.ui-modal--md{max-width:32rem}.ui-modal--lg{max-width:48rem}.ui-modal-overlay:has(.ui-modal--confirm){z-index:1200}.ui-modal__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border-default)}.ui-modal__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-on-dark)}.ui-modal__body{padding:var(--space-5);overflow-y:auto}.ui-modal__footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border-default)}@media(max-width:768px){.ui-modal,.ui-modal--sm,.ui-modal--md,.ui-modal--lg{max-width:100%}.ui-modal__footer .btn{min-height:44px}}.ui-sheet-overlay{position:fixed;inset:0;z-index:1100;display:flex;align-items:flex-end;justify-content:center;background:var(--color-overlay-strong);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn var(--transition-base) ease}.ui-sheet{display:flex;flex-direction:column;width:100%;max-width:32rem;max-height:85vh;max-height:85dvh;background:var(--color-surface-panel);color:var(--color-text-on-dark);border:1px solid var(--color-border-default);border-bottom:none;border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0px);animation:slideUpSheet var(--transition-base) ease}.ui-sheet__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) var(--space-5) var(--space-3)}.ui-sheet__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-on-dark)}.ui-sheet__body{padding:var(--space-2) var(--space-5) var(--space-5);overflow-y:auto;-webkit-overflow-scrolling:touch}.ui-sheet__footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border-default)}.ui-input{width:100%;padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--font-size-body);color:var(--color-text-on-dark);background:var(--color-input-bg);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.ui-input::placeholder{color:var(--color-text-on-dark-subtle)}.ui-input:hover{border-color:var(--color-border-light)}.ui-input:focus,.ui-input:focus-visible{outline:none;border-color:var(--brand);box-shadow:var(--focus-ring)}.ui-input--invalid,.ui-input--invalid:hover{border-color:var(--color-action-danger)}.ui-input--invalid:focus,.ui-input--invalid:focus-visible{border-color:var(--color-action-danger);box-shadow:var(--focus-ring-danger)}.ui-input:disabled{opacity:.6;cursor:not-allowed}.ui-select{appearance:none;-webkit-appearance:none;padding-right:var(--space-8);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%239ca3af' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center}.ui-select option{color:var(--color-text-on-dark);background:var(--color-surface-panel)}.ui-password-input{position:relative;width:100%}.ui-password-input__field{padding-right:var(--space-8)}.ui-password-input__toggle{position:absolute;top:50%;right:var(--space-2);transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-on-dark-muted);cursor:pointer}.ui-password-input__toggle:hover{color:var(--color-text-on-dark)}.ui-form-field{display:flex;flex-direction:column;gap:var(--space-2)}.ui-form-field__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-on-dark-muted)}.ui-form-field__required{margin-left:var(--space-1);color:var(--color-action-danger)}.ui-form-field__hint{font-size:var(--font-size-xs);color:var(--color-text-on-dark-subtle)}.ui-form-field__error{font-size:var(--font-size-xs);color:var(--color-action-danger)}.ui-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1;white-space:nowrap;border-radius:var(--radius-pill)}.ui-badge--neutral{background:var(--color-surface-elevated);color:var(--color-text-on-dark-muted)}.ui-badge--brand{background:var(--brand-soft);color:var(--brand)}.ui-badge--success{background:var(--color-status-success-bg);color:var(--color-on-success-bg)}.ui-badge--danger{background:var(--color-status-danger-bg);color:var(--color-on-danger-bg)}.ui-badge--warning{background:var(--color-warning-soft-bg);color:var(--color-status-warning)}.ui-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-on-dark);background:var(--color-surface-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);text-decoration:none}.ui-chip--interactive{cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.ui-chip--interactive:hover{background:var(--color-surface-hover);border-color:var(--brand)}.ui-chip__leading{display:inline-flex;align-items:center}.ui-chip__remove{display:inline-flex;align-items:center;justify-content:center;padding:0;font-size:var(--font-size-body);line-height:1;color:inherit;background:none;border:none;cursor:pointer;opacity:.7}.ui-chip__remove:hover{opacity:1;color:var(--color-action-danger)}.ui-tabs{display:inline-flex;gap:var(--space-1);padding:var(--space-1);background:var(--color-surface-elevated);border-radius:var(--radius-md)}.ui-tab{padding:var(--space-2) var(--space-4);font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-on-dark-muted);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.ui-tab:hover{color:var(--color-text-on-dark)}.ui-tab--active,.ui-tab--active:hover{color:var(--brand-contrast);background:var(--brand-fill)}.ui-tab:disabled{opacity:.5;cursor:not-allowed}.ui-tabs--sm .ui-tab{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.toast-viewport{position:fixed;bottom:var(--space-5);right:var(--space-5);z-index:2000;display:flex;flex-direction:column;gap:var(--space-3);max-width:min(360px,calc(100vw - var(--space-8)));pointer-events:none}.toast{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface-elevated);color:var(--color-text-on-dark);border:1px solid var(--color-border-default);border-left:3px solid var(--color-border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toastIn var(--transition-base)}.toast__icon{display:inline-flex;flex-shrink:0;font-size:var(--font-size-lg);line-height:1}.toast__message{flex:1;font-size:var(--font-size-sm);line-height:1.35}.toast__close{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;color:var(--color-text-on-dark-muted);background:none;border:none;cursor:pointer;font-size:var(--font-size-body)}.toast__close:hover{color:var(--color-text-on-dark)}.toast--success{border-left-color:var(--color-action-success)}.toast--success .toast__icon{color:var(--color-on-success-bg)}.toast--error{border-left-color:var(--color-action-danger)}.toast--error .toast__icon{color:var(--color-on-danger-bg)}.toast--info{border-left-color:var(--brand)}.toast--info .toast__icon{color:var(--brand)}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.toast-viewport{left:var(--space-4);right:var(--space-4);bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px) + var(--space-4));max-width:none}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.spinner{display:inline-block;border-radius:var(--radius-pill);border:2px solid var(--color-border-subtle);border-top-color:var(--brand);animation:spin .7s linear infinite;flex-shrink:0}.spinner--sm{width:1rem;height:1rem}.spinner--md{width:1.5rem;height:1.5rem}.spinner--lg{width:2.5rem;height:2.5rem;border-width:3px}.spinner-block{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);color:var(--color-text-on-dark-muted)}.spinner-block__label{font-size:var(--font-size-sm)}.skeleton{display:block;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--color-surface-elevated) 25%,var(--color-surface-hover) 37%,var(--color-surface-elevated) 63%);background-size:400% 100%;animation:skeletonShimmer 1.4s ease infinite}.skeleton--rounded{border-radius:var(--radius-pill)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);text-align:center;padding:var(--space-8) var(--space-4);color:var(--color-text-on-dark-muted)}.empty-state__icon{display:inline-flex;font-size:2.5rem;color:var(--color-text-on-dark-subtle)}.empty-state__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-on-dark)}.empty-state__message{margin:0;max-width:38ch;font-size:var(--font-size-sm);line-height:1.5}.empty-state__action{margin-top:var(--space-2)}.ranked-bar-list__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.ranked-bar-list__title{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-on-dark)}.ranked-bar-list__pagination{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.ranked-bar-list__page-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--color-border-on-dark);border-radius:var(--radius-md);background:var(--color-surface-elevated);color:var(--color-text-on-dark);font-size:var(--font-size-lg);line-height:1;cursor:pointer;transition:background-color var(--transition-fast),opacity var(--transition-fast)}.ranked-bar-list__page-btn:hover:not(:disabled){background:var(--color-surface-hover)}.ranked-bar-list__page-btn:disabled{opacity:.4;cursor:default}@media(max-width:768px){.ranked-bar-list__page-btn{width:44px;height:44px}}.ranked-bar-list__page-info{font-size:var(--font-size-sm);color:var(--color-text-on-dark-muted);min-width:3.5ch;text-align:center}.ranked-bar-list__rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.ranked-bar-list__row{display:flex;flex-direction:column;gap:var(--space-1);width:100%;padding:var(--space-2);border:none;border-radius:var(--radius-md);background:transparent;color:inherit;font-family:inherit;text-align:left}.ranked-bar-list__row--clickable{cursor:pointer;transition:background-color var(--transition-fast)}.ranked-bar-list__row--clickable:hover{background:var(--color-surface-hover)}.ranked-bar-list__label{display:flex;align-items:center;gap:var(--space-2);min-width:0}.ranked-bar-list__rank{flex-shrink:0;min-width:2.5ch;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-on-dark-muted)}.ranked-bar-list__leading{display:inline-flex;align-items:center;flex-shrink:0}.ranked-bar-list__name{display:flex;flex-direction:column;min-width:0;flex:1}.ranked-bar-list__name-primary{color:var(--color-text-on-dark);font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranked-bar-list__name-sub{font-size:var(--font-size-xs);color:var(--color-text-on-dark-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranked-bar-list__value{flex-shrink:0;margin-left:auto;padding-left:var(--space-2);font-weight:var(--font-weight-semibold);color:var(--color-text-on-dark);font-variant-numeric:tabular-nums}.ranked-bar-list__track{width:100%;height:10px;border-left:1px solid var(--color-border-subtle)}.ranked-bar-list__fill{display:flex;gap:2px;height:100%;border-radius:0 4px 4px 0;background:var(--color-chart-accent-blue);overflow:hidden;transition:width var(--transition-base)}.ranked-bar-list__fill--segmented{background:transparent}.ranked-bar-list__segment{height:100%;min-width:0}.ranked-bar-list__empty{padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-text-on-dark-muted);font-style:italic}.ranked-bar-list__footer{margin-top:var(--space-3)}.data-card-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.data-card{display:flex;flex-direction:column;gap:var(--space-3)}.data-card[role=button]:focus-visible{outline:none;box-shadow:var(--focus-ring)}.data-card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-on-dark);line-height:1.3}.data-card__fields{display:flex;flex-direction:column;gap:var(--space-2)}.data-card__field{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.data-card__field--full{flex-direction:column;align-items:flex-start;gap:var(--space-1)}.data-card__field-label{flex-shrink:0;font-size:var(--font-size-sm);color:var(--color-text-on-dark-muted)}.data-card__field-value{min-width:0;font-size:var(--font-size-sm);color:var(--color-text-on-dark);text-align:right}.data-card__field--full .data-card__field-value{text-align:left;width:100%}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--stat-min, 7rem)),1fr));gap:var(--space-3)}.stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-4) var(--space-3);text-align:center;background:var(--color-surface-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg)}.stat-card__icon{display:inline-flex;color:var(--brand);font-size:var(--font-size-lg);margin-bottom:var(--space-1)}.stat-card__value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-on-dark);line-height:1.1;font-variant-numeric:tabular-nums}.stat-card__label{font-size:var(--font-size-sm);color:var(--color-text-on-dark-muted)}.notification-bell-container{position:relative}.notification-bell-button{display:flex;align-items:center;justify-content:center;position:relative;background:none;border:none;border-radius:var(--radius-sm);color:inherit;cursor:pointer;padding:0;width:24px;height:24px;margin:0 var(--space-2);transition:opacity var(--transition-base)}.notification-bell-button:hover{opacity:.7}.notification-bell-button:focus-visible{outline:none;box-shadow:var(--focus-ring)}.notification-bell-icon{width:18px;height:18px}.notification-badge{position:absolute;top:-6px;right:-6px;display:flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 var(--space-1);background-color:var(--color-action-danger);color:var(--brand-contrast);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);line-height:1}.notification-dropdown{position:absolute;top:calc(100% + var(--space-2));right:0;width:360px;max-height:500px;background-color:var(--color-surface-elevated);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;z-index:1000}@media(max-width:768px){.notification-dropdown{width:min(360px,calc(100vw - var(--space-6)));max-height:70vh}}.notification-dropdown-header{padding:var(--space-4);border-bottom:1px solid var(--color-divider-on-dark);display:flex;justify-content:space-between;align-items:center}.notification-dropdown-header h3{margin:0;font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-on-dark)}.notification-list{flex:1;overflow-y:auto;display:flex;flex-direction:column}.notification-empty{display:flex;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4);color:var(--color-text-on-dark-muted);font-size:var(--font-size-sm)}.notification-item{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-divider-on-dark);display:flex;gap:var(--space-3);cursor:pointer;transition:background-color var(--transition-fast)}.notification-item:hover{background-color:var(--color-surface-hover)}.notification-item.unread{background-color:var(--brand-soft)}.notification-item.unread:before{content:"";display:inline-block;width:8px;height:8px;background-color:var(--brand);border-radius:50%;margin-top:6px;flex-shrink:0}.notification-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.notification-title{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-on-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-message{font-size:var(--font-size-sm);color:var(--color-text-on-dark-muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-default{margin:0}.notification-default h4{margin:0;font-size:inherit}.notification-default p{margin:var(--space-1) 0 0 0}.notification-time{font-size:var(--font-size-xs);color:var(--color-text-on-dark-subtle);margin-top:2px}.notification-list::-webkit-scrollbar{width:6px}.notification-list::-webkit-scrollbar-track{background:transparent}.notification-list::-webkit-scrollbar-thumb{background:var(--color-border-subtle);border-radius:var(--radius-sm)}.notification-list::-webkit-scrollbar-thumb:hover{background:var(--color-text-on-dark-subtle)}.notification-modal-error{margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-status-danger-bg);color:var(--color-on-danger-bg);font-size:var(--font-size-sm)}.navigation{position:relative;z-index:1000;background-color:var(--color-surface-panel);color:var(--color-text-on-dark);padding:max(.5rem,env(safe-area-inset-top,0px)) 2rem .5rem;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-sm);flex-shrink:0}.nav-brand{display:flex;align-items:center}.nav-logo{height:56px;width:auto}.nav-links{display:flex;list-style:none;margin:0;padding:0;gap:2rem;align-items:center}.nav-link{color:var(--color-text-on-dark);text-decoration:none;padding:.5rem 1rem;border-radius:var(--radius-sm);transition:background-color var(--transition-base)}.nav-link:hover,.nav-link.active{background-color:var(--brand-fill);color:var(--brand-contrast)}.nav-user-section{display:flex;align-items:center;gap:.75rem;margin-left:1rem;padding-left:1rem;border-left:1px solid var(--color-border-on-dark)}.nav-user-profile{display:flex;align-items:center;gap:0}.nav-username{color:var(--color-text-on-dark);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);text-decoration:none;padding:.25rem .5rem;border-radius:var(--radius-sm);transition:color var(--transition-base)}.nav-username:hover,.nav-username-active{color:var(--brand)}.nav-settings-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;width:30px;height:30px;border-radius:var(--radius-sm);border:1px solid var(--color-border-on-dark);color:var(--color-text-on-dark);text-decoration:none;transition:background-color var(--transition-base),border-color var(--transition-base),color var(--transition-base);overflow:hidden}.nav-settings-btn:hover,.nav-settings-btn-active{background-color:var(--brand-soft);border-color:var(--brand);color:var(--brand)}.nav-settings-label{display:none}.nav-settings-icon{display:block;flex-shrink:0}.nav-logout-btn{background:transparent;border:1px solid var(--color-border-on-dark);color:var(--color-text-on-dark);padding:.35rem .75rem;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);transition:background-color var(--transition-base),border-color var(--transition-base);font-family:inherit}.nav-logout-btn:hover{background-color:var(--color-action-danger);border-color:var(--color-action-danger);color:var(--color-white)}.nav-hamburger{display:none}.mobile-bell{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:var(--radius-pill);background:none;color:var(--color-text-on-dark);font-size:20px;cursor:pointer}.mobile-bell__badge{position:absolute;top:4px;right:2px;min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-pill);background:var(--color-action-danger);color:var(--brand-contrast);font-size:.625rem;line-height:16px;text-align:center}.mobile-appbar{position:fixed;inset:0 0 auto;z-index:1000;display:flex;align-items:center;gap:var(--space-3);height:calc(var(--appbar-height) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) var(--space-4) 0;background:var(--color-surface-panel);border-bottom:1px solid var(--color-border-default)}.mobile-appbar__back{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-left:calc(-1 * var(--space-3));border:none;background:none;color:var(--color-text-on-dark);font-size:22px;cursor:pointer}.mobile-appbar__logo{height:28px}.mobile-appbar__title{flex:1;overflow:hidden;font-size:1.125rem;font-weight:600;color:var(--color-text-on-dark);white-space:nowrap;text-overflow:ellipsis}.mobile-appbar__actions{display:flex;align-items:center;gap:var(--space-1)}.mobile-tabbar{position:fixed;inset:auto 0 0;z-index:1000;display:flex;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--color-surface-panel);border-top:1px solid var(--color-border-default)}.mobile-tabbar__tab{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;padding:0 2px;background:none;border:none;color:var(--color-text-on-dark-muted);font-size:.6875rem;text-decoration:none;cursor:pointer}.mobile-tabbar__label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:379px){.mobile-tabbar__tab{font-size:.625rem}}.mobile-tabbar__tab.active{color:var(--brand)}.mobile-tabbar__icon{width:22px;height:22px}.mobile-more{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.mobile-more__item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:48px;padding:var(--space-3) var(--space-4);border:none;border-radius:var(--radius-md);background:none;color:var(--color-text-on-dark);font-size:1rem;text-align:left;text-decoration:none;cursor:pointer}.mobile-more__item.active{color:var(--brand)}.mobile-more__item--danger{color:var(--color-action-danger)}.mobile-more__icon{width:20px;height:20px;flex-shrink:0}.app-shell--mobile .app-main{padding-top:calc(var(--appbar-height) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom,0px))}#root{height:100vh;height:100dvh;overflow:hidden}#root>div{height:100%;display:flex;flex-direction:column}.app-main{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.skip-to-content{position:absolute;left:var(--space-2);top:-3rem;z-index:3000;padding:var(--space-2) var(--space-4);background:var(--brand-fill);color:var(--brand-contrast);border-radius:var(--radius-md);text-decoration:none;transition:top var(--transition-fast)}.skip-to-content:focus{top:var(--space-2)}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);text-align:center;min-height:60vh;padding:var(--space-8) var(--space-4)}.error-boundary__title{margin:0;font-size:var(--font-size-heading);color:var(--color-text-on-dark)}.error-boundary__message{margin:0;max-width:40ch;color:var(--color-text-on-dark-muted)}.error-boundary__detail{margin:0;max-width:60ch;max-height:30vh;overflow:auto;padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-elevated);color:var(--color-text-on-dark-muted);font-size:var(--font-size-sm);text-align:left;white-space:pre-wrap;word-break:break-word}.error-boundary__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center}.achievement-badge{--badge-size: calc(var(--space-8) * 2.5);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:var(--badge-size);height:var(--badge-size);border-radius:var(--radius-pill);color:var(--level-color, var(--achievement-progress));background:color-mix(in srgb,var(--level-color, var(--achievement-progress)) 16%,transparent);border:1px solid color-mix(in srgb,var(--level-color, var(--achievement-progress)) 40%,transparent)}.achievement-badge--locked{color:var(--achievement-locked);background:var(--achievement-locked-track);border-color:color-mix(in srgb,var(--achievement-locked) 35%,transparent)}.achievement-badge__icon{width:55%;height:55%}.achievement-unlock{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3);animation:achievementPopIn var(--transition-base) ease both}.achievement-unlock--level-1{--level-color: var(--achievement-level-1)}.achievement-unlock--level-2{--level-color: var(--achievement-level-2)}.achievement-unlock--level-3{--level-color: var(--achievement-level-3)}.achievement-unlock--level-4{--level-color: var(--achievement-level-4)}.achievement-unlock--level-5{--level-color: var(--achievement-level-5)}.achievement-unlock--level-6{--level-color: var(--achievement-level-6)}.achievement-unlock--level-7{--level-color: var(--achievement-level-7)}.achievement-unlock--level-8{--level-color: var(--achievement-level-8)}.achievement-unlock--level-9{--level-color: var(--achievement-level-9)}.achievement-unlock--level-10{--level-color: var(--achievement-level-10)}.achievement-unlock__emblem{position:relative;display:inline-flex;align-items:center;justify-content:center;margin:var(--space-2) 0}.achievement-unlock__emblem .achievement-badge{--badge-size: calc(var(--space-8) * 3.5);position:relative;z-index:1;animation:achievementBadgePop var(--transition-base) ease both}.achievement-unlock__burst{position:absolute;inset:0;z-index:0;border-radius:var(--radius-pill);background:radial-gradient(circle,color-mix(in srgb,var(--level-color, var(--achievement-progress)) 55%,transparent) 0%,transparent 70%);animation:achievementBurst .9s ease-out both}.achievement-unlock__emblem:after{content:"";position:absolute;inset:calc(var(--space-2) * -1);z-index:0;border-radius:var(--radius-pill);box-shadow:0 0 var(--space-6) color-mix(in srgb,var(--level-color, var(--achievement-progress)) 45%,transparent);animation:achievementGlowPulse 2.4s ease-in-out infinite}.achievement-unlock__scope-flag{position:absolute;bottom:var(--space-2);right:var(--space-2);z-index:2;width:2rem;height:1.4rem;border-radius:var(--radius-sm);object-fit:cover;box-shadow:var(--shadow-md)}.achievement-unlock__tier{padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--level-color, var(--achievement-progress));background:color-mix(in srgb,var(--level-color, var(--achievement-progress)) 16%,transparent)}.achievement-unlock__name{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-on-dark)}.achievement-unlock__scope{font-weight:var(--font-weight-normal);color:var(--color-text-on-dark-muted)}.achievement-unlock__threshold{margin-top:var(--space-2);font-size:var(--font-size-display);font-weight:var(--font-weight-bold);line-height:1;color:var(--level-color, var(--achievement-progress));font-variant-numeric:tabular-nums}.achievement-unlock__description{margin:0;font-size:var(--font-size-sm);line-height:1.4;color:var(--color-text-on-dark-muted)}.achievement-unlock__nav{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-4)}.achievement-unlock__counter{min-width:4rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-on-dark-muted);font-variant-numeric:tabular-nums}@keyframes achievementPopIn{0%{opacity:0;transform:translateY(var(--space-2)) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes achievementBadgePop{0%{opacity:0;transform:scale(.4) rotate(-12deg)}60%{opacity:1;transform:scale(1.12) rotate(4deg)}to{transform:scale(1) rotate(0)}}@keyframes achievementBurst{0%{opacity:.8;transform:scale(.5)}to{opacity:0;transform:scale(1.9)}}@keyframes achievementGlowPulse{0%,to{opacity:.5}50%{opacity:1}}
