:root{--accent:#c2483d;--radius:12px;--radius-card:var(--radius);--radius-input:calc(var(--radius) * .75);--radius-badge:calc(var(--radius) * .5);--accent-tint:color-mix(in srgb, var(--accent) 12%, transparent);--accent-wash:color-mix(in srgb, var(--accent) 7%, transparent);--accent-line:color-mix(in srgb, var(--accent) 42%, transparent);--fs-micro:11px;--fs-meta:12px;--fs-label:13px;--fs-body:14px;--fs-title:16px;--fs-h1:20px;--fs-display:28px;--rank-1:#d4b054;--rank-2:#aeb6bc;--rank-3:#b58a5c;--rank-4:#6e7a76;--riichi:#e14840;--yakuman:#e7c55c;--status-live:#4e97d1;--status-pending:#d9a13b;--status-confirmed:#57a876;--status-disputed:#d95448;--status-idle:#5f6e69;--advance:#7cc096;--advance-line:#7cc09680;--advance-bg:#3f8a6629;--advance-border:#3f8a6680;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--sp-12:48px;--tap-target:44px;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;--font-data:"Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;--font-scoreboard:"Arial Narrow", "Segoe UI", Roboto, Arial, "PingFang SC", "Microsoft YaHei", sans-serif}:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-0:#0e1513;--bg-1:#17211e;--bg-2:#212d29;--stroke:#e9eeeb29;--stroke-subtle:#e9eeeb14;--stroke-strong:#e9eeeb42;--text:#e9eeeb;--text-dim:#98a8a2;--viz-node-bg:#e9eeeb0d;--viz-node-line:#e9eeeb29;--viz-line:#e9eeeb38;--viz-text:#dde3e0;--viz-dim:#e9eeeb66;--accent-fg:var(--accent);--score-pos:#e5867a;--score-neg:#8ca3b8}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-0:#f4f3ef;--bg-1:#fff;--bg-2:#eae8e1;--stroke:#1c232129;--stroke-subtle:#1c232114;--stroke-strong:#1c232142;--text:#1c2321;--text-dim:#5d6b66;--viz-node-bg:#1c23210a;--viz-node-line:#1c232129;--viz-line:#1c232138;--viz-text:#2b3532;--viz-dim:#1c232166;--accent-fg:var(--accent-dark,#b7402f);--score-pos:#b7402f;--score-neg:#587a96}.num,.font-data{font-family:var(--font-data);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.font-scoreboard{font-family:var(--font-scoreboard);font-weight:700}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0}body{background:var(--bg-0);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.8}a{color:var(--accent-fg);text-decoration:none}button{font-family:inherit}:focus-visible{outline:2px solid var(--accent-fg);outline-offset:2px}button:active:not(:disabled),[role=button]:active{transform:scale(.97)}button{transition:transform .12s var(--ease-out)}h1,h2,h3,p{margin:0}@keyframes pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes glow{0%,to{box-shadow:0 0 #e7c55c00}50%{box-shadow:0 0 18px #e7c55c59}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.ego-input:focus{border-color:var(--accent-fg);box-shadow:0 0 0 3px var(--accent-tint)}@keyframes stepIn{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}.wizard-step{animation:.26s cubic-bezier(.22,.8,.36,1) stepIn}.hover-lift{transition:transform .16s,border-color .16s,background .16s,box-shadow .16s}.hover-lift:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 18px #00000047}.hover-lift:active:not(:disabled){transform:translateY(0)}.viz-node,.viz-edge{transition:opacity .18s var(--ease-out), stroke-width .18s var(--ease-out)}.viz-node{cursor:pointer}.viz[data-focus="1"] .viz-node:not(.viz-on),.viz[data-focus="1"] .viz-edge:not(.viz-on){opacity:.18}.viz[data-focus="1"] .viz-node.viz-on{opacity:1}.viz-node{transform-box:fill-box;transform-origin:50%}@media (hover:hover) and (pointer:fine){.viz[data-focus="0"] .viz-node:hover{opacity:.92}}button:disabled,select:disabled,input:disabled{opacity:.45;cursor:not-allowed}.row-actions{opacity:0;transition:opacity .12s var(--ease-out)}.hover-row:hover .row-actions,.hover-row:focus-within .row-actions{opacity:1}@media (hover:hover) and (pointer:fine){.row-actions{--tap-target:28px}}@media (hover:none),(pointer:coarse){.row-actions{opacity:1}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}button:active:not(:disabled),[role=button]:active,.hover-lift:hover:not(:disabled){transform:none}}
