:root{--color-accent: #ff5722;--color-accent-light: rgba(255, 87, 34, .08);--color-accent-hover: #ff4500;--color-chart-line: #2563eb;--color-chart-fill: rgba(37, 99, 235, .08);--color-chart-grid: #e5e7eb;--color-chart-bar: #6366f1;--color-chart-bar-high: #ff5722;--color-green: #16a34a;--color-green-light: #ecfdf5;--color-amber: #d97706;--color-amber-light: #fffbeb;--color-red: #dc2626;--color-red-light: #fef2f2;--color-bg-root: #fafafa;--color-bg-primary: #ffffff;--color-bg-secondary: #f5f5f5;--color-bg-tertiary: #eeeeee;--color-bg-glass: rgba(255, 255, 255, .9);--color-text-primary: #111111;--color-text-secondary: #555555;--color-text-muted: #999999;--color-border: #e0e0e0;--color-border-light: #eeeeee;--font-display: "Space Grotesk", "Noto Sans JP", system-ui, sans-serif;--font-body: "Noto Sans JP", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Menlo", monospace;--text-xs: 10px;--text-sm: 12px;--text-base: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 32px;--text-hero: 56px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-glow-accent: 0 0 20px rgba(255, 87, 34, .1);--color-map-bg: #e8ecf0;--color-map-stroke: #e8ecf0;--color-map-empty: #cbd5e1;--color-map-green: #16a34a;--color-map-amber: #d97706;--color-map-red: #dc2626;--color-map-selected: #6366f1;--color-map-hover: #4f46e5;--transition-fast: .15s ease;--transition-normal: .25s ease;--header-height: 56px;--sidebar-width: 280px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text-primary);background-color:var(--color-bg-root);background-image:radial-gradient(circle,#d0d0d0 1px,transparent 1px);background-size:24px 24px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}[data-theme=dark]{--color-accent: #ff6d3f;--color-accent-light: rgba(255, 109, 63, .12);--color-accent-hover: #ff5722;--color-chart-line: #60a5fa;--color-chart-fill: rgba(96, 165, 250, .1);--color-chart-grid: #2d3748;--color-chart-bar: #818cf8;--color-chart-bar-high: #ff6d3f;--color-green: #4caf50;--color-green-light: rgba(76, 175, 80, .15);--color-amber: #ffb74d;--color-amber-light: rgba(255, 183, 77, .12);--color-red: #ef5350;--color-red-light: rgba(239, 83, 80, .12);--color-bg-root: #111214;--color-bg-primary: #1a1b1e;--color-bg-secondary: #25262b;--color-bg-tertiary: #2c2e33;--color-bg-glass: rgba(26, 27, 30, .9);--color-text-primary: #e2e8f0;--color-text-secondary: #a0aec0;--color-text-muted: #718096;--color-border: #2d3748;--color-border-light: #374151;--color-map-bg: #1a1f2e;--color-map-stroke: #1a1f2e;--color-map-empty: #2d3748;--color-map-green: #166534;--color-map-amber: #92400e;--color-map-red: #7f1d1d;--color-map-selected: #6366f1;--color-map-hover: #4f46e5;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5)}[data-theme=dark] body{background-image:radial-gradient(circle,#2d3748 1px,transparent 1px)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#ffffff1a}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#fff3}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.app-root{min-height:100vh;color:var(--color-text-primary)}.app-header{height:var(--header-height);display:flex;align-items:center;padding:0 var(--space-5);background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:50}.header-inner{width:100%;max-width:1440px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.header-left{display:flex;align-items:center;gap:var(--space-4)}.header-brand{font-family:var(--font-mono);font-weight:800;font-size:var(--text-xl);letter-spacing:2px;color:var(--color-text-primary)}.header-tag{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;background:var(--color-accent);color:#fff;padding:2px 8px;letter-spacing:.5px}.header-right{display:flex;align-items:center;gap:var(--space-3)}.header-live{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.live-dot{width:6px;height:6px;border-radius:50%;background:var(--color-green);box-shadow:0 0 8px var(--color-green);animation:pulse 2s infinite}.header-nav-link{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary);text-decoration:none;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;background:transparent}.header-nav-link:hover{color:var(--color-text-primary);border-color:var(--color-text-muted)}.theme-toggle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.theme-toggle:hover{color:var(--color-text-primary);border-color:var(--color-text-muted)}.mobile-menu-wrapper{display:none}.mobile-menu-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-fast)}.mobile-menu-btn:hover{border-color:var(--color-text-muted);color:var(--color-text-primary)}.mobile-panel-overlay{position:fixed;inset:0;background:#0009;z-index:100;display:flex;flex-direction:column;justify-content:flex-end}.mobile-panel-content{background:var(--color-bg-primary);border-top:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-4);max-height:75vh;overflow-y:auto;animation:slideUp .3s ease}.mobile-panel-tabs{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.mobile-panel-tab-group{display:flex;background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:3px;gap:2px}.mobile-panel-tab{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;padding:6px 14px;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all var(--transition-fast);background:transparent;color:var(--color-text-muted)}.mobile-panel-tab--active{background:var(--color-accent);color:#fff}.mobile-panel-close{background:transparent;border:none;color:var(--color-text-muted);font-size:20px;cursor:pointer;padding:var(--space-1);line-height:1}.main-grid{max-width:1440px;margin:0 auto;padding:var(--space-5);display:grid;grid-template-columns:var(--sidebar-width) 1fr var(--sidebar-width);gap:var(--space-4);align-items:start}.sidebar{position:sticky;top:calc(var(--header-height) + var(--space-4));max-height:calc(100vh - var(--header-height) - var(--space-8));overflow:hidden;display:flex;flex-direction:column}.map-center{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.map-wrapper{position:relative;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border);min-height:480px;background:var(--color-bg-primary)}.map-hint{text-align:center;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:.5px}.map-empty-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:var(--text-base)}.search-desktop{display:block}.search-mobile{display:none}.favorites-wrapper{border-bottom:1px solid var(--color-border)}@media(max-width:1100px){.main-grid{grid-template-columns:1fr 1fr}.sidebar-left{order:2}.sidebar-right{order:3}.map-center{order:1;grid-column:1 / -1}.sidebar{position:static;max-height:400px}}@media(max-width:700px){.main-grid{grid-template-columns:1fr;padding:0;gap:0}.sidebar-left,.sidebar-right{display:none!important}.map-center{grid-column:auto;gap:0}.app-header{height:48px;padding:0 var(--space-3)}.header-brand{font-size:var(--text-md)}.header-tag{display:none}.header-live{display:none!important}.mobile-menu-wrapper{display:block}.favorites-wrapper{display:none}.search-desktop{display:none!important}.search-mobile{display:block!important;position:absolute;top:var(--space-3);left:var(--space-3);right:var(--space-3);z-index:12}.map-wrapper{min-height:calc(100dvh - 48px)!important;border-radius:0!important;border:none!important}.map-hint{display:none!important}}.detail-root{min-height:100vh;display:flex;flex-direction:column}.detail-header{display:flex;align-items:center;gap:var(--space-3);height:var(--header-height);padding:0 var(--space-5);background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.detail-back-btn{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.detail-back-btn:hover{color:var(--color-text-primary);border-color:var(--color-text-muted)}.detail-store-name{flex:1;font-family:var(--font-display);font-size:var(--text-md);font-weight:700;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-.3px}.detail-fav-btn{background:transparent;border:none;font-size:20px;cursor:pointer;padding:var(--space-1);flex-shrink:0;transition:transform var(--transition-fast)}.detail-fav-btn:hover{transform:scale(1.15)}.detail-body{max-width:960px;width:100%;margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-12);display:flex;flex-direction:column;gap:var(--space-6)}.current-hero{display:flex;align-items:flex-end;gap:var(--space-6);padding:var(--space-8);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);position:relative;overflow:hidden}.current-hero:before{content:"";position:absolute;top:0;left:0;right:0;height:3px}.current-hero--green:before{background:var(--color-green)}.current-hero--amber:before{background:var(--color-amber)}.current-hero--red:before{background:var(--color-red)}.current-count{font-family:var(--font-mono);font-size:var(--text-hero);font-weight:800;line-height:1;letter-spacing:-3px}.current-meta{display:flex;flex-direction:column;gap:var(--space-1);padding-bottom:8px}.current-label{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--color-text-secondary)}.current-time{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.current-compare{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:4px;display:flex;align-items:center;gap:6px}.current-compare strong{color:var(--color-text-primary);font-weight:700}.current-diff{display:inline-flex;align-items:center;padding:1px 6px;border-radius:var(--radius-sm);font-weight:700;font-size:11px}.current-diff--up{background:color-mix(in srgb,var(--color-red) 15%,transparent);color:var(--color-red)}.current-diff--down{background:color-mix(in srgb,var(--color-green) 15%,transparent);color:var(--color-green)}.current-diff--flat{background:var(--color-bg-secondary);color:var(--color-text-muted)}.range-bar{display:flex;background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:3px;gap:2px;width:fit-content}.range-btn{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;padding:8px 18px;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all var(--transition-fast);background:transparent;color:var(--color-text-muted)}.range-btn:hover{color:var(--color-text-primary)}.range-btn--active{background:var(--color-bg-primary);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}.detail-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.detail-card-header{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;color:var(--color-text-muted);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);letter-spacing:.5px;text-transform:uppercase}.detail-card-body{padding:var(--space-5)}.panel{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);flex-shrink:0}.panel-title{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;color:var(--color-text-secondary);letter-spacing:.5px}.panel-subtitle{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.panel-list{overflow-y:auto;flex:1}.panel-row{display:flex;align-items:center;gap:var(--space-2);padding:8px var(--space-4);border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.panel-row:hover{background:var(--color-bg-secondary)}.panel-rank{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;width:24px;text-align:center;flex-shrink:0;color:var(--color-text-muted)}.panel-rank--gold{color:var(--color-accent)}.panel-rank--silver{color:var(--color-text-secondary)}.panel-rank--bronze{color:#cd7f32}.panel-name-btn{flex:1;background:transparent;border:none;text-align:left;cursor:pointer;padding:0;min-width:0}.panel-store-name{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-store-pref{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);margin-top:1px}.panel-count{font-family:var(--font-mono);font-size:var(--text-base);font-weight:700;flex-shrink:0}.panel-count-unit{font-size:var(--text-xs);font-weight:400;margin-left:1px}.panel-save-btn{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:2px 6px;cursor:pointer;flex-shrink:0;transition:all var(--transition-fast);color:var(--color-text-muted)}.panel-save-btn--active{border-color:var(--color-accent);color:var(--color-accent)}.panel-save-btn:hover{border-color:var(--color-accent)}.panel-empty{padding:var(--space-8);text-align:center;color:var(--color-text-muted);font-size:var(--text-sm)}.panel-tabs{display:flex;background:var(--color-bg-secondary);border-radius:var(--radius-sm);padding:2px;gap:2px}.panel-tab{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);background:transparent;border:none;border-radius:3px;padding:4px 10px;cursor:pointer;transition:all var(--transition-fast)}.panel-tab--active{background:var(--color-accent);color:#fff}.pref-bar-track{height:3px;background:var(--color-bg-tertiary);border-radius:2px;overflow:hidden;margin:4px 0}.pref-bar-fill{height:100%;border-radius:2px;transition:width .3s ease}.pref-meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.pref-row--selected{background:var(--color-accent-light)!important;border-left:2px solid var(--color-accent)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.stat-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4) var(--space-3);text-align:center;background:var(--color-bg-secondary)}.stat-value{font-family:var(--font-mono);font-size:var(--text-2xl);font-weight:700;line-height:1.2}.stat-label{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1);letter-spacing:.5px}.stats-empty{padding:var(--space-8);text-align:center;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted)}.stats-chart-section{display:flex;flex-direction:column;gap:var(--space-2)}.stats-chart-title{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);margin:0}.search-container{position:relative;width:100%}.search-input-wrap{display:flex;align-items:center;background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 var(--space-3);gap:var(--space-2);transition:border-color var(--transition-fast)}.search-input-wrap:focus-within{border-color:var(--color-accent)}.search-icon{font-size:var(--text-base);flex-shrink:0;opacity:.5}.search-input{flex:1;background:transparent;border:none;outline:none;color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--text-sm);padding:10px 0}.search-input::placeholder{color:var(--color-text-muted)}.search-clear{background:transparent;border:none;color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;padding:var(--space-1);flex-shrink:0}.search-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);z-index:200;overflow:hidden;box-shadow:var(--shadow-lg);max-height:360px;overflow-y:auto}.search-section-label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;color:var(--color-text-muted);letter-spacing:1px;text-transform:uppercase;padding:var(--space-2) var(--space-3) var(--space-1)}.search-item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:transparent;border:none;border-top:1px solid var(--color-border);cursor:pointer;text-align:left;color:inherit;transition:background var(--transition-fast)}.search-item:hover{background:var(--color-bg-secondary)}.search-item-icon{font-size:var(--text-base);flex-shrink:0}.search-item-info{flex:1;min-width:0}.search-item-name{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-item-meta{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.search-item-count{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:700;flex-shrink:0}.fav-bar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--color-bg-primary)}.fav-label{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700;color:var(--color-text-muted);letter-spacing:1px;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.fav-scroll{display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none}.fav-scroll::-webkit-scrollbar{display:none}.fav-card{position:relative;flex-shrink:0;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.fav-card-inner{display:flex;flex-direction:column;align-items:center;padding:8px 14px 6px;background:transparent;border:none;cursor:pointer;min-width:72px;color:inherit}.fav-count{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:700;line-height:1}.fav-count-label{font-family:var(--font-mono);font-size:9px;color:var(--color-text-muted);margin-top:1px}.fav-name{font-size:var(--text-xs);color:var(--color-text-secondary);margin-top:3px;max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fav-star{position:absolute;top:3px;right:3px;background:transparent;border:none;color:var(--color-accent);font-size:10px;cursor:pointer;padding:1px;line-height:1}.pref-panel-backdrop{position:fixed;inset:0;background:#00000080;z-index:100}.pref-panel{position:fixed;top:0;right:0;bottom:0;width:min(380px,100vw);background:var(--color-bg-primary);border-left:1px solid var(--color-border);z-index:101;display:flex;flex-direction:column;overflow:hidden}.pref-panel-header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-6) var(--space-5) var(--space-4);border-bottom:1px solid var(--color-border)}.pref-panel-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--color-text-primary);letter-spacing:-.3px}.pref-panel-subtitle{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted);margin-top:2px}.pref-panel-close{background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--text-base);cursor:pointer;border-radius:var(--radius-md);width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.pref-panel-close:hover{border-color:var(--color-text-muted);color:var(--color-text-primary)}.pref-panel-list{overflow-y:auto;flex:1}.pref-panel-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.pref-panel-row:hover{background:var(--color-bg-secondary)}.pref-panel-row-btn{flex:1;background:transparent;border:none;text-align:left;cursor:pointer;padding:0;color:inherit}.pref-panel-store-name{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary)}.pref-panel-time{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted);margin-top:1px}.pref-panel-badge{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;border-radius:var(--radius-sm);padding:2px 8px;flex-shrink:0}.history-calendar{display:flex;flex-direction:column;gap:var(--space-6)}.cal-month{display:flex;flex-direction:column;gap:var(--space-2)}.cal-month-header{display:flex;justify-content:space-between;align-items:baseline;padding:0 var(--space-1);margin-bottom:var(--space-1)}.cal-month-title{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--color-text-primary)}.cal-month-count{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;color:var(--color-accent)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-day-label{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted);text-align:center;padding:var(--space-1) 0}.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);border-radius:var(--radius-sm);position:relative}.cal-cell--empty{background:transparent}.cal-cell--visited{background:var(--color-accent);color:#fff;font-weight:700}.cal-cell--today{outline:2px solid var(--color-accent);outline-offset:-2px}.cal-cell--today.cal-cell--visited{outline-color:var(--color-text-primary)}.chart-container{width:100%}.chart-empty,.chart-loading{padding:var(--space-10);text-align:center;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted)}@media(max-width:600px){.stats-grid{grid-template-columns:repeat(2,1fr)}.current-hero{flex-direction:column;align-items:flex-start;padding:var(--space-6)}.detail-body{padding:var(--space-4) var(--space-3) var(--space-8)}}.status-banner{padding:14px 16px;border:1px solid var(--color-border);border-left:3px solid var(--color-amber);border-radius:6px;font-size:13px;line-height:1.7}.date-nav,.owner-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.date-nav input,.date-nav button,.owner-actions button{font:inherit;color:var(--color-text-primary);background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:5px;padding:8px 10px}.date-nav button,.owner-actions button{cursor:pointer}.date-nav button:disabled,.owner-actions button:disabled{opacity:.45;cursor:default}.chart-note{font-size:13px;line-height:1.7;color:var(--color-text-secondary)}
