:root{--color-primary:#c32603;--color-primary-hover:#a31f02;--color-primary-active:#8a1a02;--color-primary-soft:#fdece7;--color-primary-soft-border:#f7c9bb;--color-bg:#f6f5f4;--color-surface:#fff;--color-sidebar:#1c1512;--color-sidebar-hover:#2b211d;--color-sidebar-active:#3a2a24;--color-sidebar-text:#d8cec9;--color-sidebar-text-muted:#a3958e;--color-sidebar-border:#33261f;--color-border:#e4e0dd;--color-border-strong:#d3cdc9;--color-text:#221e1c;--color-text-muted:#6f6560;--color-text-faint:#948a85;--color-success:#1a7f4e;--color-success-soft:#e6f6ee;--color-danger:#b3261e;--color-danger-soft:#fdeceb;--color-warning:#96650a;--color-warning-soft:#fdf2e0;--color-info:#2f5fa8;--color-info-soft:#eaf1fb;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #140f0c0f;--shadow-md:0 4px 16px #140f0c14;--shadow-lg:0 12px 32px #140f0c1f;--sidebar-width:250px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);margin:0;font-size:14.5px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.01em;color:var(--color-text);margin:0 0 .5rem;font-weight:600}h1{font-size:1.5rem}h2{font-size:1.1rem}h3{font-size:.95rem}p{color:var(--color-text-muted);margin:0 0 .75rem}a{color:var(--color-primary)}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-sidebar);color:var(--color-sidebar-text);flex-direction:column;flex-shrink:0;height:100vh;display:flex;position:sticky;top:0}.sidebar-brand{align-items:center;gap:.6rem;padding:1.25rem 1.25rem 1rem;display:flex}.sidebar-brand-mark{background:var(--color-primary);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:.9rem;font-weight:700;display:flex}.sidebar-brand-name{color:#fff;letter-spacing:-.01em;font-size:1rem;font-weight:600}.sidebar-nav{flex-direction:column;flex:1;gap:.15rem;padding:.5rem .75rem;display:flex;overflow-y:auto}.sidebar-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-sidebar-text-muted);padding:.9rem .6rem .35rem;font-size:.68rem}.sidebar-link{border-radius:var(--radius-sm);color:var(--color-sidebar-text);align-items:center;gap:.65rem;padding:.55rem .6rem;font-size:.88rem;font-weight:500;text-decoration:none;transition:background-color .12s,color .12s;display:flex}.sidebar-link svg{opacity:.85;flex-shrink:0;width:17px;height:17px}.sidebar-link:hover{background:var(--color-sidebar-hover);color:#fff}.sidebar-link.active{background:var(--color-primary);color:#fff}.sidebar-link.active svg{opacity:1}.sidebar-footer{border-top:1px solid var(--color-sidebar-border);align-items:center;gap:.6rem;padding:.9rem 1.1rem;display:flex}.sidebar-avatar{background:var(--color-sidebar-active);color:#fff;text-transform:uppercase;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:.75rem;font-weight:600;display:flex}.sidebar-footer-info{flex:1;min-width:0}.sidebar-footer-email{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.sidebar-footer-role{color:var(--color-sidebar-text-muted);font-size:.72rem}.sidebar-logout{color:var(--color-sidebar-text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;padding:.4rem;display:flex}.sidebar-logout:hover{background:var(--color-sidebar-hover);color:#fff}.sidebar-logout svg{width:17px;height:17px}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:5;padding:1.1rem 2rem;position:sticky;top:0}.app-topbar h1{margin:0}.app-topbar-subtitle{margin:.15rem 0 0;font-size:.85rem}.app-content{flex:1;width:100%;max-width:1100px;padding:1.75rem 2rem 3rem}.auth-page{background:linear-gradient(#f6f5f4 0%,#efece9 100%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:420px;box-shadow:var(--shadow-lg);text-align:center;padding:2.25rem 2rem}.auth-brand{justify-content:center;align-items:center;gap:.55rem;margin-bottom:1.5rem;display:flex}.auth-brand .sidebar-brand-mark{background:var(--color-primary)}.auth-brand-name{color:var(--color-text);font-size:1.15rem;font-weight:700}.auth-card h1{margin-bottom:.4rem;font-size:1.2rem}.auth-card p{font-size:.9rem}.auth-card .btn{justify-content:center;width:100%}.auth-card .field{text-align:left}.auth-icon{border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;margin:0 auto 1rem;display:flex}.auth-icon.is-warning{background:var(--color-warning-soft);color:var(--color-warning)}.auth-icon.is-danger{background:var(--color-danger-soft);color:var(--color-danger)}.auth-icon.is-info{background:var(--color-info-soft);color:var(--color-info)}.auth-icon svg{width:22px;height:22px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:1.25rem;padding:1.25rem 1.4rem}.card-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.card-header h2{margin-bottom:.15rem}.card-header-desc{margin:0;font-size:.82rem}.card-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.stat{padding:.25rem 0}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-faint);margin-bottom:.25rem;font-size:.75rem}.stat-value{color:var(--color-text);font-size:1rem;font-weight:600}.field{margin-bottom:.9rem}label{color:var(--color-text);margin-bottom:.3rem;font-size:.8rem;font-weight:500;display:block}input[type=text],input[type=email],input[type=password],input:not([type]),select,textarea{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);padding:.55rem .7rem;font-family:inherit;font-size:.88rem;transition:border-color .12s,box-shadow .12s}input::placeholder,textarea::placeholder{color:var(--color-text-faint)}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.form-row{flex-wrap:wrap;align-items:flex-end;gap:.6rem;display:flex}.form-row .field{flex:1;min-width:200px;margin-bottom:0}button,.btn{cursor:pointer;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;white-space:nowrap;border:1px solid #0000;align-items:center;gap:.4rem;padding:.55rem .95rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:background-color .12s,border-color .12s,color .12s,transform 50ms;display:inline-flex}button:hover,.btn:hover{background:var(--color-primary-hover)}button:active,.btn:active{background:var(--color-primary-active)}button:disabled{opacity:.55;cursor:not-allowed}button.btn-secondary,.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}button.btn-secondary:hover,.btn-secondary:hover{background:var(--color-bg);border-color:var(--color-text-faint)}button.btn-danger,.btn-danger{background:var(--color-surface);color:var(--color-danger);border-color:var(--color-danger-soft)}button.btn-danger:hover,.btn-danger:hover{background:var(--color-danger-soft);border-color:var(--color-danger)}button.btn-sm,.btn-sm{padding:.35rem .7rem;font-size:.78rem}button.btn-link{color:var(--color-primary);background:0 0;border:none;padding:0;font-weight:500}button.btn-link:hover{background:0 0;text-decoration:underline}.table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.86rem}.table-wrap table{border:none;border-radius:0}thead th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-faint);background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.6rem .9rem;font-size:.72rem;font-weight:600}tbody td{border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle;padding:.65rem .9rem}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--color-bg)}.table-empty{text-align:center;color:var(--color-text-faint);padding:2rem 1rem;font-size:.85rem}.tag{background:var(--color-info-soft);color:var(--color-info);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:999px;align-items:center;padding:.15rem .55rem;font-size:.7rem;font-weight:600;display:inline-flex}.tag-success{background:var(--color-success-soft);color:var(--color-success)}.tag-warning{background:var(--color-warning-soft);color:var(--color-warning)}.tag-danger{background:var(--color-danger-soft);color:var(--color-danger)}.tag-neutral{background:var(--color-bg);color:var(--color-text-muted)}.tag-primary{background:var(--color-primary-soft);color:var(--color-primary)}.alert{border-radius:var(--radius-sm);border:1px solid #0000;align-items:flex-start;gap:.6rem;margin-bottom:1rem;padding:.75rem .95rem;font-size:.85rem;display:flex}.alert svg{flex-shrink:0;width:16px;height:16px;margin-top:.1rem}.alert-error{background:var(--color-danger-soft);color:var(--color-danger);border-color:#f5cdc9}.alert-success{background:var(--color-success-soft);color:var(--color-success);border-color:#c4e9d5}.error{color:var(--color-danger)}.kh-dropzone{border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-md);text-align:center;color:var(--color-text-muted);cursor:pointer;flex-direction:column;align-items:center;gap:.35rem;margin-bottom:1rem;padding:1.5rem;font-size:.85rem;transition:border-color .12s,background-color .12s;display:flex}.kh-dropzone svg{width:22px;height:22px;color:var(--color-text-faint)}.kh-dropzone:hover,.kh-dropzone.is-dragover{border-color:var(--color-primary);background:var(--color-primary-soft)}.kh-dropzone.is-uploading{cursor:not-allowed;opacity:.65}.kh-dropzone-hint{color:var(--color-text-faint);font-size:.72rem}.kh-file-name{align-items:center;gap:.5rem;display:flex}.kh-file-icon{width:16px;height:16px;color:var(--color-text-faint);flex-shrink:0;display:inline-flex}.kh-file-icon svg{width:100%;height:100%}.kh-chat-messages{flex-direction:column;gap:.85rem;max-height:24rem;margin-bottom:.75rem;padding:.25rem .1rem .75rem;display:flex;overflow-y:auto}.kh-chat-empty{color:var(--color-text-faint);text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem;font-size:.85rem;display:flex}.kh-chat-empty-icon svg{width:24px;height:24px}.kh-chat-message{flex-direction:column;max-width:80%;display:flex}.kh-chat-message-user{align-self:flex-end;align-items:flex-end}.kh-chat-message-assistant{align-self:flex-start;align-items:flex-start}.kh-chat-bubble{border-radius:var(--radius-md);white-space:pre-wrap;padding:.6rem .85rem;font-size:.85rem;line-height:1.45}.kh-chat-message-user .kh-chat-bubble{background:var(--color-primary);color:#fff}.kh-chat-message-assistant .kh-chat-bubble{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border)}.kh-chat-bubble-loading{color:var(--color-text-faint);font-style:italic}.kh-chat-sources{flex-wrap:wrap;gap:.35rem;margin-top:.4rem;display:flex}.kh-chat-input-row{border-top:1px solid var(--color-border);align-items:flex-end;gap:.5rem;padding-top:.75rem;display:flex}.kh-chat-input{resize:none;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text);background:var(--color-surface);flex:1;max-height:8rem;padding:.55rem .75rem;font-family:inherit;font-size:.85rem}.kh-chat-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft);outline:none}.kh-chat-send{flex-shrink:0;padding:.55rem}.kh-chat-send svg{width:16px;height:16px}.kh-row-menu-trigger{color:var(--color-text-faint);background:0 0;border-color:#0000;padding:.35rem}.kh-row-menu-trigger:hover{background:var(--color-bg);color:var(--color-text)}.kh-row-menu-trigger svg{width:16px;height:16px}.kh-row-menu-dropdown{z-index:1000;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:8rem;padding:.3rem;position:fixed;box-shadow:0 4px 16px #0000001f}.kh-row-menu-item{text-align:left;width:100%;color:var(--color-text);border-radius:var(--radius-sm);background:0 0;border:none;padding:.45rem .6rem;font-size:.82rem;font-weight:500;display:block}.kh-row-menu-item:hover{background:var(--color-bg)}.kh-row-menu-item-danger{color:var(--color-danger)}.kh-row-menu-item-danger:hover{background:var(--color-danger-soft)}.kh-confirm-backdrop{z-index:1000;background:#0006;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.kh-confirm-dialog{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);width:100%;max-width:26rem;padding:1.25rem 1.4rem}.kh-confirm-dialog h3{margin:0 0 .5rem}.kh-confirm-dialog p{margin:0 0 1.1rem}.kh-confirm-actions{justify-content:flex-end;gap:.6rem;display:flex}.vc-call-row{cursor:pointer}.vc-last-called{white-space:nowrap;align-items:center;gap:.5rem;display:flex}.vc-modal-backdrop{z-index:1000;background:#0006;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.vc-modal-panel{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-md);flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.vc-modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.1rem 1.4rem;display:flex}.vc-modal-header h3{margin:0 0 .25rem}.vc-modal-body{flex:1;padding:1.1rem 1.4rem;overflow-y:auto}.vc-modal-body .table-wrap{border:none}.vc-modal-body thead th{z-index:1;position:sticky;top:0}.text-muted{color:var(--color-text-muted);font-size:.85rem}.section-divider{background:var(--color-border);border:none;height:1px;margin:1.25rem 0}pre{white-space:pre-wrap;word-break:break-word;color:var(--color-text-muted);margin:0;font-family:SFMono-Regular,ui-monospace,Menlo,monospace;font-size:.8rem}code{background:var(--color-bg);border-radius:4px;padding:.1rem .35rem;font-family:SFMono-Regular,ui-monospace,Menlo,monospace;font-size:.85em}.loading-page{min-height:100vh;color:var(--color-text-muted);justify-content:center;align-items:center;font-size:.9rem;display:flex}@media (width<=780px){.app-shell{flex-direction:column}.sidebar{width:100%;height:auto;position:relative}.app-content{padding:1.25rem}.app-topbar{padding:1rem 1.25rem}}
