:root{--primary:#1428a0;--primary-strong:#0c1a73;--primary-soft:#e8ebf7;--primary-line:#b9c1e6;--on-primary:#fff;--surface:#f4f5f8;--surface-raised:#fff;--ink:#000;--ink-muted:#55596a;--border:#d9dce4;--border-strong:#8a8fa3;--code-bg:#0b1033;--code-ink:#e6e9f5;--radius-sm:6px;--radius-md:12px;--space-xxs:4px;--space-xs:8px;--space-sm:16px;--space-md:24px;--space-lg:32px;--space-xl:48px;--motion-instant:.1s ease-out;--motion-quick:.16s ease-out;--font-base:Pretendard,"Malgun Gothic",system-ui,sans-serif;--font-mono:"JetBrains Mono",Consolas,monospace;--doc-title:24px;--doc-heading:19px;--doc-subheading:16px;--doc-body:15px;--doc-small:13px;--size-hit-min:40px;--size-bar:56px;--shadow-float:0 8px 24px #0b10332e;--success:#1e7b45;--success-tint:#e7f4ec;--attention:#8a5a00;--attention-tint:#fff4db;--danger:#b42318;--danger-tint:#fdecea;--content-summary-max:960px;--content-list-max:1440px;--size-dialog:480px}*{box-sizing:border-box}body{background:var(--surface);color:var(--ink);font:400 var(--doc-body)/1.6 var(--font-base);margin:0}strong,b,th{font-weight:600}button,input,select{font:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.bar{z-index:10;align-items:center;gap:var(--space-sm);height:var(--size-bar);padding:0 var(--space-md);background:var(--surface-raised);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.bar .name{white-space:nowrap;font-weight:600}.tabs{gap:var(--space-xxs);scrollbar-width:none;flex:1;min-width:0;height:100%;display:flex;overflow-x:auto}.tabs a{padding:0 var(--space-sm);color:var(--ink);white-space:nowrap;border-bottom:3px solid #0000;align-items:center;text-decoration:none;display:flex}.tabs a:hover{background:var(--surface)}.tabs a[aria-current=page]{background:var(--primary-soft);border-bottom-color:var(--primary);font-weight:600}.conn{align-items:center;gap:var(--space-xs);min-height:var(--size-hit-min);padding:0 var(--space-xs);color:var(--ink);font-size:var(--doc-small);white-space:nowrap;border-radius:var(--radius-sm);text-decoration:none;display:flex}.conn:hover{background:var(--surface)}.dot{background:var(--attention);border-radius:50%;flex:none;width:8px;height:8px}.dot.ok{background:var(--success)}main{padding:var(--space-md);margin:0 auto}main.summary{max-width:var(--content-summary-max)}main.list{max-width:var(--content-list-max)}h1{font-size:var(--doc-title);margin:0 0 var(--space-sm);line-height:1.35}h2{font-size:var(--doc-heading);margin:0 0 var(--space-sm)}h3{font-size:var(--doc-subheading);margin:var(--space-sm) 0 var(--space-xs)}p{margin:var(--space-xs) 0}.muted{color:var(--ink-muted)}.small{font-size:var(--doc-small)}.card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-sm)}.row{align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.spacer{flex:1}.btn{justify-content:center;align-items:center;gap:var(--space-xs);min-height:var(--size-hit-min);padding:0 var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--primary);cursor:pointer;white-space:nowrap;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{background:var(--primary-soft)}.btn:active{background:var(--primary-line);transform:scale(.98)}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn.primary:hover{background:var(--primary-strong)}.btn.danger{color:var(--danger)}.btn.danger:hover{background:var(--danger-tint)}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}.btn.icon{width:var(--size-hit-min);padding:0}.link{color:var(--primary);font-weight:600}input[type=number],input[type=text],input[type=password],select{min-height:var(--size-hit-min);padding:0 var(--space-xs);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--ink)}input.bad{border-color:var(--danger)}.err{color:var(--danger);font-size:var(--doc-small)}label.f{margin:var(--space-sm) 0 var(--space-xxs);font-weight:600;display:block}.choices{gap:var(--space-xs);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.choice{padding:var(--space-xs) var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;background:var(--surface-raised);flex-direction:column;gap:2px;display:flex}.choice:hover{background:var(--surface)}.choice:has(input:checked){background:var(--primary-soft);border-color:var(--primary)}.choice input{opacity:0;position:absolute}.choice:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}.switch{align-items:center;gap:var(--space-xs);min-height:var(--size-hit-min);cursor:pointer;display:inline-flex}.switch input{appearance:none;background:var(--border-strong);cursor:pointer;width:40px;height:22px;transition:background var(--motion-quick);border-radius:11px;margin:0;position:relative}.switch input:after{content:"";width:16px;height:16px;transition:transform var(--motion-quick);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.switch input:checked{background:var(--primary)}.switch input:checked:after{transform:translate(18px)}.seg{border:1px solid var(--border);border-radius:var(--radius-sm);flex-wrap:wrap;display:inline-flex;overflow:hidden}.seg button{min-height:var(--size-hit-min);padding:0 var(--space-sm);background:var(--surface-raised);color:var(--ink);cursor:pointer;border:0}.seg button+button{border-left:1px solid var(--border)}.seg button:hover{background:var(--surface)}.seg button[aria-pressed=true]{background:var(--primary-soft);color:var(--primary);font-weight:600}.drop{border:2px dashed var(--border-strong);border-radius:var(--radius-md);padding:var(--space-md);text-align:center;background:var(--surface)}.drop.over{background:var(--primary-soft);border-color:var(--primary)}.subs{margin:var(--space-sm) 0 0;padding:0;list-style:none}.subs li{align-items:center;gap:var(--space-sm);min-height:48px;padding:0 0 0 var(--space-xs);border-bottom:1px solid var(--border);display:flex}.subs .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.note{gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);margin:var(--space-xs) 0;align-items:flex-start;display:flex}.note.attn{background:var(--attention-tint)}.note.dang{background:var(--danger-tint)}.note.ok{background:var(--success-tint)}.note.info{background:var(--surface)}.note ul{margin:var(--space-xxs) 0 0;padding-left:18px}.badge{min-height:24px;padding:0 var(--space-xs);border-radius:var(--radius-sm);font-size:var(--doc-small);white-space:nowrap;align-items:center;gap:4px;font-weight:600;display:inline-flex}.b-pass{background:var(--success-tint);color:var(--success)}.b-part{background:var(--attention-tint);color:var(--attention)}.b-fail{background:var(--surface);color:var(--ink-muted)}.b-rev{background:var(--danger-tint);color:var(--danger)}.b-info{background:var(--primary-soft);color:var(--primary-strong)}.table{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-raised);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{padding:var(--space-xs) var(--space-sm);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--ink-muted);background:var(--surface);font-weight:600}tbody tr.go{cursor:pointer}tbody tr.go:hover{background:var(--surface)}tbody tr:last-child td{border-bottom:0}td.num,th.num{text-align:right}.inline-in{width:72px}.prog{background:var(--surface);border-radius:4px;height:8px;overflow:hidden}.prog i{background:var(--primary);height:100%;transition:width var(--motion-quick);display:block}.prog i.done{background:var(--success)}.queue{margin:var(--space-sm) 0 0;padding:0;list-style:none}.queue li{gap:var(--space-xxs) var(--space-sm);padding:var(--space-xs) 0;border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;display:grid}.crumb{gap:var(--space-xs);margin-bottom:var(--space-sm);align-items:center;font-size:14px;display:flex}.hero{font-size:var(--doc-heading);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-sm);gap:var(--space-sm);flex-wrap:wrap;align-items:center;font-weight:600;display:flex}.hero .ico{background:var(--surface-raised);border-radius:50%;flex:none;place-items:center;width:32px;height:32px;font-size:16px;display:grid}.hero.ok{background:var(--success-tint)}.hero.attn{background:var(--attention-tint)}.hero.no{background:var(--surface-raised);border:1px solid var(--border)}.stats{gap:var(--space-xs);margin-bottom:var(--space-sm);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.stat{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm)}.stat .k{font-size:var(--doc-small);color:var(--ink-muted)}.stat .v{font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;line-height:1.3}.stat .s{font-size:var(--doc-small);color:var(--ink-muted)}.areas{gap:var(--space-xs);margin-bottom:var(--space-sm);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.area{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-sm)}.area .t{justify-content:space-between;gap:var(--space-xs);margin-bottom:var(--space-xs);font-size:14px;display:flex}.items{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md)}.ihead,.ibtn{gap:var(--space-sm);padding:0 var(--space-sm);grid-template-columns:48px minmax(0,1.3fr) 56px 150px 72px 108px minmax(0,2.4fr) 24px;align-items:center;display:grid}.ihead{min-height:40px;font-size:var(--doc-small);color:var(--ink-muted);background:var(--surface);border-bottom:1px solid var(--border);border-radius:var(--radius-md) var(--radius-md) 0 0;font-weight:600}.item{border-bottom:1px solid var(--border)}.item:last-child{border-bottom:0}.ibtn{width:100%;min-height:52px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;font-size:14px}.ibtn:hover{background:var(--surface)}.ibtn .ev{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-muted);overflow:hidden}.ibtn .chev{transition:transform var(--motion-quick);color:var(--ink-muted)}.ibtn[aria-expanded=true] .chev{transform:rotate(90deg)}.ibtn[aria-expanded=true]{background:var(--primary-soft)}.ipanel{padding:var(--space-sm) var(--space-md) var(--space-md);border-top:1px solid var(--border)}.ipanel h4{margin:var(--space-sm) 0 var(--space-xxs);font-size:14px}.ipanel h4:first-child{margin-top:0}.ipanel ul{margin:0;padding-left:18px}.calc{font-family:var(--font-mono);font-size:var(--doc-small);background:var(--surface);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);overflow-wrap:anywhere}.code{background:var(--code-bg);color:var(--code-ink);border-radius:var(--radius-sm);margin:var(--space-xxs) 0 var(--space-xs);overflow:hidden}.code .path{font:var(--doc-small) var(--font-mono);padding:var(--space-xxs) var(--space-sm);overflow-wrap:anywhere;background:#ffffff14}.code pre{padding:var(--space-xs) 0;font:var(--doc-small)/1.55 var(--font-mono);margin:0;overflow-x:auto}.code .ln{width:3.2em;padding-right:var(--space-xs);text-align:right;color:#8a93c2;-webkit-user-select:none;user-select:none;display:inline-block}.code mark{color:inherit;background:#ffd66647}.tlist{margin:0;list-style:none;padding:0!important}.tlist li{padding:var(--space-xxs) 0;border-bottom:1px dashed var(--border);font-size:14px}.tlist li:last-child{border-bottom:0}.tlist code{font:var(--doc-small) var(--font-mono)}.tlist .msg{font:var(--doc-small)/1.5 var(--font-mono);color:var(--danger);overflow-wrap:anywhere;margin:2px 0 0 1.6em;display:block}.aitab{border-collapse:collapse;width:100%;font-size:14px}.aitab td,.aitab th{white-space:normal;vertical-align:top;padding:var(--space-xxs) var(--space-xs)}.aitab td:nth-child(-n+3),.aitab th{white-space:nowrap}.hist{list-style:none;padding:0!important}.hist li{padding:var(--space-xxs) 0;font-size:14px}.pgrid{gap:var(--space-md);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}dialog{width:min(var(--size-dialog),calc(100vw - 32px));padding:var(--space-md);box-shadow:var(--shadow-float);border:0;border-radius:16px}dialog::backdrop{background:#0b103359}dialog h2{font-size:var(--doc-heading);margin:0 0 var(--space-sm)}dialog .acts{justify-content:flex-end;gap:var(--space-xs);margin-top:var(--space-md);display:flex}dialog input,dialog textarea{width:100%}textarea{min-height:80px;padding:var(--space-xs);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;resize:vertical}.mrow{gap:var(--space-sm);padding:var(--space-sm) 0;border-top:1px solid var(--border);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr) auto;align-items:end;display:grid}.mrow select{width:100%}dl.kv{gap:var(--space-xxs) var(--space-sm);grid-template-columns:10em minmax(0,1fr);margin:0;display:grid}dl.kv dt{color:var(--ink-muted)}dl.kv dd{overflow-wrap:anywhere;margin:0}.empty{text-align:center;padding:var(--space-lg) var(--space-sm);color:var(--ink-muted)}@media (prefers-reduced-motion:no-preference){.btn,.tabs a,.ibtn,.choice{transition:background-color var(--motion-instant),transform var(--motion-instant)}}@media (width<=1100px){.ihead{display:none}.ibtn{padding:var(--space-xs) var(--space-sm);grid-template-columns:44px minmax(0,1fr) auto 20px;grid-template-areas:"id t sc ch""id k st ch""id ev ev ch";row-gap:2px}.ibtn .c-id{grid-area:id;align-self:start}.ibtn .c-t{grid-area:t}.ibtn .c-sc{grid-area:sc}.ibtn .c-st{grid-area:st;justify-self:end}.ibtn .c-k{font-size:var(--doc-small);color:var(--ink-muted);grid-area:k}.ibtn .c-m{display:none}.ibtn .ev{white-space:normal;grid-area:ev}.ibtn .chev{grid-area:ch}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.pgrid{grid-template-columns:minmax(0,1fr)}}@media (width<=640px){.bar{padding:0 var(--space-sm);gap:var(--space-xs)}.bar .name,.conn .lbl{display:none}main,.card{padding:var(--space-sm)}.choices,.areas,.stats,.mrow{grid-template-columns:1fr 1fr}.mrow .desc{grid-column:1/-1}dl.kv{grid-template-columns:1fr}dl.kv dd{margin-bottom:var(--space-xs)}.ipanel{padding:var(--space-sm)}.hero{font-size:var(--doc-subheading);padding:var(--space-sm)}}@media print{.bar,.btn,.seg,.crumb,.chev{display:none!important}body{background:#fff}.ipanel{display:block!important}}.code .gap{color:#8a93c2}.stack>*+*{margin-top:var(--space-xs)}.toast{bottom:var(--space-md);background:var(--code-bg);color:var(--code-ink);padding:var(--space-xs) var(--space-md);border-radius:var(--radius-md);box-shadow:var(--shadow-float);z-index:30;position:fixed;left:50%;transform:translate(-50%)}form.card .acts,.card .acts{justify-content:flex-end;gap:var(--space-xs);margin-top:var(--space-sm);display:flex}.grid2{gap:var(--space-xs);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.mx td{text-align:center;padding:var(--space-xxs) var(--space-xs)}.mx td:first-child{text-align:left;background:var(--surface-raised);position:sticky;left:0}.mx .c-pass{color:var(--success)}.mx .c-fail{color:var(--danger)}.mx .c-partial{color:var(--attention)}.mx .c-review{color:var(--danger);font-weight:600}@media (width<=640px){.grid2{grid-template-columns:1fr 1fr}}
