:root{--bg:#faf9f7;--surface:#fff;--surface-hover:#f3f1ed;--text:#37352f;--text-muted:#787670;--border:#e8e6e1;--accent:#6b8f71;--accent-text:#fff;--danger:#b3564f;--track:#efede9;--grid-line:#dedbd5;--grid-line-strong:#ccc8c0;--compare-b:#9c968e;--compare-up:#6b8f71;--compare-same:#aca69d;--compare-down:#b3564f;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-card:0 1px 3px #0000000f;--font-body:"Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", system-ui, sans-serif;--cat-sage:#9caf88;--cat-terracotta:#c98d74;--cat-sky:#8fb5c7;--cat-lavender:#a99bc4;--cat-sand:#cbb68a;--cat-rose:#c495a2;--cat-moss:#8aa37b;--cat-slate:#8d9aa8;--cat-apricot:#d8a67e;--cat-teal:#7fa8a1;--cat-plum:#a887a3;--cat-stone:#a8a094;--safe-bottom:env(safe-area-inset-bottom,0px)}[data-theme=dark]{--bg:#1f1e1c;--surface:#2a2927;--surface-hover:#34322f;--text:#e8e6e1;--text-muted:#9b988f;--border:#3d3b37;--accent:#8aa88f;--accent-text:#1f1e1c;--danger:#cf7a73;--track:#34322f;--grid-line:#45423d;--grid-line-strong:#57534c;--shadow-card:0 1px 3px #0000004d;--compare-b:#8b867d;--compare-up:#8aa88f;--compare-same:#948f86;--compare-down:#cf7a73;--cat-sage:#7d9070;--cat-terracotta:#a97662;--cat-sky:#7597a8;--cat-lavender:#8b7fa6;--cat-sand:#a8965f;--cat-rose:#a67c88;--cat-moss:#718a64;--cat-slate:#75818f;--cat-apricot:#b58a67;--cat-teal:#698d86;--cat-plum:#8c7088;--cat-stone:#8a8378}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6}h1,h2,h3,p{margin:0}button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}input,textarea,select{font-family:inherit;font-size:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm)}textarea{resize:none;border-radius:12px;padding:10px 12px;line-height:1.6;transition:border-color .15s,box-shadow .15s}textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 14%, transparent);outline:none}textarea:focus-visible,input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:inherit;text-decoration:none}.app-layout{flex-direction:column;min-height:100%;display:flex}.app-main{width:100%;max-width:1080px;padding:16px 16px calc(76px + var(--safe-bottom));flex:1;margin:0 auto}.route-view{animation:.3s cubic-bezier(.22,1,.36,1) both route-in}@keyframes route-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.route-view{animation:none}}.page-title{margin-bottom:12px;font-size:1.15rem;font-weight:600}.nav-tabs{background:linear-gradient(to top, var(--bg) 0%, var(--bg) 62%, transparent 100%);padding:6px 0 var(--safe-bottom);-webkit-backdrop-filter:blur(10px);z-index:10;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-tab{color:var(--text-muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0 6px;font-size:.68rem;display:flex}.nav-tab.active{color:var(--accent);font-weight:600}.nav-tab svg{width:22px;height:22px}@media (width>=900px){.app-layout{flex-direction:row}.nav-tabs{background:var(--bg);-webkit-backdrop-filter:none;border-right:1px solid var(--border);flex-direction:column;gap:4px;width:200px;height:100vh;padding:24px 12px;position:sticky;top:0;bottom:auto}.nav-tab{border-radius:var(--radius-md);flex-direction:row;flex:none;gap:10px;padding:10px 14px;font-size:.92rem}.nav-tab.active{background:var(--surface-hover)}.app-main{padding:24px 32px 32px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:16px}.btn{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-weight:600;transition:background .15s;display:inline-flex}.btn:hover{background:var(--surface-hover)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn-primary:hover{background:var(--accent);opacity:.9}.btn-danger{color:var(--danger);border-color:var(--danger)}.btn:disabled{opacity:.4;cursor:not-allowed}.text-muted{color:var(--text-muted)}.empty-state{text-align:center;color:var(--text-muted);padding:48px 16px}.page-eyebrow{letter-spacing:.04em;color:var(--text-muted);font-size:.72rem}.field{flex-direction:column;gap:5px;display:flex}.field-label{letter-spacing:.03em;color:var(--text-muted);font-size:.72rem}.field textarea{width:100%;font-size:.9rem}.sel-pill{background:var(--surface);box-shadow:var(--shadow-card);border-radius:999px;justify-content:space-between;align-items:center;gap:10px;padding:6px 8px 6px 16px;display:flex}.sel-pill .who{align-items:center;gap:8px;min-width:0;font-size:.9rem;font-weight:600;display:flex}.sel-pill .who span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dot{border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.step-controls{flex:none;align-items:center;gap:4px;display:flex}.step-btn{width:36px;height:36px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:1.15rem;font-weight:600;display:flex}.step-btn:hover{background:var(--surface-hover);color:var(--text)}.score-val{text-align:center;font-variant-numeric:tabular-nums;min-width:1.7em;font-size:1.2rem;font-weight:700}.wheel-hit{cursor:pointer;outline:none}.wheel-hit:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (prefers-reduced-motion:no-preference){.wheel-fill{transform-box:view-box;transform-origin:50%;animation:.55s cubic-bezier(.22,1,.36,1) both wheel-bloom}@keyframes wheel-bloom{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.trend-line{stroke-dasharray:1;stroke-dashoffset:1px;animation:.7s cubic-bezier(.33,1,.68,1) both trend-draw}@keyframes trend-draw{to{stroke-dashoffset:0}}.trend-dot{animation:.3s .46s both trend-appear}.trend-label{animation:.3s .6s both trend-appear}@keyframes trend-appear{0%{opacity:0}to{opacity:1}}}.entry-grid{flex-direction:column;gap:14px;display:flex}.entry-heading-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.entry-datefield{flex-direction:column;gap:4px;display:flex}.entry-datefield input{border-radius:var(--radius-md);padding:7px 10px}.entry-wheel-pane{width:100%;max-width:420px;margin:0 auto}.entry-form-pane{flex-direction:column;gap:14px;display:flex}@media (width>=900px){.entry-grid{grid-template-columns:minmax(320px,430px) minmax(300px,460px);justify-content:center;align-items:start;gap:8px 56px;display:grid}.entry-title-row{grid-column:1/-1;margin-bottom:14px}.entry-form-pane{gap:22px;padding-top:6px}.entry-form-pane .save-row{justify-content:flex-end;padding-top:4px;display:flex}.entry-form-pane .save-row .btn{width:auto;padding:12px 32px}}@media (width<=899px){.entry-form-pane .save-row .btn{width:100%}.nav-tabs{justify-content:center;gap:8px}.nav-tab{flex:none;min-width:66px;padding:8px 10px 6px}}.hist-list{flex-direction:column;gap:12px;max-width:560px;display:flex}.hist-row{align-items:center;gap:8px;padding:10px 12px;display:flex}.hist-main{flex:1 1 0;align-items:center;gap:12px;min-width:0;display:flex}.hist-actions{flex:none;align-items:center;gap:2px;display:flex}.hist-actions .icon-btn{font-size:1rem}.hist-row .mini{flex:none;width:52px}.hist-meta{flex-direction:column;flex:1 1 0;min-width:0;display:flex}.hist-date{font-size:.9rem;font-weight:700}.hist-note{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;display:block;overflow:hidden}.hist-avg{color:var(--text-muted);text-align:right;flex:none;font-size:.72rem;line-height:1.3}.hist-avg b{color:var(--text);font-variant-numeric:tabular-nums;font-size:1.05rem;display:block}.chev{color:var(--grid-line-strong);flex:none}.hist-featured{flex-direction:column;gap:10px;padding:16px 12px;display:flex}.hist-featured-head{justify-content:space-between;align-items:center;display:flex}.hist-featured-badge{letter-spacing:.04em;color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:999px;padding:3px 10px;font-size:.72rem;font-weight:700}.hist-featured-wheel{width:100%;max-width:260px;margin:2px auto;display:block}.hist-featured-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding-top:12px;display:flex}.hist-featured-date{color:var(--text);margin-left:64px;font-size:.9rem;font-weight:700}.hist-featured-foot .hist-avg{margin-right:74px}.hist-featured-note{color:var(--text-muted);white-space:pre-wrap;font-size:.85rem;line-height:1.5}.detail-wheel{width:100%;max-width:420px;margin:0 auto}.note-list{max-width:560px}.note-item{border-bottom:1px solid var(--border);gap:10px;padding:10px 0;font-size:.88rem;display:flex}.note-item:last-child{border-bottom:none}.note-item .who{flex:0 0 6.5em;align-items:baseline;gap:6px;font-weight:600;display:flex}.note-item .who .dot{width:9px;height:9px}.note-item .score{color:var(--text-muted);font-variant-numeric:tabular-nums}.note-item p{color:var(--text-muted);min-width:0;font-size:.84rem}.detail-actions{flex-wrap:wrap;gap:10px;display:flex}.compare-wheel{width:100%;max-width:420px;margin:0 auto}.compare-selects{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.compare-selects select{border-radius:var(--radius-md);padding:8px 10px}.legend{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:16px;margin-top:10px;font-size:.78rem;display:flex}.legend .line{border-top:2.5px solid var(--text);vertical-align:middle;width:22px;height:0;margin-right:5px;display:inline-block}.legend .line.dashed{border-top-style:dashed}.legend .swatch{vertical-align:middle;border-radius:4px;width:14px;height:14px;margin-right:6px;display:inline-block}.diff-val{font-variant-numeric:tabular-nums;font-weight:700}.diff-up{color:var(--accent)}.diff-down{color:var(--danger)}.trend-scroll{-webkit-overflow-scrolling:touch;overflow:auto hidden}.trend-page{flex-direction:column;gap:14px;max-width:560px;display:flex}.trend-page .chips{margin-bottom:0}.trend-section-label{letter-spacing:.04em;color:var(--text-muted);margin-bottom:-4px;font-size:.72rem}.trend-overview{justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.overview-hero{flex-direction:column;gap:3px;min-width:0;display:flex}.overview-label{letter-spacing:.04em;color:var(--text-muted);font-size:.72rem}.overview-value{font-variant-numeric:tabular-nums;align-items:baseline;gap:8px;font-size:1.9rem;font-weight:700;line-height:1.05;display:flex}.overview-value .diff-val{font-size:.9rem}.overview-meta{text-align:right;flex-direction:column;flex:none;gap:10px;display:flex}.overview-meta-label{letter-spacing:.03em;color:var(--text-muted);font-size:.66rem}.overview-meta-value{font-variant-numeric:tabular-nums;font-size:.86rem;font-weight:600}.trend-chart-card{padding:16px 14px 10px}.trend-table-card{padding:2px 16px}.ttable-head,.ttable-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) 2.5rem 2.9rem 2.5rem 2.9rem;align-items:center;column-gap:6px;display:grid}.ttable-row:last-child{border-bottom:none}.ttable-head>span{letter-spacing:.02em;color:var(--text-muted);text-align:right;padding:12px 0 8px;font-size:.66rem}.ttable-head>span:first-child{text-align:left}.ttable-row>*{padding:11px 0}.ttable-name{align-items:center;gap:8px;min-width:0;font-size:.85rem;font-weight:600;display:flex}.ttable-name>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ttable-name .dot{width:9px;height:9px}.ttable .num{text-align:right;font-variant-numeric:tabular-nums;font-size:.85rem}.ttable .num.latest{font-weight:700}.ttable .num.muted{color:var(--text-muted)}.chips{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:999px;align-items:center;gap:7px;padding:6px 14px;font-size:.82rem;display:inline-flex}.chip.active{border-color:var(--accent);color:var(--text);font-weight:600}.chip .dot{width:9px;height:9px}.settings-page .page-title{margin-bottom:20px}.settings-section{max-width:560px;margin-bottom:26px}.settings-heading{letter-spacing:.02em;color:var(--text-muted);margin:0 0 8px 14px;font-size:.75rem;font-weight:600}.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.settings-card-pad{padding:16px}.settings-caption{color:var(--text-muted);margin:8px 14px 0;font-size:.75rem;line-height:1.6}.settings-note{color:var(--text-muted);margin-top:12px;font-size:.75rem;line-height:1.6}.settings-actions{flex-wrap:wrap;gap:10px;display:flex}.settings-card .segmented{width:100%;display:flex}.settings-card .segmented button{flex:1}.settings-row-action{width:100%;color:var(--accent);border-top:1px solid var(--border);justify-content:center;align-items:center;gap:6px;padding:13px 14px;font-size:.9rem;font-weight:600;transition:background .15s;display:flex}.settings-row-action:hover{background:var(--surface-hover)}.settings-row-action:disabled{color:var(--text-muted);opacity:.45;cursor:not-allowed}.cat-list{flex-direction:column;display:flex}.cat-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;min-height:48px;padding:5px 12px 5px 6px;display:flex}.cat-row:last-child{border-bottom:none}.cat-row.dragging{background:var(--surface-hover);box-shadow:var(--shadow-card);z-index:5;border-bottom-color:#0000;position:relative}.drag-handle{width:30px;height:40px;color:var(--grid-line-strong);border-radius:var(--radius-sm);cursor:grab;flex:none;justify-content:center;align-items:center;display:flex}.drag-handle:hover{background:var(--surface-hover);color:var(--text-muted)}.drag-handle:active{cursor:grabbing}.drag-handle svg{width:16px;height:16px}.cat-row input[type=text]{border-radius:var(--radius-md);background:0 0;border-color:#0000;flex:1;min-width:0;padding:8px 10px}.cat-row input[type=text]:hover{border-color:var(--border)}.cat-row input[type=text]:focus{border-color:var(--accent);background:var(--surface);outline:none}.settings-disclosure summary{cursor:pointer;list-style:none}.settings-disclosure summary::-webkit-details-marker{display:none}.settings-disclosure-summary{justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;font-size:.92rem;font-weight:600;display:flex}.settings-disclosure-summary:hover{background:var(--surface-hover)}.settings-chevron{width:18px;height:18px;color:var(--text-muted);flex:none;transition:transform .18s}.settings-disclosure[open] .settings-chevron{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.settings-chevron{transition:none}}.settings-disclosure-body{border-top:1px solid var(--border);padding:16px}.about-lead{margin-bottom:14px;font-size:.9rem;line-height:1.7}.about-points{flex-direction:column;gap:7px;margin:0;padding:0;list-style:none;display:flex}.about-points li{color:var(--text-muted);padding-left:18px;font-size:.83rem;line-height:1.6;position:relative}.about-points li:before{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:.6em;left:2px}.about-installed{color:var(--accent);align-items:center;gap:8px;font-size:.88rem;font-weight:600;display:flex}.about-install{border-top:1px solid var(--border);padding:16px}.about-install h3{margin-bottom:6px;font-size:.85rem;font-weight:700}.about-install-lead{margin-bottom:14px;font-size:.8rem;line-height:1.6}.about-steps{flex-direction:column;gap:8px;margin:0;padding-left:1.3em;display:flex}.about-steps li{font-size:.85rem;line-height:1.6}.about-note{margin-top:10px;font-size:.78rem;line-height:1.6}.about-share-icon{vertical-align:-.2em;width:1.05em;height:1.05em;margin:0 .15em}.about-check-icon{flex:none;width:1.05em;height:1.05em}.share-page{max-width:1080px;padding:24px 16px calc(32px + var(--safe-bottom));flex-direction:column;gap:18px;margin:0 auto;display:flex}.share-header{justify-content:space-between;align-items:flex-start;gap:12px;max-width:560px;display:flex}.share-badge{color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;flex:none;padding:4px 10px;font-size:.72rem;font-weight:600}.share-page .hist-main{text-align:left}.share-back-link{font-size:inherit;letter-spacing:inherit;color:inherit;padding:0}.share-link-row{gap:8px;display:flex}.share-link-row input{min-width:0;color:var(--text-muted);flex:1;padding:8px 10px;font-size:.82rem}.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);flex:none;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--surface-hover);color:var(--text)}.icon-btn:disabled{opacity:.3;cursor:not-allowed}.icon-btn:disabled:hover{color:var(--text-muted);background:0 0}.segmented{border:1px solid var(--border);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.segmented button{color:var(--text-muted);padding:8px 16px;font-size:.85rem}.segmented button+button{border-left:1px solid var(--border)}.segmented button.active{background:var(--surface-hover);color:var(--text);font-weight:600}.toast{left:50%;bottom:calc(84px + var(--safe-bottom));background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);z-index:100;align-items:center;gap:12px;padding:12px 16px;font-size:.88rem;display:flex;position:fixed;transform:translate(-50%)}@media (width>=900px){.toast{bottom:24px}}.toast-host{left:50%;bottom:calc(84px + var(--safe-bottom));z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100vw - 24px);display:flex;position:fixed;transform:translate(-50%)}@media (width>=900px){.toast-host{bottom:24px}}.toast-host .toast{pointer-events:auto;max-width:100%;position:static;bottom:auto;left:auto;transform:none}.toast-error{border-color:var(--danger)}.toast-close{color:var(--text-muted);flex:none;padding:0 4px;font-size:1.1rem;line-height:1}.toast-close:hover{color:var(--text)}
