:root{--background:#f0f0f5;--surface:#fff;--surface-2:#f0f0f5;--text-primary:#1a1a2e;--text-secondary:#4a4a5a;--text-disabled:#7a7a8a;--border:#c5c5d0;--primary:#0057a6;--primary-dark:#003d75;--primary-light:#e8f1fa;--secondary:#00a5e5;--error:#c33;--warning:#e8a317;--success:#2e8b57;--info:#00a5e5;--shadow-1:0 1px 3px #00000014;--shadow-2:0 2px 6px #00000014;--shadow-3:0 8px 24px #0000001f;--radius:4px;--font:Arial, Helvetica, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--background);color:var(--text-primary);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.6}h1,h2,h3{font-family:var(--font);color:var(--text-primary);margin:0;line-height:1.3}h1{letter-spacing:-.01em;font-size:2rem;font-weight:700}h2{letter-spacing:-.01em;font-size:1.5rem;font-weight:600}h3{font-size:1.25rem;font-weight:600}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--font);cursor:pointer}button:disabled{cursor:not-allowed;color:var(--text-disabled)}.app{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--surface);border-bottom:2px solid var(--primary);align-items:center;gap:16px;padding:10px 24px;display:flex}.brand-logo{width:auto;height:30px;display:block}.brand-title{color:var(--text-primary);font-size:1.125rem;font-weight:600}.topbar .spacer{flex:1}.nav{gap:4px;display:flex}.nav-link{color:var(--text-secondary);border-radius:var(--radius);background:0 0;border:none;padding:8px 14px;font-size:14px;font-weight:500;transition:color .2s,background .2s}.nav-link:hover{color:var(--primary);background:var(--primary-light)}.nav-link.active{color:var(--primary);background:var(--primary-light);font-weight:600}.collection-bar{align-items:center;gap:8px;display:inline-flex}.collection-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.collection-select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:14px;font-family:var(--font);color:var(--text-primary);max-width:220px;padding:6px 10px;font-weight:600}.collection-select:focus{border-color:var(--primary);outline:none}.icon-btn-sm{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:28px;height:28px;color:var(--primary);justify-content:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.icon-btn-sm:hover{background:var(--primary-light)}.lang-toggle{border:1px solid var(--border);border-radius:var(--radius);display:inline-flex;overflow:hidden}.lang-toggle button{background:var(--surface);color:var(--text-secondary);border:none;padding:5px 10px;font-size:13px;font-weight:600}.lang-toggle button+button{border-left:1px solid var(--border)}.lang-toggle button:hover:not(.active){background:var(--primary-light);color:var(--primary)}.lang-toggle button.active{background:var(--primary);color:#fff}.icon-btn{width:36px;height:36px;color:var(--primary);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .2s;display:inline-flex}.icon-btn:hover{background:var(--primary-light)}.icon-btn svg{width:22px;height:22px}.content{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:24px}.page-head{align-items:center;gap:12px;margin-bottom:20px;display:flex}.page-head .spacer{flex:1}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:16px}.card+.card{margin-top:16px}.btn{background:var(--primary);color:#fff;border:1.5px solid var(--primary);border-radius:var(--radius);padding:8px 20px;font-size:14px;font-weight:600;transition:background .2s,border-color .2s}.btn:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark)}.btn:disabled{color:#eef2f6;background:#b6c4d4;border-color:#b6c4d4}.btn-ghost{background:var(--surface);color:var(--primary);border:1.5px solid var(--primary)}.btn-ghost:hover:not(:disabled){background:var(--primary-light)}.btn-ghost:disabled{background:var(--surface);border-color:var(--border);color:var(--text-disabled)}.btn-danger{background:var(--surface);border:1.5px solid var(--error);color:var(--error)}.btn-danger:hover:not(:disabled){background:#fbecec}.btn-danger:disabled{border-color:var(--border);color:var(--text-disabled)}.btn-sm{padding:5px 12px;font-size:13px}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.input,input[type=password],input[type=text]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:14px;font-family:var(--font);width:100%;padding:9px 12px}.input:focus,input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #0057a626}.textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-size:14px;font-family:var(--font);resize:vertical;width:100%;min-height:96px;padding:10px 12px;line-height:1.6}.textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #0057a626}.field{margin-bottom:16px}.field label{color:var(--text-secondary);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;color:#2d2d3f;background:var(--surface-2);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:10px 12px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text-primary);padding:12px}.table tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--primary-light)}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .muted{color:var(--text-secondary)}.table .col-actions{white-space:nowrap;width:1%}.row-actions{flex-wrap:nowrap;justify-content:flex-end;gap:8px;display:flex}.docs-cell{max-width:340px}.docs-names{text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;cursor:help;max-width:100%;display:inline-block;overflow:hidden}.mono{font-variant-numeric:tabular-nums}.linklike{color:var(--primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.linklike:hover:not(:disabled){text-decoration:underline}.linklike:disabled{color:var(--text-primary);cursor:default}.title-line{align-items:center;gap:6px;display:flex}.icon-edit{color:var(--text-disabled);border-radius:var(--radius);background:0 0;border:none;padding:2px 4px;font-size:13px;line-height:1}.icon-edit:hover:not(:disabled){color:var(--primary);background:var(--primary-light)}.rename-row{align-items:center;gap:6px;display:flex}.rename-row .input{max-width:280px}.badge{background:var(--surface-2);color:var(--text-secondary);border-radius:9999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge .dot{background:var(--text-disabled);border-radius:9999px;width:8px;height:8px}.badge.ok{color:#1f6b41;background:#2e8b571f}.badge.ok .dot{background:var(--success)}.badge.warn{color:#8a6212;background:#e8a31729}.badge.warn .dot{background:var(--warning)}.badge.err{color:var(--error);background:#cc33331f}.badge.err .dot{background:var(--error)}.badge.run{background:var(--primary-light);color:var(--primary)}.badge.run .dot{background:var(--primary);animation:1.25s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;display:grid}.stat{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:16px}.stat .label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.stat .value{color:var(--primary);margin-top:4px;font-size:2rem;font-weight:700;line-height:1.1}.stat .sub{color:var(--text-secondary);margin-top:4px;font-size:13px}.bars{flex-direction:column;gap:12px;display:flex}.bar-row{grid-template-columns:88px 1fr 48px;align-items:center;gap:12px;font-size:14px;display:grid}.bar-track{background:var(--surface-2);border-radius:var(--radius);border:1px solid var(--border);height:12px;overflow:hidden}.bar-fill{height:100%;transition:width .4s ease-out}.daychart{align-items:flex-end;gap:4px;height:96px;display:flex}.daychart .col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.daychart .col .bar{background:var(--primary);border-radius:var(--radius) var(--radius) 0 0;width:100%;min-height:2px;transition:height .4s ease-out}.daychart .col .lbl{color:var(--text-secondary);font-size:10px}.muted{color:var(--text-secondary)}.dim{color:var(--text-disabled)}.row{align-items:center;gap:12px;display:flex}.right{margin-left:auto}.error-box{border:1px solid var(--error);color:var(--error);border-radius:var(--radius);background:#cc33330f;margin-bottom:16px;padding:12px;font-size:14px}.banner{border:1px solid var(--primary);background:var(--primary-light);color:var(--primary);border-radius:var(--radius);align-items:center;gap:8px;margin-bottom:16px;padding:10px 12px;font-size:14px;display:flex}.empty{text-align:center;color:var(--text-disabled);padding:32px}.section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;font-size:12px;font-weight:600}.answer{white-space:pre-wrap;color:var(--text-primary);line-height:1.65}.ask-meta{cursor:default;flex-wrap:wrap;gap:4px 6px;margin-bottom:14px;font-size:12.5px;display:flex}.ask-meta span[title]{cursor:help}.ask-history{flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;display:flex}.ask-history-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-right:2px;font-size:11px;font-weight:600}.chip{font:inherit;background:var(--primary-light);color:var(--primary);cursor:pointer;border:1px solid #0000;border-radius:9999px;padding:4px 12px;font-size:13px;line-height:1.3}.chip:hover:not(:disabled){border-color:var(--primary)}.chip:disabled{background:var(--surface);color:var(--text-disabled);cursor:default}.ask-history-clear{margin-left:4px;font-size:12px;font-weight:500}.source-list{margin:8px 0 0;padding-left:20px}.source-list li{margin:8px 0}.quote{color:var(--text-secondary);margin-top:4px;font-size:13px;font-style:italic}.drawer-backdrop{z-index:50;background:#1a1a2e66;position:fixed;inset:0}.drawer{background:var(--surface);width:460px;max-width:100%;height:100%;box-shadow:var(--shadow-3);z-index:100;flex-direction:column;animation:.3s ease-out slidein;display:flex;position:fixed;top:0;right:0}@keyframes slidein{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.drawer-head h2{font-size:1.125rem;font-weight:600}.drawer-body{flex:1;padding:16px 24px;overflow:auto}.drawer-foot{border-top:1px solid var(--border);justify-content:flex-end;padding:12px 24px;display:flex}.drawer-foot .caption{color:var(--text-disabled);font-size:12px}.drawer-close{color:var(--text-secondary);border-radius:var(--radius);background:0 0;border:none;padding:4px 8px;font-size:22px;line-height:1}.drawer-close:hover{background:var(--surface-2);color:var(--text-primary)}.help-section{margin-bottom:20px}.help-section h3{color:var(--text-primary);margin-bottom:6px;font-size:1rem;font-weight:600}.help-section p{color:var(--text-secondary);white-space:pre-line;margin:0;font-size:14px;line-height:1.7}.help-status{flex-direction:column;gap:12px;display:flex}.help-status .row-item{align-items:flex-start;gap:10px;display:flex}.help-status .row-item p{margin:0}.callout{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);margin:12px 0;padding:12px 16px}.callout .callout-title{margin-bottom:4px;font-weight:700}.callout p{color:var(--text-secondary);white-space:pre-line;margin:0;font-size:14px;line-height:1.6}.callout.warn{border-color:var(--warning);background:#e8a3171a}.callout.warn .callout-title{color:#8a6212}.callout.info{border-color:var(--primary);background:var(--primary-light)}.callout.info .callout-title{color:var(--primary)}.login-wrap{flex:1;justify-content:center;align-items:center;padding:24px;display:flex}.login-card{width:100%;max-width:360px}.login-card .login-brand{justify-content:center;margin-bottom:16px;display:flex}.login-card .login-brand img{height:34px}.login-card h1{text-align:center;margin-bottom:4px;font-size:1.5rem}.login-card .sub{color:var(--text-secondary);text-align:center;margin-bottom:24px;font-size:14px}.modal-backdrop{z-index:100;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{width:100%;max-width:480px;box-shadow:var(--shadow-3)}.dup-list{margin:12px 0 0;padding:0;list-style:none}.dup-list li{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:8px 12px}.dup-list li+li{margin-top:8px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
