@import url('tailwind.css');
:root{--bg:#f6f7f9;--surface:#fcfcfd;--surface-muted:#eef1f5;--text:#242c3a;--muted:#748093;--border:#e1e5eb;--primary:#3365d8;--primary-hover:#2854b9;--primary-soft:#eaf0ff;--green:#267651;--green-soft:#eaf5ee;--amber:#946521;--amber-soft:#fbf1df;--red:#b14747;--red-soft:#fbeaea;--radius:12px;--control-radius:8px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px}
[data-theme=dark]{--bg:#161c26;--surface:#1d2532;--surface-muted:#263141;--text:#e0e6ef;--muted:#9daabf;--border:#334155;--primary:#7298f5;--primary-hover:#90acf7;--primary-soft:#25395e;--green:#86cba6;--green-soft:#203c31;--amber:#dfba7a;--amber-soft:#433a2a;--red:#efa1a1;--red-soft:#462d35;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;font:14px/1.6 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text)}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--primary);outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.25;letter-spacing:-1px;font-weight:650}h2{font-size:18px;line-height:1.5;font-weight:650;letter-spacing:-.3px}h3{font-size:16px;line-height:1.5;font-weight:600}p{margin:var(--space-2) 0 var(--space-4)}small{font-size:12px}strong{font-weight:600}.muted{color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:700;color:var(--muted);margin:0 0 var(--space-3)}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:var(--surface);border-right:1px solid var(--border);padding:var(--space-8) var(--space-4);display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;font-size:26px;font-weight:700;letter-spacing:-1px;color:var(--text);padding:0 var(--space-3) var(--space-8)}.brand-mark{background:var(--primary);color:var(--surface);font-size:24px;width:32px;height:32px;border-radius:8px;text-align:center;line-height:32px}.brand-caption{font-size:8px;letter-spacing:2px;width:100%;padding-left:40px;color:var(--muted)}.nav-label{color:var(--muted);font-size:9px;letter-spacing:1.7px;font-weight:700;margin:var(--space-6) var(--space-3) var(--space-2)}.sidebar nav a{color:var(--muted);display:flex;gap:var(--space-3);padding:var(--space-3);border-radius:var(--control-radius);min-height:44px;margin-bottom:var(--space-1);font-size:13px}.sidebar nav a span{width:20px;text-align:center;font-size:18px;line-height:22px}.sidebar nav a.selected,.sidebar nav a:hover{background:var(--primary-soft);color:var(--primary);text-decoration:none}.sidebar-foot{margin-top:auto;border-top:1px solid var(--border);padding-top:var(--space-6);display:flex;gap:var(--space-3);align-items:center}.sidebar-foot strong,.sidebar-foot small{display:block}.sidebar-foot small{color:var(--muted)}.avatar,.workspace-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:var(--surface-muted);font-weight:600;color:var(--primary)}.sidebar-foot form{margin-left:auto}.shell{margin-left:240px}.shell.signed-out{margin-left:0}.topbar{height:80px;padding:0 var(--space-8);border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.workspace-picker,.topbar-actions{display:flex;align-items:center;gap:var(--space-3)}.topbar .badge{font-size:10px}.topbar-actions{font-size:11px}main{padding:var(--space-8);max-width:1600px;margin:0 auto;min-height:calc(100vh - 144px)}footer{color:var(--muted);font-size:10px;display:flex;justify-content:space-between;padding:var(--space-6) var(--space-8);border-top:1px solid var(--border)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-8)}.page-header p:not(.eyebrow){color:var(--muted);font-size:13px;margin-top:var(--space-3);margin-bottom:0}.button{display:inline-flex;justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-3) var(--space-4);border:1px solid transparent;border-radius:var(--control-radius);font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap;transition:background .18s}.button:hover{text-decoration:none}.primary{background:var(--primary);color:var(--surface)}.primary:hover{background:var(--primary-hover)}.secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.secondary:hover{background:var(--surface-muted)}.danger{background:var(--red-soft);color:var(--red);border-color:var(--red-soft)}.icon-button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:8px;background:transparent;color:var(--muted);width:44px;height:44px;font-size:20px}.icon-button:hover{background:var(--surface-muted)}.text-button{background:none;border:0;color:var(--primary);min-height:44px;font-size:11px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-8)}.metrics article{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:var(--space-6)}.metrics span,.metrics small{display:block;color:var(--muted);font-size:11px}.metrics strong{font-size:30px;line-height:1.3;display:block;margin:var(--space-3) 0}.metrics .metric-text{font-size:24px}.metrics small{font-size:10px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.section-heading p{font-size:12px;color:var(--muted);margin:var(--space-1) 0 0}.section-heading a{font-size:11px}.count{background:var(--surface-muted);color:var(--muted);font-size:11px;padding:var(--space-1) var(--space-2);border-radius:6px;margin-left:var(--space-2)}.bot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin-bottom:var(--space-8)}.bot-card,.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:var(--space-6)}.card{margin-bottom:var(--space-6)}.bot-card h3 a{color:var(--text)}.bot-card p{font-size:11px;margin-bottom:var(--space-6)}.card-top,.card-bottom{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.card-top{margin-bottom:var(--space-6)}.bot-icon,.integration-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--border);background:var(--primary-soft);color:var(--primary);border-radius:10px;font-size:24px;flex-shrink:0}.card-divider{border-top:1px solid var(--border);margin:var(--space-4) 0}.card-bottom{font-size:10px}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border-radius:6px;font-size:10px;font-weight:600;background:var(--surface-muted);color:var(--muted);white-space:nowrap}.status-published,.status-ready,.status-sent,.status-active{background:var(--green-soft);color:var(--green)}.status-training,.status-processing,.status-indexing,.status-queued,.status-open{background:var(--primary-soft);color:var(--primary)}.status-needs_retraining,.status-trial,.status-pending{background:var(--amber-soft);color:var(--amber)}.status-failed,.status-dead,.status-suspended{background:var(--red-soft);color:var(--red)}.two-columns{display:grid;grid-template-columns:1.3fr 1fr;gap:var(--space-6);align-items:start}.list-row{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--border);color:var(--text)}.list-row:last-child{border-bottom:0}.list-row>div:first-of-type{flex:1}.list-row strong,.list-row small{display:block}.list-row small{color:var(--muted);font-size:10px}.small.avatar{width:32px;height:32px;font-size:11px}.getting-started p{font-size:12px;color:var(--muted)}.getting-started ol{padding-left:var(--space-6);color:var(--muted);font-size:11px}.getting-started li{padding:var(--space-2) 0}.empty-state,.compact-empty{text-align:center;padding:var(--space-8) var(--space-4);color:var(--muted)}.empty-state h3,.compact-empty h3{color:var(--text);margin-top:var(--space-3)}.empty-state p,.compact-empty p{max-width:420px;margin:var(--space-2) auto var(--space-6);font-size:12px}.empty-icon{font-size:32px;color:var(--primary)}.wide{grid-column:1/-1}.center{text-align:center}.breadcrumbs{display:flex;gap:var(--space-3);font-size:11px;color:var(--muted);margin-bottom:var(--space-6)}.header-actions{display:flex;gap:var(--space-4);align-items:center}.stepper{display:flex;justify-content:space-between;list-style:none;border:1px solid var(--border);padding:var(--space-4) var(--space-6);border-radius:var(--radius);background:var(--surface);font-size:12px;color:var(--primary);margin:0 0 var(--space-4)}.stepper li{display:flex;gap:var(--space-2);align-items:center;font-weight:600}.stepper span{color:var(--muted);font-weight:400}.publish-hint{font-size:11px;color:var(--amber);margin-bottom:var(--space-6)}.builder-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);gap:var(--space-6);align-items:start}.builder-settings .section-heading{align-items:start}.preview-column{position:sticky;top:var(--space-6)}.preview-label{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) 0}.preview-label small{display:block;color:var(--muted);font-size:10px;margin-left:var(--space-4)}.preview-label strong{font-size:12px}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:var(--space-2)}.preview-note{color:var(--muted);font-size:10px;text-align:center;padding:var(--space-2)}.preview-tip{margin-top:var(--space-6)}.preview-tip p{font-size:12px;color:var(--muted)}input,select,textarea{width:100%;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--control-radius);background:var(--surface);color:var(--text);min-height:44px}textarea{resize:vertical}label{display:block;font-size:12px;font-weight:600;margin-bottom:var(--space-2)}form p{margin:0 0 var(--space-4)}form .helptext{display:block;color:var(--muted);font-size:10px;margin-top:var(--space-1)}form p:has(input[type=checkbox]){display:flex;align-items:center;gap:var(--space-3)}input[type=checkbox]{width:20px;min-height:20px}.errorlist,.error{color:var(--red);font-size:12px}.errorlist{list-style:none;padding:var(--space-2) var(--space-3);background:var(--red-soft);border-radius:8px}.source-row{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-4) 0;border-bottom:1px solid var(--border)}.source-row>div{flex:1}.source-row strong,.source-row small{display:block}.source-row small{font-size:10px;color:var(--muted)}.file-icon{font-size:9px;font-weight:700;color:var(--primary);background:var(--primary-soft);padding:var(--space-3);border-radius:6px}.training-action{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-6);gap:var(--space-4)}.training-action p{font-size:11px;color:var(--muted);margin:0}.training-status{padding:var(--space-4);background:var(--surface-muted);border-radius:8px;margin-top:var(--space-4);font-size:12px}.training-status p{margin-bottom:var(--space-2);font-size:11px}.embed-code{background:var(--surface-muted);padding:var(--space-4);border-radius:8px;font-size:11px;overflow:auto;white-space:pre-wrap;word-break:break-all}.inline-form{display:inline-block;margin-top:var(--space-4)}.table-card{padding:0}.padded{padding:var(--space-6);margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th{text-align:left;font-size:10px;letter-spacing:.5px;font-weight:600;color:var(--muted);background:var(--surface-muted);position:sticky;top:0;padding:var(--space-4) var(--space-6)}td{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border)}td small{display:block;font-size:10px;color:var(--muted)}.filters{display:flex;gap:var(--space-3);margin-bottom:var(--space-6)}.filters input{flex:1}.filters select{width:180px}.pagination{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-6);font-size:12px;border-top:1px solid var(--border)}.connection-banner{border:1px solid var(--border);background:var(--primary-soft);border-radius:var(--radius);padding:var(--space-6);display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.connection-banner>div{flex:1}.connection-banner p{margin:var(--space-1) 0 0;font-size:11px;color:var(--muted)}.transcript{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-6)}.message{padding:var(--space-4);border-radius:10px;background:var(--surface-muted)}.message.user{background:var(--primary-soft);margin-left:var(--space-8)}.message small{color:var(--muted);font-size:10px}.message p{margin:var(--space-2) 0;font-size:13px}dl{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);font-size:12px;margin-top:var(--space-6);overflow-wrap:anywhere}dt{color:var(--muted)}dd{margin:0}.plan-card h2{font-size:36px;margin:var(--space-6) 0}.plan-card h2 small{font-size:12px;color:var(--muted)}.auth-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;max-width:960px;gap:var(--space-16);margin:var(--space-16) auto}.auth-intro h1{font-size:48px}.auth-intro p{color:var(--muted)}.auth-card{padding:var(--space-8)}.auth-card form{margin-top:var(--space-6)}.auth-card .button{width:100%}dialog{border:1px solid var(--border);border-radius:16px;background:var(--surface);color:var(--text);padding:var(--space-6);width:min(600px,calc(100% - 32px));max-height:90vh;box-shadow:0 24px 64px #17203333}dialog::backdrop{background:#17203380}.modal-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);font-size:9px;letter-spacing:1.5px;color:var(--muted)}#modal-title{margin-bottom:var(--space-6)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6)}.htmx-indicator{display:none}.htmx-request .htmx-indicator{display:inline}.htmx-request .normal-label{display:none}.notice{padding:var(--space-4);border:1px solid var(--border);background:var(--primary-soft);border-radius:8px;margin-bottom:var(--space-6)}.notice.error{background:var(--red-soft)}.notice.success{background:var(--green-soft);color:var(--green)}.toast{position:fixed;right:var(--space-6);bottom:var(--space-6);padding:var(--space-4) var(--space-6);background:var(--text);color:var(--surface);border-radius:10px;z-index:100}.banner{display:flex;justify-content:center;gap:var(--space-6);align-items:center;background:var(--amber-soft);color:var(--amber);padding:var(--space-2) var(--space-4);font-size:12px}.banner button{background:none;border:0;color:inherit;text-decoration:underline;min-height:44px}.skeleton div{height:44px;background:var(--surface-muted);border-radius:8px;margin:var(--space-4) 0}.skeleton div:first-child{width:60%}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:var(--space-4);top:var(--space-4);z-index:200;background:var(--surface);padding:var(--space-3)}details{position:relative}summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.dropdown{position:absolute;right:0;top:100%;min-width:180px;background:var(--surface);padding:var(--space-2);border:1px solid var(--border);border-radius:8px;z-index:15;box-shadow:0 8px 24px #17203320}.dropdown button{width:100%;border:0;min-height:44px;text-align:left;padding:var(--space-2);background:transparent;color:var(--text)}.dropdown button:hover{background:var(--surface-muted)}.mobile-menu,.mobile-tabs{display:none}
@media(min-width:1440px){main{padding:var(--space-12)}.topbar{padding:0 var(--space-12)}}@media(max-width:1100px){.bot-grid{grid-template-columns:repeat(2,1fr)}.sidebar{width:210px}.shell{margin-left:210px}.metrics{grid-template-columns:repeat(2,1fr)}.builder-grid{grid-template-columns:1fr 1fr}.stepper span{font-size:10px}.desktop-only{display:none}}@media(max-width:1023px){.sidebar{visibility:hidden;transform:translateX(-100%);transition:transform .2s,visibility .2s;width:240px}.sidebar.is-open{visibility:visible;transform:translateX(0)}.shell{margin-left:0}.mobile-menu{display:flex}.topbar{padding:0 var(--space-4);height:64px}.workspace-picker{gap:var(--space-2)}.workspace-picker strong{font-size:12px}.workspace-picker .badge{display:none}main{padding:var(--space-6) var(--space-4)}.page-header{align-items:flex-start;flex-direction:column;gap:var(--space-4)}h1{font-size:28px}.metrics{gap:var(--space-3)}.metrics article{padding:var(--space-4)}.metrics strong{font-size:26px}.bot-grid,.two-columns,.builder-grid,.auth-layout{grid-template-columns:1fr}.builder-grid{gap:var(--space-4)}.preview-column{position:static}.mobile-tabs{display:flex;grid-column:1/-1;gap:var(--space-2)}.mobile-tabs button{min-height:44px;flex:1;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text)}.mobile-hidden{display:none}.stepper{padding:var(--space-3);overflow:auto;gap:var(--space-6)}.stepper li{min-width:80px}.section-heading{gap:var(--space-3)}.section-heading h2{font-size:16px}.section-heading .button{font-size:10px;padding:var(--space-2)}.source-row{gap:var(--space-2)}.source-row .badge{font-size:9px}.filters{flex-wrap:wrap}.filters input{flex-basis:100%}.filters select{flex:1}.connection-banner{flex-wrap:wrap;padding:var(--space-4)}.connection-banner .button{width:100%}.auth-layout{gap:var(--space-6);margin:var(--space-8) auto}.auth-intro h1{font-size:36px}.auth-card{padding:var(--space-6)}footer{padding:var(--space-4)}footer span{display:none}dialog{width:100%;height:100%;max-height:100%;border-radius:0}.header-actions{flex-wrap:wrap}.preview-label{gap:var(--space-2)}.training-action{flex-wrap:wrap}.table-wrap table{min-width:600px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

@media(min-width:768px) and (max-width:1023px){.bot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.card{padding:var(--space-6)}}
.card,.bot-card{min-width:0}.sidebar nav{overflow-y:auto;flex:1}.sidebar-foot{flex-shrink:0}
@media(max-width:767px){.table-wrap table{min-width:0}.table-wrap thead{display:none}.table-wrap tbody,.table-wrap tr{display:block}.table-wrap tr{padding:var(--space-4);border-bottom:1px solid var(--border)}.table-wrap td{display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--space-3);padding:var(--space-2) 0;border:0;overflow-wrap:anywhere}.table-wrap td:before{content:attr(data-label);color:var(--muted);font-size:10px;font-weight:600}.table-wrap td[colspan]{display:block}.table-wrap td[colspan]:before{display:none}}

.table-wrap{max-height:480px;overflow:auto;scroll-padding-top:var(--space-16)}
th{z-index:1}td{vertical-align:middle}td>strong{display:block}
.dropdown.action-menu{position:fixed;inset:auto;margin:0;max-width:calc(100vw - 32px);color:var(--text)}
@media(max-width:767px){.table-wrap{max-height:none}.table-wrap td>strong{grid-column:2}.table-wrap td>small{grid-column:2}}

[data-action-menu][hidden]{display:none!important}

/* ---------- Three levels: platform → partner → workspace ---------- */
.brand-name{line-height:32px}
.brand-logo{max-width:176px;max-height:40px;object-fit:contain}
.brand .brand-caption{padding-left:0;margin-top:var(--space-1)}
.brand-mark+.brand-name+.brand-caption{padding-left:40px}
.topbar-logo{max-height:28px;max-width:160px;object-fit:contain}
.context-picker{display:flex;align-items:center;gap:var(--space-3);min-width:0}
.context-picker>strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.level-chip{display:inline-flex;align-items:center;font-size:9px;letter-spacing:1.4px;font-weight:700;text-transform:uppercase;padding:var(--space-1) var(--space-2);border-radius:6px;white-space:nowrap}
.level-chip-platform{background:#17202f;color:#fcfcfd}
.level-chip-partner{background:color-mix(in srgb,var(--primary) 18%,var(--surface));color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 35%,var(--surface))}
.level-chip-workspace{background:var(--primary-soft);color:var(--primary)}
.context-switch summary{font-size:12px;color:var(--muted);padding:0 var(--space-2);border:1px solid var(--border);border-radius:8px;min-height:32px;list-style:none}
.context-switch summary::-webkit-details-marker{display:none}
.context-menu{left:0;right:auto;min-width:260px;max-height:70vh;overflow:auto}
.context-menu .menu-label{font-size:9px;letter-spacing:1.5px;font-weight:700;color:var(--muted);margin:var(--space-3) var(--space-2) var(--space-1)}
.context-menu .menu-label:first-child{margin-top:var(--space-1)}
.context-menu a{display:flex;align-items:center;min-height:44px;padding:var(--space-2);border-radius:6px;color:var(--text)}
.context-menu a:hover{background:var(--surface-muted);text-decoration:none}
.context-menu .current{font-weight:650;color:var(--primary)}
.help-link{display:flex;gap:var(--space-2);align-items:center;font-size:11px;color:var(--muted);padding:var(--space-3);margin-bottom:var(--space-3);border:1px dashed var(--border);border-radius:8px;overflow-wrap:anywhere}

/* Platform console: dark sidebar so operator mode never looks like a customer workspace. */
.level-platform .sidebar{background:#121a27;border-right-color:#121a27}
.level-platform .sidebar .brand,.level-platform .sidebar-foot strong{color:#f1f4f9}
.level-platform .sidebar .brand-mark{background:#f1f4f9;color:#121a27}
.level-platform .sidebar .brand-caption,.level-platform .sidebar .nav-label,.level-platform .sidebar-foot small{color:#8b97ab}
.level-platform .sidebar nav a{color:#b9c3d3}
.level-platform .sidebar nav a.selected,.level-platform .sidebar nav a:hover{background:#243146;color:#fcfcfd}
.level-platform .sidebar-foot{border-top-color:#243146}
.level-platform .sidebar .avatar{background:#243146;color:#fcfcfd}
.level-platform .sidebar .icon-button{color:#b9c3d3}
.level-platform .sidebar .icon-button:hover{background:#243146}
/* Partner portal: brand-tinted sidebar. */
.level-partner .sidebar{background:color-mix(in srgb,var(--primary) 5%,var(--surface))}

.support-banner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-8);font-size:12px;color:#fcfcfd}
.support-banner.is-view{background:#1e3a8a}
.support-banner.is-edit{background:#991b1b}
.support-banner .pill{padding:0 var(--space-2);border-radius:999px;background:#fcfcfd29;font-weight:600}
.support-banner .support-meta{opacity:.8}
.support-banner form,.support-banner .banner-link{margin-left:auto}
.support-banner button,.support-banner .banner-link{background:#fcfcfd;color:#111827;border:0;border-radius:6px;padding:var(--space-1) var(--space-3);font-weight:600;min-height:32px;display:inline-flex;align-items:center}
.support-banner .banner-link:hover{text-decoration:none}

.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border);margin:0 0 var(--space-6);overflow-x:auto}
.tabs a{padding:var(--space-3) var(--space-4);color:var(--muted);font-size:13px;font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
.tabs a:hover{color:var(--text);text-decoration:none}
.tabs a.is-active{color:var(--primary);border-bottom-color:var(--primary)}
.metrics.five{grid-template-columns:repeat(5,1fr)}
.metrics.three{grid-template-columns:repeat(3,1fr)}
.metrics .metric-text{font-size:18px}
.title-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}
.reason-list{display:flex;gap:var(--space-1);flex-wrap:wrap}
.checklist{list-style:none;padding:0;margin:0}
.checklist li{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-3) 0;border-bottom:1px solid var(--border);font-size:13px}
.checklist li:last-child{border-bottom:0}
.check{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--border);font-size:12px;flex-shrink:0}
.checklist .done .check{background:var(--green-soft);color:var(--green);border-color:var(--green-soft)}
.checklist .done span:not(.check){color:var(--muted);text-decoration:line-through}
.progress{height:6px;border-radius:99px;background:var(--surface-muted);overflow:hidden;margin:var(--space-3) 0 var(--space-4)}
.progress span{display:block;height:100%;background:var(--primary)}
.swatch{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid var(--border);vertical-align:middle;margin-right:var(--space-2)}
.brand-preview{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.brand-preview-bar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border);background:var(--surface)}
.brand-preview-body{padding:var(--space-6);background:var(--bg)}
.brand-preview-body .button{pointer-events:none}
.inline-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}
.inline-actions form{display:inline}
.level-intro{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-8)}
td .badge+small{margin-top:var(--space-1)}
@media(max-width:1100px){.metrics.five{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1023px){.metrics.five,.metrics.three{grid-template-columns:repeat(2,1fr)}.support-banner{padding:var(--space-2) var(--space-4)}.context-picker .level-chip{font-size:8px;letter-spacing:1px}.level-intro{grid-template-columns:1fr}}

.brand-name{font-size:20px;letter-spacing:-.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:156px}
.context-menu a,.context-menu button{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}
.two-columns .metrics{grid-template-columns:repeat(2,1fr)}

/* ---------- Builder steps, knowledge intake, onboarding ---------- */
[x-cloak]{display:none!important}
.step-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin-bottom:var(--space-6)}
.step-tabs button{display:flex;gap:var(--space-3);align-items:center;text-align:left;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius);padding:var(--space-4);min-height:64px}
.step-tabs button:hover{border-color:var(--primary)}
.step-tabs button.is-active{border-color:var(--primary);box-shadow:inset 0 -3px 0 var(--primary);background:var(--primary-soft)}
.step-tabs strong,.step-tabs small{display:block}
.step-tabs small{color:var(--muted);font-size:11px}
.step-num{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--surface-muted);color:var(--muted);font-weight:700;font-size:12px;flex-shrink:0}
.step-tabs .is-active .step-num{background:var(--primary);color:var(--surface)}
.step-num.is-done{background:var(--green-soft);color:var(--green)}
.step-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-6)}
details.advanced{border:1px solid var(--border);border-radius:var(--radius);padding:0 var(--space-4);margin:var(--space-4) 0}
details.advanced summary{font-weight:600;gap:var(--space-3)}
details.advanced summary small{font-weight:400;color:var(--muted)}
details.advanced[open]{padding-bottom:var(--space-4)}
details.danger-zone summary{color:var(--red)}
.field .helptext{display:block;color:var(--muted);font-size:11px;margin-top:var(--space-1)}
.field.has-error input,.field.has-error textarea,.field.has-error select{border-color:var(--red)}
.publish-checklist ul{list-style:none;padding:0;margin:var(--space-2) 0 var(--space-6)}
.publish-checklist li{border-bottom:1px solid var(--border)}
.publish-checklist .text-button,.publish-checklist a{display:flex;align-items:center;min-height:44px;font-size:13px;padding:0}
.install-steps{padding-left:var(--space-6);color:var(--muted);font-size:13px}
.install-steps li{padding:var(--space-1) 0}
.segmented{display:flex;gap:var(--space-1);padding:var(--space-1);background:var(--surface-muted);border-radius:10px;margin:var(--space-4) 0 var(--space-6)}
.segmented button{flex:1;border:0;background:transparent;color:var(--muted);border-radius:8px;min-height:40px;font-weight:600}
.segmented button.is-active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #17203322}
.dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);text-align:center;border:2px dashed var(--border);border-radius:var(--radius);padding:var(--space-8) var(--space-4);cursor:pointer;background:var(--surface);transition:border-color .15s,background .15s;font-weight:400}
.dropzone:hover,.dropzone.is-over{border-color:var(--primary);background:var(--primary-soft)}
.dropzone.has-files{border-style:solid;border-color:var(--primary)}
.dropzone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;min-height:0}
.dropzone small{color:var(--muted);font-size:11px;max-width:420px}
.dropzone-icon{font-size:28px;color:var(--primary)}
.file-list{list-style:none;padding:0;margin:var(--space-3) 0 0;font-size:12px}
.file-list li{padding:var(--space-2) var(--space-3);background:var(--surface-muted);border-radius:6px;margin-bottom:var(--space-1);overflow-wrap:anywhere}
.file-list li.error{background:var(--red-soft);color:var(--red)}
.hint{color:var(--muted);font-size:11px;margin:var(--space-2) 0 var(--space-4)}
.intake-results ul{list-style:none;padding:0;margin:0 0 var(--space-4)}
.intake-results li{padding:var(--space-3);border-radius:8px;background:var(--red-soft);margin-bottom:var(--space-2);font-size:12px;overflow-wrap:anywhere}
.intake-results li strong{display:block}
.next-steps{padding-left:var(--space-6);font-size:15px;color:var(--text);margin:var(--space-6) 0}
.next-steps li{padding:var(--space-2) 0}
.next-steps strong{font-weight:650}
.explainer{border:1px solid var(--border);border-radius:var(--radius);padding:0 var(--space-4);background:var(--surface)}
.explainer[open]{padding-bottom:var(--space-4)}
.explainer summary{font-weight:600}
.explainer dl{grid-template-columns:110px 1fr;margin-top:var(--space-3)}
.explainer dd em{display:block;color:var(--muted);font-style:normal;margin-top:var(--space-1)}
.setup-layout .auth-intro h1{font-size:40px}
.auth-card .text-button{display:block;margin:0 0 var(--space-4);padding:0}
@media(max-width:1023px){.step-tabs{gap:var(--space-2)}.step-tabs button{min-height:52px;padding:var(--space-2);flex-direction:column;justify-content:center;text-align:center;gap:var(--space-1)}.step-tabs small{display:none}.step-tabs strong{font-size:12px}.setup-layout .auth-intro h1{font-size:30px}.explainer dl{grid-template-columns:1fr}}

/* ---------- Progress feedback: uploads, training, document status ---------- */
.training-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3)}
.training-percent{font-variant-numeric:tabular-nums;font-weight:650;color:var(--primary)}
.training-status .progress,.upload-progress .progress{height:8px;margin:var(--space-3) 0}
.progress span{transition:width .4s ease}
.training-status.is-processing .progress span,.training-status.is-indexing .progress span{min-width:6%}
.training-status.is-ready{background:var(--green-soft)}
.training-status.is-ready .training-percent,.training-status.is-ready strong{color:var(--green)}
.training-status.is-ready .progress span{background:var(--green)}
.training-status.is-failed{background:var(--red-soft)}
.progress.is-indeterminate span,.upload-progress.is-saving .progress span{background-image:linear-gradient(90deg,var(--primary) 0%,color-mix(in srgb,var(--primary) 45%,var(--surface)) 50%,var(--primary) 100%);background-size:200% 100%;animation:progress-shimmer 1.2s linear infinite}
@keyframes progress-shimmer{from{background-position:200% 0}to{background-position:0 0}}
.upload-progress{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);margin-top:var(--space-4)}
.upload-progress small{color:var(--muted);font-size:11px}
.state-pill{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap;background:var(--surface-muted);color:var(--muted)}
.state-pill.is-ready{background:var(--green-soft);color:var(--green)}
.state-pill.is-working{background:var(--primary-soft);color:var(--primary)}
.state-pill.is-waiting{background:var(--surface-muted);color:var(--muted)}
.state-pill.is-todo{background:var(--amber-soft);color:var(--amber)}
.state-pill.is-failed{background:var(--red-soft);color:var(--red)}
.spinner{width:10px;height:10px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.source-row small strong{display:inline;color:var(--text)}
@media(prefers-reduced-motion:reduce){.spinner,.progress.is-indeterminate span,.upload-progress.is-saving .progress span{animation:none}}

/* Four builder steps (booking is optional) */
.step-tabs.four{grid-template-columns:repeat(4,minmax(0,1fr))}
/* Radio choices: keep the button small and next to its label (inputs are full-width by default) */
input[type=radio]{width:18px;min-height:18px;margin:0;flex-shrink:0;accent-color:var(--primary)}
label:has(> input[type=radio]){display:flex;align-items:center;gap:var(--space-2);font-weight:500;min-height:36px}
/* Five builder steps (branding and booking are optional) */
.step-tabs.five{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(min-width:1024px){.builder-grid.wide-preview{grid-template-columns:minmax(0,1fr) minmax(320px,1.15fr)}}
/* Branding: layout picker cards with small drawings of each layout */
.layout-picker{border:0;padding:0;margin:0 0 var(--space-6)}
.layout-picker legend{font-size:12px;font-weight:600;margin-bottom:var(--space-3);padding:0}
.layout-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}
.layout-picker .layout-card{position:relative;display:flex;flex-direction:column;align-items:stretch;gap:var(--space-1);margin:0;padding:var(--space-3);border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;font-weight:400;transition:border-color .15s,background .15s}
.layout-picker .layout-card:hover{border-color:var(--primary)}
.layout-picker .layout-card:has(input:checked){border-color:var(--primary);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}
.layout-picker .layout-card:has(input:focus-visible){outline:3px solid var(--primary);outline-offset:2px}
.layout-card input{position:absolute;opacity:0;pointer-events:none}
.layout-card strong{font-size:13px}
.layout-card small{font-size:11px;color:var(--muted);line-height:1.45}
.layout-thumb{position:relative;display:block;height:92px;margin-bottom:var(--space-2);border:1px solid var(--border);border-radius:8px;background:var(--surface-muted);overflow:hidden}
.layout-thumb i{position:absolute;display:block}
.layout-thumb .t-page{left:10px;right:10px;top:10px;height:8px;border-radius:4px;background:var(--border);box-shadow:0 16px 0 -1px var(--border),0 30px 0 -1px var(--border)}
.layout-thumb .t-panel{background:var(--surface);border:1px solid var(--border);box-shadow:0 4px 12px #17203322}
.layout-thumb .t-button{background:var(--primary)}
.thumb-bubble .t-panel{right:10px;bottom:26px;width:38%;height:56%;border-radius:6px}
.thumb-bubble .t-button{right:10px;bottom:6px;width:16px;height:16px;border-radius:50%}
.thumb-sidebar .t-panel{right:0;top:0;bottom:0;width:38%;border-width:0 0 0 1px}
.thumb-sidebar .t-button{left:10px;bottom:8px;width:34%;height:10px;border-radius:999px;opacity:.35}
.thumb-spotlight .t-panel{left:22%;right:22%;top:14%;bottom:30%;border-radius:6px}
.thumb-spotlight .t-button{left:28%;right:28%;bottom:8px;height:10px;border-radius:999px;background:var(--surface);border:1.5px solid var(--primary)}
.field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}
/* Branding preview: a real page in a frame, scaled to fit */
.stage-frame{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted)}
.stage-frame iframe{display:block;border:0;transform-origin:top left;background:var(--surface)}
.device-toggle{display:inline-flex;padding:2px;border:1px solid var(--border);border-radius:var(--control-radius);background:var(--surface)}
.device-toggle button{min-height:32px;padding:0 var(--space-3);border:0;border-radius:6px;background:none;color:var(--muted);font-size:11px;font-weight:600}
.device-toggle button.is-active{background:var(--primary-soft);color:var(--primary)}
@media(max-width:1023px){.layout-options{grid-template-columns:1fr}.layout-picker .layout-card{display:grid;grid-template-columns:96px 1fr;column-gap:var(--space-3);align-items:center}.layout-thumb{grid-row:span 2;height:64px;margin:0}.field-pair{grid-template-columns:1fr}.step-tabs.five{display:flex;overflow-x:auto}.step-tabs.five button{flex:1 0 76px}}
.auth-card .google-signin{margin-top:var(--space-6)}.auth-or{display:flex;align-items:center;gap:var(--space-3);color:var(--muted);font-size:11px;margin:var(--space-4) 0 0}.auth-or::before,.auth-or::after{content:"";flex:1;border-top:1px solid var(--border)}
.card .header-actions+h3{margin-top:var(--space-6)}
/* Line icons (core/icons.py) */
.icon{display:inline-block;vertical-align:-3px;flex-shrink:0}
.sidebar nav a span .icon,.bot-icon .icon,.integration-icon .icon,.empty-icon .icon,.dropzone-icon .icon{vertical-align:middle}
/* Logo and avatar fields: drag-and-drop upload with a preview (core/templates/widgets/image_drop.html) */
.image-drop{display:flex;flex-direction:column;gap:var(--space-2)}
.image-drop-row{display:grid;grid-template-columns:112px minmax(0,1fr);gap:var(--space-3)}
.image-drop-preview{display:grid;place-items:center;min-height:88px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);color:var(--muted);overflow:hidden;padding:var(--space-2)}
.image-drop-preview img{max-width:100%;max-height:64px;object-fit:contain}
.image-drop.is-square .image-drop-preview img{width:64px;height:64px;object-fit:cover;border-radius:50%}
.dropzone.dropzone-compact{padding:var(--space-4) var(--space-3);gap:var(--space-1);margin:0}
.image-drop.is-over .dropzone{border-color:var(--primary);background:var(--primary-soft)}
.image-drop.is-uploading .dropzone{opacity:.6;pointer-events:none}
.image-drop-progress{margin:0}
.image-drop-status{font-size:11px;color:var(--muted)}
.image-drop-status:empty{display:none}
.image-drop-status.error{color:var(--red)}
.image-drop-link{display:flex;align-items:center;gap:var(--space-2)}
.image-drop-link small{white-space:nowrap;color:var(--muted);font-size:11px}
.image-drop-link input{flex:1;min-width:0}
[data-knowledge-drop]{transition:outline-color .15s,background .15s;outline:2px dashed transparent;outline-offset:-2px}
[data-knowledge-drop].is-over{outline-color:var(--primary);background:var(--primary-soft)}
.drop-hint{display:flex;align-items:center;gap:var(--space-2);font-size:11px;color:var(--muted);margin:var(--space-3) 0 0}
.follower-list{font-size:12px;color:var(--muted);margin:var(--space-1) 0 var(--space-4)}
@media(max-width:640px){.image-drop-row{grid-template-columns:1fr}.image-drop-link{flex-wrap:wrap}.image-drop-link small{width:100%}}
.image-drop [hidden],.brand-preview [hidden]{display:none!important}
.image-drop-progress{display:block}
.brand-preview [data-preview-mark]{display:inline-flex;align-items:center;gap:var(--space-2)}
.brand-preview .brand-mark{flex-shrink:0}
[data-brand-form] p:has(input[type=checkbox]){flex-wrap:wrap;row-gap:0}
[data-brand-form] p:has(input[type=checkbox]) label{margin:0}
[data-brand-form] p:has(input[type=checkbox]) .helptext{flex-basis:100%;margin-top:0}
/* Legal pages: footer links, public page, editors */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
footer{align-items:center;gap:var(--space-4);flex-wrap:wrap}
.footer-links{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4)}
.footer-links a{color:var(--muted);font-size:11px}
.footer-links a:hover{color:var(--text)}
.legal-layout{display:grid;grid-template-columns:220px minmax(0,760px);gap:var(--space-12);justify-content:center;align-items:start}
.legal-nav{position:sticky;top:var(--space-6);display:flex;flex-direction:column;gap:var(--space-8)}
.legal-nav nav{display:flex;flex-direction:column;gap:var(--space-1)}
.legal-nav-title{font-size:15px;font-weight:650;color:var(--text);margin:0 0 var(--space-2)}
.legal-nav a{color:var(--muted);font-size:14px;padding:var(--space-1) 0}
.legal-nav a:hover,.legal-nav a.is-current{color:var(--text);text-decoration:none}
.legal-nav a.is-current{font-weight:600}
.legal-toc a{font-size:12px}
.legal-meta{color:var(--muted);font-size:13px;margin:var(--space-3) 0 var(--space-8)}
.legal-body{font-size:15px;line-height:1.75;overflow-wrap:anywhere}
.legal-body h2{font-size:20px;margin:var(--space-8) 0 var(--space-3);scroll-margin-top:var(--space-6)}
.legal-body h3{font-size:16px;margin:var(--space-6) 0 var(--space-2)}
.legal-body p{margin:0 0 var(--space-4)}
.legal-body ul{margin:0 0 var(--space-4);padding-left:var(--space-6)}
.legal-body li{margin-bottom:var(--space-2)}
.legal-body a{text-decoration:underline}
.legal-preview{font-size:13px;max-height:70vh;overflow:auto}
.legal-preview h2{font-size:16px}
.legal-edit{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:var(--space-6);align-items:start}
.legal-editor{font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}
.legal-help ul{padding-left:var(--space-6);font-size:12px;color:var(--muted)}
.legal-help code,.placeholder-list code{font-size:11px;background:var(--surface-muted);padding:1px var(--space-1);border-radius:4px}
.placeholder-list{grid-template-columns:auto 1fr;margin-top:var(--space-3)}
.row-actions{white-space:nowrap;text-align:right}
@media(max-width:1023px){.legal-layout,.legal-edit{grid-template-columns:1fr;gap:var(--space-6)}.legal-nav{position:static}.legal-toc{display:none}.row-actions{white-space:normal}}
.legal-details{max-width:720px}
.footer-brand span{margin-left:var(--space-3);padding-left:var(--space-3);border-left:1px solid var(--border)}
