:root{--bg:#f5f5f7;--surface:#fff;--surface-muted:#f7f8fa;--surface-translucent:#ffffffb8;--track:#f1f2f5;--border:#00000014;--border-strong:#0000001f;--text:#1d1d1f;--text-muted:#6e6e73;--text-faint:#9a9a9e;--accent:#0071e3;--accent-strong:#0058b0;--accent-soft:#e8f2ff;--series-created:#0071e3;--series-edited:#c9720b;--success:#16a34a;--danger:#dc2626;--heat-0:var(--track);--heat-1:#cde2fb;--heat-2:#6da7ec;--heat-3:#2a78d6;--heat-4:#184f95;--shadow-sm:0 1px 2px #0000000a, 0 1px 1px #00000008;--shadow-md:0 12px 32px #00000014, 0 2px 8px #0000000a;--radius:18px;--radius-sm:12px;--sans:-apple-system, BlinkMacSystemFont, "SF Pro Display", "Pretendard", system-ui, "Segoe UI", Roboto, sans-serif;font:400 16px/1.5 var(--sans);font-optical-sizing:auto;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--bg:#000;--surface:#1c1c1e;--surface-muted:#232326;--surface-translucent:#1c1c1eb8;--track:#2c2c2e;--border:#ffffff17;--border-strong:#ffffff24;--text:#f5f5f7;--text-muted:#98989d;--text-faint:#6e6e73;--accent:#2997ff;--accent-strong:#6cb6ff;--accent-soft:#2997ff29;--series-created:#2997ff;--series-edited:#cf7a1f;--success:#32d74b;--danger:#ff453a;--heat-0:var(--track);--heat-1:#163457;--heat-2:#1d5a9e;--heat-3:#2a84e0;--heat-4:#6cb6ff;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{height:100%;margin:0}#root{flex-direction:column;min-height:100%;display:flex}h1,h2,h3{font-family:var(--sans);color:var(--text);margin:0;font-weight:600}h1{letter-spacing:-.02em;line-height:1.1}h2{letter-spacing:-.01em;line-height:1.2}.app{flex-direction:column;flex:1;display:flex}.app-header{z-index:10;background:var(--surface-translucent);-webkit-backdrop-filter:blur(20px)saturate(180%);border-bottom:1px solid var(--border);position:sticky;top:0}.app-header-inner{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;max-width:880px;margin:0 auto;padding:18px 20px;display:flex}.app-title{align-items:center;gap:12px;display:flex}.app-logo{object-fit:cover;width:34px;height:34px;box-shadow:var(--shadow-sm);border-radius:9px;flex-shrink:0}.app-header h1{letter-spacing:-.02em;font-size:21px}.app-header p{color:var(--text-muted);letter-spacing:0;margin:3px 0 0;font-size:13px}.header-actions{align-items:center;gap:10px;display:flex}.updated-at{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:12px}.btn-refresh{background:var(--accent);color:#fff;cursor:pointer;font-size:13px;font-weight:600;font-family:var(--sans);border:none;border-radius:980px;padding:8px 16px}.btn-refresh:disabled{opacity:.55;cursor:default}.app-main{flex-direction:column;flex:1;gap:16px;width:100%;max-width:880px;margin:0 auto;padding:20px 20px 32px;display:flex}.load-loading,.load-error{text-align:center;color:var(--text-muted);padding:80px 20px;font-size:14px}.load-error{color:var(--danger)}.streak-hero{background:linear-gradient(135deg, var(--accent-soft), var(--surface));border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:16px;padding:20px 24px;display:flex}.streak-icon{flex-shrink:0;font-size:40px;line-height:1}.streak-body{flex-direction:column;gap:2px;display:flex}.streak-value{color:var(--text);letter-spacing:-.02em;align-items:baseline;gap:6px;font-size:30px;font-weight:700;display:flex}.streak-unit{color:var(--text-muted);letter-spacing:-.005em;font-size:15px;font-weight:600}.streak-caption{color:var(--text-muted);font-size:13px}.stat-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);flex-direction:column;gap:6px;padding:16px 18px;display:flex}.stat-label{color:var(--text-muted);font-size:12.5px;font-weight:600}.stat-value{color:var(--text);letter-spacing:-.02em;font-variant-numeric:normal;font-size:30px;font-weight:700}.stat-delta{letter-spacing:0;font-size:12px;font-weight:600}.stat-delta-up{color:var(--success)}.stat-delta-down,.stat-delta-flat{color:var(--text-faint)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px 22px 22px}.panel h2{letter-spacing:-.01em;margin-bottom:14px;font-size:15px}.empty-note{color:var(--text-muted);font-size:13px}.trend-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.trend-legend{gap:14px;display:flex}.legend-item{color:var(--text-muted);align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:flex}.legend-swatch{border-radius:3px;width:10px;height:10px}.legend-swatch-created{background:var(--series-created)}.legend-swatch-edited{background:var(--series-edited)}.link-button{color:var(--accent-strong);cursor:pointer;font-size:12.5px;font-weight:600;font-family:var(--sans);background:0 0;border:none;padding:0}.link-button:hover{text-decoration:underline}.trend-svg{width:100%;height:auto;overflow:visible}.grid-line{stroke:var(--border-strong);stroke-width:1px}.axis-label{fill:var(--text-faint);font-size:10px;font-family:var(--sans)}.hover-crosshair{stroke:var(--text-faint);stroke-width:1px;stroke-dasharray:3 3}.trend-line{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.trend-line-created{stroke:var(--series-created)}.trend-line-edited{stroke:var(--series-edited)}.trend-dot{stroke:var(--surface);stroke-width:2px}.trend-dot-created{fill:var(--series-created)}.trend-dot-edited{fill:var(--series-edited)}.trend-tooltip-slot{min-height:34px;margin-top:6px}.trend-tooltip{color:var(--text);background:var(--surface-muted);border-radius:8px;align-items:center;gap:10px;width:fit-content;padding:6px 12px;font-size:12.5px;display:flex}.trend-tooltip span{color:var(--text-muted)}.trend-table{border-collapse:collapse;width:100%;font-size:13px}.trend-table th,.trend-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 10px}.trend-table th{color:var(--text-muted);font-size:12px;font-weight:600}.trend-table td{font-variant-numeric:tabular-nums}.heatmap{flex-direction:column;gap:10px;display:flex}.heatmap-grid{gap:6px;display:flex;overflow-x:auto}.heatmap-weekday-labels{flex-direction:column;flex-shrink:0;gap:3px;padding-top:0;display:flex}.heatmap-weekday-labels span{height:13px;color:var(--text-faint);font-size:9.5px;line-height:13px}.heatmap-weekday-hidden{visibility:hidden}.heatmap-columns{gap:3px;display:flex}.heatmap-column{flex-direction:column;gap:3px;display:flex}.heatmap-cell{border-radius:3px;width:13px;height:13px}.heatmap-cell-empty{background:0 0}.heatmap-level-0{background:var(--heat-0)}.heatmap-level-1{background:var(--heat-1)}.heatmap-level-2{background:var(--heat-2)}.heatmap-level-3{background:var(--heat-3)}.heatmap-level-4{background:var(--heat-4)}.heatmap-legend{color:var(--text-faint);align-items:center;gap:4px;font-size:11px;display:flex}.heatmap-legend .heatmap-cell{width:11px;height:11px}.hourly-chart{flex-direction:column;gap:8px;display:flex}.hourly-bars{align-items:flex-end;gap:4px;height:120px;display:flex}.hourly-bar-col{flex-direction:column;flex:1;align-items:center;gap:4px;height:100%;display:flex}.hourly-bar-track{flex:1;align-items:flex-end;width:100%;max-width:18px;display:flex}.hourly-bar{background:var(--series-created);opacity:.55;border-radius:4px 4px 1px 1px;width:100%;min-height:3px}.hourly-bar-now{opacity:1}.hourly-tick{color:var(--text-faint);font-variant-numeric:tabular-nums;font-size:9.5px}.hourly-caption{color:var(--text-faint);margin:0;font-size:12px}.db-ranking{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.db-ranking-head{justify-content:space-between;align-items:baseline;margin-bottom:5px;display:flex}.db-ranking-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:500;overflow:hidden}.db-ranking-count{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:10px;font-size:12.5px}.db-ranking-track{background:var(--track);border-radius:999px;height:6px;overflow:hidden}.db-ranking-fill{background:var(--series-created);border-radius:999px;height:100%}.recent-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.recent-item{border-radius:var(--radius-sm);color:inherit;align-items:center;gap:10px;padding:9px 10px;text-decoration:none;transition:background-color .15s;display:flex}.recent-item:hover{background:var(--surface-muted)}.recent-kind{color:var(--text-faint);background:var(--track);border-radius:5px;flex-shrink:0;padding:2px 6px;font-size:10px;font-weight:700}.recent-title{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13.5px;overflow:hidden}.recent-time{color:var(--text-faint);flex-shrink:0;font-size:12px}.app-footer{text-align:center;color:var(--text-faint);padding:16px 0 28px;font-size:12px}@media (width<=640px){.stat-grid{grid-template-columns:repeat(2,1fr)}.streak-hero{padding:16px 18px}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
