:root{color:#172033;background:#eef2f7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:geometricPrecision;--border: #d8dee8;--muted: #64748b;--panel: #ffffff;--ink: #172033;--blue: #2563eb;--teal: #0f766e;--amber: #b45309;--danger: #b91c1c;--shadow: 0 24px 80px rgba(15, 23, 42, .12)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}body.portal-open{overflow:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,rgba(37,99,235,.12),transparent 35%),linear-gradient(315deg,rgba(15,118,110,.14),transparent 38%),#eef2f7}.login-panel{width:min(460px,100%);background:#ffffffeb;border:1px solid rgba(216,222,232,.8);border-radius:8px;box-shadow:var(--shadow);padding:30px}.login-panel.compact{text-align:center}.brand-row{display:flex;gap:16px;align-items:center;margin-bottom:28px}.brand-mark{width:52px;height:52px;border-radius:8px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--blue),var(--teal))}.brand-mark.small{width:42px;height:42px}h1,h2,h3,p{margin:0}h1{font-size:28px;line-height:1.1;letter-spacing:0}.login-panel p,.topbar p,.workspace-title span,.user-chip span,.user-row span,.role-editor span,.audit-entry span{color:var(--muted)}.login-form{display:grid;gap:16px}label{display:grid;gap:7px;color:#334155;font-size:14px;font-weight:600}input,select,textarea{min-height:42px;border:1px solid var(--border);border-radius:7px;padding:0 12px;color:var(--ink);background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1f}.primary-button,.ghost-button,.icon-button,.nav-tabs button,.agent-button,.agent-toggles button{border:0;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 14px;white-space:nowrap}.icon-button.dark{color:#dbeafe;border-color:#273449;background:#1f2937}.icon-button.danger{color:#991b1b;border-color:#fecaca;background:#fff1f2}.icon-button.danger:disabled{color:#94a3b8;border-color:#e2e8f0;background:#f8fafc}.primary-button{color:#fff;background:#1d4ed8;font-weight:700}.primary-button:disabled{opacity:.6;cursor:not-allowed}.ghost-button,.icon-button{color:#334155;border:1px solid var(--border);background:#fff}.icon-button{width:40px;padding:0}.error-line{color:var(--danger);background:#fee2e2;border:1px solid #fecaca;padding:10px 12px;border-radius:7px}.app-shell{height:100dvh;min-height:0;display:grid;grid-template-columns:300px minmax(0,1fr) 0;overflow:hidden;--sidebar-width: 300px;--context-sidebar-width: 0px;transition:grid-template-columns .18s ease}.app-shell.right-sidebar-open{grid-template-columns:300px minmax(0,1fr) 320px;--context-sidebar-width: 320px}.sidebar{height:100dvh;min-height:0;padding:20px;background:#111827;color:#fff;display:flex;flex-direction:column;gap:14px;overflow:hidden}.workspace-title,.user-chip{display:flex;gap:12px;align-items:center}.workspace-title div:last-child,.user-chip-copy{min-width:0;display:grid;gap:2px}.workspace-title span,.user-chip span{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.nav-tabs button{min-height:34px;padding:0 10px;font-size:13px;background:#1f2937;color:#cbd5e1}.nav-tabs button.active{color:#fff;background:#2563eb}.section-label{color:#94a3b8;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:0;margin-bottom:8px}.agent-list{display:grid;gap:6px}.chat-history{min-height:0;flex:1;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:8px}.history-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-actions{display:grid;grid-template-columns:minmax(0,2fr) minmax(74px,1fr);gap:8px}.new-chat-button,.n8n-button,.history-button,.history-delete{width:100%;border:1px solid #273449;border-radius:7px;background:#1f2937;color:#dbeafe;display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px}.n8n-button{justify-content:center;padding:0 10px;color:#ea4b71;text-decoration:none}.n8n-button:hover{color:#f06286;border-color:#3b82f6;background:#1f2937}.n8n-logo{width:30px;height:30px;display:block;fill:currentColor}.new-chat-button.prominent{min-height:36px;justify-content:center;border-color:#dc2626;color:#fff;background:#dc2626;font-weight:800;font-size:14px}.new-chat-button.prominent:hover{background:#b91c1c}.history-list{min-height:0;overflow:auto;display:grid;align-content:start;gap:5px;padding-right:2px}.history-search{position:relative;display:block}.history-search svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:#94a3b8;pointer-events:none}.history-search input{width:100%;min-height:34px;padding-left:31px;color:#dbeafe;background:#0f172a;border-color:#273449;font-size:13px}.history-search input::placeholder{color:#64748b}.history-item{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:5px}.history-button{width:100%;justify-content:flex-start;min-height:42px;padding:5px 9px;text-align:left;background:transparent}.history-delete{width:34px;min-height:42px;padding:0;color:#fca5a5;background:transparent}.history-delete:hover{color:#fff;border-color:#dc2626;background:#7f1d1d}.history-item.active .history-button{border-color:#3b82f6;background:#1f2937}.history-button span{min-width:0;display:grid;gap:1px}.history-button strong,.history-button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-button .history-snippet{display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal}.search-mark{color:#111827;background:#fde68a;border-radius:3px;padding:0 2px}.history-button small,.history-empty{color:#94a3b8;font-size:12px}.history-empty{padding:8px 2px}.agent-button{width:100%;justify-content:flex-start;min-height:46px;padding:0 10px;color:#dbeafe;background:transparent;border:1px solid #273449;text-align:left}.agent-button.active{background:#1f2937;border-color:#3b82f6}.agent-button span:last-child{display:grid;gap:1px}.agent-button small{color:#94a3b8}.agent-icon{width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border-radius:7px;color:#fff;background:var(--agent-color, #2563eb)}.agent-icon.large{width:62px;height:62px;margin:0 auto 14px}.sidebar-footer{margin-top:auto;display:grid;gap:10px}.sidebar-footer .user-chip{min-width:0;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.sidebar-footer-actions{display:flex;align-items:center;gap:10px;justify-self:end}.sidebar-footer-actions .icon-button{flex:0 0 auto}.user-chip-copy{min-width:0;display:grid;gap:2px}.download-link{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid rgba(148,163,184,.3);border-radius:12px;color:#0f172a;background:#ffffffd1;text-decoration:none;font-size:13px;font-weight:700;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.download-link span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.download-link:hover{transform:translateY(-1px);border-color:#2563eb59;background:#eff6fff5;box-shadow:0 10px 24px #0f172a14}.avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:7px;color:#0f172a;background:#e2e8f0;font-weight:800}.main-panel{min-width:0;min-height:0;padding:22px;position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;overflow:hidden}.main-panel.has-toast{grid-template-rows:auto auto minmax(0,1fr)}.topbar{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:14px}.topbar-actions{display:inline-flex;align-items:center;gap:9px}.topbar-autoscroll-control{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border:1px solid #dbe7f3;border-radius:8px;background:linear-gradient(180deg,#f8fbff,#eef6ff);box-shadow:0 1px #ffffffd9 inset;white-space:nowrap}.topbar-autoscroll-control .control-label{color:#1d4ed8;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.topbar-autoscroll-control select{min-height:30px;height:30px;border:0;padding:0;background:transparent;font-weight:600}.right-sidebar{min-width:0;min-height:0;height:100dvh;overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;padding:0;border-left:0 solid transparent;color:#fff;background:#111827;opacity:0;pointer-events:none;transition:opacity .16s ease,padding .18s ease,border-color .18s ease}.right-sidebar.open{padding:20px;border-left-width:1px;border-left-color:#273449;opacity:1;pointer-events:auto}.right-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.right-sidebar-header h3{font-size:18px}.right-sidebar .icon-button{color:#dbeafe;background:#1f2937;border-color:#273449}.right-sidebar .icon-button:hover{color:#fff;border-color:#3b82f6}.right-sidebar-body{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:14px}.quick-links{display:grid;gap:10px}.workflow-launchers{margin-top:auto;display:grid;gap:10px}.workflow-launcher-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.workflow-launcher{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;width:100%;min-height:78px;padding:12px 13px;border:1px solid #273449;border-radius:12px;color:#e2e8f0;background:radial-gradient(circle at top left,rgba(59,130,246,.18),transparent 42%),linear-gradient(160deg,#1e293bf2,#0f172aeb);text-align:left;transition:transform .14s ease,border-color .14s ease,background .14s ease,color .14s ease,box-shadow .14s ease}.workflow-launcher:hover:not(:disabled){transform:translateY(-1px);color:#fff;border-color:#3b82f6;box-shadow:0 12px 30px #2563eb2e}.workflow-launcher:disabled{cursor:wait;opacity:.85}.workflow-launcher.pres{background:radial-gradient(circle at top left,rgba(245,158,11,.22),transparent 42%),linear-gradient(160deg,#261e11fa,#0f172aeb)}.workflow-launcher.asy{background:radial-gradient(circle at top left,rgba(16,185,129,.2),transparent 42%),linear-gradient(160deg,#0f2927fa,#0f172aeb)}.workflow-launcher-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;color:#fff;background:#ffffff1a}.workflow-launcher-copy{min-width:0;display:grid;gap:0}.workflow-launcher-copy strong{font-size:14px;line-height:1.1}.spinner{animation:spin .8s linear infinite}.portal-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 14px;border:1px solid #273449;border-radius:10px;color:#dbeafe;background:linear-gradient(135deg,#2563eb2e,#0f172a26);text-decoration:none;text-align:left;transition:transform .14s ease,border-color .14s ease,background .14s ease,color .14s ease}button.portal-card{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-style:solid}.portal-card:hover{transform:translateY(-1px);color:#fff;border-color:#3b82f6;background:linear-gradient(135deg,#2563eb47,#0f172a33)}.portal-card-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:8px;color:#fff;background:#1d4ed8}.portal-card-copy{min-width:0;display:grid;gap:2px}.portal-card-copy strong,.portal-card-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-card-copy span{color:#94a3b8;font-size:12px}.portal-card:hover .portal-card-copy span{color:#bfdbfe}.portal-card-meta{display:inline-flex;justify-content:flex-end}.badge{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.02em;white-space:nowrap}.badge-warning{color:#78350f;background:#fef3c7;border:1px solid #fde68a}.badge-critical{color:#7f1d1d;background:#fee2e2;border:1px solid #fecaca}.portal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:stretch;justify-content:stretch;min-height:0;padding:12px calc(12px + var(--context-sidebar-width)) 12px calc(12px + var(--sidebar-width));border:1px solid rgba(37,99,235,.18);border-radius:0;background:radial-gradient(circle at top left,rgba(37,99,235,.15),transparent 35%),linear-gradient(180deg,#0f172afa,#0f172aeb);box-shadow:0 28px 90px #0f172a47;overflow:hidden}.portal-overlay-shell{position:relative;flex:1 1 auto;min-height:0;width:100%;display:flex;flex-direction:column;gap:14px;padding:18px}.portal-overlay-header{display:flex;align-items:start;justify-content:space-between;gap:12px;color:#f8fafc}.portal-overlay-header h3{margin-top:3px;font-size:22px}.portal-overlay-header span{color:#94a3b8;font-size:13px}.portal-overlay-actions{display:inline-flex;align-items:center;gap:9px}.portal-alert-rail{display:grid;gap:10px;padding:12px 14px;border:1px solid rgba(148,163,184,.18);border-radius:14px;background:#0f172a94;color:#e2e8f0}.portal-alert-rail-label{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700}.portal-alert-rail-list{display:flex;flex-wrap:wrap;gap:8px}.portal-alert-chip{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:8px 11px;border:1px solid rgba(148,163,184,.2);border-radius:999px;color:#dbeafe;background:#1e293beb;text-align:left}.portal-alert-chip.active{border-color:#3b82f6e6;background:#2563eb42}.portal-alert-chip.warning .portal-alert-chip-dot{background:#f59e0b}.portal-alert-chip.critical .portal-alert-chip-dot{background:#ef4444}.portal-alert-chip span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-alert-chip-dot{width:9px;height:9px;border-radius:999px;flex:0 0 auto;background:#38bdf8;box-shadow:0 0 0 3px #38bdf824}.portal-overlay-frame{position:relative;flex:1 1 auto;min-height:0;border-radius:14px;overflow:hidden;border:1px solid rgba(148,163,184,.18);background:#0b1220}.portal-overlay-frame iframe{width:100%;height:100%;border:0;background:#fff}.portal-overlay-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:grid;place-content:center;gap:10px;color:#cbd5e1;background:#0f172ad1}.threecx-alert-popover{position:fixed;top:18px;right:18px;bottom:18px;left:18px;z-index:70;display:grid;place-items:center;padding:12px calc(12px + var(--context-sidebar-width)) 12px calc(12px + var(--sidebar-width));pointer-events:none}.threecx-alert-popup{position:relative;pointer-events:auto;width:min(720px,calc(100% - 36px));display:grid;gap:14px;padding:18px;border-radius:18px;border:1px solid rgba(248,250,252,.18);color:#fff;box-shadow:0 30px 90px #0f172a6b;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:threecx-alert-pop .18s ease-out}.threecx-alert-popup.warning{background:linear-gradient(135deg,#92400ef2,#ea580cd1)}.threecx-alert-popup.critical{background:linear-gradient(135deg,#7f1d1dfa,#b91c1cd6)}.threecx-alert-banner{display:flex;align-items:center;justify-content:space-between;gap:10px}.threecx-alert-badge{display:inline-flex;align-items:center;min-height:28px;padding:0 12px;border-radius:999px;color:#fff;background:#0f172a38;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.threecx-alert-popup .alert-close{color:#fff;border-color:#ffffff2e;background:#0f172a2e}.threecx-alert-body{display:grid;gap:10px}.threecx-alert-body h3{font-size:clamp(24px,4vw,38px);line-height:1.05}.threecx-alert-message{max-width:68ch;font-size:16px;line-height:1.55;color:#fffffff2}.threecx-alert-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}.threecx-alert-meta div{padding:11px 12px;border-radius:12px;background:#0f172a33}.threecx-alert-meta dt{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#e2e8f0b3}.threecx-alert-meta dd{margin:4px 0 0;font-size:14px;font-weight:700;word-break:break-word}.threecx-alert-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.threecx-alert-actions .ghost-button{color:#fff;border-color:#ffffff29;background:#0f172a24}.threecx-alert-actions .ghost-button:hover{border-color:#ffffff3d;background:#0f172a38}.threecx-alert-actions .primary-button{background:#0f172a}@keyframes threecx-alert-pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.topbar h2{font-size:25px;line-height:1.15;letter-spacing:0}.toast{width:fit-content;display:inline-flex;align-items:center;gap:8px;padding:10px 12px;border-radius:7px;color:#166534;background:#dcfce7;border:1px solid #bbf7d0}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:20px;background:#0f172a85}.dialog-panel{width:min(430px,100%);padding:18px;border:1px solid var(--border);border-radius:8px;background:#fff;box-shadow:var(--shadow)}.password-form{display:grid;gap:13px}.dialog-actions{display:flex;justify-content:flex-end;gap:9px}.chat-layout{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;overflow:hidden}.chat-layout.code-editor-open{grid-template-rows:auto auto minmax(0,1fr) auto}.main-panel>.chat-layout,.main-panel>.admin-grid,.main-panel>.empty-state{grid-row:2}.main-panel.has-toast>.chat-layout,.main-panel.has-toast>.admin-grid,.main-panel.has-toast>.empty-state{grid-row:3}.chat-toolbar{display:flex;align-items:end;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:#fff}.chat-toolbar>div{min-width:0;display:grid;gap:3px}.chat-toolbar span{color:var(--muted);font-size:13px}.chat-toolbar-controls{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;justify-content:flex-end}.chat-model-control{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-width:0}.chat-model-control label{min-width:0;display:flex;align-items:center;gap:8px;white-space:nowrap}.chat-model-control label span{flex:0 0 auto}.code-editor-toggle.active{color:#1d4ed8;border-color:#bfdbfe;background:#eff6ff}.chat-toolbar-controls .code-editor-toggle{width:36px;min-width:36px;min-height:36px;padding:0;flex:0 0 auto}.chat-toolbar-controls .code-editor-toggle svg{flex-shrink:0}.chat-model-control select{width:100%;min-width:180px}.chat-autoscroll-control{width:min(220px,100%);display:grid;gap:4px;padding:10px 12px;border:1px solid #dbe7f3;border-radius:10px;background:linear-gradient(180deg,#f8fbff,#eef6ff);box-shadow:0 1px #ffffffd9 inset}.chat-autoscroll-control .control-label{color:#1d4ed8;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.chat-autoscroll-control select{min-height:40px;font-weight:600}.compose-editor{display:grid;gap:10px;padding:14px;border:1px solid #cbd5e1;border-radius:12px;background:linear-gradient(180deg,#0f172afa,#0f172aeb),#0f172a;box-shadow:0 12px 36px #0f172a1f}.compose-editor-bar{display:flex;align-items:start;justify-content:space-between;gap:12px;color:#e2e8f0}.compose-editor-bar .section-label{margin-bottom:4px;color:#93c5fd}.compose-editor-bar strong{display:block;font-size:18px}.compose-editor-bar span:last-child{color:#94a3b8;font-size:13px}.compose-editor-actions{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.compose-editor-actions .ghost-button{color:#e2e8f0;border-color:#94a3b838;background:#1e293be6}.compose-editor-actions .ghost-button:disabled{opacity:.45}.compose-editor-input{min-height:280px;resize:vertical;padding:14px 16px;border-color:#94a3b83d;border-radius:12px;color:#e2e8f0;background:#020617;font-family:SFMono-Regular,ui-monospace,Cascadia Code,Source Code Pro,Menlo,Monaco,Consolas,monospace;font-size:13px;line-height:1.6;-moz-tab-size:2;tab-size:2;white-space:pre}.compose-editor-input::placeholder{color:#64748b}.chat-thread{min-height:0;overflow:auto;padding:18px;border:1px solid var(--border);border-radius:8px;background:var(--panel)}.empty-state{height:100%;min-height:300px;display:grid;place-content:center;gap:10px;text-align:center;color:var(--muted)}.empty-state h3{color:var(--ink);font-size:22px}.message{width:min(760px,92%);padding:13px 15px;border-radius:8px;margin-bottom:10px;line-height:1.45}.message.user{margin-left:auto;color:#fff;background:#1d4ed8}.message.agent,.message.assistant{color:#172033;background:#eef6f5;border:1px solid #c7ece7}.message.system{color:#7f1d1d;background:#fee2e2}.message p+p{margin-top:6px}.message-codeblock{overflow:hidden;margin-top:10px;border:1px solid #cbd5e1;border-radius:10px;background:#0f172a;box-shadow:inset 0 1px #ffffff0a}.message-codebar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;color:#cbd5e1;background:#0f172adb;border-bottom:1px solid rgba(148,163,184,.18);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.code-copy-button{border:1px solid rgba(148,163,184,.24);border-radius:6px;padding:5px 9px;color:#e2e8f0;background:#1e293be6;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.code-copy-button:hover{background:#334155f2}.message-codeblock pre{overflow:auto;margin:0;padding:14px 16px 16px;color:#e2e8f0;font-family:SFMono-Regular,ui-monospace,Cascadia Code,Source Code Pro,Menlo,Monaco,Consolas,monospace;font-size:13px;line-height:1.55;white-space:pre}.message-codeblock code{font-family:inherit}.message.typing{width:fit-content;min-width:78px}.chat-thread-end{height:1px;width:1px}.typing-dots{display:inline-flex;align-items:center;gap:5px;height:18px}.typing-dots i{width:7px;height:7px;border-radius:999px;background:#0f766e;animation:typing-bounce 1s infinite ease-in-out}.typing-dots i:nth-child(2){animation-delay:.15s}.typing-dots i:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,80%,to{transform:translateY(0);opacity:.45}40%{transform:translateY(-5px);opacity:1}}.composer{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;padding:10px;border:1px solid transparent;border-radius:8px;background:#ffffffbd}.composer.drag-active{border-color:#2563eb;background:#eff6ff}.composer textarea{min-height:128px;resize:none;padding:12px;line-height:1.35}.hidden-file-input{display:none}.attach-button{align-self:end;height:48px;width:48px}.composer .primary-button{align-self:end;min-height:48px}.attachment-list{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:7px}.message .attachment-list{margin-top:10px}.attachment-chip{max-width:min(100%,340px);display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid #cbd5e1;border-radius:7px;color:#1e293b;background:#f8fafc}.attachment-download-button{width:28px;height:28px;display:grid;place-items:center;flex:0 0 auto;border:1px solid rgba(148,163,184,.45);border-radius:8px;color:#334155;background:#ffffffeb;text-decoration:none}.attachment-download-button:hover{border-color:#2563eb59;color:#1d4ed8;background:#eff6ff}.attachment-chip-body{min-width:0;display:grid;gap:2px}.attachment-chip strong,.attachment-chip small,.attachment-status span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-chip small{color:var(--muted);font-size:11px}.attachment-status{min-width:0;display:inline-flex;align-items:center;gap:4px;font-size:11px;line-height:1.2;color:#475569}.attachment-status.pending{color:#0369a1}.attachment-status.error{color:#b91c1c}.attachment-status.ready{color:#475569}.attachment-chip button{width:24px;height:24px;border:0;border-radius:6px;display:grid;place-items:center;color:#64748b;background:transparent}.attachment-chip button:hover{color:#991b1b;background:#fee2e2}.attachment-status.pending svg{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.admin-grid{min-height:0;overflow:auto;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.8fr);grid-template-rows:auto auto;align-content:start;gap:14px;padding-right:2px}.admin-section{min-width:0;background:#fff;border:1px solid var(--border);border-radius:8px;padding:16px}.audit-section{grid-column:1 / -1}.panel-heading{display:flex;align-items:center;gap:9px;margin-bottom:14px}.panel-heading h3{font-size:18px}.user-table,.role-list{display:grid;gap:10px}.user-row{display:grid;grid-template-columns:minmax(260px,1.25fr) minmax(220px,1fr) auto auto auto;gap:10px;align-items:center;border:1px solid #e8edf4;border-radius:8px;padding:10px}.user-fields,.role-editor>div:first-child,.audit-entry{display:grid;gap:3px}.user-fields{grid-template-columns:minmax(120px,.9fr) minmax(160px,1.1fr) minmax(140px,.9fr);gap:8px}.role-pills{display:flex;flex-wrap:wrap;gap:8px}.role-pills label{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;color:#334155;background:#f8fafc;border:1px solid var(--border);border-radius:999px;font-size:13px}.role-pills label.checked{color:#0f766e;background:#ecfdf5;border-color:#99f6e4}.role-pills input{width:14px;min-height:14px}.role-pills.compact{max-width:360px}.switch{display:inline-flex;grid-auto-flow:column;align-items:center;gap:7px;font-size:13px}.switch input{width:16px;min-height:16px}.create-form{display:grid;gap:10px;margin-top:16px;border-top:1px solid var(--border);padding-top:16px}.role-editor{display:grid;gap:12px;border:1px solid #e8edf4;border-radius:8px;padding:12px}.agent-toggles{display:flex;flex-wrap:wrap;gap:8px}.agent-toggles button{color:#475569;background:#f8fafc;border:1px solid var(--border)}.agent-toggles button.enabled{color:#075985;background:#e0f2fe;border-color:#7dd3fc}.audit-entry{border-top:1px solid #e8edf4;padding:10px 0}@media(max-width:980px){.app-shell,.admin-grid{grid-template-columns:1fr}.app-shell{grid-template-rows:minmax(0,42dvh) minmax(0,1fr) 0}.app-shell.right-sidebar-open{grid-template-columns:1fr;grid-template-rows:minmax(0,32dvh) minmax(0,1fr) minmax(190px,28dvh)}.sidebar{height:auto;min-height:0;overflow:auto}.right-sidebar{height:auto;border-left:0;border-top:0 solid transparent}.right-sidebar.open{padding:14px;border-top-width:1px;border-top-color:#273449}.user-row{grid-template-columns:1fr}.portal-overlay{padding:12px}.threecx-alert-popover{top:0;right:0;bottom:0;left:0;padding:18px}}@media(max-width:620px){.main-panel,.sidebar{padding:14px}.chat-toolbar{display:grid;gap:10px}.chat-toolbar-controls{width:100%;justify-content:flex-end;flex-wrap:nowrap}.chat-model-control{width:100%;grid-template-columns:auto minmax(0,1fr)}.chat-autoscroll-control{width:100%}.compose-editor-bar{flex-direction:column}.compose-editor-actions{width:100%;justify-content:stretch}.compose-editor-actions .ghost-button{width:100%}.topbar,.composer{grid-template-columns:1fr;display:grid}.topbar-actions{display:flex;flex-wrap:wrap;align-items:stretch}.topbar-autoscroll-control{width:100%;justify-content:space-between}.ghost-button,.primary-button{width:100%}}
