.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 26px;background:#0d1424d1;border-bottom:1px solid var(--line);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);position:relative;z-index:20;flex-wrap:wrap}.topbar:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(61,139,253,.6),rgba(124,92,255,.5),transparent);pointer-events:none}.topbar h1{font-size:17px;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:10px;background:linear-gradient(100deg,#fff 15%,#9cc4ff 75%,#c3b0ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;white-space:nowrap;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.scope-bar{display:flex;align-items:center;gap:9px;flex-wrap:nowrap;flex:0 0 auto;white-space:nowrap}.scope-label{font-size:11.5px;color:var(--text-faint);letter-spacing:.04em;text-transform:uppercase;font-weight:600;flex:0 0 auto}.scope-select{background:var(--bg-input);color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 12px;font-size:12.5px;font-family:inherit;cursor:pointer;outline:none;flex:0 0 auto;width:128px;max-width:128px;text-overflow:ellipsis;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.scope-select:hover{border-color:var(--line-strong)}.scope-select:focus{border-color:var(--line-focus);box-shadow:0 0 0 3px #3d8bfd29}.scope-select option{background:var(--bg-panel-solid)}.status{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;padding:5px 13px 5px 11px;border-radius:var(--r-pill);border:1px solid;flex:0 0 auto;white-space:nowrap}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:0 0 auto}.status.ok{background:var(--ok-soft);color:#6ee7b7;border-color:#10b98161}.status.ok:before{box-shadow:0 0 9px currentColor;animation:pulse-ok 2.4s var(--ease) infinite}.status.error{background:var(--danger-soft);color:#fca5a5;border-color:#ef444461}.status.error:before{box-shadow:0 0 9px currentColor}.status.unknown{background:#78a0e61a;color:var(--text-faint);border-color:var(--line)}@keyframes pulse-ok{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.82)}}.scope-notice{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 26px;background:linear-gradient(90deg,rgba(61,139,253,.1),rgba(124,92,255,.07),transparent);color:#b9d4ff;font-size:12.5px;border-bottom:1px solid var(--line);position:relative;z-index:10}.scope-notice strong{color:#fff;font-weight:650}.scope-hint{color:var(--text-faint);font-size:12px}.tabs{display:flex;gap:6px;padding:10px 26px;background:#0d142499;border-bottom:1px solid var(--line);overflow-x:auto;position:relative;z-index:10;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{position:relative;background:transparent;color:var(--text-faint);border:1px solid transparent;padding:8px 17px;border-radius:var(--r-sm);cursor:pointer;font-size:13.5px;font-weight:600;font-family:inherit;transition:color var(--dur) var(--ease),background var(--dur) var(--ease),border-color var(--dur) var(--ease);white-space:nowrap}.tab:hover{color:var(--text);background:var(--bg-hover);border-color:var(--line)}.tab.active{color:#fff;background:var(--grad-brand);border-color:transparent;box-shadow:0 6px 20px -10px #3d8bfdd9}.tab.active:after{content:"";position:absolute;left:22%;right:22%;bottom:-10px;height:2px;border-radius:var(--r-pill);background:var(--brand-hi);box-shadow:0 0 10px 1px #60a5facc}.tab.secondary{color:var(--text-ghost);font-weight:550}.tab.secondary:hover{color:var(--text-dim)}.main{flex:1;padding:26px;overflow-y:auto;position:relative;z-index:5}.main>*{animation:fade-rise .32s var(--ease) both}@keyframes fade-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:720px){.topbar{padding:12px 16px}.topbar h1{font-size:15px}.scope-notice{padding:8px 16px}.tabs{padding:9px 16px}.main{padding:16px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.scope-identity{display:inline-flex;flex-direction:column;gap:1px;padding:3px 11px;border-radius:8px;border:1px solid var(--line);background:var(--bg-input);font-size:12.5px;font-weight:600;color:var(--text);line-height:1.25}.scope-identity em{font-style:normal;font-size:10.5px;font-weight:400;color:var(--text-faint)}.scope-logout{padding:5px 12px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--text-dim);font-size:12.5px;cursor:pointer;transition:border-color .16s,color .16s}.scope-logout:hover{border-color:var(--line-strong);color:var(--text)}.login-checking{text-align:center;color:var(--text-faint);font-size:13px}.panel{width:min(100%,1600px);margin-inline:auto;max-width:none}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px;flex-wrap:wrap}.panel-header h2{font-size:21px;font-weight:700;letter-spacing:-.01em;background:linear-gradient(100deg,#fff 10%,#9cc4ff 70%,#c3b0ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.panel-actions{display:flex;gap:8px}.panel-actions .btn{font-size:12px;padding:5px 13px}.header-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.card{position:relative;background:var(--bg-panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px 24px;margin-bottom:18px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:inset 0 1px #ffffff0b,var(--shadow-lg);transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.card:before{content:"";position:absolute;top:0;left:22px;right:22px;height:1px;background:linear-gradient(90deg,transparent,rgba(140,180,255,.42),transparent);opacity:.85;pointer-events:none}.card:hover{border-color:var(--line-strong)}.card h3{font-size:15.5px;font-weight:650;color:var(--text);margin-bottom:14px;display:flex;align-items:center;gap:8px}.card-head-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.card-head-row h3{margin:0}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 18px;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;font-size:13px;font-weight:600;font-family:inherit;color:var(--text);background:#78a0e61a;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:not(:disabled):active{transform:translateY(1px) scale(.99)}.btn-primary{background:var(--grad-brand);color:#fff;box-shadow:0 6px 20px -10px #3d8bfdcc}.btn-primary:hover:not(:disabled){box-shadow:var(--glow-brand);filter:brightness(1.08)}.btn-secondary{background:#78a0e61f;border-color:var(--line);color:var(--text-dim)}.btn-secondary:hover:not(:disabled){background:#78a0e633;border-color:var(--line-strong);color:var(--text)}.btn-warn{background:linear-gradient(120deg,#f59e0b,#ef4444);color:#fff;box-shadow:0 6px 20px -10px #f59e0bcc}.btn-warn:hover:not(:disabled){filter:brightness(1.08)}.btn-sm{font-size:12px;padding:5px 12px}.form-row{display:flex;gap:10px;margin-bottom:12px;flex-wrap:wrap}.form-group{margin-bottom:14px}.form-group label{display:block;font-size:12.5px;font-weight:500;color:var(--text-faint);margin-bottom:6px;letter-spacing:.01em}.form-actions{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}.input,.textarea,select{width:100%;padding:9px 13px;background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--text);font-size:13.5px;font-family:inherit;outline:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease)}.input::placeholder,.textarea::placeholder{color:var(--text-ghost)}.input:hover,.textarea:hover,select:hover{border-color:var(--line-strong)}.input:focus,.textarea:focus,select:focus{border-color:var(--line-focus);background:#090f1d;box-shadow:0 0 0 3px #3d8bfd29}.textarea{resize:vertical;min-height:70px;line-height:1.6}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-faint) 50%),linear-gradient(135deg,var(--text-faint) 50%,transparent 50%);background-position:calc(100% - 17px) calc(50% + 1px),calc(100% - 12px) calc(50% + 1px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px}select option{background:var(--bg-panel-solid);color:var(--text)}input[type=checkbox]{accent-color:var(--brand);width:15px;height:15px;cursor:pointer;vertical-align:-2px}input[type=file]{padding:7px 12px;cursor:pointer}.notice{padding:14px 18px;border-radius:var(--r-md);font-size:13.5px;line-height:1.7;margin-bottom:18px;border-left:3px solid;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.notice-info{background:#3d8bfd14;border-color:var(--brand);color:#bcd5ff}.notice-ok{background:var(--ok-soft);border-color:var(--ok);color:#a7f3d0}.notice strong{color:var(--text);font-weight:650}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:650;padding:3px 10px;border-radius:var(--r-pill);letter-spacing:.01em;white-space:nowrap}.badge-ok{background:var(--ok-soft);color:#6ee7b7;border:1px solid rgba(16,185,129,.34)}.badge-off{background:#78a0e61a;color:var(--text-faint);border:1px solid var(--line)}.badge-danger{background:var(--danger-soft);color:#fca5a5;border:1px solid rgba(239,68,68,.34)}.channel-badge{background:#3d8bfd2e;color:#9ec5ff;border:1px solid rgba(61,139,253,.34);padding:3px 10px;border-radius:var(--r-xs);font-size:11px;font-weight:650}.intent-badge{background:#7c5cff2e;color:#c4b5fd;border:1px solid rgba(124,92,255,.34);padding:3px 10px;border-radius:var(--r-xs);font-size:11px;font-weight:650}.status-badge{font-size:12.5px;padding:5px 13px;border-radius:var(--r-pill);font-weight:650;border:1px solid}.status-badge.active{background:var(--ok-soft);color:#6ee7b7;border-color:#10b98157}.status-badge.inactive{background:var(--warn-soft);color:#fcd34d;border-color:#f59e0b57}.status-badge.warn{background:#3b82f629;color:#93c5fd;border-color:#3b82f65c}.manual-publish{margin-top:14px;padding:14px 16px;border-radius:var(--r-md);background:#3d8bfd14;border:1px solid var(--line-strong)}.manual-tip{margin:0 0 6px;font-size:13.5px;color:var(--text);line-height:1.65}.manual-hint{margin:6px 0 0;font-size:12.5px;color:var(--text-dim);line-height:1.6}.manual-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.scan-modal{margin-top:14px;padding:16px;border-radius:var(--r-md);background:var(--bg-elevated);border:1px solid var(--line);text-align:center}.scan-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.scan-head strong{font-size:13.5px;color:var(--text)}.scan-modal .qr-img{margin:8px auto;display:block}.scan-modal .login-msg{margin-top:8px}.scan-modal .manual-hint{margin-top:10px}.handler-badge{font-size:11px;padding:3px 10px;border-radius:var(--r-xs);font-weight:650}.handler-badge.ai{background:var(--ok-soft);color:#6ee7b7;border:1px solid rgba(16,185,129,.34)}.handler-badge.human{background:var(--warn-soft);color:#fcd34d;border:1px solid rgba(245,158,11,.34)}.position-badge{font-size:11px;padding:3px 9px;border-radius:var(--r-xs);font-weight:650}.position-badge.top3{background:var(--ok-soft);color:#6ee7b7}.position-badge.top10{background:var(--warn-soft);color:#fcd34d}.position-badge.none{background:#78a0e61a;color:var(--text-faint)}.stat-row{display:flex;gap:12px;flex-wrap:wrap}.stat-box{flex:1;min-width:92px;padding:15px 12px;border-radius:var(--r-md);background:var(--bg-input);border:1px solid var(--line);text-align:center;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.stat-box:hover{transform:translateY(-2px)}.stat-num{font-size:25px;font-weight:750;letter-spacing:-.02em;color:var(--text);line-height:1.2}.stat-label{font-size:11.5px;color:var(--text-faint);margin-top:4px}.stat-box.grade-A{border-color:#ef44446b;background:#ef44440f}.stat-box.grade-A .stat-num{color:#f87171}.stat-box.grade-B{border-color:#f59e0b6b;background:#f59e0b0f}.stat-box.grade-B .stat-num{color:#fbbf24}.stat-box.grade-C{border-color:#22d3ee6b;background:#22d3ee0f}.stat-box.grade-C .stat-num{color:#67e8f9}.stat-box.grade-D{border-color:var(--line);opacity:.72}.ticket-list{display:flex;flex-direction:column;gap:12px}.ticket{padding:15px 17px;border-radius:var(--r-md);background:var(--bg-input);border:1px solid var(--line);border-left:3px solid var(--line-strong);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),transform var(--dur) var(--ease)}.ticket:hover{background:var(--bg-hover);transform:translate(2px)}.ticket.grade-border-A{border-left-color:#ef4444}.ticket.grade-border-B{border-left-color:#f59e0b}.ticket.grade-border-C{border-left-color:var(--cyan)}.ticket.grade-border-D{border-left-color:var(--text-ghost)}.ticket-head{display:flex;align-items:center;gap:10px;margin-bottom:9px;flex-wrap:wrap}.grade-tag{font-size:11.5px;font-weight:700;padding:3px 11px;border-radius:var(--r-xs)}.grade-tag.grade-A{background:#ef444429;color:#fca5a5;border:1px solid rgba(239,68,68,.36)}.grade-tag.grade-B{background:#f59e0b29;color:#fcd34d;border:1px solid rgba(245,158,11,.36)}.grade-tag.grade-C{background:#22d3ee24;color:#67e8f9;border:1px solid rgba(34,211,238,.36)}.grade-tag.grade-D{background:#78a0e61a;color:var(--text-faint);border:1px solid var(--line)}.ticket-score{font-size:13px;font-weight:700;color:#fcd34d}.ticket-channel{font-size:12px;color:var(--text-faint)}.nick-unknown{font-style:italic;opacity:.65;border-bottom:1px dashed currentColor}.ticket-uid{opacity:.7}.ticket-content{font-size:14px;color:var(--text);line-height:1.68;padding:9px 0}.ticket-meta{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--text-faint);line-height:1.65}.ticket-meta strong{color:var(--text-dim);font-weight:600}.ticket-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.source-list{display:flex;flex-direction:column;gap:12px}.source-item{padding:15px;border-radius:var(--r-md);background:var(--bg-input);border:1px solid var(--line);transition:border-color var(--dur) var(--ease)}.source-item:hover{border-color:var(--line-strong)}.source-item.danger{border-color:#f59e0b66;background:#f59e0b0d}.source-head{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.source-name{font-size:14px;font-weight:620;color:var(--text)}.source-desc{margin:9px 0 0;font-size:12.5px;color:var(--text-faint);line-height:1.65}.source-warn{margin:9px 0 0;font-size:12.5px;color:#fcd34d;line-height:1.65}.login-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:13px;margin-top:14px}.login-item{padding:14px;border-radius:var(--r-md);background:var(--bg-input);border:1px solid var(--line);display:flex;flex-direction:column;gap:8px;transition:border-color var(--dur) var(--ease)}.login-item:hover{border-color:var(--line-strong)}.login-awaiting_scan{border-color:var(--line-focus);box-shadow:0 0 0 1px #60a5fa2e}.login-success{border-color:#10b9816b;background:#10b9810d}.login-failed{border-color:#ef44446b;background:#ef44440d}.login-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.login-msg{margin:0;font-size:12.5px;color:var(--text-dim);line-height:1.6}.login-failed .login-msg{color:#fca5a5}.login-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;padding-top:4px}.qr-img{width:160px;height:160px;align-self:center;border-radius:8px;background:#fff;padding:6px;image-rendering:pixelated}.notice-err{background:var(--danger-soft);border:1px solid rgba(239,68,68,.34);color:#fca5a5;margin-top:12px}.badge-warn{background:var(--warn-soft);color:#fcd34d;border:1px solid rgba(245,158,11,.34)}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:13px;margin-top:16px}.metric-card{background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md);padding:15px 13px;text-align:center;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.metric-card:hover{transform:translateY(-2px);border-color:var(--line-strong)}.metric-label{display:block;font-size:11px;color:var(--text-faint);margin-bottom:6px;text-transform:uppercase;letter-spacing:.06em}.metric-value{display:block;font-size:21px;font-weight:750;letter-spacing:-.01em;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.metric-card.ok{background:var(--ok-soft);border-color:#10b98166}.metric-card.warn{background:var(--warn-soft);border-color:#f59e0b66}.metric-card.ok .metric-value,.metric-card.warn .metric-value{background:none;-webkit-text-fill-color:currentColor}.metric-card.ok .metric-value{color:#6ee7b7}.metric-card.warn .metric-value{color:#fcd34d}.table-wrap{overflow-x:auto;margin-top:14px;border-radius:var(--r-md)}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th,.data-table td{padding:10px 14px;border-bottom:1px solid var(--line);text-align:left}.data-table th{color:var(--text-faint);font-weight:650;font-size:11px;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;background:#090f1d80;position:sticky;top:0}.data-table td{color:var(--text-dim)}.data-table tbody tr{transition:background var(--dur) var(--ease)}.data-table tbody tr:hover td{background:var(--bg-hover)}.data-table tbody tr:last-child td{border-bottom:none}.empty{color:var(--text-ghost);font-size:13.5px;padding:30px 0;text-align:center}.note{color:var(--text-faint);font-size:12.5px;margin-bottom:9px}.desc{font-size:12.5px;color:var(--text-faint);margin-bottom:13px;line-height:1.65}.inbox-list{display:flex;flex-direction:column;gap:10px}.inbox-card{background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.inbox-card:hover{border-color:var(--line-strong);background:var(--bg-hover)}.inbox-top{display:flex;gap:9px;align-items:center;margin-bottom:9px;flex-wrap:wrap}.tags{color:var(--text-ghost);font-size:12px;margin-left:auto}.last-msg{color:var(--text-dim);font-size:13.5px;margin-bottom:5px;line-height:1.6}.updated{color:var(--text-ghost);font-size:11px}.result-box{margin-top:16px}.result-box h4{font-size:13px;color:var(--text-faint);margin-bottom:9px;font-weight:600}.json-output{background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;font-size:12px;font-family:var(--font-mono);color:#7dd3a8;overflow-x:auto;white-space:pre-wrap;word-break:break-all;line-height:1.6}.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:13px;margin-bottom:16px}.preset-card{background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;cursor:pointer;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),box-shadow var(--dur) var(--ease);text-align:left;color:var(--text-dim);font-size:13px;font-family:inherit}.preset-card:hover{border-color:var(--line-strong);background:var(--bg-hover)}.preset-card.selected{border-color:var(--brand);background:#3d8bfd1a;box-shadow:0 0 0 3px #3d8bfd1f}.preset-name{font-weight:700;font-size:14px;color:var(--text);margin-bottom:5px}.preset-desc{font-size:11.5px;color:var(--text-faint);line-height:1.55}.test-result{margin-top:13px;padding:14px;border-radius:var(--r-md);font-size:13px;border:1px solid}.test-result.ok{background:var(--ok-soft);border-color:#10b98166;color:#a7f3d0}.test-result.error{background:var(--danger-soft);border-color:#ef444466;color:#fca5a5}.test-result.warn{background:var(--warn-soft);border-color:#f59e0b66;color:#fcd34d}.test-result pre{background:var(--bg-input);padding:10px;border-radius:var(--r-sm);font-size:11px;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;margin-top:9px;max-height:200px;overflow-y:auto;color:var(--text-dim)}.test-result p{margin:5px 0;color:var(--text)}.info-list{color:var(--text-dim);font-size:13px;line-height:1.9;padding-left:20px}.info-list code{background:#78a0e61f;border:1px solid var(--line);padding:2px 7px;border-radius:var(--r-xs);font-size:12px;font-family:var(--font-mono);color:#9ec5ff}.info-list a{color:var(--brand-hi);text-decoration:none}.info-list a:hover{text-decoration:underline}.model-select-wrap{display:flex;gap:9px;flex-wrap:wrap}.model-select-wrap select{flex:0 0 auto;min-width:200px}.api-config-section{margin-bottom:16px;padding:15px;background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md)}.api-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px}.api-name{font-weight:650;color:var(--text);font-size:14px}.api-actions{display:flex;gap:8px;align-items:center;margin-top:7px;flex-wrap:wrap}.api-actions .btn-sm{font-size:11px;padding:4px 11px}.status-dot{font-size:11.5px;color:var(--text-faint)}.ollama-models{margin-top:13px;padding:14px;background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md)}.ollama-models h4{color:var(--text-faint);font-size:12px;margin-bottom:9px;font-weight:600}.switch{position:relative;display:inline-block;width:44px;height:24px;flex:0 0 auto}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;right:0;bottom:0;left:0;background-color:#78a0e638;border:1px solid var(--line);transition:background-color .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease);border-radius:var(--r-pill)}.slider:before{position:absolute;content:"";height:17px;width:17px;left:3px;bottom:3px;background-color:#cbd5e1;transition:transform .25s var(--ease),background-color .25s var(--ease);border-radius:50%}input:checked+.slider{background:var(--grad-brand);border-color:transparent;box-shadow:0 0 14px -2px #3d8bfdb3}input:checked+.slider:before{transform:translate(20px);background-color:#fff}.bar-chart{margin-top:16px;padding:15px;background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md)}.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.bar-row:last-child{margin-bottom:0}.bar-label{font-size:12px;color:var(--text-faint);min-width:62px}.bar-track{flex:1;height:9px;background:#78a0e61a;border-radius:var(--r-pill);overflow:hidden}.bar-fill{height:100%;border-radius:var(--r-pill);transition:width .55s var(--ease);min-width:2px;box-shadow:0 0 12px -2px currentColor}.bar-value{font-size:12px;color:var(--text);min-width:48px;text-align:right;font-variant-numeric:tabular-nums}.publish-preview{margin-top:14px;padding:17px;background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md)}.publish-meta{display:flex;gap:9px;margin-bottom:14px;flex-wrap:wrap;align-items:center}.publish-detail{margin-bottom:13px}.publish-detail strong{display:block;font-size:12px;color:var(--text-faint);margin-bottom:5px;font-weight:600}.publish-detail p{color:var(--text);font-size:13.5px;margin:0;line-height:1.68}.publish-body{white-space:pre-wrap;background:#78a0e60f;border:1px solid var(--line);padding:13px;border-radius:var(--r-sm);font-size:13px;line-height:1.7}.publish-error{background:var(--warn-soft);border:1px solid rgba(245,158,11,.4);padding:14px;border-radius:var(--r-md);color:#fcd34d;font-size:13px;margin-top:12px}.publish-error ul{margin-top:8px;padding-left:20px}.deviations-box{margin-top:13px;padding:14px;background:var(--warn-soft);border:1px solid rgba(245,158,11,.4);border-radius:var(--r-md);color:#fcd34d;font-size:13px}.deviations-box ul{margin-top:9px;padding-left:20px}.deviations-box li{margin-bottom:5px}.deviations-box code{background:#f59e0b24;padding:2px 7px;border-radius:var(--r-xs);font-size:11.5px;font-family:var(--font-mono);color:#fcd34d}.script-preview{margin-top:16px;padding:17px;background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md)}.script-preview h4{color:var(--text-faint);font-size:13px;margin-bottom:9px;font-weight:600}.shots-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:13px;margin-top:13px}.shot-card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;font-size:12.5px;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.shot-card:hover{border-color:var(--line-strong);transform:translateY(-2px)}.shot-number{font-weight:750;font-size:12px;letter-spacing:.03em;margin-bottom:9px;background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.shot-detail{margin-bottom:6px;color:var(--text-dim);line-height:1.6}.shot-detail strong{color:var(--text-faint);font-weight:600}.video-results{margin-top:13px}.video-result-card{background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;margin-bottom:10px}.video-result-card.success{border-color:#10b98166}.video-result-card.processing{border-color:#f59e0b66}.video-status{display:flex;align-items:center;gap:9px;font-size:13px;flex-wrap:wrap}.conv-list{display:flex;flex-direction:column;gap:9px;margin-top:13px}.conv-item{background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md);padding:14px;cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.conv-item:hover{background:var(--bg-hover);border-color:var(--line-strong)}.conv-item.selected{background:#3d8bfd1a;border-color:var(--brand);box-shadow:0 0 0 3px #3d8bfd1a}.conv-top{display:flex;gap:7px;margin-bottom:7px;flex-wrap:wrap}.conv-preview{font-size:12.5px;color:var(--text-faint);margin:0;line-height:1.6}.conv-detail{margin-top:13px;padding:14px;background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md)}.conv-detail p{font-size:12.5px;color:var(--text-dim);margin:5px 0;line-height:1.65}.faq-card{margin-top:13px;padding:14px;background:var(--ok-soft);border:1px solid rgba(16,185,129,.4);border-radius:var(--r-md);font-size:12.5px;color:#a7f3d0;line-height:1.65}.faq-result,.training-result{margin-top:13px}.tab-row{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.tab-btn{font:inherit;font-size:12.5px;padding:7px 14px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-input);color:var(--text-dim);cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.tab-btn:hover{border-color:var(--line-strong);color:var(--text)}.tab-btn.active{background:#3d8bfd1f;border-color:var(--brand);color:var(--brand);font-weight:600}.url-row{display:flex;gap:8px;align-items:stretch}.url-row .input{flex:1}.url-row .btn{white-space:nowrap}.article-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:9px;font-size:12px;color:var(--text-faint)}.article-list{display:flex;flex-direction:column;gap:9px;margin-top:15px;padding-top:15px;border-top:1px solid var(--line)}.article-item{display:flex;align-items:center;gap:12px;background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.article-item:hover{background:var(--bg-hover);border-color:var(--line-strong)}.article-main{flex:1;min-width:0}.article-title-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}.article-title{font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.src-badge{flex:none;font-size:11px;padding:2px 8px;border-radius:999px;border:1px solid var(--line-strong);color:var(--text-faint)}.src-badge.url{color:#7dd3fc;border-color:#38bdf859;background:#38bdf81a}.article-sub{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--text-ghost)}.article-sub a{color:var(--brand);text-decoration:none}.article-sub a:hover{text-decoration:underline}.article-actions{display:flex;gap:7px;flex:none}.edit-mode{margin-top:14px}.image-result{margin-top:13px}.preview-image{max-width:300px;max-height:300px;border-radius:var(--r-md);border:1px solid var(--line-strong);margin-top:9px;box-shadow:var(--shadow-md)}.prompt-preview{margin-top:13px;padding:14px;background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md)}.prompt-text{background:#78a0e612;padding:10px;border-radius:var(--r-sm);font-size:11.5px;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;margin-top:5px;max-height:150px;overflow-y:auto;color:var(--text-dim);line-height:1.6}.review-rules{margin-top:13px;padding:14px;background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md)}.review-rules ul{margin-top:9px;padding-left:20px}.review-rules li{margin-bottom:5px;font-size:12.5px;color:var(--text-dim);line-height:1.6}.severity.error{color:#fca5a5}.severity.warn{color:#fcd34d}.intake-rates{display:flex;gap:22px;align-items:center;margin-top:14px;padding-top:13px;border-top:1px solid var(--line);font-size:13px;color:var(--text-dim);flex-wrap:wrap}.intake-rates strong{color:var(--text);font-size:15px}.consultant-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.intake-status{font-size:11px;padding:2px 9px;border-radius:999px;font-weight:600;border:1px solid transparent;white-space:nowrap}.intake-status.st-pending{background:#94a3b824;color:#cbd5e1;border-color:#94a3b84d}.intake-status.st-claimed{background:#60a5fa24;color:#93c5fd;border-color:#60a5fa52}.intake-status.st-contacted{background:#818cf824;color:#a5b4fc;border-color:#818cf852}.intake-status.st-invited{background:#fbbf2424;color:#fcd34d;border-color:#fbbf2452}.intake-status.st-visited{background:#2dd4bf24;color:#5eead4;border-color:#2dd4bf52}.intake-status.st-won{background:#10b98129;color:#6ee7b7;border-color:#10b9815c}.intake-status.st-lost{background:#64748b24;color:#94a3b8;border-color:#64748b4d}.intake-amount{font-size:12px;font-weight:700;color:#6ee7b7;padding:2px 8px;border-radius:999px;background:var(--ok-soft)}.ticket-active{border-color:var(--line-focus)!important;box-shadow:0 0 0 1px #3d8bfd47,var(--shadow-lg)}.intake-appt{margin-top:8px;padding:7px 11px;font-size:12.5px;color:#fcd34d;background:#fbbf2414;border-left:2px solid rgba(251,191,36,.45);border-radius:var(--r-sm)}.intake-detail{border-color:var(--line-focus)}.intake-origin{padding:13px 15px;background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:6px}.intake-sub{margin:18px 0 10px;font-size:13px;color:var(--text-dim);font-weight:600;letter-spacing:.3px}.intake-block{margin-top:16px;padding:14px 15px;background:#ffffff05;border:1px solid var(--line);border-radius:var(--r-md)}.timeline{position:relative;padding-left:20px}.timeline:before{content:"";position:absolute;left:4px;top:6px;bottom:6px;width:1px;background:linear-gradient(180deg,var(--line-strong),transparent)}.timeline-item{position:relative;padding-bottom:15px}.timeline-dot{position:absolute;left:-20px;top:5px;width:9px;height:9px;border-radius:50%;background:var(--brand, #3d8bfd);box-shadow:0 0 0 3px #3d8bfd29}.timeline-body{padding:10px 13px;background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-sm)}.timeline-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}.timeline-time{font-size:11.5px;color:var(--text-faint);font-family:var(--font-mono)}.timeline-who{font-size:11.5px;color:var(--text-dim)}.timeline-note{font-size:13px;color:var(--text);line-height:1.65}.timeline-next{margin-top:6px;font-size:12px;color:#fcd34d}.rag-preview-head{font-size:12.5px;color:var(--text);line-height:1.7;padding:8px 10px;background:var(--bg-soft);border:1px solid var(--line);border-radius:var(--r-sm);margin-bottom:8px}.rag-hit-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:5px}.rag-hit{display:flex;align-items:flex-start;gap:7px;flex-wrap:wrap;font-size:12px;line-height:1.6;padding:7px 9px;background:var(--bg-input);border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;transition:border-color var(--dur) var(--ease),opacity var(--dur) var(--ease)}.rag-hit:hover{border-color:var(--line-strong)}.rag-hit-off{opacity:.42}.rag-hit-off .rag-hit-text{text-decoration:line-through}.rag-hit-tag{flex:0 0 auto;font-size:10.5px;padding:1px 6px;border-radius:4px;background:#3b82f629;color:#93c5fd;border:1px solid rgba(59,130,246,.36)}.rag-hit-source{flex:0 0 auto;font-weight:600;color:var(--text)}.rag-hit-text{flex:1 1 100%;color:var(--text-dim);word-break:break-word}.rag-hit-act{flex:0 0 auto;font-size:11px;color:var(--text-faint);white-space:nowrap}.rag-extra{margin-top:8px}.rag-extra>summary{cursor:pointer;font-size:12.5px;color:var(--text-dim);-webkit-user-select:none;user-select:none}.rag-extra>summary:hover{color:var(--text)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(1100px 520px at 50% -10%,rgba(61,139,253,.16),transparent 70%),radial-gradient(900px 500px at 90% 110%,rgba(124,92,255,.14),transparent 70%),var(--bg-base)}.login-card{width:100%;max-width:400px;padding:34px 32px 26px;border-radius:18px;border:1px solid var(--line);background:var(--bg-panel-solid);box-shadow:0 24px 60px #00000073;display:flex;flex-direction:column;gap:15px}.login-brand{text-align:center;margin-bottom:4px}.login-logo{font-size:34px;line-height:1;margin-bottom:10px}.login-brand h1{margin:0;font-size:19px;font-weight:650;letter-spacing:.3px;color:var(--text)}.login-sub{margin:7px 0 0;font-size:12.5px;color:var(--text-faint)}.login-notice{padding:9px 12px;border-radius:9px;font-size:12.5px;line-height:1.6;background:var(--warn-soft);border:1px solid rgba(245,158,11,.32);color:#fcd34d}.login-field{display:flex;flex-direction:column;gap:6px}.login-field span{font-size:12.5px;color:var(--text-dim);letter-spacing:.3px}.login-field input{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:9px;border:1px solid var(--line);background:var(--bg-input);color:var(--text);font-size:14px;outline:none;transition:border-color .16s,box-shadow .16s}.login-field input::placeholder{color:var(--text-ghost)}.login-field input:focus{border-color:var(--line-focus);box-shadow:0 0 0 3px #60a5fa29}.login-error{padding:9px 12px;border-radius:9px;font-size:12.5px;line-height:1.6;background:var(--danger-soft);border:1px solid rgba(239,68,68,.34);color:#fca5a5}.login-submit{margin-top:4px;padding:11px 16px;border:none;border-radius:10px;background:var(--grad-brand);color:#fff;font-size:14.5px;font-weight:600;letter-spacing:2px;cursor:pointer;transition:filter .16s,transform .1s}.login-submit:hover:not(:disabled){filter:brightness(1.08)}.login-submit:active:not(:disabled){transform:translateY(1px)}.login-submit:disabled{opacity:.6;cursor:not-allowed;letter-spacing:1px}.login-foot{margin:10px 0 0;padding-top:13px;border-top:1px solid var(--line);font-size:11.5px;line-height:1.85;color:var(--text-ghost);text-align:left}.login-foot code{font-size:11px;padding:1px 5px;border-radius:4px;background:#78a0e61f;color:var(--text-faint)}:root{--bg-base: #070b16;--bg-sunken: #0a1020;--bg-panel: rgba(19, 28, 47, .72);--bg-panel-solid: #131c2f;--bg-elevated: rgba(26, 37, 61, .82);--bg-input: rgba(9, 15, 29, .82);--bg-hover: rgba(120, 160, 230, .08);--line: rgba(120, 160, 230, .16);--line-strong: rgba(120, 160, 230, .34);--line-focus: rgba(96, 165, 250, .65);--text: #e8eefc;--text-dim: #a3b3d0;--text-faint: #6b7e9e;--text-ghost: #4a5a77;--brand: #3d8bfd;--brand-hi: #60a5fa;--brand-lo: #2563eb;--brand-2: #7c5cff;--cyan: #22d3ee;--grad-brand: linear-gradient(120deg, #3d8bfd 0%, #7c5cff 100%);--grad-brand-soft: linear-gradient(120deg, rgba(61, 139, 253, .18), rgba(124, 92, 255, .18));--ok: #10b981;--ok-soft: rgba(16, 185, 129, .13);--warn: #f59e0b;--warn-soft: rgba(245, 158, 11, .13);--danger: #ef4444;--danger-soft: rgba(239, 68, 68, .13);--r-xs: 5px;--r-sm: 8px;--r-md: 11px;--r-lg: 15px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px -12px rgba(0, 0, 0, .85);--shadow-lg: 0 22px 48px -26px rgba(0, 0, 0, .95);--glow-brand: 0 0 0 1px rgba(61, 139, 253, .35), 0 8px 26px -10px rgba(61, 139, 253, .55);--ease: cubic-bezier(.4, 0, .2, 1);--dur: .18s;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, "Cascadia Code", monospace}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;background:var(--bg-base);color-scheme:dark}body{height:100%}body{font-family:var(--font);background:var(--bg-base);color:var(--text);line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(900px 480px at 10% -10%,rgba(61,139,253,.15),transparent 62%),radial-gradient(780px 430px at 92% 2%,rgba(124,92,255,.13),transparent 60%),radial-gradient(680px 400px at 50% 108%,rgba(34,211,238,.06),transparent 65%);pointer-events:none;z-index:0}#root{height:100%;position:relative;z-index:1}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#78a0e62e;border-radius:var(--r-pill);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#78a0e657;background-clip:content-box}::-webkit-scrollbar-corner{background:transparent}:focus-visible{outline:2px solid var(--line-focus);outline-offset:2px}::selection{background:#3d8bfd59;color:#fff}.mono{font-family:var(--font-mono)}
