@font-face{font-family:SUIT Variable;src:url(/fonts/SUIT-Variable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--bg:#edf0f3;--surface:#fff;--surface-2:#f4f6f8;--ink:#18222f;--ink-2:#46505e;--sub:#6a7482;--line:#dde2e8;--line-strong:#c4ccd6;--inverse:#fff;--brand:#1d3f66;--brand-ink:#132d4b;--brand-bg:#e9eef4;--brand-line:color-mix(in srgb, var(--brand) 22%, var(--surface));--off:#b03a37;--off-bg:#f7edec;--off-line:color-mix(in srgb, var(--off) 22%, var(--surface));--on:#2d6e52;--on-bg:#eaf2ee;--on-line:color-mix(in srgb, var(--on) 22%, var(--surface));--warn:#a8741a;--radius:8px;--radius-sm:6px;--shadow:0 0 0 1px var(--line)}*{box-sizing:border-box}html,body{margin:0}body{color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;letter-spacing:-.01em;font-family:SUIT Variable,Malgun Gothic,system-ui,sans-serif}button{cursor:pointer;font:inherit;letter-spacing:inherit}button:disabled{cursor:default}.center{height:100vh;color:var(--sub);place-items:center;display:grid}.login{background:var(--bg);place-items:center;min-height:100vh;padding:16px;display:grid}.login form{background:var(--surface);border-radius:var(--radius);width:100%;max-width:380px;box-shadow:var(--shadow);flex-direction:column;gap:14px;padding:36px 30px;display:flex}.login h1{letter-spacing:-.02em;color:var(--brand);margin:0;font-size:28px;font-weight:700}.login .sub{color:var(--sub);margin:-6px 0 10px;font-size:14px}.login label{color:var(--ink-2);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.login input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);padding:13px 14px;font-size:15px;transition:border-color .15s}.login input:focus{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand);outline:none}.login button{border-radius:var(--radius-sm);background:var(--brand);color:var(--inverse);border:0;margin-top:4px;padding:14px;font-size:15px;font-weight:700;transition:background .15s}.login button:hover:not(:disabled){background:var(--brand-ink)}.login .hint{color:var(--sub);text-align:center;margin:2px 0 0;font-size:12px}.error{color:var(--off);margin:0;font-size:13px;font-weight:600}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.topbar{z-index:10;background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:18px;padding:14px 22px;display:flex;position:sticky;top:0}.topbar>strong{letter-spacing:-.02em;color:var(--brand);font-size:19px;font-weight:700}.topbar>strong:before{content:"";vertical-align:-4px;background:url(/favicon.svg) 50%/contain no-repeat;width:20px;height:20px;margin-right:8px;display:inline-block}.topbar nav{background:var(--surface-2);border-radius:var(--radius);gap:4px;padding:4px;display:flex}.topbar nav button{color:var(--sub);border-radius:var(--radius-sm);background:0 0;border:0;padding:7px 16px;font-size:14px;font-weight:600;transition:all .15s}.topbar nav button.on{background:var(--surface);color:var(--brand);box-shadow:0 0 0 1px var(--line)}.topbar .who{align-items:center;gap:12px;margin-left:auto;font-size:14px;font-weight:600;display:flex}.topbar .who button{border:1px solid var(--line);background:var(--surface);color:var(--sub);border-radius:var(--radius-sm);padding:7px 13px;font-weight:600}.topbar .who button:hover{color:var(--ink);border-color:var(--line-strong)}main{flex-direction:column;flex:1;width:100%;max-width:1600px;min-height:0;margin:0 auto;padding:20px 24px 24px;display:flex;overflow-y:auto}.tab-pane{display:contents}.tab-pane[hidden]{display:none}.compare{flex-direction:column;flex:1;min-height:0;display:flex}.toolbar{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:14px;padding:16px 18px;display:flex}.mode-legend{flex-wrap:wrap;gap:10px 24px;width:100%;display:flex}.legend-item{flex:320px;align-items:center;gap:10px;display:flex}.legend-desc{color:var(--sub);font-size:13px;font-weight:500;line-height:1.5}.defense-detail{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-shrink:0;margin-bottom:14px;padding:14px 18px}.defense-detail summary{cursor:pointer;width:fit-content;color:var(--brand);align-items:center;gap:5px;font-size:14px;font-weight:700;list-style:none;display:inline-flex}.defense-detail summary::-webkit-details-marker{display:none}.defense-detail summary:after{content:"▾";font-size:11px;transition:transform .15s}.defense-detail[open] summary:after{transform:rotate(180deg)}.defense-detail ul{grid-template-columns:max-content max-content minmax(0,1fr);align-items:baseline;gap:8px 10px;margin:11px 0 2px;padding:0;list-style:none;display:grid}.defense-detail li{color:var(--ink-2);font-size:13px;line-height:1.55;display:contents}@media (width<=560px){.defense-detail ul{grid-template-columns:1fr;display:grid}.defense-detail li{display:block}.defense-detail li>b{margin-right:4px}}.defense-detail li b{color:var(--ink);font-weight:700}.defense-detail li .dsub{color:var(--sub);font-size:12px;font-weight:600}.dcode{text-align:center;min-width:64px;color:var(--sub);background:var(--surface-2);white-space:nowrap;border-radius:4px;margin:0 6px 0 0;padding:1px 7px;font-size:11px;font-weight:700;display:inline-block}.balance{text-align:right;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-size:15px;font-weight:700}.panels{flex:1;grid-auto-rows:minmax(0,1fr);gap:16px;min-height:0;display:grid}.panels.view-both{grid-template-columns:1fr 1fr}@media (width<=560px){.panels.view-both{grid-template-columns:1fr}}.composer-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-shrink:0;margin-top:16px;padding:12px 14px;transition:border-color .15s}.composer-box:focus-within{border-color:var(--brand)}.box-chips{flex-wrap:wrap;gap:7px;margin-bottom:10px;display:flex}.box-chips button{border-radius:999px;align-items:center;gap:6px;padding:6px 13px 6px 7px;font-size:13px;font-weight:600;transition:border-color .15s;display:inline-flex}.chip-kind{color:var(--inverse);border-radius:999px;padding:2px 7px;font-size:11px;font-weight:700}.chip-kind.attack{background:var(--off)}.chip-kind.reply{background:var(--brand)}.box-chips button:disabled{opacity:.45}.chip-attack{border:1px solid var(--off-line);color:var(--off);background:var(--off-bg)}.chip-attack:hover:not(:disabled){border-color:var(--off)}.chip-reply{border:1px solid var(--brand-line);color:var(--brand);background:var(--brand-bg)}.chip-reply:hover:not(:disabled){border-color:var(--brand)}.composer-box textarea{resize:none;background:0 0;border:0;outline:none;width:100%;min-height:46px;padding:2px;font-family:inherit;font-size:15px;line-height:1.5}.box-bottom{align-items:center;gap:10px;margin-top:4px;display:flex}.file-btn{border:1px solid var(--line);background:var(--surface);color:var(--sub);border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:5px;padding:8px 13px;font-size:13px;font-weight:600;display:inline-flex}.file-btn:hover:not(:disabled){color:var(--ink);border-color:var(--line-strong)}.file-btn:disabled{opacity:.5}.attach-pill{background:var(--brand-bg);border:1px solid var(--brand-line);color:var(--brand);border-radius:999px;align-items:center;gap:6px;padding:5px 6px 5px 11px;font-size:13px;font-weight:600;display:inline-flex}.attach-x{background:var(--brand-line);color:var(--brand);border:0;border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;line-height:1;display:grid}.attach-x:hover{background:var(--line-strong)}.send-btn{border-radius:var(--radius-sm);background:var(--brand);color:var(--inverse);white-space:nowrap;border:0;margin-left:auto;padding:10px 22px;font-size:15px;font-weight:700;transition:background .15s}.send-btn:hover:not(:disabled){background:var(--brand-ink)}.send-btn:disabled{background:var(--line-strong)}.placeholder{color:var(--sub);padding:10px 2px;font-size:14px}.panel{background:var(--surface);border-radius:var(--radius);min-height:180px;box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.panel header{flex-shrink:0;align-items:center;gap:10px;padding:15px 18px;display:flex}.panel.off header{background:var(--off-bg)}.panel.on header{background:var(--on-bg)}.badge{color:var(--inverse);letter-spacing:.02em;border-radius:4px;padding:4px 10px;font-size:12px;font-weight:700}.badge.off{background:var(--off)}.badge.on{background:var(--on)}.panel header .desc{color:var(--sub);font-size:12px;font-weight:600}.messages{flex-direction:column;flex:1;gap:12px;min-height:0;padding:18px;display:flex;overflow-y:auto}.msg{border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;max-width:92%;padding:12px 15px;font-size:14px;line-height:1.6}.user-block{flex-direction:column;align-self:flex-end;align-items:flex-end;gap:5px;max-width:85%;display:flex}.msg.user{background:var(--brand);color:var(--inverse);border-bottom-right-radius:2px;width:fit-content;max-width:100%}.attach-chip{background:var(--brand-bg);border:1px solid var(--brand-line);border-radius:var(--radius-sm);color:var(--brand);align-items:center;gap:6px;padding:7px 11px;font-size:13px;font-weight:600;display:inline-flex}.attach-icon{font-size:14px;display:inline-flex}.attach-icon svg{width:1em;height:1em}.attach-note{color:var(--ink-2);font-size:12px;font-weight:500}.msg.bot{background:var(--surface-2);border-bottom-left-radius:2px;align-self:flex-start;width:100%;max-width:100%}.msg.loading{color:var(--sub);align-items:center;gap:9px;font-weight:600;display:flex}.msg.error{background:var(--off-bg);color:var(--off);font-weight:600}.spinner{border:2px solid var(--line-strong);border-top-color:var(--brand);border-radius:50%;flex:none;width:15px;height:15px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.msg.bot.loading.boan{background:var(--on-bg);align-items:center;gap:12px;padding:14px 16px;display:flex}.ring-spinner{flex:none;width:34px;height:34px;position:relative}.ring-spinner i{background:var(--on);transform-origin:1.5px 15px;border-radius:2px;width:3px;height:9px;animation:1s linear infinite ringfade;position:absolute;top:2px;left:calc(50% - 1.5px)}@keyframes ringfade{0%{opacity:1}to{opacity:.15}}.boan-body{flex-direction:column;gap:2px;display:flex}.boan-title{color:var(--on);font-size:14px;font-weight:700}.boan-step{color:var(--ink-2);font-size:13px}.boan-note{color:var(--sub);margin-top:2px;font-size:11px}.reply{white-space:normal}.reply :where(img){max-width:100%}.reply :where(p){margin:0 0 8px}.reply>:first-child{margin-top:0}.reply>:last-child,.reply :where(p):last-child{margin-bottom:0}.reply :where(table){border-collapse:collapse;background:var(--surface);font-variant-numeric:tabular-nums;border-radius:4px;width:100%;margin:8px 0;font-size:13px;overflow:hidden}.reply :where(th){background:var(--brand-bg);text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:8px 10px;font-weight:700}.reply :where(td){border-bottom:1px solid var(--line);padding:8px 10px}.reply :where(tr):last-child td{border-bottom:0}.pending{border:1px solid var(--on-line);border-radius:var(--radius);background:var(--on-bg);margin-top:12px;padding:14px;font-size:14px}.pending strong{color:var(--on);margin-bottom:6px;font-size:13px;display:block}.pending button{background:var(--on);color:var(--inverse);border-radius:var(--radius-sm);border:0;width:100%;margin-top:10px;padding:10px 14px;font-weight:700}.pending .note{color:var(--sub);margin:8px 0 0;font-size:12px}.trace{border-top:1px dashed var(--line-strong);margin-top:12px;padding-top:10px;font-size:13px}.msg.bot>.trace:first-child{border-top:0;margin-top:0;padding-top:0}.trace summary{cursor:pointer;color:var(--brand);font-weight:700;list-style:none}.trace summary::-webkit-details-marker{display:none}.trace summary:before{content:"";vertical-align:-2px;background:currentColor;width:13px;height:13px;margin-right:5px;display:inline-block;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.6 2.6 3.6v3.9c0 3.2 2.2 5.8 5.4 6.9 3.2-1.1 5.4-3.7 5.4-6.9V3.6z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.6 2.6 3.6v3.9c0 3.2 2.2 5.8 5.4 6.9 3.2-1.1 5.4-3.7 5.4-6.9V3.6z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat}.trace-final{color:var(--sub);font-weight:600}.trace ol{flex-direction:column;gap:8px;margin:0;padding:12px 0 0;list-style:none;display:flex}.trace li{border-radius:var(--radius-sm);background:var(--surface);border-left:3px solid var(--sub);align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.trace li.t-ok{border-left-color:var(--on)}.trace li.t-warn{border-left-color:var(--warn)}.trace li.t-idle{border:1px dashed var(--line-strong);border-left:3px solid var(--line-strong);background:0 0}.trace li.t-idle .t-name,.trace li.t-idle .t-text{color:var(--sub)}.trace li.t-block{border-left-color:var(--off);background:var(--off-bg)}.t-layer{color:var(--sub);background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:4px;flex:none;min-width:62px;margin-top:1px;padding:2px 6px;font-size:11px;font-weight:700}.t-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.t-name{color:var(--ink);font-size:12px;font-weight:700}.t-text{color:var(--ink-2);white-space:normal;word-break:keep-all;overflow-wrap:break-word;line-height:1.5}.eval{flex-direction:column;gap:16px;display:flex}.eval-intro{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.eval-intro h2{margin:0 0 8px;font-size:19px;font-weight:700}.eval-intro p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.6}.eval-meta{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.eval-meta span{background:var(--surface-2);color:var(--sub);border-radius:4px;padding:5px 10px;font-size:12px;font-weight:600}.eval-headline{align-items:stretch;gap:12px;display:flex}.eval-headline .hl{border-radius:var(--radius);flex-direction:column;flex:1;gap:4px;padding:18px 20px;display:flex}.eval-headline .hl.off{background:var(--off-bg);border:1px solid var(--off-line)}.eval-headline .hl.on{background:var(--on-bg);border:1px solid var(--on-line)}.hl-num{font-variant-numeric:tabular-nums;font-size:32px;font-weight:700;line-height:1}.hl.off .hl-num{color:var(--off)}.hl.on .hl-num{color:var(--on)}.hl-label{color:var(--sub);font-size:13px;font-weight:600}.hl-arrow{color:var(--sub);align-self:center;font-size:24px}@media (width<=560px){.eval-headline{flex-direction:column}.hl-arrow{transform:rotate(90deg)}}.eval-section{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.eval-section h2{margin:0 0 14px;font-size:18px;font-weight:700}.eval table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.eval th{text-align:left;color:var(--sub);border-bottom:1px solid var(--line);white-space:normal;padding:10px 12px;font-weight:700}.eval td{border-bottom:1px solid var(--line);word-break:keep-all;padding:10px 12px;font-weight:600}.eval tr:last-child td,.eval tr:last-child th{border-bottom:0}.eval .bad{color:var(--off)}.eval .good{color:var(--on)}.eval .cap{color:var(--sub);margin:10px 0 0;font-size:12px;line-height:1.6}.eval .sec-lead{color:var(--ink-2);margin:-4px 0 14px;font-size:14px;line-height:1.6}.scn-name{color:var(--ink);font-weight:700;display:block}.scn-term{color:var(--ink-2);margin-top:2px;font-size:12.5px;font-weight:600;display:block}.scn-desc{color:var(--sub);margin-top:3px;font-size:12.5px;font-weight:500;line-height:1.5;display:block}.eval .empty{color:var(--sub)}.det-list{grid-template-columns:max-content max-content;align-items:center;gap:6px 10px;margin:0;padding:0;list-style:none;display:grid}.det-list li{display:contents}.det-list .det-tag{justify-self:start}.det-tag{white-space:nowrap;color:var(--sub);background:var(--surface-2);border-radius:4px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.eval .det-tag.good{color:var(--on);background:var(--on-bg)}.eval .det-tag.bad{color:var(--off);background:var(--off-bg)}.eval .det-tag.warn{color:var(--warn);background:var(--surface-2)}.det-why{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.det-why summary,.eval-howto summary{cursor:pointer;width:fit-content;color:var(--brand);font-size:14px;font-weight:700}.det-why>ul{grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:2px 10px;margin:10px 0 0;padding:0;list-style:none;display:grid}.det-why>ul>li{font-size:13px;line-height:1.6;display:contents}.det-why>ul>li>.det-tag{justify-self:start}.det-why>ul>li>:last-child{margin-bottom:10px}.det-rule{color:var(--ink-2);margin:10px 0 0;font-size:13px;line-height:1.6}.det-reason,.det-server{color:var(--ink-2);word-break:keep-all;grid-column:1/-1;display:block}.det-server{color:var(--sub)}.act-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.act-list li{word-break:keep-all;justify-content:space-between;gap:12px;display:flex}.act-count{font-variant-numeric:tabular-nums;flex:none}.act-quiet{color:var(--sub)}.eval-howto p{color:var(--ink-2);margin:12px 0 0;font-size:13px;line-height:1.6}.eval-howto dl{gap:4px;margin:12px 0 0;display:grid}.eval-howto dt{overflow-wrap:anywhere;margin-top:8px}.eval-howto dd{color:var(--sub);margin:0;font-size:13px;line-height:1.6}.eval-howto code{background:var(--surface-2);border-radius:4px;padding:2px 6px;font-family:Consolas,Courier New,monospace;font-size:12px}
