:root{--tg-bg: #ffffff;--tg-text: #000000;--tg-hint: #707579;--tg-link: #168acd;--tg-button: #40a7e3;--tg-button-text: #ffffff;--tg-secondary-bg: #f4f4f5;--tg-section-bg: #ffffff;--tg-section-header: #6d6d72;--tg-subtitle: #8e8e93;--tg-accent: #168acd;--tg-destructive: #ff3b30;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px}:root[data-color-scheme=dark]{--tg-bg: #17212b;--tg-text: #ffffff;--tg-hint: #aaaaaa;--tg-secondary-bg: #232e3c;--tg-section-bg: #17212b}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--tg-secondary-bg);color:var(--tg-text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased}a{color:var(--tg-link);text-decoration:none}button{font:inherit;color:inherit;background:transparent;border:0;padding:0;cursor:pointer}.page{min-height:100%;padding:var(--space-4) var(--space-4) calc(env(safe-area-inset-bottom) + var(--space-6))}.section-header{text-transform:uppercase;font-size:12px;letter-spacing:.04em;color:var(--tg-section-header);padding:var(--space-4) var(--space-2) var(--space-2)}.card{background:var(--tg-section-bg);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2)}.card-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid color-mix(in srgb,var(--tg-hint) 18%,transparent)}.card-row:first-child{border-top:0}.muted{color:var(--tg-hint)}.subtitle{color:var(--tg-subtitle);font-size:13px}.score-chip{font-weight:600;font-variant-numeric:tabular-nums;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--tg-button) 14%,transparent);color:var(--tg-text);font-size:14px;white-space:nowrap}.grade-A{background:color-mix(in srgb,#34c759 22%,transparent)}.grade-B{background:color-mix(in srgb,#5ac8fa 22%,transparent)}.grade-C{background:color-mix(in srgb,#ffcc00 28%,transparent)}.grade-D{background:color-mix(in srgb,#ff9500 28%,transparent)}.grade-F{background:color-mix(in srgb,var(--tg-destructive) 24%,transparent)}.list-link{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-3) 0;border-top:1px solid color-mix(in srgb,var(--tg-hint) 14%,transparent);color:inherit}.list-link:first-child{border-top:0}.list-link-top{display:flex;justify-content:space-between;gap:var(--space-3);align-items:baseline}.list-link-area{font-weight:600;font-size:15px}.list-link-meta{color:var(--tg-hint);font-size:13px;display:flex;gap:var(--space-2);align-items:center}.aspect-row{display:grid;grid-template-columns:1fr auto;gap:var(--space-2);padding:var(--space-3) 0;border-top:1px solid color-mix(in srgb,var(--tg-hint) 14%,transparent)}.aspect-row:first-child{border-top:0}.aspect-name{font-weight:600}.aspect-points{font-variant-numeric:tabular-nums;color:var(--tg-hint);white-space:nowrap}.aspect-notes{grid-column:1 / -1;color:var(--tg-subtitle);font-size:14px;line-height:1.45;white-space:pre-wrap}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--space-2);margin-top:var(--space-3)}.photo-grid img{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:var(--radius-sm);background:var(--tg-secondary-bg)}.photo-viewer{position:fixed;inset:0;background:#000000eb;display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--space-3)}.photo-viewer img{max-width:100%;max-height:100%;object-fit:contain}.center-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-6) var(--space-4);color:var(--tg-hint);gap:var(--space-3)}.spinner{width:28px;height:28px;border:3px solid color-mix(in srgb,var(--tg-hint) 30%,transparent);border-top-color:var(--tg-button);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.unread-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--tg-button);margin-right:8px;vertical-align:middle;flex-shrink:0}.unread-badge{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--tg-button);background:color-mix(in srgb,var(--tg-button) 14%,transparent);padding:2px 6px;border-radius:4px}.list-link.is-unread .list-link-area{font-weight:700}.detail-screen{min-height:100%;display:flex;flex-direction:column;background:var(--tg-secondary-bg)}.detail-header{padding:var(--space-4) var(--space-4) var(--space-3);background:var(--tg-bg)}.detail-area{margin:0 0 var(--space-1);font-size:22px;font-weight:700;letter-spacing:-.01em}.detail-meta{color:var(--tg-subtitle);font-size:13px}.detail-body{flex:1;padding:var(--space-4) var(--space-4) calc(env(safe-area-inset-bottom) + var(--space-6))}.tab-bar{position:sticky;top:0;z-index:10;display:flex;gap:var(--space-1);padding:var(--space-2) var(--space-3);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;background:color-mix(in srgb,var(--tg-bg) 92%,transparent);backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid color-mix(in srgb,var(--tg-hint) 14%,transparent);scroll-snap-type:x proximity}.tab-bar::-webkit-scrollbar{display:none}.tab-bar-item{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;flex-shrink:0;font-size:13px;font-weight:600;color:var(--tg-hint);background:transparent;transition:background-color .15s ease,color .15s ease,transform .15s ease;scroll-snap-align:center;white-space:nowrap}.tab-bar-item:hover,.tab-bar-item:focus-visible{background:color-mix(in srgb,var(--tg-button) 8%,transparent)}.tab-bar-item.is-active{color:var(--tg-button-text);background:var(--tg-button)}.tab-bar-item.is-active .tab-bar-status{filter:grayscale(.2) brightness(1.1)}.tab-bar-icon{font-size:14px}.tab-bar-label{font-variant-numeric:tabular-nums}.tab-bar-status{font-size:11px;opacity:.85}.overview-tab{display:flex;flex-direction:column}.grade-hero{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-6) var(--space-4);border-radius:var(--radius-lg);background:var(--tg-section-bg);margin-bottom:var(--space-2);overflow:hidden}.grade-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(120% 80% at 50% 0%,color-mix(in srgb,var(--row-tint, var(--tg-button)) 22%,transparent),transparent 60%);pointer-events:none}.grade-hero-A{--row-tint: #34c759}.grade-hero-B{--row-tint: #5ac8fa}.grade-hero-C{--row-tint: #ffcc00}.grade-hero-D{--row-tint: #ff9500}.grade-hero-F{--row-tint: var(--tg-destructive)}.grade-hero-score{font-size:56px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.03em;position:relative;z-index:1}.grade-hero-denominator{font-size:18px;font-weight:500;color:var(--tg-hint);margin-left:4px}.grade-hero-letter{display:inline-flex;align-items:center;gap:6px;margin-top:var(--space-2);font-size:18px;font-weight:700;position:relative;z-index:1}.grade-hero-notes{margin:var(--space-4) 0 0;color:var(--tg-text);font-size:15px;line-height:1.5;max-width:38ch;position:relative;z-index:1}.top-issue-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;width:100%;text-align:left;border-top:1px solid color-mix(in srgb,var(--tg-hint) 14%,transparent);color:inherit}.top-issue-row:first-child{border-top:0}.top-issue-row:active{background:color-mix(in srgb,var(--tg-hint) 8%,transparent)}.top-issue-icon{font-size:22px;width:28px;text-align:center;flex-shrink:0}.top-issue-body{flex:1;min-width:0}.top-issue-name{font-weight:600;font-size:14px}.top-issue-detail{color:var(--tg-subtitle);font-size:13px;line-height:1.4;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.top-issue-status{font-variant-numeric:tabular-nums;font-weight:700;font-size:13px;padding:4px 8px;border-radius:999px;white-space:nowrap}.aspect-tab{display:flex;flex-direction:column;gap:var(--space-4)}.aspect-tab-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--tg-section-bg);border-radius:var(--radius-md)}.aspect-tab-icon{font-size:32px}.aspect-tab-title h2{margin:0 0 4px;font-size:17px;font-weight:700}.aspect-tab-score{display:inline-flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums;font-weight:700;font-size:14px;padding:3px 8px;border-radius:999px}.aspect-tab-section{padding:var(--space-4);background:var(--tg-section-bg);border-radius:var(--radius-md)}.aspect-tab-section-title{margin:0 0 var(--space-2);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--tg-section-header);font-weight:700}.aspect-tab-text{margin:0;line-height:1.55;white-space:pre-wrap}.aspect-tab-list{margin:0;padding-left:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.aspect-tab-list li{line-height:1.45}.aspect-tab-issues li::marker{color:var(--tg-destructive)}.aspect-tab-recommendations li::marker{color:#34c759}.aspect-tab-empty{padding:var(--space-4);border-radius:var(--radius-md);background:var(--tg-section-bg);color:var(--tg-subtitle);font-size:13px;text-align:center}.status-good{background:color-mix(in srgb,#34c759 18%,transparent);color:color-mix(in srgb,#34c759 65%,var(--tg-text))}.status-mid{background:color-mix(in srgb,#ffcc00 24%,transparent);color:color-mix(in srgb,#ffcc00 50%,var(--tg-text))}.status-bad{background:color-mix(in srgb,var(--tg-destructive) 20%,transparent);color:color-mix(in srgb,var(--tg-destructive) 70%,var(--tg-text))}.sev-chip,.risk-badge{font-size:11px;font-weight:700;letter-spacing:.02em;padding:3px 8px;border-radius:999px;white-space:nowrap;flex-shrink:0}.sev-low{background:color-mix(in srgb,var(--tg-hint) 22%,transparent);color:var(--tg-text)}.sev-medium{background:color-mix(in srgb,#ffcc00 30%,transparent);color:var(--tg-text)}.sev-high{background:color-mix(in srgb,#ff9500 30%,transparent);color:var(--tg-text)}.sev-critical{background:color-mix(in srgb,var(--tg-destructive) 26%,transparent);color:var(--tg-text)}.risk-badge{text-transform:uppercase}.risk-low{background:color-mix(in srgb,var(--tg-hint) 22%,transparent);color:var(--tg-text)}.risk-medium{background:color-mix(in srgb,#ffcc00 30%,transparent);color:var(--tg-text)}.risk-high{background:color-mix(in srgb,#ff9500 32%,transparent);color:var(--tg-text)}.risk-critical{background:color-mix(in srgb,var(--tg-destructive) 28%,transparent);color:var(--tg-text)}.grade-hero-risk{margin-top:var(--space-3)}.finding-list{display:flex;flex-direction:column;gap:var(--space-3)}.finding-row{display:flex;gap:var(--space-3);align-items:flex-start}.finding-body{flex:1;min-width:0}.finding-title{font-weight:600;font-size:15px}.finding-detail{color:var(--tg-subtitle);font-size:14px;line-height:1.45;margin-top:2px}.aspect-tab-notice{background:color-mix(in srgb,var(--tg-hint) 12%,transparent);color:var(--tg-subtitle);font-size:13px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-3)}.list-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-2) var(--space-2)}.insights-link{font-size:13px;font-weight:600;color:var(--tg-link);background:color-mix(in srgb,var(--tg-button) 12%,transparent);padding:6px 12px;border-radius:999px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);margin-bottom:var(--space-2)}.stat-card{background:var(--tg-section-bg);border-radius:var(--radius-md);padding:var(--space-3);text-align:center;display:flex;flex-direction:column;gap:var(--space-1);justify-content:center}.stat-value{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.stat-value-sm{font-size:17px;display:flex;align-items:center;justify-content:center;gap:4px}.stat-unit{font-size:12px;color:var(--tg-hint);margin-left:1px}.stat-sep{color:var(--tg-hint);margin:0 2px}.stat-value-chip{min-height:28px;display:flex;align-items:center;justify-content:center}.stat-label{font-size:11px;color:var(--tg-subtitle);text-transform:uppercase;letter-spacing:.03em}.sev-dot{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle}.sparkline{width:100%;height:64px;display:block;overflow:visible}.sparkline-line{fill:none;stroke:var(--tg-button);stroke-width:2.5;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.sparkline-axis{display:flex;justify-content:space-between;color:var(--tg-hint);font-size:12px;font-variant-numeric:tabular-nums;margin-top:var(--space-2)}.bar-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;border-top:1px solid color-mix(in srgb,var(--tg-hint) 14%,transparent)}.bar-row:first-child{border-top:0}.bar-row-label{font-size:14px;font-weight:500}.bar-row-pct{grid-column:2;grid-row:1 / span 2;font-variant-numeric:tabular-nums;color:var(--tg-hint);font-size:13px}.bar-track{grid-column:1;height:8px;border-radius:999px;background:color-mix(in srgb,var(--tg-hint) 16%,transparent);overflow:hidden}.bar-fill{height:100%;border-radius:999px}.bar-good{background:#34c759}.bar-mid{background:#ff9500}.bar-bad{background:var(--tg-destructive)}.leaderboard-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid color-mix(in srgb,var(--tg-hint) 14%,transparent)}.leaderboard-row:first-child{border-top:0}.leaderboard-name{flex:1;font-weight:500;min-width:0}.leaderboard-count{font-variant-numeric:tabular-nums;font-weight:700;color:var(--tg-hint)}.loc-filter{display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none;padding:0 var(--space-2) var(--space-3)}.loc-filter::-webkit-scrollbar{display:none}.loc-chip{flex-shrink:0;font-size:13px;font-weight:600;padding:6px 14px;border-radius:999px;background:var(--tg-section-bg);color:var(--tg-text);white-space:nowrap;border:1px solid color-mix(in srgb,var(--tg-hint) 18%,transparent)}.loc-chip.is-active{background:var(--tg-button);color:var(--tg-button-text);border-color:transparent}.loc-tag{font-weight:600;color:var(--tg-accent)}.toolbar-links{display:flex;gap:var(--space-2)}.lb-toggle{display:flex;gap:var(--space-2);padding:0 var(--space-2) var(--space-3)}.lb-toggle-btn{flex:1;font-size:14px;font-weight:600;padding:8px 14px;border-radius:999px;background:var(--tg-section-bg);color:var(--tg-text);border:1px solid color-mix(in srgb,var(--tg-hint) 18%,transparent)}.lb-toggle-btn.is-active{background:var(--tg-button);color:var(--tg-button-text);border-color:transparent}.lb-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--tg-section-bg);border-radius:var(--radius-md)}.lb-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.lb-table th,.lb-table td{padding:var(--space-2);white-space:nowrap;text-align:right}.lb-table thead th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--tg-section-header);border-bottom:1px solid color-mix(in srgb,var(--tg-hint) 18%,transparent)}.lb-rank-h,.lb-rank{width:22px;text-align:center;color:var(--tg-hint);font-size:12px}.lb-name-h{text-align:left}.lb-name{text-align:left;max-width:150px;overflow:hidden;text-overflow:ellipsis}.lb-name-text{font-weight:500}.lb-num{text-align:right}.lb-sort-btn{font:inherit;color:inherit;display:inline-flex;align-items:center;gap:3px}.lb-caret{font-size:9px;color:var(--tg-accent)}.lb-table tbody tr{border-top:1px solid color-mix(in srgb,var(--tg-hint) 12%,transparent)}.lb-table tbody tr:first-child{border-top:0}.lb-row-nodata{opacity:.55}.lb-nodata-tag{display:inline-block;margin-left:var(--space-2);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--tg-subtitle)}.lb-score{font-weight:700}.lb-score-good{color:#34c759}.lb-score-mid{color:#ff9500}.lb-score-bad{color:var(--tg-destructive)}.lb-risk{font-weight:700;color:var(--tg-destructive)}.add-location{padding:0 var(--space-2) var(--space-3)}.add-location-open{font-size:13px;font-weight:600;color:var(--tg-link);background:color-mix(in srgb,var(--tg-button) 12%,transparent);padding:7px 14px;border-radius:999px}.add-location-form{display:flex;gap:var(--space-2);align-items:center}.add-location-input{flex:1;min-width:0;font:inherit;padding:8px 12px;border-radius:var(--radius-sm);background:var(--tg-section-bg);color:var(--tg-text);border:1px solid color-mix(in srgb,var(--tg-hint) 22%,transparent)}.add-location-input::placeholder{color:var(--tg-hint)}.add-location-input:disabled{opacity:.6}.add-location-go{font-size:14px;font-weight:600;padding:8px 14px;border-radius:var(--radius-sm);background:var(--tg-button);color:var(--tg-button-text)}.add-location-go:disabled{opacity:.5}.add-location-cancel{font-size:14px;color:var(--tg-hint);padding:8px 6px}.add-location-msg{font-size:13px;margin-top:var(--space-2)}.add-location-ok{color:#34c759}.add-location-err{color:var(--tg-destructive)}
