:root{--bg: #f2efe9;--sidebar-bg: #fbf9f6;--main-bg: #f6f3ed;--panel: #ffffff;--panel-soft: #f7f4ef;--panel-inset: #efeae1;--ink: #1b1917;--ink-soft: #4a4642;--ink-muted: #8f887f;--line: #e7e1d8;--line-soft: #efeae2;--line-strong: #d5cdc1;--accent: #c0392b;--accent-deep: #a52f23;--accent-soft: #fdf2f0;--accent-line: #eecdc7;--ok: #2f7d5d;--ok-soft: #eef7f2;--warn: #a9761b;--warn-soft: #fdf7e9;--error: #b3261e;--error-soft: #fdeeec;--font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-serif: "Songti SC", "Source Han Serif SC", "Noto Serif CJK SC", Georgia, serif;--font-mono: "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--radius-sm: 6px;--radius: 9px;--radius-lg: 13px;--radius-xl: 18px;--sidebar-w: 300px;--sh-1: 0 1px 2px rgba(32, 27, 22, .05);--sh-2: 0 2px 8px -2px rgba(32, 27, 22, .09), 0 1px 2px rgba(32, 27, 22, .04);--sh-3: 0 14px 34px -14px rgba(32, 27, 22, .24), 0 4px 10px -6px rgba(32, 27, 22, .1);--ease: cubic-bezier(.22, .61, .36, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur: .18s;--dur-slow: .28s}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:.2px}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit;letter-spacing:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;letter-spacing:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::selection{background:var(--accent-soft);color:var(--accent)}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d9d2c7;border-radius:6px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#bfb6a8;background-clip:content-box}.app{display:flex;flex-direction:column;height:100%}.app-body{display:flex;flex:1;min-height:0}.topbar{display:flex;align-items:center;gap:14px;height:58px;padding:0 20px;background:#ffffffd1;-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--line);flex-shrink:0;position:relative;z-index:20}.brand{display:flex;align-items:center;gap:10px}.brand-icon{width:26px;height:26px;border-radius:7px;display:block;box-shadow:0 1px 3px #c0392b47}.brand-mark{font-family:var(--font-serif);font-size:16.5px;font-weight:700;letter-spacing:.06em;color:var(--ink);line-height:1}.brand-sub{font-size:10px;color:var(--ink-muted);letter-spacing:.18em;text-transform:uppercase;padding-left:2px;border-left:1px solid var(--line-strong);margin-left:2px;line-height:1}.topbar-spacer{flex:1}.topbar-stat{display:flex;align-items:baseline;gap:4px;font-size:11.5px;color:var(--ink-muted);font-variant-numeric:tabular-nums}.topbar-stat strong{color:var(--ink-soft);font-weight:600;font-size:12.5px}.dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.dot-ok{background:var(--ok);box-shadow:0 0 0 3px #2f7d5d1f}.dot-warn{background:var(--warn);animation:pulse 1.4s var(--ease) infinite}.dot-error{background:var(--error)}.dot-idle{background:#cfc7ba}@keyframes pulse{0%,to{box-shadow:0 0 #a9761b59}50%{box-shadow:0 0 0 4px #a9761b00}}.sidebar{width:var(--sidebar-w);flex-shrink:0;border-right:1px solid var(--line);background:var(--sidebar-bg);display:flex;flex-direction:column;min-height:0;overflow:hidden}.side-section{padding:14px 16px;border-bottom:1px solid var(--line-soft);flex-shrink:0}.side-section:last-child{border-bottom:none}.nav-section{flex:1;min-height:0;overflow-y:auto;padding-bottom:20px}.side-title{display:flex;align-items:center;justify-content:space-between;font-size:10.5px;font-weight:600;letter-spacing:.16em;color:var(--ink-muted);text-transform:uppercase;margin-bottom:10px}.side-title .count{font-family:var(--font-mono);font-size:10px;letter-spacing:0;color:var(--ink-muted);text-transform:none}.file-row{display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);text-align:left;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.file-row:hover{border-color:var(--line-strong);box-shadow:var(--sh-1)}.file-row-icon{font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:2px 4px;flex-shrink:0}.file-row-name{flex:1;min-width:0;font-size:12px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row-swap{font-size:11px;color:var(--accent);flex-shrink:0;opacity:0;transition:opacity var(--dur) var(--ease)}.file-row:hover .file-row-swap{opacity:1}.dropzone{display:flex;flex-direction:column;align-items:center;gap:3px;padding:20px 12px 18px;border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--panel);cursor:pointer;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),transform var(--dur) var(--ease)}.dropzone:hover{border-color:var(--accent-line);background:var(--accent-soft)}.dropzone.over{border-color:var(--accent);background:var(--accent-soft);transform:scale(.985)}.dropzone-icon{color:var(--ink-muted);margin-bottom:4px;transition:color var(--dur) var(--ease),transform var(--dur) var(--ease);display:flex}.dropzone:hover .dropzone-icon{color:var(--accent);transform:translateY(-1px)}.dropzone-main{font-size:12.5px;color:var(--ink-soft)}.dropzone-hint{font-size:11px;color:var(--ink-muted)}.paste-toggle{margin-top:8px;width:100%;padding:6px 0;border-radius:var(--radius-sm);font-size:11.5px;color:var(--ink-muted);transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.paste-toggle:hover{color:var(--accent);background:var(--accent-soft)}.paste-wrap{animation:slide-down var(--dur-slow) var(--ease-out) both}.paste-area{margin-top:8px;width:100%;min-height:140px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius);font-family:var(--font-mono);font-size:11.5px;line-height:1.7;resize:vertical;background:var(--panel);outline:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.paste-area:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.paste-actions{display:flex;gap:6px;margin-top:7px}.side-collapse{display:flex;align-items:center;gap:7px;width:100%;text-align:left;padding:2px 0;color:var(--ink-muted)}.side-collapse-title{font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;flex-shrink:0}.side-collapse-value{flex:1;min-width:0;font-size:11.5px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:0}.side-collapse-action{font-size:11px;color:var(--accent);flex-shrink:0;opacity:.75}.side-collapse:hover .side-collapse-action{opacity:1}.side-collapse-body{margin-top:12px;animation:slide-down var(--dur-slow) var(--ease-out) both}.field{margin-bottom:10px}.field:last-child{margin-bottom:0}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field-label{display:block;font-size:11px;color:var(--ink-muted);margin-bottom:4px;letter-spacing:.02em}.field-input,.field-textarea{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--panel);outline:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease);font-size:12.5px}.field-textarea{min-height:60px;resize:vertical;line-height:1.65;font-size:12px}.field-input:focus,.field-textarea:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.field-input::placeholder,.field-textarea::placeholder{color:#bcb5ab}.field-hint{margin-top:4px;font-size:11px;color:var(--ink-muted);line-height:1.6}.tag-row{display:flex;flex-wrap:wrap;gap:4px;margin:-2px 0 10px}.tag{font-size:10.5px;padding:1px 7px;border-radius:20px;background:var(--panel-inset);color:var(--ink-soft)}.nav-group+.nav-group{margin-top:16px}.nav-group-label{font-size:10px;letter-spacing:.14em;color:var(--ink-muted);text-transform:uppercase;margin-bottom:6px;padding-left:2px}.nav-item{position:relative;display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border-radius:var(--radius);text-align:left;transition:background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.nav-item:hover{background:#00000007}.nav-item.active{background:var(--panel);box-shadow:var(--sh-1)}.nav-item.active:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:2px;border-radius:2px;background:var(--accent)}.nav-mark{width:24px;height:24px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:600;color:var(--ink-muted);background:var(--panel-inset);flex-shrink:0;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.nav-item:hover .nav-mark{color:var(--ink-soft)}.nav-item.active .nav-mark{background:var(--accent);color:#fff}.nav-item-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:1px}.nav-item-name{font-size:12.5px;font-weight:500;color:var(--ink);line-height:1.35}.nav-item.active .nav-item-name{font-weight:600}.nav-item-meta{font-size:10px;color:var(--ink-muted);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-badge{font-size:9px;padding:1px 5px;border-radius:3px;background:var(--panel-inset);color:var(--ink-muted);letter-spacing:.04em;flex-shrink:0;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.nav-item.active .nav-badge{background:var(--accent-soft);color:var(--accent)}.main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--main-bg)}.main-head{padding:16px 28px 13px;border-bottom:1px solid var(--line);flex-shrink:0}.head-row{display:flex;align-items:flex-start;gap:16px}.head-title{min-width:0;flex:1}.main-title{margin:0;font-family:var(--font-serif);font-size:20px;font-weight:700;letter-spacing:.02em;line-height:1.25;color:var(--ink)}.main-hint{margin:3px 0 0;font-size:11.5px;color:var(--ink-muted);line-height:1.5}.head-tools{display:flex;align-items:center;gap:10px;flex-shrink:0;padding-top:3px}.limit-chip{font-size:10.5px;color:var(--ink-muted);line-height:1.4;max-width:260px;text-align:right;font-variant-numeric:tabular-nums}.limit-chip:before{content:"限制";display:inline-block;margin-right:5px;color:var(--warn);font-weight:600;letter-spacing:.08em}.view-switch{flex-shrink:0}.stats-bar{display:flex;flex-wrap:wrap;align-items:baseline;margin-top:9px;font-size:11.5px;color:var(--ink-muted);font-variant-numeric:tabular-nums;line-height:1.6}.stat-chip{display:inline-flex;align-items:baseline;gap:4px}.stat-chip+.stat-chip:before{content:"·";margin:0 8px;color:var(--line-strong)}.stat-chip .stat-label{color:var(--ink-muted);opacity:.85}.stat-chip.warn{color:var(--warn)}.stat-chip.error{color:var(--error);font-weight:600}.stat-chip.ok{color:var(--ok)}.preview-scroll{flex:1;overflow-y:auto;padding:20px 28px 32px;min-height:0}.stage{animation:stage-in var(--dur-slow) var(--ease-out) both}@keyframes stage-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}@keyframes slide-down{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.notice-holder{max-width:780px;margin:0 auto 14px}.notice-stack{border:1px solid var(--warn-soft);border-left:3px solid var(--warn);border-radius:var(--radius);background:#fffdf6;overflow:hidden}.notice-stack.level-error{border-color:var(--error-soft);border-left-color:var(--error);background:snow}.notice-stack.level-info{border-color:var(--line);border-left-color:var(--line-strong);background:var(--panel-soft)}.notice-line{display:flex;align-items:center;gap:9px;padding:9px 12px;font-size:12px;line-height:1.6;color:#7d5a15}.notice-stack.level-error .notice-line{color:var(--error)}.notice-stack.level-info .notice-line{color:var(--ink-soft)}.notice-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;background:var(--warn);margin-top:1px}.notice-dot.level-error{background:var(--error)}.notice-dot.level-info{background:var(--line-strong)}.notice-text{flex:1;min-width:0;text-wrap:pretty}.notice-more{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:inherit;opacity:.7;flex-shrink:0;padding:2px 6px;border-radius:4px;transition:opacity var(--dur) var(--ease),background var(--dur) var(--ease)}.notice-more:hover{opacity:1;background:#0000000a}.notice-action{flex-shrink:0}.notice-list{margin:0;padding:2px 12px 9px;list-style:none;border-top:1px dashed rgba(0,0,0,.06);animation:slide-down var(--dur) var(--ease-out) both}.notice-item{display:flex;align-items:baseline;gap:9px;padding:4px 0;font-size:11.5px;line-height:1.65;color:var(--ink-soft)}.notice-item.level-error{color:var(--error)}.details{max-width:780px;margin:0 auto 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden}.details-inline{margin:0;max-width:360px;border-color:var(--line)}.details summary{display:flex;align-items:center;gap:6px;padding:7px 11px;font-size:11.5px;color:var(--ink-muted);cursor:pointer;list-style:none;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.details summary:hover{color:var(--ink-soft);background:var(--panel-soft)}.details summary::-webkit-details-marker{display:none}.details summary:before{content:"▸";font-size:9px;transition:transform var(--dur) var(--ease)}.details[open] summary:before{transform:rotate(90deg)}.details-body{padding:8px 11px 10px;font-size:11px;font-family:var(--font-mono);line-height:1.85;color:var(--ink-muted);max-height:240px;overflow-y:auto;word-break:break-word;border-top:1px solid var(--line-soft)}.source-card{max-width:780px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--sh-1);overflow:hidden}.source-head{display:flex;align-items:center;gap:10px;padding:8px 16px;border-bottom:1px solid var(--line-soft);background:var(--panel-soft)}.source-lang{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.source-note{margin-left:auto;font-size:11px;color:var(--ink-muted)}.code-preview{font-family:var(--font-mono);font-size:12px;line-height:1.8;white-space:pre-wrap;word-break:break-word;color:var(--ink-soft);margin:0;padding:20px 22px;max-height:68vh;overflow:auto}.rich-preview{max-width:720px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--sh-2);padding:34px 32px;overflow-wrap:break-word}.rich-preview img{max-width:100%;height:auto}.md-preview-wrap{max-width:760px;margin:0 auto}.md-preview{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--sh-2);padding:44px 52px 52px;color:var(--ink);font-size:16px;line-height:1.92;letter-spacing:.015em;overflow-wrap:break-word}.md-preview>:first-child{margin-top:0}.md-preview p{margin:0 0 1.15em;color:#24211e;text-wrap:pretty}.md-preview h1,.md-preview h2,.md-preview h3,.md-preview h4{font-family:var(--font-serif);color:var(--ink);letter-spacing:.01em;line-height:1.4}.md-preview h1{font-size:26px;margin:0 0 .8em}.md-preview h2{font-size:20px;margin:1.9em 0 .72em;padding-bottom:.34em;border-bottom:1px solid var(--line)}.md-preview h3{font-size:17px;margin:1.6em 0 .6em}.md-preview h4{font-size:15.5px;margin:1.4em 0 .5em}.md-preview strong{font-weight:600;color:#12100e}.md-preview em{font-style:italic}.md-preview a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--accent-line);transition:text-decoration-color var(--dur) var(--ease)}.md-preview a:hover{text-decoration-color:var(--accent)}.md-preview ul,.md-preview ol{margin:0 0 1.15em;padding-left:1.5em}.md-preview li{margin:.34em 0}.md-preview li::marker{color:var(--ink-muted)}.md-preview blockquote{margin:1.4em 0;padding:.1em 0 .1em 1.1em;border-left:2px solid var(--line-strong);color:var(--ink-soft)}.md-preview blockquote p:last-child{margin-bottom:0}.md-preview code{font-family:var(--font-mono);font-size:.87em;background:var(--panel-inset);padding:.12em .36em;border-radius:4px;color:#8a3a2e}.md-preview pre{margin:1.4em 0;padding:16px 18px;background:#1e1c1a;border-radius:var(--radius);overflow-x:auto;line-height:1.72}.md-preview pre code{background:none;color:#e6e0d6;font-size:12.5px;padding:0}.md-preview img{max-width:100%;height:auto;border-radius:var(--radius);display:block;margin:1.4em auto;box-shadow:var(--sh-2)}.md-preview hr{border:none;border-top:1px solid var(--line);width:42%;margin:2.4em auto}.md-preview table{width:100%;border-collapse:collapse;margin:1.4em 0;font-size:14px}.md-preview th,.md-preview td{border:1px solid var(--line);padding:7px 10px;text-align:left}.md-preview th{background:var(--panel-soft);font-weight:600}.md-preview .footnotes{margin-top:2.6em;padding-top:1.1em;border-top:1px solid var(--line);font-size:13px;color:var(--ink-muted)}.md-preview .footnotes ol{padding-left:1.2em}.panel-card{max-width:820px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--sh-2);padding:22px 24px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:340px;gap:4px;text-align:center;padding:24px}.empty-art{position:relative;width:78px;height:96px;margin-bottom:22px}.empty-art span{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8px;border:1px solid var(--line);background:var(--panel);box-shadow:var(--sh-1);transition:transform var(--dur-slow) var(--ease-out)}.empty-art span:nth-child(1){transform:translate(-13px,-6px) rotate(-7deg);opacity:.45}.empty-art span:nth-child(2){transform:translate(-2px,-1px) rotate(-2.5deg);opacity:.75}.empty-art span:nth-child(3){transform:translate(9px,6px) rotate(2.5deg)}.empty-art span:nth-child(3):after{content:"";position:absolute;left:14px;right:14px;top:22px;height:3px;border-radius:2px;background:var(--accent);opacity:.55;box-shadow:0 12px 0 -.5px var(--line-strong),0 24px 0 -.5px var(--line-strong),0 36px 0 -.5px var(--line-strong)}.empty-text{font-family:var(--font-serif);font-size:16px;font-weight:700;color:var(--ink-soft);letter-spacing:.02em}.empty-hint{font-size:12px;color:var(--ink-muted);max-width:330px;line-height:1.8;margin-top:5px}.empty-steps{display:flex;gap:18px;margin-top:22px;font-size:11.5px;color:var(--ink-muted)}.empty-steps span{display:inline-flex;align-items:center;gap:6px}.empty-steps b{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;background:var(--panel-inset);color:var(--ink-soft);font-size:9.5px;font-weight:600}.actionbar{display:flex;align-items:center;gap:8px;padding:11px 28px;border-top:1px solid var(--line);background:#ffffffe6;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);flex-shrink:0;flex-wrap:wrap;position:relative;z-index:10}.actionbar-spacer{flex:1}.actionbar-note{font-size:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border-radius:var(--radius-sm);font-size:12.5px;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink-soft);white-space:nowrap;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform 90ms var(--ease)}.btn:hover:not(:disabled){background:var(--panel);border-color:#c4bbac;color:var(--ink);box-shadow:var(--sh-1)}.btn:active:not(:disabled){transform:translateY(1px);box-shadow:none}.btn:disabled{opacity:.42;cursor:not-allowed}.btn-primary{background:var(--ink);border-color:var(--ink);color:#fff;font-weight:500}.btn-primary:hover:not(:disabled){background:#000;border-color:#000;color:#fff}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:500;box-shadow:0 1px 2px #c0392b3d}.btn-accent:hover:not(:disabled){background:var(--accent-deep);border-color:var(--accent-deep);color:#fff;box-shadow:0 3px 10px -3px #c0392b80}.btn-sm{padding:5px 10px;font-size:11.5px}.btn-quiet{border-color:transparent;background:transparent;color:var(--ink-muted)}.btn-quiet:hover:not(:disabled){background:var(--panel-soft);border-color:var(--line);color:var(--ink)}.toast-layer{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:200;pointer-events:none}.toast{display:flex;align-items:center;gap:8px;padding:9px 16px;border-radius:10px;background:#1b1917f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;font-size:12.5px;box-shadow:var(--sh-3);animation:toast-in var(--dur-slow) var(--ease-out);max-width:460px}.toast.error{background:#b3261ef5}.toast.success{background:#2f7d5df5}@keyframes toast-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b19174d;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:150;padding:24px;animation:fade-in var(--dur) var(--ease) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--panel);border-radius:var(--radius-xl);width:100%;max-width:480px;max-height:84vh;overflow-y:auto;box-shadow:0 32px 70px -24px #1b19176b;animation:modal-in var(--dur-slow) var(--ease-out) both}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:1}.modal-title{font-family:var(--font-serif);font-size:16px;font-weight:700;letter-spacing:.02em}.modal-body{padding:18px 20px}.modal-foot{padding:13px 20px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px;position:sticky;bottom:0;background:var(--panel)}.icon-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--ink-muted);font-size:15px;line-height:1;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.icon-btn:hover{background:var(--panel-soft);color:var(--ink)}.segmented{display:inline-flex;padding:2px;background:var(--panel-inset);border-radius:7px;gap:2px}.segmented button{padding:4px 11px;border-radius:5px;font-size:11.5px;color:var(--ink-muted);transition:background var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.segmented button:hover{color:var(--ink-soft)}.segmented button.active{background:var(--panel);color:var(--ink);font-weight:500;box-shadow:0 1px 2px #201b161a}.studio{display:flex;gap:26px;align-items:flex-start}.studio-canvas{flex-shrink:0}.studio-panel{flex:1;min-width:0}.card-frame{width:540px;height:720px;position:relative;overflow:hidden;border-radius:2px;box-shadow:var(--sh-3)}.card-scale{transform-origin:top left}.card-list{display:flex;flex-direction:column;gap:7px}.card-item{display:flex;align-items:center;gap:10px;padding:7px 9px;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),box-shadow var(--dur) var(--ease);text-align:left;width:100%}.card-item:hover{border-color:var(--line-strong);box-shadow:var(--sh-1)}.card-item.active{border-color:var(--accent-line);background:var(--accent-soft)}.card-thumb{position:relative;display:flex;align-items:stretch;gap:4px;padding:6px 6px 6px 5px;width:34px;height:45px;border-radius:3px;overflow:hidden;flex-shrink:0;border:1px solid var(--line)}.card-thumb-bar{width:2px;border-radius:1px;flex-shrink:0;opacity:.9}.card-thumb-lines{flex:1;border-radius:1px;opacity:.28;background-image:repeating-linear-gradient(to bottom,currentColor 0 1px,transparent 1px 5px)}.card-item-body{min-width:0;flex:1}.card-item-title{font-size:12.5px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-item-sub{font-size:10.5px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-row{display:flex;gap:7px;flex-wrap:wrap}.theme-chip{display:flex;align-items:center;gap:7px;padding:5px 10px;border:1px solid var(--line);border-radius:20px;font-size:11.5px;color:var(--ink-soft);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease)}.theme-chip:hover{border-color:var(--line-strong)}.theme-chip.active{border-color:var(--accent-line);color:var(--accent);background:var(--accent-soft)}.theme-swatch{width:11px;height:11px;border-radius:3px;border:1px solid rgba(0,0,0,.12)}.ai-result{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:12px;background:var(--panel)}.ai-result-head{display:flex;align-items:baseline;gap:8px;padding:8px 13px;background:var(--panel-soft);border-bottom:1px solid var(--line-soft)}.ai-result-title{font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--ink-muted);text-transform:uppercase}.ai-result-body{padding:13px;font-size:13px;line-height:1.85;white-space:pre-wrap;word-break:break-word}.ai-result-foot{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:9px 13px;border-top:1px solid var(--line-soft);font-size:11.5px;color:var(--ink-muted)}.thread-item{padding:12px 13px;border-bottom:1px solid var(--line-soft);transition:background var(--dur) var(--ease)}.thread-item:hover{background:#fdfcfa}.thread-item:last-child{border-bottom:none}.thread-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.thread-no{font-family:var(--font-mono);font-size:10.5px;color:var(--accent);font-weight:600}.thread-len{font-family:var(--font-mono);font-size:10px;color:var(--ink-muted);margin-left:auto;font-variant-numeric:tabular-nums}.thread-len.over{color:var(--error);font-weight:600}.topbar-ai{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-muted);border:1px solid transparent;border-radius:20px;padding:3px 10px;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.topbar-ai:hover{border-color:var(--line);background:var(--panel);color:var(--ink-soft)}.topbar-ai.idle{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-line);font-weight:500}.topbar-ai.idle:hover{background:#fbe7e4}.ai-panel{display:flex;flex-direction:column;gap:18px}.connect-banner{display:flex;align-items:center;gap:16px;padding:13px 15px;border:1px solid var(--accent-line);border-radius:var(--radius);background:linear-gradient(180deg,#fdf5f3,var(--accent-soft))}.connect-banner-text{flex:1;min-width:0}.connect-banner-title{font-size:12.5px;font-weight:600;color:var(--accent);margin-bottom:3px}.connect-banner-sub{font-size:11.5px;line-height:1.7;color:var(--ink-soft)}.connect-banner .btn{flex-shrink:0}.ai-toolbar{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line-soft)}.ai-toolbar-left{display:flex;align-items:center;gap:9px}.ai-toolbar-label{font-size:10.5px;color:var(--ink-muted);letter-spacing:.06em}.ai-toolbar-model{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--ink-muted);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.digest-block{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);overflow:hidden;transition:box-shadow var(--dur) var(--ease)}.digest-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--panel-soft)}.digest-toggle{display:flex;align-items:center;gap:8px;flex:1;min-width:0;text-align:left}.caret{display:inline-block;font-size:9px;color:var(--ink-muted);transition:transform var(--dur) var(--ease)}.caret.open{transform:rotate(90deg)}.digest-bar-title{font-size:12px;font-weight:600;color:var(--ink)}.digest-bar-count{font-family:var(--font-mono);font-size:10px;color:var(--ink-muted)}.digest-bar-actions{display:flex;gap:6px;flex-shrink:0}.digest-body{padding:14px;border-top:1px solid var(--line-soft);animation:slide-down var(--dur) var(--ease-out) both}.digest-stream{max-height:150px;overflow-y:auto;padding:8px 10px;margin-bottom:12px;background:var(--panel-soft);border-radius:var(--radius-sm);font-size:10.5px;line-height:1.7;color:var(--ink-muted);white-space:pre-wrap;word-break:break-all}.digest-oneliner{padding-bottom:14px;margin-bottom:14px;border-bottom:1px dashed var(--line)}.digest-oneliner-foot{display:flex;align-items:center;gap:8px;margin-top:5px;font-size:10.5px}.digest-list{display:flex;flex-direction:column;gap:15px}.digest-item{padding-left:11px;border-left:2px solid var(--line-soft);transition:border-color var(--dur) var(--ease)}.digest-item:hover,.digest-item:focus-within{border-left-color:var(--accent-line)}.digest-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}.digest-num{font-family:var(--font-mono);font-size:10px;color:var(--accent);font-weight:600;flex-shrink:0;font-variant-numeric:tabular-nums}.digest-title{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.5;word-break:break-word}.digest-src{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;color:var(--ink-muted);flex-shrink:0;white-space:nowrap}.digest-input{width:100%;background:var(--panel-soft);font-size:12px;line-height:1.75}.digest-input:focus{background:var(--panel)}.digest-item-foot{display:flex;justify-content:flex-end;margin-top:2px}.ai-stage{padding-top:2px}.ai-stage-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.ai-stage-no{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-family:var(--font-mono);font-size:10px;font-weight:600;flex-shrink:0}.ai-stage-title{font-size:12.5px;font-weight:600}.ai-stage-status{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-muted)}.ai-stage-status.done{color:var(--ok)}.ai-stage-head .btn{margin-left:auto}.ai-stream{max-height:190px;overflow-y:auto;padding:10px 12px;margin-bottom:12px;background:var(--panel-soft);border-radius:var(--radius-sm);font-size:10.5px;line-height:1.7;color:var(--ink-muted);white-space:pre-wrap;word-break:break-all}.stage-empty{padding:30px 20px;text-align:center;border:1px dashed var(--line-strong);border-radius:var(--radius);background:#fcfbf8}.stage-empty-title{font-size:13px;font-weight:600;color:var(--ink-soft)}.stage-empty-hint{margin-top:5px;font-size:11.5px;color:var(--ink-muted);line-height:1.7}.stage-empty-arrow{margin-top:12px;font-size:11px;color:var(--accent);opacity:.8}.preset-row{display:flex;flex-wrap:wrap;gap:6px}.preset-chip{padding:4px 11px;border:1px solid var(--line);border-radius:20px;font-size:11.5px;color:var(--ink-soft);background:var(--panel);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease)}.preset-chip:hover{border-color:var(--line-strong);background:var(--panel-soft)}.preset-chip.active{border-color:var(--accent-line);color:var(--accent);background:var(--accent-soft);font-weight:600}.preset-note{margin-top:8px;font-size:11px;color:var(--ink-muted);line-height:1.7}.key-row{display:flex;gap:6px}.key-row .field-input{flex:1}.check-row{display:flex;align-items:flex-start;gap:7px;margin-top:12px;font-size:11.5px;color:var(--ink-soft);line-height:1.6;cursor:pointer}.check-row input{margin-top:2px;flex-shrink:0;accent-color:var(--accent)}.ping-row{display:flex;align-items:center;gap:10px;margin-top:14px}.link-btn{color:var(--accent);font-size:inherit;padding:0 2px;text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--accent-line);cursor:pointer;transition:text-decoration-color var(--dur) var(--ease)}.link-btn:hover{text-decoration-color:var(--accent)}.field-label .link-btn{margin-left:6px;font-size:10px}.theme-bar-wrap{border-bottom:1px solid var(--line);background:var(--main-bg);flex-shrink:0}.theme-bar{display:flex;align-items:center;gap:10px;width:100%;padding:9px 28px;font-size:11.5px;color:var(--ink-soft);text-align:left;transition:background var(--dur) var(--ease)}.theme-bar:hover{background:#fff9}.theme-bar-label{font-size:10px;letter-spacing:.16em;color:var(--ink-muted)}.theme-swatches{display:inline-flex;align-items:center;gap:3px;flex-shrink:0}.theme-swatches span{width:9px;height:9px;border-radius:50%;box-shadow:inset 0 0 0 1px #1b19171a}.theme-bar-current{font-weight:600;color:var(--ink)}.theme-bar-hint{color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.theme-bar-action{margin-left:auto;color:var(--accent);white-space:nowrap;flex-shrink:0}.theme-sheet{width:min(1180px,94vw);max-height:88vh;display:flex;flex-direction:column;background:var(--panel);border-radius:var(--radius-xl);box-shadow:0 32px 70px -24px #1b19176b;overflow:hidden;animation:modal-in var(--dur-slow) var(--ease-out) both}.theme-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 22px 14px;border-bottom:1px solid var(--line)}.theme-sheet-sub{margin-top:3px;font-size:11.5px;color:var(--ink-muted)}.theme-sheet-body{padding:16px 22px 20px;overflow-y:auto;overscroll-behavior:contain}.theme-sheet-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 22px;border-top:1px solid var(--line);background:var(--panel-soft);font-size:12px;color:var(--ink-soft)}.theme-sheet-current{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:14px}.theme-card{position:relative;padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);cursor:pointer;text-align:left;overflow:hidden;box-shadow:var(--sh-1);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.theme-card:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:var(--sh-2)}.theme-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--sh-2)}.theme-frame{position:relative;width:100%;aspect-ratio:4 / 3;overflow:hidden;background:#fff}.theme-scaled{width:558px;transform-origin:top left;pointer-events:none}.theme-meta{display:flex;flex-direction:column;gap:2px;padding:7px 9px 8px;border-top:1px solid var(--line-soft)}.theme-name-row{display:flex;align-items:center;gap:6px;min-width:0}.theme-name{font-size:12px;font-weight:600;color:var(--ink)}.theme-tag{font-size:9.5px;line-height:1.6;letter-spacing:.06em;color:var(--ink-muted);border:1px solid var(--line);border-radius:3px;padding:0 4px;flex-shrink:0}.theme-check{margin-left:auto;color:var(--accent);font-size:11px;font-weight:700;flex-shrink:0}.theme-hint{font-size:10.5px;color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spinner{width:12px;height:12px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.spinner.dark{border-color:var(--line-strong);border-top-color:var(--accent)}@keyframes spin{to{transform:rotate(360deg)}}.thinking{display:flex;align-items:center;gap:10px;padding:40px;justify-content:center;color:var(--ink-muted);font-size:12.5px}.row{display:flex;align-items:center;gap:8px}.muted{color:var(--ink-muted)}.mono{font-family:var(--font-mono)}.hidden{display:none}@media(max-width:1180px){:root{--sidebar-w: 268px}.main-head,.actionbar,.theme-bar,.preview-scroll{padding-left:20px;padding-right:20px}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}.md-preview{padding:34px 34px 40px}}@media(max-width:760px){.theme-sheet{width:96vw;max-height:92vh}.theme-sheet-head,.theme-sheet-body,.theme-sheet-foot{padding-left:14px;padding-right:14px}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(124px,1fr));gap:10px}.theme-sheet-current .muted{display:none}}@media(max-width:980px){.studio{flex-direction:column}.card-frame{width:100%;max-width:540px;height:auto;aspect-ratio:3 / 4}.head-row{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
