:root{--bg: #faf9f7;--bg-panel: #f3f1ea;--bg-raised: #ffffff;--bg-input: #ffffff;--bg-hover: #eae7de;--border: rgba(0,0,0,.08);--border-strong: rgba(0,0,0,.15);--text: #29271f;--text-mid: #5c594f;--text-dim: #8f8c80;--accent: #d97757;--accent-hover: #c45f3f;--accent-soft: rgba(217,119,87,.12);--blue: #4a7fb5;--blue-soft: rgba(74,127,181,.12);--green: #5d7a43;--green-soft: rgba(93,122,67,.14);--danger: #c45a48;--danger-soft: rgba(196,90,72,.1);--warning: #b57f2e;--warning-soft: rgba(181,127,46,.12);--gold: #a97b1f;--gold-soft: rgba(169,123,31,.12);--radius-lg: 16px;--radius-md: 12px;--radius-sm: 8px;--shadow-modal: 0 24px 64px rgba(0,0,0,.22);--shadow-card: 0 1px 3px rgba(0,0,0,.05);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14.5px;line-height:1.65}::selection{background:#d9775759}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#00000029;border-radius:6px;border:2px solid var(--bg)}::-webkit-scrollbar-track{background:transparent}.v2-app{display:grid;grid-template-columns:264px 1fr;min-height:100dvh}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.sidebar{background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;padding:18px 14px;gap:4px;position:sticky;top:0;height:100dvh}.sidebar-nav{display:flex;flex-direction:column;gap:4px;flex:0 1 auto;min-height:0;overflow-y:auto;scrollbar-width:none}.sidebar-nav::-webkit-scrollbar{width:0}.logo{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:6px 10px 16px}.logo-img{height:26px;width:auto;display:block}.logo-text{font-weight:600;font-size:14.5px;letter-spacing:.2px}.logo-text small{display:block;font-weight:400;font-size:11px;color:var(--text-dim);letter-spacing:.4px}.nav-section{font-size:11px;color:var(--text-dim);letter-spacing:.8px;padding:14px 10px 6px;text-transform:uppercase}.nav-link{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--text-mid);font-size:13.5px;transition:background .15s,color .15s;cursor:pointer}.nav-link svg{width:17px;height:17px;flex-shrink:0}.nav-link:hover{background:var(--bg-raised);color:var(--text)}.nav-link.active{background:var(--bg-hover);color:var(--text);font-weight:500}.nav-link .lock-badge{margin-left:auto;opacity:.5;display:inline-flex}.nav-link.active .lock-badge{opacity:.8}.nav-link .lock-badge svg{width:12px;height:12px}.source-pill{display:flex;align-items:center;justify-content:space-between;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;font-size:12px;color:var(--text-mid);-webkit-user-select:none;user-select:none;transition:border-color .15s}.source-pill:hover{border-color:var(--border-strong)}.source-pill .dot{width:7px;height:7px;border-radius:50%;background:var(--green)}.source-pill.ext .dot{background:var(--warning)}.disclaimer-foot{font-size:11px;color:var(--text-dim);line-height:1.5;padding:10px 6px 0}.history-item{padding:7px 10px;border-radius:var(--radius-sm);font-size:13px;color:var(--text-mid);cursor:pointer;transition:background .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-item:hover{background:var(--bg-raised);color:var(--text)}.recent-wrap{flex:1 1 0;min-height:120px;display:flex;flex-direction:column}.logo,.nav-section,.nav-link{flex-shrink:0}.sidebar-footer{flex-shrink:0;margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.sidebar-foot-row{display:flex;align-items:center;gap:8px;min-width:0}.sidebar-foot-row .user-card-wrap{flex:1;min-width:0;display:flex;margin-bottom:0}.sidebar-foot-row .user-card{flex:1;min-width:0;height:40px;padding:0 9px;gap:8px;border-radius:10px}.sidebar-foot-row .user-avatar{width:26px;height:26px;font-size:12.5px;border-radius:8px}.sidebar-foot-row .user-login{display:none}.sidebar-foot-row .source-pill{flex-shrink:0;height:40px;padding:0 11px;font-size:11.5px;gap:6px;align-items:center;border-radius:10px;white-space:nowrap}.recent-list{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 2px}.recent-list::-webkit-scrollbar{width:4px}.recent-list::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}.sidebar .sess-section-head{display:flex;align-items:center;justify-content:space-between}.sidebar .sess-archive-toggle{border:none;background:transparent;cursor:pointer;font-size:11px;color:var(--text-dim);padding:2px 6px;border-radius:var(--radius-sm)}.sidebar .sess-archive-toggle:hover{color:var(--text);background:var(--bg-raised)}.sidebar .sess-row{display:flex;align-items:center;gap:4px;padding-right:4px}.sidebar .sess-row .sess-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar .sess-row.active{background:var(--bg-raised);color:var(--text)}.sidebar .sess-row.archived{opacity:.75}.sidebar .sess-empty{padding:8px 10px;font-size:12px;color:var(--text-dim)}.sidebar .sess-more-btn{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-dim);cursor:pointer;opacity:0;transition:opacity .12s}.sidebar .sess-row:hover .sess-more-btn,.sidebar .sess-more-btn:focus-visible{opacity:1}.sidebar .sess-more-btn:hover{background:var(--border);color:var(--text)}.sidebar .sess-rename-input{flex:1;min-width:0;font-size:13px;color:var(--text);background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:3px 6px;outline:none}.sess-menu{position:fixed;z-index:300;min-width:128px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000001f;padding:4px;animation:fadeUp .15s ease both}.sess-menu button{display:flex;align-items:center;gap:8px;width:100%;border:none;background:transparent;cursor:pointer;font-size:13px;color:var(--text-mid);text-align:left;padding:7px 10px;border-radius:5px}.sess-menu button:hover{background:var(--bg-hover);color:var(--text)}.sess-menu button.danger{color:var(--danger, #c0392b)}.sess-menu button.danger:hover{background:#c0392b14;color:var(--danger, #c0392b)}.sidebar .danger-btn{background:#c0392b;border-color:#c0392b}.main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:14px;padding:14px 28px;border-bottom:1px solid var(--border);background:#faf9f7d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:40}.topbar h1{font-size:15px;font-weight:600;letter-spacing:.2px}.topbar .sub{font-size:12px;color:var(--text-dim)}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}.model-chip{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--text-mid);background:var(--bg-raised);border:1px solid var(--border);padding:5px 12px;border-radius:99px}.model-chip .dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 2.4s infinite}.model-chip .sep{color:var(--text-dim)}.menu-btn{display:none;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-sm);background:transparent;border:1px solid var(--border);color:var(--text-mid)}.content{flex:1;padding:28px;max-width:1280px;width:100%;margin:0 auto}.content-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;animation:fadeUp .4s ease both}.content-header h2{font-size:21px;font-weight:600;letter-spacing:-.2px}.content-header .sub{color:var(--text-mid);font-size:13px;margin-top:3px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:var(--radius-sm);border:1px solid transparent;font-size:13.5px;font-weight:500;padding:8px 16px;transition:transform .12s,background .15s,border-color .15s,opacity .15s;white-space:nowrap}.btn:active{transform:scale(.97)}.btn svg{width:15px;height:15px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-ghost{background:transparent;color:var(--text-mid);border-color:var(--border-strong)}.btn-ghost:hover{background:var(--bg-raised);color:var(--text)}.btn-soft{background:var(--bg-hover);color:var(--text)}.btn-soft:hover{background:var(--border-strong)}.btn-danger{background:transparent;color:var(--danger);border-color:#d96b5a66}.btn-danger:hover{background:var(--danger-soft)}.btn-sm{padding:5px 11px;font-size:12.5px;border-radius:7px}.btn[disabled]{opacity:.45;cursor:not-allowed}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:500;letter-spacing:.3px;padding:3px 10px;border-radius:99px;border:1px solid transparent;white-space:nowrap;flex:none}.table th{white-space:nowrap}.table-scroll{overflow-x:auto}.table-scroll .table{min-width:900px}.access-user-cell{white-space:nowrap}.badge svg{width:12px;height:12px}.badge-high{background:var(--danger-soft);color:var(--danger);border-color:#d96b5a4d}.badge-mid{background:var(--warning-soft);color:var(--warning);border-color:#d9a3574d}.badge-low{background:var(--green-soft);color:var(--green);border-color:#788c5d4d}.badge-blue{background:var(--blue-soft);color:var(--blue);border-color:#6a9bcc4d}.badge-gray{background:var(--bg-hover);color:var(--text-mid);border-color:var(--border-strong)}.badge-accent{background:var(--accent-soft);color:var(--accent);border-color:#d977574d}.badge-gold{background:var(--gold-soft);color:var(--gold);border-color:#a97b1f4d}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-card);animation:fadeUp .45s ease backwards}.card-title{font-size:14px;font-weight:600;margin-bottom:4px}.card-desc{font-size:12.5px;color:var(--text-mid);line-height:1.55}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-weight:500;font-size:11.5px;color:var(--text-dim);letter-spacing:.5px;padding:10px 14px;border-bottom:1px solid var(--border);text-transform:uppercase}.table td{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text-mid)}.table td:first-child{color:var(--text)}.table tr:hover td{background:#00000006}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12.5px;font-weight:500;color:var(--text-mid)}.field input,.field textarea,.field select{background:var(--bg-input);border:1px solid var(--border-strong);color:var(--text);border-radius:var(--radius-sm);padding:9px 12px;font-size:13.5px;outline:none;transition:border-color .15s,box-shadow .15s;width:100%}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #d977571a}[data-view=index] .chat-scroll{flex:1;overflow-y:auto;padding:28px 0 120px}[data-view=index] .chat-inner{max-width:760px;margin:0 auto;padding:0 24px}[data-view=index] .welcome{text-align:center;padding:96px 24px 40px;animation:fadeUp .5s ease both}[data-view=index] .welcome .hello{font-size:30px;font-weight:600;letter-spacing:-.4px;margin-bottom:8px}[data-view=index] .welcome .hello em{font-style:normal;color:var(--accent)}[data-view=index] .welcome .sub{color:var(--text-mid);font-size:14.5px;margin-bottom:40px}[data-view=index] .welcome-empty{padding:72px 24px 40px}[data-view=index] .welcome-empty .hello{font-size:22px;margin-bottom:6px}[data-view=index] .welcome-empty .sub{margin-bottom:0}[data-view=index] .quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;text-align:left}[data-view=index] .quick-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;cursor:pointer;transition:border-color .15s,transform .15s,background .15s}[data-view=index] .quick-card:hover{border-color:var(--accent);transform:translateY(-2px);background:var(--bg-hover)}[data-view=index] .quick-card .qicon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}[data-view=index] .quick-card .qicon svg{width:19px;height:19px}[data-view=index] .qicon.ic-review{background:var(--danger-soft);color:var(--danger)}[data-view=index] .qicon.ic-generate{background:var(--accent-soft);color:var(--accent)}[data-view=index] .qicon.ic-chat{background:var(--blue-soft);color:var(--blue)}[data-view=index] .quick-card h3{font-size:14.5px;font-weight:600;margin-bottom:5px}[data-view=index] .quick-card p{font-size:12.5px;color:var(--text-mid);line-height:1.55}[data-view=index] .msg{margin-bottom:26px;animation:fadeUp .35s ease both}[data-view=index] .msg-user{display:flex;justify-content:flex-end}[data-view=index] .msg-user .bubble{background:var(--bg-input);border:1px solid var(--border);border-radius:16px 16px 4px;padding:12px 16px;max-width:78%;font-size:14px;line-height:1.6}[data-view=index] .msg-ai{display:flex;gap:12px}[data-view=index] .ai-avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0;margin-top:2px;background:linear-gradient(135deg,#d97757,#b45f45);display:flex;align-items:center;justify-content:center}[data-view=index] .ai-avatar svg{width:14px;height:14px;color:#fff}[data-view=index] .msg-ai .body{flex:1;min-width:0;font-size:14.5px;line-height:1.75}[data-view=index] .msg-ai .body p{margin-bottom:10px}[data-view=index] .msg-ai .body p:last-child{margin-bottom:0}[data-view=index] .file-chip{display:inline-flex;align-items:center;gap:8px;background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:8px;padding:7px 12px;font-size:12.5px;color:var(--text-mid);margin-bottom:8px}[data-view=index] .file-chip svg{width:14px;height:14px;color:var(--blue)}[data-view=index] .composer-wrap{position:fixed;bottom:0;left:264px;right:0;z-index:50;padding:0 24px 20px;background:linear-gradient(transparent,var(--bg) 34%);pointer-events:none}[data-view=index] .composer{max-width:760px;margin:0 auto;pointer-events:auto;animation:fadeUp .5s ease both}[data-view=index] .perspective-row{display:flex;gap:8px;margin-bottom:9px}[data-view=index] .perspective-row[hidden]{display:none}[data-view=index] .p-chip{font-size:11.5px;padding:4px 12px;border-radius:99px;cursor:pointer;border:1px solid var(--border-strong);color:var(--text-dim);background:var(--bg-panel);transition:all .15s;-webkit-user-select:none;user-select:none}[data-view=index] .p-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:500}[data-view=index] .composer-box{background:var(--bg-input);border:1px solid var(--border-strong);border-radius:18px;padding:10px 12px;display:flex;align-items:center;gap:10px;transition:border-color .2s,box-shadow .2s}[data-view=index] .composer-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #d977571a}[data-view=index] .composer-box textarea{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:14px;line-height:22px;padding:0;resize:none;max-height:140px;min-height:22px;font-family:inherit}[data-view=index] .composer-box .icon-btn{background:none;border:none;padding:0;flex-shrink:0;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--text-dim);transition:color .15s,background .15s}[data-view=index] .composer-box .icon-btn:hover{color:var(--text-mid);background:var(--bg-hover)}[data-view=index] .composer-box .icon-btn svg{width:18px;height:18px}[data-view=index] .send-btn{width:32px;height:32px;border-radius:50%;border:none;flex-shrink:0;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;transition:transform .12s,background .15s,opacity .15s}[data-view=index] .send-btn:hover{background:var(--accent-hover)}[data-view=index] .send-btn:active{transform:scale(.92)}[data-view=index] .send-btn[disabled]{opacity:.4;cursor:not-allowed}[data-view=index] .send-btn svg{width:15px;height:15px}[data-view=index] .composer-note{text-align:center;font-size:11px;color:var(--text-dim);margin-top:8px}.keygate{max-width:360px;margin:12vh auto;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px;text-align:center;box-shadow:var(--shadow-card);animation:fadeUp .4s ease both}.keygate h2{font-size:17px;margin:0 0 6px;font-weight:600}.keygate p{color:var(--text-mid);font-size:13px}.keygate-error{color:var(--danger)}.keygate form{display:flex;flex-direction:column;gap:10px;margin-top:14px}.keygate input{padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:14px;outline:none}.keygate input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #d977571a}.keygate button{padding:10px;border:0;border-radius:var(--radius-sm);background:var(--accent);color:#fff;font-size:14px}.v2-todo{display:flex;flex-direction:column;gap:10px;max-width:560px}.v2-todo li{color:var(--text-mid);font-size:13.5px;line-height:1.7}@media (max-width: 900px){.v2-app{grid-template-columns:1fr}[data-view=index] .composer-wrap{left:0}}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);padding:34px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;transition:border-color .2s,background .2s;cursor:pointer;animation:fadeUp .4s ease both}.dropzone:hover,.dropzone.dragover{border-color:var(--accent);background:var(--accent-soft)}.dropzone svg{width:30px;height:30px;color:var(--text-dim)}.dropzone h4{font-size:14px;font-weight:500}.dropzone p{font-size:12px;color:var(--text-dim)}.dz-type-row{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;font-size:12.5px;color:var(--text-dim);flex-wrap:wrap}.type-select{font-family:inherit;font-size:12.5px;color:var(--text);background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:4px 8px;cursor:pointer;transition:border-color .2s}.type-select:hover{border-color:var(--accent)}.dz-type-note{color:var(--text-dim)}.kb-table{table-layout:fixed}.kb-table th,.kb-table td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.kb-table .row-actions{justify-content:flex-end}.msg-ai .md-h{margin:14px 0 8px;font-weight:600}.msg-ai .md-h:first-child{margin-top:0}.msg-ai .md-quote{margin:0 0 10px;padding:6px 12px;border-left:3px solid var(--border-strong);color:var(--text-mid);background:var(--bg-hover);border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:13px}.msg-ai .md-li{margin:0 0 6px;padding-left:16px;position:relative}.msg-ai .md-li:before{content:"·";position:absolute;left:4px;color:var(--accent);font-weight:700}.msg-ai .md-hr{border:none;border-top:1px dashed var(--border);margin:12px 0}.md-table-wrap{overflow-x:auto;margin:2px 0 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-raised);box-shadow:var(--shadow-card)}.md-table{border-collapse:collapse;width:100%;font-size:12.5px}.md-table th,.md-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top;line-height:1.55}.md-table th{background:var(--bg-hover);font-weight:600;color:var(--text-mid);white-space:nowrap}.md-table tbody tr:last-child td{border-bottom:none}.md-table tbody tr:hover{background:var(--bg)}.cite-block{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border)}.cite-head{font-size:11.5px;color:var(--text-dim);margin-bottom:6px}.cite-toggle{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;padding:0;font:inherit;color:var(--text-dim);cursor:pointer;text-align:left}.cite-toggle:hover{color:var(--accent)}.cite-toggle>span{flex:1;min-width:0}.cite-chevron{flex-shrink:0;transition:transform .15s}.cite-toggle[aria-expanded=true] .cite-chevron{transform:rotate(90deg)}.cite-toggle[aria-expanded=true]{margin-bottom:6px}.cite-row{display:flex;flex-wrap:wrap;gap:6px}.cite-chip{font-family:inherit;font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:var(--bg-hover);color:var(--text-mid);cursor:pointer;transition:all .15s;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cite-chip:hover{border-color:var(--accent);color:var(--accent)}.cite-chip.open{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.cite-chip.uncited{opacity:.55;background:transparent}.cite-chip.uncited:hover{opacity:.85;color:var(--text-mid);border-color:var(--border-strong)}.cite-chip .chip-note{display:inline-block;margin-left:6px;font-size:10.5px;color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:0 5px;vertical-align:1px}.cite-snippet{margin-top:8px;font-size:12.5px;color:var(--text-mid);background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-md);padding:10px 12px;line-height:1.7}.ref-tag{color:var(--accent);cursor:pointer;font-weight:600;margin:0 1px}.ref-tag:hover{text-decoration:underline}.cite-chip.flash{animation:citeFlash 1.2s ease 1}@keyframes citeFlash{0%{box-shadow:0 0 #e67a3a73}to{box-shadow:0 0 0 12px #e67a3a00}}[data-view=admin-knowledge] .vec-state{display:inline-flex;align-items:center;gap:7px;font-size:12.5px}[data-view=admin-knowledge] .vec-state .dot{width:7px;height:7px;border-radius:50%}[data-view=admin-knowledge] .vec-done .dot{background:var(--green)}.vec-done{color:var(--green)}[data-view=admin-knowledge] .vec-doing .dot{background:var(--warning);animation:pulse 1.2s infinite}.vec-doing{color:var(--warning)}[data-view=admin-knowledge] .vec-fail .dot{background:var(--danger)}.vec-fail{color:var(--danger)}.tabs{display:inline-flex;gap:4px;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:4px}.tab{border:none;background:transparent;color:var(--text-mid);cursor:pointer;font-size:13px;font-weight:500;padding:7px 16px;border-radius:7px;transition:background .15s,color .15s;font-family:inherit}.tab:hover{color:var(--text)}.tab.active{background:var(--bg-hover);color:var(--text)}.tab-panel[hidden]{display:none}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#29271f73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;animation:fadeIn .18s ease}.modal{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);width:min(440px,calc(100vw - 40px));padding:26px;animation:fadeUp .22s ease;max-height:86dvh;display:flex;flex-direction:column}.modal>.auth-form{overflow-y:auto;min-height:0;flex:1}.modal-actions{flex-shrink:0}.modal h3{font-size:16px;font-weight:600;margin:0 0 6px}.modal .modal-sub{font-size:12.5px;color:var(--text-mid);margin-bottom:18px;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.key-input{display:flex;align-items:center;gap:8px;background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:0 12px}.key-input svg{width:15px;height:15px;color:var(--text-dim);flex-shrink:0}.key-input input{background:none;border:none;outline:none;color:var(--text);padding:10px 0;width:100%;font-size:13.5px;letter-spacing:1px}.key-input.error{border-color:var(--danger)}.error-text{color:var(--danger);font-size:12px;margin-top:6px}.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#29271f66;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:95;animation:fadeIn .18s ease}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(620px,calc(100vw - 24px));background:var(--bg-raised);border-left:1px solid var(--border-strong);box-shadow:-24px 0 64px #00000029;z-index:96;display:flex;flex-direction:column;animation:drawerIn .28s cubic-bezier(.16,1,.3,1)}@keyframes drawerIn{0%{transform:translate(48px);opacity:0}to{transform:translate(0);opacity:1}}.drawer-head{display:flex;align-items:center;gap:12px;padding:16px 22px;border-bottom:1px solid var(--border);flex-shrink:0}.drawer-head h3{font-size:15px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0}.drawer-close{width:30px;height:30px;border-radius:var(--radius-sm);flex-shrink:0;background:transparent;border:none;color:var(--text-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.drawer-close:hover{background:var(--bg-hover);color:var(--text)}.drawer-close svg{width:16px;height:16px}.drawer-body{flex:1;overflow-y:auto;padding:20px 22px 28px}.drawer-actions{display:flex;gap:10px;flex-wrap:wrap;padding:14px 22px;border-top:1px solid var(--border);flex-shrink:0;background:var(--bg-raised)}.preview-meta{display:flex;gap:8px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.preview-text{font-size:13px;line-height:1.85;color:var(--text-mid);white-space:pre-wrap;word-break:break-word}.preview-text mark{background:#d9a35747;color:var(--text);padding:0 2px;border-radius:2px}.preview-note{font-size:12px;color:var(--text-dim);margin:0 0 12px}[data-view=admin-knowledge] .pv-frame,.pv-frame{width:100%;height:calc(100vh - 300px);min-height:420px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff}.docx-html h1,.docx-html h2,.docx-html h3,.docx-html h4{margin:16px 0 8px;color:var(--text);line-height:1.5}.docx-html p{margin:0 0 10px}.docx-html ul,.docx-html ol{margin:0 0 10px;padding-left:22px}.docx-html table{border-collapse:collapse;margin:8px 0 14px;max-width:100%}.docx-html td,.docx-html th{border:1px solid var(--border);padding:5px 10px;text-align:left;vertical-align:top;line-height:1.6}.docx-html img{max-width:100%}.docx-html mark.ph{background:#d9a35747;color:var(--text);padding:0 2px;border-radius:2px}.pv-structured{white-space:normal}.pv-structured p{margin:0 0 9px;white-space:pre-wrap}.pv-structured .pv-h{font-weight:600;font-size:13.5px;color:var(--text);margin:15px 0 5px}.pv-table{border-collapse:collapse;margin:6px 0 14px;font-size:12.5px;max-width:100%}.pv-table th,.pv-table td{border:1px solid var(--border);padding:5px 10px;text-align:left;vertical-align:top;line-height:1.6}.pv-table th{background:var(--bg-raised);font-weight:600;color:var(--text)}[data-view=admin-knowledge] .ext-banner{display:flex;align-items:center;gap:10px;background:var(--warning-soft);border:1px solid rgba(217,163,87,.3);border-radius:var(--radius-md);padding:11px 16px;margin-bottom:18px;font-size:12.5px;color:var(--warning);animation:fadeIn .3s}[data-view=admin-knowledge] .ext-banner svg{width:15px;height:15px;flex-shrink:0}[data-view=admin-knowledge] .kb-head{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}[data-view=admin-knowledge] .kb-head .tabs{margin-right:auto}[data-view=admin-knowledge] .stat-chips{display:flex;gap:8px}[data-view=admin-knowledge] .stat-chip{font-size:12px;color:var(--text-mid);background:var(--bg-raised);border:1px solid var(--border);padding:5px 12px;border-radius:99px}[data-view=admin-knowledge] .stat-chip b{color:var(--text);font-weight:600}[data-view=admin-knowledge] .row-actions{display:flex;gap:6px}[data-view=admin-knowledge] #docTable tr{cursor:pointer}[data-view=admin-knowledge] #docTable tr:hover td{background:var(--bg-panel)}[data-view=admin-knowledge] #docTable tr:hover td:first-child{color:var(--accent)}[data-view=admin-knowledge] .risk-item{display:flex;gap:14px;align-items:flex-start;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;margin-bottom:10px;animation:fadeUp .4s ease both}[data-view=admin-knowledge] .risk-item .lv{width:4px;border-radius:99px;align-self:stretch;flex-shrink:0}[data-view=admin-knowledge] .lv.high{background:var(--danger)}.lv.mid{background:var(--warning)}.lv.low{background:var(--green)}[data-view=admin-knowledge] .risk-item h4{font-size:13.5px;font-weight:600;margin:0 0 4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}[data-view=admin-knowledge] .risk-item p{font-size:12.5px;color:var(--text-mid);line-height:1.65}[data-view=admin-knowledge] .risk-item .r-meta{display:flex;gap:12px;margin-top:8px;font-size:11.5px;color:var(--text-dim);flex-wrap:wrap}[data-view=admin-knowledge] .risk-item .r-meta .badge{font-size:10.5px;padding:2px 8px}[data-view=admin-knowledge] .risk-item{cursor:pointer;transition:border-color .15s,transform .15s}[data-view=admin-knowledge] .risk-item:hover{border-color:var(--accent);transform:translateY(-1px)}[data-view=admin-knowledge] .risks-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}[data-view=admin-knowledge] .risks-head p{font-size:12px;color:var(--text-dim);margin:0}.kb-empty{border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:26px 20px;text-align:center;font-size:12.5px;color:var(--text-dim);line-height:1.7}[data-view=admin-model] .slot-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}[data-view=admin-model] .slot-card{padding:0;overflow:hidden}[data-view=admin-model] .slot-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border)}[data-view=admin-model] .slot-head .sl-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}[data-view=admin-model] .slot-head .sl-icon svg{width:17px;height:17px}[data-view=admin-model] .sl-icon.ic-chat{background:var(--accent-soft);color:var(--accent)}[data-view=admin-model] .sl-icon.ic-embed{background:var(--green-soft);color:var(--green)}[data-view=admin-model] .slot-head h3{font-size:14.5px;font-weight:600;margin:0}[data-view=admin-model] .slot-head .sl-sub{font-size:11.5px;color:var(--text-dim)}[data-view=admin-model] .slot-head .live{margin-left:auto;display:flex;align-items:center;gap:7px;font-size:12px;color:var(--green);flex-shrink:0}[data-view=admin-model] .slot-head .live .dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse 2.2s infinite}[data-view=admin-model] .slot-head .live.down{color:var(--danger)}[data-view=admin-model] .slot-head .live.down .dot{background:var(--danger);animation:none}[data-view=admin-model] .slot-body{padding:18px 20px}[data-view=admin-model] .kv{display:flex;justify-content:space-between;gap:14px;padding:7px 0;font-size:12.5px;border-bottom:1px dashed var(--border)}[data-view=admin-model] .kv:last-of-type{border-bottom:none}[data-view=admin-model] .kv .k{color:var(--text-dim);flex-shrink:0}[data-view=admin-model] .kv .v{color:var(--text-mid);text-align:right;word-break:break-all;font-family:ui-monospace,Consolas,monospace;font-size:12px}[data-view=admin-model] .fallback-chain{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--text-dim);margin-top:12px;flex-wrap:wrap}[data-view=admin-model] .fallback-chain .node{background:var(--bg-panel);border:1px solid var(--border);padding:3px 10px;border-radius:99px}[data-view=admin-model] .fallback-chain .node.first{border-color:var(--green);color:var(--green)}[data-view=admin-model] .slot-actions{display:flex;gap:9px;margin-top:16px}[data-view=admin-model] .gate-tip{display:flex;gap:10px;align-items:flex-start;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 16px;font-size:12.5px;color:var(--text-mid);line-height:1.7}[data-view=admin-model] .gate-tip svg{width:15px;height:15px;flex-shrink:0;margin-top:2px;color:var(--text-dim)}@media (max-width: 950px){[data-view=admin-model] .slot-grid{grid-template-columns:1fr}}.think-block{margin-bottom:10px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-raised);overflow:hidden}.think-head{display:inline-flex;align-items:center;gap:7px;width:100%;padding:7px 12px;font-size:12px;color:var(--text-dim);background:transparent;border:none;cursor:pointer;text-align:left}.think-head:hover{color:var(--text-mid)}.think-head .spinner{width:11px;height:11px;border-width:1.5px}.think-body{padding:2px 14px 12px;font-size:12.5px;line-height:1.7;color:var(--text-dim);white-space:pre-wrap;max-height:260px;overflow-y:auto;border-top:1px solid var(--border)}.think-body .think-fade{color:var(--text-dim);opacity:.75}.streaming-cursor:after{content:"▍";color:var(--accent);animation:pulse 1s infinite}.review-workbench{max-width:760px}.review-upload-row{display:flex;flex-direction:column;gap:12px}.review-upload-row .quote-drop{cursor:pointer}.review-upload-row .btn{align-self:flex-start;min-width:132px}.sec-title{font-size:12px;color:var(--text-dim);letter-spacing:.6px;margin:4px 0 12px;text-transform:uppercase}.pipeline{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-raised);padding:16px 18px}.pipeline-title{font-size:12.5px;color:var(--text-mid);font-weight:500;margin-bottom:12px;display:flex;align-items:center;gap:8px}.pipeline-title .spinner{width:12px;height:12px;border:2px solid var(--border-strong);border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.pl-step{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px;color:var(--text-dim);transition:color .3s}.pl-step .st{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.pl-step .st svg{width:9px;height:9px;opacity:0}.pl-step.doing{color:var(--text)}.pl-step.doing .st{border-color:var(--accent);border-top-color:transparent;animation:spin .7s linear infinite}.pl-step.done{color:var(--text-mid)}.pl-step.done .st{background:var(--green-soft);border-color:var(--green);animation:none}.pl-step.done .st svg{opacity:1;color:var(--green)}.result-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-raised);padding:18px 20px}.result-card h4{font-size:14.5px;font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:9px}.risk-summary{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap}.risk-pill{flex:1;min-width:100px;border-radius:var(--radius-md);padding:12px 14px;border:1px solid}.risk-pill b{font-size:20px;font-weight:600;display:block}.risk-pill span{font-size:11.5px;opacity:.85}.risk-pill.high{background:var(--danger-soft);border-color:#d96b5a4d;color:var(--danger)}.risk-pill.mid{background:var(--warning-soft);border-color:#d9a3574d;color:var(--warning)}.risk-pill.low{background:var(--green-soft);border-color:#788c5d4d;color:var(--green)}.result-actions{display:flex;gap:10px;flex-wrap:wrap}[data-view=review] .summary-bar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-raised);padding:14px 18px;margin-bottom:14px;animation:fadeUp .4s ease both}[data-view=review] .summary-bar .doc{display:flex;align-items:center;gap:10px;min-width:0}[data-view=review] .summary-bar .doc svg{width:20px;height:20px;color:var(--blue);flex-shrink:0}[data-view=review] .summary-bar .doc b{font-size:13.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:420px}[data-view=review] .summary-bar .doc span{font-size:11.5px;color:var(--text-dim);display:block}.count-pill{display:flex;align-items:baseline;gap:5px;font-size:12px;color:var(--text-mid)}.count-pill b{font-size:17px;font-weight:600}.count-pill.c-high b{color:var(--danger)}.count-pill.c-mid b{color:var(--warning)}.count-pill.c-low b{color:var(--green)}.summary-actions{margin-left:auto;display:flex;gap:9px}.banner-tip{display:flex;gap:10px;align-items:flex-start;font-size:12.5px;color:var(--text-mid);line-height:1.6;border:1px solid rgba(217,163,87,.3);background:var(--warning-soft);border-radius:var(--radius-md);padding:11px 14px;margin-bottom:18px}.banner-tip b{color:var(--text)}.banner-tip svg{width:15px;height:15px;flex-shrink:0;margin-top:2px;color:var(--warning)}.banner-tip.warn{border-color:#d96b5a4d;background:var(--danger-soft)}.banner-tip.warn svg{color:var(--danger)}[data-view=review] .ask-float{position:fixed;right:26px;bottom:26px;z-index:70;width:432px;max-width:calc(100vw - 52px);max-height:min(74vh,660px);display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-raised);overflow:hidden;box-shadow:var(--shadow-modal);animation:fadeUp .25s ease both}[data-view=review] .ask-float .ask-list{flex:1;min-height:110px;max-height:none}[data-view=review] .ask-float-file{margin-left:auto;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-view=review] .af-close{margin-left:8px;flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-dim);cursor:pointer;border-radius:6px}[data-view=review] .af-close:hover{background:var(--bg);color:var(--text)}[data-view=review] .af-close svg{width:13px;height:13px}[data-view=review] .ask-float-note{margin:0;padding:8px 16px 10px;font-size:11px;color:var(--text-dim);border-top:1px solid var(--border)}[data-view=review] .ask-fab{position:fixed;right:26px;bottom:26px;z-index:60;display:flex;align-items:center;gap:7px;padding:11px 18px;border-radius:999px;border:none;cursor:pointer;background:var(--accent);color:#fff;font-size:13px;font-weight:600;box-shadow:0 6px 18px #d9775759;transition:transform .15s ease,box-shadow .15s ease;animation:fadeUp .35s ease both}[data-view=review] .ask-fab:hover{transform:translateY(-2px);box-shadow:0 10px 24px #d977576b}[data-view=review] .ask-fab svg{width:15px;height:15px}.ask-ref{display:inline-flex;align-items:center;gap:5px;margin-bottom:6px;font-size:11.5px;color:var(--accent);background:#d9775717;border:1px solid rgba(217,119,87,.24);padding:3px 10px;border-radius:999px}.ask-ref svg{width:11px;height:11px;flex-shrink:0}.msg-ai .ask-ref{align-self:flex-start}.msg-locate-flash{border-radius:12px;animation:msgGlow 2.2s ease}@keyframes msgGlow{0%,to{box-shadow:none}20%,70%{box-shadow:0 0 0 6px #d977572e}}.h-report{margin-left:8px;flex-shrink:0;font-size:11px;padding:3px 9px;border:1px solid var(--border-strong);border-radius:6px;background:transparent;color:var(--text-mid);cursor:pointer;transition:color .15s,border-color .15s}.h-report:hover{color:var(--accent);border-color:var(--accent)}[data-view=review] .ask-head{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px}[data-view=review] .ask-head svg{width:15px;height:15px;color:var(--accent)}[data-view=review] .ask-head b{font-size:13.5px}[data-view=review] .ask-head span{font-size:11.5px;color:var(--text-dim);font-weight:400}[data-view=review] .ask-list{max-height:380px;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}[data-view=review] .ask-msg{display:flex}[data-view=review] .ask-msg.user{justify-content:flex-end}[data-view=review] .ask-bubble{max-width:78%;padding:9px 13px;border-radius:12px;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-word;animation:fadeUp .3s ease both}[data-view=review] .ask-msg.user .ask-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}[data-view=review] .ask-msg.assistant .ask-bubble{background:var(--bg);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:4px}[data-view=review] .ask-bubble.streaming{min-width:40px;min-height:20px}[data-view=review] .ask-input{display:flex;gap:9px;padding:12px 16px;border-top:1px solid var(--border)}[data-view=review] .ask-input input{flex:1;min-width:0;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:13px;padding:9px 12px;outline:none}[data-view=review] .ask-input input:focus{border-color:var(--accent)}[data-view=review] .ask-input input:disabled{opacity:.55}[data-view=review] .review-layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:22px;align-items:start}.risk-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-raised);padding:16px 18px;margin-bottom:14px;transition:border-color .15s;animation:fadeUp .45s ease both}.risk-card:hover{border-color:var(--border-strong)}.risk-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.risk-head h3{font-size:14.5px;font-weight:600;flex:1;min-width:0}.risk-body{font-size:13px;color:var(--text-mid);line-height:1.7;margin-bottom:12px}.quote-block{border:1px solid var(--border);background:var(--bg);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:12px}.quote-block .q-label{font-size:11px;color:var(--text-dim);letter-spacing:.5px;margin-bottom:5px;display:flex;align-items:center;gap:6px;cursor:pointer}.quote-block .q-label svg{width:12px;height:12px}.quote-block .q-label:hover{color:var(--accent)}.quote-block p{font-size:12.5px;color:var(--text-mid);line-height:1.65}.quote-block mark{background:#d9a35740;color:var(--text);padding:0 2px;border-radius:2px}.advice-box{border:1px solid rgba(120,140,93,.35);background:var(--green-soft);border-radius:var(--radius-sm);padding:10px 12px;font-size:12.5px;color:var(--text-mid);line-height:1.65;margin-bottom:12px}.advice-box b{color:var(--green);display:block;margin-bottom:3px;font-size:12px}.risk-foot{display:flex;align-items:center;gap:10px}.risk-foot .meta{font-size:11.5px;color:var(--text-dim)}.risk-foot .meta b{color:var(--text-mid);font-weight:500}[data-view=review] .doc-panel{position:sticky;top:82px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-raised);overflow:hidden}[data-view=review] .doc-panel .panel-head{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:13px;font-weight:600;border-bottom:1px solid var(--border)}[data-view=review] .doc-panel .panel-head svg{width:15px;height:15px;color:var(--blue)}[data-view=review] .doc-body{max-height:calc(100vh - 190px);overflow-y:auto;padding:10px}[data-view=review] .clause{padding:10px 12px;border-radius:var(--radius-sm);transition:background .4s,box-shadow .4s;scroll-margin-top:12px}[data-view=review] .clause h5{font-size:12px;font-weight:600;color:var(--text);margin-bottom:4px;letter-spacing:.3px}[data-view=review] .clause p{font-size:12px;color:var(--text-mid);line-height:1.6}[data-view=review] .clause.hit{background:#d9775709;box-shadow:inset 3px 0 0 var(--accent)}[data-view=review] .clause.hit h5{color:var(--accent)}[data-view=review] .clause mark.q-hit{background:#e6774652;color:var(--text);border-radius:3px;padding:0 2px;box-shadow:0 0 0 1px #e6774659;animation:qhit-in .5s ease both}@keyframes qhit-in{0%{background:#e67746a6}to{background:#e6774652}}[data-view=review] .warn-locate{color:var(--accent);font-size:12px;margin-left:6px;text-decoration:none}[data-view=review] .warn-locate:hover{text-decoration:underline}.rw-pipeline{width:min(680px,100%);padding:18px 22px 14px;box-shadow:0 8px 28px #0000000f}.rw-pipeline .rp-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.rw-pipeline .rp-head .spinner{width:16px;height:16px;border:2px solid var(--border-strong);border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.rw-pipeline .rp-title{flex:1;min-width:0}.rw-pipeline .rp-title b{display:block;font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rw-pipeline .rp-title span{font-size:12px;color:var(--text-dim)}.rw-pipeline .rp-pct{font-size:13px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums}.rw-pipeline .rp-bar{height:4px;border-radius:99px;background:var(--border);overflow:hidden;margin-bottom:14px}.rw-pipeline .rp-bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--warning));transition:width .5s ease}.rw-pipeline .pl-step{padding:6px 0}.rw-result .rr-meta .rr-gap,.rr-meta .rr-gap{color:var(--warning);font-style:normal;font-weight:500}@media (max-width: 1100px){[data-view=review] .review-layout{grid-template-columns:1fr}[data-view=review] .doc-panel{position:static}}[data-view=review] .quote-drop{display:flex;align-items:center;gap:10px;border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);padding:14px 16px;font-size:12.5px;color:var(--text-mid);cursor:pointer;transition:border-color .2s,background .2s}[data-view=review] .quote-drop:hover{border-color:var(--accent);background:var(--accent-soft)}[data-view=review] .quote-drop svg{width:18px;height:18px;color:var(--text-dim);flex-shrink:0}[data-view=review] .quote-drop b{color:var(--text)}[data-view=review] .perspective-row{display:flex;gap:8px;margin-bottom:9px;flex-wrap:wrap}[data-view=review] .p-chip{font-size:12.5px;padding:6px 14px;border-radius:99px;border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text-mid);cursor:pointer;transition:all .15s}[data-view=review] .p-chip.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:500}.rw-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;max-width:1080px;align-items:start}.rw-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;border:1.5px dashed var(--border-strong);border-radius:14px;background:var(--bg-raised);padding:40px 20px;cursor:pointer;transition:border-color .18s,background .18s}.rw-dropzone:hover,.rw-dropzone.drag{border-color:var(--accent);background:var(--accent-soft)}.rw-dropzone>svg{width:32px;height:32px;color:var(--text-dim);margin-bottom:2px}.rw-dropzone.has-file{border-style:solid;border-color:var(--border)}.rw-dropzone.has-file:hover{border-color:var(--accent)}.rw-dropzone.has-file>svg{color:var(--blue)}.rw-dz-title{font-size:14px;font-weight:500;color:var(--text)}.rw-dz-sub{font-size:12px;color:var(--text-dim)}.rw-file{display:flex;align-items:center;gap:12px;max-width:100%}.rw-file>svg{width:26px;height:26px;margin-bottom:0;flex-shrink:0}.rw-file-meta{text-align:left;min-width:0}.rw-file-meta b{display:block;font-size:13.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:480px}.rw-file-meta span{font-size:12px;color:var(--text-dim)}.rw-label{font-size:12px;color:var(--text-dim);letter-spacing:.4px;margin:20px 0 10px}.persp-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.persp-card{position:relative;text-align:left;border:1.5px solid var(--border);background:var(--bg-raised);border-radius:var(--radius-md);padding:14px 38px 13px 16px;cursor:pointer;transition:border-color .15s,background .15s}.persp-card:hover{border-color:var(--border-strong)}.persp-card.on{border-color:var(--accent);background:var(--accent-soft)}.persp-card b{display:block;font-size:13.5px;font-weight:600;color:var(--text);margin-bottom:4px}.persp-card.on b{color:var(--accent)}.persp-card .pc-sub{font-size:12px;color:var(--text-dim);line-height:1.5;display:block}.pc-check{position:absolute;top:13px;right:12px;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--border-strong);display:flex;align-items:center;justify-content:center;color:transparent;transition:all .15s;background:var(--bg-panel)}.pc-check svg{width:10px;height:10px}.persp-card.on .pc-check{background:var(--accent);border-color:var(--accent);color:#fff}.rw-cta{width:100%;margin-top:20px;min-height:42px;font-size:14px}.rw-side{display:flex;flex-direction:column;gap:14px}.rw-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-raised);padding:14px 16px}.rw-card-head{font-size:12.5px;font-weight:600;color:var(--text);margin-bottom:10px}.rw-history{display:flex;flex-direction:column;max-height:400px;overflow-y:auto;margin:0 -6px}.rw-history .history-row{padding:8px 10px;display:flex;flex-direction:column;gap:3px;min-width:0;border:0;border-radius:8px;background:transparent}.rw-history .history-row:hover{border-color:transparent;background:var(--bg-hover)}.rw-history .hr-top{display:flex;align-items:baseline;gap:8px;min-width:0}.rw-history .hr-top .h-name{flex:1;min-width:0;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rw-history .hr-top .h-time{font-size:11px;color:var(--text-dim);flex-shrink:0}.rw-history .hr-bottom{display:flex;align-items:center;gap:10px;min-width:0;font-size:11.5px}.rw-history .h-status{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-dim);flex-shrink:0}.rw-history .h-status:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--green)}.rw-history .h-status.bad:before{background:var(--danger)}.rw-history .h-counts{display:flex;gap:8px;font-size:11px;min-width:0}.rw-history .h-counts .c-high{color:var(--danger)}.rw-history .h-counts .c-mid{color:var(--warning)}.rw-history .h-counts .c-low{color:var(--green)}.rw-history .h-counts em{font-style:normal}.rw-history .h-report{margin-left:auto;flex-shrink:0;font-size:11px;padding:2px 8px;border:0;border-radius:6px;background:transparent;color:var(--text-dim);cursor:pointer}.rw-history .h-report:hover{color:var(--accent);background:var(--bg-hover)}.rw-empty{font-size:12.5px;color:var(--text-dim);text-align:center;padding:16px 0 10px}.rw-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.rw-steps li{font-size:12.5px;color:var(--text-dim);line-height:1.55;padding-left:15px;position:relative}.rw-steps li:before{content:"";position:absolute;left:2px;top:7px;width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.65}.rw-steps b{color:var(--text-mid);font-weight:500;margin-right:5px}.rw-center{display:flex;justify-content:center;padding-top:6vh}.rw-pipeline{width:540px;max-width:100%}.rw-result{width:640px;max-width:100%}.rr-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap}.rr-file{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--text);min-width:0}.rr-file svg{width:17px;height:17px;color:var(--blue);flex-shrink:0}.rr-verdict{font-size:12.5px;color:var(--text-dim);margin-bottom:14px}.rw-result .risk-summary{margin-bottom:12px}.rr-meta{font-size:12px;color:var(--text-dim);margin-bottom:16px}@media (max-width: 1100px){.rw-grid{grid-template-columns:1fr}}[data-view=index] .chat-error{font-size:12px;color:var(--danger);margin-bottom:8px}.msg-error-card{display:flex;align-items:flex-start;gap:11px;background:var(--danger-soft, rgba(196, 90, 72, .07));border:1px solid rgba(196,90,72,.22);border-radius:12px;padding:11px 14px;max-width:560px;animation:fadeUp .3s ease both}.msg-error-card .mec-icon{color:var(--danger, #c45a48);flex-shrink:0;display:inline-flex;margin-top:2px}.msg-error-card .mec-icon svg{width:17px;height:17px}.msg-error-card .mec-title{font-size:12.5px;font-weight:700;color:var(--danger, #c45a48);margin-bottom:3px;letter-spacing:.2px}.msg-error-card .mec-text{font-size:13px;color:var(--text-mid, #4a4f57);line-height:1.65;word-break:break-word}[data-view=index] .pending-row{display:flex;align-items:center;gap:8px;margin-bottom:9px}[data-view=index] .pending-row .file-chip{max-width:480px;margin-bottom:0}[data-view=index] .pending-row .file-chip span,[data-view=index] .pending-row .file-chip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-x{border:none;background:none;color:var(--text-dim);cursor:pointer;font-size:15px;line-height:1;padding:3px 8px;border-radius:6px}.pf-x:hover{color:var(--danger);background:var(--danger-soft)}.chat-pipeline{margin-top:2px}.chat-review-result{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-panel, var(--bg));padding:13px 15px;margin-top:4px;animation:fadeUp .35s ease both}.crr-head{display:flex;align-items:center;gap:9px;margin-bottom:11px;flex-wrap:wrap}.crr-file{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--text);min-width:0}.crr-file svg{width:15px;height:15px;color:var(--blue);flex-shrink:0}.chat-review-result .risk-summary{margin-bottom:9px}.chat-review-result .risk-pill{min-width:76px;padding:8px 12px}.chat-review-result .risk-pill b{font-size:16px}.crr-meta{font-size:11.5px;color:var(--text-dim);margin-bottom:11px}.crr-actions{display:flex;gap:9px}.md-link{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(217,119,87,.4);cursor:pointer}.md-link:hover{border-bottom-color:var(--accent)}.file-chip .fc-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crr-file .fc-name{display:inline}[data-view=generate] .stepper{display:flex;align-items:center;gap:0;margin-bottom:26px;animation:fadeUp .4s ease both}[data-view=generate] .step{display:flex;align-items:center;gap:10px}[data-view=generate] .step-num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:600;background:var(--bg-raised);border:1px solid var(--border-strong);color:var(--text-dim);transition:all .2s}[data-view=generate] .step-num svg{width:12px;height:12px}[data-view=generate] .step-label{font-size:13px;color:var(--text-dim);font-weight:500;transition:color .2s}[data-view=generate] .step.active .step-num{background:var(--accent);border-color:var(--accent);color:#fff}[data-view=generate] .step.active .step-label{color:var(--text)}[data-view=generate] .step.done .step-num{background:var(--green-soft);border-color:var(--green);color:var(--green)}[data-view=generate] .step.done .step-label{color:var(--text-mid)}[data-view=generate] .step-line{flex:1;height:1px;background:var(--border-strong);margin:0 16px;min-width:40px}[data-view=generate] .progress{height:5px;border-radius:99px;background:var(--bg-hover);overflow:hidden}[data-view=generate] .progress-bar{height:100%;border-radius:99px;background:var(--accent);transition:width .6s cubic-bezier(.16,1,.3,1)}[data-view=generate] .wizard-panel[hidden]{display:none}[data-view=generate] .demand-box{display:flex;align-items:flex-start;gap:12px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:22px;animation:fadeUp .4s ease both}[data-view=generate] .demand-box svg{width:16px;height:16px;color:var(--accent);flex-shrink:0;margin-top:3px}[data-view=generate] .demand-box p{font-size:13px;color:var(--text-mid);line-height:1.6}[data-view=generate] .demand-box b{color:var(--text)}[data-view=generate] .src-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:22px;animation:fadeUp .45s ease both}[data-view=generate] .src-card{border:1.5px solid var(--border-strong);border-radius:var(--radius-lg);padding:20px;cursor:pointer;background:var(--bg-raised);display:flex;gap:14px;align-items:flex-start;transition:border-color .2s,background .2s,transform .15s}[data-view=generate] .src-card:hover{border-color:var(--accent);transform:translateY(-1px)}[data-view=generate] .src-card.sel{border-color:var(--accent);background:var(--accent-soft)}[data-view=generate] .src-card .sicon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}[data-view=generate] .src-card .sicon svg{width:17px;height:17px}[data-view=generate] .sicon.ic-upload{background:var(--blue-soft);color:var(--blue)}[data-view=generate] .sicon.ic-lib{background:var(--accent-soft);color:var(--accent)}[data-view=generate] .src-card h4{font-size:14px;font-weight:600;margin-bottom:3px}[data-view=generate] .src-card p{font-size:12px;color:var(--text-mid);line-height:1.55}[data-view=generate] .src-note{display:flex;flex-direction:column;align-items:flex-start;gap:10px;background:var(--blue-soft);border:1px solid rgba(106,155,204,.3);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:22px;font-size:12.5px;color:var(--text-mid);line-height:1.65;animation:fadeIn .3s}[data-view=generate] .src-note svg{width:15px;height:15px;color:var(--blue);flex-shrink:0;margin-top:2px}[data-view=generate] .src-note b{color:var(--text)}[data-view=generate] .match-list{animation:fadeUp .5s ease both}[data-view=generate] .match-list .sec-title{font-size:12px;color:var(--text-dim);letter-spacing:.6px;margin:4px 0 12px;text-transform:uppercase}[data-view=generate] .tmpl-card{display:flex;align-items:center;gap:16px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:10px;cursor:pointer;transition:border-color .2s,background .2s}[data-view=generate] .tmpl-card:hover{border-color:var(--border-strong);background:var(--bg-hover)}[data-view=generate] .tmpl-card.sel{border-color:var(--accent);background:var(--accent-soft)}[data-view=generate] .tmpl-card .t-info{flex:1;min-width:0}[data-view=generate] .tmpl-card .t-info h4{font-size:13.5px;font-weight:600;margin-bottom:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-view=generate] .tmpl-card .t-info .t-code{font-size:11.5px;color:var(--text-dim);font-family:ui-monospace,SF Mono,Consolas,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-view=generate] .match-bar{width:120px;flex-shrink:0}[data-view=generate] .match-bar .num{font-size:13px;font-weight:600;margin-bottom:5px;display:flex;justify-content:space-between}[data-view=generate] .match-bar .num span{font-size:11px;color:var(--text-dim);font-weight:400}[data-view=generate] .match-bar.m92 .progress-bar{background:var(--green)}[data-view=generate] .match-bar.m92 .num b{color:var(--green)}[data-view=generate] .match-bar.m87 .progress-bar{background:#a3b585}[data-view=generate] .match-bar.m87 .num b{color:var(--green)}[data-view=generate] .match-bar.m74 .progress-bar{background:var(--warning)}[data-view=generate] .match-bar.m74 .num b{color:var(--warning)}[data-view=generate] .tmpl-card .radio{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--border-strong);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s}[data-view=generate] .tmpl-card.sel .radio{border-color:var(--accent);background:var(--accent)}[data-view=generate] .tmpl-card.sel .radio:after{content:"";width:6px;height:6px;border-radius:50%;background:#fff}[data-view=generate] .match-search{display:flex;gap:8px;margin:0 0 14px;align-items:flex-start}[data-view=generate] .match-more{margin-top:2px}[data-view=generate] .fallback-note{display:flex;gap:12px;align-items:flex-start;margin-top:16px;background:var(--warning-soft);border:1px solid rgba(217,163,87,.3);border-radius:var(--radius-md);padding:14px 16px;font-size:12.5px;color:var(--warning);line-height:1.65;animation:fadeIn .4s}[data-view=generate] .fallback-note svg{width:15px;height:15px;flex-shrink:0;margin-top:2px}[data-view=generate] .fallback-note[hidden]{display:none}[data-view=generate] .direct-note{font-size:12px;color:var(--warning);margin-top:8px;line-height:1.6}[data-view=generate] .form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 18px;animation:fadeUp .45s ease both}[data-view=generate] .form-grid .field{min-width:0}[data-view=generate] .form-grid .span2{grid-column:span 2}[data-view=generate] .amount-row{position:relative}[data-view=generate] .amount-upper{font-size:12px;color:var(--green);padding:7px 2px 0;min-height:22px}[data-view=generate] .amount-upper b{font-weight:500}[data-view=generate] .amount-row input::placeholder{font-size:12px}[data-view=generate] .hint{font-size:11.5px;color:var(--text-dim);margin-top:2px;line-height:1.5}[data-view=generate] .quote-note{font-size:12px;color:var(--warning);margin-top:8px;line-height:1.6}[data-view=generate] .batch-note{font-size:12.5px;color:var(--text-mid);line-height:1.7}[data-view=generate] .result-wrap{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}[data-view=generate] .doc-preview.res-body{max-height:calc(100dvh - 340px);overflow:auto}[data-view=generate] .doc-preview{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:34px 38px;font-size:12.8px;line-height:2;color:var(--text-mid);animation:fadeUp .5s ease both}[data-view=generate] .doc-preview h2,[data-view=generate] .doc-preview .pv-title{text-align:center;font-size:17px;color:var(--text);letter-spacing:1px;margin-bottom:6px;font-weight:600}[data-view=generate] .doc-preview .doc-code{text-align:center;font-size:11px;color:var(--text-dim);margin-bottom:22px;font-family:ui-monospace,Consolas,monospace}[data-view=generate] .doc-preview p{margin-bottom:8px}[data-view=generate] .doc-preview mark.filled{color:var(--accent);font-weight:500;background:transparent;border-bottom:1px dashed rgba(217,119,87,.5)}[data-view=generate] .rc-sec-checks .chk{display:flex;align-items:flex-start;gap:10px;padding:9px 0;font-size:12.5px;color:var(--text-mid);border-bottom:1px solid var(--border)}[data-view=generate] .rc-sec-checks .chk:last-of-type{border-bottom:none}[data-view=generate] .rc-sec-checks .chk svg{width:15px;height:15px;color:var(--green);flex-shrink:0;margin-top:2px}[data-view=generate] .rc-sec-checks .chk.warn svg{color:var(--warning)}[data-view=generate] .rc-sec-checks .chk b{color:var(--text);font-weight:500}[data-view=generate] .diff-table td{font-size:12px}[data-view=generate] .step-actions{display:flex;justify-content:space-between;margin-top:24px;animation:fadeUp .5s ease both}[data-view=generate] .legal-gate{display:flex;gap:10px;align-items:flex-start;background:var(--warning-soft);border:1px solid rgba(217,163,87,.3);border-radius:var(--radius-md);padding:10px 14px;font-size:12.5px;color:var(--warning);line-height:1.6}[data-view=generate] .legal-gate svg{width:15px;height:15px;flex-shrink:0;margin-top:2px}[data-view=generate] .legal-gate b{color:var(--warning)}[data-view=generate] .sp-clause{color:#c2402a;background:#c2402a0d;border-left:3px solid #c2402a;padding:8px 12px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:6px 0}[data-view=generate] .sp-clause b{color:#c2402a}[data-view=generate] .sp-flash{animation:spFlash .8s ease-in-out 3}@keyframes spFlash{0%,to{background:#c2402a0d}50%{background:#c2402a38}}[data-view=generate] .rc-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:10px}[data-view=generate] .rc-toolbar-label{font-size:11px;font-weight:600;letter-spacing:.5px;color:var(--text-dim)}[data-view=generate] .rc-tool-btn{border:none;background:none;font-size:11.5px;color:var(--accent);cursor:pointer;padding:2px 6px;border-radius:4px}[data-view=generate] .rc-tool-btn:hover{background:var(--bg-hover, rgba(0,0,0,.04))}[data-view=generate] .rc-toolbar-sep{width:1px;height:12px;background:var(--border)}[data-view=generate] .rc-sec{margin-bottom:14px;scroll-margin-top:14px}[data-view=generate] .rc-sec-head{display:flex;align-items:center;gap:8px;width:100%;border:none;background:none;cursor:pointer;text-align:left;padding:0 0 12px;font:inherit;color:inherit}[data-view=generate] .rc-sec:not(.open) .rc-sec-head{padding-bottom:0}[data-view=generate] .rc-chev{color:var(--text-dim);flex-shrink:0;transition:transform .32s ease}[data-view=generate] .rc-sec:not(.open) .rc-chev{transform:rotate(-90deg)}[data-view=generate] .rc-sec-title{font-weight:600;font-size:14px;color:var(--text);flex-shrink:0}[data-view=generate] .rc-sec-badge{font-size:10.5px;font-weight:600;border-radius:10px;padding:1px 9px;background:var(--bg-hover, #f0ece2);color:var(--text-mid);flex-shrink:0}[data-view=generate] .rc-sec-badge.ok{background:#e2ecd9;color:#3f6b34}[data-view=generate] .rc-sec-badge.bad{background:#f7e3de;color:#a33524}[data-view=generate] .rc-sec-badge-live{background:#c2402a12;color:#c2402a;animation:fadeUp .3s ease both}[data-view=generate] .rc-sec-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .38s cubic-bezier(.22,1,.36,1)}[data-view=generate] .rc-sec.open .rc-sec-body{grid-template-rows:1fr}[data-view=generate] .rc-sec-inner{min-height:0;overflow:hidden}[data-view=generate] .rc-sec-review{border-style:dashed}[data-view=generate] .ai-scroll{max-height:calc(100dvh - 340px);overflow:auto;padding-right:2px}[data-view=generate] .ai-review-desc-line{margin:0 0 6px;font-size:11px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-view=generate] .ai-score-row{display:flex;align-items:center;gap:14px;padding:10px 2px 12px}[data-view=generate] .ai-score-ring{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}[data-view=generate] .ai-score-core{width:58px;height:58px;border-radius:50%;background:var(--bg-card, #fff);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}[data-view=generate] .ai-score-core b{font-size:21px;color:var(--text)}[data-view=generate] .ai-score-core span{font-size:11.5px;font-weight:600}[data-view=generate] .ai-score-side{min-width:0;display:flex;flex-direction:column;gap:6px}[data-view=generate] .ai-score-stats{display:flex;gap:6px;flex-wrap:wrap}[data-view=generate] .ai-score-meta{font-size:11px;color:var(--text-dim)}[data-view=generate] .ai-issue-list{display:flex;flex-direction:column;gap:8px}[data-view=generate] .ai-issue{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;background:var(--bg-raised, rgba(255,255,255,.6))}[data-view=generate] .ai-issue.ai-high{border-left:3px solid #c2402a}[data-view=generate] .ai-issue.ai-mid{border-left:3px solid #d98e32}[data-view=generate] .ai-issue.ai-low{border-left:3px solid var(--border-strong, #d8d2c4)}[data-view=generate] .ai-issue-head{display:flex;align-items:center;gap:6px;margin-bottom:4px}[data-view=generate] .ai-lv{flex-shrink:0;font-size:10.5px;font-weight:600;border-radius:4px;padding:1px 7px;letter-spacing:.3px}[data-view=generate] .ai-lv-high{background:#f7e3de;color:#a33524}[data-view=generate] .ai-lv-mid{background:#f4ead2;color:#9a6b1f}[data-view=generate] .ai-lv-low{background:var(--bg-hover, #f0ece2);color:var(--text-mid)}[data-view=generate] .ai-issue-sec{font-size:11.5px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-view=generate] .ai-issue-quote{margin:4px 0;font-size:12px;color:var(--text);background:var(--bg-hover, rgba(0,0,0,.03));border-left:2px solid var(--border-strong, #d8d2c4);padding:4px 8px;border-radius:0 4px 4px 0}[data-view=generate] .ai-quote-tag{display:inline-block;font-size:10px;color:var(--text-dim);border:1px solid var(--border);border-radius:3px;padding:0 4px;margin-right:6px;vertical-align:1px}[data-view=generate] .ai-issue-sug{margin:2px 0 0;font-size:12.5px;color:var(--text);line-height:1.6}[data-view=generate] .ai-sug-tag{display:inline-block;font-size:10px;font-weight:600;color:#a33524;background:#c2402a14;border-radius:3px;padding:1px 5px;margin-right:6px;vertical-align:1px}[data-view=generate] .ai-issue-fix{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:12px;flex-wrap:wrap}[data-view=generate] .ai-fix-field{flex-shrink:0;font-weight:600;color:var(--text);background:var(--bg-hover, rgba(0,0,0,.04));border-radius:3px;padding:1px 7px}[data-view=generate] .ai-fix-val{color:var(--text-mid);text-decoration:line-through;text-decoration-color:#c2402a73;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-view=generate] .ai-fix-arrow{color:var(--text-dim);flex-shrink:0}[data-view=generate] .ai-fix-new{color:#3f6b34;font-weight:600;word-break:break-all}[data-view=generate] .ai-issue-val{margin:3px 0 0;font-size:11.5px;color:var(--text-mid)}[data-view=generate] .ai-running{padding:8px 0 4px}[data-view=generate] .ai-running-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}[data-view=generate] .ai-running-head b{font-size:13px;color:var(--text)}[data-view=generate] .ai-live-count{font-size:11px;color:#c2402a;background:#c2402a12;border:1px solid rgba(194,64,42,.32);border-radius:10px;padding:1px 9px;animation:fadeUp .3s ease both}[data-view=generate] .ai-running-bar{height:4px;border-radius:2px;background:var(--bg-hover, rgba(0,0,0,.05));overflow:hidden}[data-view=generate] .ai-running-fill{height:100%;width:40%;border-radius:2px;background:linear-gradient(90deg,transparent,rgba(194,64,42,.45),transparent);animation:aiShimmer 1.4s ease-in-out infinite}@keyframes aiShimmer{0%{transform:translate(-100%)}to{transform:translate(350%)}}[data-view=generate] .ai-issue-live{animation:fadeUp .35s ease both}[data-view=generate] .ai-edit{margin-top:8px;border-top:1px dashed var(--border);padding-top:8px;display:flex;flex-direction:column;gap:6px}[data-view=generate] .ai-edit-row{display:flex;gap:8px;font-size:12px;line-height:1.6;align-items:flex-start}[data-view=generate] .ai-edit-k{flex-shrink:0;color:var(--text-dim);width:44px;padding-top:7px}[data-view=generate] .ai-edit-v{color:var(--text);word-break:break-all}[data-view=generate] .ai-edit-field{font-weight:600}[data-view=generate] .ai-edit-cur{color:var(--text-mid);text-decoration:line-through;text-decoration-color:#c2402a66;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}[data-view=generate] .ai-edit-link{font-size:11.5px;color:#3f6b34;background:#81b45a1a;border:1px solid rgba(129,180,90,.35);border-radius:4px;padding:5px 8px;line-height:1.6}[data-view=generate] .ai-issue-adopted{opacity:.55}[data-view=generate] .ai-issue-adopted .ai-issue-sec{text-decoration:line-through;text-decoration-color:#3f6b3480}[data-view=generate] .ai-adopted-badge{flex-shrink:0;background:#e2ecd9;color:#3f6b34;font-size:10.5px;padding:1px 8px}[data-view=generate] .ai-issue-spdone{border-left-color:#3f6b34}[data-view=generate] .ai-spdone-badge{flex-shrink:0;background:#e2ecd9;color:#3f6b34;font-size:10.5px;padding:1px 8px}[data-view=generate] .ai-dirty-badge{background:#f4ead2;color:#9a6b1f;animation:fadeUp .3s ease both}[data-view=generate] .ai-locate-warn{margin:6px 0 2px;font-size:11.5px;color:#9a6b1f;background:#f9f3e3;border:1px solid rgba(217,142,50,.4);border-radius:4px;padding:6px 9px;line-height:1.6}[data-view=generate] .sp-panel{margin-top:14px}[data-view=generate] .sp-panel-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px}[data-view=generate] .sp-panel-title{font-weight:600;font-size:14.5px;color:var(--text);flex-shrink:0}[data-view=generate] .sp-panel-desc{flex:1;font-size:12px;color:var(--text-dim);min-width:0}[data-view=generate] .sp-count{flex-shrink:0;font-size:11px;color:#c2402a;background:#c2402a12;border:1px solid rgba(194,64,42,.32);border-radius:10px;padding:1px 9px}[data-view=generate] .sp-list{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}[data-view=generate] .sp-item{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;background:var(--bg-raised, rgba(255,255,255,.6))}[data-view=generate] .sp-item.sp-added{border-left:3px solid #c2402a}[data-view=generate] .sp-item.sp-draft{border-style:dashed}[data-view=generate] .sp-item-head{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;margin-bottom:8px}[data-view=generate] .sp-item-head .badge{flex-shrink:0;margin-right:2px}[data-view=generate] .sp-when{font-size:11px;color:var(--text-dim);margin:0 4px 0 2px;flex-shrink:0}[data-view=generate] .sp-item-head .btn{flex-shrink:0;padding:3px 10px;font-size:11.5px;white-space:nowrap}[data-view=generate] .sp-item-head .sp-act-add{color:var(--green, #4a7c59)}[data-view=generate] .sp-item-head .icon-act{flex-shrink:0}[data-view=generate] .sp-compare{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:16px}[data-view=generate] .sp-orig{padding-left:10px;border-left:2px solid var(--border-strong, #d8d2c4);min-width:0}[data-view=generate] .sp-opt{padding-left:10px;border-left:2px solid #c2402a;min-width:0}[data-view=generate] .sp-col-label{display:block;font-size:10.5px;letter-spacing:.5px;color:var(--text-dim);margin-bottom:4px}[data-view=generate] .sp-orig p{margin:0;font-size:12px;color:var(--text-dim);line-height:1.65;word-break:break-all}[data-view=generate] .sp-opt p{margin:0;font-size:12.5px;color:var(--text);line-height:1.7;word-break:break-all}[data-view=generate] .sp-edit textarea{width:100%;font-size:12.5px;padding:8px 10px}[data-view=generate] .sp-meta{font-size:11px;color:var(--text-dim);margin-top:6px}[data-view=generate] .sp-input-row{display:flex;gap:10px;align-items:stretch}[data-view=generate] .sp-input{flex:1;min-height:64px;resize:vertical;line-height:1.6}[data-view=generate] .sp-input-side{display:flex;flex-direction:column;justify-content:flex-end;gap:6px;flex-shrink:0}[data-view=generate] .sp-input-side .btn{white-space:nowrap}[data-view=generate] .sp-input-hint{font-size:11px;color:var(--text-dim);text-align:right}[data-tip]{position:relative}[data-tip]:hover:after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 7px);transform:translate(-50%);background:#33291f;color:#fff;font-size:11px;line-height:1.4;padding:5px 9px;border-radius:5px;white-space:nowrap;z-index:90;pointer-events:none;box-shadow:0 3px 10px #00000029}[data-tip]:hover:before{content:"";position:absolute;left:50%;bottom:calc(100% + 3px);transform:translate(-50%);border:4px solid transparent;border-top-color:#33291f;z-index:90;pointer-events:none}[data-view=generate] .ph-mark{background:#d9775729;color:var(--accent);border-radius:3px;padding:0 2px}[data-view=generate] .ctx-hint{font-size:11px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}[data-view=generate] .ctx-hint em{font-style:normal;color:var(--accent)}[data-view=generate] .ctx-hint .ctx-filled{color:var(--accent);font-weight:600}[data-view=generate] .ctx-raw{font-size:12px;color:var(--text-dim);margin-top:3px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-view=generate] .lbl-seq{display:inline-block;margin-left:6px;padding:0 6px;font-size:10.5px;font-weight:400;color:var(--text-dim);background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;vertical-align:1px;cursor:help}[data-view=generate] .tpl-has{display:inline-block;margin-top:4px;padding:2px 8px;font-size:11.5px;line-height:1.5;border-radius:4px;color:var(--green);background:var(--green-soft);border:1px solid rgba(122,175,109,.25)}[data-view=generate] .field-miss label{color:var(--danger)}[data-view=generate] .gen-liveprev{margin-top:20px;animation:fadeUp .5s ease both}[data-view=generate] .lp-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1.5px dashed var(--border-strong);border-radius:var(--radius-md)}[data-view=generate] .lp-title{font-weight:600;font-size:13px;color:var(--text);flex-shrink:0}[data-view=generate] .lp-note{flex:1;font-size:12px;color:var(--text-dim)}[data-view=generate] .lp-toggle{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-mid);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0}[data-view=generate] .lp-toggle input{accent-color:var(--accent);margin:0}[data-view=generate] .lp-toggle.on{color:var(--accent);font-weight:500}[data-view=generate] .lp-body{margin-top:10px;max-height:460px;overflow:auto}[data-view=generate] .lp-tip{font-size:12px;color:var(--text-dim);margin-bottom:8px}[data-view=generate] .lp-compare{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-top:10px}[data-view=generate] .lp-col{display:flex;flex-direction:column;min-width:0}[data-view=generate] .lp-col-title{font-size:12px;font-weight:600;color:var(--text-mid);margin-bottom:6px;display:flex;gap:6px;align-items:baseline}[data-view=generate] .lp-col-title span{font-weight:400;font-size:11px;color:var(--text-dim)}[data-view=generate] .lp-compare .lp-body{max-height:430px;overflow:auto}[data-view=generate] .doc-preview span.filled{color:var(--accent);font-weight:500;border-bottom:1px dashed rgba(217,119,87,.5);background:transparent;padding:0}[data-view=generate] .res-head{margin-bottom:12px}[data-view=generate] .res-compare .lp-body{max-height:calc(100dvh - 340px)}[data-view=generate] .result-wrap .res-left{min-width:0}[data-view=generate] .field input.fld-flash{animation:fldflash 2.4s ease both}@keyframes fldflash{0%,55%{border-color:var(--accent);box-shadow:0 0 0 4px #d977572e}to{border-color:var(--border-strong);box-shadow:none}}[data-view=generate] .quote-drop{display:flex;align-items:center;gap:10px;border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);padding:14px 16px;font-size:12.5px;color:var(--text-mid);cursor:pointer;transition:border-color .2s,background .2s}[data-view=generate] .quote-drop:hover{border-color:var(--accent);background:var(--accent-soft)}[data-view=generate] .quote-drop svg{width:18px;height:18px;color:var(--text-dim);flex-shrink:0}[data-view=generate] .quote-drop[data-busy]{cursor:default;border-style:solid;border-color:var(--border-strong);background:var(--bg-hover)}[data-view=generate] .quote-drop[data-busy]:hover{background:var(--bg-hover)}[data-view=generate] .quote-drop .spinner{width:16px;height:16px;border:2px solid var(--border-strong);border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}[data-view=generate] .quote-result{margin-top:10px}[data-view=generate] .quote-result .table{margin-bottom:0}[data-view=generate] .quote-result .table td:last-child{white-space:nowrap;text-align:right}[data-view=generate] .card[data-dragging]{outline:2px dashed var(--accent);outline-offset:-2px;background:var(--accent-soft)}[data-view=generate] .quote-actions{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}[data-view=generate] .quote-actions .badge{margin-right:auto}[data-view=generate] .sp-item{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px}[data-view=generate] .sp-item+.sp-item{margin-top:8px}[data-view=generate] .sp-req{font-size:11.5px;color:var(--text-dim);margin-bottom:4px}[data-view=generate] .sp-text{font-size:12.5px;color:#c2402a;line-height:1.6}[data-view=generate] .sp-foot{display:flex;align-items:center;gap:10px;margin-top:6px}[data-view=generate] .sp-status{font-size:11px;padding:2px 8px;border-radius:4px}[data-view=generate] .sp-status.pending{background:var(--warning-soft);color:var(--warning)}[data-view=generate] .sp-status.ok{background:var(--green-soft);color:var(--green)}[data-view=generate] #spInput{flex:1}@media (max-width: 1000px){[data-view=generate] .result-wrap,[data-view=generate] .form-grid,[data-view=generate] .src-grid{grid-template-columns:1fr}}.auth-shell{display:grid;grid-template-columns:minmax(360px,44%) 1fr;min-height:100dvh;background:var(--bg)}.auth-boot{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--text-dim);font-size:13.5px;background:var(--bg)}.auth-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.auth-spinner-lg{width:26px;height:26px;border-color:var(--border-strong);border-top-color:var(--accent)}.auth-brand{position:relative;overflow:hidden;background:linear-gradient(155deg,#2b2620,#3d342b 45%,#4a3d31);color:#f5f1ea;display:flex;flex-direction:column;padding:52px 48px}.auth-brand-glow{position:absolute;width:620px;height:620px;right:-220px;top:-180px;background:radial-gradient(circle,rgba(217,119,87,.34) 0%,rgba(217,119,87,.1) 42%,transparent 68%);pointer-events:none}.auth-brand:after{content:"";position:absolute;left:-140px;bottom:-200px;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(74,127,181,.16) 0%,transparent 62%);pointer-events:none}.auth-brand-inner{position:relative;z-index:1;max-width:460px;animation:fadeUp .6s ease both}.auth-brand-logo{display:flex;align-items:center;gap:12px;margin-bottom:54px}.auth-brand-logo img{height:34px;width:auto;filter:brightness(0) invert(1);opacity:.92}.auth-brand-logo strong{display:block;font-size:15px;letter-spacing:.3px}.auth-brand-logo span{display:block;font-size:10.5px;letter-spacing:1.6px;opacity:.55;text-transform:uppercase}.auth-brand-title{font-size:40px;font-weight:650;letter-spacing:.5px;line-height:1.15;margin-bottom:18px}.auth-brand-title small{display:block;font-size:14px;font-weight:400;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-top:10px}.auth-brand-sub{font-size:14.5px;line-height:1.85;opacity:.78;margin-bottom:46px}.auth-brand-features{list-style:none;display:flex;flex-direction:column;gap:18px}.auth-brand-features li{display:flex;align-items:flex-start;gap:14px}.auth-brand-features strong{display:block;font-size:14.5px;font-weight:600;margin-bottom:2px}.auth-brand-features span:not(.abf-icon){font-size:12.5px;opacity:.62;line-height:1.5}.abf-icon{width:38px;height:38px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:#ffffff12;border:1px solid rgba(255,255,255,.1)}.abf-icon svg{width:17px;height:17px}.abf-blue{color:#8fb8dd}.abf-green{color:#a8c48a}.abf-orange{color:#e8a183}.auth-brand-foot{position:relative;z-index:1;margin-top:auto;font-size:11.5px;opacity:.42;letter-spacing:.4px}.auth-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 28px;position:relative}.auth-card{width:100%;max-width:400px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:36px 34px 30px;box-shadow:0 12px 40px #29271f12,0 2px 6px #29271f0a;animation:fadeUp .5s .05s ease both}.auth-card-head{margin-bottom:24px}.auth-card-head h2{font-size:23px;font-weight:650;letter-spacing:-.2px;margin-bottom:6px}.auth-card-head p{font-size:13px;color:var(--text-mid)}.auth-tabs{display:flex;gap:4px;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:4px;margin-bottom:22px}.auth-tab{flex:1;border:none;background:transparent;border-radius:7px;padding:8px 10px;font-size:13px;color:var(--text-mid);transition:background .15s,color .15s}.auth-tab:hover{color:var(--text)}.auth-tab.active{background:var(--bg-raised);color:var(--text);font-weight:550;box-shadow:var(--shadow-card)}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-field{display:flex;flex-direction:column;gap:7px}.auth-label{font-size:12.5px;font-weight:550;color:var(--text-mid);letter-spacing:.2px}.auth-input{width:100%;border:1px solid var(--border-strong);border-radius:10px;background:var(--bg-input);padding:11px 13px;font-size:14px;color:var(--text);transition:border-color .15s,box-shadow .15s;outline:none}.auth-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.auth-input::placeholder{color:var(--text-dim)}.auth-textarea{resize:vertical;min-height:72px;line-height:1.6}.auth-pw-wrap{position:relative;display:block}.auth-pw-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--text-dim);padding:6px;border-radius:6px;display:inline-flex}.auth-pw-eye:hover{color:var(--text-mid);background:var(--bg-hover)}.auth-pw-eye svg{width:16px;height:16px}.auth-code-row{display:flex;gap:10px}.auth-code-input{flex:1;letter-spacing:4px;font-variant-numeric:tabular-nums}.auth-code-btn{border:1px solid var(--border-strong);background:var(--bg-raised);border-radius:10px;padding:0 14px;font-size:12.5px;color:var(--text-mid);white-space:nowrap;transition:border-color .15s,color .15s,background .15s}.auth-code-btn:hover:not([disabled]){border-color:var(--accent);color:var(--accent)}.auth-code-btn[disabled]{opacity:.5;cursor:not-allowed}.auth-hint{font-size:11.5px;color:var(--text-dim);line-height:1.5}.auth-remember{margin-top:-2px}.auth-check{display:inline-flex;align-items:center;gap:9px;font-size:13px;color:var(--text-mid);cursor:pointer;-webkit-user-select:none;user-select:none}.auth-check input{position:absolute;opacity:0;width:0;height:0}.auth-check-box{width:17px;height:17px;border:1.5px solid var(--border-strong);border-radius:5px;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s;flex-shrink:0;color:#fff}.auth-check-box svg{width:11px;height:11px;opacity:0;transform:scale(.5);transition:opacity .15s,transform .15s}.auth-check input:checked+.auth-check-box{background:var(--accent);border-color:var(--accent)}.auth-check input:checked+.auth-check-box svg{opacity:1;transform:scale(1)}.auth-check:hover .auth-check-box{border-color:var(--accent)}.auth-msg{border-radius:9px;padding:9px 12px;font-size:12.5px;line-height:1.55;animation:fadeIn .2s ease both}.auth-msg-error{background:var(--danger-soft);color:var(--danger);border:1px solid rgba(196,90,72,.22)}.auth-msg-ok{background:var(--green-soft);color:var(--green);border:1px solid rgba(93,122,67,.22)}.auth-submit{margin-top:4px;border:none;border-radius:10px;background:var(--accent);color:#fff;font-size:14.5px;font-weight:600;letter-spacing:2px;padding:12px;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:background .15s,transform .1s,box-shadow .15s;box-shadow:0 4px 14px #d9775747}.auth-submit:hover:not([disabled]){background:var(--accent-hover);box-shadow:0 6px 18px #d9775757}.auth-submit:active:not([disabled]){transform:scale(.985)}.auth-submit[disabled]{opacity:.55;cursor:not-allowed;box-shadow:none}.auth-submit .auth-spinner{width:14px;height:14px}.auth-submit-inline{margin-top:0;letter-spacing:1px;padding:9px 22px;font-size:13.5px}.auth-card-foot{margin-top:22px;padding-top:18px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;color:var(--text-mid)}.auth-link-btn{border:none;background:transparent;color:var(--accent);font-size:13px;font-weight:550;padding:2px 4px;border-radius:6px}.auth-link-btn:hover{color:var(--accent-hover);text-decoration:underline}.auth-tip{margin-top:22px;font-size:11.5px;color:var(--text-dim);letter-spacing:.3px}.auth-apply-modal{max-width:440px}.auth-apply-done{text-align:center;padding:8px 0 4px}.auth-apply-done-icon{width:52px;height:52px;margin:0 auto 16px;border-radius:50%;background:var(--green-soft);color:var(--green);display:flex;align-items:center;justify-content:center;animation:fadeUp .35s ease both}.auth-apply-done-icon svg{width:24px;height:24px}.auth-apply-done h3{font-size:18px;margin-bottom:8px}.auth-apply-done p{font-size:13px;color:var(--text-mid);line-height:1.6}.auth-apply-done-sub{font-size:12px;color:var(--text-dim);margin-top:4px}.auth-apply-done .auth-submit{margin-top:20px;width:100%}.user-card-wrap{position:relative;margin-bottom:10px}.user-card{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--bg-raised);transition:border-color .15s,background .15s;text-align:left}.user-card:hover,.user-card.open{border-color:var(--border-strong);background:var(--bg-hover)}.user-avatar{width:30px;height:30px;border-radius:9px;background:linear-gradient(140deg,var(--accent),#b85c3e);color:#fff;font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.user-avatar.sm{width:26px;height:26px;border-radius:8px;font-size:12px}.user-meta{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.35}.user-name{font-size:13px;font-weight:550;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-login{font-size:11px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-badge{font-size:10.5px;padding:2px 7px;border-radius:20px;letter-spacing:.3px;flex-shrink:0;border:1px solid transparent}.role-member{background:var(--bg-hover);color:var(--text-mid);border-color:var(--border-strong)}.role-admin{background:var(--blue-soft);color:var(--blue);border-color:#6a9bcc4d}.role-superadmin{background:var(--gold-soft);color:var(--gold);border-color:#a97b1f4d}.user-menu{position:absolute;left:0;right:0;bottom:calc(100% + 6px);background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-modal);overflow:hidden;z-index:40;animation:fadeUp .18s ease both}.user-menu-head{padding:10px 12px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:1px}.user-menu-head strong{font-size:13px}.user-menu-head span{font-size:11px;color:var(--text-dim)}.user-menu button{width:100%;display:flex;align-items:center;gap:9px;border:none;background:transparent;padding:10px 12px;font-size:13px;color:var(--text-mid);transition:background .13s,color .13s}.user-menu button svg{width:14px;height:14px}.user-menu button:hover{background:var(--bg-hover);color:var(--text)}.user-menu button.danger{color:var(--danger)}.user-menu button.danger:hover{background:var(--danger-soft)}.profile-info{border:1px solid var(--border);border-radius:var(--radius-md);padding:12px;background:var(--bg-hover, #fafafa)}.profile-info-row{display:flex;align-items:center;gap:10px}.profile-name{font-size:14px;font-weight:600;color:var(--text)}.profile-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.profile-fact{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--text-dim)}.profile-fact b{font-size:12.5px;color:var(--text);font-weight:500;word-break:break-all}.access-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}.access-search{border:1px solid var(--border-strong);border-radius:9px;background:var(--bg-input);padding:8px 12px;font-size:13px;width:240px;outline:none;transition:border-color .15s,box-shadow .15s}.access-search:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.access-user-cell{display:flex;align-items:center;gap:10px}.access-user-name{font-size:13px;font-weight:550;color:var(--text)}.access-user-sub{font-size:11px;color:var(--text-dim)}.access-actions{display:flex;gap:5px;flex-wrap:nowrap}.icon-act{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;flex-shrink:0;border:1px solid var(--border);border-radius:6px;background:var(--bg-raised);color:var(--text-mid);cursor:pointer;transition:border-color .15s,color .15s,background .15s}.icon-act svg{width:13.5px;height:13.5px}.icon-act:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.icon-act-danger:hover{border-color:var(--danger);color:var(--danger);background:#c55a4a14}.access-radio-row{display:flex;gap:8px;flex-wrap:wrap}.access-radio{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border-strong);border-radius:9px;padding:7px 13px;font-size:13px;color:var(--text-mid);cursor:pointer;transition:border-color .14s,color .14s,background .14s;-webkit-user-select:none;user-select:none}.access-radio input{position:absolute;opacity:0;width:0;height:0}.access-radio:hover{border-color:var(--accent)}.access-radio.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft);font-weight:550}.access-perm-grid{display:flex;gap:16px;flex-wrap:wrap}.access-check{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text-mid);cursor:pointer;-webkit-user-select:none;user-select:none}.access-check input{position:absolute;opacity:0;width:0;height:0}.access-check .auth-check-box{width:16px;height:16px}.access-check .auth-check-box svg{width:10px;height:10px}.access-check input:checked+.auth-check-box{background:var(--accent);border-color:var(--accent)}.access-check input:checked+.auth-check-box svg{opacity:1;transform:scale(1)}.access-check:hover .auth-check-box{border-color:var(--accent)}.access-wecom-grid{display:grid;grid-template-columns:280px 1fr;gap:22px;align-items:start}.access-dept-tree{border:1px solid var(--border);border-radius:var(--radius-md);padding:8px;max-height:520px;overflow-y:auto;background:var(--bg)}.access-dept-node{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:7px;font-size:12.5px;color:var(--text-mid);cursor:pointer;-webkit-user-select:none;user-select:none}.access-dept-node:hover{background:var(--bg-hover);color:var(--text)}.access-dept-node.active{background:var(--accent-soft, rgba(79, 110, 247, .12));color:var(--accent, #4f6ef7);font-weight:600}.access-dept-id{font-size:10.5px;color:var(--text-dim);font-family:ui-monospace,Consolas,monospace}.dept-caret{width:15px;height:15px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border:none;background:none;padding:0;cursor:pointer;color:var(--text-dim);transition:transform .15s ease}.dept-caret svg{width:12px;height:12px}.dept-caret.open{transform:rotate(90deg)}.dept-caret.leaf{visibility:hidden}.dept-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dept-count{margin-left:auto;flex-shrink:0;font-size:10.5px;color:var(--text-dim);font-variant-numeric:tabular-nums;background:var(--bg-hover);border-radius:8px;padding:0 6px;line-height:16px}.access-dept-node.active .dept-count{background:transparent;color:var(--accent, #4f6ef7)}.dept-filter-chip{display:inline-flex;align-items:center;gap:5px;margin-left:9px;padding:2px 9px;border:1px solid var(--accent, #4f6ef7);border-radius:999px;background:var(--accent-soft, rgba(79, 110, 247, .08));color:var(--accent, #4f6ef7);font-size:11.5px;font-weight:600;cursor:pointer}.dept-filter-chip .chip-x{font-size:13px;line-height:1}.dept-filter-chip:hover{background:var(--accent, #4f6ef7);color:#fff}.wecom-allow{border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;margin-top:4px;background:var(--bg)}.wecom-allow-body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:14px;margin:10px 0 12px;align-items:stretch}@media (max-width: 900px){.wecom-allow-body{grid-template-columns:minmax(0,1fr)}}.wecom-allow-picker{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);overflow:hidden;display:flex;flex-direction:column}.wecom-allow-tabs{display:flex;gap:4px;padding:8px 10px;background:var(--bg-hover, #fafafa);border-bottom:1px solid var(--border)}.wecom-allow-tabs button{flex:1;border:1px solid transparent;background:none;cursor:pointer;padding:5px 10px;font-size:12.5px;color:var(--text-mid);border-radius:7px}.wecom-allow-tabs button:hover{color:var(--text)}.wecom-allow-tabs button.active{background:var(--bg);border-color:var(--border);color:var(--text);font-weight:600;box-shadow:0 1px 2px #0000000a}.wecom-allow-picker .wecom-allow-dept{border:none;border-radius:0;flex:1;display:flex;flex-direction:column}.wecom-allow-picker .wecom-allow-dept-head{border-bottom:1px solid var(--border)}.wecom-allow-picker .wecom-allow-tree{flex:1}.wecom-allow-picker .wecom-allow-member{border:none;border-radius:0;padding:12px}.wecom-allow-tree{max-height:300px;overflow-y:auto;padding:6px 6px 8px}.allow-tree-row{display:flex;align-items:center;gap:7px;padding:4px 8px;border-radius:6px;min-height:30px}.allow-tree-row:hover{background:var(--bg-hover, #f5f5f6)}.allow-tree-row.covered{opacity:.66}.allow-tree-toggle{width:18px;height:18px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer;color:var(--text-dim);border-radius:4px;padding:0}.allow-tree-toggle:hover{background:var(--bg-hover);color:var(--text)}.allow-tree-toggle svg{width:13px;height:13px}.allow-tree-toggle.leaf{cursor:default}.allow-tree-row input[type=checkbox]{width:15px;height:15px;flex:none;cursor:pointer;accent-color:var(--accent, #e8734a);margin:0}.allow-tree-row input[type=checkbox]:disabled{cursor:not-allowed}.allow-tree-name{font-size:12.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.allow-tree-count{font-size:11px;color:var(--text-dim);flex:none;background:var(--bg-hover, #f2f2f3);border-radius:999px;padding:1px 7px}.allow-tree-covered{font-size:11px;color:var(--text-dim);flex:none;border:1px solid var(--border);border-radius:4px;padding:0 5px}.wecom-allow-list{border:1px dashed var(--border);border-radius:var(--radius-md);display:flex;flex-direction:column;min-height:0;overflow:hidden}.wecom-allow-list-head{padding:10px 14px;font-size:13px;font-weight:600;color:var(--text);border-bottom:1px solid var(--border);background:var(--bg-hover, #fafafa)}.wecom-allow-list .empty{margin:0;padding:26px 16px}.wecom-allow-list-body{overflow-y:auto;max-height:320px;padding:6px}.allow-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:7px}.allow-item:hover{background:var(--bg-hover, #f7f7f8)}.allow-item-main{flex:1;min-width:0}.allow-item-name{font-size:12.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.allow-item .tool-key{margin-top:1px}.allow-item .btn{flex:none}.wecom-allow-member{display:flex;flex-direction:column;gap:8px}.wecom-allow-member .auth-label{margin-bottom:0}.wecom-allow-member-tip{font-size:12px;color:var(--text-dim);line-height:1.5}.wecom-member-search{position:relative}.wecom-member-dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:30;min-width:260px;max-height:240px;overflow-y:auto;background:var(--bg, #fff);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-modal, 0 8px 24px rgba(0,0,0,.12))}.wecom-member-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:none;background:none;cursor:pointer;padding:7px 12px;font-size:12.5px;color:var(--text);text-align:left}.wecom-member-option:hover{background:var(--bg-hover)}.wecom-autosync-row{display:flex;align-items:center;gap:10px}.wecom-hour-select{max-width:240px}.wecom-autosync-quick{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1px solid var(--border);border-radius:999px;background:var(--bg-hover, #f7f7f8)}.wecom-autosync-label{font-size:12px;color:var(--text-mid);white-space:nowrap}.wecom-quick-select{padding:3px 4px;font-size:12px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);max-width:92px}.wecom-hour-select-sm{max-width:128px;padding:3px 6px;font-size:12px;border-radius:6px}.switch-sm{transform:scale(.82);margin:0 -2px}.wecom-toolbar-main{flex-wrap:nowrap;align-items:center;gap:12px}.wecom-toolbar-main .card-desc{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 1080px){.wecom-toolbar-main{flex-wrap:wrap}.wecom-toolbar-main .card-desc{white-space:normal;flex-basis:100%}}.wecom-synclog-list{border:1px solid var(--border);border-radius:var(--radius-md);max-height:300px;overflow-y:auto;background:var(--bg)}.synclog-row{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:12px;color:var(--text-mid);border-bottom:1px solid var(--border)}.synclog-row:last-child{border-bottom:none}.synclog-row.fail{background:var(--danger-soft, rgba(196, 90, 72, .05))}.synclog-mark{width:16px;text-align:center;font-weight:700;color:var(--text-dim);flex-shrink:0}.synclog-mark.ok{color:#2e9e5b}.synclog-row.fail .synclog-mark{color:var(--danger, #c45a48)}.synclog-time{font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.synclog-detail{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.access-member-list{max-height:520px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-md)}.wecom-config{border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:22px;background:var(--bg)}.wecom-config-body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:0 22px;align-items:start}.wecom-config-body.solo{grid-template-columns:1fr}.wecom-config-main{min-width:0}.wecom-config-form .auth-field{margin:0 0 10px}.wecom-config-form .auth-field:last-child{margin-bottom:0}.wecom-config-actions{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}.wecom-config-hint{font-size:12px;color:var(--text-dim)}.wecom-toolbar-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.wecom-tutorial{border-left:1px dashed var(--border);padding-left:22px;max-height:460px;overflow-y:auto}.wecom-tutorial-title{font-size:13px;font-weight:600;margin-bottom:4px}.wecom-tutorial-list{margin:8px 0 0;padding-left:20px;font-size:12.5px;color:var(--text-mid);line-height:1.9}.wecom-tutorial-list code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;background:var(--bg-hover);border-radius:4px;padding:1px 5px}.wecom-tutorial-note{margin-top:8px;font-size:12px;color:var(--text-dim);background:var(--bg-hover);border-radius:var(--radius-md);padding:8px 12px;line-height:1.7}.wecom-tutorial-note code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px}@media (max-width: 900px){.wecom-config-body{grid-template-columns:1fr}.wecom-tutorial{border-left:none;border-top:1px dashed var(--border);padding-left:0;padding-top:14px;max-height:none}}.access-toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%);background:var(--text);color:var(--bg);font-size:13px;padding:10px 18px;border-radius:24px;box-shadow:var(--shadow-modal);z-index:200;animation:fadeUp .25s ease both;max-width:76vw}@media (max-width: 900px){.auth-shell{grid-template-columns:1fr}.auth-brand{padding:36px 28px 44px}.auth-brand-title{font-size:30px}.auth-brand-features{display:none}.auth-brand-logo{margin-bottom:30px}.auth-brand-sub{margin-bottom:0}.access-wecom-grid{grid-template-columns:1fr}}.tab-groups{display:inline-flex;gap:10px;align-items:center}.tab-group-label{font-size:11.5px;font-weight:600;letter-spacing:1px;color:var(--text-dim);padding:0 10px 0 9px;border-right:1px solid var(--border);margin-right:4px;align-self:center;line-height:1;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}.tool-group-title{font-size:12px;font-weight:700;color:var(--text-dim, #8a8f98);letter-spacing:1px;padding:14px 4px 6px;-webkit-user-select:none;user-select:none}.tool-name{font-weight:600}.tool-key{font-family:var(--mono, ui-monospace, monospace);font-size:11px;color:var(--text-dim, #8a8f98);margin-top:2px}.tool-desc{line-height:1.5}.tool-endpoints{font-family:var(--mono, ui-monospace, monospace);font-size:11px;color:var(--text-dim, #8a8f98);margin-top:3px}.tool-select{border:1px solid var(--border, #d8dbe2);border-radius:6px;padding:4px 8px;font-size:12px;background:var(--bg, #fff);color:var(--text, #1c1f23)}.tool-disabled-row td{opacity:.55}.tool-note{margin-top:14px;padding:10px 12px;border-radius:8px;background:var(--bg-soft, #f5f6f8);color:var(--text-dim, #6b7078);font-size:12px;line-height:1.7}.switch{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border, #d8dbe2);border-radius:999px;background:var(--bg, #fff);padding:3px 10px 3px 4px;cursor:pointer;transition:all .15s ease;font-size:12px;color:var(--text, #1c1f23)}.switch .switch-dot{width:16px;height:16px;border-radius:50%;background:var(--border, #b9bec8);transition:background .15s ease}.switch.on{border-color:var(--accent, #4f6ef7);color:var(--accent, #4f6ef7)}.switch.on .switch-dot{background:var(--accent, #4f6ef7)}.switch:disabled{opacity:.5;cursor:wait}.badge-purple{background:#7c4dff1f;color:#6a3bd8}.tab{white-space:nowrap}.tabs{flex-wrap:nowrap;overflow-x:auto}.switch{white-space:nowrap;flex-shrink:0}.switch-text{white-space:nowrap}.tool-name,.tool-desc,.tool-endpoints{overflow-wrap:anywhere}.guard-panel{margin:4px 0 18px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:linear-gradient(135deg,#4f6ef70f,#7c4dff0a)}.guard-panel-h{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--text)}.guard-panel-h .guard-icon{width:22px;height:22px;border-radius:6px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:#4f6ef724;color:var(--accent, #4f6ef7)}.guard-panel-h .guard-icon svg{width:13px;height:13px}.guard-stat{margin-left:auto;font-size:12px;font-weight:500;color:var(--text-dim);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.guard-stat b{color:var(--accent, #4f6ef7);font-weight:700}.guard-stat-btn{border:none;background:none;padding:2px 4px;border-radius:6px;cursor:pointer;font-family:inherit;transition:background .15s ease}.guard-stat-btn:hover{background:#4f6ef71a;color:var(--accent, #4f6ef7)}.guard-stat-btn svg{opacity:.55;flex-shrink:0}.denied-table{font-size:12px}.denied-table th,.denied-table td{padding:7px 8px;vertical-align:top}.denied-ts{white-space:nowrap;color:var(--text-dim);font-variant-numeric:tabular-nums}.denied-target{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;word-break:break-all}.denied-reason{font-size:11.5px;color:var(--text-dim);margin-top:2px;line-height:1.5}.denied-session{line-height:1.5}.denied-session-link{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;border:none;padding:0;font-size:12.5px;color:var(--accent, #4f6ef7);cursor:pointer;text-align:left;text-decoration:underline dotted;text-underline-offset:3px}.denied-session-link:hover{color:var(--accent-strong, #3b5bdb);text-decoration-style:solid}.guard-layers{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.guard-layer{border:1px solid var(--border);border-radius:8px;background:var(--bg, #fff);padding:10px 12px;display:flex;flex-direction:column;gap:4px}.guard-layer.guard-core{border-style:dashed}.guard-layer-h{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600}.guard-layer-no{width:16px;height:16px;border-radius:50%;flex-shrink:0;background:#4f6ef724;color:var(--accent, #4f6ef7);font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.guard-layer-desc{font-size:11.5px;line-height:1.55;color:var(--text-dim)}.guard-layer-tag{align-self:flex-start;margin-top:2px;font-size:10.5px;padding:1px 7px;border-radius:999px;background:var(--bg-soft, #f5f6f8);color:var(--text-dim);font-weight:500}.guard-layer-tag.tag-core{background:#27ae601f;color:#1e8b4d}.guard-layer-tag.toggle-tag{background:#4f6ef71f;color:var(--accent, #4f6ef7)}@media (max-width: 900px){.guard-layers{grid-template-columns:1fr}}.tool-grant-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--border);border-radius:8px;font-size:12.5px}.tool-grant-row+.tool-grant-row{margin-top:6px}.tool-grant-name{font-weight:500;flex:1;min-width:0}.tool-grant-name small{display:block;font-weight:400;font-size:11px;color:var(--text-dim)}.tool-grant-seg{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden;flex-shrink:0}.tool-grant-seg button{border:none;background:var(--bg, #fff);color:var(--text-dim);font-size:11.5px;padding:3px 9px;transition:all .12s ease}.tool-grant-seg button+button{border-left:1px solid var(--border)}.tool-grant-seg button.on{background:var(--accent, #4f6ef7);color:#fff}.tool-grant-seg button.on.allow{background:var(--green, #4a7c59)}.tool-grant-seg button.on.deny{background:var(--danger, #c0392b)}.tool-grant-hint{font-size:11.5px;color:var(--text-dim);line-height:1.6;margin-top:2px}.status-cell{display:inline-flex;align-items:center;font-size:12.5px;white-space:nowrap}.status-dot{width:6px;height:6px;border-radius:50%;display:inline-block;margin-right:5px;flex-shrink:0}.status-dot.dot-green{background:var(--green, #4a7c59)}.status-dot.dot-amber{background:var(--warning, #d7a357)}.status-dot.dot-red{background:var(--danger, #c0392b)}.pw-flag{font-style:normal;font-size:11px;color:var(--warning);margin-left:7px;letter-spacing:.3px}.perm-cell{display:inline-flex;align-items:center;gap:6px;max-width:100%;white-space:nowrap}.perm-chip{font-size:11.5px;line-height:1;padding:4px 9px;border-radius:20px;background:#0000000b;color:var(--text-mid);max-width:116px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:none}.perm-more{font-size:11.5px;color:var(--accent);font-weight:550;flex:none;cursor:default}.perm-none{font-size:12.5px;color:var(--text-dim)}.td-nowrap{white-space:nowrap}.info-tip{position:relative;display:inline-flex;align-items:center;color:var(--text-dim, #8a8f98);cursor:help;outline:none;margin-left:2px;vertical-align:middle}.info-tip svg{width:15px;height:15px}.info-tip:hover,.info-tip:focus-visible{color:var(--accent, #4f6ef7)}.info-tip-bubble{position:absolute;top:calc(100% + 8px);left:0;z-index:60;width:max-content;max-width:340px;background:var(--bg-raised, #fff);color:var(--text, #1c1f23);border:1px solid var(--border-strong, #d8dbe2);border-radius:8px;box-shadow:0 8px 24px #0000001f;padding:10px 12px;font-size:12px;font-weight:400;line-height:1.7;opacity:0;visibility:hidden;transform:translateY(-2px);transition:opacity .15s ease,transform .15s ease,visibility .15s;pointer-events:none}.info-tip:hover .info-tip-bubble,.info-tip:focus-visible .info-tip-bubble{opacity:1;visibility:visible;transform:translateY(0)}.card-h .info-tip{margin-left:6px}h3 .info-tip,h2 .info-tip{vertical-align:super;margin-left:5px;margin-top:1px;transform:translateY(-1px)}h3 .info-tip svg,h2 .info-tip svg{width:13px;height:13px}.tool-static{display:inline-block;padding:4px 10px;font-size:12px;color:var(--text-dim, #8a8f98);border:1px dashed var(--border, #d8dbe2);border-radius:6px;white-space:nowrap}.tool-group-hint{font-weight:400;font-size:11px;color:var(--text-dim, #8a8f98);letter-spacing:0;margin-left:6px}.ai-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;background:#29271f6b;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;animation:aiModalIn .25s ease}.ai-modal-backdrop.closing{opacity:0;transition:opacity .45s ease;pointer-events:none}@keyframes aiModalIn{0%{opacity:0}}.ai-modal-card{width:min(480px,calc(100vw - 48px));background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px 26px 20px;box-shadow:0 24px 64px #29271f47;animation:aiModalCardIn .32s cubic-bezier(.22,1,.36,1)}.ai-modal-backdrop.closing .ai-modal-card{opacity:0;transition:opacity .18s ease}@keyframes aiModalCardIn{0%{opacity:0;transform:translateY(16px) scale(.95)}}.ai-modal-head{display:flex;align-items:center;gap:10px;font-size:15.5px}.ai-modal-head .spinner{width:18px;height:18px;flex-shrink:0;border:2.5px solid var(--border-strong);border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.ai-modal-check{width:30px;height:30px;margin-right:10px;flex-shrink:0;border-radius:50%;background:#e2ecd9;color:#3f6b34;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;animation:aiCheckPop .4s cubic-bezier(.34,1.56,.64,1) backwards}@keyframes aiCheckPop{0%{transform:scale(.4);opacity:0}}.ai-modal-sub{font-size:12.5px;color:var(--text-mid);margin:10px 0 0;line-height:1.6}.ai-modal-sub.dim{color:var(--text-dim);font-size:11.5px;margin-top:14px}.ai-modal-shimmers{display:flex;flex-direction:column;gap:10px;margin:18px 0 4px}.ai-modal-shimmer{height:10px;border-radius:5px;background:linear-gradient(90deg,var(--bg-panel) 25%,var(--bg-hover) 45%,var(--bg-panel) 65%);background-size:200% 100%;animation:aiShimmer 1.15s linear infinite}@keyframes aiShimmer{to{background-position:-200% 0}}.ai-modal-foot{display:flex;align-items:center;gap:10px;margin-top:18px;min-height:28px}.ai-modal-count{font-size:12.5px;color:var(--text-mid);flex:1;animation:aiModalIn .3s ease}.ai-modal-count.dim{color:var(--text-dim)}.ai-modal-count b{color:var(--text)}[data-view=generate] .draft-panel{margin-top:14px;border-style:dashed}[data-view=generate] .draft-clar{margin-top:10px;border:1px solid rgba(217,142,50,.4);background:#f9f3e3;border-radius:6px;padding:10px 12px;font-size:12.5px;color:#9a6b1f;line-height:1.7}[data-view=generate] .draft-clar ul{margin:6px 0 8px;padding-left:18px}[data-view=generate] .draft-clar li{margin:2px 0}[data-view=generate] .draft-banner{display:flex;align-items:center;gap:8px;margin-bottom:14px;padding:10px 14px;border:1px solid rgba(217,142,50,.45);border-left:3px solid #d98e32;background:#f9f3e3;border-radius:var(--radius-sm, 8px);font-size:12.5px;color:#9a6b1f;line-height:1.7}[data-view=generate] .draft-banner b{color:#9a6b1f;flex-shrink:0}[data-view=generate] .draft-outline-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:10px 14px}[data-view=generate] .draft-outline-item{display:flex;align-items:center;gap:8px;min-width:0}[data-view=generate] .draft-outline-label{flex-shrink:0;width:128px;text-align:right;font-size:12px;color:var(--text-mid);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-view=generate] .draft-outline-item input{min-width:0}[data-view=generate] .draft-outline-hint{margin:3px 0 0 136px;font-size:11px;color:var(--text-dim);line-height:1.5}[data-view=generate] .draft-outline-preview{display:flex;flex-wrap:wrap;gap:6px}[data-view=generate] .draft-outline-chip{padding:4px 10px;border:1px solid var(--border);border-radius:999px;font-size:12px;color:var(--text-mid);background:var(--bg-raised)}
