:root{color-scheme:light;--page-bg:#ece7db;--bg:#faf9f6;--surface:#ffffff;--text:#171613;--text-muted:rgba(23,22,19,0.6);--accent:#d9a93a;--accent-text:#171613;--border:rgba(23,22,19,0.1);--border-strong:rgba(23,22,19,0.18);--online:#22c55e;--recording:#e5484d;--shadow:0 10px 30px -12px rgba(23,22,19,0.25)}:root[data-theme=dark]{color-scheme:dark;--page-bg:#0e0d0b;--bg:#171613;--surface:#211f1b;--text:#f2efe9;--text-muted:rgba(242,239,233,0.6);--accent:#d9a93a;--accent-text:#171613;--border:rgba(255,255,255,0.1);--border-strong:rgba(255,255,255,0.18);--online:#4ade80;--recording:#f87171;--shadow:0 10px 30px -12px rgba(0,0,0,0.5)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif;font-size:14px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;transition:background .15s ease,color .15s ease}button,input{font-family:inherit}.app{position:relative;max-width:720px;margin:0 auto;height:100dvh;background:var(--bg);display:flex;flex-direction:column}@media (min-width:860px){body{background:var(--page-bg)}.app,.page-shell{max-width:none;width:min(80vw,1080px);height:calc(100dvh - 40px);margin:20px auto;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);overflow:hidden;font-size:16px}.chat-header{padding:22px 30px}.avatar{width:46px;height:46px;font-size:17px}.agent-name{font-size:16px}.agent-status{font-size:13px}.header-actions{gap:10px}.icon-btn{width:38px;height:38px}.icon-btn svg,.plus-btn svg,.send-btn svg,.tool-option svg{width:20px;height:20px}.theme-switch{width:46px;height:25px}.theme-switch-knob{width:19px;height:19px}.theme-switch.on .theme-switch-knob{transform:translateX(21px)}.messages{padding:30px;gap:14px}.empty-hint{font-size:15px}.bubble{max-width:min(65%,720px);padding:14px 18px;border-radius:20px;font-size:16px}.input-bar{padding:18px 30px calc(18px + env(safe-area-inset-bottom));gap:12px}.plus-btn,.send-btn{width:46px;height:46px}.text-input{padding:13px 20px;font-size:16px}.tool-popup{left:30px;width:min(300px,calc(100% - 60px))}.tool-option{padding:12px;font-size:14px}}.chat-header{flex-shrink:0;justify-content:space-between;padding:max(14px,env(safe-area-inset-top)) 18px 14px;border-bottom:1px solid var(--border)}.chat-header,.header-identity{display:flex;align-items:center}.header-identity{gap:10px;min-width:0}.avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--accent-text);display:grid;place-items:center;font-weight:700;font-size:14px}.agent-name{font-weight:600;font-size:14px}.agent-status{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted)}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--online);flex-shrink:0}.header-actions{flex-shrink:0;display:flex;align-items:center;gap:8px}.icon-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text);display:grid;place-items:center;cursor:pointer;transition:background .12s ease}.icon-btn:hover{background:var(--border)}.theme-switch{flex-shrink:0;position:relative;width:40px;height:22px;padding:0;border-radius:999px;border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:background .15s ease,border-color .15s ease}.theme-switch.on{background:var(--accent);border-color:var(--accent)}.theme-switch-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#ffffff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s ease}.theme-switch.on .theme-switch-knob{transform:translateX(18px);background:var(--accent-text)}.overflow-wrap{position:relative}.overflow-menu{position:absolute;top:40px;right:0;min-width:180px;padding:6px;border-radius:12px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);z-index:20}.overflow-menu button{display:block;width:100%;padding:9px 10px;border:none;border-radius:8px;background:transparent;color:var(--text);font-size:13px;text-align:left;cursor:pointer}.overflow-menu button:hover{background:var(--border)}.messages{flex:1 1;min-height:0;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}.empty-hint{margin-top:40px;color:var(--text-muted);font-size:13px;text-align:center}.bubble{max-width:min(78%,640px);padding:12px 14px;border-radius:18px;font-size:14px;line-height:1.45;white-space:pre-wrap}.bubble.assistant{align-self:flex-start;background:var(--surface);border:1px solid var(--border);color:var(--text)}.bubble.user{align-self:flex-end;background:var(--accent);color:var(--accent-text)}.bubble.pending{color:var(--text-muted)}.bubble-time{margin-top:4px;font-size:10px;opacity:.6}.trace-details{margin-top:8px}.trace-toggle{display:inline-flex;align-items:center;gap:4px;padding:0;border:none;background:none;color:var(--text-muted);font-size:12px;cursor:pointer}.trace-toggle:hover{color:var(--text)}.trace-chevron{transition:transform .15s ease}.trace-chevron.open{transform:rotate(90deg)}.trace-content{margin-top:6px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--page-bg);color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.5;white-space:pre-wrap;overflow-x:auto;max-height:320px;overflow-y:auto}.input-bar{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border)}.plus-btn,.send-btn{flex-shrink:0;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;cursor:pointer}.plus-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);transition:background .12s ease}.plus-btn:hover{background:var(--border)}.text-input{flex:1 1;min-width:0;padding:10px 16px;border-radius:22px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:16px;outline:none;transition:border-color .12s ease}.text-input::placeholder{color:var(--text-muted)}.text-input:focus{border-color:var(--accent)}.send-btn{border:none;background:var(--accent);color:var(--accent-text)}.send-btn:disabled{opacity:.4;cursor:default}.composer{position:relative;flex-shrink:0}.tool-popup{position:absolute;bottom:calc(100% + 8px);left:16px;width:min(280px,calc(100% - 32px));max-height:min(60vh,420px);display:flex;flex-direction:column;border-radius:16px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);z-index:30;overflow:hidden}.tool-popup-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);font-size:13px;font-weight:700}.tool-popup-list{overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:2px}.tool-option{display:flex;align-items:center;gap:10px;padding:10px;border:none;border-radius:10px;background:transparent;color:var(--text);font-size:13px;font-weight:600;text-align:left;cursor:pointer}.tool-option:hover{background:var(--border)}.selected-tool-chip{display:inline-flex;align-items:center;gap:6px;width:fit-content;margin:10px 16px 0;padding:6px 8px 6px 10px;border-radius:999px;border:1px solid var(--accent);background:var(--surface);color:var(--text);font-size:12px;font-weight:600}.selected-tool-chip button{display:grid;place-items:center;padding:2px;border:none;background:transparent;color:var(--text-muted);cursor:pointer}.hidden-file-input{display:none}.attached-image-chip{display:inline-flex;align-items:center;gap:8px;width:fit-content;margin:10px 16px 0;padding:6px 8px 6px 6px;border-radius:999px;border:1px solid var(--border);background:var(--surface)}.attached-image-chip img{width:26px;height:26px;border-radius:50%;object-fit:cover}.attached-image-chip button{display:grid;place-items:center;padding:2px;border:none;background:transparent;color:var(--text-muted);cursor:pointer}.bubble-image{display:block;width:100%;max-height:260px;border-radius:12px;margin-bottom:8px;object-fit:cover}.recording-bar{flex-shrink:0;display:flex;align-items:center;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border)}.recording-dot{width:10px;height:10px;border-radius:50%;background:var(--recording);flex-shrink:0;animation:recording-pulse 1.4s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.recording-dot{animation:none}}@keyframes recording-pulse{0%,to{opacity:1}50%{opacity:.35}}.recording-time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:14px;font-weight:600;color:var(--text)}.recording-label{flex:1 1;min-width:0;color:var(--text-muted);font-size:13px}.login-shell{min-height:100dvh;justify-content:center;padding:20px;background:var(--page-bg)}.login-card,.login-shell{display:flex;align-items:center}.login-card{width:100%;max-width:340px;flex-direction:column;gap:12px;padding:32px 26px;border-radius:20px;border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow);text-align:center}.login-avatar{width:48px;height:48px;font-size:18px;margin-bottom:4px}.login-card h1{margin:0;font-size:20px;font-weight:700}.login-card .subtitle{margin:0 0 8px}.login-input{width:100%;border-radius:12px}.login-error{margin:0;color:#dc4444;font-size:13px}.login-submit{width:100%;margin-top:6px;padding:12px;border:none;border-radius:12px;background:var(--accent);color:var(--accent-text);font-size:14px;font-weight:600;cursor:pointer}.login-submit:disabled{opacity:.5;cursor:default}.page-shell{position:relative;min-height:100dvh;max-width:760px;margin:0 auto;display:flex;flex-direction:column}.page-header{flex-shrink:0;display:flex;align-items:center;gap:12px;padding:max(14px,env(safe-area-inset-top)) 18px 14px;border-bottom:1px solid var(--border)}.page-header h1{margin:0;font-size:17px;font-weight:700}.page-content{flex:1 1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:28px}.admin-section-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.admin-section h2{margin:0;font-size:15px;font-weight:700}.admin-section-hint{margin:4px 0 12px;color:var(--text-muted);font-size:12px}.admin-inline-form{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:14px;border-radius:14px;border:1px solid var(--border);background:var(--surface)}.admin-inline-form-compact{margin-top:0;padding:0;border:none;background:transparent;flex:1 1;justify-content:flex-end}.admin-inline-form .text-input{flex:1 1;min-width:140px}.admin-checkbox-label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted)}.admin-table{margin-top:12px;display:flex;flex-direction:column;gap:8px}.admin-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:var(--surface)}.admin-row-main{display:flex;flex-direction:column;gap:3px;min-width:0}.admin-row-title{font-size:14px;font-weight:600}.admin-row-meta{font-size:12px;color:var(--text-muted);font-weight:400}.admin-badge{margin-left:8px;padding:2px 8px;border-radius:999px;background:var(--accent);color:var(--accent-text);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.admin-row-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.admin-action-btn{padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.admin-action-btn:hover{background:var(--border)}.admin-action-btn:disabled{opacity:.4;cursor:default}.admin-action-btn-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.admin-action-btn-danger{color:#dc4444;border-color:rgba(220,68,68,.35)}.admin-select{padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:16px}.stats-range-toggle{flex-shrink:0;display:flex;gap:6px;padding:14px 18px 0}.stats-range-btn{padding:6px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:12px;font-weight:600;cursor:pointer}.stats-range-btn.active{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.stats-content{flex:1 1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:22px}.stats-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stats-tile{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:var(--surface)}.stats-tile-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.stats-tile-value{font-size:20px;font-weight:700}.stats-chart-block h3{margin:0 0 8px;font-size:13px;font-weight:700;color:var(--text-muted)}.stats-tooltip{padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);font-size:12px;color:var(--text)}.stats-tooltip-date{font-weight:700;margin-bottom:3px}.sidebar-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.35);z-index:40;opacity:0;pointer-events:none;transition:opacity .2s ease}.sidebar-backdrop.open{opacity:1;pointer-events:auto}.sidebar{position:absolute;top:0;left:0;bottom:0;width:min(280px,100%);display:flex;flex-direction:column;background:var(--bg);border-right:1px solid var(--border);box-shadow:var(--shadow);z-index:41;transform:translateX(-100%);transition:transform .25s ease}.sidebar.open{transform:translateX(0)}.sidebar-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:max(14px,env(safe-area-inset-top)) 14px 14px 18px;border-bottom:1px solid var(--border)}.sidebar-identity{display:flex;align-items:center;gap:10px;min-width:0}.sidebar-username{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:10px}.sidebar-nav-item{display:flex;align-items:center;gap:12px;padding:11px 12px;border:none;border-radius:10px;background:transparent;color:var(--text);font-size:14px;text-align:left;cursor:pointer}.sidebar-nav-item:hover{background:var(--border)}.sidebar-nav-item-danger{color:var(--danger,#e5484d)}