/* Self-hosted fonts (static/fonts, OFL): the same font on every OS. Before, the stack began with "Proxima Nova",
   which no browser downloaded, so each machine used whatever it had installed (Windows: partial installs, faux bold). */
@font-face{font-family:"Figtree";font-style:normal;font-display:swap;font-weight:300 900;src:url(/fonts/figtree-latin-wght-normal-202cfb54d4e66d1702404ade49339ceb.woff2) format("woff2-variations"),url(/fonts/figtree-latin-wght-normal-202cfb54d4e66d1702404ade49339ceb.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Figtree";font-style:normal;font-display:swap;font-weight:300 900;src:url(/fonts/figtree-latin-ext-wght-normal-eca8d8b337ff647d44857ad24dae0251.woff2) format("woff2-variations"),url(/fonts/figtree-latin-ext-wght-normal-eca8d8b337ff647d44857ad24dae0251.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-wght-normal-b058178d7f309414f8f856b99fd80d9b.woff2) format("woff2-variations"),url(/fonts/jetbrains-mono-latin-wght-normal-b058178d7f309414f8f856b99fd80d9b.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* CLASS Configuration Portal — design tokens and components.
   Source of truth: docs/design (Sutherland UI Standards). Light theme by default; body.t-dark switches to dark.
   No inline styles anywhere: the Content-Security-Policy forbids them, so every style lives here. */
html,body{margin:0;height:100%}
.app{--bg:#F2F3F6;--surface:#FFFFFF;--surface-2:#F6F7F9;--surface-3:#ECEEF2;--border:#E1E3E8;--border-strong:#C5C7C5;--text:#1B1A2E;--text-2:#454F52;--muted:#5F6A6D;--primary:#2E79BB;--primary-h:#25659E;--link:#2468A6;--primary-soft:#E7F0F9;--navy:#26235D;--navy-2:#1C1A4A;--navy-3:#353172;--red:#DE1B54;--red-btn:#C8174A;--red-text:#B0123F;--red-soft:#FCE8EE;--orange:#F99F42;--orange-text:#8F4C00;--orange-soft:#FEF1E2;--green:#6CC049;--green-text:#2C7314;--green-soft:#E9F6E3;--yellow:#F7D752;--yellow-soft:#FEF8D8;--violet:#5B4FC4;--shadow:0 1px 2px rgba(20,18,60,.06),0 1px 3px rgba(20,18,60,.05);font-family:Figtree,"Segoe UI",Arial,sans-serif;color:var(--text);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
.app.t-dark{--bg:#100F22;--surface:#18172F;--surface-2:#1F1E3A;--surface-3:#28274A;--border:#2D2C52;--border-strong:#45446E;--text:#ECECF5;--text-2:#C7C8DA;--muted:#A0A2BA;--link:#7FB3E6;--primary-soft:#1D3150;--navy:#141331;--navy-2:#0B0A1E;--navy-3:#2A2860;--red-text:#FF7FA2;--red-soft:#3A1628;--orange-text:#FFB774;--orange-soft:#3A2814;--green-text:#94DB77;--green-soft:#1B3317;--yellow-soft:#37311A;--shadow:none}
.app *{box-sizing:border-box}
.app a{color:var(--link)}
.app a:hover{color:var(--primary-h)}
.app.t-dark a:hover{color:#A5CBF0}
.mono{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:12px}
svg.i{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
h1,h2,h3,h4{margin:0}
.top{min-height:56px;background:var(--navy-2);color:#fff;display:flex;align-items:center;gap:14px;padding:8px 16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;padding-right:6px}
.app .brand,.app .brand:hover{color:#fff}
.brand .bt{font-weight:800;letter-spacing:.06em;font-size:15px}
.brand .bs{font-weight:500;font-size:14px;color:#CFCDEA}
.bt.bt-name{letter-spacing:0}
.env{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:12px;border:1px solid #F15C87;color:#FF9FBB;font-size:11px;font-weight:700;letter-spacing:.08em}
.env .dot{width:7px;height:7px;border-radius:50%;background:#F15C87}
.tsel{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 10px;border-radius:4px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#E6E5F5;font:inherit;font-size:13px;cursor:pointer}
.gsearch{flex:1 1 260px;max-width:520px;display:flex;align-items:center;gap:8px;height:36px;padding:0 10px;border-radius:4px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#BDBBDA}
.gsearch input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:#fff;font:inherit;font-size:13.5px}
.gsearch input::placeholder{color:#AFADD0}
.gsearch kbd{font-family:inherit;font-size:11px;border:1px solid rgba(255,255,255,.22);border-radius:3px;padding:1px 5px;color:#CFCDEA}
.tr{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.idle,.conn{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#CFCDEA}
.idle b{color:#fff;font-weight:500}
.conn{color:#A9E290}
.ib{position:relative;width:36px;height:36px;border-radius:4px;border:0;background:transparent;color:#E6E5F5;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.bdg{position:absolute;top:3px;right:2px;min-width:16px;height:16px;border-radius:8px;background:var(--red);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--navy-2)}
.um{display:inline-flex;align-items:center;gap:8px;background:transparent;border:0;color:#fff;font:inherit;cursor:pointer;padding:2px 4px;text-align:left}
.umt{display:flex;flex-direction:column;line-height:1.15}
.umt b{font-size:13px}
.umt small{font-size:11.5px;color:#BDBBDA}
.body{display:flex;flex-wrap:wrap;flex:1;align-items:stretch}
.nav{background:var(--navy);color:#D3D2EA;flex:1 0 236px;max-width:100%;padding:10px 0 20px;display:flex;flex-direction:column}
@media (min-width:900px){.nav{flex:0 0 236px}}
.nav-g{padding:16px 20px 6px;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#9C9AC9;font-weight:700}
.app .nv{display:flex;align-items:center;gap:11px;min-height:34px;margin:1px 10px;padding:0 10px;border-radius:4px;color:#D8D7EE;text-decoration:none;font-size:13.5px}
.app .nv:hover{background:rgba(255,255,255,.06);color:#fff}
.app .nv.on{background:var(--navy-3);color:#fff;font-weight:600}
.nv.on svg{color:#FF7FA2}
.nv svg{color:#A9A7D3}
.nb{margin-left:auto;min-width:20px;height:18px;border-radius:9px;background:rgba(255,255,255,.12);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 6px;color:#fff}
.nav-foot{margin-top:auto;padding:20px 20px 0;font-size:11.5px;color:#A6A4CF;line-height:1.4}
.app .nav-foot a{color:#CFCDEA}
.page{flex:999 1 560px;min-width:0;padding:20px 28px 48px}
.crumb{font-size:12.5px;color:var(--muted);display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.app .crumb a{text-decoration:none}
.h1{font-size:24px;font-weight:700;letter-spacing:-.01em;margin-top:4px}
.sub{color:var(--muted);font-size:13px;margin-top:4px;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.ph{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px}
.acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 14px;border-radius:4px;font-family:inherit;font-size:13px;font-weight:600;border:1px solid transparent;cursor:pointer;background:#E8E8E8;color:#454F52;white-space:nowrap;text-decoration:none;line-height:1}
.app .btn-primary,.app .btn-primary:hover{background:var(--primary);color:#fff}
.app .btn-primary:hover{background:var(--primary-h)}
.app .btn-outline{background:transparent;border-color:var(--primary);color:var(--link)}
.app .btn-secondary{background:var(--surface);color:var(--text-2);border-color:var(--border-strong)}
.app .btn-danger{background:var(--red-btn);color:#fff}
.app .btn-danger-o{background:transparent;color:var(--red-text);border-color:var(--red-text)}
.app .btn-ghost{background:transparent;color:var(--text-2)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn-sm{height:28px;padding:0 10px;font-size:12px}
.btn-icon{width:34px;padding:0}
.btn-sm.btn-icon{width:28px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow);min-width:0}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.card-h h3{font-size:15px;font-weight:700}
.card-b{padding:16px}
.eyebrow{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:700}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.kpi{padding:16px}
.kpi .v{font-size:28px;font-weight:700;letter-spacing:-.02em;margin-top:6px;line-height:1.1}
.kpi .d{font-size:12.5px;color:var(--muted);margin-top:6px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tbox{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:13px}
.tbl th{background:var(--surface-3);text-align:left;font-weight:600;color:var(--text-2);font-size:12px;padding:0 12px;height:40px;white-space:nowrap}
.tbl th .s{display:inline-flex;align-items:center;gap:4px}
.tbl td{padding:0 12px;height:44px;border-top:1px solid var(--border);white-space:nowrap}
.tbl tbody tr:nth-child(even) td{background:var(--surface-2)}
.tbl .app-link,.app .tbl a.lk{color:var(--link);font-weight:600;text-decoration:none}
.tbl tr.sel td{background:var(--primary-soft)!important}
.tbl tr.flash td{background:#E3EEFA!important}
.t-dark .tbl tr.flash td{background:#1E3352!important}
.tbl td.num,.tbl th.num{text-align:right}
.pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:11px;font-size:12px;font-weight:600;white-space:nowrap}
.pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.p-green{background:var(--green-soft);color:var(--green-text)}
.p-red{background:var(--red-soft);color:var(--red-text)}
.p-orange{background:var(--orange-soft);color:var(--orange-text)}
.p-blue{background:var(--primary-soft);color:var(--link)}
.p-gray{background:var(--surface-3);color:var(--text-2)}
.p-violet{background:#EEECFB;color:#4B40AE}
.t-dark .p-violet{background:#2A2650;color:#B9B1FF}
.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 6px 0 10px;border-radius:4px;background:var(--surface-3);color:var(--text-2);font-size:12.5px;border:1px solid var(--border)}
.chip b{color:var(--text)}
.chip button{border:0;background:transparent;color:var(--muted);width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.av{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;border:2px solid var(--surface);flex:none;letter-spacing:.02em}
.top .av{border-color:var(--navy-2)}
.av-sm{width:24px;height:24px;font-size:10px}
.avs{display:inline-flex;align-items:center}
.avs .av+.av{margin-left:-8px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field>label,.lbl{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}
.input{height:36px;border:1px solid var(--border-strong);border-radius:4px;padding:0 10px;background:var(--surface);color:var(--text);font-family:inherit;font-size:13.5px;width:100%;min-width:0}
.input:focus{outline:2px solid var(--primary);outline-offset:-1px}
textarea.input{height:auto;padding:8px 10px;resize:vertical}
.input.mono{font-size:12.5px}
.input.chg{border-color:var(--orange);background:var(--orange-soft)}
.sel-wrap{position:relative}
select.input{appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 15px) 16px,calc(100% - 10px) 16px;background-size:5px 5px;background-repeat:no-repeat}
.help{font-size:12px;color:var(--muted)}
.ro{font-size:14px;color:var(--text);min-height:20px}
.sw{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:13.5px}
.sw input{position:absolute;opacity:0;width:36px;height:20px;margin:0}
.sw .tk{width:36px;height:20px;border-radius:10px;background:var(--border-strong);position:relative;flex:none;transition:background .15s}
.sw .tk::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:left .15s}
.sw input:checked+.tk{background:var(--primary)}
.sw input:checked+.tk::after{left:18px}
.app input[type=checkbox],.app input[type=radio]{accent-color:#2E79BB;width:16px;height:16px;margin:0;cursor:pointer}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);overflow-x:auto}
.app .tab{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;font-size:13.5px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;text-decoration:none;white-space:nowrap;margin-bottom:-1px}
.app .tab.on{color:var(--text);border-bottom-color:var(--primary)}
.tab .ct{font-size:11px;font-weight:700;background:var(--surface-3);color:var(--text-2);border-radius:9px;padding:1px 7px}
.alert{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:5px;font-size:13px}
.alert b{display:block;font-size:13.5px;margin-bottom:1px}
.alert .x{margin-left:auto;border:0;background:transparent;color:inherit;cursor:pointer;padding:2px;display:inline-flex}
.a-warn{background:var(--yellow);color:#1B1A2E}
.a-info{background:var(--primary);color:#fff}
.a-ok{background:#4F9E2F;color:#fff}
.a-err{background:var(--red-btn);color:#fff}
.a-soft{background:var(--primary-soft);color:var(--text);border:1px solid #C9DDF0}
.t-dark .a-soft{border-color:#2B4A72}
.toast{position:absolute;right:24px;bottom:24px;width:390px;max-width:calc(100% - 32px);background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 12px 32px rgba(20,18,60,.22);display:flex;gap:12px;padding:14px 14px 14px 16px;z-index:5}
.toast .ti{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none}
.toast p{margin:2px 0 8px;font-size:12.5px;color:var(--text-2)}
.toast b{font-size:13.5px}
.toast .x{border:0;background:transparent;color:var(--muted);cursor:pointer;align-self:flex-start;display:inline-flex;padding:2px}
.bar{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden}
.bar>span{display:block;height:100%;border-radius:3px;background:var(--primary)}
.steps{display:flex;align-items:center;gap:0;flex-wrap:wrap}
.step{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;color:var(--muted)}
.step .n{width:22px;height:22px;border-radius:50%;border:2px solid var(--border-strong);display:flex;align-items:center;justify-content:center;font-size:11px;flex:none;background:var(--surface)}
.step.done{color:var(--text)}
.step.done .n{background:var(--primary);border-color:var(--primary);color:#fff}
.step.cur{color:var(--link)}
.step.cur .n{border-color:var(--primary);color:var(--link)}
.step-l{flex:1 1 24px;min-width:16px;height:2px;background:var(--border-strong);margin:0 10px}
.step-l.done{background:var(--primary)}
.secret{display:flex;align-items:center;gap:10px;min-height:36px;padding:6px 6px 6px 10px;border:1px dashed var(--border-strong);border-radius:4px;background:var(--surface-2);min-width:0}
.secret .mask{font-family:"JetBrains Mono",monospace;letter-spacing:.12em;color:var(--text-2);font-size:12px}
.secret .meta{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.wo{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:3px;background:var(--navy);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;flex:none}
.t-dark .wo{background:#3A3780}
.live-dot{width:8px;height:8px;border-radius:50%;background:#4FAF2A;box-shadow:0 0 0 3px rgba(79,175,42,.2);display:inline-block}
.feed{list-style:none;margin:0;padding:0}
.feed li{display:flex;gap:12px;padding:12px 16px;border-top:1px solid var(--border);font-size:13px}
.feed li:first-child{border-top:0}
.feed .t{color:var(--muted);font-size:12px;margin-top:2px}
.kv{display:grid;grid-template-columns:minmax(110px,auto) 1fr;gap:9px 14px;font-size:13px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis}
.tool{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 16px}
.search{display:flex;align-items:center;gap:8px;height:36px;padding:0 10px;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);color:var(--muted);flex:0 1 300px;min-width:180px}
.search input{border:0;outline:0;background:transparent;font:inherit;font-size:13.5px;color:var(--text);flex:1;min-width:0}
.pager{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--border);font-size:13px;color:var(--muted)}
.pg{display:flex}
.app .pg a{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:34px;padding:0 12px;border:1px solid var(--border);margin-left:-1px;text-decoration:none;color:var(--link);font-size:13px;background:var(--surface)}
.app .pg a.on{background:var(--primary);border-color:var(--primary);color:#fff}
.app .pg a.dis{color:var(--muted)}
.ico-tile{width:44px;height:44px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;flex:none}
.savebar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 6px 6px}
.diff-del{background:#FDECEF;color:#8A0F33}
.diff-add{background:#E6F5DE;color:#1F5C0B}
.t-dark .diff-del{background:#3A1628;color:#FFB3C6}
.t-dark .diff-add{background:#1B3317;color:#B8EBA3}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.mut{color:var(--muted)}
.lock{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:12px}
.edit-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--orange-text)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}
.node{position:absolute;width:220px;height:60px;background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;display:flex;align-items:center;gap:10px;padding:0 12px;box-shadow:0 1px 3px rgba(20,18,60,.08)}
.node.selected{border:2px solid var(--primary);box-shadow:0 0 0 4px rgba(46,121,187,.18)}
.node.remote{border:2px solid #5B4FC4}
.nic{width:30px;height:30px;border-radius:5px;display:flex;align-items:center;justify-content:center;color:#fff;flex:none}
.nt{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ns{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.el{position:absolute;font-size:11px;font-weight:600;background:var(--surface);padding:1px 6px;border-radius:3px;border:1px solid var(--border);color:var(--text-2);white-space:nowrap}
.pal{display:flex;align-items:center;gap:9px;padding:7px 10px;border:1px solid var(--border);border-radius:4px;background:var(--surface);font-size:12.5px;cursor:grab}
.pal .nic{width:22px;height:22px;border-radius:4px}
.matrix td{text-align:center}
.matrix td:first-child{text-align:left}
.matrix tr.grp td{background:var(--surface-3)!important;font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-2);height:34px}
.na{color:var(--border-strong)}

/* ---- Font Awesome 5 icons in place of the design's inline SVGs ---- */
.nv i{width:16px;text-align:center;color:#A9A7D3;font-size:14px}
.nv.on i{color:#FF7FA2}
.top i{font-size:14px}
.btn i{font-size:13px}

/* ---- layout utilities (replace the design's inline styles) ---- */
.app-root{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}
.row{display:flex;align-items:center;gap:8px}
.wrap{flex-wrap:wrap}
.grow{flex:1}
.gap-16{gap:16px}
.mt-16{margin-top:16px}
.mb-16{margin-bottom:16px}
.ink{color:var(--text)}
.sub-unit{font-size:18px;color:var(--muted);font-weight:600}
.status-dot{display:inline-flex;align-items:center;gap:7px}
.toast-region{position:fixed;right:24px;bottom:24px;display:flex;flex-direction:column;gap:12px;z-index:50}
.toast-region .toast{position:static}
.app .nv.nv-soon{opacity:.55;cursor:default}
.app .nv.nv-soon:hover{background:transparent;color:#D8D7EE}
.conn.off{color:#BDBBDA}

/* ---- sign-in, password change, error pages (design screen 01) ---- */
.login{display:flex;flex-wrap:wrap;min-height:100vh;background:var(--surface)}
.login-hero{flex:1 1 520px;background:#1C1A4A;color:#fff;padding:48px 56px;display:flex;flex-direction:column;gap:32px;position:relative;overflow:hidden}
.login-ring{position:absolute;right:-120px;top:-80px;width:520px;height:520px;border-radius:50%;border:70px solid rgba(222,27,84,.12)}
.login-brand{display:flex;align-items:center;gap:12px;position:relative}
.login-brand .bt{font-weight:800;letter-spacing:.06em;font-size:18px}
.login-brand .bs{font-size:17px;color:#CFCDEA}
.login-brand-dark .bt{color:var(--text)}
.login-brand-dark .bs{color:var(--muted)}
.login-pitch{margin-top:auto;position:relative;max-width:520px}
.login-pitch h1{font-size:40px;line-height:1.12;font-weight:800;letter-spacing:-.02em}
.login-pitch p{color:#CFCDEA;font-size:16px;margin:16px 0 0}
.login-modules{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 24px;position:relative;font-size:14px;color:#E6E5F5}
.login-modules li{display:flex;gap:10px;align-items:center}
.login-modules i{width:18px;text-align:center}
.login-foot{display:flex;gap:16px;flex-wrap:wrap;align-items:center;font-size:12px;color:#9C9AC9;position:relative}
.login-panel{flex:1 1 480px;display:flex;align-items:center;justify-content:center;padding:48px 24px;background:var(--surface)}
.login-panel-full{flex-basis:100%;min-height:100vh;background:var(--bg)}
.login-panel-full .login-form{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:32px;box-shadow:var(--shadow)}
.login-form{width:100%;max-width:420px;display:flex;flex-direction:column;gap:18px}
.login-form h2{font-size:26px;font-weight:700}
.login-form p{margin:6px 0 0;font-size:14px}
.login-legal{font-size:12px;color:var(--muted);border-top:1px solid var(--border);padding-top:16px}
.btn-lg{height:42px;font-size:14px}
.inline{display:inline!important}
.acts-end{justify-content:flex-end}

/* ---- account menu ---- */
.um-menu{position:relative}
.um-menu summary{list-style:none;cursor:pointer}
.um-menu summary::-webkit-details-marker{display:none}
.av-user{background:#2E79BB}
.um-pop{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;color:var(--text);z-index:40;padding:6px}
.um-pop-head{display:flex;flex-direction:column;padding:8px 10px 10px;border-bottom:1px solid var(--border);margin-bottom:6px}
.um-item{width:100%;justify-content:flex-start}

/* ---- modal (design screen 10) ---- */
.modal-backdrop{position:fixed;inset:0;background:rgba(16,15,34,.55);display:flex;align-items:center;justify-content:center;padding:24px;z-index:100}
.modal-backdrop[hidden]{display:none}
.modal{width:100%;max-width:480px;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.modal-head{padding:24px 24px 8px;display:flex;gap:16px}
.modal-head h2{font-size:19px;font-weight:700}
.modal-head p{margin:6px 0 0;color:var(--text-2);font-size:14px}
.modal-body{padding:8px 24px 0 84px}
.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:20px 24px 24px}
.ico-warn{background:var(--orange-soft);color:var(--orange-text);font-size:20px}
.idle-countdown{font-size:40px;font-weight:500;letter-spacing:.02em;color:var(--text);margin-bottom:8px}
.bar-warn{background:var(--orange)!important;width:100%}

/* ---- phase 2: dashboard, security screens ---- */
.av-ok{background:#2E79BB}
.av-bad{background:var(--red-btn)}
.kv-tight{margin:0;grid-template-columns:auto 1fr;align-items:center}
.role-list{list-style:none;margin:0;padding:6px;font-size:13px}
.app .role-list a{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:4px;color:var(--text);text-decoration:none}
.app .role-list a:hover{background:var(--surface-2)}
.app .role-list a.on{background:var(--primary-soft);color:var(--link);font-weight:600}
.side{flex:1 1 240px;min-width:0}
.main-col{flex:999 1 680px;min-width:0}
.cols{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.check-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border:1px solid var(--border);border-radius:4px;background:var(--surface-2);font-size:13px;cursor:pointer}
.matrix th.c,.matrix td.c{text-align:center;width:92px}
.matrix .exec{font-size:11.5px;color:var(--muted)}
.member-row{display:flex;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid var(--border);font-size:13px}
.member-row:first-child{border-top:0}
.member-row form{margin-left:auto}
.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;padding:12px 16px;border-top:1px solid var(--border)}
.inline-form .field{flex:1 1 200px}
.section-title{font-size:13px;font-weight:700;padding:12px 16px 0;color:var(--text-2)}
.input-sm{height:32px}
.danger-zone{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px}

/* ---- phase 3: configuration manager ---- */
.tsel-menu{position:relative}
.tsel-menu summary{list-style:none}
.tsel-menu summary::-webkit-details-marker{display:none}
.tenant-pop{left:0;right:auto;max-height:360px;overflow:auto}
.app .um-item.on{background:var(--primary-soft);color:var(--link)}
.type-tabs{margin-bottom:16px}
.folder-tree{list-style:none;margin:0;padding:8px 6px;font-size:13px}
.app .folder-tree a{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:4px;color:var(--text);text-decoration:none}
.app .folder-tree a:hover{background:var(--surface-2)}
.app .folder-tree a.on{background:var(--primary-soft);color:var(--link);font-weight:600}
.app .th-sort{color:inherit;text-decoration:none;display:inline-flex;gap:5px;align-items:center}
.app .th-sort.on{color:var(--text)}
.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px 24px}
.fields .ro{word-break:break-word}
.detail-sections{display:flex;flex-direction:column;gap:16px}
.link-chips{display:flex;flex-wrap:wrap;gap:6px}
.app .link-chips a,.link-chips span.chip{text-decoration:none}
.kv-section{border-top:1px solid var(--border)}
.kv-section:first-child{border-top:0}
.kv-head{padding:10px 16px;font-weight:700;font-size:13px;background:var(--surface-2)}
.kv-table td:first-child{width:34%}
.empty{padding:14px 16px;color:var(--muted);font-size:13px}
.secret-inline{display:inline-flex;align-items:center;gap:8px}
.ico-navy{background:var(--navy)}
.mt-6{margin-top:6px}
.bulk-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 16px;border-top:1px solid var(--border);background:var(--surface-2)}
.check-col{width:36px}
.new-row td{background:var(--primary-soft)!important}
.kv-new{border-top:1px solid var(--border)}
.kv-new-row{display:grid;grid-template-columns:1fr 1fr 2fr;gap:8px;padding:8px 16px}
.kv-new [data-kv-add-row]{margin:0 16px}
.kv-hint{padding:0 16px 12px;margin:0}
.hist{border-top:1px solid var(--border)}
.hist:first-of-type{border-top:0}
.hist-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px}
.search-group{margin-bottom:16px}
.search-hit{display:flex;gap:10px;align-items:center;padding:10px 16px;border-top:1px solid var(--border);font-size:13.5px}
.search-hit:first-child{border-top:0}

/* ---- phase 4: live collaboration ---- */
@keyframes live-flash{from{background:#FFF1B8}to{background:transparent}}
.live-flash,.live-flash td{animation:live-flash 3s ease-out}
.t-dark .live-flash,.t-dark .live-flash td{animation:none;outline:2px solid var(--orange)}
.remote-changed .input,.remote-changed select.input{border-color:var(--orange);box-shadow:0 0 0 2px var(--orange-soft)}
.presence{min-height:28px}
.presence .av{cursor:default;background:#5B4FC4}
.av-edit{box-shadow:0 0 0 2px var(--orange)}
.row-presence{display:inline-flex;margin-left:8px;vertical-align:middle}
.row-presence .av{width:20px;height:20px;font-size:8px;border-width:1px}
.conflicts{border-color:var(--red-text)}
.conflicts h3{color:var(--red-text);display:flex;gap:8px;align-items:center}
.conflict{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--border)}
.conn.on{color:#A9E290}
.toast-region .toast{animation:none}
.ti-live{background:var(--primary-soft);color:var(--link)}

/* ---- phase 5: administrator ---- */
.section-tabs{margin-bottom:16px}
.kv-tool{border-bottom:1px solid var(--border)}
.kv-grid{display:flex;flex-wrap:wrap}
.kv-names{flex:1 1 180px;border-right:1px solid var(--border);padding:8px 6px;display:flex;flex-direction:column;gap:2px;font-size:13px}
.app .kv-names a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 8px;border-radius:4px;color:var(--text);text-decoration:none}
.app .kv-names a.on{background:var(--primary-soft);color:var(--link);font-weight:600}
.app .kv-names a.kv-default{color:var(--muted);font-style:italic}
.kv-count{display:inline-flex;gap:5px;align-items:center;font-size:12px}
.kv-panels{flex:999 1 480px;min-width:0}
.kv-default td{color:var(--muted)}
.status-actions{display:flex;gap:8px;flex-wrap:wrap}
.dep-group{border-top:1px solid var(--border)}
.dep-group:first-child{border-top:0}

/* ---- Composer (screen 05) ---- */
.composer{display:flex;flex-wrap:wrap;min-height:700px;overflow:hidden}
.cmp-palette{flex:1 1 200px;max-width:260px;background:var(--surface-2);border-right:1px solid var(--border);padding:12px 10px;display:flex;flex-direction:column;gap:8px;min-height:0}
/* the palette: collapsible categories of compact icon tiles; the list scrolls on its own (never the page) */
.cmp-pal-list{display:flex;flex-direction:column;gap:4px;min-height:0;max-height:340px;overflow-y:auto;overscroll-behavior:contain}
.cmp-cat-h{margin:0;font:inherit}
.app .cmp-cat-t{display:flex;align-items:center;gap:6px;width:100%;min-height:24px;padding:2px 4px;border:0;border-radius:4px;background:transparent;font:inherit;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:700;cursor:pointer;text-align:left}
.app .cmp-cat-t:hover{color:var(--text);background:var(--surface)}
.app .cmp-cat-t:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.cmp-chev{width:10px;font-size:9px!important;transition:transform .15s}
.cmp-cat-t[aria-expanded="true"] .cmp-chev{transform:rotate(90deg)}
.cmp-cat-n{min-width:18px;height:16px;padding:0 5px;border-radius:8px;background:var(--border);color:var(--text-2);font-size:10.5px;letter-spacing:0;font-weight:600;display:inline-flex;align-items:center;justify-content:center}
.cmp-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:4px;padding:2px 0 4px}
.app .pal{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;width:100%;min-width:0;padding:5px 3px 4px;color:var(--text);text-align:center;font:inherit;font-size:10.5px;line-height:1.15}
.app .pal .nic{width:22px;height:22px;font-size:11.5px}
.pal-l{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%;overflow-wrap:anywhere}
.app .pal:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft)}
.app .pal:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.app .pal:disabled{cursor:default;opacity:.7}
.cmp-pal-none{margin:4px}
.nic-flow{background:#26235D}.nic-voice{background:#8F4C00}.nic-routing{background:#2E79BB}.nic-data{background:#2C7314}.nic-config{background:#5B4FC4}.nic-hours{background:#B0123F}.nic-interaction{background:#0E7C86}.nic-contact{background:#7A3E9D}.nic-knowledge{background:#8A5A00}
.cmp-main{flex:999 1 560px;min-width:0;display:flex;flex-direction:column}
.cmp-tool{padding:8px 12px;border-bottom:1px solid var(--border);gap:6px}
/* the toolbar stays on one line: the status texts shrink, export / print / shortcuts live in the More menu */
.cmp-tool>*{flex:none}
.cmp-tool>.grow{flex:1 1 0;min-width:0}
.cmp-tool>.cmp-state,.cmp-tool>.cmp-live{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmp-more>summary.btn{list-style:none}
.cmp-more .menu{min-width:210px}
.app .cmp-more .menu button{display:flex;align-items:center;gap:9px}
.cmp-more .menu i{width:14px;text-align:center;color:var(--muted)}
.app .cmp-more .menu button:disabled{opacity:.5;cursor:default;background:none}
.cmp-tool>.cmp-live{min-width:18px}
.cmp-tool select#cmp-align{width:84px}
.cmp-more .menu kbd{margin-left:auto;font-family:inherit;font-size:11px;border:1px solid var(--border-strong);border-radius:3px;padding:0 5px;color:var(--muted)}
.cmp-more[open]>summary{background:var(--surface-2)}
.cmp-canvas{flex:none;height:max(520px,calc(100vh - 300px));overflow:auto;position:relative;background-color:var(--surface-2);background-image:radial-gradient(var(--border-strong) 1px,transparent 1px);background-size:20px 20px;outline-offset:-3px}
.cmp-stage{position:relative;transform-origin:0 0;width:900px;height:680px}
.cmp-edges{position:absolute;inset:0;overflow:visible;pointer-events:none}
.cmp-edge{fill:none;stroke:#8C9598;stroke-width:1.6}
.cmp-edge.on{stroke:var(--primary);stroke-width:2.4}
.cmp-edge-hit{stroke:transparent;stroke-width:12;pointer-events:stroke;cursor:pointer}
.cmp-edge-draft{stroke:var(--primary);stroke-dasharray:5 4}
.cmp-arrow{fill:#6E797C}
.cmp-loading{position:absolute;top:16px;left:16px;color:var(--muted);font-size:13px}
.cmp-loading[hidden]{display:none}
.composer .node{cursor:pointer;user-select:none;touch-action:none}
.composer .node:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.composer .node.cmp-warn-b{border-color:var(--orange)}
.composer .node.cmp-err{border-color:var(--red)}
.composer .node.selected{border-color:var(--primary)}
.cmp-node-text{min-width:0;flex:1}
.cmp-mark-warn{color:var(--orange-text);font-size:12px}
.cmp-mark-err{color:var(--red-text);font-size:12px}
.cmp-remote-tag{position:absolute;left:-2px;top:-20px;background:#5B4FC4;color:#fff;font-size:10.5px;font-weight:700;padding:2px 6px;border-radius:3px 3px 3px 0;white-space:nowrap}
.cmp-port{position:absolute;bottom:-6px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--border-strong);cursor:crosshair;touch-action:none}
.cmp-port.on{background:var(--border-strong)}
.cmp-port:hover{border-color:var(--primary);background:var(--primary)}
.el.cmp-el{transform:translate(-50%,-50%);pointer-events:none;z-index:1}
.cmp-foot{display:flex;flex-wrap:wrap;align-items:center;gap:18px;padding:10px 14px;border-top:1px solid var(--border);font-size:12.5px}
.cmp-ok{color:var(--green-text);font-weight:600}
.cmp-bad{color:var(--red-text);font-weight:600}
.cmp-warn{color:var(--orange-text);font-weight:600}
.app .cmp-issue{background:none;border:0;padding:0;font:inherit;text-align:left;cursor:pointer;color:var(--muted)}
.app .cmp-issue:hover{color:var(--link);text-decoration:underline}
.cmp-issue[hidden]{display:none}
.cmp-props{flex:1 1 320px;max-width:420px;border-left:1px solid var(--border);display:flex;flex-direction:column}
.cmp-props-body{display:flex;flex-direction:column;gap:14px}
.cmp-props-body .field{display:flex;flex-direction:column;gap:5px}
.cmp-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cmp-pairs{display:flex;flex-direction:column;gap:6px}
.cmp-pair{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;align-items:center}
.cmp-pair .input{height:32px;min-width:0}
.cmp-pair.cmp-pair-1{grid-template-columns:1fr auto}
.cmp-pair.cmp-pair-3{grid-template-columns:1fr 1fr 1fr auto}
.cmp-xh{padding:10px 12px;border:1px dashed var(--border-strong);border-radius:4px;background:var(--surface-2)}
.cmp-xh-row{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.cmp-xh-row .input{height:32px;min-width:0}
.cmp-xh-sig:empty,.cmp-xh-check:empty{display:none}
.cmp-props-body .picker{min-width:0}
.cmp-sql{margin:0;padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:var(--surface-2);overflow-wrap:anywhere}
.bp-tbl td{white-space:normal;padding-top:6px;padding-bottom:6px}
.bp-add .input,.bp-tbl .inline-form select{max-width:240px}
.bp-workbins{flex-wrap:wrap;gap:8px;margin:6px 0}
.cmp-own-issues{list-style:none;margin:0;padding:10px 12px;border:1px solid var(--border);border-radius:4px;background:var(--surface-2);display:flex;flex-direction:column;gap:6px;font-size:12.5px}
.cmp-sim{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:24px}
.cmp-sim .fields{display:flex;flex-direction:column;gap:14px}
.cmp-sim .field{display:flex;flex-direction:column;gap:5px}
.cmp-trace{margin:10px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:13px}
.app .cmp-trace-node{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--link);cursor:pointer}
.cmp-tests{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px}
.cmp-test{display:flex;align-items:center;flex-wrap:wrap;gap:4px}
@media (max-width:900px){.cmp-palette,.cmp-props{max-width:none}}
.fields-col{display:flex;flex-direction:column;gap:14px}
.fields-col .field{display:flex;flex-direction:column;gap:5px}
.diff-sum{flex-wrap:wrap;gap:16px;font-size:13px;font-weight:600}
.app [hidden]{display:none!important}
.cmp-palette .search{flex:none;height:32px}

/* ---- Organization: tenant › line of business › team (CR-4, screens 03 and 19) ---- */
.ou{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;color:#fff;flex:none;font-size:11px}
.ou-sm{width:16px;height:16px;border-radius:4px;font-size:8px}
.ou-t{background:#26235D}.ou-l{background:#2E79BB}.ou-m{background:#5B4FC4}
.lvl{font-size:9.5px;font-weight:800;letter-spacing:.08em;padding:1px 5px;border-radius:3px;flex:none}
.lvl-t{background:#26235D;color:#fff}.lvl-l{background:var(--primary-soft);color:var(--link)}.lvl-m{background:#EEECFB;color:#4B40AE}
.app.t-dark .lvl-m{background:#2A2650;color:#B9B1FF}
.tz{font-size:10.5px;color:var(--muted);font-family:"JetBrains Mono",monospace;white-space:nowrap;margin-left:auto}
.ouchip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;white-space:nowrap}
.app a.ouchip{color:var(--text);text-decoration:none}
.app a.ouchip:hover span:last-child{text-decoration:underline}
.ouchip-lg{font-size:14px;font-weight:600}
.h1-unit{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
/* a list title's count, as a small raised pill right after it ("Agent groups ²") */
.h1-count{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:9px;background:var(--surface-3);color:var(--muted);font-size:11px;font-weight:600;line-height:14px;letter-spacing:0;vertical-align:super}
.sw .tk.on{background:var(--primary)}
.sw .tk.on::after{left:18px}
.tbl tr.row-total td{font-weight:700}
.tbl tr.row-link{cursor:pointer}
.field>label.row,.field>label.sw{font-size:13.5px;letter-spacing:0;text-transform:none;color:var(--text);font-weight:400}
/* ---- Sign-in methods on the sign-in page (CR-1, screen 01) ---- */
.sso-buttons{display:flex;flex-direction:column;gap:10px}
.app .sso-btn,.sso-btn{justify-content:flex-start;gap:10px}
.sso-or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12.5px}
.sso-or::before,.sso-or::after{content:"";flex:1;height:1px;background:var(--border)}
.login-local{padding:0;margin:0}
.is-hidden{display:none!important}
.field-wide{grid-column:1/-1}
.help.block{display:block}
.side-note{padding:10px 14px 14px;margin:0;border-top:1px solid var(--border)}
.savebar-row{border-top:1px solid var(--border);align-items:center;gap:8px}
.policy-block{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px}
.policy-block h3{margin:0}
.policy-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
/* CR-9: what a known option key does, under the key (the key cell is monospace) */
.kv-key-help{font-family:Figtree,"Segoe UI",Arial,sans-serif;white-space:normal;margin-top:2px}
/* CR-6 licensing */
.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:4px;overflow:hidden}
.seg .btn{border-radius:0;border:0;height:32px}
.seg .btn+.btn{border-left:1px solid var(--border-strong)}
.seg .btn.on,.seg .btn[aria-pressed=true]{background:var(--primary);color:#fff}
.meter{display:flex;flex-direction:column;gap:4px;white-space:nowrap}
.meter .mv{display:flex;align-items:center;gap:5px}
.meter svg{display:block}
.m-track{fill:var(--surface-3)}
.m-within{fill:#4F9E2F}.m-near{fill:var(--orange)}.m-over{fill:var(--red-btn)}
.t-over{color:var(--red-text)}.t-near{color:var(--orange-text)}.t-within{color:var(--green-text)}
.lvl-1>td:first-child{padding-left:30px}.lvl-2>td:first-child{padding-left:48px}
.tz-line{display:block;margin:2px 0 0 28px}
.tree-toggle{display:inline-flex;width:16px;justify-content:center;color:var(--muted);text-decoration:none}
.tree-spacer{display:inline-block;width:16px}
.chart{display:flex;gap:10px;padding:8px 16px 4px}
.chart svg{width:100%;height:auto;display:block;overflow:visible}
.c-grid{stroke:var(--border);stroke-width:1}
.c-axis{fill:var(--muted);font:11px "JetBrains Mono",monospace}
.c-bar{fill:var(--primary)}.c-bar-over{fill:var(--red-btn)}.c-bar-sel{stroke:var(--text);stroke-width:2}
.c-bar-link:hover .c-bar,.c-bar-link:hover .c-bar-over{opacity:.8}
.c-ent{stroke:var(--text-2);stroke-width:1.5;stroke-dasharray:6 4}
.c-ent-label{fill:var(--text);font:600 11.5px Figtree,"Segoe UI",Arial,sans-serif}
.c-line{fill:none;stroke:#2E79BB;stroke-width:2}
.c-mark{stroke:var(--border-strong);stroke-width:1}
.c-peak{fill:var(--text);font:600 11px Figtree,"Segoe UI",Arial,sans-serif}
.lg{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2)}
.lg-sw{width:12px;height:12px;border-radius:3px;display:inline-block;background:var(--primary)}
.lg-sw.over{background:var(--red-btn)}
.lg-dash{width:18px;border-top:2px dashed var(--text-2);display:inline-block}
.codeblock{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:12px;padding:12px 14px;background:var(--surface-3);border-radius:4px;white-space:pre;overflow-x:auto;line-height:1.55;margin:0}
.radio-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;border:0;padding:0;margin:0}
.radio-card{padding:12px 14px;display:flex;gap:10px;align-items:flex-start;cursor:pointer;border:1px solid var(--border);border-radius:6px;background:var(--surface)}
.radio-card:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}
.feed li.on{background:var(--primary-soft)}
.feed li.on b,.feed li.on a{color:var(--link)}
.feed a.item{display:flex;gap:10px;justify-content:space-between;width:100%;color:inherit;text-decoration:none}
.pill-xs{height:18px;font-size:10.5px}
.split{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.split>.side{flex:1 1 280px}
.split>.main{flex:999 1 660px;min-width:0}
.kpi .v .u{font-size:16px;font-weight:600;color:var(--muted);margin-left:4px}
.kpi .v.money{font-size:22px}
.calc{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:11.5px}
.dropdown{position:relative;display:inline-block}
.dropdown>summary{list-style:none;cursor:pointer}
.dropdown>summary::-webkit-details-marker{display:none}
.dropdown[open]>.menu{position:absolute;right:0;top:calc(100% + 4px);z-index:20;min-width:240px;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow);padding:6px;display:flex;flex-direction:column;gap:2px}
.menu a,.menu button{display:block;text-align:left;width:100%;padding:7px 10px;border-radius:4px;font-size:13px;color:var(--text);text-decoration:none;background:none;border:0;cursor:pointer;font-family:inherit}
.menu a:hover,.menu button:hover{background:var(--surface-2)}
.menu .help{padding:2px 10px 6px}
.panel-form{padding:16px;display:flex;flex-direction:column;gap:14px}
.key-once{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:13px;padding:10px 12px;background:var(--surface-3);border-radius:4px;word-break:break-all;user-select:all}
.feed a.item .t{display:block}
.feed a.item>span:first-child{min-width:0}
.tbl .input.num-in{width:96px;min-width:96px}
figure.chart{margin:0}
.chart .c-axis{font-size:15px}
.chart .c-ent-label,.chart .c-peak{font-size:15px}
/* CR-8 monitoring */
.st{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;white-space:nowrap}
.st .sq{width:10px;height:10px;border-radius:3px;flex:none;display:inline-block}
.st-run{color:var(--green-text)}.st-run .sq{background:#4F9E2F}
.st-deg{color:var(--orange-text)}.st-deg .sq{background:var(--orange)}
.st-down{color:var(--red-text)}.st-down .sq{background:var(--red-btn)}
.st-unk{color:var(--muted)}.st-unk .sq{background:var(--border-strong)}
.st-start{color:var(--link)}.st-start .sq{background:var(--primary)}
.sev{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:4px;font-size:11.5px;font-weight:800;letter-spacing:.04em;white-space:nowrap}
.sev-c{background:var(--red-btn);color:#fff}.sev-ma{background:var(--orange);color:#1B1A2E}.sev-mi{background:var(--yellow);color:#1B1A2E}
.tl svg{display:block}
.tl-run{fill:#4F9E2F}.tl-deg{fill:var(--orange)}.tl-down{fill:var(--red-btn)}.tl-start{fill:var(--primary)}.tl-unk{fill:var(--border-strong)}.tl-none{fill:var(--surface-3)}
.map-wrap{overflow-x:auto;background:var(--surface-2);background-image:radial-gradient(var(--border) 1px,transparent 1px);background-size:20px 20px;padding:12px}
.map-wrap svg{display:block;margin:0 auto;max-width:100%;height:auto}
.mn-box{fill:var(--surface);stroke:var(--border-strong);stroke-width:1}
.mn-box.down{stroke:var(--red-btn);stroke-width:2}.mn-box.deg{stroke:var(--orange);stroke-width:2}
.mn-ring.st-run{fill:#4F9E2F}.mn-ring.st-deg{fill:var(--orange)}.mn-ring.st-down{fill:var(--red-btn)}.mn-ring.st-unk{fill:var(--border-strong)}.mn-ring.st-start{fill:var(--primary)}
.mn-name{fill:var(--text);font:700 13px Figtree,"Segoe UI",Arial,sans-serif}
.mn-meta{fill:var(--muted);font:11.5px Figtree,"Segoe UI",Arial,sans-serif}
.mn-st{font:700 11.5px Figtree,"Segoe UI",Arial,sans-serif}
.mn-st.st-run{fill:var(--green-text)}.mn-st.st-deg{fill:var(--orange-text)}.mn-st.st-down{fill:var(--red-text)}.mn-st.st-unk{fill:var(--muted)}.mn-st.st-start{fill:var(--link)}
.mn-edge{stroke:#8C9598;stroke-width:1.6;fill:none}.mn-edge.bad{stroke:var(--red-btn);stroke-width:2}
.mn-glyph{fill:#fff;font:700 11px Figtree,"Segoe UI",Arial,sans-serif}
.feed-tight li{padding:6px 16px;font-size:12.5px}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px;padding:16px;border-top:1px solid var(--border)}
.detail-grid h4{margin:0 0 8px;font-size:13px}
tr.expand>td{white-space:normal;background:var(--surface)}
.wrap-any{white-space:pre-wrap;word-break:break-all}
.bulk-bar-dark{display:flex;gap:10px;align-items:center;background:var(--navy);color:#fff;padding:8px 16px}
.bulk-bar-dark .btn{background:rgba(255,255,255,.12);color:#fff}
.cond-box{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2);font-size:13.5px}
.cond-box .input{width:auto;min-width:72px}
.opt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px}
.opt-grid label,.opt-row label{display:flex;gap:6px;align-items:center}
.ico-host{width:32px;height:32px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:#26235D;flex:none}
.ico-host.agentless{background:#6E797C}
.mon-tree{list-style:none;margin:0;padding:0}
.mon-tree li{display:flex;gap:8px;align-items:center;padding:6px 14px;font-size:13px}
.mon-tree li.child{padding-left:34px}
.mon-tree li.on{background:var(--primary-soft)}
.mon-tree a{color:inherit;text-decoration:none}
.top-ev{display:flex;flex-direction:column;gap:10px;font-size:12.5px}
.top-ev .row{justify-content:space-between}

/* object picker (js/picker.js) */
.picker{position:relative;display:flex;flex-direction:column;gap:4px;min-width:200px;flex:1}
.picker-list{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:50;margin:0;padding:4px;list-style:none;max-height:320px;overflow:auto;box-shadow:0 6px 20px rgba(20,18,60,.16)}
.picker-sm .picker-list{top:34px}
.picker-opt{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:7px 10px;border-radius:4px;cursor:pointer;font-size:13px}
.picker-opt.on,.picker-opt:hover{background:var(--primary-soft)}
.picker-name{font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.picker-meta{color:var(--muted);font-size:11.5px;white-space:nowrap}
.picker-foot{padding:7px 10px 4px;color:var(--muted);font-size:12px;border-top:1px solid var(--border);margin-top:4px}
.picker-all{background:none;border:0;padding:0;color:var(--link);font:inherit;cursor:pointer;text-decoration:underline}
.picker.invalid .picker-q{border-color:var(--red);box-shadow:0 0 0 1px var(--red)}

/* ---- Capacity rules and media types (CR-14, screen 27) ---- */
.cr-layout{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.cr-main{flex:999 1 640px;min-width:0}
.cr-side{flex:1 1 340px;min-width:0;display:flex;flex-direction:column;gap:16px}
.cr-combos{display:flex;flex-direction:column;gap:12px}
.cr-name{max-width:420px}
.cr-slots{display:flex;flex-direction:column;gap:12px}
.cr-slot+.cr-slot::before{content:"OR";display:block;text-align:center;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.08em;margin-bottom:12px;background:linear-gradient(var(--border),var(--border)) left center/calc(50% - 26px) 1px no-repeat,linear-gradient(var(--border),var(--border)) right center/calc(50% - 26px) 1px no-repeat}
.app .cr-combo{padding:14px 16px;box-shadow:none}
.cr-combo-h{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.app .cr-combo-name{width:auto;flex:0 1 220px;font-weight:700;border-color:transparent;background:transparent;padding:0 6px}
.app .cr-combo-name:hover,.app .cr-combo-name:focus{border-color:var(--border-strong);background:var(--surface)}
.cr-combo-total{margin-left:auto;font-size:12.5px}
.cr-combo-b{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.cr-item{display:inline-flex;align-items:center;gap:10px}
.cr-item+.cr-item::before{content:"AND";color:var(--muted);font-weight:700;font-size:12px}
.app .cr-chip{font-size:13px;height:30px}
.cr-max{width:52px;height:22px;border:1px solid var(--border-strong);border-radius:4px;padding:1px 4px 1px 8px;background:var(--surface);color:var(--text)}
.cr-max:focus,.cr-load-in:focus{outline:2px solid var(--primary);outline-offset:-1px}
.cr-max[readonly]{border-color:transparent;background:transparent}
.cr-remove-media{border:0;background:transparent;color:var(--muted);width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.app .cr-add-sel{width:auto;border-color:transparent;background:transparent;color:var(--text-2);font-weight:600;font-size:12px;cursor:pointer}
.app .cr-add-sel:hover{background:var(--surface-3)}
.cr-add-combo{align-self:flex-start}
.alert b.cr-or-word{display:inline;font-size:inherit;margin:0}
.cr-errlist{margin:4px 0 0;padding-left:18px}
.cr-col{display:flex;flex-direction:column;gap:10px;font-size:13px}
.cr-col>form.cr-autosubmit{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cr-load{font-size:12.5px}
.cr-load-in{width:44px;height:20px;border:1px solid var(--border-strong);border-radius:4px;padding:0 4px;background:var(--surface);color:var(--text);font-weight:700}
.cr-check-btn,.cr-assign{align-self:flex-start}
.cr-refs{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;max-height:240px;overflow:auto}
.cr-newmedia{display:flex;gap:8px;flex-wrap:wrap}
.app .cr-new-name{flex:1 1 120px;width:auto}
.app .cr-new-code{flex:1 1 90px;width:auto}
.app .cr-sys{font-size:12.5px;text-decoration:none;color:var(--text)}
.cr-media th,.cr-media td{padding:0 8px}
.cr-media th:first-child,.cr-media td:first-child{padding-left:12px;width:100%}
.app .cr-media .input{min-width:72px}
.cr-media .btn-icon{width:24px}
.sub b.sub-b{color:var(--text)}
.cr-card{margin-bottom:16px}
.cr-list-sum{white-space:normal}
.cr-note{margin-top:4px}
.cr-narrow{max-width:520px}
/* CR-15 agent group form (design screen 28) */
.row-tag{margin-left:6px;vertical-align:middle}
.w-auto{width:auto}
.mt-10{margin-top:10px}
.vg-stack{display:flex;flex-direction:column;gap:14px}
.vg-stack-sm{display:flex;flex-direction:column;gap:6px}
.vg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:900px){.vg-grid{grid-template-columns:minmax(0,1fr)}}
.vg-h36{min-height:36px}
.vg-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center;min-height:30px}
.vg-more summary{cursor:pointer}
.vg-kinds{border:0;padding:0;margin:0;display:flex;gap:12px;flex-wrap:wrap}
.vg-kinds legend{margin-bottom:8px}
.vg-kind{flex:1 1 280px;padding:14px 16px;box-shadow:none;display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.vg-kind:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}
.vg-static,.vg-virtual{display:none;flex-wrap:wrap;gap:16px;align-items:flex-start}
.vg-form:has(#kind-static:checked) .vg-static{display:flex}
.vg-form:has(#kind-virtual:checked) .vg-virtual{display:flex}
.vg-form:has(#kind-static:checked) .vg-virtual-row{display:none}
.vg-full{flex:1 1 100%;min-width:0}
.vg-main{flex:999 1 640px;min-width:0}
.vg-aside{flex:1 1 340px;min-width:0}
.vg-agent-picker{flex:1 1 320px}
.vg-group{display:flex;flex-direction:column;gap:10px}
.vg-cond{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.vg-join{width:44px;font-size:12px;font-weight:700}
.vg-chip-kind{width:72px;justify-content:center}
.vg-skill{flex:1 1 160px;min-width:160px}
.vg-op{width:170px}
.vg-level{width:64px}
.vg-confirm{display:flex;margin-top:8px}
.vg-script{display:block;padding:8px 10px;border-radius:4px;background:var(--surface-2);border:1px solid var(--border);word-break:break-all}
/* CR-16 network security (design screen 29) */
.hs-cols{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.hs-main{flex:999 1 640px;min-width:0}
.hs-aside{flex:1 1 340px;min-width:0;display:flex;flex-direction:column;gap:16px}
.hs-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:700px){.hs-grid2{grid-template-columns:minmax(0,1fr)}}
.hs-facts{display:flex;flex-direction:column;gap:8px;font-size:13px}
.hs-fact{display:flex;flex-direction:column;gap:2px}
.hs-fact .mono{word-break:break-all}
.hs-pem{min-height:140px;padding:8px 10px;font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:12px;height:auto}
.hs-step{display:flex;gap:8px;align-items:center}
/* CR-18 Workforce Management queues (design screen 33) */
.wf-kpis{margin-bottom:16px}
.wf-mb{margin-bottom:16px}
.kpi .v.wf-v-green{color:var(--green-text)}
.kpi .v.wf-v-orange{color:var(--orange-text)}
.kpi .v.wf-v-red{color:var(--red-text)}
.wf-wrap{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.wf-main{flex:1 1 100%;min-width:0}
.wf-side{flex:1 1 100%;min-width:0;display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.wf-side>.card{flex:1 1 380px;min-width:0}
.wf-side>.card:first-child{flex:2 1 560px}
.wf-col{display:flex;flex-direction:column;gap:10px;font-size:13px}
.wf-col-sm{display:flex;flex-direction:column;gap:6px}
.wf-start{align-self:flex-start}
.wf-narrow{max-width:640px}
.wf-p{margin:0}
.wf-sel{width:auto;min-width:0}
.wf-groupby{cursor:default}
.app .wf-in{width:70px;min-width:0}
.app .wf-pre{font-style:italic;color:var(--muted)}
.app .wf-bad{border-color:var(--red);box-shadow:0 0 0 1px var(--red)}
.tbl tr.wf-miss td{background:var(--orange-soft)!important}
.tbl tr.wf-orphan td{color:var(--muted)}
.tbl td .none{color:var(--muted)}
.wf-chk{width:36px}
/* Grouped lists (fragments/group.html, js/groups.js): one look for every table with group rows */
.tbl tr.gr td{background:var(--surface-3)!important;height:44px;border-top:1px solid var(--border-strong);color:var(--text);padding-top:0;padding-bottom:0}
.tbl tr.gr .gc{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:700;cursor:pointer;text-align:left;flex-wrap:wrap}
.tbl tr.gr .gc:focus-visible{outline:2px solid var(--link);outline-offset:2px}
.tbl tr.gr .gcont{font-weight:400;color:var(--muted)}
.tbl tr.gr .gstat{display:inline-flex;gap:14px;font-weight:400;color:var(--muted);font-size:12.5px;margin-left:6px;flex-wrap:wrap}
.tbl tr.gr .gstat b{color:var(--text);font-weight:600}
.tbl tr.gr .tw{display:inline-flex;transition:transform .15s}
.tbl tr.gr.shut .tw{transform:rotate(-90deg)}
.tbl tr.g-off{display:none}
.tbl tr.gr ~ tr > td:first-child:not(.check-col){padding-left:22px}
.wf-acts{display:flex;align-items:center;gap:6px}
.wf-acts form{display:inline-flex;margin:0}
.wf-save{display:none}
.app tr.wf-dirty .wf-save{display:inline-flex}
.tbl tr.wf-dirty td{background:var(--primary-soft)!important}
.wf-hist{width:28px;padding:0}
.wf-apply{flex-wrap:wrap;font-size:13px}
.wf-apply-l{display:inline-flex;gap:4px;align-items:center}
.wf-sep{opacity:.4}
.wf-foot{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--border);flex-wrap:wrap}
.wf-foot form{display:inline-flex;margin:0}
.wf-pickform{display:flex;gap:8px;align-items:center}
.wf-errlist{margin:4px 0 0;padding-left:18px}
.tbl td.wf-wrap-cell{white-space:normal}
.tbl tr.wf-cs-first td{border-top:2px solid var(--border-strong)}
/* CR-17 Hours of Operation (design screens 30, 31, 32) */
.ho-live{display:inline-flex;align-items:center;gap:7px}
.ho-h1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ho-red{color:var(--red-text)}
.ho-inline{display:inline;margin:0}
.app .btn-link{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer;font-weight:600}
.ho-banner .btn-link{color:#fff}
.ho-err{display:block;color:var(--red-text);font-size:12.5px;margin-top:3px}
.app .ho-bad{border-color:var(--red);box-shadow:0 0 0 1px var(--red)}
.ho-bad-box{outline:2px solid var(--red);outline-offset:4px;border-radius:4px}
.ho-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ho-grow{flex:1 1 200px;min-width:0}
.ho-gap16{gap:16px}
.ho-m0{margin:0}
.ho-center{text-align:center}
.ho-big{height:40px}
.ho-ms{width:90px}
.ho-dt{width:200px}
.ho-lang{width:90px}
.ho-text{height:auto;padding:8px 10px;min-height:72px}
.ho-fs{border:0;padding:0;margin:0;display:flex;gap:16px;flex-wrap:wrap}
.ho-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ho-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:end}
.ho-span2{grid-column:1 / -1}
@media (max-width:700px){.ho-grid2,.ho-grid3{grid-template-columns:minmax(0,1fr)}}
.ho-chips{display:flex;gap:6px;flex-wrap:wrap}
.ho-days{flex-direction:column;gap:8px}
.ho-days[hidden],#ex-sum[hidden]{display:none}
.app .ho-check{cursor:pointer;padding:0 10px}
.ho-check input{margin:0}
.ho-form-main{flex:2 1 560px;min-width:0}
.ho-form-side{flex:1 1 340px;min-width:0}
.ho-danger{margin-top:16px}
.ho-clock{padding:6px 12px;box-shadow:none;display:flex;flex-direction:column}
.ho-clock-v{font-size:15px}
.ho-clock-lg{padding:10px 16px;gap:2px;min-width:260px}
.ho-clock-big{font-size:20px}
.ho-clocks{display:flex;flex-direction:column;gap:4px;font-size:12.5px}
.ho-em-main{flex:999 1 620px;min-width:0}
.ho-em-side{flex:1 1 340px;min-width:0}
.ho-scope{display:flex;flex-direction:column;gap:8px;font-size:13.5px}
.ho-scope-u{display:flex;gap:8px;align-items:center;cursor:pointer}
.ho-scope-u.ho-d1{padding-left:26px}
.ho-scope-u.ho-d2{padding-left:52px}
.ho-tabs{margin:4px 0 10px}
.app .ho-tabs .tab{background:none;border-top:0;border-left:0;border-right:0;font-family:inherit;cursor:pointer}
.ho-panel{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.ho-content{display:flex;flex-direction:column;gap:10px;padding:10px 0;border-bottom:1px dashed var(--border)}
.ho-langrow{margin-bottom:2px}
.ho-insert{margin-top:6px}
.ho-count{margin-left:auto}
.ho-editor{display:flex;flex-direction:column;gap:6px}
.ho-json{font-size:11.5px;max-width:420px}
.ho-status{white-space:nowrap}
/* schedule calendar */
.hc-wrap{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.hc-main{flex:999 1 760px;min-width:0}
.hc-side{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:16px}
.hc-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--border)}
.hc-title{font-size:15px}
.hc-tzl{margin:0}
.hc-seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:6px;overflow:hidden}
.app .hc-seg a{border:0;background:var(--surface);padding:6px 12px;font-size:12.5px;color:var(--text-2);text-decoration:none}
.app .hc-seg a.on{background:var(--primary-soft);color:var(--link);font-weight:700}
.hc-grid{display:grid;grid-template-columns:56px repeat(7,minmax(0,1fr));position:relative}
.hc-grid.hc-n1{grid-template-columns:56px minmax(0,1fr)}
.hc-grid.hc-n5{grid-template-columns:56px repeat(5,minmax(0,1fr))}
.hc-scroll{max-height:600px;overflow-y:auto;border-top:1px solid var(--border-strong)}
.hc-head{padding:8px 6px;text-align:center;border-bottom:1px solid var(--border);border-left:1px solid var(--border);font-size:12px;color:var(--text-2)}
.hc-head b{display:block;font-size:19px;color:var(--text);font-weight:600}
.hc-head.today b{background:var(--primary);color:#fff;border-radius:50%;width:32px;height:32px;line-height:32px;margin:2px auto 0}
.hc-head.hc-corner{border-left:0}
.hc-allday{border-left:1px solid var(--border);min-height:30px;padding:3px;display:flex;flex-direction:column;gap:2px}
.hc-allday.hc-adl{border-left:0;font-size:10.5px;color:var(--muted);text-align:right;padding-right:6px}
.hc-times{position:relative}
.hc-t{height:40px;font-size:10.5px;color:var(--muted);text-align:right;padding-right:6px;transform:translateY(-7px)}
.hc-t:first-child{visibility:hidden}
.hc-col{position:relative;height:960px;border-left:1px solid var(--border);background-image:repeating-linear-gradient(to bottom,var(--border) 0,var(--border) 1px,transparent 1px,transparent 40px),repeating-linear-gradient(to bottom,transparent 0,transparent 20px,rgba(0,0,0,.035) 20px,rgba(0,0,0,.035) 21px,transparent 21px,transparent 40px);user-select:none}
.hc-col.closedday{background-color:var(--surface-2)}
.hc-blk{position:absolute;left:3px;right:3px;border-radius:5px;padding:4px 6px;font-size:11.5px;line-height:1.3;overflow:hidden;border-left:4px solid;cursor:default}
.hc-blk b{display:block;font-size:12px}
.hc-blk span{display:block}
[data-hc-edit="true"] .hc-open,[data-hc-edit="true"] .hc-x{cursor:grab}
.hc-open{background:var(--green-soft);border-color:var(--green);color:var(--green-text)}
.hc-exc{background:var(--orange-soft);border-color:var(--orange);color:var(--orange-text);z-index:2}
.hc-emg{background:var(--red-soft);border-color:var(--red);color:var(--red-text);z-index:3}
.hc-hol{background:#EEECFB;border-color:var(--violet);color:#4B40AE}
.app.t-dark .hc-hol{background:#2A2650;color:#B9B1FF}
.hc-ad{border-radius:4px;padding:3px 8px;font-size:11.5px;font-weight:600;border-left:4px solid}
.hc-off{opacity:.35;text-decoration:line-through}
.hc-sel{outline:2px solid var(--primary);outline-offset:1px;box-shadow:0 6px 16px rgba(20,18,60,.18)}
.hc-ghost{opacity:.6;outline:2px dashed var(--primary)}
.hc-blk .hc-edge{position:absolute;left:0;right:0;height:7px;cursor:ns-resize}
.hc-blk .hc-edge.hc-et{top:0}
.hc-blk .hc-edge.hc-eb{bottom:0}
.hc-now{position:absolute;left:0;right:0;height:2px;background:var(--red);z-index:4;pointer-events:none}
.hc-now::before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--red)}
.hc-tip{display:flex;gap:16px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}
.hc-legend{display:flex;flex-direction:column;gap:8px;font-size:13px}
.hc-sw{width:14px;height:14px;border-radius:3px;display:inline-block;border-left:4px solid;vertical-align:-2px;margin-right:8px}
.hc-mini{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;font-size:11.5px;text-align:center}
.hc-mini span,.hc-mini a{padding:4px 0;border-radius:4px;text-decoration:none;color:var(--text)}
.hc-mini .wk{background:var(--primary-soft)}
.app .hc-mini .td{background:var(--primary);color:#fff;font-weight:700}
.app .hc-mini .mut2,.hc-mini .mut2{color:var(--muted)}
.hc-exc,.hc-emg{overflow:visible}
.hc-hover{position:absolute;left:calc(100% + 8px);top:0;width:250px;z-index:20;visibility:hidden;opacity:0;transition:opacity .15s;transition-delay:0s;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 8px 24px rgba(20,18,60,.18);padding:10px 12px;font-size:12px;line-height:1.45;pointer-events:none}
.hc-hover b{font-size:12.5px;display:inline}
.hc-hover span{display:inline}
.hc-hover .k{color:var(--muted);display:inline-block;width:84px}
.hc-blk:hover .hc-hover,.hc-blk:focus .hc-hover{visibility:visible;opacity:1;transition-delay:3s}
.hc-hover.left{left:auto;right:calc(100% + 8px)}
.hc-hide-hc-open .hc-open,.hc-hide-hc-x .hc-x,.hc-hide-hc-emg .hc-emg,.hc-hide-hc-hol .hc-hol{display:none}
.hc-month{width:100%;border-collapse:collapse;table-layout:fixed}
.hc-month th{font-size:11px;color:var(--muted);padding:6px;font-weight:600}
.hc-month td{vertical-align:top;height:96px;border:1px solid var(--border);padding:4px;font-size:11px}
.hc-month td.closedday{background:var(--surface-2)}
.hc-month td.hc-other{opacity:.5}
.hc-month td.hc-today .hc-mday{background:var(--primary);color:#fff;border-radius:50%;padding:0 6px}
.hc-mday{font-weight:700;font-size:12.5px;text-decoration:none}
.hc-mline{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-2)}
.hc-dlg{border:1px solid var(--border-strong);padding:0;max-width:460px;width:100%;color:var(--text);background:var(--surface)}
.hc-dlg::backdrop{background:rgba(16,15,34,.45)}
.hc-side .ho-grid2{grid-template-columns:minmax(0,1fr)}

/* ---- CR-19..22 preview modules (Prompts, Surveys, SecurePay, Voice signature): screens on sample data ---- */
.preview-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;margin-bottom:16px;border:1px dashed var(--violet);border-radius:5px;background:#EEECFB;color:#4B40AE;font-size:12.5px}
.preview-note b{font-weight:700;letter-spacing:.02em}
.preview-note span{color:var(--text-2)}
.t-dark .preview-note{background:#2A2650;color:#B9B1FF}
.pv-ok{color:var(--green-text)}.pv-warn{color:var(--orange-text)}.pv-bad{color:var(--red-text)}
.kpi .v.pv-ok{color:var(--green-text)}.kpi .v.pv-warn{color:var(--orange-text)}.kpi .v.pv-bad{color:var(--red-text)}
.pv-b{font-weight:700}.pv-sm{font-size:12.5px}
.pv-dim td{color:var(--muted)}
.pv-sum{cursor:pointer;font-weight:600;font-size:13.5px;color:var(--link)}
.pv-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.pv-px{padding:0 16px}
.pv-narrow{max-width:860px}
.pv-drop{border:2px dashed var(--border-strong);border-radius:6px;background:var(--surface-2);padding:14px 16px;font-size:13px;color:var(--text-2)}
.pv-f3{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;align-items:end}
.pv-box{border:1px solid var(--border);border-radius:5px;padding:12px;background:var(--surface)}
.pv-chk{list-style:none;margin:6px 0 8px;padding:0;font-size:13px}
.pv-chk li{display:flex;gap:9px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--border)}
.pv-chk li:first-child{border-top:0}
.pv-chk .r{margin-left:auto;font-size:12px;color:var(--muted);text-align:right}
.pv-tok{font-family:"JetBrains Mono",monospace;font-size:11.5px;background:#EEECFB;color:#4B40AE;border-radius:3px;padding:1px 5px;white-space:nowrap}
.t-dark .pv-tok{background:#2A2650;color:#B9B1FF}
.pv-seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:4px;overflow:hidden}
.pv-seg label{display:inline-flex;cursor:pointer}
.pv-seg input{position:absolute;opacity:0;width:1px;height:1px}
.pv-seg span{padding:6px 12px;font-size:12.5px;font-weight:600;color:var(--text-2)}
.pv-seg input:checked+span{background:var(--primary);color:#fff}
.pv-seg input:focus-visible+span{outline:2px solid var(--primary);outline-offset:-2px}
.pv-ta{font-family:"JetBrains Mono",monospace;font-size:12.5px;line-height:1.6}
.pv-wave{display:block;width:100%;height:80px;background:var(--surface-2);border:1px solid var(--border);border-radius:4px;margin-top:6px}
.pv-wave .w{stroke:var(--primary);stroke-width:4;stroke-linecap:round;fill:none}
.pv-wave .trim{fill:var(--surface-3)}
.pv-wave .slot{fill:var(--violet);opacity:.14}
.pv-wave text{font:600 10px Figtree,Arial,sans-serif;fill:#4B40AE}
.pv-wsm{height:44px}
.pv-n{width:72px}
.pv-prov{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px dashed var(--border-strong);border-radius:4px;background:var(--surface-2);font-size:12.5px}
.pv-dl{font-family:"JetBrains Mono",monospace;font-size:12px;padding:5px 10px;border-radius:3px;white-space:pre-wrap}
.pv-cmt{border-left:3px solid var(--primary);padding:2px 0 2px 10px}
.pv-cmt.ch{border-left-color:var(--orange)}
.app .btn.pv-current{border-color:var(--primary);color:var(--link)}
.pm-addlang{display:inline-block;position:relative}
.pm-addlang summary{list-style:none;cursor:pointer}
.pm-addlang summary::-webkit-details-marker{display:none}
.pm-addlang-f{position:absolute;z-index:5;top:100%;left:0;display:flex;gap:6px;padding:10px;background:var(--surface);border:1px solid var(--border);border-radius:5px;box-shadow:var(--shadow)}
.pm-addlang-f .input{width:110px}

/* shared by the preview modules: roll-up tables (one group row per client), small bars, field sets */
.pv-rollup tr.in td:first-child{padding-left:22px}
.pv-rollup tbody tr.in:nth-child(even) td{background:var(--surface)}
.pv-bar{display:block;flex:1;min-width:60px;height:6px}
.pv-bar .bg{fill:var(--surface-3)}.pv-bar .fg{fill:var(--primary)}
.pv-fieldset{border:0;margin:0;padding:0;min-width:0}
.pv-wrap{flex-wrap:wrap}
.pv-ul{margin:4px 0 0;padding-left:18px}
.pv-h2{font-size:17px;font-weight:700;margin:0 0 12px}
.pv-pt0{padding-top:0}
/* CR-20 Surveys */
.sv-ch{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;background:var(--surface-3);color:var(--text-2);margin-right:3px;font-size:12px}
.app .sv-chl{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 9px;border-radius:4px;border:1px solid var(--border);background:var(--surface);font-size:12.5px;color:var(--text-2);text-decoration:none;cursor:pointer}
.app .sv-chl.on{border-color:var(--primary);background:var(--primary-soft);color:var(--link);font-weight:600}
.sv-chl.sv-chk input{width:14px;height:14px}
.sv-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sv-col{display:flex;flex-direction:column;gap:12px}
.sv-des{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px;align-items:start}
.sv-wide{grid-column:1/-1}
.sv-q{list-style:none;margin:0;padding:6px}
.sv-q li{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:4px;font-size:13px}
.sv-q li.on{background:var(--primary-soft)}
.sv-q .n{font-weight:800;color:var(--muted);font-size:12px;min-width:30px}
.sv-q small{display:block;color:var(--muted);font-size:11.5px}
.sv-br{font-size:11.5px;color:var(--link);display:flex;gap:4px;align-items:center;margin-top:2px}
.sv-lbl{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;display:flex;gap:6px;align-items:center}
.sv-ph{background:var(--surface-3);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px;font-size:12.5px}
.sv-in{align-self:flex-start;max-width:88%;background:var(--surface);border:1px solid var(--border);border-radius:10px 10px 10px 2px;padding:7px 10px}
.sv-sr{display:flex;gap:6px;flex-wrap:wrap}
.sv-sr span{border:1px solid var(--primary);color:var(--link);border-radius:14px;padding:2px 10px;font-size:12px;background:var(--surface)}
.sv-ord{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;counter-reset:o}
.sv-ord li{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--border);border-radius:4px;background:var(--surface);font-size:13px;counter-increment:o}
.sv-ord li::before{content:counter(o);font-weight:800;color:var(--muted);width:14px}
.sv-chart{position:relative;padding-left:34px}
.sv-chart svg{width:100%;height:180px;display:block;border-bottom:1px solid var(--border-strong)}
.sv-chart .sv-grid{stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke;fill:none}
.sv-chart .sv-l1,.sv-chart .sv-l2{fill:none;stroke-width:2;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.sv-chart .sv-l1{stroke:#2E79BB}.sv-chart .sv-l2{stroke:#5B4FC4}
.sv-ax{position:absolute;left:0;top:0;height:180px;display:flex;flex-direction:column;justify-content:space-between;font-size:11px;color:var(--muted);transform:translateY(-6px)}
.sv-xl{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin:6px 0 0 34px}
.sv-leg{display:flex;gap:16px;font-size:12.5px;color:var(--text-2)}
.sv-leg i{display:inline-block;width:14px;height:2px;vertical-align:middle;margin-right:6px}
.sv-b1{background:#2E79BB}.sv-b2{background:#5B4FC4}
.sv-hb{display:flex;align-items:center;gap:8px}
.sv-vb{display:flex;flex-direction:column;gap:4px;padding:12px 16px;border-top:1px solid var(--border);font-size:13px}
.sv-vb .m{font-size:12px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.sv-play{display:flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid var(--border);border-radius:18px;background:var(--surface-2);max-width:420px}
.sv-play .btn{border-radius:50%}
.sv-tr td{white-space:normal}

/* CR-21 SecurePay */
.pv-replace{display:inline-block;margin-top:6px}
.pv-replace summary{list-style:none}
.pv-replace summary::-webkit-details-marker{display:none}
.tbl td.pv-wrapcell{white-space:normal;word-break:break-all;min-width:220px}
.tbl.wrap-last td:last-child{white-space:normal;min-width:220px;line-height:1.35;padding-block:6px}
.sp-checks{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:13px}
.sp-checks label,.sp-radios label{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sp-radios{display:flex;flex-direction:column;gap:8px;font-size:13px}
.sp-tight td{height:38px;padding:0 8px}.sp-tight td:last-child{text-align:right}
.sp-tight.sp-left td:last-child{text-align:left}
.sp-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.sp-path{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:20px;font-size:13px}
.sp-box{padding:8px 12px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface-2);min-width:0}
.sp-box small{color:var(--muted);font-weight:400}
.sp-strong{border-color:var(--navy);background:var(--primary-soft);font-weight:600}
.sp-stack{display:flex;flex-direction:column;gap:6px}
.sp-arr{color:var(--muted);font-size:18px}
.sp-wde{background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;overflow:hidden;box-shadow:var(--shadow);align-self:start}
.sp-call{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--navy);color:#fff;font-size:12.5px;flex-wrap:wrap}
.sp-call>span:not(.pill){color:#CFCDEA}
.sp-wb{padding:14px;display:flex;flex-direction:column;gap:12px}
.sp-amt{font-size:20px;height:44px;font-weight:600}
.sp-full{width:100%;height:40px}
.sp-fields{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.sp-fields li{display:grid;grid-template-columns:110px 1fr;gap:2px 10px;padding:8px 10px;border:1px solid var(--border);border-radius:5px;font-size:13px}
.sp-fl{font-weight:600}
.sp-dots{font-family:"JetBrains Mono",monospace;letter-spacing:.12em;color:var(--text-2)}
.sp-fs{grid-column:2;display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}
.sp-fields li.ok .sp-fs{color:var(--green-text)}
.sp-fields li.cur{border-color:var(--primary);background:var(--primary-soft)}
.sp-res{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:6px;font-size:13px}
.sp-res b{display:block;font-size:15px}
.sp-res.ok{background:var(--green-soft);color:var(--green-text)}
.sp-res.bad{background:var(--red-soft);color:var(--red-text)}
.sp-drawer{border-left:3px solid var(--primary)}
.sp-tl li{padding:8px 16px;gap:10px;font-size:12.5px}
.sp-chart{width:100%;height:auto;display:block}
.sp-grid path{stroke:var(--border);stroke-width:1;fill:none}
.sp-thr{stroke:var(--muted);stroke-dasharray:4 4;fill:none}
.sp-ax text{font-size:10.5px;fill:var(--muted);text-anchor:end}
.sp-ax .s{text-anchor:start}
.sp-l1,.sp-l2{fill:none;stroke:#2E79BB;stroke-width:1.75;stroke-linejoin:round}
.sp-l2{stroke:#5B4FC4}
.sp-pt1{fill:#2E79BB}
.sp-ann{font-size:10.5px;fill:var(--text-2)}
.sp-bars{display:flex;flex-direction:column;gap:10px;font-size:13px}
.sp-bars>div{display:grid;grid-template-columns:minmax(120px,170px) 1fr 44px;align-items:center;gap:10px}
.sp-bars b{text-align:right;font-weight:600}
.sp-nbar .fg{fill:var(--navy)}
.t-dark .sp-nbar .fg{fill:#8E8BD8}
.sp-code{margin:0;padding:10px 12px;border:1px solid var(--border);border-radius:4px;background:var(--surface-2);font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:12px;line-height:1.5;color:var(--text-2);white-space:pre-wrap;word-break:break-word}
.sp-out{line-height:1.6;color:var(--text-2)}
.sp-res-i{display:inline-flex;flex:none}
.sp-res-i.ok{color:var(--green-text)}.sp-res-i.warn{color:var(--orange-text)}
.tbl.sp-wrap td{white-space:normal;line-height:1.35;padding-block:6px}

/* CR-22 Voice signature */
.vs-perm{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--text-2);background:var(--surface-3);border-radius:3px;padding:2px 6px;font-family:"JetBrains Mono",monospace}
.vs-player{display:flex;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2)}
.vs-pb{width:38px;height:38px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.vs-wave{flex:1;min-width:0;height:56px}
.vs-wave .wp{fill:none;stroke-width:3;stroke-linecap:round;stroke:var(--primary)}
.vs-wave .sg{stroke:var(--muted)}
.vs-wave .lt,.vs-chart .lt{fill:var(--muted);font-size:11px;font-family:Figtree,Arial,sans-serif}
.vs-hash{word-break:break-all;color:var(--text-2)}
details.vs-ex summary{cursor:pointer;font-weight:600;font-size:13px;padding:12px 16px}
details.vs-ex[open] summary{border-bottom:1px solid var(--border)}
.vs-qs{list-style:none;margin:0;padding:0}
.vs-qs>li{display:flex;gap:12px;padding:14px 16px;border-top:1px solid var(--border)}
.vs-qs>li:first-child{border-top:0}
.vs-qn{width:24px;height:24px;border-radius:50%;background:var(--primary-soft);color:var(--link);font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;flex:none}
.vs-qb{flex:1;min-width:0;font-size:13px}
.vs-say{font-style:italic;border-left:3px solid var(--primary)}
.vs-blk{width:270px;max-width:100%;border:2px solid var(--primary);border-radius:6px;background:var(--surface);box-shadow:0 0 0 4px rgba(46,121,187,.18)}
.vs-blk-h{display:flex;gap:9px;align-items:center;padding:10px 12px;font-weight:700;font-size:13px}
.vs-blk-h small{display:block;font-weight:400;color:var(--muted);font-size:11.5px}
.vs-nic{width:28px;height:28px;border-radius:5px;background:var(--violet);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.vs-blk-x span{display:flex;align-items:center;gap:8px;padding:6px 12px;font-size:12px;border-top:1px solid var(--border)}
.vs-blk-x i{width:8px;height:8px;border-radius:50%;flex:none}
.vs-blk-x .g{background:#4F9E2F}.vs-blk-x .r{background:var(--red-btn)}.vs-blk-x .o{background:var(--orange)}.vs-blk-x .k{background:var(--border-strong)}
.vs-wd{max-width:380px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);box-shadow:0 6px 20px rgba(20,18,60,.12);overflow:hidden;align-self:start}
.vs-wd-h{background:var(--navy-2);color:#fff;padding:10px 14px;display:flex;gap:8px;align-items:center;font-size:13px}
.vs-wd-h small{color:#CFCDEA;font-size:11.5px;display:block}
.vs-wd-s{padding:8px 14px;font-size:12px;color:var(--text-2);background:var(--surface-2)}
.vs-ql{list-style:none;padding:0;margin:0}
.vs-ql li{display:flex;gap:10px;align-items:center;padding:9px 14px;border-top:1px solid var(--border);font-size:13px}
.vs-ql li.now{background:var(--primary-soft)}
.vs-ic{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;font-size:10px}
.vs-ic.ok{background:var(--green-soft);color:var(--green-text)}.vs-ic.cur{border:2px solid var(--primary)}.vs-ic.todo{border:2px solid var(--border-strong)}
.vs-wd-f{padding:10px 14px;border-top:1px solid var(--border)}
.vs-chart{width:100%;height:auto;display:block}
.vs-chart .ax{stroke:var(--border)}
.vs-chart .ln{fill:none;stroke-width:2}.vs-chart .la{stroke:#2E79BB}.vs-chart .lb{stroke:#5B4FC4}
.vs-chart .dot-a{fill:#2E79BB}.vs-chart .dot-b{fill:#5B4FC4}

/* CR-23 Outbound (design Outbound.review.html): bars and tracks are SVG with width attributes, never inline styles */
.st-stop{color:var(--text-2)}.st-stop .sq{background:var(--navy)}
.t-dark .st-stop .sq{background:#8E8BD8}
.ob-mb{margin-bottom:16px}.ob-mt{margin-top:16px}.ob-grow{flex:1}
.ob-col{display:flex;flex-direction:column;gap:14px;min-width:0}
.ob-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ob-split{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-start}
.ob-split>.ob-main{flex:999 1 560px;min-width:0}
.ob-split>.ob-side{flex:1 1 320px;min-width:0}
.ob-drawer{border-left:3px solid var(--primary)}
.ob-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px 16px}
.ob-sec{padding:16px;border-top:1px solid var(--border)}
.ob-sec:first-child{border-top:0}
.ob-sec h4{font-size:13.5px;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.ob-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:8px}
.ob-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:12.5px;color:var(--text-2);cursor:pointer}
.ob-opt input{margin-top:2px}
.ob-opt b{display:block;color:var(--text);font-size:13px}
.ob-opt:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}
.ob-opt.off{opacity:.55;cursor:not-allowed}
.ob-opt .pill{margin-top:4px}
.ob-in{width:84px}.ob-in2{width:170px}.ob-in3{width:64px}
.ob-kpi6{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.ob-kpi7{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.ob-chart{width:100%;height:auto;display:block}
.ob-grid path{stroke:var(--border);stroke-width:1;fill:none}
.ob-ax text{font-size:10.5px;fill:var(--muted);text-anchor:end}
.ob-ax .m{text-anchor:middle}
.ob-l1,.ob-l2{fill:none;stroke:#2E79BB;stroke-width:1.75;stroke-linejoin:round;stroke-linecap:round}
.ob-l2{stroke:#A8418F;stroke-dasharray:5 3}
.ob-p1{fill:#2E79BB;stroke:var(--surface);stroke-width:2}.ob-p2{fill:#A8418F;stroke:var(--surface);stroke-width:2}
.ob-ann{font-size:10.5px;fill:var(--text-2)}
.ob-legend{display:inline-flex;gap:14px;font-size:12px;color:var(--text-2);flex-wrap:wrap}
.ob-legend span{display:inline-flex;align-items:center;gap:6px}
.ob-legend i{width:16px;height:0;display:inline-block;border-top:2px solid #2E79BB}
.ob-legend i.k2{border-top:2px dashed #A8418F}
.ob-bars{display:flex;flex-direction:column;gap:9px;font-size:13px}
.ob-bars>div{display:grid;grid-template-columns:minmax(110px,38%) minmax(60px,1fr) 64px;align-items:center;gap:10px}
.ob-bars b{text-align:right;font-weight:600}
.ob-bar{display:block;width:100%;min-width:60px;height:6px}
.ob-bar .bg{fill:var(--surface-3)}.ob-bar .fg{fill:var(--navy)}
.t-dark .ob-bar .fg{fill:#8E8BD8}
.ob-bar.pri .fg{fill:var(--primary)}
.ob-pen{display:flex;align-items:center;gap:8px;min-width:120px}
.ob-pen .ob-bar{flex:1}
.ob-mask{font-family:"JetBrains Mono",monospace;font-size:12px;letter-spacing:.04em;color:var(--text-2)}
.tbl.ob-wrap td{white-space:normal;line-height:1.35;padding-block:6px}
.tbl.ob-tight td{height:38px}
.ob-acts{display:inline-flex;gap:4px;align-items:center}
.ob-acts form{display:inline-flex}
.ob-lim{font-size:12px;color:var(--muted);display:flex;justify-content:space-between;margin-top:8px}
.ob-gauge{display:block;width:100%;height:16px;margin-top:6px}
.ob-gauge .bg{fill:var(--surface-3)}.ob-gauge .fg{fill:var(--primary)}.ob-gauge .mk{fill:var(--text)}
.ob-dlg{border:1px solid var(--border-strong);box-shadow:0 12px 32px rgba(20,18,60,.18)}
.ob-dlg .card-b{display:flex;flex-direction:column;gap:12px}
.ob-dlg .savebar{justify-content:flex-end}
.ob-rule{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--border);border-radius:5px;background:var(--surface)}
.ob-rule.new{border-style:dashed}
.ob-grp{border:1px solid var(--border-strong);border-left:3px solid var(--violet);border-radius:6px;padding:10px;display:flex;flex-direction:column;gap:8px;background:var(--surface-2)}
.ob-conj{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:3px;background:var(--navy);color:#fff;font-size:11px;font-weight:700;letter-spacing:.05em;align-self:flex-start}
.ob-conj.or{background:var(--violet)}
.ob-sort{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.ob-sort li{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:5px;font-size:13px;flex-wrap:wrap}
.ob-sort li .n{width:20px;height:20px;border-radius:50%;background:var(--surface-3);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center}
.ob-big{font-size:32px;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.ob-chain{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px}
.ob-chain span.a{padding:4px 8px;border-radius:4px;background:var(--surface-3);border:1px solid var(--border);white-space:nowrap}
.ob-chain span.a.end{background:var(--primary-soft);border-color:#C9DDF0;color:var(--link);font-weight:600}
.t-dark .ob-chain span.a.end{border-color:#2B4A72}
.ob-arr{color:var(--muted)}
.ob-wk{display:grid;grid-template-columns:44px 1fr;gap:6px 10px;align-items:center;font-size:12px}
.ob-trk{display:block;width:100%;height:18px}
.ob-trk .bg{fill:var(--surface-3)}.ob-trk .on{fill:var(--primary)}.ob-trk .now{fill:var(--text)}
.ob-hrs{display:grid;grid-template-columns:44px 1fr;gap:10px;font-size:10.5px;color:var(--muted)}
.ob-hrs>div{display:flex;justify-content:space-between}
.ob-days{display:grid;grid-template-columns:52px 1fr 1fr;gap:6px 10px;align-items:center;font-size:12.5px}
.ob-tpls{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px}
.ob-tpl{border:1px solid var(--border);border-radius:6px;padding:14px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}
.ob-tpl.on{border-color:var(--primary);box-shadow:0 0 0 3px rgba(46,121,187,.15)}
.ob-tpl h4{font-size:14px}
.ob-tpl .help{flex:1}
.ob-tpl .btn{align-self:flex-start}
.ob-t1{background:#2E79BB}.ob-t2{background:#5B4FC4}.ob-t3{background:#26235D}
.ob-seq{display:flex;align-items:stretch;gap:0;flex-wrap:wrap;padding:16px}
.ob-step{flex:1 1 150px;min-width:0;border:1px solid var(--border-strong);border-radius:6px;padding:12px;background:var(--surface);display:flex;flex-direction:column;gap:6px;font-size:12.5px}
.ob-step.cur{border:2px solid var(--primary)}
.ob-step.done{background:var(--surface-2)}
.ob-step .eyebrow{display:flex;justify-content:space-between;gap:6px}
.ob-link{flex:0 0 96px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px;color:var(--muted);text-align:center;padding:0 6px}
.ob-link .ln{width:100%;height:2px;background:var(--border-strong)}
.ob-note{font-size:12px;color:var(--muted);padding:10px 16px;border-top:1px solid var(--border)}
.ob-map td .input{height:30px;font-size:12.5px}
.ob-dz{border:2px dashed var(--border-strong);border-radius:6px;padding:14px;display:flex;align-items:center;gap:12px;background:var(--surface-2);font-size:13px;flex-wrap:wrap}
details.ob-det{border-top:1px solid var(--border)}
details.ob-det summary{padding:10px 16px;font-size:13px;font-weight:600;cursor:pointer;color:var(--link)}
details.ob-det>div{padding:0 16px 14px}
.ob-src{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-top:1px solid var(--border);font-size:13px}
.card-h+.ob-src{border-top:0}
.ob-src .ob-grow{min-width:0}
.ob-src .help{display:block}
.ob-tbtn{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
.ob-px{padding:0 16px}
.ob-inline{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap}
.ob-pop{display:inline-block;position:relative}
.ob-pop summary{list-style:none;cursor:pointer}
.ob-pop summary::-webkit-details-marker{display:none}
.ob-pop-f{margin-top:8px;display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:5px;box-shadow:var(--shadow);min-width:260px}
.ob-draft{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--orange-text);background:var(--orange-soft);border-radius:3px;padding:2px 6px;text-transform:uppercase}

/* ---- app frame: fixed top bar and side menu, the content area scrolls (never the window) ---- */
.nav{position:relative}
.top{position:sticky;top:0;z-index:30}
@media (min-width:900px){
    body.app{overflow:hidden}
    .app-root{height:100vh;min-height:0}
    .top{flex:none}
    .body{flex:1 1 auto;min-height:0;flex-wrap:nowrap}
    .nav{overflow-y:auto;overscroll-behavior:contain;padding-bottom:12px}
    .page{height:100%;overflow-y:auto;position:relative}
}

/* ---- side menu: collapsible groups (fragments/nav.html, js/nav.js) ---- */
.app .nav-g{display:flex;align-items:center;gap:8px;width:calc(100% - 20px);margin:1px 10px 0;padding:0 10px;min-height:26px;border:0;border-radius:4px;background:transparent;font:inherit;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#B4B2DA;font-weight:700;cursor:pointer;text-align:left}
.app .nav-g:hover{background:rgba(255,255,255,.06);color:#fff}
.app .nav-g:focus-visible{outline:2px solid #7FB3E6;outline-offset:-2px}
.nav-chev{width:10px;font-size:9px!important;color:#9C9AC9;transition:transform .15s}
.nav-g[aria-expanded="true"] .nav-chev{transform:rotate(90deg)}
.nav-g[aria-expanded="true"] .nb-sum{display:none}
.nav-gt{flex:1}
.nb-sum{background:var(--red);letter-spacing:0}
.nav-items{padding-bottom:2px}
.app .nav-items .nv{min-height:28px;margin:0 10px;font-size:13px}
/* items in a titled group sit under the group: their icons line up with the group title's text */
.app .nav-grp .nav-items .nv{margin-left:28px}
.nav-foot{padding:8px 20px 0;font-size:11px}
@media (min-width:900px){.nav{padding-top:6px}}

/* ---- top bar search: on list pages it filters the list, with "Search everywhere" in its menu ---- */
.gsearch{position:relative}
.gs-menu{display:none;position:absolute;left:-1px;right:-1px;top:calc(100% + 6px);z-index:40;padding:6px;color:var(--text)}
.gsearch-list:focus-within input:not(:placeholder-shown) ~ .gs-menu{display:block}
.app .gs-opt{display:flex;align-items:center;gap:10px;width:100%;min-height:34px;padding:0 10px;border:0;border-radius:4px;background:transparent;font:inherit;font-size:13px;color:var(--text);text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app .gs-opt:hover,.app .gs-opt:focus-visible{background:var(--primary-soft);color:var(--link);outline:0}
.gs-opt i{color:var(--muted);width:14px;text-align:center}
.gs-echo{font-weight:700}

/* ---- list pages: header, toolbar, table card and pager fill the content area; the table scrolls in its card ---- */
@media (min-width:900px){
    .page.page-list{display:flex;flex-direction:column;padding-bottom:16px}
    .page-list > *{flex:none}
    .page-list > .list-card,.page-list > .list-fill{flex:1 1 0;min-height:240px;display:flex;flex-direction:column}
    .list-fill > .list-card{flex:1 1 0;min-height:0;display:flex;flex-direction:column}
    .list-card > *{flex:none}
    .list-card > .list-body{flex:1 1 0;min-height:0;display:flex;flex-direction:column}
    .list-body > *{flex:none}
    .list-card > .tbox,.list-body > .tbox{flex:1 1 0;min-height:0;overflow:auto}
}
.list-card .tbox{position:relative}
.list-card .tbox thead th{position:sticky;top:0;z-index:2}

/* ---- the Organization column: client, then line of business and team, stacked ---- */
.tbl td.org-cell{white-space:nowrap;height:auto;padding-top:5px;padding-bottom:5px;line-height:1.3}
.org-cell .org-c,.org-cell .org-s{display:block}
.org-cell .org-c{font-size:13.5px;font-weight:500;color:var(--text)}
.app .org-cell a.org-c{color:var(--link);text-decoration:none}
.org-cell .org-s{font-size:12.5px;color:var(--muted)}
.app .org-cell a.org-s{color:var(--muted);text-decoration:none}
.app .org-cell a:hover{text-decoration:underline}
.pager.pager-note{border-top:0;padding-top:0}
@media (min-width:900px){
    .list-fill > *{flex:none}
    .page-list .list-fill > .list-card{flex:1 1 0;min-height:0}
    .page-list > .list-fill.split{flex-direction:row;flex-wrap:nowrap;align-items:stretch}
    .page-list .list-fill.split > .list-card{flex:999 1 0;min-width:0}
    .page-list .list-fill.split > .side{flex:1 1 280px;overflow:auto}
    .list-body.list-scroll{overflow:auto}
}
.side-stack{display:flex;flex-direction:column;gap:16px;min-width:0}
/* a list with content under it: the page scrolls rather than squeeze the table under a few rows */
@media (min-width:900px){
    .page-list > .list-card.list-floor,.page-list > .list-fill.list-floor,.page-list .list-fill > .list-card.list-floor{min-height:auto}
    .list-floor > .tbox,.list-floor > .list-body > .tbox{min-height:300px}
}
/* Campaign Manager: Events in a narrow column beside the table that scrolls on its own */
@media (min-width:900px){
    .page-list .list-fill.ob-wrap > .side{flex:0 0 280px;overflow:auto}
}
@media (min-width:1680px){
    .page-list .list-fill.ob-wrap > .side{flex-basis:340px}
}

/* ---- Composer designer productivity (B3): notes, multi-select, shortcuts, print ---- */
.cmp-sep{width:1px;height:20px;background:var(--border);margin:0 2px}
.cmp-tool select.input-sm{height:28px;font-size:12.5px}
.cmp-rubber{position:absolute;border:1px dashed var(--primary);background:rgba(46,121,187,.08);pointer-events:none;z-index:5}
.cmp-rubber[hidden]{display:none}
.cmp-note{position:absolute;display:flex;flex-direction:column;background:var(--yellow-soft);border:1px solid var(--yellow);border-radius:4px;box-shadow:0 1px 3px rgba(20,18,60,.12);z-index:0}
.cmp-note.selected{border:2px solid var(--primary);box-shadow:0 0 0 4px rgba(46,121,187,.18)}
.cmp-note-head{flex:none;height:16px;cursor:move;touch-action:none;border-bottom:1px dashed var(--yellow);display:flex;justify-content:flex-end;align-items:center;padding:0 4px;color:var(--muted);font-size:10px}
.cmp-note textarea{flex:1;min-height:0;resize:none;border:0;background:transparent;padding:6px 8px;font:inherit;font-size:12.5px;color:var(--text);outline:none}
.cmp-note textarea:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.cmp-note-size{position:absolute;right:0;bottom:0;width:12px;height:12px;cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,transparent 50%,var(--yellow) 50%)}
.composer .node{z-index:1}
.cmp-keys{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0;font-size:13px}
.cmp-keys dt{font-weight:600;white-space:nowrap}
.cmp-keys dd{margin:0;color:var(--text-2)}
.cmp-keys kbd{font-family:inherit;font-size:11.5px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:3px;padding:0 5px;background:var(--surface-2)}
#cmp-help-modal .modal-body{padding:8px 24px 0}
/* ---- Composer designer fills the content area: header, toolbar, canvas and inspector on one screen. The palette's
   list, the canvas and the inspector each scroll on their own; the simulator and danger zones follow below. ---- */
@media (min-width:900px){
    .page.page-composer{display:flex;flex-direction:column;padding-top:16px;padding-bottom:16px}
    .page-composer>*{flex:none}
    .page-composer>.cmp-screen{height:100%;min-height:500px;display:flex;flex-direction:column}
    .cmp-screen>*{flex:none}
    .cmp-screen>.ph{margin-bottom:12px}
    .cmp-screen>.composer{flex:1 1 0;min-height:0;flex-wrap:nowrap}
    .composer>.cmp-palette{flex:0 0 236px;max-width:none}
    .cmp-pal-list{flex:1 1 auto;max-height:none;margin-right:-6px;padding-right:6px}
    .cmp-main{min-height:0}
    .cmp-tool{flex-wrap:nowrap;min-width:0}
    .cmp-canvas{flex:1 1 0;height:auto;min-height:0}
    .composer>.cmp-props{flex:0 0 clamp(280px,22vw,400px);max-width:none;min-height:0}
    .cmp-props>.card-h{flex:none}
    .cmp-props>.cmp-props-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}
}
/* wide screens: tiles wide enough for one-line labels, so every category fits without scrolling at 1080p */
@media (min-width:1600px){.composer>.cmp-palette{flex-basis:264px}}
@media print{
    .page-composer,.page-composer>.cmp-screen{display:block!important;height:auto!important}
    .app-root>header,.app-root .body>nav,.cmp-palette,.cmp-props,.cmp-tool,.cmp-foot,#cmp-sim,.danger-zone,#composer .ph .acts,#cmp-banner,.toast-region,.modal-backdrop,.cmp-port,.cmp-loading{display:none!important}
    .app,.app .body,.app .page{background:#fff}
    .composer{display:block;min-height:0;border:0;box-shadow:none}
    .cmp-canvas{height:auto;overflow:visible;background:none}
    .composer .node,.cmp-note{box-shadow:none;break-inside:avoid}
}
.cmp-start{grid-column:1/-1}
/* ---- Conversational IVR (CR-24): connect-agent-forge's workbench in portal tokens. Every class is cv- prefixed so
   Forge's names (tabs, tool, field, pill …) never meet the portal's own. ---- */
.cv-subnav{margin:-6px 0 16px}
.cv-note b{display:block}
.cv-block{display:block}
.tbl.cv-agents td{height:auto;padding-top:7px;padding-bottom:7px}
.cv-agentcell{display:flex;flex-direction:column;gap:2px;white-space:normal;min-width:200px}
.cv-agentcell span{font-size:12px;color:var(--muted)}
.cv-states{white-space:nowrap}
.cv-states .pill+.pill{margin-left:6px}
.tbl td.cv-act{text-align:right;width:1%}
.app .cv-del{color:var(--muted)}
.app .cv-del:hover{color:var(--red-text);background:var(--red-soft)}
.pill.cv-stage,.cv-pill-select{background:var(--surface-3);color:var(--text-2)}
.cv-st-review{background:var(--orange-soft)!important;color:var(--orange-text)!important}
.cv-st-testing{background:#E3F4F3!important;color:#16706F!important}
.cv-st-production{background:var(--green-soft)!important;color:var(--green-text)!important}
.cv-st-demo{background:#F1ECFB!important;color:#6B3FB8!important}
.cv-st-development{background:#ECEBF6!important;color:#4E4B85!important}
.cv-st-concept{background:#F6F0E6!important;color:#806335!important}
.app.t-dark .cv-st-testing,.app.t-dark .cv-st-demo,.app.t-dark .cv-st-development,.app.t-dark .cv-st-concept{background:var(--surface-3)!important;color:var(--text-2)!important}
.cv-catalog{margin-bottom:16px}
.cv-cat-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:12px;padding:14px 16px}
.cv-cat-tool{border:1px solid var(--border);border-radius:4px;padding:12px 14px;background:var(--surface);min-width:0}
.cv-cat-tool p{margin:6px 0 8px;font-size:13px;color:var(--text-2)}
.cv-cat-head{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cv-cat-head b{font-weight:600;margin-right:4px}
.tbl.cv-params td,.tbl.cv-params th{height:auto;padding:6px 8px;font-size:12px}
.tbl.cv-params td.cv-wrap{white-space:normal}
.cv-keyforms{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.cv-keyform{display:flex;gap:6px;align-items:center}
.cv-keyform .input{width:260px}
.tbl.cv-keys td{height:auto;padding-top:7px;padding-bottom:7px}

.cv-page{padding:0}
.cv{display:flex;flex-direction:column;min-width:0;background:var(--bg)}
.cv [hidden]{display:none!important}
.cv-wb-bar{min-height:48px;padding:6px 20px;display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px;background:var(--surface);border-bottom:1px solid var(--border)}
.cv-wb-bar .crumb b{color:var(--text);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40ch}
.cv-right{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cv-pubtarget{font-size:12px;color:var(--muted);font-family:"JetBrains Mono",ui-monospace,monospace;white-space:nowrap}
.cv-dirty{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--orange-text)}
.cv-dirty::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--orange)}
.cv-wb{display:grid;grid-template-columns:1fr;min-width:0}
.cv-left{display:flex;flex-direction:column;min-width:0;background:var(--surface)}
.cv-left>*{flex:none}
.cv-test{display:flex;flex-direction:column;background:var(--surface);min-width:0;border-top:1px solid var(--border);height:min(640px,80vh)}
@media (min-width:1180px){
    .page.cv-page{display:flex;flex-direction:column;overflow:hidden}
    .cv{flex:1 1 0;min-height:0}
    .cv-wb{flex:1 1 0;min-height:0;grid-template-columns:minmax(0,1fr) 400px}
    .cv-left{overflow:auto;border-right:1px solid var(--border)}
    .cv-test{border-top:0;height:auto;min-height:0}
    .cv-tabs{position:sticky;top:0;z-index:5}
}
.cv-ident{display:grid;grid-template-columns:2fr 3fr 2fr;gap:16px;padding:14px 20px 0}
.cv-ident .cv-hint{margin:4px 0 0}
.cv-tabs{display:flex;gap:2px;padding:0 20px;border-bottom:1px solid var(--border);background:var(--surface);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.cv-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:12px 10px 10px;font:inherit;font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap;flex:none}
.cv-tabs button:hover{color:var(--text)}
.cv-tabs button.on{color:var(--text);border-bottom-color:var(--primary)}
.cv-badge{margin-left:6px;background:var(--primary-soft);color:var(--link);font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:9px}
.cv-badge.cv-warn{background:var(--orange-soft);color:var(--orange-text)}
.cv-pane{display:none;padding:20px}
.cv-pane.on{display:block}
.cv-field{margin-bottom:16px;min-width:0}
.cv-field>label{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:6px}
.cv-hint{font-size:12px;color:var(--muted);margin:-2px 0 6px;max-width:80ch;line-height:1.5}
.cv-hint.cv-below{margin:7px 0 0}
.cv-warn-text{color:var(--orange-text)!important}
.cv input[type=text],.cv input[type=number],.cv input[type=password],.cv select,.cv textarea.cv-plain{height:34px;padding:0 10px;border:1px solid var(--border-strong);border-radius:4px;background:var(--surface);color:var(--text);font:inherit;font-size:13.5px;width:100%;min-width:0}
.cv textarea.cv-plain{height:auto;padding:8px 10px;resize:vertical;line-height:1.5}
.cv input:focus,.cv select:focus,.cv textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}
.cv input:disabled,.cv select:disabled{background:var(--surface-2);color:var(--muted)}
.cv textarea.cv-inactive{background:var(--surface-2);color:var(--muted)}
.cv-narrow{max-width:220px}
.cv-mt4{margin-top:4px}.cv-mt8{margin-top:8px}.cv-mt10{margin-top:10px}.cv-mt12{margin-top:12px}.cv-mt22{margin-top:22px}.cv-mt28{margin-top:28px}.cv-mt30{margin-top:30px}.cv-m0{margin:0}
.cv-grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cv-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cv-gen-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px}
.cv-gen-grid input{max-width:200px}
.cv-endcall{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:4px 24px}
.cv-unitbox{display:flex;align-items:center;gap:8px}
.cv-unitbox input{max-width:140px}
.cv-unitbox span{font-size:12.5px;color:var(--muted)}
.cv-target-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:16px}
.cv-grid-url{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:16px}
.cv-target-hint{margin:-4px 0 14px;font-size:12.5px}
.cv-target-hint>div{margin-bottom:4px}
.cv-tn-act{color:var(--orange-text)}
.cv-tn-taken summary{cursor:pointer;color:var(--muted);width:max-content}
.cv-tn-taken ul{list-style:none;margin:6px 0 0;padding:6px 10px;border:1px solid var(--surface-3);border-radius:4px;background:var(--surface-2);display:grid;grid-template-columns:max-content 1fr;column-gap:14px;row-gap:3px}
.cv-tn-taken li{display:contents}
.cv-vad-note{margin:-4px 0 14px}
.cv-btnrow{display:flex;gap:8px;margin-top:12px}
.cv-center{text-align:center}
.cv .mono{font-family:"JetBrains Mono",ui-monospace,Menlo,monospace;font-size:12px}
.cv-rowsw{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--surface-3)}
.cv-rowsw.cv-noborder,.cv-rowsw:last-child{border-bottom:0}
.cv-rowsw.cv-rowsw-tight{padding:6px 0 0;border:0}
.cv-txt{flex:1}
.cv-txt b{display:block;font-size:13.5px;font-weight:600}
.cv-txt span{font-size:12.5px;color:var(--muted)}
.cv-sw{width:36px;height:20px;border-radius:10px;background:var(--border-strong);position:relative;cursor:pointer;flex:none;border:0;padding:0;transition:background .15s}
.cv-sw::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.cv-sw.on{background:var(--green)}
.cv-sw.on::after{transform:translateX(16px)}
.cv-sw.cv-warn.on{background:var(--red)}
.cv-tool{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border:1px solid var(--border);border-radius:4px;margin-bottom:8px;background:var(--surface);cursor:pointer}
.cv-tool.cv-sel{border-color:var(--primary);background:var(--primary-soft)}
.cv-tool input{margin-top:3px;accent-color:var(--primary)}
.cv-tool.cv-locked{opacity:.78}
.cv-tool.cv-locked input{cursor:not-allowed}
.cv-body{flex:1;min-width:0}
.cv-body b{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12.5px;font-weight:600}
.cv-body p{margin:3px 0 0;font-size:12.5px;color:var(--text-2)}
.cv-tags{display:flex;gap:5px;margin-top:7px;flex-wrap:wrap}
.cv-tag{font-size:10.5px;font-weight:600;padding:2px 6px;border-radius:4px;background:var(--surface-3);color:var(--text-2)}
.cv-tag-pci{background:var(--red-soft);color:var(--red-text)}
.cv-tag-term{background:var(--orange-soft);color:var(--orange-text)}
.cv-toolgroup{margin:14px 0 4px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cv-toolgroup:first-child{margin-top:0}
.cv-toolcfg{margin:-2px 0 12px 30px;padding:12px 14px 4px;border:1px dashed #C9D6E6;border-radius:4px;background:var(--surface-2)}
.cv-toolcfg.cv-shared{margin:0 0 14px;padding-bottom:6px}
.cv-toolcfg-h{font-size:12px;color:var(--text-2);margin-bottom:10px}
.cv-toolcfg .cv-field{margin-bottom:10px}
.cv-urlpath{margin:-6px 0 8px}
.cv-urlwarn{font-size:12px;color:var(--red-text);margin:-4px 0 8px}
.cv-defaults-h{font-size:12px;font-weight:600;color:var(--text-2);margin:6px 0 8px}
.cv-inrows{margin:0 0 8px;border-top:1px solid var(--surface-3)}
.cv-inrow{display:grid;grid-template-columns:minmax(150px,200px) minmax(0,1fr);gap:14px;padding:9px 0;border-bottom:1px solid var(--surface-3);transition:background .3s}
.cv-inrow.cv-flash{background:var(--primary-soft)}
.cv-in-name .mono{font-weight:600;color:var(--text);word-break:break-word}
.cv-in-req{margin-left:6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}
.cv-in-req.cv-req{color:#4E4B85}
.cv-in-by{font-size:11.5px;color:var(--muted);margin-top:2px}
.cv-in-edit{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.cv-in-key{flex:none;width:118px;font-size:12px;color:var(--text-2)}
.cv .cv-in-edit input,.cv .cv-in-edit select{flex:1;height:30px}
.cv-in-st{display:block;font-size:12px;line-height:1.45;padding-left:16px;position:relative;color:var(--text-2)}
.cv-in-st::before{content:"";position:absolute;left:2px;top:.45em;width:7px;height:7px;border-radius:50%;background:var(--muted)}
.cv-in-st.ok::before{background:var(--green)}
.cv-in-st.warn{color:var(--orange-text)}
.cv-in-st.warn::before{background:var(--orange)}
.cv-in-st.info::before{background:var(--primary)}
.cv-in-st.prompt::before{background:transparent;border:1.5px solid var(--muted);width:5px;height:5px}
.cv-in-count{margin-left:6px;font-size:10.5px;font-weight:600;padding:1px 6px;border-radius:4px;background:var(--orange-soft);color:var(--orange-text)}
.cv-editor{border:1px solid var(--border);border-radius:4px;overflow:hidden}
.cv-editor-bar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:8px 12px;background:var(--surface-2);border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}
.cv-r{margin-left:auto;display:flex;gap:12px;align-items:center;font-variant-numeric:tabular-nums}
.cv-seg{display:inline-flex;border:1px solid var(--border);border-radius:4px;overflow:hidden}
.cv-seg button{height:26px;padding:0 9px;border:0;border-right:1px solid var(--border);background:var(--surface);color:var(--text-2);font:inherit;font-size:12px;cursor:pointer}
.cv-seg button:last-child{border-right:0}
.cv-seg button.on{background:var(--navy);color:#fff}
.cv-seg.cv-fmt button{height:24px;font-size:11.5px;padding:0 8px}
.cv-stage-wrap{display:inline-flex}
.cv .cv-pill-select{appearance:none;-webkit-appearance:none;width:auto;height:26px;padding:0 24px 0 9px;border:0;border-radius:11px;font-size:11.5px;font-weight:600;cursor:pointer;background-repeat:no-repeat;background-position:right 8px center;background-size:8px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%23767C8B'/%3E%3C/svg%3E")}
.cv-rules-note{height:24px;padding:0 8px;border:1px solid #C9C7E3;border-radius:4px;background:#F1F0FA;color:#4E4B85;font:inherit;font-size:11.5px;font-weight:600;cursor:pointer}
.cv-hl-wrap{position:relative;background:var(--surface)}
.cv-hl-wrap .cv-hl,.cv-hl-wrap textarea.cv-code{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12.5px;line-height:1.75;padding:16px;margin:0;border:0;white-space:pre-wrap;overflow-wrap:break-word;word-break:normal;tab-size:4;letter-spacing:normal}
.cv-hl-wrap .cv-hl{position:absolute;inset:0;overflow:hidden;color:var(--text);pointer-events:none}
.cv-hl-wrap textarea.cv-code{position:relative;z-index:1;display:block;width:100%;min-height:420px;resize:vertical;background:transparent;color:transparent;caret-color:var(--text)}
.cv-hl-wrap textarea.cv-code:focus{outline:none;box-shadow:inset 0 0 0 2px var(--primary-soft)}
.cv-hl-wrap textarea.cv-code::selection{background:rgba(46,121,187,.28);color:transparent}
.cv-tok-var{color:var(--link);background:var(--primary-soft);border-radius:3px}
.cv-tok-var-runtime{color:var(--orange-text);background:var(--orange-soft);border-radius:3px;text-decoration:underline dotted var(--orange);text-underline-offset:3px}
.cv-tok-var-undef{color:var(--red-text);background:var(--red-soft);border-radius:3px;text-decoration:underline wavy var(--red);text-underline-offset:3px}
.cv-tok-var-guard{color:#fff;background:#4E4B85;border-radius:3px}
.cv-tok-tag{color:#2F3B9C}.cv-tok-attr{color:var(--orange-text)}.cv-tok-str{color:var(--green-text)}.cv-tok-comment{color:var(--muted)}
.cv-tok-h{color:var(--navy);font-weight:500}.cv-tok-mark{color:var(--primary)}.cv-tok-strong{font-weight:500}.cv-tok-em{color:var(--text-2)}
.cv-tok-code{color:var(--red-text);background:var(--red-soft)}.cv-tok-link{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.app.t-dark .cv-tok-tag{color:#9FA8FF}.app.t-dark .cv-tok-h{color:#C9C7F0}
.cv-published-view{background:var(--surface-2)}
.cv-published-note{padding:9px 16px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--surface-3)}
.cv-published-view .cv-hl{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12.5px;line-height:1.75;padding:16px;margin:0;white-space:pre-wrap;overflow-wrap:break-word;color:var(--text);min-height:420px;max-height:70vh;overflow:auto}
.cv-prompt-issues{display:flex;flex-direction:column;gap:6px;margin-top:10px;font-size:12px;max-width:90ch}
.cv-issue{padding:6px 10px;border-radius:4px;border-left:3px solid}
.cv-issue.cv-undef{background:var(--red-soft);border-color:var(--red);color:var(--red-text)}
.cv-issue.cv-runtime{background:var(--orange-soft);border-color:var(--orange);color:var(--orange-text)}
.cv-helptext{font-size:12px;color:var(--muted);margin-top:12px;max-width:80ch}
.cv-pubmsg{display:flex;gap:10px;align-items:flex-start;margin:16px 20px 0;padding:11px 14px;border:1px solid var(--border);border-left:3px solid var(--green);border-radius:4px;font-size:13px;background:var(--surface)}
.cv-pubmsg.cv-ok{border-left-color:var(--green);background:var(--green-soft)}
.cv-pubmsg.cv-warn{border-left-color:var(--orange);background:var(--orange-soft)}
.cv-pubmsg.cv-err{border-left-color:var(--red);background:var(--red-soft)}
.cv-t{flex:1;min-width:0}
.cv-t b{display:block;font-weight:600;margin-bottom:2px}
.cv-pubmsg ul{margin:4px 0 0;padding-left:18px}
.cv-pubmsg li{margin:3px 0;line-height:1.45}
.cv-x{width:26px;height:26px;border:1px solid transparent;border-radius:4px;background:none;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;flex:none}
.cv-x:hover{border-color:var(--border);color:var(--text)}
.cv-x:disabled{opacity:.3;cursor:default;border-color:transparent}
.cv-boxed{width:100%;border:1px solid var(--border);border-radius:4px;border-collapse:collapse}
.cv-boxed th{text-align:left;font-size:11.5px;font-weight:600;color:var(--muted);padding:9px 10px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.cv-boxed td{padding:8px 10px;border-bottom:1px solid var(--surface-3);font-size:13px;vertical-align:middle}
.cv-boxed tbody tr:last-child td{border-bottom:0}
.cv-varedit{table-layout:fixed}
.cv-varedit th,.cv-varedit td{padding:8px 6px}
.cv-varedit th:nth-child(1){width:24%}.cv-varedit th:nth-child(2){width:19%}.cv-varedit th:nth-child(3){width:21%}.cv-varedit th:nth-child(4){width:22%}.cv-varedit th:nth-child(5){width:8%;text-align:center}.cv-varedit th:nth-child(6){width:6%}
.cv .cv-varrow input:not([type=checkbox]),.cv .cv-varedit select{height:30px;padding:0 8px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px}
.cv-varedit input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}
.cv-propedit th:nth-child(1){width:13%}.cv-propedit th:nth-child(2){width:17%}.cv-propedit th:nth-child(3){width:21%}.cv-propedit th:nth-child(4){width:15%;text-align:left}.cv-propedit th:nth-child(5){width:auto}.cv-propedit th:nth-child(6){width:36px}
.cv-propedit tr.cv-bad td{border-bottom:0}
.cv-propedit tr.cv-proprow-msg td{padding:0 6px 8px;font-size:12px;color:var(--orange-text)}
.cv .cv-propedit tr.cv-bad input,.cv .cv-propedit tr.cv-bad select{border-color:var(--orange)}
.cv-tinputs td:first-child{white-space:nowrap}
.cv-hist tr.cv-current td{background:var(--surface-2)}
.cv-hist td.cv-act{text-align:right}
.cv-empty{text-align:center;padding:30px 20px;color:var(--muted);font-size:13px}
.cv-empty b{display:block;color:var(--text);font-size:14px;margin-bottom:4px}
.cv-combo{position:relative}
.cv .cv-combo input{padding-right:34px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12.5px}
.cv-combo-btn{position:absolute;right:1px;top:1px;bottom:1px;width:32px;border:0;border-left:1px solid var(--surface-3);background:none;color:var(--muted);cursor:pointer;border-radius:0 4px 4px 0}
.cv-combo-list{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;margin:0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:4px;box-shadow:0 8px 24px rgba(20,18,60,.14);max-height:280px;overflow:auto}
.cv-combo-list li{padding:7px 9px;border-radius:4px;cursor:pointer;display:flex;flex-direction:column;gap:1px}
.cv-combo-list li b{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12.5px;font-weight:500}
.cv-combo-list li span{font-size:11.5px;color:var(--muted)}
.cv-combo-list li.active,.cv-combo-list li:hover{background:var(--primary-soft)}
.cv-combo-list li.none{cursor:default;color:var(--muted);font-size:12px}
.cv-keyrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.cv .cv-keyrow input{flex:1;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px}
.cv-keystate{font-size:12.5px;white-space:nowrap;padding:5px 9px;border-radius:4px;background:var(--surface-3);color:var(--text-2)}
.cv-keystate.cv-own{background:var(--primary-soft);color:var(--link)}
.cv-keystate.cv-none{background:var(--red-soft);color:var(--red-text)}
.cv-keystate.cv-pending{background:var(--orange-soft);color:var(--orange-text)}
.cv-keychain{font-size:12px;color:var(--muted)}
.cv-sipreg{margin:4px 0 8px 12px;padding:12px 14px 4px;border-left:2px solid var(--border)}
.cv input[type=password]::-ms-reveal,.cv input[type=password]::-ms-clear{display:none}
.cv-rule{position:relative;display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border);border-radius:4px;background:var(--surface);margin-bottom:8px;transition:background .4s,border-color .4s}
.cv-rule-grip{flex:none;width:12px;height:20px;margin:6px -2px 0 -4px;cursor:grab;border-radius:3px;background-image:radial-gradient(circle,#A6ABB7 1.3px,transparent 1.5px);background-size:6px 6px;background-position:0 1px;opacity:.8}
.cv-rule-move{display:flex;flex-direction:column;flex:none;margin-top:-2px}
.cv-rule-move .cv-x{width:24px;height:19px;display:grid;place-items:center;padding:0}
.cv-rule-move .cv-x svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cv-rule.cv-dragging{opacity:.45}
.cv-rule.cv-drop-before::before,.cv-rule.cv-drop-after::after{content:"";position:absolute;left:-1px;right:-1px;height:3px;border-radius:2px;background:var(--primary)}
.cv-rule.cv-drop-before::before{top:-6px}
.cv-rule.cv-drop-after::after{bottom:-6px}
.cv-rule.cv-moved{background:var(--primary-soft);border-color:#BFD6EC}
.cv-rule .cv-sw{margin-top:5px}
.cv-rule-body{flex:1;min-width:0}
.cv-rule textarea{display:block;width:100%;min-height:36px;padding:7px 9px;border:1px solid var(--border);border-radius:4px;resize:none;overflow:hidden;font:inherit;font-size:13.5px;line-height:1.5;background:var(--surface);color:var(--text)}
.cv-rule.cv-off textarea{color:var(--muted);background:var(--surface-2)}
.cv-rule-from{display:block;font-size:11.5px;color:var(--muted);margin-top:4px}
.cv-rule-empty{padding:14px;border:1px dashed var(--border);border-radius:4px;font-size:13px;color:var(--muted)}
.cv-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.cv-preset{text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:4px;background:var(--surface);cursor:pointer;font:inherit;color:var(--text)}
.cv-preset:hover:not([disabled]){border-color:var(--primary);background:var(--primary-soft)}
.cv-preset[disabled]{cursor:default;opacity:.55}
.cv-preset b{display:block;font-size:13px;font-weight:600;margin-bottom:3px}
.cv-preset span{display:block;font-size:12px;color:var(--muted);line-height:1.45}
.cv-tr-head{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}
.cv-tr-head h3{font-size:13.5px;font-weight:700}
.cv-callstate{font-size:12px;padding:3px 9px;border-radius:4px;background:var(--surface-3);color:var(--text-2);white-space:nowrap}
.cv-callstate.cv-connecting{background:var(--orange-soft);color:var(--orange-text)}
.cv-callstate.cv-ended{background:var(--surface-3);color:var(--muted)}
.cv-callpanel{padding:10px 16px 2px;border-bottom:1px solid var(--border)}
.cv-callnote{font-size:11.5px;color:var(--muted);margin:2px 0 8px;line-height:1.45}
.cv-stream{flex:1;min-height:160px;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:14px;background:var(--surface-2)}
.cv-turn{max-width:92%}
.cv-who{font-size:11px;font-weight:600;color:var(--muted);margin-bottom:4px}
.cv-bubble{padding:9px 12px;border-radius:4px;font-size:13px;border:1px solid var(--border);background:var(--surface);white-space:pre-wrap}
.cv-turn.cv-user{align-self:flex-end}
.cv-turn.cv-user .cv-bubble{background:var(--navy);color:#fff;border-color:var(--navy)}
.cv-turn.cv-user .cv-who{text-align:right}
.cv-trace{border-left:2px solid var(--primary);background:var(--primary-soft);padding:9px 12px;border-radius:0 4px 4px 0;font-size:12px}
.cv-trace b{font-family:"JetBrains Mono",ui-monospace,monospace;font-size:12px;font-weight:600;color:var(--link)}
.cv-kv{margin-top:5px;font-family:"JetBrains Mono",ui-monospace,monospace;font-size:11.5px;color:var(--text-2);white-space:pre-wrap}
.cv-trace.cv-slow{border-left-color:var(--orange);background:var(--orange-soft)}
.cv-trace.cv-err{border-left-color:var(--red);background:var(--red-soft)}
.cv-trace.cv-err b{color:var(--red-text)}
.cv-lat{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:-8px}
.cv-compose{border-top:1px solid var(--border);padding:12px 16px;display:flex;gap:8px;align-items:center}
.cv .cv-compose input{flex:1}
.cv-toast{position:fixed;right:24px;bottom:80px;background:var(--navy);color:#fff;padding:12px 16px;border-radius:4px;box-shadow:0 8px 24px rgba(29,31,38,.24);font-size:13px;display:flex;gap:10px;align-items:center;z-index:99;transform:translateY(80px);opacity:0;pointer-events:none;transition:.22s}
.cv-toast.on{transform:none;opacity:1}
.cv-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}
dialog.cv-confirm{border:1px solid var(--border);border-radius:6px;padding:0;width:min(440px,calc(100vw - 32px));box-shadow:0 12px 40px rgba(29,31,38,.22);color:var(--text);background:var(--surface)}
dialog.cv-confirm::backdrop{background:rgba(29,31,38,.35)}
dialog.cv-confirm form{padding:20px 22px 16px}
dialog.cv-confirm h3{margin:0 0 8px;font-size:16px;font-weight:600}
dialog.cv-confirm p{margin:0 0 18px;font-size:13.5px;color:var(--text-2);line-height:1.55}
.cv-acts{display:flex;justify-content:flex-end;gap:8px}
.cv-voice-hint{min-height:1em}
@media (max-width:1100px){.cv-inrow{grid-template-columns:1fr;gap:6px}.cv-target-grid{grid-template-columns:1fr}}
@media (max-width:820px){.cv-ident,.cv-grid2,.cv-grid3,.cv-gen-grid,.cv-endcall{grid-template-columns:1fr}.cv-cat-list{grid-template-columns:1fr}}
.cv-tabs,.cv-tr-head,.cv-editor-bar,.cv-toolgroup,.cv-toolcfg-h,.cv-hint,.cv-callnote,.cv-empty,.cv-rowsw .cv-txt,.cv-tool,.cv-defaults-h,.cv-in-req,.cv-in-by,.cv-in-key,.cv-in-st,.cv-rule-from,.cv-preset,.cv-rules-note{-webkit-user-select:none;user-select:none}

/* ---- pages that fit the window (compliance, billing run, rate card, Campaign Manager): tabs on a list card,
   actions above the table, dialogs; nothing under the pager ---- */
.tabs-card{align-items:center;padding:0 8px 0 4px;gap:2px}
.tabs-card .tabs-note{flex:0 1 auto;min-width:0;max-width:560px;font-size:12px;line-height:1.35;padding:6px 8px;white-space:normal;text-align:right}
.tabs-card .tabs-act{flex:none;margin-left:8px}
.tab .ct.ct-warn{background:var(--orange-soft);color:var(--orange-text)}
.list-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.list-bar .help{flex:1 1 240px;min-width:0;font-size:12px;line-height:1.35}
.list-bar.list-bar-warn{background:var(--orange-soft)}
dialog.dlg{border:1px solid var(--border);border-radius:6px;padding:0;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 48px);box-shadow:0 24px 60px rgba(16,15,34,.35);color:var(--text);background:var(--surface)}
dialog.dlg.dlg-wide{width:min(820px,calc(100vw - 32px))}
dialog.dlg::backdrop{background:rgba(16,15,34,.55)}
.dlg-h{display:flex;align-items:flex-start;gap:12px;padding:18px 20px 6px}
.dlg-h h2{font-size:17px;font-weight:700;margin:0}
.dlg-h p{margin:4px 0 0;color:var(--text-2);font-size:13px}
.dlg-h .grow{flex:1}
.dlg-b{padding:10px 20px 4px;display:flex;flex-direction:column;gap:12px}
.dlg-b .tbox{max-height:min(420px,calc(100vh - 260px));overflow:auto}
.dlg-f{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px 18px;flex-wrap:wrap}
.dlg-f .grow{flex:1}
.dlg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.dlg-grid .field-wide{grid-column:1 / -1}
.ph .acts .sep{width:1px;align-self:stretch;background:var(--border);margin:4px 2px}
.dropdown[open]>.menu.menu-scroll{max-height:min(420px,calc(100vh - 160px));overflow-y:auto}
.menu .menu-h{padding:8px 10px 2px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;border-top:1px solid var(--border);margin-top:4px}
.btn .ct{font-size:11px;font-weight:700;background:var(--surface-3);color:var(--text-2);border-radius:9px;padding:1px 7px;margin-left:2px}
.clamp2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;min-width:0;flex:1 1 0}
.tabs-card form.tabs-act{gap:8px;padding:4px 0;flex-wrap:nowrap}
.search.search-sm{height:30px;flex:0 1 260px;min-width:160px}
.tabs-card .seg,.tabs-card .btn{flex:none;white-space:nowrap}
.mb-12{margin-bottom:12px}
/* a page that fits the window: the title block gives way so the header actions sit beside it */
@media (min-width:900px){
    .page-fit > .ph{flex-wrap:nowrap;margin-bottom:14px}
    .page-fit > .ph > div:first-child{flex:1 1 360px;min-width:0}
    .page-fit > .ph > .acts{flex:0 1 auto;justify-content:flex-end}
    .page-fit .steps-card .steps{padding:8px 16px}
}
.kpis.kpis-compact .kpi{padding:10px 14px}
.kpis.kpis-compact .kpi .v{font-size:22px;margin-top:2px}
.kpis.kpis-compact .kpi .v.money{font-size:19px}
.kpis.kpis-compact .kpi .d{margin-top:3px}
.tool .field.row{flex-direction:row;align-items:center;gap:8px}
.tool .field.row .input{width:auto}
.warn-note{display:flex;align-items:flex-start;gap:8px;flex:1 1 260px;min-width:0;padding:5px 10px;border-radius:4px;background:var(--orange-soft);color:var(--text-2);font-size:12px;line-height:1.35}
.warn-note>i{color:var(--orange-text);margin-top:2px}
.dlg-f .lbl{white-space:nowrap}
.tbl.rc-rates .input.num-in{width:76px;min-width:76px}
.tbl.rc-rates select.input{min-width:92px}
.tbl.rc-rates td,.tbl.rc-rates th{padding-left:8px;padding-right:8px}
.rc-dirty[hidden]{display:none}
.ob-kpi6 .kpi .eyebrow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ob-narrow-in{display:none}
@media (min-width:900px) and (max-width:1679px){
    .ob-manager .ob-wide{display:none}
    .ob-manager .ob-wide-in{display:none}
    .ob-manager .ob-narrow-in{display:inline}
    .ob-manager td,.ob-manager th{padding-left:7px;padding-right:7px}
    .page-list .list-fill.ob-wrap > .side{flex-basis:240px}
}
.ob-kpi6.kpis-compact .kpi .d{flex-wrap:nowrap;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
@media (min-width:900px) and (max-width:1679px){
    .ob-manager .ob-pen{min-width:84px}
    .ob-manager td:first-child{white-space:normal;min-width:130px}
    .ob-manager td:first-child .help{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
}
.dlg-h h3{font-size:17px;font-weight:700;margin:0}
/* ---- CR-26 Operational Parameters ---- */
.opm-cell{display:flex;flex-direction:column;gap:2px;white-space:normal;min-width:160px}
.opm-wrap{white-space:normal;min-width:180px;max-width:420px}
.opm-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px;align-items:start}
.opm-grid-wide{grid-template-columns:minmax(0,3fr) minmax(260px,1fr)}
@media (max-width:1100px){.opm-grid,.opm-grid-wide{grid-template-columns:minmax(0,1fr)}}
.tbl.opm-values td{height:auto;padding-top:6px;padding-bottom:6px}
.tbl.opm-values tr.opm-chg td{background:var(--orange-soft)}
.tbl.opm-items td{height:auto;padding-top:6px;padding-bottom:6px}
.tbl.opm-items tr.grp td{background:var(--surface-3)}
.opm-in{min-width:180px;max-width:320px}
.opm-reason{max-width:320px}
.opm-rule{margin-top:14px;line-height:1.5}
.opm-lines{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:13px}
.opm-add{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px 14px;align-items:end;border-top:1px solid var(--border)}
.opm-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px 24px}
.opm-bfield .opm-in{max-width:none}
.opm-err{font-size:12px;color:var(--red-text);font-weight:600}
.opm-when{display:flex;flex-wrap:wrap;gap:16px 32px;border-top:1px solid var(--border)}
.opm-when fieldset{border:0;padding:0;margin:0}
.opm-sched.opm-focus{outline:2px solid var(--primary);outline-offset:1px}
.opm-sched .grow span{display:block}
.opm-sched-row{padding:6px 0;border-top:1px solid var(--border)}
.opm-sched-row:first-child{border-top:0}
.opm-drift .alert{border-radius:6px 6px 0 0}
.opm-mx{margin:0 16px 12px}
.tbl.opm-diff td{height:30px}
/* the bell (portal notifications) */
.nt-menu{position:relative}
.nt-head{display:flex;flex-direction:column;padding:8px 10px 10px;border-bottom:1px solid var(--border);margin-bottom:6px}
.nt-menu .um-pop{right:-40px}
.nt-bell{list-style:none;position:relative;cursor:pointer}
.nt-bell::-webkit-details-marker{display:none}
.nt-count{position:absolute;top:-4px;right:-6px;min-width:16px;height:16px;font-size:10px;padding:0 4px}
.nt-pop{width:min(360px,calc(100vw - 32px))}
.nt-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;height:auto;padding:8px 10px;text-align:left;white-space:normal;width:100%}
.nt-item.nt-unread .nt-t{font-weight:700}
.nt-empty{padding:8px 12px}

/* ---------------------------------------------------------------------------------------- Contacts (CR-25) */
.ct-adv{overflow:hidden}
.ct-adv-h{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;list-style:none;font-size:13.5px}
.ct-adv-h::-webkit-details-marker{display:none}
.ct-adv-h .help{margin-left:auto}
.ct-adv-b{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px 16px;padding:14px 16px;border-top:1px solid var(--border)}
.ct-adv-f{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ct-query{margin-left:auto;white-space:normal}
.ct-list td.ct-ch{color:var(--muted)}
.ct-list td.ct-ch i+i{margin-left:8px}
.ct-head{gap:14px;align-items:flex-start}
.ct-av{width:44px;height:44px;font-size:15px;flex:none}
.ct-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px;align-items:start}
.ct-attrs dd{overflow:visible}
.ct-vals{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.ct-val{display:inline-flex;align-items:center;gap:6px}
.ct-masked{color:var(--text-2);letter-spacing:.02em}
.ct-revealed{color:var(--orange-text)}
.ct-tabs{padding:0 12px}
.ct-hist td.clamp2{white-space:normal;max-width:320px}
.ct-notes .ct-note{white-space:pre-wrap;color:var(--text);margin-top:2px}
.ct-reasons{display:flex;flex-direction:column;gap:8px;border:0;padding:0;margin:0}
.ct-form-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:16px;align-items:start}
.ct-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px 24px}
.ct-vrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ct-vrow .input{flex:1 1 160px;min-width:0}
.ct-vrow .ct-desc{flex:0 1 110px}
.ct-field.ct-err .input{border-color:var(--red)}
.ct-ferr{color:var(--red-text);font-size:12.5px}
.ct-cond{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ct-cond .lbl{min-width:70px}
.ct-days{width:90px;flex:none}
.ct-cmp td{white-space:normal}
.ca-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px 20px}
.ca-level{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ca-lv{width:84px;flex:none}
.ca-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 20px}
.ca-test .input{flex:1 1 160px}
.im-map td{white-space:normal}
.rt-years{width:72px}
.pr-list td{white-space:normal}
@media (max-width: 900px){
    .ct-grid,.ct-form-grid{grid-template-columns:1fr}
}
/* ---- CR-27 Reason Codes: list, editor, sets, mapping, live view, import and history ---- */
.rc-pages{margin:12px 0 16px}
.rc-client{margin-bottom:16px;gap:8px;align-items:center}
.rc-sq{display:inline-block;width:12px;height:12px;border-radius:3px;flex:none;vertical-align:-1px;margin-right:4px;border:1px solid transparent}
.rc-c-none{background:transparent;border-color:var(--border-strong)}
.rc-c-gray{background:#8A9093}.rc-c-blue{background:#2E79BB}.rc-c-teal{background:#1E9A8A}.rc-c-green{background:#6CC049}
.rc-c-yellow{background:#F7D752}.rc-c-amber{background:#F99F42}.rc-c-red{background:#DE1B54}.rc-c-violet{background:#5B4FC4}
.rc-dim td{color:var(--muted)}
.rc-warn td{background:var(--orange-soft)}
.rc-bulkbar{position:sticky;bottom:0;z-index:3}
.rc-errors{margin:4px 0 0;padding-left:18px}
.rc-col{display:flex;flex-direction:column;gap:12px;min-width:0}
fieldset.rc-col,fieldset.main{border:0;margin:0;padding:0}
.rc-sec{font-size:13px;font-weight:700;padding-top:6px;border-top:1px solid var(--border);margin-top:4px}
.rc-col>.rc-sec:first-child{border-top:0;margin-top:0;padding-top:0}
.rc-f4{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;align-items:end}
.rc-f3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 16px;align-items:start}
.rc-note{font-size:11px;text-transform:none;letter-spacing:0;font-weight:400;color:var(--muted)}
.rc-lang{max-width:110px;display:inline-block}
.rc-subcode{max-width:100px}
.rc-num{max-width:90px}
.rc-rowacts{white-space:nowrap;text-align:right}
.rc-rowacts .row{display:inline-flex;gap:4px;margin-left:6px}
.rc-seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:4px;overflow:hidden;width:max-content}
.rc-seg label{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;cursor:pointer}
.rc-seg label+label{border-left:1px solid var(--border-strong)}
.rc-seg label:has(input:checked){background:var(--primary-soft);color:var(--text);font-weight:600}
.rc-palette{display:flex;flex-wrap:wrap;gap:8px}
.rc-swatch{display:inline-flex;align-items:center;gap:4px;padding:4px 6px;border:1px solid var(--border);border-radius:4px;cursor:pointer}
.rc-swatch .rc-sq{width:18px;height:18px;margin:0}
.rc-swatch:has(input:checked){border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}
.rc-savebar{margin-top:4px;border-radius:4px}
.rc-panel .codeblock{border-radius:0}
.rc-saved{white-space:pre;max-height:420px;overflow:auto}
.rc-checks{list-style:none;margin:0;font-size:13px}
.rc-checks li{display:flex;gap:9px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--border)}
.rc-checks li:first-child{border-top:0}
.rc-checks .rc-r{margin-left:auto;font-size:12px;color:var(--muted);text-align:right}
.rc-ok i{color:var(--green-text)}.rc-bad i{color:var(--red-text)}.rc-warn-check i{color:var(--orange-text)}
.rc-desktop-note{background:var(--surface-2);border-radius:4px;padding:8px 10px}
.rc-menutbl td{vertical-align:middle}
.rc-menutbl .input-sm{max-width:220px}
.rc-preview{display:flex;flex-direction:column;gap:2px;font-size:13px}
.rc-pv-item{padding:6px 10px;border-radius:4px;background:var(--surface-2);display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}
.rc-pv-ready{background:var(--green-soft);color:var(--green-text);font-weight:600}
.rc-pv-h{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:8px 2px 2px}
.rc-pv-sub{flex-basis:100%;font-size:12px;color:var(--muted)}
.rc-wrap{white-space:normal;word-break:break-word}
.rc-bar{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden;width:120px;display:inline-block;vertical-align:middle;margin-right:6px}
.rc-bar>span{display:block;height:100%;border-radius:3px;background:var(--primary)}
.rc-w0{width:0}.rc-w1{width:10%}.rc-w2{width:20%}.rc-w3{width:30%}.rc-w4{width:40%}.rc-w5{width:50%}
.rc-w6{width:60%}.rc-w7{width:70%}.rc-w8{width:80%}.rc-w9{width:90%}.rc-w10{width:100%}
.rc-bar>.rc-b-ok{background:var(--green)}.rc-bar>.rc-b-alert{background:var(--orange)}.rc-bar>.rc-b-over{background:var(--red)}
.rc-live-reason .gc{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
.rc-hidden{display:none}
.rc-fieldset{border:0;margin:0;padding:0;gap:6px}
.rc-fieldset legend{margin-bottom:6px;padding:0}

/* ---- CR-28 Security › WebRTC Credentials ---- */
.wr-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.wr-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:16px;align-items:start}
.wr-split.list-fill{align-items:stretch}
@media (max-width:1099px){.wr-split{grid-template-columns:minmax(0,1fr)}}
.wr-narrow{max-width:640px}
.wr-grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px 24px;padding:16px;border:0;margin:0}
.wr-savebar{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface-2)}
.wr-grow{flex:1 1 280px}
.wr-mt8{margin-top:8px;display:flex}
.wr-dim td{color:var(--muted)}
.wr-v-ok{color:var(--green-text)}
.wr-v-fx{color:var(--orange-text)}
.wr-v-bad{color:var(--red-text);font-weight:700}
.wr-chk{width:36px}
.wr-bulkbar[hidden]{display:none}
.wr-onnavy{color:rgba(255,255,255,.75)}
.wr-ev-ok{color:var(--green-text)}
.wr-ev-bad{color:var(--red-text)}
.wr-ev-fx{color:var(--orange-text)}
.wr-ev-mut{color:var(--muted)}
.wr-softphone{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
