:root{color-scheme:light;--bg:#f6f7f9;--panel:#fff;--panel-soft:#f1f5f8;--text:#1d2939;--muted:#667085;--border:#d8dee6;--brand:#23675f;--brand-strong:#174f49;--accent:#a55b2a;--warning:#936a00;--danger:#b42318;--good:#027a48;--info:#155eef;--shadow:0 10px 30px rgba(16,24,40,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Microsoft JhengHei,Microsoft YaHei,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:224px minmax(0,1fr)}.sidebar{background:#102a2f;color:#eef7f5;padding:18px 14px;display:flex;flex-direction:column;gap:18px}.brand{display:grid;grid-template-columns:40px 1fr;grid-gap:10px;gap:10px;align-items:center}.brand-mark{width:40px;height:40px;display:grid;place-items:center;background:#d9ebe7;color:#123a36;border-radius:8px;font-weight:700}.brand h1{margin:0 0 3px;font-size:16px;letter-spacing:0}.brand p{color:#a7c3bd;margin:0;font-size:12px}.muted{color:var(--muted)}.nav-list{display:grid;grid-gap:5px;gap:5px}.nav-item{border:0;color:#dcecea;background:transparent;text-align:left;padding:10px 12px;border-radius:8px;text-decoration:none;display:block}.nav-item.active,.nav-item:hover{color:#fff;background:hsla(0,0%,100%,.12)}.sidebar-note{margin-top:auto;padding:12px;background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.12);border-radius:8px;display:grid;grid-gap:8px;gap:8px;line-height:1.5}.locale-toggle{display:flex;gap:6px;margin-top:8px}.locale-toggle button{flex:1 1;padding:6px;border:1px solid hsla(0,0%,100%,.2);background:transparent;color:#dcecea;border-radius:6px;font-size:12px}.locale-toggle button.active{background:var(--brand);color:#fff;border-color:var(--brand)}.main{padding:16px;display:grid;grid-gap:14px;gap:14px}.topbar{justify-content:space-between;gap:12px}.topbar,.topbar-right{display:flex;align-items:center}.topbar-right{gap:10px}.user-chip{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.eyebrow{margin:0 0 4px;color:var(--accent);font-size:13px;font-weight:700}h2,h3,p{margin-top:0}.topbar h2{margin:0;font-size:22px}.topbar p{margin:4px 0 0;color:var(--muted)}.button{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:8px;padding:8px 11px;font-weight:700;white-space:nowrap}.button.primary{background:var(--brand);border-color:var(--brand);color:#fff}.button.danger{background:var(--danger);border-color:var(--danger);color:#fff}.button.ghost{background:transparent}.button.small{padding:6px 8px;font-size:12px}.button:disabled{opacity:.5;cursor:not-allowed}.form-actions,.table-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));grid-gap:10px;gap:10px}.stat{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px;box-shadow:var(--shadow)}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{display:block;margin-top:4px;font-size:22px}.workspace{display:grid;grid-gap:14px;gap:14px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);padding:12px;min-width:0}.panel-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.panel-header h3{margin:0;font-size:16px}.toolbar-line{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.toolbar-line .muted{margin:0}.field,.review-field{display:grid;grid-gap:4px;gap:4px;margin-bottom:10px}.field label,.review-field label{color:#344054;font-weight:700;font-size:13px}input,select,textarea{width:100%;border:1px solid var(--border);border-radius:8px;padding:8px 9px;background:#fff;color:var(--text)}textarea{min-height:78px;resize:vertical}.source-note{display:block;color:var(--muted);font-size:11px;margin-top:2px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:0}td,th{padding:8px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top;font-size:13px;line-height:1.35;overflow-wrap:anywhere;word-break:break-word}th{color:#344054;background:#f8fafc;font-size:12px;white-space:nowrap}tbody tr{background:#fff}tbody tr:hover{background:#f9fbfa}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:700;background:#eef4ff;color:#1849a9;white-space:nowrap}.pill.good{color:var(--good);background:#ecfdf3}.pill.warning{color:var(--warning);background:#fffaeb}.pill.danger{color:var(--danger);background:#fef3f2}.pill.info{color:var(--info);background:#eef4ff}.empty-state{text-align:center;padding:40px 20px;color:var(--muted)}.empty-state .emoji{font-size:32px;display:block;margin-bottom:8px}.modal-backdrop{position:fixed;inset:0;z-index:20;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(16,24,40,.45)}.modal-backdrop.open{display:flex}.modal{width:min(720px,100%);max-height:calc(100vh - 48px);overflow:auto;background:var(--panel);border-radius:8px;border:1px solid var(--border);box-shadow:var(--shadow);padding:16px}.modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.modal-grid .full{grid-column:1/-1}.toast{position:fixed;right:24px;bottom:24px;padding:12px 14px;border-radius:8px;background:#102a2f;color:#fff;box-shadow:var(--shadow);opacity:0;transform:translateY(10px);transition:.2s ease;z-index:100;max-width:360px}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:var(--danger)}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#102a2f,#23675f)}.login-card{background:var(--panel);border-radius:12px;padding:32px;width:min(380px,90vw);box-shadow:0 20px 60px rgba(0,0,0,.2)}.login-card h1{margin:0 0 4px;font-size:22px}.login-card .subtitle{color:var(--muted);margin:0 0 20px;font-size:13px}.demo-accounts{margin-top:16px;padding:12px;background:var(--panel-soft);border-radius:8px;font-size:12px;line-height:1.8}.demo-accounts strong{color:var(--brand)}@media (max-width:1180px){.app-shell{grid-template-columns:1fr}.nav-list{grid-template-columns:repeat(4,minmax(130px,1fr));overflow:auto}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.main,.sidebar{padding:16px}.topbar,.topbar-right{align-items:stretch;flex-direction:column}.modal-grid,.stats-grid{grid-template-columns:1fr}.nav-list{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr!important}.form-field.full{grid-column:1/-1}.ai-chat-layout{grid-template-columns:1fr!important}.ai-chat-sidebar{max-height:240px}}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.form-field{display:grid;grid-gap:4px;gap:4px}.form-field.full{grid-column:1/-1}.form-field label{color:#344054;font-weight:700;font-size:13px}.input{width:100%;border:1px solid var(--border);border-radius:8px;padding:8px 9px;background:#fff;color:var(--text);font-size:14px;font-family:inherit}.input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(35,103,95,.12)}.switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.switch input{opacity:0;width:0;height:0}.switch .slider{position:absolute;cursor:pointer;inset:0;background-color:#cbd5e1;border-radius:24px;transition:.25s}.switch .slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:.25s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.switch input:checked+.slider{background-color:var(--brand)}.switch input:checked+.slider:before{transform:translateX(20px)}.ai-chat-layout{display:grid;grid-template-columns:260px 1fr;grid-gap:12px;gap:12px;height:calc(100vh - 160px);min-height:480px}.ai-chat-sidebar{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.ai-chat-sidebar .conv-item{padding:8px 10px;border-radius:6px;cursor:pointer;border:1px solid transparent;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:13px;background:transparent;color:var(--text);text-align:left;width:100%;transition:background .15s}.ai-chat-sidebar .conv-item:hover{background:var(--panel-soft)}.ai-chat-sidebar .conv-item.active{background:#eef4f3;border-color:var(--brand);font-weight:600}.ai-chat-sidebar .conv-item .conv-title{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-chat-sidebar .conv-item .conv-del{opacity:0;background:transparent;border:none;color:var(--danger);cursor:pointer;font-size:14px;padding:0 4px}.ai-chat-sidebar .conv-item:hover .conv-del{opacity:1}.ai-chat-main{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden;min-height:0}.ai-chat-messages{flex:1 1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:#f9fbfa}.ai-msg{max-width:80%;padding:10px 12px;border-radius:10px;font-size:13.5px;line-height:1.6;word-break:break-word;white-space:pre-wrap;box-shadow:0 1px 2px rgba(0,0,0,.04)}.ai-msg.user{align-self:flex-end;background:var(--brand);color:#fff;border-bottom-right-radius:2px}.ai-msg.assistant{align-self:flex-start;background:#fff;border:1px solid var(--border);border-bottom-left-radius:2px}.ai-msg.assistant.warning{background:#fffaeb;border-color:var(--warning)}.ai-msg-meta{font-size:11px;color:var(--muted);margin-top:4px;display:flex;gap:8px;flex-wrap:wrap}.ai-chat-input{border-top:1px solid var(--border);padding:10px;background:#fff;display:flex;flex-direction:column;gap:8px}.ai-chat-input textarea{min-height:60px;max-height:160px;resize:none;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:13.5px;font-family:inherit}.ai-chat-input-actions{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.ai-chat-input-actions .left-actions{flex-wrap:wrap}.ai-chat-input-actions .left-actions,.ai-chat-input-actions .right-actions{display:flex;gap:6px;align-items:center}.ai-chat-empty{flex:1 1;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:var(--muted);text-align:center;padding:24px}.ai-chat-empty .emoji{font-size:48px}.ai-provider-badge{font-size:11px;color:var(--muted);padding:4px 8px;background:var(--panel-soft);border-radius:6px}.ai-typing-dots{display:inline-flex;gap:4px;align-items:center}.ai-typing-dots span{width:6px;height:6px;background:var(--muted);border-radius:50%;animation:ai-bounce 1.2s infinite}.ai-typing-dots span:nth-child(2){animation-delay:.2s}.ai-typing-dots span:nth-child(3){animation-delay:.4s}@keyframes ai-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}