:root{--bg:#f1f3f6;--panel:#fff;--ink:#1c2027;--ink-2:#5b6372;--line:#d9dde4;--line-2:#eceff3;--pass:#0f6e63;--pass-bg:#e3f3f0;--warn:#a1500a;--warn-bg:#fdf0e3;--fail:#b3261e;--fail-bg:#fbe9e7;--accent:#23466e;--accent-bg:#e8eef7;color:var(--ink);background:var(--bg);font-feature-settings:"tnum" 1;font-family:Pretendard Variable,Pretendard,-apple-system,Apple SD Gothic Neo,Malgun Gothic,sans-serif;font-size:14px;line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:var(--accent)}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:4px;padding:6px 12px}button:hover{border-color:var(--ink-2)}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input,select{font:inherit;border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:4px;padding:5px 8px}input[type=number]{width:7em}.layout{grid-template-columns:200px 1fr;min-height:100vh;display:grid}.nav{background:var(--panel);border-right:1px solid var(--line);height:100vh;padding:20px 0;position:sticky;top:0}.nav h1{letter-spacing:-.01em;margin:0 20px 18px;font-size:15px;font-weight:700}.nav h1 small{color:var(--ink-2);margin-top:2px;font-size:12px;font-weight:400;display:block}.nav button{text-align:left;width:100%;color:var(--ink-2);background:0 0;border:0;border-left:3px solid #0000;border-radius:0;padding:9px 20px;display:block}.nav button.active{color:var(--ink);border-left-color:var(--accent);background:var(--accent-bg);font-weight:600}.nav .foot{color:var(--ink-2);font-size:12px;position:absolute;bottom:16px;left:20px;right:20px}.main{min-width:0;padding:24px 28px}.main h2{letter-spacing:-.01em;margin:0 0 4px;font-size:20px}.main .lead{color:var(--ink-2);max-width:70ch;margin:0 0 18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;margin-bottom:16px;padding:16px 18px}.panel h3{margin:0 0 10px;font-size:14px}.row{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field label,.hint{color:var(--ink-2);font-size:12px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{border-bottom:1px solid var(--line-2);text-align:left;white-space:nowrap;padding:6px 8px}th{color:var(--ink-2);background:var(--panel);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600;position:sticky;top:0}td.num,th.num{text-align:right}tr.sel td{background:var(--accent-bg)}tbody tr:hover td{background:#f6f8fb}.badge{border-radius:10px;margin-right:4px;padding:1px 7px;font-size:11px;line-height:1.5;display:inline-block}.badge.pass{color:var(--pass);background:var(--pass-bg)}.badge.warn{color:var(--warn);background:var(--warn-bg)}.badge.fail{color:var(--fail);background:var(--fail-bg)}.badge.muted{color:var(--ink-2);background:var(--line-2)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:14px;padding:2px 10px;font-size:12px}.chip.on{background:var(--accent);color:#fff;border-color:var(--accent)}.chip.dim{opacity:.45;cursor:default}.varlist{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:2px 18px;display:grid}.varlist label{white-space:nowrap;grid-template-columns:16px 104px minmax(0,1fr) 24px 66px 56px;align-items:center;column-gap:6px;min-width:0;padding:2px 0;font-size:13px;display:grid}.varlist label>*{min-width:0}.varlist label.on{background:var(--panel-2,#f6f7f9);border-radius:4px;grid-column:1/-1;grid-template-columns:16px 104px minmax(0,260px) 24px 66px 56px 1fr;padding:3px 6px}.varlist label.on .ctl{align-items:center;gap:6px;margin-left:12px;display:flex}.varlist label .id{color:var(--ink-2);text-overflow:ellipsis;font-size:12px;overflow:hidden}.varlist label .nm{text-overflow:ellipsis;overflow:hidden}.varlist label .badge{text-overflow:ellipsis;justify-self:start;max-width:100%;overflow:hidden}.badge{white-space:nowrap}.split{grid-template-columns:minmax(0,1fr) 420px;align-items:start;gap:16px;display:grid}.kv{grid-template-columns:max-content minmax(0,1fr);gap:4px 14px;font-size:13px;display:grid}.kv dt{color:var(--ink-2);white-space:nowrap}.kv dd{overflow-wrap:anywhere;margin:0}pre.log{color:#d7dbe2;background:#15181d;border-radius:6px;max-height:360px;margin:0;padding:12px;font-size:12px;overflow:auto}.status-queued{color:var(--ink-2)}.status-running{color:var(--accent);font-weight:600}.status-done{color:var(--pass)}.status-failed,.status-interrupted{color:var(--fail)}.status-cancelled{color:var(--ink-2)}.verdict{border-radius:6px;margin-bottom:12px;padding:10px 12px;font-size:13px}.verdict.pass{background:var(--pass-bg);color:var(--pass)}.verdict.fail{background:var(--fail-bg);color:var(--fail)}.verdict.warn{background:var(--warn-bg);color:var(--warn)}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.empty{color:var(--ink-2);text-align:center;padding:30px 0}@media (width<=1000px){.layout{grid-template-columns:1fr}.nav{height:auto;position:static}.split{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.help-layout{grid-template-columns:240px minmax(0,1fr);align-items:start;gap:16px;display:grid}.help-nav{position:sticky;top:16px}.help-link{text-align:left;width:100%;color:var(--ink-2);background:0 0;border:0;border-left:3px solid #0000;border-radius:0;padding:6px 8px;display:block}.help-link.active{color:var(--ink);border-left-color:var(--accent);background:var(--accent-bg);font-weight:600}.help-toc{border-left:1px solid var(--line);flex-direction:column;gap:3px;margin-top:10px;padding-left:11px;display:flex}.help-toc a{color:var(--ink-2);font-size:12px;text-decoration:none}.help-toc a:hover{color:var(--accent)}.help-body{max-width:86ch;font-size:14px;line-height:1.65}.help-body h1{margin:0 0 12px;font-size:22px}.help-body h2{border-top:1px solid var(--line-2);margin:28px 0 8px;padding-top:10px;font-size:17px}.help-body h3{margin:18px 0 6px;font-size:15px}.help-body blockquote{border-left:4px solid var(--line);background:#f7f8fa;border-radius:0 6px 6px 0;margin:10px 0;padding:8px 14px}.help-body code{background:var(--line-2);border-radius:3px;padding:1px 5px;font-size:12.5px}.help-body pre{color:#d7dbe2;background:#15181d;border-radius:6px;padding:12px;font-size:12.5px;overflow:auto}.help-body pre code{color:inherit;background:0 0;padding:0}.help-body table{margin:8px 0 14px;font-size:13px}.help-body th{position:static}.help-body td{white-space:normal;vertical-align:top}.help-body mark{background:#ffe9a8}@media (width<=1000px){.help-layout{grid-template-columns:1fr}.help-nav{position:static}}.mode-switch{background:var(--line-2);border-radius:6px;grid-template-columns:1fr 1fr;gap:4px;margin:0 14px 6px;padding:3px;display:grid}.mode-switch button{color:var(--ink-2);white-space:nowrap;letter-spacing:-.02em;background:0 0;border:0;border-radius:4px;padding:7px 2px;font-size:12px}.mode-switch button.on{background:var(--panel);color:var(--ink);font-weight:700;box-shadow:0 1px 2px #00000014}.mode-desc{color:var(--ink-2);margin:0 20px 10px;font-size:11.5px;line-height:1.4}.nav-sep{background:var(--line-2);height:1px;margin:10px 20px}button.link{color:var(--accent,#1a5fb4);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}button.link:disabled{color:var(--muted,#888);cursor:default;text-decoration:none}.readcard{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 12px;display:grid}.readcard>div{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:8px 10px;font-size:12.5px;line-height:1.45}.readcard b{margin-bottom:2px;font-size:13px;display:block}.readcard span{color:var(--ink-2)}@media (width<=900px){.readcard{grid-template-columns:1fr 1fr}}.pos{color:var(--pass);font-weight:600}.neg{color:var(--fail);font-weight:600}.badge.lagb{font-variant-numeric:tabular-nums;text-align:center;cursor:help;min-width:4.2em}.ctlbox{border:1px solid var(--line);background:var(--panel);border-radius:4px;align-items:center;gap:4px;padding:1px 6px;display:inline-flex}.ctlbox.changed{border-color:var(--warn);background:var(--warn-bg)}.ctlbox .cl{color:var(--ink-2);font-size:11px}.ctlbox select,.ctlbox input{background:0 0;border:none;padding:1px 2px;font-size:12px}.ctlbox input{text-align:right;font-variant-numeric:tabular-nums;width:3.6em}.legend{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.problem{background:var(--panel-2,#f6f7f9);border-radius:4px;gap:4px;margin-top:8px;padding:8px 10px;display:grid}.problem .pq{grid-template-columns:44px 1fr;gap:8px;font-size:13px;line-height:1.5;display:grid}.problem .step{color:var(--ink-2);padding-top:2px;font-size:11px}.badge.srcb{white-space:nowrap;cursor:help;border:1px solid #0000;font-size:11px}.src-xlsx{color:#7a4b00;background:#fbf0d9;border-color:#ecd3a2!important}.src-ecos{color:#0b4f8a;background:#e4f0fb}.src-fred{color:#3b3f9e;background:#ebebfa}.src-yf{color:#5b2a86;background:#f1e8f8}.src-krx{color:#0f6e63;background:#e3f3f0}.src-datago{color:#1f5f2e;background:#e6f3e8}.src-derived{color:#4a5160;background:#eceff3}h4.sub{margin:14px 0 4px;font-size:13px;font-weight:600}.timeline{margin:10px 0 4px}.tl-bar{background:var(--panel-2,#f1f2f4);border-radius:4px;height:26px;position:relative;overflow:hidden}.tl-seg{color:#fff;border-right:2px solid var(--panel,#fff);white-space:nowrap;justify-content:center;align-items:center;font-size:11px;display:flex;position:absolute;top:0;bottom:0;overflow:hidden}.tl-seg span{padding:0 4px}.tl-train{background:#4a6fa5}.tl-val{background:#c08a2b}.tl-test{background:#3c8d5f}.tl-seal{background:#8a8f98}.tl-ends{color:var(--ink-2);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:2px;font-size:11px;display:flex}.model-doc{align-self:center;max-width:90ch;margin:0 0 4px}.pgroup{margin-top:6px}.pgrid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;display:grid}.pcard{border:1px solid var(--line);background:var(--panel);border-radius:6px;flex-direction:column;gap:5px;padding:8px 10px;transition:border-color .12s,box-shadow .12s;display:flex}.pcard.changed{border-color:var(--accent)}.pcard.hot{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg)}.pcard .pc-group{color:var(--ink-2);background:var(--line-2);border-radius:3px;align-self:flex-start;padding:0 5px;font-size:10.5px}.pcard .pc-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.pcard code{color:var(--ink);font-size:13px;font-weight:600}.pcard .pc-def{color:var(--ink-2);white-space:nowrap;font-size:11px}.pcard input,.pcard select{width:100%}.pcard .pc-desc{color:var(--ink-2);font-size:12px;line-height:1.45}.pcard .pc-range{color:#8a919d}.field.hot input,.field.hot select{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg)}svg.diagram{width:100%;height:auto;margin:10px 0 4px;font-family:inherit;display:block}.dg-node rect{fill:#f7f8fa;stroke:var(--line);stroke-width:1px}.dg-node.tone-data rect{fill:#eef3f9}.dg-node.tone-out rect{fill:var(--pass-bg)}.dg-node.tone-train rect{fill:#faf7ef}.dg-node.tone-opt rect{fill:#fff;stroke-dasharray:4 3}.dg-node.hot rect{stroke:var(--accent);stroke-width:2px}.dg-node{cursor:default}.dg-title{fill:var(--ink);font-size:12.5px;font-weight:600}.dg-sub{fill:var(--ink-2);font-size:10.5px}.dg-param{fill:var(--accent);font-variant-numeric:tabular-nums;font-size:11px}.dg-param.hotp,.dg-param .hotp{font-weight:700;text-decoration:underline}.dg-edge{fill:none;stroke:#9aa3b1;stroke-width:1.2px}.dg-arrowhead{fill:#9aa3b1}.vd-head{fill:var(--ink);font-size:12.5px;font-weight:600}.vd-lab,.vd-note{fill:var(--ink-2);font-size:11px}.vd-seg text{fill:#fff;pointer-events:none;font-size:11px}.vd-seg rect{stroke:#0000;stroke-width:2px}.vd-train rect{fill:#4a6fa5}.vd-val rect{fill:#c08a2b}.vd-test rect{fill:#3c8d5f}.vd-seal rect{fill:#8a8f98}.vd-gap rect{fill:#d6dae1}.vd-seg.hot rect{stroke:var(--ink)}.vd-win path{fill:none;stroke:var(--ink-2);stroke-width:1.2px}.vd-win text{fill:var(--ink-2);font-size:11px}.vd-win.hot path{stroke:var(--ink);stroke-width:2px}pre.logview{border:1px solid var(--line);white-space:pre-wrap;word-break:break-all;background:#fbfbfc;border-radius:4px;max-height:70vh;margin:0;padding:8px 10px;font-size:12px;line-height:1.45;overflow:auto}.logview .lg-dbg{color:#5b6372}.logview .lg-info{color:var(--ink)}.logview .lg-warn{color:var(--warn);background:var(--warn-bg)}.logview .lg-err{color:var(--fail);background:var(--fail-bg)}.mflow-wrap{margin:6px 0 10px}.mflow-wrap.loading svg{opacity:.55;transition:opacity .2s}svg.mflow{margin-top:4px}.mf-box rect{stroke-width:1px}.mf-data rect{fill:#eef3f9;stroke:#a9bdd6}.mf-core rect{fill:#f6f7f9;stroke:#c9ced6}.mf-filter rect{fill:#fdf6e3;stroke:#d6a63c;stroke-width:1.4px}.mf-out rect{fill:var(--pass-bg);stroke:#7fb894}.mf-loss rect{fill:#faf7ef;stroke:#d8cfb5}.mf-opt rect{fill:#fff;stroke:#b9bfc8;stroke-dasharray:4 3}.mf-t{fill:var(--ink);font-size:12.5px;font-weight:600}.mf-s{fill:#4d5563;font-size:11px}.mf-sh{fill:#5b6372;font-variant-numeric:tabular-nums;font-size:10.5px}.mf-p{fill:var(--accent);cursor:default;font-variant-numeric:tabular-nums;font-size:11px}.mf-p.hot{font-weight:700;text-decoration:underline}.mf-ar{fill:none;stroke:#8f98a6;stroke-width:1.2px}.mf-ar.dash{stroke-dasharray:4 3}.mf-head{fill:#8f98a6}.mf-bus{stroke:#a9bdd6;stroke-width:2px}.mf-cell{fill:#c8d6e8}.mf-node{fill:#fff;stroke:#8f98a6}.mf-leaf{fill:#dcefe3;stroke:#7fb894}.mf-outdot{fill:var(--pass-bg);stroke:#3c8d5f}.mf-arcA{fill:none;stroke:#4a6fa5;stroke-width:1.4px}.mf-arcM{fill:none;stroke:#c08a2b;stroke-width:1.4px;stroke-dasharray:5 3}.mf-legA{fill:#4a6fa5;font-size:11px}.mf-legM{fill:#a8761f;font-size:11px}.mf-legend .lg{vertical-align:-1px;border:1px solid;border-radius:2px;width:12px;height:10px;margin:0 4px 0 10px;display:inline-block}.mf-legend .lg:first-child{margin-left:0}.lg-data{background:#eef3f9;border-color:#a9bdd6}.lg-core{background:#f6f7f9;border-color:#c9ced6}.lg-filter{background:#fdf6e3;border-color:#d6a63c}.lg-out{background:var(--pass-bg);border-color:#7fb894}.lg-opt{background:#fff;border-style:dashed;border-color:#b9bfc8}.mf-p{cursor:pointer}.mf-p:hover{text-decoration:underline}.mf-box.hot rect{stroke:var(--accent);stroke-width:2.4px}.mf-legend2{margin-top:2px}.mf-pk{color:var(--accent);font-weight:600}.pcard.flash{animation:1.2s ease-out pcflash}@keyframes pcflash{0%{box-shadow:0 0 0 4px var(--accent-bg);border-color:var(--accent)}to{box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.pcard.flash{border-color:var(--accent);animation:none}}.pcard .pc-name{color:var(--ink);flex-direction:column;gap:1px;font-size:13px;font-weight:600;display:flex}.pcard .pc-name code{color:var(--ink-2);font-size:11px;font-weight:400}.pcard .pc-what{color:var(--ink);margin-bottom:3px}.pcard .pc-up b{color:#3c7d55;font-weight:600}.pcard .pc-down b{color:#a8761f;font-weight:600}.pcard details{color:var(--ink-2);margin-top:3px}.pcard details summary{cursor:pointer;color:#8a919d;font-size:11px}.techlist{border:1px solid var(--line);background:var(--bg);border-radius:4px;margin:6px 0 10px;padding:6px 10px}.techlist summary{cursor:pointer;font-size:13px}.techlist ul{columns:2;margin:6px 0 0;padding-left:18px;font-size:12px}.techlist li{break-inside:avoid;margin-bottom:2px}.techlist code{margin-right:4px;font-size:11px}@media (width<=800px){.techlist ul{columns:1}}.help-flow{border:1px solid var(--line);background:var(--bg);border-radius:4px;margin:10px 0 18px;padding:8px 10px;overflow-x:auto}.help-flow .mflow-wrap{min-width:900px}.easy-wrap{margin:6px 0 10px}.easy-wrap>summary{cursor:pointer;padding:4px 0;font-size:13px;font-weight:600}.easy{font-size:13px;line-height:1.55}.easy-lead{max-width:80ch;margin:4px 0 10px}.easy-lane{border:1px solid var(--line);background:#fbfcfd;border-radius:6px;margin-bottom:10px;padding:10px 12px 12px}.easy-lane.learn{background:#fdfbf5}.easy-lane-t{margin-bottom:8px;font-weight:700}.easy-steps{align-items:stretch;gap:6px;display:flex;overflow-x:auto}.easy-arrow{color:#8f98a6;flex:none;align-self:center;font-size:20px}.easy-card{background:#fff;border:1px solid #c9ced6;border-radius:6px;flex:1 1 0;min-width:210px;padding:8px 10px;position:relative}.easy-card.data{background:#eef3f9;border-color:#a9bdd6}.easy-card.filter{background:#fdf6e3;border-color:#d6a63c}.easy-card.out{background:var(--pass-bg);border-color:#7fb894}.easy-card.out.cash{background:#f3f4f6;border-color:#b9bfc8}.easy-card h5{margin:0 0 4px;font-size:13px}.easy-card p{margin:4px 0}.easy-card ul{margin:4px 0;padding-left:18px}.easy-n{color:#fff;background:#5b6372;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:grid;position:absolute;top:6px;right:8px}.easy-card table{border-collapse:collapse;width:100%;margin:4px 0;font-size:12px}.easy-card td{border-bottom:1px solid #eceff3;padding:2px 4px}.easy-card td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.easy-card tr.sum td{border-top:1.5px solid #5b6372;border-bottom:0;font-weight:700}.easy-card .rule{background:#f6f7f9;border-radius:4px;padding:4px 6px;font-weight:600}.easy-card .big{font-variant-numeric:tabular-nums;margin:6px 0;font-size:18px;font-weight:700}.easy .muted,.easy-card .muted{color:#6b7280;font-size:11.5px}@media (width<=900px){.easy-steps{flex-direction:column}.easy-arrow{transform:rotate(90deg)}}.ex{margin-top:8px}.ex-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.ex-check{margin-right:14px;display:inline-block}.ex-steps{margin:8px 0;padding-left:22px}.ex-step{border:1px solid var(--line);background:#fff;border-radius:6px;margin-bottom:14px;padding:8px 10px}.ex-step::marker{font-weight:700}.ex-step h5{margin:0 0 4px;font-size:13.5px}.ex-step>p{max-width:90ch;margin:4px 0 6px;line-height:1.6}.ex-formula{white-space:pre-wrap;background:#f6f7f9;border-radius:4px;margin:4px 0 6px;padding:6px 8px;font-size:12px}.ex-kv{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 14px;margin:4px 0;display:grid}.ex-kv div{border-bottom:1px dotted #e1e4e8;justify-content:space-between;gap:8px;font-size:12.5px;display:flex}.ex-kv dt{color:#4d5563}.ex-kv dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.ex-table-bar{justify-content:space-between;align-items:center;margin:4px 0;font-size:12px;display:flex}.ex-scroll{border:1px solid #e1e4e8;border-radius:4px;max-height:380px;overflow:auto}.ex-scroll table{border-collapse:collapse;width:max-content;min-width:100%;font-size:11.5px}.ex-scroll th{text-align:left;white-space:nowrap;z-index:1;background:#eef1f5;padding:3px 6px;position:sticky;top:0}.ex-scroll td{white-space:nowrap;border-bottom:1px solid #f0f2f5;padding:2px 6px}.ex-scroll td.num{text-align:right;font-variant-numeric:tabular-nums}
