:root {
  color-scheme: light;
  --font: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --fs-base: 13px;
  --bg: #f3f5f8; --surface: #fff; --surface-2: #f7f8fa; --text: #172033;
  --muted: #536078; --border: #d9dee8; --border-strong: #c6cedc;
  --primary: #3158c9; --primary-hover: #2647a8;
  --focus: #5277db; --danger: #b83a35; --success: #187451; --warning: #a45f08; --sidebar: #182131;
  --sidebar-text: #d5dceb; --shadow: 0 1px 3px rgb(23 32 51 / 10%); --shadow-pop: 0 8px 24px rgb(23 32 51 / 16%); --shadow-modal: 0 18px 48px rgb(23 32 51 / 22%);
  --radius-sm: 4px; --radius: 6px; --radius-lg: 10px;
  --space-1: .2rem; --space-2: .4rem; --space-3: .6rem; --space-4: .85rem;
  --space-5: 1.15rem; --space-6: 1.5rem; --sidebar-width: 236px; --sidebar-collapsed-width: 56px;
  --ease-state: cubic-bezier(.22,1,.36,1); --duration-state: 160ms;
}
[data-theme="dark"] { color-scheme: dark; --bg:#0d111b;--surface:#151b28;--surface-2:#1b2333;--text:#edf2fb;--muted:#9aa7bd;--border:#293348;--border-strong:#36425c;--primary:#6f8cff;--primary-hover:#8ba2ff;--focus:#8ba2ff;--sidebar:#090d15;--sidebar-text:#cbd5e6;--shadow:0 2px 10px rgb(0 0 0 / 35%);--shadow-pop:0 8px 24px rgb(0 0 0 / 45%); }
@media (prefers-color-scheme: dark) { [data-theme="system"] { color-scheme:dark;--bg:#0d111b;--surface:#151b28;--surface-2:#1b2333;--text:#edf2fb;--muted:#9aa7bd;--border:#293348;--border-strong:#36425c;--primary:#6f8cff;--primary-hover:#8ba2ff;--focus:#8ba2ff;--sidebar:#090d15;--sidebar-text:#cbd5e6;--shadow:0 2px 10px rgb(0 0 0 / 35%);--shadow-pop:0 8px 24px rgb(0 0 0 / 45%); } }
* { box-sizing:border-box } html { font-family:var(--font); font-size:var(--fs-base); background:var(--bg); color:var(--text) } body { margin:0; min-height:100vh; background:var(--bg) } button,input,select,textarea { font:inherit } button,a { -webkit-tap-highlight-color:transparent } :focus-visible { outline:2px solid var(--focus); outline-offset:1px }
h1,h2,h3,p { margin-top:0 } h1 { font-size:1.3rem;letter-spacing:-.01em;margin-bottom:.25rem;font-weight:650 } h2 { font-size:1.02rem;letter-spacing:-.01em } h3 { font-size:.92rem } .muted { color:var(--muted) } .eyebrow { color:var(--primary);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.4rem }
.login-page { background:linear-gradient(135deg,#101b3d 0%,#16285b 45%,#243c7c 100%);display:grid;place-items:center;padding:2rem }.login-shell { width:min(920px,100%);display:grid;grid-template-columns:1.1fr .9fr;overflow:hidden;border-radius:10px;box-shadow:0 18px 50px rgb(3 8 25 / 30%);background:var(--surface) }.login-brand { color:#fff;padding:clamp(2.5rem,7vw,5rem);display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 10% 10%,rgb(114 142 255 / 25%),transparent 38%),linear-gradient(145deg,#111e47,#243e85) }.login-brand h1 { font-size:clamp(2.25rem,5vw,3.65rem);line-height:1.04 }.login-brand>p:last-child { color:#c8d4f4;max-width:34rem;line-height:1.65 }.brand-mark { width:46px;height:46px;display:grid;place-items:center;background:linear-gradient(145deg,#5f7cff,#85a2ff);border-radius:8px;color:#fff;font-weight:900;font-size:1.25rem;box-shadow:0 8px 22px rgb(75 104 220 / 30%);margin-bottom:1.6rem }.brand-mark.small { width:30px;height:30px;border-radius:6px;font-size:.9rem;margin:0 }.login-card { padding:clamp(1.75rem,4vw,3.25rem);display:flex;flex-direction:column;justify-content:center;gap:1.3rem }.login-card h2 { font-size:1.5rem;margin-bottom:.3rem }.stack-lg { display:grid;gap:.85rem } label { display:grid;gap:.3rem;font-size:.8rem;font-weight:600 } input,select,textarea { width:100%;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.45rem .6rem;background:var(--surface);color:var(--text) } input:focus,select:focus,textarea:focus { border-color:var(--primary);outline:2px solid color-mix(in srgb,var(--primary) 22%,transparent);outline-offset:0 }.login-footnote { text-align:center;color:var(--muted);font-size:.74rem;margin:0 }.alert { border-radius:var(--radius-sm);padding:.65rem .85rem;font-size:.82rem }.alert-error { background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 25%,transparent) }
.button { border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.38rem .7rem;color:var(--text);background:var(--surface);font-weight:600;font-size:.8rem;line-height:1.3;cursor:pointer }.button:hover { background:var(--surface-2);border-color:var(--muted) }.button:active { background:var(--border) }.button-primary { background:var(--primary);border-color:var(--primary);color:#fff }.button-primary:hover { background:var(--primary-hover);border-color:var(--primary-hover) }.button-quiet { border:1px solid transparent;color:var(--primary);background:transparent;padding:.28rem .45rem }.button-quiet:hover { background:color-mix(in srgb,var(--primary) 8%,transparent);border-color:transparent }.icon-button { width:30px;height:30px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);display:grid;place-items:center;cursor:pointer }.icon-button:hover { background:var(--surface-2);color:var(--text) }.icon-button:disabled { opacity:.4;cursor:not-allowed }
.app-page { display:grid;grid-template-columns:var(--sidebar-width) 1fr }.sidebar { position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);background:var(--sidebar);color:var(--sidebar-text);padding:.75rem .6rem;display:flex;flex-direction:column;gap:.85rem;z-index:20;border-right:1px solid rgb(255 255 255 / 6%) }.brand { display:flex;align-items:center;gap:.6rem;color:#fff;text-decoration:none;padding:.3rem .4rem }.brand strong { font-size:.98rem }.nav-tabs { display:grid;grid-template-columns:1fr 1fr;background:rgb(255 255 255 / 6%);border-radius:var(--radius-sm);padding:2px }.nav-tabs button { border:0;border-radius:2px;padding:.38rem;background:transparent;color:#9caac3;font-size:.76rem;font-weight:600;cursor:pointer }.nav-tabs button.active { background:rgb(255 255 255 / 12%);color:#fff }.sidebar nav { display:grid;gap:.1rem }.nav-item { display:flex;align-items:center;gap:.6rem;padding:.42rem .6rem;border-radius:var(--radius-sm);color:#aebbd0;text-decoration:none;font-size:.82rem;font-weight:500 }.nav-item:hover,.nav-item.active { background:rgb(255 255 255 / 8%);color:#fff }.nav-item.active { font-weight:600;box-shadow:inset 2px 0 var(--focus) }.sidebar-footer { margin-top:auto;border-top:1px solid rgb(255 255 255 / 8%);padding:.7rem .5rem 0;font-size:.73rem;color:#92a1bb }.status-dot { display:inline-block;width:7px;height:7px;border-radius:50%;background:#3dd597;margin-right:.5rem;box-shadow:0 0 0 3px rgb(61 213 151 / 12%) }
.app-main { grid-column:2;min-width:0 }.topbar { height:50px;position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:.75rem;padding:0 1rem;background:var(--surface);border-bottom:1px solid var(--border-strong) }.mobile-menu { display:none }.global-search { width:min(520px,50vw);position:relative;margin-right:auto }.global-search>span { position:absolute;left:.6rem;top:.42rem;color:var(--muted);font-size:1rem }.global-search input { padding-left:2rem;padding-right:2.6rem;background:var(--surface-2);border-color:var(--border) }.global-search kbd { position:absolute;right:.45rem;top:.4rem;border:1px solid var(--border-strong);border-radius:3px;padding:.12rem .3rem;color:var(--muted);font-size:.64rem;background:var(--surface) }.top-actions { display:flex;align-items:center;gap:.35rem }.user-menu { position:relative;margin-left:.25rem }.user-menu summary { list-style:none;display:flex;align-items:center;gap:.45rem;cursor:pointer;font-size:.8rem;font-weight:600 }.user-menu summary::-webkit-details-marker { display:none }.avatar { width:30px;height:30px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--primary) 13%,var(--surface));color:var(--primary);display:grid;place-items:center;font-size:.78rem;font-weight:700 }.menu-popover { position:absolute;right:0;top:40px;width:220px;padding:.7rem;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-pop) }.menu-title { color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700 }.theme-options { display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem }.theme-options button,.menu-action { border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);padding:.38rem;color:var(--text);font-size:.72rem;cursor:pointer }.menu-action { width:100%;margin-top:.6rem;color:var(--danger) }
.workspace { padding:clamp(.85rem,1.8vw,1.4rem);max-width:1600px;margin:0 auto }.page-heading { display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.9rem }.breadcrumb { color:var(--muted);font-size:.74rem;margin-bottom:.3rem }.context-pill,.schema-pill { display:inline-flex;padding:.3rem .55rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);font-size:.72rem;color:var(--muted);white-space:nowrap }.schema-pill { font-family:ui-monospace,monospace }.metrics { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-bottom:.7rem }.metric-card { position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem .9rem;box-shadow:var(--shadow) }.metric-card::before { content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--metric,#5675ef) }.metric-card p { color:var(--muted);font-size:.74rem;margin-bottom:.4rem }.metric-card strong { display:block;font-size:1.5rem;letter-spacing:-.02em;margin-bottom:.25rem }.metric-card span { color:var(--muted);font-size:.7rem }.accent-violet{--metric:#8b5cf6}.accent-green{--metric:#22a875}.accent-amber{--metric:#e19a30}.dashboard-grid { display:grid;grid-template-columns:1.6fr 1fr;gap:.7rem }.panel { background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.9rem }.panel-heading { display:flex;align-items:start;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--border);padding-bottom:.65rem }.panel-heading h2 { margin:0 }.empty-state { min-height:220px;display:grid;place-content:center;text-align:center;color:var(--muted) }.empty-state h3 { color:var(--text);margin-bottom:.3rem }.empty-icon { width:40px;height:40px;border-radius:var(--radius);display:grid;place-items:center;margin:0 auto .8rem;background:var(--surface-2);font-size:1.2rem }.detail-list { margin:0 }.detail-list>div { display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--border);font-size:.8rem }.detail-list>div:last-child { border:0 }.detail-list dt { color:var(--muted) }.detail-list dd { margin:0;font-weight:600;text-align:right }
.data-panel { padding:0;overflow:hidden }.table-toolbar { display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.55rem .65rem;background:var(--surface-2);border-bottom:1px solid var(--border-strong) }.table-toolbar>div { display:flex;gap:.3rem }.quick-search { position:relative;width:min(340px,42%) }.quick-search span { position:absolute;left:.55rem;top:.42rem;color:var(--muted) }.quick-search input { padding-left:1.8rem }.table-wrap { overflow-x:auto } table { border-collapse:collapse;width:100%;font-size:.78rem } th,td { padding:.4rem .65rem;text-align:left;border-bottom:1px solid var(--border);border-right:1px solid var(--border);white-space:nowrap } th:last-child,td:last-child { border-right:0 } th { position:sticky;top:0;background:var(--surface-2);color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border-strong);z-index:1 } tbody tr:nth-child(even){background:color-mix(in srgb,var(--surface-2) 55%,var(--surface))} tbody tr:hover,tbody tr:focus { background:color-mix(in srgb,var(--primary) 7%,var(--surface));outline:0 }.code-badge { display:inline-flex;padding:.1rem .35rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--primary);font-weight:700 }.mono { font-family:ui-monospace,monospace;color:var(--muted);font-size:.7rem }.table-footer { display:flex;align-items:center;justify-content:space-between;padding:.45rem .65rem;color:var(--muted);font-size:.73rem;background:var(--surface-2);border-top:1px solid var(--border-strong) }.table-footer>div { display:flex;align-items:center;gap:.5rem }
@media(max-width:1000px){.metrics{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.sidebar{transform:translateX(-100%)}.app-page{display:block}.app-main{grid-column:1}.mobile-menu{display:grid}.global-search{width:auto;flex:1}}
@media(max-width:700px){.login-page{padding:0}.login-shell{min-height:100vh;border-radius:0;grid-template-columns:1fr}.login-brand{display:none}.login-card{padding:2rem}.metrics{grid-template-columns:1fr}.topbar{padding:0 .8rem}.top-actions>.icon-button,.user-menu summary>span:last-child{display:none}.workspace{padding:1rem}.page-heading,.table-toolbar{align-items:stretch;flex-direction:column}.quick-search{width:100%}.table-toolbar>div{overflow-x:auto}.context-pill,.schema-pill{align-self:flex-start}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.org-switch select,.topbar-org{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);padding:.32rem .55rem;font:inherit;font-size:.78rem;color:var(--text);max-width:220px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hidden{display:none!important}.global-search-wrap{position:relative;margin-right:auto;min-width:min(520px,50vw)}.search-results{position:absolute;top:calc(100% + .25rem);left:0;right:0;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:.25rem;z-index:30;max-height:320px;overflow:auto}.search-result{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;border:0;background:transparent;padding:.45rem .6rem;border-radius:var(--radius-sm);text-align:left;cursor:pointer}.search-result:hover,.search-result.active{background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.search-result span{color:var(--muted);font-size:.72rem;font-family:ui-monospace,monospace}.sidebar-empty{color:var(--sidebar-text);font-size:.78rem;padding:.5rem .8rem;opacity:.75}.menu-link{display:block;margin-top:.7rem;color:var(--primary);text-decoration:none;font-size:.78rem;font-weight:700}.alert-success{background:color-mix(in srgb,var(--success) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--success) 20%,transparent);color:var(--success);border-radius:var(--radius-sm);padding:.8rem 1rem;margin-bottom:1rem}.secret-box{word-break:break-all;background:var(--surface-2);padding:.75rem;border-radius:var(--radius);font-size:.75rem}.session-list{list-style:none;padding:0;margin:1rem 0 0}.session-list li{display:grid;gap:.2rem;padding:.75rem 0;border-bottom:1px solid var(--border);font-size:.78rem}.session-list li.current{color:var(--primary)}.heading-actions{display:flex;align-items:center;gap:.5rem}.modal-backdrop{position:fixed;inset:0;background:rgb(15 23 42 / 45%);display:grid;place-items:center;padding:1rem;z-index:50}.modal{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(560px,100%);box-shadow:var(--shadow-pop)}.modal-wide{width:min(860px,100%)}.modal-header,.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .9rem;border-bottom:1px solid var(--border-strong);background:var(--surface-2)}.modal-header h2{font-size:.95rem}.modal-header .modal-title{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0;padding-right:.5rem}.modal-record-ref{font-weight:500;color:var(--muted);font-size:.9em}.modal-footer{border-bottom:0;border-top:1px solid var(--border-strong);justify-content:flex-end;gap:.5rem}.modal-body{padding:.9rem}.modal-close{font-size:1.1rem}.stack-lg{display:grid;gap:1rem}.row-actions{display:flex;gap:.35rem;flex-wrap:wrap}.badge{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:999px;background:var(--danger);color:#fff;font-size:.65rem;padding:0 .35rem;margin-left:.15rem}.toast{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.6rem .8rem;margin:.4rem;box-shadow:var(--shadow-pop)}.toast strong{display:block;margin-bottom:.15rem}#toast-root{position:fixed;right:1rem;bottom:1rem;z-index:60;width:min(360px,90vw)}.inbox-panel,.side-panel{position:fixed;top:56px;right:1rem;width:min(360px,90vw);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-pop);padding:.4rem;z-index:40;max-height:62vh;overflow:auto}.side-panel-item{display:grid;gap:.2rem;width:100%;text-align:left;border:0;background:transparent;padding:.75rem;border-radius:var(--radius);cursor:pointer}.side-panel-item.static{cursor:default}.side-panel-item:hover:not(.static){background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.settings-tabs{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1rem}.settings-tab{padding:.4rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);text-decoration:none;font-size:.77rem;font-weight:600}.settings-tab.active{background:color-mix(in srgb,var(--primary) 12%,var(--surface));border-color:color-mix(in srgb,var(--primary) 35%,var(--border));color:var(--primary)}.inbox-item{display:grid;gap:.2rem;width:100%;text-align:left;border:0;background:transparent;padding:.75rem;border-radius:var(--radius);cursor:pointer}.inbox-item:hover{background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.audit-data{max-width:320px;white-space:normal;word-break:break-word;font-size:.72rem}
.modal-sm{width:min(420px,100%)}.checkbox-row{display:flex;align-items:center;gap:.55rem;font-weight:600}.checkbox-row input{width:auto}.saved-filters{margin:0;padding-left:0;list-style:none;color:var(--muted);font-size:.78rem}.saved-filters li{display:flex;align-items:center;gap:.35rem;margin-bottom:.35rem}.link-button{border:0;background:transparent;color:var(--primary);font-weight:700;cursor:pointer;padding:0}.button-danger-text{color:var(--danger,#d64545)}.button-danger{border-color:color-mix(in srgb,var(--danger,#d64545) 40%,transparent);color:var(--danger,#d64545)}.toolbar-actions{display:flex;gap:.45rem}.inline-form{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.35rem}
.blockly-root{height:480px;border:1px solid var(--border);border-radius:12px;margin-top:.75rem}
.modal-wide{width:min(920px,96vw)}
.bpmn-canvas{position:relative;min-height:420px;background:var(--surface-2);border:1px dashed var(--border);border-radius:12px;overflow:hidden}.bpmn-canvas svg{position:absolute;inset:0;pointer-events:none}.bpmn-node{position:absolute;min-width:140px;padding:.55rem .7rem;border:2px solid var(--border);border-radius:10px;background:var(--surface);box-shadow:var(--shadow);cursor:grab;z-index:2}.bpmn-node strong{display:block;font-size:.68rem;color:var(--muted)}.bpmn-node.selected{border-color:var(--primary)}.bpmn-canvas-readonly .bpmn-node{cursor:default}.bpmn-node-current{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 35%,transparent)}.bpmn-node-meta{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem;font-size:.68rem;color:var(--muted)}.designer-toolbar{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}
.markdown-body{line-height:1.55}.markdown-body h1,.markdown-body h2,.markdown-body h3{margin:.75rem 0 .35rem}.markdown-body p{margin:.5rem 0}.markdown-body code{background:var(--surface-2);padding:.1rem .35rem;border-radius:4px;font-size:.85em}.markdown-body pre{background:var(--surface-2);padding:.75rem;border-radius:8px;overflow:auto}.markdown-body a{color:var(--primary)}
.tab-bar{display:flex;gap:.2rem;margin-bottom:.65rem;border-bottom:1px solid var(--border-strong)}.tab{border:0;background:transparent;padding:.4rem .65rem;font-weight:600;font-size:.8rem;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--primary)}.tab-panel{display:none}.tab-panel.active{display:block}
.modal-tabs{display:flex;gap:.15rem;padding:0 .9rem;border-bottom:1px solid var(--border-strong);background:var(--surface-2)}.modal-tab{border:0;background:transparent;padding:.45rem .7rem;font-weight:600;font-size:.8rem;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent}.modal-tab:hover{color:var(--text)}.modal-tab.active{color:var(--text);border-bottom-color:var(--primary)}
.field-widget-actions{display:inline-flex;gap:.25rem;margin-left:.35rem;vertical-align:middle}.field-tz-select{margin-left:.35rem;max-width:220px}
.wizard-layout{display:grid;grid-template-columns:1fr min(240px,32%);gap:1rem}.wizard-vars{padding:.75rem}.var-list{display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}
[data-density="compact"]{--space-xs:.15rem;--space-sm:.28rem;--space-md:.45rem;--space-lg:.7rem}[data-density="compact"] th,[data-density="compact"] td{padding:.28rem .5rem;font-size:.74rem}[data-density="compact"] .button{padding:.3rem .55rem;font-size:.76rem}[data-density="ultra-compact"]{--space-xs:.1rem;--space-sm:.2rem;--space-md:.32rem;--space-lg:.5rem}[data-density="ultra-compact"] th,[data-density="ultra-compact"] td{padding:.16rem .4rem;font-size:.7rem}[data-density="ultra-compact"] .button{padding:.22rem .45rem;font-size:.72rem}[data-density="ultra-compact"] .table-toolbar,[data-density="ultra-compact"] .table-footer{padding:.35rem .5rem}
.table-wrap{overflow-x:auto;overflow-y:hidden}.toolbar-groups{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center}.toolbar-dropdown{position:relative}.toolbar-dropdown summary{list-style:none;cursor:pointer}.toolbar-dropdown summary::-webkit-details-marker{display:none}.dropdown-menu{position:absolute;top:calc(100% + 3px);right:0;z-index:30;min-width:180px;padding:.25rem;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-pop)}.dropdown-item{display:block;width:100%;text-align:left;padding:.38rem .55rem;border:0;border-radius:var(--radius-sm);background:transparent;font-size:.8rem;cursor:pointer}.dropdown-item:hover{background:var(--surface-2)}.dropdown-empty{display:block;padding:.38rem .55rem;color:var(--muted);font-size:.78rem}
.grid-context-menu,.col-filter-popover{z-index:60;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:.25rem;box-shadow:var(--shadow-pop);display:flex;flex-direction:column;gap:.1rem}.grid-context-menu button,.col-filter-popover button{border:0;border-radius:var(--radius-sm);background:transparent;text-align:left;padding:.3rem .5rem;font-size:.8rem;cursor:pointer}.grid-context-menu button:hover,.col-filter-popover button:hover{background:var(--surface-2)}.grid-row-focused{outline:2px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:-2px}.th-inner{display:flex;align-items:center;gap:.1rem}.col-filter-btn{font-size:.72rem;width:20px;height:20px;padding:0}
@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:transform .2s}.sidebar.sidebar-open{transform:translateX(0)}}
@media print{.no-print{display:none!important}body.print-page,.print-page{background:#fff;color:#000}}
/* --- Traditional/compact ERP refinements --- */
.stack-sm{display:grid;gap:.45rem}.stack-md{display:grid;gap:.6rem}
textarea{min-height:5rem;line-height:1.4;resize:vertical}
select{padding-right:1.6rem}
/* Compact two-column form layout inside edit/add modals */
[data-form-panel]{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem .85rem}
[data-form-panel]>label{font-size:.78rem;font-weight:600;gap:.22rem}
[data-form-panel]>label:has(textarea),[data-form-panel]>label[data-field-type="text"]:has(textarea),[data-form-panel] .field-full{grid-column:1/-1}
[data-form-panel]>p{grid-column:1/-1}
[data-form-panel] input[type="checkbox"]{width:auto;justify-self:start}
@media(max-width:640px){[data-form-panel]{grid-template-columns:1fr}}
/* Grid utility columns: selection + actions kept narrow */
:root{--grid-check-size:14px;--grid-action-size:16px}
[data-density="compact"]{--grid-check-size:13px;--grid-action-size:15px}
[data-density="ultra-compact"]{--grid-check-size:12px;--grid-action-size:14px}
.col-select{width:30px;min-width:30px;text-align:center;padding-left:.35rem;padding-right:.35rem;vertical-align:middle}
.col-select input[type="checkbox"],.grid-row-select,[data-grid-select-all]{width:var(--grid-check-size);height:var(--grid-check-size);margin:0 auto;padding:0;display:block;cursor:pointer;flex-shrink:0}
.col-actions{width:1%;min-width:calc(var(--grid-action-size) + 6px);white-space:nowrap;padding:.2rem .35rem;vertical-align:middle}
td.row-actions,.row-actions{display:flex;align-items:center;justify-content:center;gap:0;flex-wrap:nowrap;position:relative;padding:.15rem .25rem}
.row-action-menu{position:relative;display:inline-flex;align-items:center;justify-content:center;line-height:1}
.row-action-menu summary{list-style:none;cursor:pointer;width:var(--grid-action-size);height:var(--grid-action-size);min-width:var(--grid-action-size);min-height:var(--grid-action-size);padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);font-size:.72rem;line-height:1}
.row-action-menu summary::-webkit-details-marker{display:none}
.row-action-dropdown{left:auto;right:0;min-width:190px}
.dropdown-item-danger{color:var(--danger)}
.dropdown-item-form{display:block;margin:0;padding:0}
.dropdown-item-form button{width:100%;text-align:left}
.grid-footer-summary{white-space:nowrap}
.field-label{display:flex;flex-direction:column;gap:.25rem}
.field-input-row{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.field-input-row select,.field-input-row input:not([type="checkbox"]){flex:1;min-width:160px}
.field-input-row>[data-fk-lookup-open]{flex:0 0 auto;order:-1;width:28px;height:28px;min-width:28px;min-height:28px;font-size:.78rem}
.field-input-row .fk-display{cursor:pointer;caret-color:transparent}
.field-input-row .fk-display::selection{background:transparent}
.data-grid tbody td input[type="checkbox"]:not(.grid-row-select){width:auto;margin:0}
.grid-row-select,[data-grid-select-all]{cursor:pointer}
/* Field widget action buttons (calendar, search, +, calculator) compact */
.field-widget-actions .icon-button{width:24px;height:24px;font-size:.8rem}
.field-tz-select{padding:.32rem .45rem;font-size:.76rem}
/* Saved filters / inline forms */
.saved-filters li{padding:.25rem 0}.inline-form{gap:.25rem}
/* Tighter fieldset in filter modal */
fieldset{border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.5rem .6rem;margin:0}
fieldset legend{font-size:.74rem;color:var(--muted);padding:0 .3rem}
/* Wizard panels */
.wizard-layout{gap:.7rem}.wizard-vars{padding:.6rem}
/* Badge squared for a more utilitarian look */
.badge{border-radius:var(--radius-sm)}
/* Grid context menu divider */
.grid-context-menu hr{border:0;border-top:1px solid var(--border);margin:.2rem .15rem}
/* Column filter popover (multi-condition) */
.col-filter-popover{min-width:260px;gap:.4rem;padding:.5rem}
.col-filter-popover .cf-head{font-size:.78rem;color:var(--text);padding:0 .1rem}
.col-filter-popover .cf-logic-row{display:flex;align-items:center;gap:.4rem;font-size:.76rem;color:var(--muted)}
.col-filter-popover .cf-logic-row select{width:auto;flex:1}
.col-filter-popover .cf-conds{display:flex;flex-direction:column;gap:.3rem}
.col-filter-popover .cf-cond{display:grid;grid-template-columns:1fr 1fr 24px;gap:.25rem;align-items:center}
.col-filter-popover .cf-cond .icon-button{width:24px;height:24px}
.col-filter-popover .cf-op,.col-filter-popover .cf-val{padding:.3rem .4rem;font-size:.76rem}
.col-filter-popover .cf-actions{display:flex;gap:.3rem;justify-content:flex-end;margin-top:.2rem}
.col-filter-popover .cf-actions .cf-add{margin-right:auto}
.scope-switch{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:.6rem}
.scope-tab{padding:.4rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--muted);text-decoration:none;font-size:.77rem;font-weight:600}
.scope-tab.active{background:color-mix(in srgb,var(--primary) 14%,var(--surface));border-color:color-mix(in srgb,var(--primary) 40%,var(--border));color:var(--primary)}
.typography-grid{width:100%;border-collapse:collapse}
.typography-grid th{position:static}
.typography-grid td{vertical-align:middle}
.typography-grid input,.typography-grid select{padding:.3rem .45rem;font-size:.78rem}
.menu-tree{display:flex;flex-direction:column;gap:.05rem;overflow-y:auto}
.menu-tree .nav-ico{display:inline-flex;width:1.1rem;justify-content:center;flex:none}
.menu-tree .nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-group{display:flex;align-items:center;gap:.5rem;width:100%;border:0;background:transparent;color:#aebbd0;font:inherit;font-size:.82rem;font-weight:600;text-align:left;padding:.42rem .6rem;border-radius:var(--radius-sm);cursor:pointer}
.nav-group:hover{background:rgb(255 255 255 / 8%);color:#fff}
.nav-caret{display:inline-flex;width:.8rem;justify-content:center;flex:none;transition:transform .15s;font-size:.7rem;color:#7c8aa5}
.nav-group.open>.nav-caret{transform:rotate(90deg)}
.nav-children{display:flex;flex-direction:column;gap:.05rem;margin-left:.6rem;padding-left:.35rem;border-left:1px solid rgb(255 255 255 / 8%)}
.nav-children.collapsed{display:none}
.menu-tree .nav-item{display:flex;align-items:center;gap:.5rem}
.nav-item.nav-disabled{color:rgb(174 187 208 / 45%);cursor:default}
.nav-item.nav-disabled:hover{background:transparent}
.nav-item.nav-admin{margin-top:.35rem;border-top:1px solid rgb(255 255 255 / 8%);padding-top:.55rem}

/* OwlERP interface refinement: restrained surfaces, stronger hierarchy and complete states. */
body{line-height:1.45}
h1,h2,h3{color:var(--text);text-wrap:balance}
p{line-height:1.55;text-wrap:pretty}
a{color:var(--primary)}
button,input,select,textarea{transition:border-color var(--duration-state) var(--ease-state),background-color var(--duration-state) var(--ease-state),color var(--duration-state) var(--ease-state),box-shadow var(--duration-state) var(--ease-state),transform var(--duration-state) var(--ease-state)}
button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.58}
input::placeholder,textarea::placeholder{color:color-mix(in srgb,var(--muted) 92%,var(--text))}
.button:active:not(:disabled),.icon-button:active:not(:disabled){transform:translateY(1px)}
.button-primary{box-shadow:0 1px 2px rgb(23 32 51 / 16%)}
.button-primary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.icon-button{position:relative;width:32px;height:32px;color:var(--muted)}
.icon-button svg,.avatar svg,.empty-icon svg,.login-submit svg,.login-footnote svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.icon-button:hover{border-color:var(--border-strong);color:var(--text)}
.icon-button:focus-visible{outline-offset:2px}

.brand{min-height:38px;padding:.25rem .45rem}
.brand-mark{position:relative;background:#5675e8;box-shadow:none;border-radius:var(--radius);isolation:isolate}
.brand-mark::before,.brand-mark::after{content:"";position:absolute;top:34%;width:22%;aspect-ratio:1;border-radius:50%;background:#fff;z-index:1}
.brand-mark::before{left:22%}.brand-mark::after{right:22%}
.brand-core{position:absolute;left:50%;top:51%;width:12%;aspect-ratio:1;border-radius:50%;background:#182131;transform:translate(-50%,-50%);z-index:2}
.brand strong{letter-spacing:-.01em}
.sidebar{padding:.8rem .65rem .65rem;gap:.75rem}
.sidebar nav{min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgb(255 255 255 / 18%) transparent}
.nav-tabs{padding:3px;background:rgb(255 255 255 / 5%);border:1px solid rgb(255 255 255 / 7%)}
.nav-tabs button{min-height:30px;color:#aeb9cf}
.nav-tabs button:hover{color:#fff;background:rgb(255 255 255 / 6%)}
.nav-tabs button.active{background:rgb(255 255 255 / 14%);box-shadow:0 1px 2px rgb(0 0 0 / 16%)}
.nav-item,.nav-group{min-height:31px}
.nav-item.active{background:rgb(82 119 219 / 22%);box-shadow:none;color:#fff}
.nav-item.active .nav-ico{color:#8fa9f2}
.nav-item:focus-visible,.nav-group:focus-visible,.nav-tab:focus-visible{outline-color:#8fa9f2;outline-offset:0}
.sidebar-footer{display:flex;align-items:center;min-height:34px}
.status-dot{flex:none;background:#45c692;box-shadow:0 0 0 3px rgb(69 198 146 / 13%)}
.sidebar-scrim{display:none}

.topbar{height:56px;padding:0 1.15rem;gap:.65rem;background:color-mix(in srgb,var(--surface) 96%,var(--bg));border-color:var(--border)}
.global-search-wrap{min-width:min(560px,48vw)}
.global-search{width:100%}
.global-search input{height:34px;background:var(--surface);border-color:var(--border-strong);padding-left:2.1rem}
.global-search input:hover{border-color:color-mix(in srgb,var(--border-strong) 65%,var(--muted))}
.global-search>span{left:.7rem;top:.48rem}
.global-search kbd{top:.45rem;right:.5rem;background:var(--surface-2);box-shadow:inset 0 -1px 0 var(--border)}
.topbar-org{max-width:220px;overflow:hidden;text-overflow:ellipsis}
.top-actions{gap:.4rem}
.user-menu summary{min-height:36px;padding:.2rem .25rem .2rem .35rem;border-radius:var(--radius-sm)}
.user-menu summary:hover{background:var(--surface-2)}
.avatar{width:30px;height:30px}
.avatar svg{width:16px;height:16px}
.user-caret{width:14px;height:14px;fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform var(--duration-state) var(--ease-state)}
.user-menu[open] .user-caret{transform:rotate(180deg)}
.menu-popover{top:44px;width:236px;padding:.75rem}
.menu-title{margin:.65rem 0 .35rem;color:var(--muted);letter-spacing:.04em}
.menu-title:first-child{margin-top:0}
.menu-link{padding:.35rem 0;margin-top:.2rem}
.menu-action{min-height:32px;background:transparent;border-color:color-mix(in srgb,var(--danger) 30%,var(--border));text-align:left;padding-inline:.55rem}
.menu-action:hover{background:color-mix(in srgb,var(--danger) 8%,var(--surface))}
.badge{position:absolute;top:-4px;right:-4px;border:2px solid var(--surface);min-width:17px;height:17px;margin:0}

.workspace{padding:1.4rem 1.5rem 2rem}
.page-heading{align-items:center;margin-bottom:1.15rem}
.page-heading h1{font-size:1.4rem;margin-bottom:.3rem}
.page-heading .muted{margin:0;max-width:68ch}
.breadcrumb{display:flex;align-items:center;gap:.35rem;margin-bottom:.45rem;color:var(--muted)}
.context-pill,.schema-pill{min-height:28px;align-items:center;background:var(--surface);border-color:var(--border);padding:.28rem .6rem}

.operations-summary{display:grid;grid-template-columns:190px minmax(0,1fr);align-items:stretch;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.8rem;overflow:hidden}
.summary-intro{padding:.9rem 1rem;background:var(--surface-2);border-right:1px solid var(--border)}
.summary-intro h2{font-size:.9rem;margin:0 0 .25rem}
.summary-intro p{font-size:.72rem;color:var(--muted);margin:0}
.summary-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}
.summary-item{position:relative;padding:.72rem .9rem;border-left:1px solid var(--border);min-width:0}
.summary-item:first-child{border-left:0}
.summary-item dt{display:flex;align-items:center;gap:.45rem;color:var(--muted);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary-item dd{margin:.18rem 0 .05rem;font-size:1.28rem;line-height:1.15;font-weight:680;letter-spacing:-.02em;color:var(--text)}
.summary-item>span:last-child{display:block;color:var(--muted);font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary-dot{width:7px;height:7px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent);flex:none}
.summary-dot.task{background:#7656ba;box-shadow:0 0 0 3px rgb(118 86 186 / 12%)}
.summary-dot.success{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 12%,transparent)}
.summary-dot.warning{background:var(--warning);box-shadow:0 0 0 3px color-mix(in srgb,var(--warning) 12%,transparent)}

.dashboard-grid{grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr);gap:.8rem}
.panel{border-color:var(--border);box-shadow:none;padding:1rem}
.panel-heading{align-items:center;padding-bottom:.75rem}
.panel-heading h2{font-size:.95rem;margin:0 0 .18rem}
.panel-heading p{font-size:.72rem;color:var(--muted);margin:0}
.activity-panel{min-height:360px}
.context-panel{align-self:start}
.empty-state{min-height:270px;padding:2rem 1rem;color:var(--muted)}
.empty-state p{max-width:52ch;margin:.3rem auto .75rem}
.empty-icon{width:42px;height:42px;background:color-mix(in srgb,var(--primary) 7%,var(--surface));color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 14%,var(--border));box-shadow:none}
.empty-hint{font-size:.72rem;color:var(--muted)}
.detail-list>div{align-items:center;min-height:43px;padding:.55rem 0}
.detail-list dt{color:var(--muted)}
.detail-list dd{max-width:65%;overflow:hidden;text-overflow:ellipsis}
.status-label{display:inline-flex;align-items:center;gap:.4rem;font-weight:600}
.status-label>span{width:7px;height:7px;border-radius:50%;background:var(--muted)}
.status-label.is-success{color:var(--success)}
.status-label.is-success>span{background:var(--success)}
.status-label.is-muted{color:var(--muted)}

.data-panel{box-shadow:none;border-color:var(--border)}
.table-toolbar,.table-footer{background:var(--surface-2);border-color:var(--border)}
th{color:color-mix(in srgb,var(--muted) 88%,var(--text));letter-spacing:.02em}
tbody tr{transition:background-color var(--duration-state) var(--ease-state)}
.toast{border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-pop)}
.toast::before{content:"";display:block;width:7px;height:7px;border-radius:50%;background:var(--primary);float:left;margin:.3rem .55rem 0 0}
.alert-success{border-radius:var(--radius-sm);color:var(--success)}
.modal{box-shadow:var(--shadow-modal)}
.modal-header,.modal-footer{background:var(--surface);border-color:var(--border)}

.login-page{background:var(--sidebar);padding:2rem}
.login-shell{width:min(940px,100%);min-height:560px;grid-template-columns:1.05fr .95fr;border-radius:var(--radius-lg);background:var(--surface);box-shadow:0 24px 70px rgb(5 12 27 / 32%)}
.login-brand{position:relative;justify-content:space-between;padding:2.4rem 3.5rem;background:#21386f;color:#fff;overflow:hidden}
.login-brand::after{content:"";position:absolute;right:-100px;bottom:-130px;width:330px;height:330px;border:1px solid rgb(255 255 255 / 10%);border-radius:50%;box-shadow:0 0 0 55px rgb(255 255 255 / 3%),0 0 0 110px rgb(255 255 255 / 2%);pointer-events:none}
.login-wordmark{display:flex;align-items:center;gap:.7rem;position:relative;z-index:1;font-size:1rem}
.login-wordmark .brand-mark{width:34px;height:34px;margin:0}
.login-message{position:relative;z-index:1;margin:auto 0;max-width:32rem}
.login-kicker{margin:0 0 .8rem;color:#cdd8f7;font-size:.72rem;font-weight:700;letter-spacing:.045em}
.login-brand h1{max-width:12ch;margin:0 0 1.1rem;font-size:2.45rem;line-height:1.08;letter-spacing:-.03em}
.login-brand .login-message>p:last-child{max-width:46ch;margin:0;color:#dde5fa;line-height:1.65}
.login-brand-footnote{display:flex;align-items:center;position:relative;z-index:1;margin:0;color:#d6dff7;font-size:.72rem}
.login-card{padding:3.5rem;gap:1.55rem}
.login-card-heading h2{font-size:1.55rem;margin:0 0 .4rem}
.login-card-heading .muted{max-width:38ch;margin:0}
.login-card .login-kicker{color:var(--primary);margin-bottom:.55rem}
.login-card form{gap:.4rem}
.login-card form label{margin-top:.55rem;color:var(--text);font-size:.76rem}
.login-card form input,.login-card form select{min-height:38px;padding:.55rem .7rem;background:var(--surface);border-color:var(--border-strong)}
.login-submit{display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:40px;margin-top:.85rem}
.login-submit svg{width:15px;height:15px}
.login-footnote{display:flex;align-items:center;justify-content:center;gap:.4rem;color:var(--muted)}
.login-footnote svg{width:13px;height:13px}
.otp-input{text-align:center;font-size:1.3rem;letter-spacing:.35em;font-variant-numeric:tabular-nums}

@media(max-width:1180px){
  .operations-summary{grid-template-columns:1fr}
  .summary-intro{display:flex;align-items:center;justify-content:space-between;border-right:0;border-bottom:1px solid var(--border);padding:.7rem .9rem}
  .summary-intro h2{margin:0}
}
@media(max-width:1000px){
  .sidebar{transition:transform var(--duration-state) var(--ease-state);box-shadow:var(--shadow-modal)}
  .sidebar.sidebar-open{transform:translateX(0)}
  .sidebar-scrim{display:block;position:fixed;inset:0;z-index:19;border:0;background:rgb(9 14 24 / 48%);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--duration-state) var(--ease-state),visibility var(--duration-state) var(--ease-state)}
  .app-page.sidebar-visible{overflow:hidden}
  .app-page.sidebar-visible .sidebar-scrim{opacity:1;visibility:visible;pointer-events:auto}
  .global-search-wrap{min-width:0;flex:1}
  .operations-summary{grid-template-columns:1fr}
}
@media(max-width:760px){
  .topbar{height:52px;padding:0 .7rem}
  .top-actions>.icon-button{display:grid}
  .topbar-org,.org-switch{display:none}
  .global-search input{height:32px}
  .workspace{padding:1rem .85rem 1.5rem}
  .page-heading{align-items:flex-start}
  .page-heading>.context-pill{display:none}
  .summary-items{grid-template-columns:repeat(2,minmax(0,1fr))}
  .summary-item:nth-child(3){border-left:0}
  .summary-item:nth-child(n+3){border-top:1px solid var(--border)}
  .dashboard-grid{grid-template-columns:1fr}
  .activity-panel{min-height:320px}
  .login-page{padding:0;background:var(--surface)}
  .login-shell{min-height:100vh;grid-template-columns:minmax(0,1fr);border-radius:0;box-shadow:none}
  .login-card{width:100%;padding:clamp(1.5rem,7vw,2.5rem)}
}
@media(max-width:460px){
  .top-actions>.icon-button{display:none}
  .summary-items{grid-template-columns:1fr}
  .summary-item,.summary-item:nth-child(3){border-left:0}
  .summary-item:nth-child(n+2){border-top:1px solid var(--border)}
  .summary-intro p{display:none}
  .panel-heading{align-items:flex-start}
  .page-heading h1{font-size:1.25rem}
}
@media(prefers-reduced-motion:reduce){
  .sidebar,.sidebar-scrim,.user-caret{transition:none!important}
}

/* Data grids consume the available workspace while keeping controls anchored. */
[data-grid-root]{
  --grid-viewport-offset:calc(56px + 3.4rem);
  display:flex;
  flex-direction:column;
  gap:.7rem;
  height:calc(100dvh - var(--grid-viewport-offset));
  min-height:0;
}
[data-grid-root]>.page-heading,
[data-grid-root]>.alert{flex:0 0 auto}
[data-grid-root]>.data-panel{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
}
[data-grid-root] .table-toolbar,[data-grid-root] .table-footer{flex:0 0 auto}
[data-grid-root] .table-wrap{
  position:relative;
  flex:1 1 auto;
  min-height:0;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
}
[data-grid-root] .data-grid{min-width:100%}
.data-grid-trash tbody tr.is-deleted{opacity:.78}
.data-grid-trash tbody tr.is-deleted td{font-style:italic}
.table-toolbar .button.is-active{outline:2px solid color-mix(in srgb,var(--primary) 35%,transparent);outline-offset:1px}
.row-action-menu[open]>.row-action-dropdown,
.row-action-dropdown[data-row-action-host]{
  position:fixed;
  right:auto;
  z-index:80;
  max-height:min(320px,calc(100dvh - 16px));
  overflow-y:auto;
}
@media(max-width:760px){
  [data-grid-root]{--grid-viewport-offset:calc(52px + 2.5rem)}
}

/* Keep the actions column inside the native table layout so every row shares one baseline. */
.data-grid th.col-actions,.data-grid td.row-actions{
  text-align:center;
  vertical-align:middle;
}
.data-grid td.row-actions{
  display:table-cell;
  position:relative;
  padding:.15rem .25rem;
}
.data-grid td.row-actions>.row-action-menu{
  display:flex;
  width:fit-content;
  margin-inline:auto;
}
/* Order controls match the compact actions trigger size. */
.data-grid td.col-actions .row-actions{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.12rem;
  padding:0;
}
.data-grid td.col-actions .row-actions form{display:inline-flex;margin:0}
.data-grid td.col-actions .row-actions .icon-button{
  width:var(--grid-action-size);
  height:var(--grid-action-size);
  min-width:var(--grid-action-size);
  min-height:var(--grid-action-size);
  padding:0;
  font-size:.68rem;
  line-height:1;
}

/* Column filters share the actions control scale and expose applied state. */
.data-grid .col-filter-btn{
  width:var(--grid-action-size);
  height:var(--grid-action-size);
  min-width:var(--grid-action-size);
  min-height:var(--grid-action-size);
  padding:0;
  font-size:.68rem;
}
.data-grid .col-filter-btn.is-filtered{
  border-color:var(--primary);
  background:var(--primary);
  color:#fff;
}
.data-grid .col-filter-btn.is-filtered:hover{
  border-color:var(--primary-hover);
  background:var(--primary-hover);
  color:#fff;
}
.col-filter-popover{
  width:min(420px,calc(100vw - 16px));
  max-height:min(520px,calc(100dvh - 16px));
  overflow:auto;
  gap:.65rem;
  padding:.75rem;
}
.col-filter-popover .cf-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:0;
}
.col-filter-popover .cf-count{color:var(--muted);font-size:.7rem;font-variant-numeric:tabular-nums}
.cf-pills{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;min-height:28px}
.cf-pills-empty{margin:0;color:var(--muted);font-size:.74rem}
.cf-filter-pill{display:inline-flex;align-items:center;gap:.35rem;max-width:100%;min-height:26px;padding:.2rem .25rem .2rem .55rem;border-radius:999px;background:color-mix(in srgb,var(--primary) 11%,var(--surface));color:var(--text);font-size:.72rem;font-weight:600}
.cf-filter-pill>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cf-logic-pill{display:inline-grid;place-items:center;min-width:26px;height:22px;padding:0 .35rem;border:1px solid color-mix(in srgb,var(--primary) 28%,var(--border));border-radius:var(--radius-sm);color:var(--primary);font-size:.66rem;font-weight:750}
.cf-pill-remove{display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:1rem;line-height:1;cursor:pointer}
.cf-pill-remove:hover{background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger)}
.cf-builder{display:grid;grid-template-columns:1fr 1.25fr;gap:.5rem;align-items:start}
.cf-builder label{gap:.25rem;color:var(--muted);font-size:.72rem}
.cf-builder>label{align-self:start}
.cf-value-slot{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.cf-value-slot>.cf-val,.cf-value-slot>.cf-temporal-value{width:100%}
.cf-temporal-value{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:.3rem;align-items:center}
.col-filter-popover .cf-temporal-value .cf-calendar-btn{display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--border-strong);background:var(--surface-2);text-align:center}
.col-filter-popover .cf-temporal-value .cf-calendar-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cf-temporal-editor{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:.4rem;padding:.55rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2)}
.cf-temporal-editor[hidden]{display:none}
.cf-temporal-editor label{min-width:0}
.cf-temporal-editor label:last-child{grid-column:1/-1}
.cf-temporal-editor input,.cf-temporal-editor select{width:100%;min-width:0;padding:.35rem .4rem;font-size:.74rem}
.cf-json-val{resize:vertical;min-height:54px;font-family:var(--font-mono,ui-monospace,SFMono-Regular,Consolas,monospace)}
.col-filter-popover .cf-logic-row{display:flex;align-items:center;gap:.5rem;margin:0;color:var(--muted)}
.col-filter-popover .cf-logic-row select{width:auto;min-width:128px}
.col-filter-popover .cf-logic-row.is-disabled{opacity:.58}
.col-filter-popover .cf-actions{align-items:center;margin-top:0;gap:.4rem}
.col-filter-popover .cf-actions .cf-clear{margin-left:auto}
.col-filter-popover .cf-actions .button{border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);padding:.38rem .7rem;font-weight:600}
.col-filter-popover .cf-actions .button:hover{background:var(--border);border-color:var(--muted)}
.col-filter-popover .cf-actions .button:active{background:color-mix(in srgb,var(--border) 80%,var(--muted))}
.col-filter-popover .cf-actions .button-primary{background:var(--primary);border-color:var(--primary);color:#fff}
.col-filter-popover .cf-actions .button-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}
.col-filter-popover .cf-actions .button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media(max-width:520px){
  .cf-builder{grid-template-columns:1fr}
  .col-filter-popover .cf-actions{flex-wrap:wrap}
}

.audit-grid .audit-sort{font-weight:600;color:var(--text)}
.audit-grid .audit-sort.asc::after{content:" ↑";color:var(--muted)}
.audit-grid .audit-sort.desc::after{content:" ↓";color:var(--muted)}
.audit-grid .col-filter-btn{width:20px;height:20px;padding:0;font-size:.68rem}
.audit-data{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.audit-action{display:inline-flex;align-items:center;padding:.18rem .5rem;border-radius:999px;font-size:.72rem;font-weight:700;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);white-space:nowrap}
.audit-action-create{border-color:color-mix(in srgb,var(--success) 40%,var(--border-strong));background:color-mix(in srgb,var(--success) 12%,var(--surface));color:var(--success)}
.audit-action-update{border-color:color-mix(in srgb,var(--primary) 40%,var(--border-strong));background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--primary)}
.audit-action-delete{border-color:color-mix(in srgb,var(--danger) 40%,var(--border-strong));background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}
.audit-action-restore{border-color:color-mix(in srgb,var(--warning) 45%,var(--border-strong));background:color-mix(in srgb,var(--warning) 12%,var(--surface));color:var(--warning)}
.audit-event-type{font-size:.68rem;margin-top:.2rem}
.audit-changes-cell{white-space:normal;max-width:520px;vertical-align:top}
.audit-details{margin:0}
.audit-summary{cursor:pointer;font-weight:600;color:var(--text)}
.audit-summary:hover{color:var(--primary)}
.audit-changes-wrap{margin-top:.45rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);overflow:hidden;background:var(--surface-2)}
.audit-changes{width:100%;border-collapse:collapse;font-size:.78rem}
.audit-changes th,.audit-changes td{padding:.35rem .55rem;border-bottom:1px solid var(--border);text-align:left;white-space:normal;vertical-align:top}
.audit-changes th{background:var(--surface);color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.03em}
.audit-changes tr:last-child td{border-bottom:0}
.audit-change-field{font-weight:600;min-width:7rem}
.audit-before{color:var(--muted);max-width:12rem;word-break:break-word}
.audit-after{color:var(--text);font-weight:600;max-width:12rem;word-break:break-word}
.audit-detail-note{margin:.4rem 0 0;font-size:.78rem}

.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:38px}
.sidebar-toggle{width:28px;height:28px;border-color:rgb(255 255 255 / 10%);background:transparent;color:#9caac3}
.sidebar-toggle:hover{background:rgb(255 255 255 / 8%);color:#fff}
.sidebar-toggle svg{width:16px;height:16px}

body.sidebar-collapsed{--sidebar-width:var(--sidebar-collapsed-width)}
body.sidebar-collapsed .sidebar{padding:.65rem .45rem .65rem;gap:.55rem;align-items:center}
body.sidebar-collapsed .sidebar-header{flex-direction:column;justify-content:center;padding:.35rem 0 .25rem;gap:.25rem;min-height:auto}
body.sidebar-collapsed .sidebar-header .brand{display:none}
body.sidebar-collapsed .brand-label,
body.sidebar-collapsed .nav-label,
body.sidebar-collapsed .nav-caret,
body.sidebar-collapsed .sidebar-footer,
body.sidebar-collapsed .nav-children{display:none}
body.sidebar-collapsed .nav-tabs{grid-template-columns:1fr}
body.sidebar-collapsed .nav-tab{padding:.38rem;display:grid;place-items:center}
body.sidebar-collapsed .nav-item,
body.sidebar-collapsed .nav-group{justify-content:center;padding:.5rem .4rem}
body.sidebar-collapsed .nav-item.active{box-shadow:none}
body.sidebar-collapsed .nav-ico{display:inline-flex;justify-content:center;width:1.4rem;font-size:1rem}
body.sidebar-collapsed .sidebar-toggle{width:32px;height:32px}
body.sidebar-collapsed .sidebar-toggle svg{transform:rotate(180deg);width:18px;height:18px}

@media(max-width:1000px){
  body.sidebar-collapsed{--sidebar-width:236px}
  body.sidebar-collapsed .sidebar{padding:.75rem .6rem .65rem;align-items:stretch}
  body.sidebar-collapsed .brand-label,
  body.sidebar-collapsed .nav-label,
  body.sidebar-collapsed .nav-caret,
  body.sidebar-collapsed .sidebar-footer,
  body.sidebar-collapsed .nav-children{display:revert}
  body.sidebar-collapsed .nav-tabs{grid-template-columns:1fr 1fr;display:grid}
  body.sidebar-collapsed .nav-tab{padding:.38rem;display:block}
  body.sidebar-collapsed .nav-item,
  body.sidebar-collapsed .nav-group{justify-content:flex-start;padding:.42rem .6rem}
  body.sidebar-collapsed .nav-item.active{box-shadow:inset 2px 0 var(--focus)}
  body.sidebar-collapsed .nav-ico{width:1.1rem;font-size:.82rem}
  body.sidebar-collapsed .sidebar-toggle svg{transform:none}
  body.sidebar-collapsed .sidebar-mode-toggle{display:none}
  body.sidebar-collapsed .sidebar-flyout{display:none}
}

/* --- Sidebar flyout and collapsed mode switcher --- */
.sidebar-mode-toggle{display:none}
.sidebar-mode-toggle .mode-icon-favorites{display:none}
body.sidebar-collapsed .sidebar-mode-toggle{display:grid}
body.sidebar-collapsed .nav-tabs{display:none}
body.sidebar-collapsed .brand{justify-content:center}
body.sidebar-collapsed .brand-label{display:none}
body.sidebar-collapsed #favorites-nav{display:none}
body.sidebar-collapsed[data-sidebar-mode="favorites"] #menu-nav{display:none}
body.sidebar-collapsed[data-sidebar-mode="favorites"] #favorites-nav{display:flex}
body.sidebar-collapsed[data-sidebar-mode="favorites"] .sidebar-mode-toggle .mode-icon-menu{display:none}
body.sidebar-collapsed[data-sidebar-mode="favorites"] .sidebar-mode-toggle .mode-icon-favorites{display:block}
body.sidebar-collapsed .sidebar-mode-toggle{position:static;transform:none;width:32px;height:32px;place-items:center;border-color:rgb(255 255 255 / 10%);background:transparent;color:#9caac3}
body.sidebar-collapsed .sidebar-mode-toggle:hover{background:rgb(255 255 255 / 8%);color:#fff}
body.sidebar-collapsed .sidebar-mode-toggle svg{width:18px;height:18px}

.sidebar-flyout{position:fixed;left:var(--sidebar-collapsed-width);top:0;bottom:0;width:min(260px,calc(100vw - var(--sidebar-collapsed-width) - 1rem));background:var(--sidebar);color:var(--sidebar-text);border-left:1px solid rgb(255 255 255 / 8%);box-shadow:var(--shadow-modal);padding:.75rem .55rem;display:flex;flex-direction:column;gap:.35rem;z-index:25;opacity:0;visibility:hidden;transform:translateX(-.5rem);transition:opacity var(--duration-state) var(--ease-state),visibility var(--duration-state) var(--ease-state),transform var(--duration-state) var(--ease-state)}
.sidebar-flyout.open{opacity:1;visibility:visible;transform:translateX(0)}
.sidebar-flyout .nav-group-wrap{margin:0}
.sidebar-flyout .nav-group{min-height:34px;padding:.55rem .6rem;border-radius:var(--radius-sm)}
.sidebar-flyout .nav-group:hover{background:rgb(255 255 255 / 10%);color:#fff}
body.sidebar-collapsed .sidebar-flyout .nav-label{display:inline}
body.sidebar-collapsed .sidebar-flyout .nav-caret{display:inline-flex}
.sidebar-flyout .nav-children{margin-left:0;padding-left:.5rem;border-left:1px solid rgb(255 255 255 / 12%);display:flex;flex-direction:column;gap:.05rem}
.sidebar-flyout .nav-children.collapsed{display:none}
.sidebar-flyout .nav-item{min-height:34px;padding:.55rem .6rem;color:#c4cee3}
.sidebar-flyout .nav-item:hover{background:rgb(255 255 255 / 10%);color:#fff}
.sidebar-flyout .nav-item.active{background:rgb(82 119 219 / 22%);box-shadow:none;color:#fff}
.sidebar-flyout .nav-caret{color:#7c8aa5}
.sidebar-flyout .flyout-header{display:flex;align-items:center;gap:.5rem;padding:.3rem .4rem .6rem;margin-bottom:.35rem;border-bottom:1px solid rgb(255 255 255 / 8%);color:#fff;font-weight:600;font-size:.85rem}
.sidebar-flyout .flyout-header .nav-ico{width:1.3rem;text-align:center}

body.sidebar-collapsed #favorites-nav .nav-item{justify-content:center;min-height:38px}
body.sidebar-collapsed #favorites-nav .nav-label{display:none}
body.sidebar-collapsed #favorites-nav .nav-ico{font-size:1.1rem}

.nav-tooltip{
  position:fixed;
  left:var(--sidebar-collapsed-width);
  top:0;
  background:var(--sidebar);
  color:var(--sidebar-text);
  padding:.38rem .6rem;
  border-radius:var(--radius-sm);
  font-size:.78rem;
  font-weight:500;
  white-space:nowrap;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  box-shadow:var(--shadow-pop);
  border:1px solid rgb(255 255 255 / 10%);
  z-index:100;
  transition:opacity var(--duration-state) var(--ease-state),visibility var(--duration-state) var(--ease-state);
  margin-left:.55rem
}
.nav-tooltip.visible{opacity:1;visibility:visible}

@media(prefers-reduced-motion:reduce){
  .nav-tooltip{transition:none!important}
}

/* ------------------------------------------------------------------ */
/* Designer de Fluxo de Processos                                      */
/* ------------------------------------------------------------------ */
.modal-flow{width:min(1280px,97vw)}
.flow-header{align-items:flex-start}
.flow-hint{margin:0;font-size:.72rem}
.flow-body{padding:.6rem .9rem .9rem}
.flow-toolbar{align-items:center;margin-bottom:.5rem}
.flow-toolbar-spacer{flex:1}
.flow-canvas{position:relative;height:min(62vh,640px);overflow:auto;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2);background-image:radial-gradient(color-mix(in srgb,var(--border-strong) 65%,transparent) 1px,transparent 1px);background-size:18px 18px}
.flow-inner{position:relative;width:2600px;height:1800px}
.flow-wires{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.flow-wire{fill:none;stroke:var(--border-strong);stroke-width:2;pointer-events:stroke;cursor:pointer}
.flow-wire:hover{stroke:var(--muted)}
.flow-wire.selected{stroke:var(--primary);stroke-width:2.5}
.flow-wire.conditional{stroke-dasharray:6 4}
.flow-wire-label{fill:var(--muted);font-size:.66rem;font-family:ui-monospace,monospace}
.flow-node{position:absolute;width:220px;background:var(--surface);border:1px solid var(--border-strong);border-left:3px solid var(--node-accent,var(--primary));border-radius:var(--radius);box-shadow:var(--shadow);z-index:2;user-select:none}
.flow-node-head{display:flex;align-items:center;gap:.4rem;padding:.45rem .55rem;cursor:grab;border-bottom:1px solid var(--border)}
.flow-node-head:active{cursor:grabbing}
.flow-node-icon{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:4px;background:color-mix(in srgb,var(--node-accent,var(--primary)) 14%,var(--surface));color:var(--node-accent,var(--primary));font-size:.75rem;font-weight:700;flex-shrink:0}
.flow-node-title{font-weight:650;font-size:.78rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flow-node-actions{display:flex;gap:2px}
.flow-mini-button{width:20px;height:20px;border:0;border-radius:3px;background:transparent;color:var(--muted);font-size:.7rem;cursor:pointer;display:grid;place-items:center;flex-shrink:0}
.flow-mini-button:hover{background:var(--surface-2);color:var(--text)}
.flow-node-sub{padding:.4rem .55rem;font-size:.7rem;color:var(--muted);min-height:1.6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flow-port{position:absolute;left:50%;transform:translateX(-50%);width:12px;height:12px;border-radius:50%;border:2px solid var(--surface);background:var(--muted);cursor:crosshair;padding:0;z-index:3}
.flow-port:hover{background:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 25%,transparent)}
.flow-port-in{top:-6px}
.flow-port-out{bottom:-6px;background:var(--primary)}
.flow-port-out.active{background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 30%,transparent)}
.flow-overlay{position:fixed;inset:0;background:rgb(15 23 42 / 40%);display:grid;place-items:center;padding:1rem;z-index:70}
.flow-overlay-panel{width:min(640px,96vw);max-height:86vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal)}
.flow-overlay-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .9rem;border-bottom:1px solid var(--border-strong);background:var(--surface-2);border-radius:var(--radius-lg) var(--radius-lg) 0 0}
.flow-overlay-header h3{margin:0;font-size:.92rem}
.flow-overlay-body{padding:.9rem;overflow:auto}
.flow-overlay-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.65rem .9rem;border-top:1px solid var(--border-strong);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.flow-overlay-footer:empty{display:none}
.flow-palette{display:grid;gap:.3rem}
.flow-palette-category{margin:.5rem 0 .1rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.flow-palette-item{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:.5rem .6rem;cursor:pointer}
.flow-palette-item:hover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 5%,var(--surface))}
.flow-palette-item strong{display:block;font-size:.8rem}
.flow-palette-item small{color:var(--muted);font-size:.7rem}
.flow-inline-row{display:flex;align-items:flex-end;gap:.4rem;flex-wrap:wrap}
.flow-inline-row>input{flex:1}
.flow-rows{display:grid;gap:.4rem}
.flow-trigger-row{display:grid;gap:.35rem;border:1px solid var(--border);border-radius:var(--radius);padding:.5rem}
.flow-trigger-fields{display:grid;gap:.35rem}
.flow-section-title{margin:.4rem 0 0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-top:1px solid var(--border);padding-top:.6rem}
.flow-check{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;font-weight:600}
.flow-check input{width:auto}

/* Administração de papéis e permissões */
.perm-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.6rem;max-height:52vh;overflow:auto;padding-bottom:.75rem}
.perm-group{border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .65rem;margin:0;display:grid;gap:.3rem;align-content:start}
.perm-group legend{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:0 .25rem}
.perm-item{font-weight:400;font-size:.78rem}
.perm-item .mono{font-size:.64rem}

/* Diagrama DER do catálogo */
.erd-filter{display:inline-flex;align-items:center;gap:.35rem;font-size:.76rem;font-weight:600}
.erd-filter select{width:auto;min-width:130px}
.erd-search{width:min(240px,30vw)}
.erd-canvas{position:relative;height:min(72vh,760px);overflow:auto;background:var(--surface-2);background-image:radial-gradient(color-mix(in srgb,var(--border-strong) 55%,transparent) 1px,transparent 1px);background-size:18px 18px}
.erd-inner{position:relative;width:4200px;height:2600px}
.erd-wires{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.erd-wire{fill:none;stroke-width:1.6;opacity:.55;pointer-events:stroke;stroke-linejoin:round;cursor:copy}
.erd-wire:hover{opacity:1;stroke-width:2.4}
.erd-waypoint{pointer-events:all;cursor:grab;stroke:var(--surface);stroke-width:2;opacity:.9}
.erd-waypoint:hover{r:7;opacity:1}
.erd-waypoint:active{cursor:grabbing}
.erd-anchor{pointer-events:all;cursor:move;stroke:var(--surface);stroke-width:1.5;opacity:.55}
.erd-anchor:hover{opacity:1;stroke-width:2}
.modal-flow:fullscreen{width:100vw;max-width:100vw;height:100vh;border-radius:0;display:flex;flex-direction:column;background:var(--surface)}
.modal-flow:fullscreen form{flex:1;display:flex;flex-direction:column;min-height:0}
.modal-flow:fullscreen .flow-body{flex:1;display:flex;flex-direction:column;min-height:0}
.modal-flow:fullscreen .flow-canvas{flex:1;height:auto}
.flow-fullscreen-fallback{position:fixed!important;inset:0;z-index:80;width:100vw;max-width:100vw;border-radius:0;display:flex;flex-direction:column}
.flow-fullscreen-fallback form{flex:1;display:flex;flex-direction:column;min-height:0}
.flow-fullscreen-fallback .flow-body{flex:1;display:flex;flex-direction:column;min-height:0}
.flow-fullscreen-fallback .flow-canvas{flex:1;height:auto}
.blockly-toolbar{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;margin-bottom:.5rem}
.blockly-name-field{display:inline-flex;align-items:center;gap:.4rem;margin:0}
.blockly-name-field input{width:220px}
.modal-flow .blockly-root{height:min(56vh,540px)}
#blockly-panel:fullscreen .modal-body{flex:1;display:flex;flex-direction:column;min-height:0}
#blockly-panel:fullscreen .modal-body .blockly-root{flex:1;height:auto}
#blockly-panel:fullscreen{background:var(--bg);padding:.5rem;display:flex;flex-direction:column}
#blockly-panel:fullscreen form{flex:1;display:flex;flex-direction:column;min-height:0}
#blockly-panel:fullscreen .blockly-root{flex:1;height:auto}
.blockly-fullscreen-fallback{position:fixed!important;inset:0;z-index:80;border-radius:0;display:flex;flex-direction:column;background:var(--bg)}
.blockly-fullscreen-fallback form{flex:1;display:flex;flex-direction:column;min-height:0}
.blockly-fullscreen-fallback .blockly-root{flex:1;height:auto}
.erd-schema-badge{position:absolute;z-index:3;padding:.2rem .6rem;border-radius:999px;background:color-mix(in srgb,var(--erd-color) 14%,var(--surface));color:var(--erd-color);border:1px solid color-mix(in srgb,var(--erd-color) 40%,transparent);font-size:.72rem;font-weight:700;cursor:context-menu;user-select:none}
.erd-table{position:absolute;width:250px;background:var(--surface);border:1px solid var(--border-strong);border-top:3px solid var(--erd-color);border-radius:var(--radius);box-shadow:var(--shadow);z-index:2;user-select:none}
.erd-table-head{display:flex;flex-direction:column;gap:.05rem;padding:.4rem .55rem;border-bottom:1px solid var(--border);cursor:grab}
.erd-table-head:active{cursor:grabbing}
.erd-table-name{font-weight:700;font-size:.8rem}
.erd-table-schema{color:var(--muted);font-size:.66rem;font-family:ui-monospace,monospace}
.erd-columns{padding:.2rem 0;max-height:270px;overflow:hidden}
.erd-column{display:flex;justify-content:space-between;gap:.5rem;padding:.12rem .55rem;font-size:.72rem;cursor:context-menu}
.erd-column:hover{background:color-mix(in srgb,var(--erd-color) 8%,var(--surface))}
.erd-col-markers{margin-right:.25rem;font-size:.66rem}
.erd-col-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.erd-col-type{color:var(--muted);font-family:ui-monospace,monospace;font-size:.64rem;white-space:nowrap}
.erd-column-more{color:var(--muted);font-style:italic}
.erd-zoom-group{display:inline-flex;gap:2px}
.erd-zoom-group .button{padding:.38rem .5rem;min-width:32px}
.erd-zoom-label{font-family:ui-monospace,monospace;font-size:.72rem;min-width:52px}
.erd-views-group{display:inline-flex;gap:.3rem;align-items:center}
.erd-views-group select{width:auto;min-width:150px;max-width:220px}
#erd-panel:fullscreen{background:var(--bg);padding:.5rem;display:flex;flex-direction:column}
#erd-panel:fullscreen .erd-canvas{flex:1;height:auto}
.erd-fullscreen-fallback{position:fixed!important;inset:0;z-index:80;border-radius:0;display:flex;flex-direction:column;background:var(--bg)}
.erd-fullscreen-fallback .erd-canvas{flex:1;height:auto}
.erd-context-menu{position:fixed;z-index:90;min-width:200px;padding:.25rem;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-pop)}

/* Abas relacionadas do cadastro de tabela */
.related-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.5rem}
.related-search{width:min(280px,55%)}
.related-wrap{overflow-x:auto;overflow-y:visible;border:1px solid var(--border);border-radius:var(--radius)}
.related-sort{cursor:pointer;user-select:none}
.related-sort:hover{color:var(--text)}
.related-sort-mark{font-size:.6rem}
.related-footer{display:flex;align-items:center;gap:.75rem;margin-top:.6rem;flex-wrap:wrap}
.related-actions{display:flex;gap:.25rem;flex-wrap:nowrap;justify-content:flex-start}
.related-actions .icon-button{width:24px;height:24px;font-size:.7rem}
.related-pager{display:inline-flex;align-items:center;gap:.3rem}
.related-pager .button{padding:.25rem .5rem;min-width:28px}
.related-pager .button:disabled{opacity:.4;cursor:not-allowed}

/* Visualização de migração */
.migration-view-meta{margin-bottom:.75rem}
.migration-sql{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;max-height:52vh;overflow:auto;font-family:ui-monospace,monospace;font-size:.74rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}

/* Designer de relatórios / importações */
.rd-pane{margin-top:.5rem}
.rd-pane h3,.rd-pane h4{margin:.6rem 0 .3rem;font-size:.85rem}
.rd-pane fieldset.panel{margin-bottom:.75rem}
.report-preview{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-top:.6rem;max-height:60vh;overflow:auto}
.report-doc{background:#fff;color:#111;border-radius:var(--radius-sm);padding:1rem;font-size:.8rem;box-shadow:var(--shadow-pop)}
.report-band{display:flex;gap:.75rem;flex-wrap:wrap;padding:.15rem 0}
.report-band-report_title{font-size:1.05rem;font-weight:800;border-bottom:2px solid #111;margin-bottom:.4rem}
.report-band-page_header,.report-band-page_footer{color:#555;font-size:.72rem}
.report-band-column_header{font-weight:700;border-bottom:1px solid #999}
.report-band-group_header{font-weight:700;margin-top:.5rem;background:#f2f4f8;padding:.2rem .3rem}
.report-band-group_footer,.report-band-totals,.report-band-report_summary{font-weight:700;border-top:1px solid #999;margin-top:.2rem}
.report-cell{min-width:60px}
#report-designer-panel:fullscreen,#import-designer-panel:fullscreen{overflow:auto;background:var(--bg);padding:1rem}

/* Designer visual (aba Design): paleta, régua, banda e elementos */
.rd-palette{display:flex;gap:.3rem;flex-wrap:wrap;margin:.4rem 0}
.rd-palette-item{cursor:grab;font-size:.72rem;padding:.2rem .5rem}
.rd-palette-item:active{cursor:grabbing}
.rd-ruler{position:relative;height:18px;margin-top:.35rem;border-bottom:1px solid var(--border-strong);background:var(--surface-2);border-radius:3px 3px 0 0;font-size:.6rem;color:var(--muted);user-select:none}
.rd-ruler-mark{position:absolute;top:1px;transform:translateX(-1px);white-space:nowrap}
.rd-ruler-mark i{display:block;width:1px;height:5px;background:var(--muted);margin-bottom:1px}
.rd-band{position:relative;border:1px dashed var(--border-strong);border-top:0;border-radius:0 0 4px 4px;background:repeating-linear-gradient(90deg,transparent,transparent 29px,color-mix(in srgb,var(--border) 45%,transparent) 30px);padding:6px 0;overflow:hidden}
.rd-band-dropover{outline:2px dashed var(--primary);outline-offset:-2px;background:color-mix(in srgb,var(--primary) 6%,var(--surface))}
.rd-band-empty{position:absolute;inset:0;display:grid;place-items:center;font-size:.75rem;pointer-events:none}
.rd-el{position:absolute;top:6px;display:inline-block;max-width:95%;padding:.15rem .4rem;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);font-size:.72rem;cursor:grab;touch-action:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 2px rgb(0 0 0/8%)}
.rd-el:active{cursor:grabbing}
.rd-el-selected{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 35%,transparent)}
.rd-sec-drag{cursor:grab;margin-right:.35rem;color:var(--muted)}
.rd-sec-drag:active{cursor:grabbing}
.rd-sec-dragging{opacity:.5}
.rd-sec-dropover{outline:2px dashed var(--primary);outline-offset:2px}
.rd-elprops-panel{margin-top:.5rem;padding:.6rem}
.rd-sec-style{margin-top:.5rem}
.rd-sec-style summary{cursor:pointer;font-size:.78rem;color:var(--muted)}

/* Marca d'água do relatório (HTML/preview) */
.report-watermark{position:absolute;inset:0;display:grid;place-items:center;transform:rotate(-35deg);font-size:3.2rem;font-weight:800;color:rgb(0 0 0/8%);pointer-events:none;user-select:none;z-index:0}
.report-doc .report-band{position:relative;z-index:1}

/* --- Softphone (ilha persistente no shell; nunca dentro de #workspace) --- */
.softphone-toggle{position:relative}
.softphone-toggle.sp-registered{color:var(--success);border-color:color-mix(in srgb,var(--success) 40%,var(--border-strong))}
.softphone-toggle.sp-incall{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 45%,var(--border-strong))}
.softphone-toggle.sp-ringing{color:var(--warning);animation:sp-pulse 1s infinite}
.softphone-badge{position:absolute;top:-4px;right:-4px;width:9px;height:9px;border-radius:50%;background:var(--danger)}
@keyframes sp-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.softphone-panel{position:fixed;right:1rem;bottom:1rem;z-index:70;width:min(340px,92vw);max-height:min(92vh,720px);overflow:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg,10px);box-shadow:var(--shadow-pop);display:grid;gap:.55rem;padding:.7rem}
.softphone-panel.hidden{display:none}
.softphone-header{display:flex;align-items:center;gap:.5rem}
.softphone-header-actions{margin-left:auto;display:flex;gap:.25rem}
.softphone-status{display:inline-flex;align-items:center;gap:.4rem;font-size:.76rem;font-weight:600;color:var(--muted)}
.softphone-dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}
.softphone-status[data-sp-state="registered"] .softphone-dot{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 15%,transparent)}
.softphone-status[data-sp-state="registered"]{color:var(--success)}
.softphone-status[data-sp-state="offline"] .softphone-dot,.softphone-status[data-sp-state="failed"] .softphone-dot{background:var(--danger)}
.softphone-ext{font-family:ui-monospace,monospace;font-size:.76rem;color:var(--muted)}
.softphone-lines{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}
.softphone-line{display:grid;gap:.1rem;text-align:left;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);padding:.4rem .55rem;cursor:pointer}
.softphone-line.active{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--surface))}
.softphone-line.sp-line-held{border-style:dashed}
.softphone-line.sp-line-ringing{border-color:var(--warning);animation:sp-pulse 1s infinite}
.softphone-line-tag{font-size:.68rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.softphone-line-info{font-size:.76rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.softphone-display{display:flex;align-items:center;gap:.35rem}
.softphone-display input{flex:1;min-width:0;font-family:ui-monospace,monospace;font-size:.95rem}
.softphone-display [data-sp-phone-picker]{flex:0 0 auto}
.softphone-timer{font-family:ui-monospace,monospace;font-size:.8rem;color:var(--muted);min-width:3.2rem;text-align:right}
.modal-backdrop[data-sp-phone-picker]{z-index:80}
.softphone-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:.3rem}
.softphone-keypad .button{padding:.45rem 0;font-size:.95rem}
.softphone-actions{display:flex;gap:.4rem}
.softphone-actions .button{flex:1}
.softphone-actions-secondary .button{font-size:.72rem;padding:.32rem .3rem}
.softphone-actions .button.sp-active{background:color-mix(in srgb,var(--primary) 14%,var(--surface));border-color:var(--primary);color:var(--primary)}
.softphone-history{display:grid;gap:.35rem;border-top:1px solid var(--border);padding-top:.55rem;min-height:0}
.softphone-history-head{display:flex;align-items:center;gap:.4rem;font-size:.78rem}
.softphone-history-head strong{margin-right:auto}
.softphone-history-all{font-size:.72rem;padding:.15rem .4rem}
.softphone-history-empty{margin:0;font-size:.74rem;line-height:1.35}
.softphone-history-list{list-style:none;margin:0;padding:0;max-height:180px;overflow:auto;display:grid;gap:.2rem}
.softphone-history-item{margin:0}
.softphone-history-row{display:grid;grid-template-columns:auto 1fr auto;gap:.45rem;align-items:center;width:100%;text-align:left;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;padding:.35rem .4rem;cursor:pointer;color:inherit}
.softphone-history-row:hover{background:var(--surface-2);border-color:var(--border)}
.softphone-history-dir{font-size:.85rem;width:1.1rem;text-align:center;color:var(--primary)}
.softphone-history-item.is-missed .softphone-history-dir{color:var(--danger)}
.softphone-history-main{display:grid;gap:.05rem;min-width:0}
.softphone-history-peer{font-family:ui-monospace,monospace;font-size:.8rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.softphone-history-meta{font-size:.68rem}
.softphone-history-side{display:grid;gap:.05rem;justify-items:end;font-size:.68rem;color:var(--muted);white-space:nowrap}
.softphone-history-dur{font-family:ui-monospace,monospace}
.softphone-settings{display:grid;gap:.55rem;border-top:1px solid var(--border);padding-top:.55rem}
.softphone-logs{display:grid;gap:.4rem;border-top:1px solid var(--border);padding-top:.55rem}
.softphone-logs-toolbar{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.softphone-logs-toolbar strong{margin-right:auto;font-size:.78rem}
.softphone-tls-link{font-size:.72rem;text-decoration:none}
.softphone-logs-body{margin:0;max-height:180px;overflow:auto;padding:.45rem .55rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);font-family:ui-monospace,monospace;font-size:.68rem;line-height:1.4;white-space:pre-wrap;word-break:break-word}
.telephony-secret-box{display:grid;gap:.45rem;padding:.7rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2)}
.telephony-secret-head{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.telephony-secret-fields{display:grid;gap:.45rem;grid-template-columns:1fr 1fr auto;align-items:end}
@media (max-width:720px){.telephony-secret-fields{grid-template-columns:1fr}}
.softphone-panel audio{display:none}
/* Banner de chamada recebida — topo da tela, acima de modais */
.softphone-incoming{position:fixed;top:.9rem;left:50%;transform:translateX(-50%);z-index:400;display:flex;align-items:center;gap:.9rem;padding:.65rem .9rem;width:min(460px,94vw);background:var(--surface);border:1px solid color-mix(in srgb,var(--primary) 45%,var(--border-strong));border-radius:var(--radius-lg,12px);box-shadow:var(--shadow-modal,var(--shadow-pop));animation:sp-incoming-in .22s ease-out}
.softphone-incoming.hidden{display:none}
.sp-incoming-avatar{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border-radius:50%;background:color-mix(in srgb,var(--primary) 16%,var(--surface));color:var(--primary);animation:sp-pulse 1.1s infinite}
.sp-incoming-avatar svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sp-incoming-text{display:grid;gap:.1rem;margin-right:auto;min-width:0}
.sp-incoming-title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.sp-incoming-who{font-size:.98rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-incoming-actions{display:flex;gap:.4rem;flex:0 0 auto}
.sp-incoming-actions .button{display:inline-flex;align-items:center;gap:.35rem}
.sp-incoming-actions .button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sp-incoming-accept{background:var(--success);border-color:var(--success);color:#fff}
.sp-incoming-accept:hover{background:color-mix(in srgb,var(--success) 88%,#000)}
@keyframes sp-incoming-in{from{opacity:0;transform:translate(-50%,-12px)}to{opacity:1;transform:translate(-50%,0)}}

/* --- Knowledge Base shell (PR4) --- */
.kb-shell{display:grid;gap:var(--space-4,1rem)}
.kb-space-switch{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.25rem}
.kb-space-tab{padding:.38rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);text-decoration:none;font-size:.77rem;font-weight:600}
.kb-space-tab:hover{background:color-mix(in srgb,var(--primary) 8%,var(--surface))}
.kb-space-tab.active{background:color-mix(in srgb,var(--primary) 12%,var(--surface));border-color:color-mix(in srgb,var(--primary) 35%,var(--border));color:var(--primary)}
.kb-layout{display:grid;grid-template-columns:minmax(220px,280px) 1fr;min-height:min(70vh,720px);overflow:hidden;padding:0}
.kb-sidebar{display:flex;flex-direction:column;border-right:1px solid var(--border-strong);background:var(--surface-2);min-height:0}
.kb-sidebar-toolbar{display:flex;align-items:center;gap:.4rem;padding:.55rem .55rem;border-bottom:1px solid var(--border)}
.kb-tree-search{flex:1;min-width:0}
.kb-tree-search input:disabled{opacity:.65;cursor:not-allowed}
.kb-create-menu{position:relative}
.kb-create-menu .dropdown-menu{min-width:220px;padding:.55rem}
.kb-create-form{margin:0}
.kb-create-form .field-label{font-size:.72rem}
.dropdown-sep{border:0;border-top:1px solid var(--border);margin:.45rem 0}
.kb-tree{flex:1;overflow:auto;padding:.4rem .35rem .7rem;scrollbar-width:thin}
.kb-tree-list{list-style:none;margin:0;padding:0;display:grid;gap:.1rem}
.kb-tree-folder,.kb-tree-note{border-radius:var(--radius-sm)}
.kb-tree-label{display:flex;align-items:center;gap:.4rem;padding:.35rem .5rem;font-size:.8rem;font-weight:600;color:var(--muted)}
.kb-tree-link{display:flex;align-items:center;gap:.4rem;padding:.38rem .5rem;border-radius:var(--radius-sm);color:var(--text);text-decoration:none;font-size:.8rem}
.kb-tree-link:hover{background:color-mix(in srgb,var(--primary) 8%,var(--surface))}
.kb-tree-note.is-active .kb-tree-link,.kb-tree-link:focus-visible{background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--primary);font-weight:600}
.kb-tree-ico{flex:0 0 auto;opacity:.85}
.kb-tree-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-tree-empty{padding:.75rem .6rem;font-size:.78rem}
.kb-main{min-width:0;min-height:0;overflow:auto;background:var(--surface);padding:0}
.kb-empty{display:grid;place-items:center;min-height:240px;padding:2rem;text-align:center}
.kb-reader{display:grid;grid-template-rows:auto auto 1fr;min-height:100%}
.kb-reader-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.85rem 1.1rem;border-bottom:1px solid var(--border-strong);background:var(--surface-2)}
.kb-reader-header h2{font-size:1.1rem;margin:.1rem 0}
.kb-reader-body{padding:1rem 1.25rem 1.5rem;min-width:0}
.kb-reader-content{display:block;min-height:0}
.kb-reader-content.has-toc{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,220px);gap:0}
.kb-toc{display:none;order:2;border-left:1px solid var(--border);background:var(--surface-2);padding:.75rem .7rem 1rem;position:sticky;top:0;align-self:start;max-height:min(70vh,640px);overflow:auto;scrollbar-width:thin}
.kb-reader-content.has-toc .kb-toc{display:block}
.kb-toc-title{margin:0 0 .45rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.kb-toc-list{list-style:none;margin:0;padding:0;display:grid;gap:.15rem}
.kb-toc-item a{display:block;padding:.22rem .35rem;border-radius:var(--radius-sm);color:var(--muted);text-decoration:none;font-size:.74rem;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-toc-item a:hover,.kb-toc-item a:focus-visible{background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--primary)}
.kb-toc-l1 a{font-weight:700;color:var(--text)}
.kb-toc-l2 a{padding-left:.55rem}
.kb-toc-l3 a{padding-left:.95rem}
.kb-toc-l4 a,.kb-toc-l5 a,.kb-toc-l6 a{padding-left:1.25rem;font-size:.7rem}
.kb-sensitivity-banner{display:flex;align-items:baseline;gap:.55rem;flex-wrap:wrap;padding:.55rem 1.1rem;border-bottom:1px solid var(--border-strong);font-size:.8rem}
.kb-sensitivity-banner strong{font-size:.78rem;letter-spacing:.03em;text-transform:uppercase}
.kb-sensitivity-confidential{background:color-mix(in srgb,#e19a30 16%,var(--surface));border-bottom-color:color-mix(in srgb,#e19a30 40%,var(--border));color:#9a5b00}
.kb-sensitivity-confidential strong{color:#8a4f00}
.kb-sensitivity-restricted{background:color-mix(in srgb,var(--danger,#b42318) 12%,var(--surface));border-bottom-color:color-mix(in srgb,var(--danger,#b42318) 35%,var(--border));color:var(--danger,#b42318)}
.kb-sensitivity-restricted strong{color:var(--danger,#b42318)}
.kb-editor-host{min-height:320px}
.kb-link-health .inline-form{display:inline}
.kb-link-health .metrics{margin-bottom:.5rem}
.kb-reader-body h1[id],.kb-reader-body h2[id],.kb-reader-body h3[id],
.kb-reader-body h4[id],.kb-reader-body h5[id],.kb-reader-body h6[id],
.markdown-body h1[id],.markdown-body h2[id],.markdown-body h3[id]{scroll-margin-top:4.5rem}
.kb-backlinks{border-top:1px solid var(--border-strong);padding:.85rem 1.25rem 1.25rem;background:var(--surface-2)}
.kb-backlinks-header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.45rem}
.kb-backlinks-header h3{margin:0;font-size:.85rem;font-weight:700;letter-spacing:.01em}
.kb-backlinks-empty{margin:0;font-size:.78rem}
.kb-backlinks-list{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}
.kb-backlink-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.3rem .4rem;border-radius:var(--radius-sm)}
.kb-backlink-item:hover{background:color-mix(in srgb,var(--primary) 8%,var(--surface))}
.kb-backlink-link{display:flex;flex-direction:column;min-width:0;text-decoration:none;color:var(--text);flex:1}
.kb-backlink-title{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-backlink-path{font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-backlink-kind{font-size:.65rem;flex:0 0 auto}
.kb-picker-kinds{display:flex;flex-wrap:wrap;gap:.35rem}
.kb-picker-results{max-height:min(50vh,420px);overflow:auto}
.button-sm{padding:.28rem .55rem;font-size:.75rem}
/* Broken / ambiguous wiki & app:doc placeholders (query markers from RenderMarkdownInSpace). */
.kb-reader-body a[href*="broken=1"],
.kb-reader-body a[href*="ambiguous=1"],
.doc-viewer a[href*="broken=1"],
.doc-viewer a[href*="ambiguous=1"],
.markdown-body a[href*="broken=1"],
.markdown-body a[href*="ambiguous=1"]{
  color:var(--danger, #b42318);
  text-decoration:underline wavy;
}
.kb-link-miss{margin:.5rem 0 0}
/* Documentation modal: related KB docs + canonical + annotations */
.doc-modal-wide{width:80vw;max-width:80vw;max-height:min(92vh,960px);display:flex;flex-direction:column}
.doc-modal-wide .modal-body{flex:1 1 auto;min-height:0;overflow:auto;display:flex;flex-direction:column}
.doc-modal-heading{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.doc-modal-heading h2{margin:0}
.doc-structure-key{margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}
.doc-modal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;flex:0 0 auto}
.doc-modal-toolbar .tabs{margin:0;flex:1 1 auto}
.doc-meta{font-size:.78rem;margin:0 0 .5rem}
.doc-modal .tab-panel.doc-tab-panel.active{display:flex;flex-direction:column;flex:1 1 auto;min-height:min(42vh,360px)}
.doc-tab-scroll{flex:1 1 auto;min-height:0;overflow:auto}
.doc-tab-footer{flex:0 0 auto;display:flex;justify-content:flex-end;gap:.5rem;padding-top:.75rem;margin-top:.5rem;border-top:1px solid var(--border)}
.modal-backdrop[data-doc-new-note]{z-index:60}
.modal-backdrop[data-doc-new-note] textarea{width:100%;min-height:7rem;resize:vertical}
.doc-related-list{list-style:none;margin:.35rem 0 0;padding:0;display:grid;gap:.45rem}
.doc-related-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .8rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface)}
.doc-related-link{display:flex;flex-direction:column;gap:.1rem;min-width:0;text-decoration:none;color:inherit;flex:1}
.doc-related-link:hover .doc-related-title{color:var(--primary)}
.doc-related-title{font-weight:700;font-size:.92rem}
.doc-related-path{font-size:.74rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-related-meta{display:flex;flex-wrap:wrap;gap:.3rem;flex:0 0 auto}
@media (max-width:720px){
  .doc-modal-wide{width:96vw;max-width:96vw}
  .doc-related-item{flex-direction:column;align-items:stretch}
}
.entity-tab-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.entity-tab-toolbar .doc-meta{margin:0;flex:1}
.entity-child-grid{width:100%;font-size:.85rem}
[data-identification-form] .modal-body[data-form-panel="geral"]{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
[data-identification-form] .identification-attrs-section,
[data-identification-form] [data-field-widget="textarea"],
[data-identification-form] [data-field-widget="entity_select"]{grid-column:1/-1}
.identification-attrs-section{display:grid;gap:.7rem;padding:.85rem .9rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-2) 88%,var(--surface))}
.identification-attrs-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
.identification-attrs-title{margin:0;font-size:.95rem;font-weight:700}
.identification-attrs-subtitle{margin:.2rem 0 0;font-size:.78rem}
.identification-attributes{display:block;width:100%}
.identification-attrs-empty{padding:.55rem .1rem}
.identification-attrs-empty p{margin:0}
.identification-attrs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem 1rem}
.identification-attr-field{display:grid;gap:.3rem;margin:0;align-content:start}
.identification-attr-field.is-wide,.identification-attr-field.is-bool{grid-column:1/-1}
.identification-attr-label{font-size:.8rem;font-weight:600;color:var(--text)}
.identification-attr-req{color:var(--danger)}
.identification-attr-hint{font-size:.72rem;color:var(--muted)}
.identification-attr-field .field-input-row input.is-invalid,
.identification-attr-field .field-input-row select.is-invalid,
.identification-attr-field .field-input-row textarea.is-invalid{border-color:var(--danger);box-shadow:0 0 0 1px color-mix(in srgb,var(--danger) 35%,transparent)}
.identification-attr-toggle-ui{position:relative;display:flex;align-items:center;gap:.65rem;padding:.55rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);cursor:pointer}
.identification-attr-toggle-ui:has(input:checked){border-color:color-mix(in srgb,var(--primary) 45%,var(--border-strong));background:color-mix(in srgb,var(--primary) 8%,var(--surface))}
.identification-attr-toggle-ui input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.identification-attr-switch{width:2.1rem;height:1.2rem;border-radius:999px;background:var(--border-strong);position:relative;flex:0 0 auto;transition:background .15s ease;pointer-events:none}
.identification-attr-switch::after{content:"";position:absolute;top:2px;left:2px;width:.9rem;height:.9rem;border-radius:50%;background:var(--surface);transition:transform .15s ease}
.identification-attr-toggle-ui:has(input:checked) .identification-attr-switch{background:var(--primary)}
.identification-attr-toggle-ui:has(input:checked) .identification-attr-switch::after{transform:translateX(.9rem)}
@media(max-width:700px){
  [data-identification-form] .modal-body[data-form-panel="geral"],
  .identification-attrs-grid{grid-template-columns:1fr}
}
.entity-role-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.45rem}
.entity-role-chip{display:flex;flex-direction:column;gap:.1rem;padding:.55rem .65rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);cursor:pointer}
.entity-role-chip.is-active,.entity-role-chip:has(input:checked){border-color:color-mix(in srgb,var(--primary) 45%,var(--border-strong));background:color-mix(in srgb,var(--primary) 8%,var(--surface))}
.entity-role-chip input{margin:0 0 .2rem}
.entity-role-name{font-weight:600;font-size:.85rem}
.entity-role-code{font-size:.72rem}
.entity-roles-layout{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);gap:.85rem;min-height:280px;align-items:stretch}
.entity-roles-nav{display:flex;flex-direction:column;gap:.3rem;padding:.35rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-2);max-height:420px;overflow:auto}
.entity-role-nav-item{display:grid;grid-template-columns:1fr auto;gap:.15rem .5rem;align-items:center;width:100%;text-align:left;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;padding:.55rem .65rem;cursor:pointer;color:var(--text);font:inherit}
.entity-role-nav-item:hover{background:color-mix(in srgb,var(--primary) 6%,var(--surface))}
.entity-role-nav-item.is-selected{border-color:color-mix(in srgb,var(--primary) 40%,var(--border-strong));background:color-mix(in srgb,var(--primary) 10%,var(--surface))}
.entity-role-nav-item.is-active .entity-role-nav-name{font-weight:700}
.entity-role-nav-name{grid-column:1;font-size:.85rem}
.entity-role-nav-meta{grid-column:1;font-size:.7rem}
.entity-role-nav-badge{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em;padding:.15rem .4rem;border-radius:999px;background:color-mix(in srgb,var(--primary) 16%,var(--surface));color:var(--primary)}
.entity-roles-panel{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);padding:.9rem 1rem;display:grid;align-content:start;gap:.75rem}
.entity-role-detail{display:grid;gap:.75rem}
.entity-role-detail[hidden],.entity-role-detail.hidden{display:none!important}
.entity-role-detail-title{margin:0;font-size:1rem}
.entity-role-detail-meta{margin:.15rem 0 0;font-size:.75rem}
.entity-role-active-toggle{display:flex;align-items:center;gap:.55rem;padding:.55rem .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-2);font-weight:600}
.entity-role-active-toggle input{width:auto;margin:0}
.entity-role-empty-hint{margin:0}
@media(max-width:800px){.entity-roles-layout{grid-template-columns:1fr}.entity-roles-nav{max-height:180px}}
.entity-timeline{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.entity-timeline-item{padding:.65rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);display:grid;gap:.25rem}
.entity-timeline-meta{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;font-size:.78rem}
.entity-timeline-subject{font-size:.9rem}
.entity-timeline-source{font-size:.72rem}
.entity-attach-form{padding:.65rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-2);max-width:36rem}
[data-address-form] .field-input-row{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
[data-address-form] .field-input-row > input.fk-display,
[data-address-form] .field-input-row > input:not([type="hidden"]):not(.fk-display){flex:1 1 12rem;min-width:10rem}
[data-address-form] [data-address-action]{flex:0 0 auto}
.doc-annotation-form{padding:.65rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-2)}
.doc-annotation-form textarea{width:100%;min-height:5.5rem;resize:vertical}
.doc-annotation-list{list-style:none;margin:.75rem 0 0;padding:0;display:grid;gap:.65rem}
.doc-annotation-item{border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:.55rem .75rem;background:var(--surface)}
.doc-annotation-head{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-bottom:.35rem}
.doc-annotation-author{font-weight:600;font-size:.82rem}
.doc-annotation-body{font-size:.9rem}
.doc-annotation-body p:last-child{margin-bottom:0}
.button-danger{color:var(--danger, #b42318);border-color:color-mix(in srgb,var(--danger,#b42318) 35%,var(--border-strong))}
.button-danger:hover{background:color-mix(in srgb,var(--danger,#b42318) 10%,var(--surface))}
.form-error{color:var(--danger,#b42318);font-size:.85rem;margin:0}
.row.gap-sm{display:flex;gap:.5rem;align-items:center}
.stack-xs{display:flex;flex-direction:column;gap:.25rem}
.stack-sm{display:flex;flex-direction:column;gap:.5rem}
.inline-form{display:inline;margin:0}
@media (max-width:900px){
  .kb-layout{grid-template-columns:1fr;min-height:auto}
  .kb-reader-content.has-toc{grid-template-columns:1fr}
  .kb-toc{position:static;max-height:none;border-left:0;border-bottom:1px solid var(--border);order:0}
  .kb-sidebar{border-right:0;border-bottom:1px solid var(--border-strong);max-height:40vh}
}

/* --- email client (restored) --- */
.mail-client{
  --mail-viewport-offset:calc(56px + 3.4rem);
  display:flex;
  flex-direction:column;
  height:calc(100dvh - var(--mail-viewport-offset));
  min-height:0;
  overflow:hidden;
}
.mail-client>.page-heading{flex:0 0 auto;margin-bottom:.75rem}
.mail-layout{
  display:grid;
  grid-template-columns:min(220px,28vw) minmax(260px,1fr) minmax(320px,1.4fr);
  gap:.65rem;
  flex:1 1 auto;
  min-height:0;
  align-items:stretch;
  overflow:hidden;
}
.mail-side,.mail-list,.mail-view{
  min-height:0;
  max-height:100%;
  overflow:hidden;
}
.mail-side{display:flex;flex-direction:column;gap:.65rem;padding:.75rem}
.mail-accounts{flex:0 0 auto}
.mail-accounts .field-label{font-size:.72rem}
/* Rolagem vertical contida: pastas */
.mail-folders{
  display:flex;
  flex-direction:column;
  gap:0;
  flex:1 1 auto;
  min-height:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
.mail-folder-tree{list-style:none;margin:0;padding:0}
.mail-folder-node{list-style:none;margin:0;padding:0}
.mail-folder-children{list-style:none;margin:0;padding:0}
.mail-folder-row{
  display:grid;
  grid-template-columns:1.1rem 1fr auto;
  align-items:center;
  gap:.1rem;
  padding-left:calc(var(--depth, 0) * 0.85rem);
}
.mail-folders-toolbar{
  display:flex;
  justify-content:flex-end;
  padding:0 .15rem .35rem;
  flex:0 0 auto;
}
.mail-folder-new{font-size:.78rem;padding:.2rem .45rem}
.mail-folder-add{
  width:1.35rem;height:1.35rem;opacity:0;font-size:.9rem;line-height:1;
  color:var(--muted);flex:0 0 auto;
}
.mail-folder-row:hover .mail-folder-add,
.mail-folder-row:focus-within .mail-folder-add,
.mail-folder-add:focus-visible{opacity:1}
.mail-folder-add:hover{color:var(--text);background:color-mix(in srgb,var(--primary) 10%,var(--surface))}
.mail-folder-create-modal .modal-body{display:flex;flex-direction:column;gap:.65rem}
.mail-folder-create-modal .field-label .input{width:100%}
.mail-folder-create-modal .htmx-indicator{opacity:0;transition:opacity .15s ease}
.mail-folder-create-modal.htmx-request .htmx-indicator,
.mail-folder-create-modal .htmx-request .htmx-indicator,
form.htmx-request #mail-folder-create-indicator{opacity:1}
.mail-folder-twist,.mail-folder-twist-spacer{
  width:1.1rem;height:1.1rem;display:inline-grid;place-items:center;
  border:0;background:transparent;padding:0;color:var(--muted);cursor:pointer;border-radius:var(--radius-sm);
  font:inherit;line-height:1;
}
.mail-folder-twist::before{content:"▸";font-size:.65rem;transition:transform .12s ease}
.mail-folder-node.is-expanded > .mail-folder-row > .mail-folder-twist::before{transform:rotate(90deg)}
.mail-folder-twist:hover{background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--text)}
.mail-folder-twist:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.mail-folder,.mail-folder-virtual{
  display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:0;width:100%;
  text-align:left;border:0;background:transparent;padding:.35rem .45rem;border-radius:var(--radius-sm);
  color:var(--text);font:inherit;font-size:.8rem
}
.mail-folder{cursor:pointer}
.mail-folder-virtual{cursor:default;color:var(--muted);font-weight:600}
.mail-folder:hover{background:color-mix(in srgb,var(--primary) 8%,var(--surface))}
.mail-folder.active{background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--primary);font-weight:700}
.mail-folder:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.mail-folder-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-folder-count{min-width:1.25rem;height:1.25rem;display:inline-grid;place-items:center;border-radius:999px;background:var(--primary);color:#fff;font-size:.65rem;font-weight:700;padding:0 .35rem;flex:0 0 auto}
.mail-side-empty{font-size:.78rem;padding:.35rem}
/* Lista: coluna contida, sem barra de rolagem vertical. */
.mail-list{display:flex;flex-direction:column;padding:0;overflow:hidden}
.mail-list-toolbar{display:flex;align-items:center;gap:.5rem;padding:.55rem .65rem;border-bottom:1px solid var(--border);flex:0 0 auto;background:var(--surface);z-index:1}
.mail-list-toolbar .quick-search{flex:1}
.mail-list-count{font-size:.72rem;white-space:nowrap}
.mail-msg-list{
  list-style:none;
  margin:0;
  padding:0;
  flex:1 1 auto;
  min-height:0;
  overflow:hidden;
}
.mail-msg-row{display:grid;grid-template-columns:auto 1fr;gap:.45rem;padding:.55rem .7rem;border-bottom:1px solid var(--border);cursor:pointer}
.mail-msg-row:hover,.mail-msg-row.is-active{background:color-mix(in srgb,var(--primary) 7%,var(--surface))}
.mail-msg-row:focus{outline:none}
.mail-msg-row:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}
.mail-msg-row.is-unread .mail-msg-from,.mail-msg-row.is-unread .mail-msg-subject{font-weight:700}
.mail-msg-flags{display:grid;gap:.15rem;align-content:start;font-size:.75rem;min-width:1rem;color:var(--warning)}
.mail-msg-top{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}
.mail-msg-from{font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-msg-date{font-size:.68rem;color:var(--muted);white-space:nowrap}
.mail-msg-subject{font-size:.78rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-list-footer{padding:.4rem .65rem;border-top:1px solid var(--border);flex:0 0 auto;background:var(--surface)}
.mail-list-empty{flex:1 1 auto;min-height:0;overflow:hidden;padding:1.5rem}
/* Visualização: coluna flex — corpo ocupa a altura restante do painel. */
.mail-view{
  padding:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height:0;
}
.mail-view-empty{padding:1.5rem;min-height:100%;box-sizing:border-box;flex:1}

/* --- mesa de atendimento --- */
.at-desk{
  --at-viewport-offset:calc(56px + 3.4rem);
  display:flex;flex-direction:column;
  height:calc(100dvh - var(--at-viewport-offset));
  min-height:0;overflow:hidden;
}
.at-desk>.page-heading{flex:0 0 auto;margin-bottom:.75rem}
.at-layout{
  display:grid;
  grid-template-columns:minmax(240px,.9fr) minmax(320px,1.4fr) minmax(220px,.75fr);
  gap:.65rem;flex:1 1 auto;min-height:0;overflow:hidden;
}
.at-list,.at-thread,.at-panel{min-height:0;max-height:100%;overflow:hidden;display:flex;flex-direction:column;padding:0}
.at-list-toolbar{display:flex;flex-direction:column;gap:.45rem;padding:.55rem .65rem;border-bottom:1px solid var(--border);flex:0 0 auto}
.at-tabs{display:flex;gap:.25rem}
.at-tab{
  flex:1;text-align:center;padding:.35rem .4rem;border-radius:var(--radius-sm);
  border:1px solid var(--border);background:var(--surface-2);color:var(--muted);
  font-size:.78rem;cursor:pointer;text-decoration:none;
}
.at-tab.is-active{background:color-mix(in srgb,var(--primary) 12%,var(--surface));border-color:var(--primary);color:var(--text);font-weight:600}
.at-conv-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1 1 auto;min-height:0}
.at-conv-list li{margin:0;border-bottom:1px solid var(--border)}
.at-conv-item{
  display:grid;gap:.2rem;width:100%;text-align:left;padding:.65rem .7rem;
  border:0;background:transparent;cursor:pointer;color:inherit;font:inherit;
}
.at-conv-item:hover{background:color-mix(in srgb,var(--primary) 6%,var(--surface))}
.at-conv-item.is-selected{background:color-mix(in srgb,var(--primary) 12%,var(--surface))}
.at-conv-top{display:flex;align-items:center;gap:.4rem;justify-content:space-between}
.at-conv-top strong{font-size:.88rem}
.at-badge{display:inline-flex;min-width:1.2rem;justify-content:center;padding:.05rem .35rem;border-radius:999px;background:var(--primary);color:#fff;font-size:.68rem;font-weight:700}
.at-conv-meta{display:flex;flex-wrap:wrap;gap:.25rem;font-size:.7rem}
.at-conv-preview{margin:0;font-size:.76rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.at-list-empty{padding:1.25rem}
.at-estado{text-transform:uppercase;letter-spacing:.04em;font-size:.65rem;font-weight:700}
.at-estado-aberta{color:var(--warning)}
.at-estado-em_atendimento{color:var(--primary)}
.at-estado-resolvida{color:var(--success)}
.at-estado-pendente_cliente,.at-estado-snoozed{color:var(--muted)}
.at-thread-header{
  display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;
  padding:.65rem .75rem;border-bottom:1px solid var(--border);flex:0 0 auto;
}
.at-thread-header h2{margin:0;font-size:1rem}
.at-thread-actions{display:flex;gap:.35rem;flex-wrap:wrap}
.at-messages{flex:1 1 auto;min-height:0;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.55rem}
.at-messages-empty{margin:auto}
.at-msg{max-width:85%;padding:.55rem .7rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2)}
.at-msg-entrada{align-self:flex-start}
.at-msg-saida{align-self:flex-end;background:color-mix(in srgb,var(--primary) 10%,var(--surface));border-color:color-mix(in srgb,var(--primary) 30%,var(--border))}
.at-msg-nota{align-self:center;max-width:95%;background:color-mix(in srgb,var(--warning) 10%,var(--surface));border-style:dashed}
.at-msg-sistema{align-self:center;max-width:95%;background:transparent;border-style:dashed;color:var(--muted);font-size:.78rem}
.at-msg-meta{font-size:.68rem;margin-bottom:.2rem}
.at-msg-body{white-space:pre-wrap;word-break:break-word;font-size:.88rem}
.at-composer{flex:0 0 auto;border-top:1px solid var(--border);padding:.55rem .65rem;display:grid;gap:.4rem;background:var(--surface)}
.at-composer-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.at-note-toggle{font-size:.78rem;color:var(--muted);display:inline-flex;align-items:center;gap:.35rem}
.at-panel-body{padding:.75rem;overflow-y:auto;flex:1 1 auto;min-height:0}
.at-panel-body h2{margin:0 0 .65rem;font-size:.95rem}
.at-facts{display:grid;gap:.55rem;margin:0}
.at-facts div{display:grid;gap:.1rem}
.at-facts dt{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.at-facts dd{margin:0;font-size:.84rem}
.at-panel-hint{margin-top:1rem;font-size:.74rem}
.at-simulate-menu{min-width:260px;padding:.65rem}
.at-simulate-form{display:grid;gap:.45rem}
@media (max-width:1100px){
  .at-layout{grid-template-columns:minmax(220px,1fr) minmax(280px,1.2fr);grid-template-rows:1fr auto}
  .at-panel{grid-column:1 / -1;max-height:180px}
}
@media (max-width:720px){
  .at-layout{grid-template-columns:1fr;grid-template-rows:minmax(180px,.7fr) minmax(240px,1.2fr) minmax(140px,.5fr)}
}

.mail-read{
  display:flex;
  flex-direction:column;
  gap:.65rem;
  padding:.85rem;
  min-height:0;
  flex:1 1 auto;
  height:100%;
  overflow:hidden;
}
.mail-read-header{min-width:0;flex:0 0 auto}
.mail-read-actions{display:flex;flex-wrap:wrap;gap:.35rem}
.mail-read-subject{font-size:1.05rem;margin:0}
.mail-read-meta{display:grid;gap:.25rem;margin:0;font-size:.78rem}
.mail-read-meta>div{display:grid;grid-template-columns:4rem 1fr;gap:.35rem}
.mail-read-meta dt{color:var(--muted);font-weight:600}
.mail-read-meta dd{margin:0;overflow-wrap:anywhere}
.mail-trusted-pill{
  display:inline-block;margin-left:.35rem;padding:.05rem .4rem;border-radius:999px;
  font-size:.65rem;font-weight:700;background:color-mix(in srgb,var(--success) 14%,var(--surface));
  color:var(--success);border:1px solid color-mix(in srgb,var(--success) 30%,var(--border));
  vertical-align:middle;
}
.mail-attachments{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem;flex:0 0 auto}
.mail-attachment-chip,.mail-compose-attachments .mail-attachment-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .55rem;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-2);font-size:.72rem;text-decoration:none;color:var(--text)}
.mail-attachment-chip:hover{border-color:var(--primary)}
.mail-attachment-name{max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-images-banner{
  display:flex;align-items:center;flex-wrap:wrap;gap:.45rem .65rem;
  padding:.45rem .65rem;border:1px solid color-mix(in srgb,var(--warning) 35%,var(--border));
  border-radius:var(--radius);background:color-mix(in srgb,var(--warning) 10%,var(--surface));
  font-size:.78rem;flex:0 0 auto;
}
.mail-images-banner.is-loaded{
  border-color:color-mix(in srgb,var(--success) 30%,var(--border));
  background:color-mix(in srgb,var(--success) 8%,var(--surface));
}
.mail-images-banner-text{flex:1 1 auto;font-weight:600;color:var(--text)}
.mail-images-load-btn{color:var(--primary);border-color:var(--border-strong)}
.mail-images-load-btn:hover{background:color-mix(in srgb,var(--primary) 10%,var(--surface))}
.mail-images-load-btn svg{display:block}
.mail-read-body{
  border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);
  min-height:0;flex:1 1 auto;overflow:hidden;display:flex;flex-direction:column;
}
.mail-iframe{display:block;width:100%;flex:1 1 auto;min-height:0;height:100%;border:0;background:#fff}
.mail-body-text{margin:0;padding:.85rem;white-space:pre-wrap;font-size:.82rem;font-family:ui-monospace,monospace}
.mail-thread{border-top:1px solid var(--border);padding-top:.65rem;flex:0 0 auto;max-height:min(28vh,220px);overflow:auto}
.mail-thread h3{font-size:.8rem;margin:0 0 .4rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.mail-thread-list{list-style:none;margin:0;padding:0;display:grid;gap:.25rem}
.mail-thread-item{display:grid;grid-template-columns:1fr auto;gap:.15rem .75rem;width:100%;text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:.45rem .6rem;cursor:pointer;font:inherit}
.mail-thread-item strong{font-size:.78rem}
.mail-thread-item span{grid-column:1;font-size:.74rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-thread-item time{grid-column:2;grid-row:1 / span 2;font-size:.68rem;color:var(--muted);align-self:center}
.mail-thread-list li.is-current .mail-thread-item{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--surface))}
.mail-compose-modal{width:80vw;max-width:80vw;max-height:min(92vh,960px);display:flex;flex-direction:column}
.mail-compose-modal.modal-wide{width:80vw;max-width:80vw}
.mail-files-picker-modal{
  width:min(720px,96vw);
  max-height:min(85vh,720px);
  display:flex;
  flex-direction:column;
}
.mail-files-picker-body{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:.55rem;
}
.mail-files-picker-body .mail-files-search{width:100%;max-width:none}
[data-mail-files-picker] [data-lookup-panel]{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:0;
  overflow:hidden;
  border:1px solid var(--border-strong);
  border-radius:var(--radius);
  background:var(--surface);
}
.mail-files-table-wrap{
  flex:1 1 auto;
  min-height:0;
  max-height:min(48vh,380px);
  overflow:auto;
}
.mail-files-footer{
  flex:0 0 auto;
  border-top:1px solid var(--border-strong);
  border-bottom:0;
  padding:.4rem .55rem;
}
.mail-scheduled-modal{width:min(960px,96vw);max-height:min(85vh,720px);display:flex;flex-direction:column}
.mail-scheduled-modal .modal-body{flex:1 1 auto;min-height:0;overflow:auto}
.mail-scheduled-table-wrap{max-height:min(52vh,420px);overflow:auto;border:1px solid var(--border-strong);border-radius:var(--radius)}
.mail-scheduled-to{max-width:220px;overflow:hidden;text-overflow:ellipsis}
.mail-scheduled-actions{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end}
.mail-compose-modal form{display:flex;flex-direction:column;min-height:0;flex:1}
.mail-compose-header{align-items:center}
.mail-compose-header-actions{display:flex;align-items:center;gap:.35rem;flex:0 0 auto;flex-wrap:nowrap}
.mail-compose-body{flex:1 1 auto;min-height:0;max-height:min(72vh,720px);overflow:auto}
.mail-compose-message{display:flex;flex-direction:column;gap:.35rem}
.mail-compose-message-label{font-weight:600;font-size:.8rem;color:var(--text)}
/* Campos do compose: fundo contrastante com o modal */
.mail-compose-modal .field-label{color:var(--text)}
.mail-compose-modal input:not([type="hidden"]):not([type="file"]),
.mail-compose-modal select,
.mail-compose-modal .mail-template-select,
.mail-compose-modal .mail-body-fallback{
  background:color-mix(in srgb,var(--surface-2) 82%,#ffffff 18%);
  color:var(--text);
  border:1px solid color-mix(in srgb,var(--muted) 55%,var(--border-strong));
  box-shadow:inset 0 1px 0 color-mix(in srgb,#fff 6%,transparent);
}
[data-theme="dark"] .mail-compose-modal input:not([type="hidden"]):not([type="file"]),
[data-theme="dark"] .mail-compose-modal select,
[data-theme="dark"] .mail-compose-modal .mail-template-select,
[data-theme="dark"] .mail-compose-modal .mail-body-fallback,
[data-theme="system"] .mail-compose-modal input:not([type="hidden"]):not([type="file"]),
[data-theme="system"] .mail-compose-modal select,
[data-theme="system"] .mail-compose-modal .mail-template-select,
[data-theme="system"] .mail-compose-modal .mail-body-fallback{
  background:#243044;
  border-color:#6b7c9a;
  color:#edf2fb;
  box-shadow:inset 0 0 0 1px rgb(255 255 255 / 4%);
}
@media (prefers-color-scheme: dark) {
  [data-theme="system"] .mail-compose-modal input:not([type="hidden"]):not([type="file"]),
  [data-theme="system"] .mail-compose-modal select,
  [data-theme="system"] .mail-compose-modal .mail-template-select,
  [data-theme="system"] .mail-compose-modal .mail-body-fallback{
    background:#243044;
    border-color:#6b7c9a;
    color:#edf2fb;
  }
}
.mail-compose-modal input:not([type="hidden"]):not([type="file"]):focus,
.mail-compose-modal select:focus,
.mail-compose-modal .mail-template-select:focus,
.mail-compose-modal .mail-body-fallback:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 28%,transparent);
}
.mail-compose-modal .icon-button{
  background:#243044;
  border-color:#6b7c9a;
  color:#edf2fb;
}
[data-theme="light"] .mail-compose-modal .icon-button{
  background:var(--surface-2);
  border-color:var(--border-strong);
  color:var(--text);
}
.mail-compose-modal .icon-button:hover{background:color-mix(in srgb,var(--primary) 18%,#243044);color:#fff}
.mail-body-fallback{
  width:100%;min-height:200px;resize:vertical;padding:.75rem .9rem;font:inherit;line-height:1.45;
  border-radius:0 0 var(--radius-sm) var(--radius-sm);
}
.mail-quill-toolbar.ql-snow button{
  display:inline-flex!important;align-items:center;justify-content:center;
  min-width:28px;height:28px;font-size:.78rem;font-weight:700;line-height:1;
  color:var(--text)!important;opacity:1!important;
}
.mail-quill-toolbar.ql-snow button svg{width:18px;height:18px}
[data-theme="dark"] .mail-quill,
[data-theme="system"] .mail-quill{
  background:#1a2233;border-color:#6b7c9a;
}
[data-theme="dark"] .mail-quill-toolbar.ql-toolbar.ql-snow,
[data-theme="system"] .mail-quill-toolbar.ql-toolbar.ql-snow{
  background:#1f2a3d;border-color:#6b7c9a;
}
[data-theme="dark"] .mail-quill .ql-editor,
[data-theme="system"] .mail-quill .ql-editor{
  color:#edf2fb;caret-color:#edf2fb;
}
.mail-quill .ql-editor{
  min-height:180px;font-size:.88rem;cursor:text;color:var(--text);
  overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;
}
.mail-quill .ql-editor *{caret-color:inherit;max-width:100%}
.mail-quill .ql-editor img{max-width:100%;height:auto}
.mail-quill .ql-editor table{width:100%!important;max-width:100%;table-layout:fixed;border-collapse:collapse}
.mail-quill .ql-editor th,
.mail-quill .ql-editor td{
  white-space:normal!important;
  word-break:break-word;
  overflow-wrap:anywhere;
}
.mail-quill .ql-editor blockquote{
  border-left:3px solid color-mix(in srgb,var(--muted) 55%,transparent);
  margin:.35rem 0;
  padding:.15rem 0 .15rem .75rem;
  color:color-mix(in srgb,var(--text) 78%,var(--muted));
}
/* Toolbar Quill — uma linha (scroll horizontal se necessário) */
.mail-compose-message{position:relative;overflow:visible;z-index:1}
.mail-quill-toolbar.ql-toolbar.ql-snow,
.mail-quill-toolbar{
  border:1px solid var(--border-strong);
  border-bottom:0;
  border-radius:var(--radius-sm) var(--radius-sm) 0 0;
  background:var(--surface-2);
  padding:.3rem .4rem;
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  gap:.2rem;
  position:sticky;top:0;z-index:40;
  color:var(--text);
  overflow-x:auto;
  overflow-y:hidden;
  white-space:nowrap;
  scrollbar-width:thin;
}
/* Dropdowns (fonte/tamanho/cor) precisam escapar da faixa com overflow */
.mail-quill-toolbar.ql-toolbar.ql-snow:has(.ql-picker.ql-expanded),
.mail-quill-toolbar:has(.ql-picker.ql-expanded){
  overflow:visible;
}
.mail-quill-toolbar.ql-snow::after{display:none!important;clear:none!important}
.mail-quill-toolbar.ql-snow .ql-formats{
  display:inline-flex;
  flex-wrap:nowrap;
  align-items:center;
  float:none!important;
  margin:0 .35rem 0 0;
  vertical-align:middle;
  white-space:nowrap;
}
.mail-quill-toolbar.ql-snow .ql-formats:last-child{margin-right:0}
.mail-quill-toolbar.ql-snow button,
.mail-quill-toolbar.ql-snow .ql-picker{
  float:none!important;
  vertical-align:middle;
}
.mail-quill-toolbar.ql-snow .ql-picker{height:24px;position:relative;z-index:1}
.mail-quill-toolbar.ql-snow .ql-picker.ql-expanded{z-index:50}
.mail-quill-toolbar.ql-snow .ql-align .ql-picker-label,
.mail-quill-toolbar.ql-snow .ql-align .ql-picker-item{display:inline-flex;align-items:center;justify-content:center}
.mail-quill-toolbar.ql-snow .ql-stroke{
  stroke:var(--muted);
  fill:none;
}
.mail-quill-toolbar.ql-snow .ql-stroke-miter{stroke:var(--muted)}
.mail-quill-toolbar.ql-snow .ql-fill,
.mail-quill-toolbar.ql-snow .ql-stroke.ql-fill{fill:var(--muted)}
.mail-quill-toolbar.ql-snow .ql-thin{stroke:var(--muted)}
.mail-quill-toolbar.ql-snow button,
.mail-quill-toolbar.ql-snow .ql-picker{
  color:var(--text);
}
.mail-quill-toolbar.ql-snow button:hover,
.mail-quill-toolbar.ql-snow button:focus,
.mail-quill-toolbar.ql-snow button.ql-active,
.mail-quill-toolbar.ql-snow .ql-picker-label:hover,
.mail-quill-toolbar.ql-snow .ql-picker-label.ql-active,
.mail-quill-toolbar.ql-snow .ql-picker-item:hover,
.mail-quill-toolbar.ql-snow .ql-picker-item.ql-selected{
  color:var(--primary);
}
.mail-quill-toolbar.ql-snow button:hover .ql-stroke,
.mail-quill-toolbar.ql-snow button:focus .ql-stroke,
.mail-quill-toolbar.ql-snow button.ql-active .ql-stroke,
.mail-quill-toolbar.ql-snow .ql-picker-label:hover .ql-stroke,
.mail-quill-toolbar.ql-snow .ql-picker-label.ql-active .ql-stroke{
  stroke:var(--primary);
}
.mail-quill-toolbar.ql-snow button:hover .ql-fill,
.mail-quill-toolbar.ql-snow button:focus .ql-fill,
.mail-quill-toolbar.ql-snow button.ql-active .ql-fill,
.mail-quill-toolbar.ql-snow .ql-picker-label:hover .ql-fill,
.mail-quill-toolbar.ql-snow .ql-picker-label.ql-active .ql-fill{
  fill:var(--primary);
}
.mail-quill-toolbar.ql-snow .ql-picker-label{border-color:transparent;color:var(--text)}
.mail-quill-toolbar.ql-snow .ql-picker-options{
  background:var(--surface);
  border:1px solid var(--border-strong);
  box-shadow:var(--shadow-pop);
  color:var(--text);
  z-index:50;
  max-height:min(260px,45vh);
  overflow-y:auto;
}
.mail-quill-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label{border-color:var(--border-strong);color:var(--text)}
.mail-quill-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:var(--border-strong);display:block}
.mail-quill-toolbar.ql-snow .ql-color .ql-picker-options,
.mail-quill-toolbar.ql-snow .ql-background .ql-picker-options{padding:4px}
.mail-quill-toolbar.ql-snow .ql-tooltip{
  background:var(--surface);
  border:1px solid var(--border-strong);
  color:var(--text);
  box-shadow:var(--shadow-pop);
}
.mail-quill-toolbar.ql-snow .ql-tooltip input[type="text"]{
  background:var(--surface-2);
  color:var(--text);
  border:1px solid var(--border-strong);
}
.mail-quill-toolbar button.ql-emoji,
.mail-quill-toolbar button.ql-minio,
.mail-quill-toolbar button.ql-photo,
.mail-quill-toolbar button.ql-signature,
.mail-quill-toolbar button.ql-table{
  width:auto;min-width:28px;padding:0 .35rem;font-size:.85rem;color:var(--text);
  filter:none;opacity:1;flex:0 0 auto;
}
.mail-quill-toolbar button.ql-emoji:hover,
.mail-quill-toolbar button.ql-minio:hover,
.mail-quill-toolbar button.ql-photo:hover,
.mail-quill-toolbar button.ql-signature:hover,
.mail-quill-toolbar button.ql-table:hover{color:var(--primary)}
.mail-quill{
  min-height:200px;
  background:var(--surface-2);
  border:1px solid var(--border-strong);
  border-radius:0 0 var(--radius-sm) var(--radius-sm);
  color:var(--text);
  position:relative;
  z-index:0;
}
.mail-quill.ql-container.ql-snow{border:1px solid var(--border-strong);border-top:0;background:var(--surface-2);position:relative;z-index:0}
.mail-quill .ql-editor{
  min-height:180px;font-size:.88rem;cursor:text;color:var(--text);
  overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;
}
.mail-quill .ql-editor.ql-blank::before{
  color:var(--muted);font-style:normal;opacity:.85;left:15px;right:15px;
}
.mail-quill .ql-editor:focus{outline:none}
.mail-quill .ql-editor a{color:var(--primary)}
/* Tooltip de link do Quill fica fora da toolbar */
.ql-snow .ql-tooltip{
  background:var(--surface)!important;
  border:1px solid var(--border-strong)!important;
  color:var(--text)!important;
  box-shadow:var(--shadow-pop);
}
.ql-snow .ql-tooltip input[type="text"]{
  background:var(--surface-2)!important;
  color:var(--text)!important;
  border:1px solid var(--border-strong)!important;
}
.ql-snow .ql-tooltip a{color:var(--primary)!important}
.mail-recipient-row{flex-wrap:nowrap!important}
.mail-recipient-row>[data-recipient-picker]{flex:0 0 auto;order:-1;width:28px;height:28px;min-width:28px;font-size:.78rem}
.mail-recipient-row input{flex:1 1 auto;min-width:0}
.mail-compose-attachments{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}
.mail-template-select{max-width:220px;font-size:.78rem}
.mail-compose-footer{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:nowrap}
.mail-compose-footer-actions{display:flex;align-items:center;gap:.45rem;margin-left:auto;flex-wrap:nowrap}
.mail-compose-modal.is-fullscreen{
  position:fixed;inset:.5rem;width:auto;max-width:none;max-height:none;height:auto;margin:0;z-index:55;
  border-radius:var(--radius-lg);
}
.mail-compose-modal.is-fullscreen .mail-compose-body{max-height:none;flex:1}
.mail-compose-modal.is-fullscreen .mail-quill .ql-editor{min-height:calc(100vh - 380px)}
.modal-backdrop:has(.mail-compose-modal.is-fullscreen){padding:.5rem;align-items:stretch;place-items:stretch}
.mail-emoji-popover{
  position:fixed;z-index:90;width:260px;max-height:220px;overflow:auto;
  display:grid;grid-template-columns:repeat(8,1fr);gap:2px;padding:.4rem;
  background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);
  box-shadow:var(--shadow-pop);color:var(--text);
}
.mail-emoji-popover.hidden{display:none}
.mail-emoji-popover button{border:0;background:transparent;cursor:pointer;font-size:1.15rem;padding:.2rem;border-radius:4px;color:inherit}
.mail-emoji-popover button:hover{background:var(--surface-2)}
.mail-schedule-dialog{
  border:1px solid var(--border-strong);border-radius:var(--radius);padding:1rem 1.1rem;
  background:var(--surface);color:var(--text);max-width:min(420px,94vw);box-shadow:var(--shadow-pop);
}
.mail-schedule-dialog::backdrop{background:rgb(15 23 42 / 45%)}
.mail-schedule-dialog h3{margin:0;font-size:.95rem}
.mail-schedule-dialog input[type="datetime-local"]{
  background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);
  color-scheme:inherit;
}
.mail-provider-presets{
  grid-column:1 / -1;
  display:grid;gap:.45rem;
  padding:.75rem .85rem;
  border:1px solid var(--border-strong);
  border-radius:var(--radius);
  background:var(--surface-2);
  margin-bottom:.25rem;
}
.mail-provider-presets-label{margin:0;font-weight:700;font-size:.82rem;color:var(--text)}
.mail-provider-presets-hint{margin:0;font-size:.74rem}
.mail-provider-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.45rem;
}
.mail-provider-card{
  display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;
  text-align:left;
  padding:.55rem .65rem;
  border:1px solid var(--border-strong);
  border-radius:var(--radius-sm);
  background:var(--surface);
  color:var(--text);
  cursor:pointer;
  font:inherit;
}
.mail-provider-card strong{font-size:.82rem}
.mail-provider-card span{font-size:.68rem;color:var(--muted)}
.mail-provider-card:hover{
  border-color:color-mix(in srgb,var(--primary) 45%,var(--border-strong));
  background:color-mix(in srgb,var(--primary) 8%,var(--surface));
}
.mail-provider-card.is-active{
  border-color:var(--primary);
  background:color-mix(in srgb,var(--primary) 14%,var(--surface));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 35%,transparent);
}
.mail-provider-help{margin:0;font-size:.74rem;line-height:1.4;min-height:2.6em}
.mail-provider-filled{
  outline:2px solid color-mix(in srgb,var(--primary) 45%,transparent);
  outline-offset:1px;
  transition:outline-color .8s ease;
}
@media(max-width:720px){
  .mail-provider-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:720px){
  .mail-compose-modal,.mail-compose-modal.modal-wide{width:96vw;max-width:96vw}
  .mail-compose-footer{flex-wrap:wrap}
}
.mail-whitelist-modal{width:min(520px,100%)}
.mail-whitelist-presets{display:flex;flex-wrap:wrap;gap:.35rem}
.mail-pattern-code{font-size:.82rem;font-weight:600;background:var(--surface-2);padding:.15rem .4rem;border-radius:var(--radius-sm)}
.mail-scope-radios{display:grid;gap:.45rem}

/* Blacklist / SPAM */
.mail-blacklist-modal{width:min(520px,100%)}
.mail-blacklist-scope{border:1px solid var(--border);border-radius:var(--radius);padding:.55rem .75rem;margin:0;display:grid;gap:.45rem}
.mail-blacklist-scope legend{padding:0 .25rem}
.mail-scope-option{display:grid;grid-template-columns:auto 1fr;gap:.55rem;align-items:start;cursor:pointer;font-size:.8rem}
.mail-scope-option input{width:auto;margin:.2rem 0 0}
.mail-scope-option strong{display:block}
.mail-scope-option .muted{display:block;font-size:.72rem}
.mail-account-check-list{list-style:none;margin:.35rem 0 0;padding:0;display:grid;gap:.25rem;max-height:200px;overflow:auto}
.mail-account-check{display:flex;align-items:center;gap:.45rem;font-size:.8rem;cursor:pointer}
.mail-account-check input{width:auto;margin:0}
.mail-rule-assist-backdrop{z-index:60}
.mail-rule-assist-modal{width:min(480px,100%)}
.mail-rule-assist-modal .mail-scope-option{margin-bottom:.15rem}

/* Menu de contexto da lista de e-mails */
.mail-context-menu{
  position:fixed;z-index:70;min-width:220px;max-width:min(280px,92vw);
  padding:.25rem;background:var(--surface);border:1px solid var(--border-strong);
  border-radius:var(--radius);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;gap:.05rem;
}
.mail-context-menu hr{border:0;border-top:1px solid var(--border);margin:.25rem .2rem}
.mail-ctx-item{
  border:0;background:transparent;text-align:left;padding:.42rem .6rem;border-radius:var(--radius-sm);
  font:inherit;font-size:.8rem;color:var(--text);cursor:pointer;
}
.mail-ctx-item:hover,.mail-ctx-item:focus-visible{background:color-mix(in srgb,var(--primary) 10%,var(--surface));outline:0}
.mail-ctx-danger{color:var(--danger)}
.mail-ctx-danger:hover{background:color-mix(in srgb,var(--danger) 8%,var(--surface))}
.mail-ctx-submenu{display:grid;gap:.05rem}
.mail-ctx-has-sub{display:flex;align-items:center;justify-content:space-between}
.mail-ctx-has-sub::after{content:"›";opacity:.55;font-size:.95rem}
.mail-ctx-submenu-panel{display:grid;gap:.05rem;margin:.1rem 0 .15rem .55rem;padding:.15rem 0 .15rem .35rem;border-left:1px solid var(--border)}
.mail-ctx-submenu-panel.hidden{display:none}
.mail-ctx-subitem{font-size:.76rem;color:var(--muted)}
.mail-ctx-subitem:hover{color:var(--text)}
.mail-address{display:inline-flex;align-items:center;gap:.25rem;flex-wrap:wrap;max-width:100%;cursor:context-menu;border-radius:var(--radius-sm);padding:.05rem .1rem}
.mail-address:hover,.mail-address:focus-visible{background:color-mix(in srgb,var(--primary) 8%,transparent);outline:0}
.mail-address-text{min-width:0}
.mail-entity-pill:hover{background:color-mix(in srgb,var(--primary) 18%,var(--surface));border-color:var(--primary)}
.mail-msg-from{display:flex;align-items:center;gap:.25rem;min-width:0;flex-wrap:wrap}
.mail-related-entities{display:flex;flex-wrap:wrap;gap:.25rem}

/* Modal Mover para… */
.mail-move-modal{width:min(480px,100%)}
.mail-move-subject{margin:0 0 .65rem;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-move-folders{max-height:min(50vh,420px);overflow:auto;border:1px solid var(--border);border-radius:var(--radius);padding:.25rem 0}
.mail-move-account{
  padding:.45rem .75rem .25rem;font-size:.68rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.04em;color:var(--muted);position:sticky;top:0;background:var(--surface-2);
}
.mail-move-folder{
  display:grid;grid-template-columns:auto 1fr auto;gap:.45rem;align-items:center;
  padding:.4rem .75rem;padding-left:calc(.75rem + (var(--depth, 0) * 0.85rem));cursor:pointer;font-size:.8rem;
}
.mail-move-folder:hover{background:color-mix(in srgb,var(--primary) 7%,var(--surface))}
.mail-move-folder:has(input:disabled){opacity:.45;cursor:not-allowed}
.mail-move-folder input{width:auto;margin:0}
.mail-move-folder-name{font-weight:600}
.mail-move-folder-path{font-size:.68rem;font-family:ui-monospace,monospace}
.mail-rule-modal{width:min(720px,100%)}
.mail-rule-fieldset{border:1px solid var(--border, #e5e7eb);border-radius:.5rem;padding:.75rem 1rem;margin:0}
.mail-rule-fieldset legend{font-size:.78rem;font-weight:600;padding:0 .35rem}
.mail-rule-conditions{display:flex;flex-direction:column;gap:.45rem}
.mail-rule-cond-row{display:grid;grid-template-columns:minmax(7rem,1fr) minmax(8rem,1.2fr) minmax(0,1.6fr) auto;gap:.4rem;align-items:center}
.mail-rule-cond-row:has([data-cond-header]:not(.hidden)){grid-template-columns:minmax(6rem,.9fr) minmax(7rem,1fr) minmax(6rem,.9fr) minmax(0,1.2fr) auto}
.mail-rule-mark-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.35rem .75rem;font-size:.8rem}
.mail-rule-mark-grid label{display:flex;gap:.4rem;align-items:center;cursor:pointer}
.mail-rule-mark-grid input{width:auto}
.mail-vacation-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.mail-vacation-weekdays{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}
.mail-weekday{display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:600;border:1px solid var(--border,#e5e7eb);border-radius:.35rem;padding:.25rem .45rem;cursor:pointer}
.mail-weekday input{width:auto}
.mail-prefs-indent{margin:.25rem 0 .75rem 1.4rem;display:flex;flex-direction:column;gap:.35rem}
@media(max-width:640px){
  .mail-rule-cond-row,.mail-rule-cond-row:has([data-cond-header]:not(.hidden)),.mail-vacation-grid{grid-template-columns:1fr}
}

.mail-rule-move-row{display:flex;gap:.4rem;align-items:center;width:100%}
.mail-rule-move-row input{flex:1 1 auto;min-width:0}
.mail-rule-move-row .button{flex:0 0 auto;white-space:nowrap}
.mail-rule-folder-host{margin-top:.35rem}
.mail-folder-picker{display:flex;flex-direction:column;gap:.5rem;max-height:min(50vh,420px)}
.mail-folder-picker-search{margin:0}
.mail-folder-picker-list{flex:1 1 auto;min-height:0;overflow:auto;border:1px solid var(--border);border-radius:var(--radius);padding:.25rem 0}
.mail-folder-picker-item{
  display:grid;grid-template-columns:1fr auto;gap:.35rem .75rem;align-items:baseline;width:100%;
  text-align:left;border:0;background:transparent;cursor:pointer;font:inherit;color:var(--text);
  padding:.4rem .75rem;padding-left:calc(.75rem + (var(--depth, 0) * 0.85rem));font-size:.8rem
}
.mail-folder-picker-item:hover,.mail-folder-picker-item:focus-visible{
  background:color-mix(in srgb,var(--primary) 8%,var(--surface));outline:0
}
.mail-folder-picker-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-folder-picker-path{font-size:.68rem;font-family:ui-monospace,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-folder-pick-modal{width:min(520px,100%)}
.mail-rule-assist-modal .field-input-row{display:flex;gap:.35rem;align-items:center}
.mail-rule-assist-modal .field-input-row input[type="text"],
.mail-rule-assist-modal .field-input-row input:not([type]){flex:1 1 auto;min-width:0}

/* Modal janela de leitura */
.mail-window-modal{width:min(880px,100%);max-height:min(90vh,900px);display:flex;flex-direction:column}
.mail-window-modal .modal-body{flex:1 1 auto;min-height:0;overflow:auto}
.mail-window-header{align-items:center}
.mail-window-header h2{font-size:.95rem;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:min(60vw,28rem)}
.mail-window-header-actions{display:flex;align-items:center;gap:.35rem;flex:0 0 auto}
.mail-window-body{display:grid;gap:.75rem}
.mail-window-iframe-wrap{min-height:320px}
.mail-window-iframe{min-height:360px;height:min(50vh,560px)}
.mail-window-modal.is-fullscreen{
  position:fixed;inset:.5rem;width:auto;max-width:none;max-height:none;height:auto;margin:0;z-index:55;
  border-radius:var(--radius-lg);
}
.mail-window-modal.is-fullscreen .mail-window-iframe{height:calc(100vh - 220px);min-height:480px}
.mail-test-modal{width:min(720px,100%)}
.mail-test-summary{border:1px solid var(--border-strong);border-radius:var(--radius);padding:.75rem .9rem;background:var(--surface-2)}
.mail-test-summary.is-ok{border-color:color-mix(in srgb,var(--success) 40%,var(--border));background:color-mix(in srgb,var(--success) 8%,var(--surface))}
.mail-test-summary.is-fail{border-color:color-mix(in srgb,var(--danger) 35%,var(--border));background:color-mix(in srgb,var(--danger) 7%,var(--surface))}
.mail-test-summary p{margin:.4rem 0 0;font-size:.85rem}
.mail-test-badges{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;margin:.65rem 0 0;font-size:.78rem}
.mail-test-badges dt{color:var(--muted);font-weight:600}
.mail-test-badges dd{margin:0;font-weight:700}
.mail-test-badges dd.is-ok{color:var(--success)}
.mail-test-badges dd.is-fail{color:var(--danger)}
.mail-test-log{border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden}
.mail-test-log-head{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--surface-2);border-bottom:1px solid var(--border);font-size:.8rem}
.mail-test-log-list{list-style:none;margin:0;padding:.35rem 0;max-height:min(50vh,420px);overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}
.mail-test-log-line{display:grid;grid-template-columns:5.6rem 9rem 1fr;gap:.35rem .55rem;padding:.28rem .75rem;border-bottom:1px solid var(--border);align-items:start}
.mail-test-log-line:last-child{border-bottom:0}
.mail-test-log-line time{color:var(--muted);white-space:nowrap}
.mail-test-step{font-weight:700;color:var(--text)}
.mail-test-detail{color:var(--text);overflow-wrap:anywhere}
.mail-test-log-line.is-ok .mail-test-step{color:var(--success)}
.mail-test-log-line.is-error .mail-test-step{color:var(--danger)}
.mail-test-log-line.is-warn .mail-test-step{color:var(--warning)}
.mail-test-log-line.is-info .mail-test-step{color:var(--muted)}
.mail-sync-logs-modal{width:min(860px,100%)}
.mail-sync-summary-bar{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding:.7rem .85rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2);font-size:.8rem}
.mail-sync-summary-bar .muted{display:block;font-size:.68rem;margin-bottom:.15rem}
.mail-sync-summary-bar strong{font-weight:600;word-break:break-word}
.mail-sync-summary-bar .is-fail{color:var(--danger)}
.mail-sync-log-table td,.mail-sync-log-table th{font-size:.78rem}
.mail-sync-summary-cell{max-width:22rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mail-sync-duration{display:block;font-size:.68rem}
.mail-sync-kind,.mail-sync-status{display:inline-block;padding:.12rem .4rem;border-radius:999px;font-size:.68rem;font-weight:700;border:1px solid var(--border)}
.mail-sync-kind.is-sync{background:color-mix(in srgb,var(--primary) 12%,var(--surface));color:var(--primary)}
.mail-sync-kind.is-test{background:color-mix(in srgb,var(--warning) 14%,var(--surface));color:var(--warning)}
.mail-sync-kind.is-send{background:color-mix(in srgb,var(--success) 12%,var(--surface));color:var(--success)}
.mail-sync-status.is-ok{background:color-mix(in srgb,var(--success) 14%,var(--surface));color:var(--success);border-color:color-mix(in srgb,var(--success) 35%,var(--border))}
.mail-sync-status.is-error{background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}
.mail-sync-status.is-partial{background:color-mix(in srgb,var(--warning) 14%,var(--surface));color:var(--warning)}
.mail-sync-status.is-running{background:var(--surface-2);color:var(--muted)}
.mail-test-summary.is-partial{border-color:color-mix(in srgb,var(--warning) 40%,var(--border));background:color-mix(in srgb,var(--warning) 8%,var(--surface))}
@media(max-width:700px){
  .mail-sync-summary-bar{grid-template-columns:1fr}
}

.search-result-section{margin:.35rem .6rem .15rem;color:var(--muted);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.search-result-section:first-child{margin-top:.2rem}

/* --- mesa de atendimento --- */
.at-desk{
  --at-viewport-offset:calc(56px + 3.4rem);
  display:flex;flex-direction:column;
  height:calc(100dvh - var(--at-viewport-offset));
  min-height:0;overflow:hidden;
}
.at-desk>.page-heading{flex:0 0 auto;margin-bottom:.75rem}
.at-layout{
  display:grid;
  grid-template-columns:minmax(240px,.9fr) minmax(320px,1.4fr) minmax(220px,.75fr);
  gap:.65rem;flex:1 1 auto;min-height:0;overflow:hidden;
}
.at-list,.at-thread,.at-panel{min-height:0;max-height:100%;overflow:hidden;display:flex;flex-direction:column;padding:0}
.at-list-toolbar{display:flex;flex-direction:column;gap:.45rem;padding:.55rem .65rem;border-bottom:1px solid var(--border);flex:0 0 auto}
.at-tabs{display:flex;gap:.25rem}
.at-tab{
  flex:1;text-align:center;padding:.35rem .4rem;border-radius:var(--radius-sm);
  border:1px solid var(--border);background:var(--surface-2);color:var(--muted);
  font-size:.78rem;cursor:pointer;text-decoration:none;
}
.at-tab.is-active{background:color-mix(in srgb,var(--primary) 12%,var(--surface));border-color:var(--primary);color:var(--text);font-weight:600}
.at-conv-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1 1 auto;min-height:0}
.at-conv-list li{margin:0;border-bottom:1px solid var(--border)}
.at-conv-item{
  display:grid;gap:.2rem;width:100%;text-align:left;padding:.65rem .7rem;
  border:0;background:transparent;cursor:pointer;color:inherit;font:inherit;
}
.at-conv-item:hover{background:color-mix(in srgb,var(--primary) 6%,var(--surface))}
.at-conv-item.is-selected{background:color-mix(in srgb,var(--primary) 12%,var(--surface))}
.at-conv-top{display:flex;align-items:center;gap:.4rem;justify-content:space-between}
.at-conv-top strong{font-size:.88rem}
.at-badge{display:inline-flex;min-width:1.2rem;justify-content:center;padding:.05rem .35rem;border-radius:999px;background:var(--primary);color:#fff;font-size:.68rem;font-weight:700}
.at-conv-meta{display:flex;flex-wrap:wrap;gap:.25rem;font-size:.7rem}
.at-conv-preview{margin:0;font-size:.76rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.at-list-empty{padding:1.25rem}
.at-estado{text-transform:uppercase;letter-spacing:.04em;font-size:.65rem;font-weight:700}
.at-estado-aberta{color:var(--warning)}
.at-estado-em_atendimento{color:var(--primary)}
.at-estado-resolvida{color:var(--success)}
.at-estado-pendente_cliente,.at-estado-snoozed{color:var(--muted)}
.at-thread-header{
  display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;
  padding:.65rem .75rem;border-bottom:1px solid var(--border);flex:0 0 auto;
}
.at-thread-header h2{margin:0;font-size:1rem}
.at-thread-actions{display:flex;gap:.35rem;flex-wrap:wrap}
.at-messages{flex:1 1 auto;min-height:0;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.55rem}
.at-messages-empty{margin:auto}
.at-msg{max-width:85%;padding:.55rem .7rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2)}
.at-msg-entrada{align-self:flex-start}
.at-msg-saida{align-self:flex-end;background:color-mix(in srgb,var(--primary) 10%,var(--surface));border-color:color-mix(in srgb,var(--primary) 30%,var(--border))}
.at-msg-nota{align-self:center;max-width:95%;background:color-mix(in srgb,var(--warning) 10%,var(--surface));border-style:dashed}
.at-msg-sistema{align-self:center;max-width:95%;background:transparent;border-style:dashed;color:var(--muted);font-size:.78rem}
.at-msg-meta{font-size:.68rem;margin-bottom:.2rem}
.at-msg-body{white-space:pre-wrap;word-break:break-word;font-size:.88rem}
.at-composer{flex:0 0 auto;border-top:1px solid var(--border);padding:.55rem .65rem;display:grid;gap:.4rem;background:var(--surface)}
.at-composer-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.at-note-toggle{font-size:.78rem;color:var(--muted);display:inline-flex;align-items:center;gap:.35rem}
.at-panel-body{padding:.75rem;overflow-y:auto;flex:1 1 auto;min-height:0}
.at-panel-body h2{margin:0 0 .65rem;font-size:.95rem}
.at-facts{display:grid;gap:.55rem;margin:0}
.at-facts div{display:grid;gap:.1rem}
.at-facts dt{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.at-facts dd{margin:0;font-size:.84rem}
.at-panel-hint{margin-top:1rem;font-size:.74rem}
.at-simulate-menu{min-width:260px;padding:.65rem}
.at-simulate-form{display:grid;gap:.45rem}
@media (max-width:1100px){
  .at-layout{grid-template-columns:minmax(220px,1fr) minmax(280px,1.2fr);grid-template-rows:1fr auto}
  .at-panel{grid-column:1 / -1;max-height:180px}
}
@media (max-width:720px){
  .at-layout{grid-template-columns:1fr;grid-template-rows:minmax(180px,.7fr) minmax(240px,1.2fr) minmax(140px,.5fr)}
}

/* --- canal form (at.canal_conta) --- */
[data-canal-form] .modal{display:flex;flex-direction:column;max-height:min(92vh,900px)}
[data-canal-form] form{display:flex;flex-direction:column;min-height:0;flex:1 1 auto}
[data-canal-form] .modal-body[data-form-panel]{flex:1 1 auto;min-height:0;overflow:auto;max-height:min(68vh,640px)}
[data-canal-form] .modal-body[data-form-panel="geral"]{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
[data-canal-form] .canal-config-section,
[data-canal-form] [data-field-widget="textarea"]{grid-column:1/-1}
.canal-config-section,.canal-secrets-body{display:grid;gap:.65rem}
.canal-config-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}
.canal-config-title{margin:0;font-size:.92rem}
.canal-config-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.canal-field.is-wide{grid-column:1/-1}
.canal-config-empty{grid-column:1/-1;padding:.5rem 0}
.canal-risco{padding:.65rem .75rem;border:1px solid color-mix(in srgb,var(--warning) 45%,var(--border));border-radius:var(--radius);background:color-mix(in srgb,var(--warning) 10%,var(--surface));font-size:.8rem;color:var(--text)}
.canal-risco.is-visible{display:block}
.canal-secret-fields{display:grid;gap:.45rem;grid-template-columns:1fr 1fr}
.canal-secret-actions{display:flex;gap:.4rem}
.canal-activation{display:grid;gap:.55rem;padding:.7rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2)}
.canal-activation h3{margin:0;font-size:.92rem}
.canal-activation h4{margin:.2rem 0 0;font-size:.82rem}
.canal-webhook-url{display:block;padding:.4rem .55rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.72rem;word-break:break-all;cursor:pointer}
.canal-webhook-url:hover{border-color:var(--accent,#3b82f6)}
.canal-gowa-env{display:grid;gap:.45rem;padding:.55rem;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface)}
.canal-copy-field{display:grid;gap:.2rem;margin:0}
.canal-copy-field>span{font-size:.72rem;font-weight:600;color:var(--muted)}
.canal-copy-field.is-copied .canal-webhook-url{outline:2px solid var(--accent,#3b82f6)}
.canal-gowa-hint{padding:.4rem .5rem;border-left:3px solid var(--accent,#3b82f6);margin-bottom:.35rem;font-size:.78rem}
.canal-steps{margin:.25rem 0 0;padding-left:1.1rem;font-size:.8rem;color:var(--muted)}
.canal-gowa-actions{display:flex;gap:.4rem;flex-wrap:wrap}
.canal-gowa-qr{display:grid;gap:.35rem;justify-items:start}
.canal-gowa-qr img{border:1px solid var(--border);border-radius:var(--radius);background:#fff}
@media (max-width:720px){
  [data-canal-form] .modal-body[data-form-panel="geral"],
  .canal-config-fields,.canal-secret-fields{grid-template-columns:1fr}
}
