.demo-page{background:var(--bg2);min-height:100vh}.demo-intro{padding:28px 0 18px}.demo-intro h1{letter-spacing:-.035em;letter-spacing:.01em;margin:6px 0 4px;font-size:32px;font-weight:900;line-height:1.4}.demo-intro p{color:var(--sub);margin:0;font-size:14px}.muted{color:var(--sub)}.small{font-size:12.5px;line-height:1.6}.link{color:var(--teal);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.steps{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;padding:0;list-style:none;display:grid}.steps li{background:var(--bg);border:1px solid var(--line);color:var(--faint);border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.step-n{background:var(--bg3);width:26px;height:26px;color:var(--faint);border-radius:50%;flex:none;place-items:center;font-size:13px;display:grid}.steps li.now{color:var(--ink);border-color:var(--teal);box-shadow:0 0 0 3px #0b7a781f}.steps li.now .step-n{background:var(--teal);color:#fff}.steps li.done{color:var(--teal2)}.steps li.done .step-n{background:var(--teal-soft);color:var(--teal2)}.hint{background:linear-gradient(90deg, var(--teal-soft), #f4fbfa);color:var(--ink);border:1px solid #0b7a7840;border-radius:12px;margin:12px 0 16px;padding:12px 16px 12px 44px;font-size:14.5px;line-height:1.7;position:relative}.hint:before{content:"→";color:#fff;background:var(--teal);border-radius:50%;place-items:center;width:20px;height:20px;margin-top:2px;font-size:12px;font-weight:800;display:grid;position:absolute;top:12px;left:14px}.hint b{color:var(--teal2)}.demo{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:stretch;gap:16px;display:grid}.chat,.outside-pane{border-radius:14px;flex-direction:column;height:max(560px,100vh - 320px);display:flex;overflow:hidden}.chat{background:var(--bg);border:1px solid #d6e2e2;box-shadow:0 24px 60px -34px #0b3c4666}.pane-head{border-bottom:1px solid var(--line2);justify-content:space-between;align-items:center;gap:12px;min-height:62px;padding:12px 18px;font-size:14px;display:flex}.pane-head strong{margin-right:6px}.pane-label{letter-spacing:.06em;color:var(--teal);font-size:11.5px;font-weight:700;display:block}.shield{white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:5px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.shield.ok,.shield.mask{color:var(--teal2);background:var(--teal-soft)}.shield.block,.shield.justify{color:var(--red);background:var(--red-soft)}.shield.warn{color:var(--amber);background:var(--amber-soft)}.chat-list{flex-direction:column;flex:1;gap:16px;padding:18px 20px;display:flex;overflow-y:auto}.chat-empty,.out-empty{color:var(--faint);margin:auto;font-size:13px}.msg{gap:10px;max-width:88%;display:flex}.msg.user{flex-direction:column;align-self:flex-end;align-items:flex-end;gap:4px}.msg .bubble{white-space:pre-wrap;word-break:break-word;font-size:14.5px;line-height:1.8}.msg.user .bubble{background:var(--bg3);border-radius:14px 14px 4px;padding:10px 14px}.msg.ai .bubble{padding-top:2px}.sent-tag{color:var(--teal2);font-size:11.5px;font-weight:600}.sent-tag.raw{color:var(--red)}.avatar{background:var(--ink);color:#fff;border-radius:8px;flex:none;place-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:grid}.typing{gap:4px;padding:8px 0;display:inline-flex}.typing i{background:var(--faint);border-radius:50%;width:6px;height:6px;animation:1s infinite blink}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes blink{0%,to{opacity:.25}50%{opacity:1}}.composer{border-top:1px solid var(--line2);background:var(--bg);padding:12px 16px 14px}.presets{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.presets>.muted{margin-right:4px}.preset{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:99px;height:32px;padding:0 14px;font-size:13px;font-weight:600}.preset:hover{border-color:var(--faint)}.preset.on{background:var(--ink);border-color:var(--ink);color:#fff}.field{border:1px solid var(--line);background:var(--bg);border-radius:12px;position:relative}.field:focus-within{border-color:var(--teal);box-shadow:0 0 0 3px #0b7a781f}.backdrop,.field textarea{font-family:var(--sans);letter-spacing:normal;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;word-break:normal;border:0;margin:0;padding:12px 14px;font-size:14.5px;line-height:1.9}.backdrop{color:#0000;pointer-events:none;position:absolute;inset:0;overflow:hidden}.backdrop mark{color:#0000;padding:0}.field textarea{resize:vertical;width:100%;height:150px;color:var(--ink);caret-color:var(--ink);background:0 0;outline:none;display:block;position:relative}.composer-foot{justify-content:space-between;align-items:center;gap:12px;margin-top:10px;display:flex}.legend{color:var(--sub);gap:14px;font-size:12px;display:flex}.legend span{align-items:center;gap:5px;display:inline-flex}.dot{border-radius:3px;width:12px;height:12px}.dot.block{background:var(--red-soft);box-shadow:inset 0 -2px 0 var(--red)}.dot.mask{background:var(--mask-soft);box-shadow:inset 0 -2px 0 var(--mask)}.dot.warn{background:var(--amber-soft);box-shadow:inset 0 -2px 0 var(--amber)}.btn.send{height:46px;padding:0 22px;font-size:15px}.kbd{font-family:var(--mono);opacity:.6;font-size:11px}.outside-pane{color:var(--ink);background:#f3f5f8;border:1.5px dashed #c5ced8}.outside-pane .pane-head{border-bottom-color:#e1e6ec}.outside-pane .pane-label{color:var(--sub)}.outside-pane .pane-head strong{color:var(--faint);font-size:13px;font-weight:600}.out-list{flex-direction:column;flex:1;gap:12px;padding:16px 18px;display:flex;overflow-y:auto}.out-empty{color:var(--faint)}.out-msg{background:#fff;border:1px solid #e1e6ec;border-radius:12px;padding:10px 12px}.out-msg p{white-space:pre-wrap;word-break:break-word;margin:4px 0 0;font-size:13.5px;line-height:1.8}.out-who{color:var(--faint);align-items:center;gap:6px;font-size:11.5px;font-weight:700;display:flex}.out-msg.live{background:#fbfefe;border:1.5px dashed #0b7a7880}.out-msg.live .out-who{color:var(--teal2)}.live-dot{background:var(--teal);border-radius:50%;width:7px;height:7px;animation:1.4s infinite blink}.out-warn{color:var(--red);margin-top:6px;font-size:12px;font-weight:700;display:inline-block}.vault-box{color:var(--ink2);border-top:1px solid #e1e6ec;padding:12px 18px;font-size:12.5px}.vault-box summary{cursor:pointer;justify-content:space-between;gap:8px;font-weight:700;display:flex}.vault-box summary:before{content:"🔒";margin-right:2px}.vault-box summary .num{white-space:nowrap;color:var(--teal2);margin-left:auto}.vault-box p{color:var(--sub);margin:8px 0 0}.vault{border-collapse:collapse;width:100%;margin-top:8px;font-size:12.5px}.vault td{border-bottom:1px solid #e1e6ec;padding:5px 4px}.vault td:first-child{width:45%}.next{background:var(--teal-soft);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding:12px 16px;font-size:14px;display:flex}.next strong{color:var(--teal2);margin-right:6px}.settings{background:var(--bg);border:1px solid var(--line);border-radius:12px;margin:16px 0 48px}.settings summary{cursor:pointer;align-items:baseline;gap:10px;padding:14px 18px;font-size:14px;list-style:none;display:flex}.settings summary::-webkit-details-marker{display:none}.settings summary:before{content:"▸";color:var(--teal);transition:transform .15s}.settings[open] summary:before{transform:rotate(90deg)}.settings summary>span{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:inline-flex}.settings-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px;padding:4px 18px 18px;display:grid}.settings h3{margin:0 0 6px;font-size:13.5px}.rules{border-collapse:collapse;width:100%;font-size:12.5px}.rules th,.rules td{border-bottom:1px solid var(--line2);vertical-align:middle;text-align:left;padding:6px 4px}.rules th{font-weight:600}.rules th small{color:var(--faint);font-size:11px;font-weight:400;display:block}.rules select{border:1px solid var(--line);background:var(--bg);border-radius:6px;width:100%;padding:4px 6px;font-size:12.5px}.dict{margin:10px 0;padding:0;font-size:13px;list-style:none}.dict li{border-bottom:1px solid var(--line2);align-items:baseline;gap:8px;padding:6px 0;display:flex}.dict li .link{margin-left:auto}.dict-add{gap:6px;display:flex}.dict-add input{border:1px solid var(--line);border-radius:6px;flex:1;min-width:0;height:34px;padding:0 8px;font-size:13px}.dict-add input.tag{flex:0 0 64px}.overlay{z-index:50;background:#0b1b2b73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--bg);border-radius:14px;width:min(640px,100%);max-height:calc(100vh - 32px);padding:22px 24px;overflow-y:auto;box-shadow:0 20px 60px #0b1b2b40}.modal-head{color:var(--teal2);align-items:center;gap:8px;display:flex}.modal-head h2{color:var(--ink);margin:0;font-size:18px}.modal-lede{color:var(--sub);margin:6px 0 12px;font-size:13.5px}.close{cursor:pointer;color:var(--faint);background:0 0;border:0;margin-left:auto;font-size:22px}.found{border:1px solid var(--line);border-radius:10px;max-height:46vh;margin:0;padding:0;list-style:none;overflow-y:auto}.found li{border-bottom:1px solid var(--line2);grid-template-columns:64px 92px minmax(0,1fr) 18px auto;align-items:center;gap:8px;padding:9px 12px;font-size:13.5px;display:grid}.found li:last-child{border-bottom:0}.found li.block,.found li.justify{background:#fff8f7}.found .chip{justify-self:start}.found-kind{color:var(--sub);font-size:12.5px}.found-orig{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.found-arrow{color:var(--faint);text-align:center}.found-same{color:var(--faint);font-size:12px}.note.block{color:var(--red);background:var(--red-soft);border-radius:8px;margin:12px 0 0;padding:8px 12px;font-size:13px}.reason{margin-top:12px;font-size:13px;display:block}.reason input{border:1px solid var(--line);border-radius:8px;width:100%;height:38px;margin-top:4px;padding:0 10px;display:block}.modal-foot{justify-content:flex-end;align-items:center;gap:8px;margin-top:18px;display:flex}.btn.ghost{color:var(--sub);border-color:#0000;margin-right:auto;padding:0 8px}.btn.big{height:48px;padding:0 24px;font-size:15px}@media (max-width:960px){.demo{grid-template-columns:1fr}.chat,.outside-pane{height:auto}.chat-list{min-height:120px;max-height:420px}.out-list{max-height:360px}.settings-grid{grid-template-columns:1fr}}@media (max-width:560px){.steps{grid-template-columns:1fr 1fr 1fr;gap:4px}.steps li{text-align:center;flex-direction:column;gap:4px;padding:8px 4px;font-size:11.5px;line-height:1.4}.pane-head .muted,.legend{display:none}.btn.send{flex:1}.found li{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"chip kind kind""orig orig ph";row-gap:2px}.found .chip{grid-area:chip}.found-kind{grid-area:kind}.found-orig{grid-area:orig}.found-arrow{display:none}.found .ph,.found-same{grid-area:ph}.modal{padding:18px 16px}.modal-foot{flex-wrap:wrap}.modal-foot .btn{flex:1}.modal-foot .btn.teal{flex-basis:100%;order:-1}.btn.ghost{margin-right:0}}
