:root{--text-xs:11px;--text-sm:12.5px;--text-md:15px;--text-lg:18px;--text-xl:22px;--text-2xl:27px;--space-2:2px;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-16:16px;--space-20:20px;--space-24:24px;--space-32:32px;--space-40:40px;--space-80:80px;--radius-1:4px;--radius-2:8px;--radius-3:12px;--radius-4:16px;--radius-pill:999px;--font-ui:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--lh-tight:1.2;--lh-snug:1.35;--lh-body:1.5;--dock-bar-h:44px;--z-dock:50;--z-dock-bar:55;--z-popover:70;--z-tour:90;--z-menu:120;--z-toast:130;--z-modal:200;--dur-1:120ms;--dur-2:180ms;--dur-3:280ms;--ease-out:cubic-bezier(.23,1,.32,1);--ease-drawer:cubic-bezier(.32,.72,0,1)}:root,:root[data-theme=light]{--paper:#EEE8DC;--surface:#FBF9F3;--surface-2:#F4EFE4;--raised:#FFFFFF;--ink:#181C23;--ink-2:#3F454C;--ink-3:#52575A;--ink-4:#63686D;--line:#DED7C6;--line-2:#CDC5B0;--line-strong:#B8AF97;--steel:#182430;--steel-2:#22303D;--steel-ink:#E9EEF2;--steel-ink-2:#9FB0BD;--steel-line:#33424F;--amber:#C34D08;--amber-2:#AF4406;--amber-soft:#F6E1CE;--amber-line:#E9BC94;--on-amber:#FFF8F0;--green:#1A7346;--green-2:#15603A;--green-soft:#DCEADF;--green-line:#AACBB4;--on-green:#ffffff;--brick:#A2382C;--brick-soft:#F0DCD7;--brick-line:#DDB4AC;--logo-wm:#1E2A45;--shadow-s:0 1px 2px rgba(21,25,31,.06),0 1px 1px rgba(21,25,31,.04);--shadow-m:0 6px 22px -8px rgba(21,25,31,.16);color-scheme:light}:root[data-theme=dark]{--paper:#0E1319;--surface:#151D25;--surface-2:#1A232D;--raised:#1E2833;--ink:#E4E7E9;--ink-2:#B0B9C1;--ink-3:#979FA7;--ink-4:#86909A;--line:#28323C;--line-2:#33414D;--line-strong:#41525F;--steel:#0A1016;--steel-2:#111A22;--steel-ink:#E9EEF2;--steel-ink-2:#93A4B1;--steel-line:#2A3945;--amber:#F0801F;--amber-2:#E86A0E;--amber-soft:#3A2412;--amber-line:#5C3A1C;--on-amber:#1A0F06;--green:#4FB483;--green-2:#5FC08F;--green-soft:#16281F;--green-line:#2C4738;--on-green:#0E1319;--brick:#E08072;--brick-soft:#2E1714;--brick-line:#4C2620;--logo-wm:#F1EDE3;--shadow-s:0 1px 2px rgba(0,0,0,.4);--shadow-m:0 10px 30px -10px rgba(0,0,0,.55);color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:var(--text-md);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;letter-spacing:-.003em;text-wrap:pretty}.wrap{max-width:1000px;margin:0 auto;padding:calc(var(--dock-bar-h) + var(--space-16)) clamp(14px,4vw,36px) var(--space-80)}.mono{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.wrap>header{border-bottom:1px solid var(--line-2);padding-bottom:var(--space-20);margin-bottom:var(--space-20)}.brand{display:flex;align-items:center;gap:var(--space-12);margin-bottom:var(--space-16)}.logo{height:30px;width:auto;display:block}.logo .wm{fill:var(--logo-wm)}.logo .em{fill:#E8463A}.crumb{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em;color:var(--ink-3)}h1{margin:0;font-size:clamp(22px,3.4vw,30px);font-weight:800;letter-spacing:-.02em;line-height:var(--lh-tight)}.sub{margin:var(--space-6) 0 0;color:var(--ink-2);font-size:var(--text-md);max-width:64ch}.uploader{margin-top:var(--space-20);display:flex;gap:var(--space-12);align-items:center;flex-wrap:wrap;border:1px dashed var(--line-strong);border-radius:var(--radius-3);background:var(--surface);padding:var(--space-16) var(--space-16)}.uploader label.file,.uploader select{font-family:var(--font-mono);font-size:var(--text-sm)}.uploader select{padding:var(--space-8) var(--space-10);border-radius:var(--radius-2);border:1px solid var(--line-2);background:var(--raised);color:var(--ink)}label.file{display:inline-flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);border-radius:var(--radius-2);background:var(--steel);color:var(--steel-ink);cursor:pointer;font-weight:550}label.file input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}label.file:focus-within{outline:2px solid var(--amber);outline-offset:2px}.hint,.uploader .hint{font-size:var(--text-sm);color:var(--ink-3)}.rows{display:flex;flex-direction:column;gap:var(--space-10);margin-top:var(--space-20)}.row{border:1px solid var(--line-2);border-radius:var(--radius-3);background:var(--surface);padding:var(--space-16) var(--space-16);box-shadow:var(--shadow-s)}.row.done{border-color:var(--green-line);background:linear-gradient(var(--green-soft),transparent 120%)}.row-top{display:flex;align-items:flex-start;gap:var(--space-12);justify-content:space-between;flex-wrap:wrap;row-gap:var(--space-10)}.client,.row-top>*{min-width:0}.client .name{font-size:var(--text-md);font-weight:600;line-height:var(--lh-snug)}.client .meta{display:flex;flex-wrap:wrap;gap:var(--space-6);margin-top:var(--space-6)}.chip{font-family:var(--font-mono);font-size:var(--text-xs);padding:var(--space-2) var(--space-8);border-radius:var(--radius-1);border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink-2);white-space:nowrap}.chip.dim{border-color:var(--line-strong);color:var(--ink)}.tone-ok{color:var(--green-2);background:var(--green-soft);border-color:var(--green-line)}.tone-ok.strong{border-color:var(--green)}.tone-warn{color:var(--amber-2);background:var(--amber-soft);border-color:var(--amber-line)}.tone-bad{color:var(--brick);background:var(--brick-soft);border-color:var(--brick-line)}.tone-neutral{color:var(--ink-2)}.tone-muted,.tone-neutral{background:var(--surface-2);border-color:var(--line-2)}.tone-muted{color:var(--ink-3)}.tone-steel{color:var(--steel-ink);background:var(--steel);border-color:var(--steel)}.ink-ok{color:var(--green-2)}.ink-warn{color:var(--amber-2)}.ink-bad{color:var(--brick)}.ink-neutral{color:var(--ink-2)}.help{cursor:help}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.pane{margin:var(--space-16) 0;padding:var(--space-16);border:1px solid var(--line-2);border-radius:var(--radius-3);background:var(--surface)}.field{display:flex;flex-direction:column;gap:var(--space-4);font-size:var(--text-sm);color:var(--ink-2)}.modal-back{inset:0;background:rgba(12,14,18,.5)}.modal-back,.modal-box{position:fixed;z-index:var(--z-modal)}.modal-box{top:50%;left:50%;transform:translate(-50%,-50%);max-width:92vw;max-height:92vh;overflow:auto;padding:var(--space-20);border-radius:var(--radius-3);background:var(--raised);border:1px solid var(--line-2);box-shadow:var(--shadow-m)}.modal-title{margin:0 0 var(--space-12);font-size:var(--text-md);font-weight:700;line-height:var(--lh-tight)}.link-btn{display:block;font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;text-align:left}.link-btn:hover{text-decoration:underline}.link-btn:focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-radius:var(--radius-1)}.state{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.05em;text-transform:uppercase;padding:var(--space-4) var(--space-8);border-radius:var(--radius-4);white-space:nowrap;flex-shrink:0}.state.soft{background:var(--amber-soft);color:var(--amber-2);border:1px solid var(--amber-line)}.state.exc{background:var(--brick-soft);color:var(--brick);border:1px solid var(--brick-line)}.state.done{background:var(--green);color:var(--on-green)}.state.auto{border:1px solid var(--amber-line)}.state.auto,.to-ref.auto-ref{background:var(--amber-soft);color:var(--amber-2)}.to-ref.auto-ref{border-color:var(--amber-line)}.panel{margin-top:var(--space-12);padding-top:var(--space-12);border-top:1px dashed var(--line-2)}.lbl{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:var(--space-8)}.card{border:1px solid var(--line-2);border-radius:var(--radius-2);background:var(--raised);padding:var(--space-10) var(--space-12)}.card .pn{font-size:var(--text-sm);font-weight:550;line-height:var(--lh-snug)}.sugs{flex-direction:column;gap:var(--space-6)}.sug,.sugs{display:flex}.sug{align-items:center;gap:var(--space-10);width:100%;text-align:left;cursor:pointer;border:1px solid var(--line-2);border-radius:var(--radius-2);background:var(--raised);padding:var(--space-10) var(--space-12);color:inherit;font:inherit}.sug:hover{border-color:var(--amber-line);background:var(--amber-soft)}.sug:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.sug .rank{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--ink-4);width:16px;flex-shrink:0}.sug .sn{flex:1 1 auto;min-width:0;line-height:var(--lh-snug);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sug .sd,.sug .sn{font-size:var(--text-sm)}.sug .sd{font-family:var(--font-mono);font-weight:600;color:var(--ink);background:var(--surface-2);border:1px solid var(--line-2);padding:var(--space-2) var(--space-8);border-radius:var(--radius-1);flex-shrink:0}.sug{flex-wrap:wrap;row-gap:var(--space-6)}.sug .sn{min-width:120px}.sug .sd.hit{color:var(--green-2);border-color:var(--green-line);background:var(--green-soft)}.sug .sd.swap{color:var(--amber-2);border-color:var(--amber-line);background:var(--amber-soft)}.actions{display:flex;gap:var(--space-8);flex-wrap:wrap;margin-top:var(--space-10)}.btn{font-family:inherit;font-size:var(--text-sm);font-weight:550;padding:var(--space-8) var(--space-16);border-radius:var(--radius-2);cursor:pointer;border:1px solid transparent}.btn.primary{background:var(--green);color:var(--on-green)}.btn.primary:hover{background:var(--green-2)}.btn.ghost{background:transparent;border-color:var(--line-2);color:var(--ink-2)}.btn.ghost:hover{border-color:var(--line-strong);color:var(--ink)}.btn:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.btn:disabled{opacity:.5;cursor:default}.btn.danger{color:var(--brick);border-color:var(--brick-line)}.btn.danger:hover{color:var(--brick);border-color:var(--brick)}.fbtn.xs{padding:var(--space-6) var(--space-10);font-size:var(--text-xs)}.chip-btn{font:inherit;font-size:var(--text-xs);cursor:pointer;margin-left:var(--space-8);padding:var(--space-2) var(--space-8);border-radius:var(--radius-1);border:1px solid var(--line-2);background:var(--surface-2);color:var(--ink-2)}.chip-btn:hover{border-color:var(--line-strong);color:var(--ink)}.chip-btn:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.btn:active:not(:disabled),.chip-btn:active,.dock-tab:active,.explain-btn:active,.fbtn:active,.menu-btn:active,.st-go:active:not(:disabled),.theme-btn:active,.x:active{transform:scale(.97)}.sug:active{background:var(--surface-2)}@media (prefers-reduced-motion:no-preference){.btn,.chip-btn,.dock-tab,.explain-btn,.fbtn,.menu-btn,.st-go,.theme-btn,.x{transition:transform var(--dur-1) var(--ease-out)}}.resolved{display:flex;align-items:center;gap:var(--space-10);flex-wrap:wrap;font-size:var(--text-sm)}.resolved .to-ref{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--green-2);background:var(--green-soft);border:1px solid var(--green-line);padding:var(--space-2) var(--space-8);border-radius:var(--radius-1)}.resolved .chosen{font-weight:600}.muted{color:var(--ink-3);padding:var(--space-8) 0}.muted,.spin{font-size:var(--text-sm)}.spin{color:var(--amber-2);padding:var(--space-10) 0}footer{margin-top:var(--space-32);padding-top:var(--space-16);border-top:1px solid var(--line-2);font-size:var(--text-xs);color:var(--ink-3)}@media (prefers-reduced-motion:no-preference){.row{transition:border-color var(--dur-2) var(--ease-out),background var(--dur-2) var(--ease-out)}}.stepper{flex-wrap:wrap}.st,.stepper{display:flex;gap:var(--space-8)}.st{align-items:center;font-size:var(--text-sm);color:var(--ink-3);padding:var(--space-6) var(--space-12);border:1px solid var(--line-2);border-radius:var(--radius-2);background:var(--surface)}.st-n{width:20px;height:20px;border-radius:var(--radius-1);display:grid;place-items:center;font-size:var(--text-xs);background:var(--surface-2);border:1px solid var(--line-2);color:var(--ink-3)}.st.on{border-color:var(--steel);background:var(--steel);color:var(--steel-ink)}.st.on .st-n{background:var(--amber);color:var(--on-amber);border-color:transparent}.st.past{border-color:var(--green-line);background:var(--green-soft);color:var(--ink)}.st.past .st-n{background:var(--green);color:var(--on-green);border-color:transparent}.onboard{max-width:640px;margin:var(--space-10) auto 0;text-align:center;padding:var(--space-20) 0}.onboard h1{font-size:clamp(24px,4vw,34px);font-weight:800;letter-spacing:-.02em}.lead{color:var(--ink-2);margin:var(--space-12) auto var(--space-24);max-width:56ch}.btn.big,.lead{font-size:var(--text-md)}.btn.big{padding:var(--space-12) var(--space-32)}.stepcard{border:1px solid var(--line-2);border-radius:var(--radius-3);background:var(--surface);padding:var(--space-20);margin-top:var(--space-8);box-shadow:var(--shadow-s)}.sc-head{display:flex;gap:var(--space-12);align-items:flex-start;margin-bottom:var(--space-16)}.sc-n{width:34px;height:34px;flex-shrink:0;border-radius:var(--radius-2);display:grid;place-items:center;font-size:var(--text-md);font-weight:700;background:var(--steel);color:var(--steel-ink)}.sc-head h2{margin:0;padding-top:var(--space-6);font-size:var(--text-lg);font-weight:750;line-height:var(--lh-tight)}.sc-head .hint{margin:var(--space-4) 0 0;font-size:var(--text-sm);color:var(--ink-2);max-width:60ch}.txt{font-family:inherit;font-size:var(--text-md);padding:var(--space-8) var(--space-12);border-radius:var(--radius-2);border:1px solid var(--line-2);background:var(--raised);color:var(--ink);box-sizing:border-box;height:40px}.rule-map-add input:focus-visible,.rule-num input:focus-visible,.rule-sel:focus-visible,.rules-ai-in:focus-visible,.txt:focus-visible{outline:2px solid var(--amber);outline-offset:1px}.uploader .txt{min-width:180px}select.txt{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:var(--space-32);cursor:pointer;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.file.disabled{opacity:.45;pointer-events:none}.ok-line{align-items:center;gap:var(--space-12);flex-wrap:wrap;font-size:var(--text-md)}.ok-line,.sup-list{display:flex;margin-top:var(--space-16)}.sup-list{flex-direction:column;gap:var(--space-8)}.sup{display:flex;align-items:center;justify-content:space-between;gap:var(--space-12);border:1px solid var(--line-2);border-radius:var(--radius-2);background:var(--raised);padding:var(--space-10) var(--space-12)}.sup-n{font-weight:600;font-size:var(--text-md)}.back-row{display:flex;align-items:center;gap:var(--space-12);flex-wrap:wrap;margin-bottom:var(--space-16)}.state.hardt{background:var(--green-soft);color:var(--green-2);border:1px solid var(--green-line)}.sup-prices{display:flex;flex-wrap:wrap;gap:var(--space-6);margin-top:var(--space-10)}.price{font-family:var(--font-mono);font-size:var(--text-xs);padding:var(--space-2) var(--space-8);border-radius:var(--radius-1);border:1px solid var(--green-line);background:var(--green-soft);color:var(--green-2);white-space:nowrap}.sug .price{flex-shrink:0}.theme-btn{margin-left:auto;font-size:var(--text-xs);padding:var(--space-6) var(--space-10);border-radius:var(--radius-2);border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);cursor:pointer}.theme-btn:hover{border-color:var(--line-strong);color:var(--ink)}.theme-btn:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.btn.sm{padding:var(--space-4) var(--space-10);font-size:var(--text-sm)}.stepper,.sugs{list-style:none;padding:0;margin:0}.sugs li{margin:0}.banner{margin:var(--space-12) 0;padding:var(--space-10) var(--space-16);border-radius:var(--radius-2);font-size:var(--text-sm)}.banner.err{background:var(--brick-soft);border:1px solid var(--brick-line);color:var(--brick)}.banner.ok{background:var(--green-soft);border:1px solid var(--green-line);color:var(--green-2)}.banner.warn,.state.manual{background:var(--amber-soft);border:1px solid var(--amber-line);color:var(--amber-2)}.row.manual{border-color:var(--amber-line)}.lbl-inline{display:inline-flex;align-items:center;gap:var(--space-8);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-2)}.filters{display:flex;flex-wrap:wrap;gap:var(--space-6);margin:var(--space-16) 0 var(--space-4)}.fbtn{font-family:var(--font-mono);font-size:var(--text-sm);padding:var(--space-6) var(--space-12);background:var(--surface);color:var(--ink-2);cursor:pointer}.fbtn,.fbtn-n{border-radius:var(--radius-2);border:1px solid var(--line-2)}.fbtn-n{margin-left:var(--space-6);padding:var(--space-2) var(--space-6);font-size:var(--text-xs);background:var(--surface-2);color:var(--ink-3)}.fbtn[aria-pressed=true] .fbtn-n{background:var(--steel-2);border-color:var(--steel-line);color:var(--steel-ink)}.st{padding:0}.st-go{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-6) var(--space-12);background:none;border:none;font:inherit;color:inherit;cursor:pointer;border-radius:var(--radius-2)}.st-go:disabled{cursor:default;opacity:.55}.st-go:not(:disabled):hover{background:var(--surface-2)}.st.on .st-go:not(:disabled):hover{background:transparent}.fbtn[aria-pressed=true]{background:var(--steel);color:var(--steel-ink);border-color:var(--steel)}.fbtn:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.loadmore{gap:var(--space-12);flex-wrap:wrap;margin-top:var(--space-12);font-size:var(--text-sm);color:var(--ink-2)}.loadmore,.sup-r{display:flex;align-items:center}.sup-r{gap:var(--space-10)}.x{border:none;background:transparent;color:var(--ink-3);cursor:pointer;font-size:var(--text-md);padding:var(--space-2) var(--space-6);border-radius:var(--radius-1);min-width:26px;min-height:26px;display:inline-flex;align-items:center;justify-content:center}.x:hover{color:var(--brick);background:var(--brick-soft)}.x:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.compare{font-size:var(--text-sm);color:var(--ink-2);margin-top:var(--space-6);display:flex;align-items:center;gap:var(--space-6);flex-wrap:wrap}.cmp{font-family:var(--font-mono);font-weight:600;padding:var(--space-2) var(--space-8);border-radius:var(--radius-1);background:var(--surface-2);border:1px solid var(--line-2);color:var(--ink)}.cmp.same{color:var(--green-2);border-color:var(--green-line);background:var(--green-soft)}.cmp.diff{color:var(--brick);border-color:var(--brick-line);background:var(--brick-soft)}.why{margin-top:var(--space-8);padding:var(--space-6) var(--space-10);border-radius:var(--radius-2);font-size:var(--text-sm);line-height:var(--lh-body);color:var(--amber-2);background:var(--amber-soft);border:1px solid var(--amber-line)}.sc-head h2:focus{outline:none}.chip.fmt{margin-left:var(--space-8);color:var(--amber-2);border-color:var(--amber-line);background:var(--amber-soft)}.login-wrap{max-width:420px;margin:0 auto;padding:var(--space-40) var(--space-20)}.login-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-32)}.login{display:flex;flex-direction:column;gap:var(--space-12);border:1px solid var(--line-2);border-radius:var(--radius-4);background:var(--surface);padding:var(--space-24);box-shadow:var(--shadow-m)}.login h1{margin:0;font-size:var(--text-xl);font-weight:800}.login .lead{margin:-6px 0 var(--space-6);font-size:var(--text-md);text-align:left}.login label{display:flex;flex-direction:column;gap:var(--space-6);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-2)}.login input{font-family:inherit;font-size:var(--text-md);padding:var(--space-10) var(--space-12);border-radius:var(--radius-2);border:1px solid var(--line-2);background:var(--raised);color:var(--ink)}.login input:focus-visible{outline:2px solid var(--amber);outline-offset:1px}.topbar-r{margin-left:auto;display:flex;align-items:center;gap:var(--space-10);flex-wrap:wrap}.topbar-r .theme-btn{margin-left:0}.who{font-size:var(--text-xs);color:var(--ink-3);white-space:nowrap}.deal-bar{display:flex;align-items:center;gap:var(--space-12);margin:var(--space-12) 0 var(--space-4);flex-wrap:wrap}.deal-title{font-size:var(--text-md);font-weight:650;line-height:var(--lh-tight);letter-spacing:inherit}.chip.save-saved{color:var(--green-2);border-color:var(--green-line);background:var(--green-soft)}.chip.save-dirty,.chip.save-saving{color:var(--amber-2);border-color:var(--amber-line);background:var(--amber-soft)}.chip.save-error{color:var(--brick);border-color:var(--brick-line);background:var(--brick-soft)}.kp-brief{display:flex;align-items:center;gap:var(--space-12);flex-wrap:wrap;margin:var(--space-12) 0;padding:var(--space-10) var(--space-16);border:1px solid var(--line-2);border-radius:var(--radius-3);background:var(--surface);font-size:var(--text-sm);color:var(--ink-2)}.kp-brief b,.mk-in{color:var(--ink)}.mk-in{width:64px;padding:var(--space-4) var(--space-6);border-radius:var(--radius-1);border:1px solid var(--line-2);background:var(--raised);font-size:var(--text-sm)}.mk-in:focus-visible{outline:2px solid var(--amber);outline-offset:1px}.dash-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-16);margin-top:var(--space-8);flex-wrap:wrap}.deals{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));grid-gap:var(--space-12);gap:var(--space-12);margin-top:var(--space-20)}.deal{position:relative;text-align:left;cursor:pointer;border:1px solid var(--line-2);border-radius:var(--radius-3);background:var(--surface);padding:var(--space-16) var(--space-16);color:inherit;font:inherit;box-shadow:var(--shadow-s)}.deal:hover{border-color:var(--line-strong)}.deal:focus-visible,.deal:has(.deal-open:focus-visible){outline:2px solid var(--amber);outline-offset:2px}.deal-open{position:static;font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;text-align:left}.deal-open:after{content:"";position:absolute;inset:0;border-radius:inherit}.deal-open:focus-visible{outline:none}.deal-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-10)}.deal-name{font-size:var(--text-md);font-weight:650}.deal-meta{font-size:var(--text-xs);color:var(--ink-3);margin-top:var(--space-8)}.shell{display:flex;min-height:100vh;align-items:stretch}.sidenav{width:210px;flex:0 0 210px;display:flex;flex-direction:column;gap:var(--space-6);padding:var(--space-16) var(--space-12) var(--space-16);border-right:1px solid var(--line-2);background:var(--surface);position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;box-sizing:border-box}.side-logo{background:none;border:none;padding:0 var(--space-4);cursor:pointer;display:flex;margin:0 0 var(--space-12)}.side-logo .logo{height:30px}.side-nav{display:flex;flex-direction:column;gap:var(--space-2)}.side-item{display:flex;align-items:center;gap:var(--space-10);padding:var(--space-8) var(--space-12);border-radius:var(--radius-2);border:1px solid transparent;background:none;color:var(--ink-2);font-size:var(--text-sm);cursor:pointer;text-align:left;width:100%}.side-item:hover{background:var(--surface-2);color:var(--ink)}.side-item[aria-pressed=true]{background:var(--steel);color:var(--steel-ink);font-weight:700}.side-item:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.side-gap{flex:1 1}.side-user{display:flex;gap:var(--space-10);align-items:center;padding:var(--space-10) var(--space-10) var(--space-6);border-top:1px solid var(--line-2);font-size:var(--text-xs);color:var(--ink-2);line-height:var(--lh-body)}.side-user span{color:var(--ink-4)}.side-user-txt{font-size:var(--text-xs);color:var(--ink-2);line-height:var(--lh-body);min-width:0;overflow-wrap:anywhere}.side-user-txt span{color:var(--ink-4)}.sidenav .theme-btn{margin:0 var(--space-8);text-align:left}.side-logout{margin-top:var(--space-2)}.shell-main{flex:1 1;min-width:0}@media (max-width:780px){.shell{display:block}.sidenav{position:static;width:auto;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;border-right:none;border-bottom:1px solid var(--line-2);padding:var(--space-10) var(--space-12);gap:var(--space-8)}.side-logo{margin:0 var(--space-8) 0 0}.side-nav{flex:1 1 auto;min-width:0;flex-direction:row;flex-wrap:wrap}.side-item{width:auto}.side-gap,.side-user{display:none}.sidenav .theme-btn{margin:0}}.chip.chip-wrap{white-space:normal}.pager .btn,.pager span{white-space:nowrap}.user-activity{font-size:var(--text-xs);color:var(--ink-2);line-height:var(--lh-body);text-align:right;margin-left:auto;min-width:0;overflow-wrap:anywhere}.user-activity b{color:var(--ink);font-weight:600}@media (max-width:780px){.user-activity{text-align:left;margin-left:0;flex:1 1 100%}}.menu-btn{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--radius-2);border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);cursor:pointer;flex:0 0 auto}.menu-btn:hover,.menu-btn[data-state=open]{border-color:var(--line-strong);color:var(--ink);background:var(--surface-2)}.menu{min-width:210px;padding:var(--space-4);border-radius:var(--radius-3);z-index:var(--z-menu);background:var(--raised);border:1px solid var(--line-2);box-shadow:var(--shadow-m)}.menu-item{display:flex;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-10);border-radius:var(--radius-2);font-size:var(--text-sm);color:var(--ink);cursor:pointer;outline:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.menu-item svg{color:var(--ink-3);flex:0 0 auto}.menu-item[data-highlighted]{background:var(--surface-2)}.menu-item.danger,.menu-item.danger svg{color:var(--brick)}.menu-item.danger[data-highlighted]{background:var(--brick-soft)}.menu-sep{height:1px;background:var(--line-2);margin:var(--space-4) var(--space-6)}.sug-line{display:flex;align-items:flex-start;gap:var(--space-8);flex-wrap:wrap}.sug-line .sug{flex:1 1 auto;min-width:0}.sug-line .explain-out{flex:1 1 100%}.explain-btn{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--space-4);font-size:var(--text-xs);padding:var(--space-6) var(--space-10);border-radius:var(--radius-2);white-space:nowrap;min-height:26px;border:1px dashed var(--line-strong);background:none;color:var(--ink-3);cursor:pointer}.explain-btn:hover{color:var(--ink);border-color:var(--ink-3)}.explain-out{margin-top:var(--space-6);padding:var(--space-8) var(--space-10);border-radius:var(--radius-2);font-size:var(--text-sm);line-height:var(--lh-body);background:var(--surface-2);border:1px solid var(--line-2);border-left:3px solid var(--ink-4);color:var(--ink-2);white-space:pre-wrap}.explain-out.err{border-left-color:var(--brick);color:var(--brick)}.skel{background:linear-gradient(90deg,var(--surface-2) 25%,var(--line) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:skel-shimmer 1.4s ease-in-out infinite;border-radius:var(--radius-1)}@keyframes skel-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skel-card{border:1px solid var(--line-2);border-radius:var(--radius-3);background:var(--surface);padding:var(--space-16) var(--space-16)}.skel-line{height:13px}@media (prefers-reduced-motion:reduce){.skel{animation:none}}.bulk{margin:0 0 var(--space-20);padding:var(--space-16) var(--space-16) var(--space-12);border-radius:var(--radius-3);background:linear-gradient(180deg,var(--surface-2),var(--surface) 70%);border:1px solid var(--line-2);box-shadow:var(--shadow-s)}.bulk-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-12);flex-wrap:wrap}.bulk-t{margin:0;font-size:var(--text-md);font-weight:750;letter-spacing:-.01em;display:flex;align-items:center;gap:var(--space-8);color:var(--ink)}.bulk-t svg{color:var(--amber-2);flex:0 0 auto}.bulk-left{font-size:var(--text-xs);color:var(--ink-3);white-space:nowrap}.bulk-sub{margin:var(--space-6) 0 0;font-size:var(--text-sm);line-height:var(--lh-body);color:var(--ink-2);max-width:78ch}.bulk-actions{flex-wrap:wrap;margin:var(--space-12) 0 var(--space-12)}.bulk-actions,.bulk-btn{display:flex;gap:var(--space-12)}.bulk-btn{flex:1 1 300px;min-width:0;align-items:center;padding:var(--space-12) var(--space-16);border-radius:var(--radius-3);border:1px solid transparent;cursor:pointer;font:inherit;text-align:left}@media (prefers-reduced-motion:no-preference){.bulk-btn{transition:transform var(--dur-1) var(--ease-out),box-shadow var(--dur-1) var(--ease-out),filter var(--dur-1) var(--ease-out)}}.bulk-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-m);filter:saturate(1.08)}.bulk-btn:active{transform:translateY(0)}.bulk-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.bulk-btn.hard{background:var(--green);color:var(--on-green)}.bulk-btn.rec{background:var(--amber);color:var(--on-amber)}.bb-n{font-size:var(--text-2xl);font-weight:700;line-height:1;letter-spacing:-.02em;flex:0 0 auto;min-width:2ch;text-align:right}.bb-txt{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.bb-l{display:flex;align-items:center;gap:var(--space-6);font-size:var(--text-md);font-weight:650;line-height:var(--lh-tight)}.bb-h{font-size:var(--text-xs);line-height:var(--lh-snug);overflow-wrap:anywhere}.bulk-foot{margin:0;padding-top:var(--space-10);border-top:1px dashed var(--line-2);font-size:var(--text-sm);line-height:var(--lh-body);color:var(--ink-2)}.bulk-foot b{color:var(--amber-2)}.possearch{margin-top:var(--space-16)}.possearch-in{display:flex;align-items:center;gap:var(--space-8);padding:0 var(--space-12);border:1px solid var(--line-2);border-radius:var(--radius-2);background:var(--surface);color:var(--ink-3)}.possearch-in .txt{flex:1 1;min-width:0;border:none;background:none;padding:var(--space-10) 0}.possearch-in .txt:focus{outline:none}.possearch-in:focus-within{border-color:var(--line-strong);outline:2px solid var(--amber);outline-offset:1px}.possearch-out{margin-top:var(--space-8);border:1px solid var(--line-2);border-radius:var(--radius-3);background:var(--raised);overflow:hidden;max-height:330px;overflow-y:auto}.possearch-hit{display:flex;flex-direction:column;gap:var(--space-2);width:100%;text-align:left;padding:var(--space-8) var(--space-12);background:none;border:none;border-bottom:1px solid var(--line);cursor:pointer;font:inherit;color:inherit}.possearch-hit:last-child{border-bottom:none}.possearch-hit:hover{background:var(--surface-2)}.ph-name{font-size:var(--text-sm);font-weight:550;line-height:var(--lh-snug)}.ph-meta{font-size:var(--text-xs);color:var(--ink-3)}.ph-meta b{color:var(--green-2)}.chat-sys{align-self:center;text-align:center;max-width:95%;font-size:var(--text-xs);color:var(--ink-3);background:var(--surface-2);border:1px dashed var(--line-2);border-radius:var(--radius-2);padding:var(--space-4) var(--space-10);margin:var(--space-2) 0}.update-toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:var(--z-toast);display:flex;align-items:center;gap:var(--space-12);max-width:min(560px,calc(100vw - 24px));padding:var(--space-10) var(--space-16);border-radius:var(--radius-3);font-size:var(--text-sm);line-height:var(--lh-snug);background:var(--steel);color:var(--steel-ink);border:1px solid var(--steel-line);box-shadow:var(--shadow-m)}@media (prefers-reduced-motion:no-preference){.update-toast{transition:transform var(--dur-3) var(--ease-drawer),opacity var(--dur-3) var(--ease-out)}@starting-style{.update-toast{transform:translate(-50%,140%);opacity:0}}}.update-toast .btn{flex:0 0 auto;white-space:nowrap}.tip{font-size:var(--text-xs);line-height:var(--lh-snug);padding:var(--space-4) var(--space-8);border-radius:var(--radius-2);z-index:var(--z-menu);background:var(--steel);color:var(--steel-ink);border:1px solid var(--steel-line);box-shadow:var(--shadow-m);max-width:240px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.tip-arrow{fill:var(--steel)}.deal-meta-row{display:flex;justify-content:space-between;gap:var(--space-10);align-items:baseline}.deal-meta-txt{min-width:0;overflow-wrap:anywhere}.deal-meta-act{position:relative;z-index:1;font:inherit;background:none;border:none;padding:0;flex:0 0 auto;white-space:nowrap;color:var(--ink-4);text-decoration:underline;cursor:pointer}.deal-meta-act:hover{color:var(--ink-2)}.deal-meta-act:focus-visible{outline:2px solid var(--amber);outline-offset:2px;border-radius:var(--radius-1)}.tour-actions{display:flex;align-items:center;gap:var(--space-8);margin-top:var(--space-12);flex-wrap:wrap;row-gap:var(--space-8)}.tour-actions .btn,.tour-count{white-space:nowrap;flex:0 0 auto}.tour-count{font-size:var(--text-xs);color:var(--ink-3)}body{padding-right:var(--dock-w,0)}@media (prefers-reduced-motion:no-preference){body{transition:padding-right var(--dur-2) var(--ease-drawer)}}.dock-bar{position:fixed;top:10px;right:12px;z-index:var(--z-dock-bar);display:flex;gap:var(--space-6)}.dock-sep{width:1px;align-self:stretch;margin:var(--space-4) var(--space-2);background:var(--line-2)}.dock-note-region{position:absolute;top:calc(100% + var(--space-6));right:0}@media (max-width:780px){.dock-note-region{top:auto;bottom:calc(100% + var(--space-6))}}.tour-spot{border:2px solid var(--amber);border-radius:var(--radius-3);box-shadow:0 0 0 9999px rgba(12,14,18,.6);pointer-events:none}@media (prefers-reduced-motion:no-preference){.tour-spot{transition:top var(--dur-2) var(--ease-out),left var(--dur-2) var(--ease-out),width var(--dur-2) var(--ease-out),height var(--dur-2) var(--ease-out)}}.dock-note{display:block;white-space:nowrap;font-size:var(--text-xs);padding:var(--space-4) var(--space-8);background:var(--steel);color:var(--steel-ink);box-shadow:var(--shadow-m)}.dock-note,.dock-tab{border-radius:var(--radius-2)}.dock-tab{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line-2);background:var(--surface);color:var(--ink-2);cursor:pointer;box-shadow:var(--shadow-s)}.dock-tab:hover{border-color:var(--line-strong);color:var(--ink)}.dock-tab.on{background:var(--steel);color:var(--steel-ink);border-color:transparent}.dock-tab{position:relative}.dock-dot{position:absolute;top:4px;right:4px;width:9px;height:9px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 2px var(--surface);animation:dock-blink 1.6s ease-in-out infinite}@keyframes dock-blink{0%,to{opacity:1}50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.dock-dot{animation:none}}.dock-col{position:fixed;top:calc(var(--dock-bar-h) + var(--space-8));right:0;bottom:0;width:360px;z-index:var(--z-dock);display:flex;flex-direction:column;gap:var(--space-8);padding:0 var(--space-8) var(--space-8);overflow-y:auto}@media (prefers-reduced-motion:no-preference){.dock-col{transition:transform var(--dur-2) var(--ease-drawer),opacity var(--dur-2) var(--ease-out),display var(--dur-2) allow-discrete}@starting-style{.dock-col{transform:translateX(100%);opacity:0}}}.dock-col.is-off{display:none;transform:translateX(100%);opacity:0}.dock-panel{flex:1 1;min-height:220px;display:flex;flex-direction:column;border:1px solid var(--line-2);border-radius:var(--radius-3);background:var(--raised);box-shadow:var(--shadow-m);overflow:hidden}.dock-panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);margin:0;padding:var(--space-8) var(--space-10);border-bottom:1px solid var(--line-2);background:var(--surface);flex:0 0 auto}.dock-panel-title{display:flex;align-items:center;gap:var(--space-6);font-size:var(--text-sm);font-weight:650;color:var(--ink)}.dock-panel-x{display:grid;place-items:center;width:26px;height:26px;border-radius:var(--radius-2);border:1px solid transparent;background:none;color:var(--ink-3);cursor:pointer}.dock-panel-x:hover{background:var(--surface-2);color:var(--ink)}.dock-panel-body{flex:1 1;min-height:0;display:flex}.chatpanel{flex:1 1;min-width:0;display:flex;flex-direction:column}.chat-online{display:flex;align-items:center;gap:var(--space-6);font-size:var(--text-xs);color:var(--ink-3);padding:var(--space-6) var(--space-10);border-bottom:1px solid var(--line-2);background:var(--surface-2)}.chat-online,.chatpanel>.banner{flex:0 0 auto}.chat-online .t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dot-on{width:8px;height:8px;border-radius:50%;background:var(--green);flex:0 0 8px;box-shadow:0 0 0 2px var(--green-soft)}.chat-body{flex:1 1;min-height:0;overflow-y:auto;padding:var(--space-10);flex-direction:column}.chat-body,.chat-msg{display:flex;gap:var(--space-8)}.chat-msg{align-items:flex-start;max-width:100%}.chat-msg.mine{flex-direction:row-reverse}.chat-bubble-wrap{min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}.chat-msg.mine .chat-bubble-wrap{align-items:flex-end}.chat-meta{font-size:var(--text-xs);color:var(--ink-4);padding:0 var(--space-2)}.chat-bubble{font-size:var(--text-sm);line-height:var(--lh-body);padding:var(--space-6) var(--space-10);border-radius:var(--radius-3);background:var(--surface-2);border:1px solid var(--line-2);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;max-width:250px}.chat-msg.mine .chat-bubble{background:var(--green-soft);border-color:var(--green-line);color:var(--ink)}.chat-input{display:flex;gap:var(--space-6);padding:var(--space-8);border-top:1px solid var(--line-2);background:var(--surface);flex:0 0 auto}.chat-input .txt{flex:1 1;min-width:0;padding:var(--space-8) var(--space-10)}.chat-input .btn.sm{padding:var(--space-8) var(--space-12);font-size:var(--text-md);line-height:1}.chat-body.ai{gap:var(--space-12)}.ai-msg{display:flex;flex-direction:column;gap:var(--space-2)}.ai-role{font-size:var(--text-xs);color:var(--ink-4)}.ai-msg.user .ai-role{color:var(--green-2)}.ai-text{font-size:var(--text-sm);line-height:var(--lh-body);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}.ai-msg.user .ai-text{border-radius:var(--radius-3);border:1px solid var(--line-2)}.ai-data,.ai-msg.user .ai-text{padding:var(--space-6) var(--space-10);background:var(--surface-2)}.ai-data{display:flex;align-items:center;gap:var(--space-6);font-size:var(--text-xs);color:var(--ink-3);border-bottom:1px solid var(--line-2);cursor:pointer;flex:0 0 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-data input{accent-color:var(--green);margin:0;flex:0 0 auto}.ai-model{margin-left:auto;padding-left:var(--space-8);color:var(--ink-4);flex:0 0 auto}.ai-used{font-size:var(--text-xs);color:var(--ink-4);border-left:2px solid var(--green-line);padding-left:var(--space-6);margin-top:var(--space-2)}.calc-pop{top:calc(var(--dock-bar-h) + var(--space-12));right:calc(var(--dock-w, 0px) + 16px)}@media (prefers-reduced-motion:no-preference){.calc-pop{transform-origin:top right;transition:transform var(--dur-2) var(--ease-out),opacity var(--dur-2) var(--ease-out)}@starting-style{.calc-pop{transform:scale(.96);opacity:0}}}@media (max-width:780px){.calc-pop{top:auto;bottom:64px;left:16px;right:16px;transform-origin:bottom center}}@media (max-width:1100px){body{padding-right:0}.calc-pop{right:16px}}@media (max-width:780px){.dock-bar{top:auto;bottom:12px}.wrap{padding-top:clamp(18px,3.5vw,40px)}.dock-col{width:min(360px,94vw);top:auto;height:min(65vh,100dvh - 120px);bottom:58px;border-top-left-radius:14px;box-shadow:var(--shadow-m)}}.rules-box{margin-top:var(--space-16);border:1px solid var(--line-2);border-radius:var(--radius-3);background:var(--raised);overflow:hidden}.rules-head{display:flex;align-items:center;gap:var(--space-12);width:100%;padding:var(--space-12) var(--space-16);border:0;background:none;cursor:pointer;font:inherit;text-align:left;color:var(--ink)}.rules-head:hover{background:var(--surface-2)}.rules-head:focus-visible{outline:2px solid var(--amber);outline-offset:-2px}.rules-t{font-weight:700;font-size:var(--text-md)}.rules-sub{color:var(--ink-2);font-size:var(--text-sm)}.rules-chev{margin-left:auto;color:var(--ink-2);font-size:var(--text-xs)}.rules-body{padding:var(--space-4) var(--space-16) var(--space-16);border-top:1px solid var(--line-2)}.rules-lead{color:var(--ink-2);font-size:var(--text-sm);line-height:var(--lh-body);margin:var(--space-12) 0 var(--space-16)}.rule{padding:var(--space-12) 0;border-top:1px solid var(--line)}.rule:first-of-type{border-top:0}.rule.on{border-left:3px solid var(--amber);padding-left:var(--space-12);margin-left:calc(-1 * (var(--space-12) + 3px))}.rule-top{display:flex;align-items:center;gap:var(--space-10);flex-wrap:wrap}.rule-title{font-weight:600;font-size:var(--text-md)}.rule-src{font-size:var(--text-xs);padding:var(--space-2) var(--space-8);border-radius:var(--radius-4);white-space:nowrap;color:var(--green-2);background:var(--green-soft);border:1px solid var(--green-line)}.rule-src.derived{color:var(--amber-2);background:var(--amber-soft);border-color:var(--amber-line)}.rule-why{color:var(--ink-2);font-size:var(--text-sm);line-height:var(--lh-body);margin:var(--space-4) 0 var(--space-8)}.rule-ctl{display:flex;align-items:center;gap:var(--space-10);flex-wrap:wrap}.rule-num input,.rule-sel,.rules-ai-in{font:inherit;font-size:var(--text-sm);padding:var(--space-6) var(--space-10);border:1px solid var(--line-2);border-radius:var(--radius-2);background:var(--surface);color:var(--ink)}.rule-num{display:inline-flex;align-items:center;gap:var(--space-6)}.rule-num input{width:100px}.rule-unit{color:var(--ink-2)}.rule-sw,.rule-unit{font-size:var(--text-sm)}.rule-sw{display:inline-flex;align-items:center;gap:var(--space-8);cursor:pointer;min-height:26px}.rule-map{display:flex;flex-direction:column;gap:var(--space-6);width:100%}.rule-map-row{display:flex;align-items:center;gap:var(--space-10);font-size:var(--text-sm)}.rule-x{border:0;background:none;cursor:pointer;color:var(--ink-2);font-size:var(--text-md);line-height:1;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-14px -10px}.rule-x:hover{color:var(--brick)}.rule-x:focus-visible{outline:2px solid var(--amber);outline-offset:-8px;border-radius:var(--radius-2)}.rule-map-add{display:flex;gap:var(--space-6);flex-wrap:wrap;margin-top:var(--space-2)}.rule-map-add input{font:inherit;font-size:var(--text-sm);padding:var(--space-4) var(--space-8);border:1px solid var(--line-2);border-radius:var(--radius-2);background:var(--surface);color:var(--ink);width:170px}.rules-ai{margin-top:var(--space-16);padding:var(--space-12);border-radius:var(--radius-2);background:var(--surface-2);border:1px solid var(--line)}.rules-ai-t{display:flex;align-items:center;gap:var(--space-6);font-weight:600;font-size:var(--text-md);margin-bottom:var(--space-4)}.rules-ai-in{width:100%;resize:vertical;margin-bottom:var(--space-8)}.rules-prop{margin-top:var(--space-12);padding:var(--space-12);border-radius:var(--radius-2);background:var(--raised);border:1px solid var(--line-2)}.rules-prop-x{font-size:var(--text-sm);line-height:var(--lh-body)}.rules-prop-risk{color:var(--amber-2)}.rules-prop-diff,.rules-prop-risk{margin-top:var(--space-8);font-size:var(--text-sm)}.rules-prop-diff{color:var(--ink-2)}.rules-foot{display:flex;gap:var(--space-8);flex-wrap:wrap;margin-top:var(--space-16);padding-top:var(--space-12);border-top:1px solid var(--line)}.ok-note{margin-top:var(--space-10);font-size:var(--text-sm);color:var(--green-2)}.pbar{margin-top:var(--space-12);padding:var(--space-12) var(--space-16);border:1px solid var(--line-2);border-radius:var(--radius-2);background:var(--surface);display:flex;flex-direction:column;gap:var(--space-8)}.pbar-label{font-size:var(--text-sm);color:var(--ink-2)}.pbar-track{display:block;height:6px;border-radius:var(--radius-1);background:var(--surface-2);border:1px solid var(--line);overflow:hidden;position:relative}.pbar-fill{position:absolute;top:0;bottom:0;width:38%;border-radius:var(--radius-1);background:linear-gradient(90deg,var(--amber-soft),var(--amber),var(--amber-soft));animation:pbar-run 1.15s ease-in-out infinite}@keyframes pbar-run{0%{left:-40%}to{left:102%}}@media (prefers-reduced-motion:reduce){.pbar-fill{animation:none;width:100%;left:0;opacity:.5}}.diagbox{margin-top:var(--space-12);padding:var(--space-12) var(--space-16);border:1px solid var(--amber-line);border-radius:var(--radius-3);background:var(--surface)}.diag-t{font-weight:700;font-size:var(--text-md);margin-bottom:var(--space-8)}.diag-list{margin:0;padding-left:var(--space-16);display:flex;flex-direction:column;gap:var(--space-4);font-size:var(--text-sm);color:var(--ink-2)}.diag-ai{margin-top:var(--space-12);padding-top:var(--space-12);border-top:1px dashed var(--line-2)}.diag-explain{margin:0 0 var(--space-10);font-size:var(--text-md);line-height:var(--lh-body)}.diag-dev{padding:var(--space-10) var(--space-12);border-radius:var(--radius-2);background:var(--surface-2);border:1px solid var(--line)}.diag-dev pre{margin:var(--space-4) 0 var(--space-8);font-size:var(--text-sm);white-space:pre-wrap;word-break:break-word;color:var(--ink-2)}.fade-up,.stepcard{animation:fade-up var(--dur-3) var(--ease-out) both}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.fade-up,.stepcard{animation:none}}