/*
 * Surveyor UI components (Direction A "Workbench").
 * Depends on tokens.css. Class prefix: zi-. No framework.
 * Anatomy follows PatternFly naming where a counterpart exists
 * (page / masthead / nav / toolbar / table / card / form) so a later
 * class mapping is mechanical.
 */
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body.zi{font-family:var(--zi-font);font-size:var(--zi-fs-body);line-height:1.45;color:var(--zi-text);background:var(--zi-bg);-webkit-font-smoothing:antialiased;padding:0;min-height:0}
/* Links. Wrapped legacy stylesheets are imported into the `legacy` cascade layer (see zi_shell_flush), so these
   unlayered declarations beat their A:link / A.menulink rules at any specificity. The legacy body is excluded so its
   own link classes still apply there; buttons rendered as <a class="zi-btn"> are excluded so they keep their look. */
:where(.zi) a:where(:not(.zi-legacy-body *, .zi-btn, .zi-btn-ghosty, .zi-iconbtn)){font:inherit;color:var(--zi-accent-text);text-decoration:none}
:where(.zi) a:where(:not(.zi-legacy-body *, .zi-btn, .zi-btn-ghosty, .zi-iconbtn)):hover{text-decoration:underline}
.zi a:hover{text-decoration:underline}
.zi button,.zi input.zi-btn{font:inherit}
.zi :focus-visible{outline:2px solid var(--zi-accent);outline-offset:2px}
.zi-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.zi-icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
.zi-icon.sm{width:16px;height:16px;stroke-width:2}
.zi-topbar .zi-hide-lg{display:none}

/* ---------- app shell ---------- */
/* the footer has its own row beside the rail, so a short page fits the window: with the footer in an implicit row under
   a full-height rail, every page scrolled by the footer's height and the rail covered the footer's first links */
.zi-app{display:grid;grid-template-columns:var(--zi-rail-w) minmax(0,1fr);grid-template-rows:var(--zi-topbar-h) 1fr auto;min-height:100vh}
.zi-app.no-rail{grid-template-columns:minmax(0,1fr)}
.zi-app.no-rail .zi-footer{grid-column:1/-1}
.zi-topbar{grid-column:1/-1;display:flex;align-items:center;gap:16px;padding:0 16px;background:var(--zi-surface);border-bottom:1px solid var(--zi-line);position:sticky;top:0;z-index:40}
.zi-brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;letter-spacing:-.01em;min-width:200px;color:var(--zi-text);text-decoration:none;white-space:nowrap}
.zi-brand:hover{text-decoration:none}
.zi-brand .mark{width:26px;height:26px;border-radius:7px;background:conic-gradient(from 200deg,var(--zi-accent),var(--zi-lime));position:relative;flex:none}
.zi-brand .mark::after{content:"";position:absolute;inset:7px;border-radius:50%;background:#fff}
.zi-brand img{height:28px;width:auto;max-width:220px;object-fit:contain}
.zi-brand small{font-weight:400;color:var(--zi-text-3);margin-left:2px}
.zi-search{flex:1;max-width:520px;display:flex;align-items:center;gap:10px;height:var(--zi-control-h);padding:0 12px;border:1px solid var(--zi-line);border-radius:var(--zi-radius);background:var(--zi-surface-2);color:var(--zi-text-3);cursor:text}
.zi-search input{flex:1;border:0;background:transparent;font:inherit;color:var(--zi-text);outline:0;min-width:0}
.zi-search>span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zi-search kbd{margin-left:auto;font:11px var(--zi-mono);border:1px solid var(--zi-line-strong);border-radius:4px;padding:1px 6px;background:#fff;color:var(--zi-text-2)}
.zi-topbar .spacer{flex:1}
.zi-btn-ghosty{display:inline-flex;align-items:center;gap:7px;height:var(--zi-control-h);padding:0 10px 0 12px;border:1px solid var(--zi-line);border-radius:var(--zi-radius);background:#fff;color:var(--zi-text-2);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap}
.zi-btn-ghosty:hover{background:var(--zi-surface-2);color:var(--zi-text)}
.zi-btn-ghosty .lbl{color:var(--zi-text-3);font-weight:400}
.zi-iconbtn{width:var(--zi-control-h);height:var(--zi-control-h);display:grid;place-items:center;border:1px solid transparent;border-radius:var(--zi-radius);color:var(--zi-text-2);background:none;cursor:pointer}
.zi-iconbtn:hover{background:var(--zi-surface-2);border-color:var(--zi-line)}
.zi-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--zi-accent),var(--zi-lime));color:#fff;font-size:12px;font-weight:600;display:grid;place-items:center;border:0;cursor:pointer}
.zi-rail{grid-row:2/span 2;background:var(--zi-surface);border-right:1px solid var(--zi-line);padding:12px 10px;display:flex;flex-direction:column;gap:2px;overflow:auto;position:sticky;top:var(--zi-topbar-h);height:calc(100vh - var(--zi-topbar-h))}
.zi-rail .sec{font-size:var(--zi-fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--zi-text-3);padding:14px 10px 6px;font-weight:600}
.zi-rail a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--zi-radius);color:var(--zi-text-2);font-weight:500}
.zi-rail a:hover{background:var(--zi-surface-2);color:var(--zi-text);text-decoration:none}
.zi-rail a[aria-current="page"]{background:var(--zi-accent-soft);color:var(--zi-accent-text)}
.zi-rail a .count{margin-left:auto;font-size:11px;color:var(--zi-text-3);font-variant-numeric:tabular-nums}
.zi-rail a.sub{padding-left:38px;font-weight:400;font-size:13px}
.zi-rail .locked{opacity:.5;pointer-events:none}
.zi-rail a.zi-rail-version{margin-top:auto;padding:16px 10px 2px;font-size:11px;font-weight:400;color:var(--zi-text-3);font-variant-numeric:tabular-nums}
.zi-rail a.zi-rail-version:hover{background:none;color:var(--zi-accent-text);text-decoration:underline}
.zi-main{overflow:auto;padding:24px var(--zi-gutter) 40px;min-width:0}
.zi-crumbs{font-size:13px;color:var(--zi-text-3);display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.zi-crumbs b{color:var(--zi-text-2);font-weight:500}
.zi-pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}
.zi h1,.zi-h1{font-size:var(--zi-fs-title);font-weight:600;letter-spacing:-.015em;margin:0;line-height:1.25}
.zi h2,.zi-h2{font-size:var(--zi-fs-h2);font-weight:600;margin:0 0 10px}
.zi-sub{color:var(--zi-text-2);margin-top:4px;font-size:13px}
.zi-actions{display:flex;gap:8px;align-items:center;flex:none;flex-wrap:wrap}
.zi-footer{grid-column:2;display:flex;gap:16px;align-items:center;padding:18px var(--zi-gutter);font-size:12px;color:var(--zi-text-3);border-top:1px solid var(--zi-line);margin-top:24px}
.zi-footer a{color:var(--zi-text-2)}

/* ---------- buttons ---------- */
.zi-btn{height:var(--zi-control-h);padding:0 14px;border-radius:var(--zi-radius);border:1px solid var(--zi-line-strong);background:#fff;color:var(--zi-text);font-weight:500;display:inline-flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap;text-decoration:none}
.zi-btn:hover{background:var(--zi-surface-2);text-decoration:none}
.zi-btn.primary{background:var(--zi-accent);border-color:var(--zi-accent);color:#fff}
.zi-btn.primary:hover{background:var(--zi-accent-hover)}
.zi-btn.ghost{border-color:transparent;color:var(--zi-text-2)}
.zi-btn.danger{color:var(--zi-danger)}
.zi-btn.danger.primary{background:var(--zi-danger);border-color:var(--zi-danger);color:#fff}
.zi-btn.sm{height:var(--zi-control-h-sm);padding:0 10px;font-size:13px}
.zi .zi-btn{font-family:var(--zi-font)}   /* a button inside an old Verdana table still reads in the shell font */
.zi-btn[disabled]{opacity:.5;cursor:default}
.zi-more{width:28px;height:28px;border-radius:var(--zi-radius);border:1px solid transparent;display:grid;place-items:center;color:var(--zi-text-3);cursor:pointer;background:none}
.zi-more:hover{border-color:var(--zi-line);background:#fff;color:var(--zi-text)}

/* ---------- tabs ---------- */
.zi-tabs{display:flex;gap:4px;border-bottom:1px solid var(--zi-line);margin:0 0 20px;overflow-x:auto}
.zi-tabs a,.zi-tabs button{padding:10px 12px;color:var(--zi-text-2);font-weight:500;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;display:flex;gap:8px;align-items:center;background:none;cursor:pointer;white-space:nowrap}
.zi-tabs .n{font-size:12px;color:var(--zi-text-3);background:var(--zi-surface-2);border:1px solid var(--zi-line);border-radius:10px;padding:0 7px}
.zi-tabs [aria-selected="true"],.zi-tabs .active{color:var(--zi-accent-text);border-color:var(--zi-accent)}
.zi-tabs a:hover{text-decoration:none;color:var(--zi-text)}

/* ---------- cards & tiles ---------- */
.zi-card{background:var(--zi-surface);border:1px solid var(--zi-line);border-radius:var(--zi-radius-lg);box-shadow:var(--zi-shadow)}
.zi-card .hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--zi-line)}
.zi-card .hd h2{margin:0}
.zi-card .bd{padding:16px}
.zi-grid{display:grid;gap:16px}
.zi-grid.two{grid-template-columns:1.6fr 1fr}
.zi-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.zi-kpi{background:var(--zi-surface);border:1px solid var(--zi-line);border-radius:var(--zi-radius-lg);padding:14px 16px}
.zi-kpi .l{font-size:var(--zi-fs-meta);color:var(--zi-text-3);font-weight:500}
.zi-kpi .v{font-size:26px;font-weight:600;letter-spacing:-.02em;margin-top:4px;font-variant-numeric:tabular-nums;line-height:1.1}
.zi-kpi .d{font-size:var(--zi-fs-meta);color:var(--zi-text-2);margin-top:6px}
.zi-kpi .d.up{color:var(--zi-ok)}

/* ---------- pills / labels ---------- */
.zi-pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:11px;font-size:12px;font-weight:500;background:var(--zi-surface-2);border:1px solid var(--zi-line);color:var(--zi-text-2);white-space:nowrap}
.zi-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}
.zi-pill.ok{background:var(--zi-ok-soft);border-color:transparent;color:var(--zi-ok)}
.zi-pill.warn{background:var(--zi-warn-soft);border-color:transparent;color:var(--zi-warn)}
.zi-pill.danger{background:var(--zi-danger-soft);border-color:transparent;color:var(--zi-danger)}
.zi-pill.accent{background:var(--zi-accent-soft);border-color:transparent;color:var(--zi-accent-text)}
.zi-pill.plain::before{display:none}

/* ---------- tables & toolbar ---------- */
.zi-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--zi-fs-table)}
.zi-table th{position:sticky;top:0;background:var(--zi-surface-2);text-align:left;font-weight:600;font-size:12px;color:var(--zi-text-2);padding:10px 12px;border-bottom:1px solid var(--zi-line);white-space:nowrap;z-index:1}
.zi-table th a{color:inherit}
.zi-table td{padding:11px 12px;border-bottom:1px solid var(--zi-line);vertical-align:middle}
.zi-table tr:last-child td{border-bottom:0}
.zi-table tbody tr:hover td{background:var(--zi-surface-2)}
.zi-table .num{text-align:right;font-variant-numeric:tabular-nums}
.zi-table .name{font-weight:500;color:var(--zi-text)}
.zi-table .meta{font-size:var(--zi-fs-meta);color:var(--zi-text-3);margin-top:2px}
.zi-table .check{width:36px}
.zi-table .check input{width:16px;height:16px;accent-color:var(--zi-accent)}
.zi-bar{display:flex;align-items:center;gap:8px;min-width:150px}
.zi-bar .track{flex:1;height:6px;border-radius:3px;background:var(--zi-line)}
.zi-bar .fill{height:100%;border-radius:3px;background:var(--zi-accent)}
.zi-bar .fill.low{background:var(--zi-warn)}
.zi-bar .fill.zero{background:var(--zi-danger)}
.zi-bar span{font-variant-numeric:tabular-nums;font-size:12.5px;color:var(--zi-text-2);width:52px;text-align:right}
.zi-toolbar{display:flex;gap:8px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--zi-line);flex-wrap:wrap}
.zi-toolbar .zi-search{max-width:280px;height:32px}
.zi-chip{height:30px;padding:0 10px;border:1px solid var(--zi-line);border-radius:15px;display:inline-flex;align-items:center;gap:6px;color:var(--zi-text-2);font-size:13px;background:#fff;cursor:pointer}
.zi-chip.set{border-style:solid;background:var(--zi-accent-soft);border-color:transparent;color:var(--zi-accent-text)}
.zi-chip:not(.set):hover,.zi-chip:not(.set):focus-visible{border-color:var(--zi-line-strong);background:var(--zi-surface-2)}
.zi-bulk{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--zi-accent-soft);border-bottom:1px solid var(--zi-line);color:var(--zi-accent-text);font-weight:500}
.zi-bulk[hidden]{display:none}
.zi-pager{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px 16px;font-size:13px;color:var(--zi-text-2)}
.zi-pager .zi-pagesize{margin-left:12px}
.zi-tablewrap{overflow-x:auto}

/* ---------- forms ---------- */
.zi-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.zi-field label{font-size:13px;font-weight:500;color:var(--zi-text)}
.zi-field .hint{font-size:var(--zi-fs-meta);color:var(--zi-text-3)}
.zi-field .err{font-size:var(--zi-fs-meta);color:var(--zi-danger)}
.zi-field input,.zi-field select,.zi-field textarea{font:inherit;height:36px;border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius);padding:0 10px;background:#fff;color:var(--zi-text);max-width:100%}
.zi-field textarea{height:auto;padding:8px 10px;min-height:72px;resize:vertical}
.zi-field input:focus,.zi-field select:focus,.zi-field textarea:focus{outline:2px solid var(--zi-accent);outline-offset:-1px;border-color:var(--zi-accent)}
.zi-field.invalid input,.zi-field.invalid select,.zi-field.invalid textarea{border-color:var(--zi-danger)}
/* Every other field on a shell page gets the same look, whichever page drew it, so a page
   no skin covers (Classification & AI, Migrations, the 360 report forms) still matches.
   .zi .zi-main (0,2,0) outranks Bootstrap 2's element rules (input[type="text"] is 0,1,1);
   the page skins and component rules are more specific still and keep their own sizes.
   Components with their own field style are left out by the :not(), which adds nothing to
   the specificity. tools/dev/qa/form_theme_audit.js checks the result page by page. */
.zi .zi-main :where(input:not([type]),input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=tel],input[type=url],input[type=date],input[type=time],input[type=datetime-local],select,textarea):not(:where(.zi-field *,.zi-chip *,.zi-toolbar-extra *,.zi-search *,.zi-cmdk *,.zi-dp-pop *,.cke *,[class*=cke_] *,.ui-jqgrid *)){font:13.5px var(--zi-font);height:var(--zi-control-h);border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius);padding:0 10px;background:#fff;color:var(--zi-text);max-width:100%;box-sizing:border-box;box-shadow:none;vertical-align:middle;line-height:normal}
.zi .zi-main :where(textarea,select[multiple],select[size]):not(:where(.zi-field *,.zi-chip *,.zi-toolbar-extra *,.cke *,[class*=cke_] *,.ui-jqgrid *)){height:auto;padding:6px 10px}
.zi .zi-main :where(textarea):not(:where(.zi-field *,.cke *,[class*=cke_] *,.ui-jqgrid *)){padding:8px 10px;min-height:72px}
.zi .zi-main :where(input,select,textarea):focus:not(:where(.zi-field *,.zi-chip *,.zi-toolbar-extra *,.zi-search *,.zi-cmdk *,.zi-dp-pop *,.cke *,[class*=cke_] *,[type=checkbox],[type=radio],[type=button],[type=submit],[type=reset],[type=image])){outline:2px solid var(--zi-accent);outline-offset:-1px;border-color:var(--zi-accent);box-shadow:none}
.zi .zi-main :where(input,select,textarea):disabled:not(:where([type=checkbox],[type=radio],[type=button],[type=submit],[type=reset],[type=image],.zi-chip *)){background:var(--zi-surface-2);color:var(--zi-text-3)}
.zi .zi-main :where(input[type=checkbox],input[type=radio]){accent-color:var(--zi-accent)}
.zi-req{color:var(--zi-danger);margin-left:3px}
.zi-row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.zi-section{margin-bottom:20px}
.zi-section>.hd h2{margin:0}
.zi-switch{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-top:1px solid var(--zi-line)}
.zi-switch:first-of-type{border-top:0}
.zi-switch input{position:absolute;opacity:0;width:0;height:0}
.zi-switch .tg{width:36px;height:20px;border-radius:10px;background:var(--zi-line-strong);position:relative;flex:none;margin-top:2px;transition:background .15s}
.zi-switch .tg::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,.2);transition:left .15s}
.zi-switch input:checked+.tg{background:var(--zi-accent)}
.zi-switch input:checked+.tg::after{left:18px}
.zi-switch input:focus-visible+.tg{outline:2px solid var(--zi-accent);outline-offset:2px}
.zi-switch b{display:block;font-weight:500}
.zi-switch small{color:var(--zi-text-2);font-size:12.5px}
.zi-savebar{position:fixed;left:var(--zi-rail-w);right:0;bottom:0;margin:0;padding:12px var(--zi-gutter);background:rgba(255,255,255,.92);backdrop-filter:blur(6px);border-top:1px solid var(--zi-line);display:flex;align-items:center;gap:12px;z-index:30}
.zi-savebar .status{color:var(--zi-text-2);font-size:13px;display:flex;align-items:center;gap:8px}
.zi-savebar .status .dot{width:8px;height:8px;border-radius:50%;background:var(--zi-line-strong)}
.zi-savebar.dirty .status .dot{background:var(--zi-warn)}
.zi-savebar .spacer{flex:1}
.zi-savebar [data-zi-save]:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.4)}
.zi-issues{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;border:1px solid #f0c27a;border-radius:var(--zi-radius);background:var(--zi-warn-soft);color:#6b4304;font:500 13px var(--zi-font);cursor:pointer}
.zi-issues[hidden]{display:none}
.zi-issues .zi-icon{color:var(--zi-warn)}
.zi-issues:hover{border-color:var(--zi-warn)}
.zi-issues.pulse{animation:zi-pulse .6s ease 2}
@keyframes zi-pulse{50%{box-shadow:0 0 0 4px rgba(217,119,6,.25)}}
.zi-issuepop{position:fixed;right:var(--zi-gutter);bottom:72px;width:min(440px,calc(100vw - 32px));max-height:min(50vh,420px);overflow:auto;background:var(--zi-surface);border:1px solid var(--zi-line);border-radius:var(--zi-radius-lg);box-shadow:var(--zi-shadow-pop);z-index:96;user-select:text;font:13.5px/1.45 var(--zi-font);color:var(--zi-text)}
.zi-issuepop[hidden]{display:none}
.zi-issuepop .hd{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 10px 16px;border-bottom:1px solid var(--zi-line);position:sticky;top:0;background:var(--zi-surface)}
.zi-issuepop ol{margin:0;padding:10px 16px 12px 34px}
.zi-issuepop li{padding:4px 0}
.zi-linkbtn{background:none;border:0;padding:0;color:var(--zi-accent);font:inherit;font-size:12.5px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.zi-legacy-body .zi-invalid,.zi-legacy-body [aria-invalid="true"]{border-color:var(--zi-danger,#c0392b)!important;box-shadow:0 0 0 3px rgba(192,57,43,.15)!important}
.zi-field-error{color:var(--zi-danger,#c0392b);font-size:12.5px;line-height:1.35;margin-top:4px}
.zi-danger-zone{border-color:#f1c4c0}
.zi-danger-zone h2{color:var(--zi-danger)}

/* ---------- lists, notices, empty ---------- */
.zi-list{display:flex;flex-direction:column}
.zi-list .it{display:flex;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--zi-line);flex-wrap:wrap}
.zi-list .it:first-child{border-top:0}
.zi-list .it .t{flex:1;min-width:0}
.zi-list .it .t b{display:block;font-weight:500}
.zi-list .it .t small{color:var(--zi-text-3);font-size:12px}
.zi-notice{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--zi-radius-lg);background:var(--zi-warn-soft);color:#5c3b04;font-size:13px}
.zi-notice.info{background:var(--zi-accent-soft);color:var(--zi-accent-text)}
.zi-notice.danger{background:var(--zi-danger-soft);color:#7a1b15}
.zi-notice.ok{background:var(--zi-ok-soft);color:#145a35}
.zi-notice[hidden]{display:none}
.zi-empty{padding:36px;text-align:center;color:var(--zi-text-2)}
.zi-empty b{display:block;color:var(--zi-text);font-size:15px;margin-bottom:4px}
.zi-muted{color:var(--zi-text-3)}
.zi-mono{font-family:var(--zi-mono);font-size:12.5px}

/* ---------- menus (dropdowns) ---------- */
.zi-menuwrap{position:relative}
.zi-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:220px;background:var(--zi-surface);border:1px solid var(--zi-line);border-radius:10px;box-shadow:var(--zi-shadow-pop);z-index:60;padding:6px}
.zi-menu[hidden]{display:none}
.zi-menu.zi-floating{position:fixed;top:0;left:0;right:auto;z-index:200;max-height:calc(100vh - 16px);overflow:auto}
.zi-menu .sec{font-size:var(--zi-fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--zi-text-3);padding:8px 10px 4px;font-weight:600}
.zi-menu a,.zi-menu button{display:flex;gap:12px;align-items:center;width:100%;text-align:left;padding:9px 10px;border-radius:8px;color:var(--zi-text);background:none;border:0;cursor:pointer;font:inherit}
.zi-menu a:hover,.zi-menu button:hover{background:var(--zi-surface-2);text-decoration:none}
.zi-menu .sep{height:1px;background:var(--zi-line);margin:6px 0}
.zi-menu .app i{width:34px;height:34px;border-radius:8px;flex:none;display:grid;place-items:center;font-style:normal;font-weight:700;color:#fff}
.zi-menu .app b{display:block;font-weight:500}.zi-menu .app small{color:var(--zi-text-3);font-size:12px}
.zi-menu .app.off{opacity:.55}
/* workspace switcher: sub-organizations indent under their parent, as in the legacy drop-down (numCompaniesDeep is 5) */
#zi-ws-menu{max-height:min(70vh,520px);overflow:auto}
#zi-ws-menu button[data-depth]{padding-left:calc(10px + var(--d,1) * 16px);color:var(--zi-text-2)}
#zi-ws-menu button[data-depth]::before{content:"";flex:none;width:8px;height:8px;margin-right:-4px;border-left:1px solid var(--zi-line-strong,var(--zi-line));border-bottom:1px solid var(--zi-line-strong,var(--zi-line));transform:translateY(-3px)}
#zi-ws-menu button[data-depth="2"]{--d:2}#zi-ws-menu button[data-depth="3"]{--d:3}#zi-ws-menu button[data-depth="4"]{--d:4}#zi-ws-menu button[data-depth="5"]{--d:5}
#zi-ws-menu button[aria-current]{font-weight:600;color:var(--zi-text)}

/* ---------- command bar ---------- */
.zi-scrim{position:fixed;inset:0;background:rgba(21,25,30,.32);z-index:70}
.zi-scrim[hidden]{display:none}
.zi-cmd{position:fixed;left:50%;top:76px;transform:translateX(-50%);width:640px;max-width:calc(100% - 32px);background:var(--zi-surface);border:1px solid var(--zi-line);border-radius:12px;box-shadow:0 30px 80px rgba(21,25,30,.35);z-index:80;overflow:hidden;max-height:calc(100vh - 100px);display:flex;flex-direction:column}
.zi-cmd[hidden]{display:none}
.zi-cmd .in{display:flex;gap:10px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--zi-line);font-size:16px}
.zi-cmd .in input{flex:1;border:0;outline:0;font:inherit;font-size:16px;color:var(--zi-text);background:transparent}
.zi-cmd .in kbd{font:11px var(--zi-mono);border:1px solid var(--zi-line-strong);border-radius:4px;padding:1px 6px;color:var(--zi-text-3)}
.zi-cmd .results{overflow:auto}
.zi-cmd .count{padding:10px 16px 0;font-size:12.5px;color:var(--zi-text-3)}
.zi-cmd .count b{color:var(--zi-text-2)}
.zi-cmd .quick{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:8px 16px 4px;font-size:12px;color:var(--zi-text-3)}
.zi-cmd .quick .zi-chip{height:24px;font-size:12px;padding:0 8px}
.zi-cmd .grp{padding:10px 16px 4px;font-size:var(--zi-fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--zi-text-3);font-weight:600}
.zi-cmd .it{display:flex;gap:12px;align-items:center;padding:9px 16px;color:var(--zi-text);text-decoration:none;cursor:pointer}
.zi-cmd .it[aria-selected="true"],.zi-cmd .it:hover{background:var(--zi-accent-soft);text-decoration:none}
.zi-cmd .it i{width:26px;height:26px;border-radius:7px;background:var(--zi-surface-2);border:1px solid var(--zi-line);display:grid;place-items:center;flex:none}
.zi-cmd .it .t{flex:1;min-width:0}.zi-cmd .it .t b{font-weight:500;display:block}.zi-cmd .it .t small{color:var(--zi-text-3);font-size:12.5px}
.zi-cmd .hint{display:flex;gap:16px;padding:10px 16px;border-top:1px solid var(--zi-line);font-size:12px;color:var(--zi-text-3);flex-wrap:wrap}
.zi-cmd .hint kbd{font:11px var(--zi-mono);border:1px solid var(--zi-line-strong);border-radius:4px;padding:0 5px}
.zi-cmd .empty{padding:28px 16px;color:var(--zi-text-3);text-align:center}

/* ---------- toast & dialog ---------- */
.zi-toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:24px;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:95;max-width:calc(100vw - 32px)}
body:has(.zi-savebar:not([hidden])) .zi-toasts{bottom:84px}
.zi-toast{display:flex;gap:12px;align-items:center;padding:10px 14px;border-radius:var(--zi-radius-lg);background:var(--zi-text);color:#fff;font-size:13.5px;box-shadow:var(--zi-shadow-pop);min-width:260px}
.zi-toast button{background:none;border:0;color:#9fdcef;font:inherit;font-weight:600;cursor:pointer;margin-left:auto}
.zi-dialog{border:1px solid var(--zi-line);border-radius:12px;padding:0;max-width:440px;width:calc(100% - 32px);box-shadow:var(--zi-shadow-pop);background:var(--zi-surface);color:var(--zi-text);font-family:var(--zi-font)}
.zi-dialog::backdrop{background:rgba(21,25,30,.4)}
.zi-dialog .bd{padding:20px 22px 8px}
.zi-dialog h2{margin:0 0 8px;font-size:17px}
.zi-dialog p{margin:0 0 10px;color:var(--zi-text-2);font-size:14px}
.zi-dialog .ft{display:flex;gap:8px;justify-content:flex-end;padding:12px 22px 18px}
.zi-dialog .ft .spacer{flex:1}
.zi-dialog pre{font:12px var(--zi-mono);color:var(--zi-text-2);white-space:pre-wrap}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .zi-footer{grid-column:1/-1}   /* the rail is off-canvas (position:fixed), so the footer takes the one column */
  .zi-app{grid-template-columns:minmax(0,1fr)}   /* a bare 1fr cannot shrink below the top bar's content (1px wider than a 390px phone) */
  .zi-rail{position:fixed;left:0;top:var(--zi-topbar-h);width:var(--zi-rail-w);height:calc(100vh - var(--zi-topbar-h));transform:translateX(-100%);transition:transform .18s;z-index:45;box-shadow:var(--zi-shadow-pop)}
  .zi-rail.open{transform:none}
  .zi-search{display:none}
  .zi-brand{min-width:0}
  .zi-main{padding:16px}
  .zi-kpis{grid-template-columns:1fr 1fr}
  .zi-row2,.zi-grid.two{grid-template-columns:1fr}
  .zi-pagehead{flex-direction:column;align-items:stretch}
  .zi-savebar{left:0;padding:12px 16px}
  .zi-btn-ghosty .lbl,.zi-hide-sm,.zi-brand small{display:none}
  .zi-topbar .zi-hide-lg{display:grid}
  .zi-topbar{gap:8px;padding:0 10px}
  .zi-btn-ghosty b{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .zi-topbar .zi-brand{flex:1;min-width:0;overflow:hidden}
  .zi-topbar .spacer{display:none}
  .zi-card{overflow-x:auto}
}
@media (prefers-reduced-motion:reduce){.zi-rail,.zi-switch .tg,.zi-switch .tg::after{transition:none}}
@media print{.zi-topbar,.zi-rail,.zi-savebar,.zi-footer,.zi-crumbs,.zi-globalfooter{display:none}.zi-app{display:block}.zi-main{padding:0}body.zi,.zi-app,.zi-main{background:#fff!important}}
/* a PDF render (PuppeteerPDF, pdfGenerator=true): the report alone, on white, without the shell's title bar */
.zi-pdf .zi-topbar,.zi-pdf .zi-rail,.zi-pdf .zi-footer,.zi-pdf .zi-globalfooter,.zi-pdf .zi-crumbs,.zi-pdf .zi-pagehead,.zi-pdf .zi-savebar{display:none!important}
.zi-pdf .zi-app{display:block}
.zi-pdf .zi-main{padding:0}
body.zi-pdf,.zi-pdf .zi-app,.zi-pdf .zi-main{background:#fff!important}

/* ---------- Legacy table chrome (all wrapped pages) ----------
   The zone stylesheet's legacy title bars, boxes and row borders (css/getzeroedin.css) map onto shell tokens on every
   wrapped page, not only the page-specific blocks below. Kept at body.zi-legacy + one class (0,2,1) and placed ahead of
   those blocks, whose longer selectors (and !important) keep winning wherever a page restyles its own tables. */
body.zi-legacy tr.tableheader,body.zi-legacy td.tableheader,body.zi-legacy th.tableheader{background:transparent;color:var(--zi-text);font-family:var(--zi-font);font-size:var(--zi-fs-h2);font-weight:600;border-bottom:1px solid var(--zi-line-strong)}
body.zi-legacy tr.tableheader>td,body.zi-legacy tr.tableheader>th{background:transparent;color:inherit;font:inherit;border-bottom:1px solid var(--zi-line-strong)}
body.zi-legacy table.tableheader{background:transparent;color:var(--zi-text);border:0;font:inherit}   /* a wrapper around a whole form or box, not a heading */
body.zi-legacy .subheader{background:var(--zi-surface-2);color:var(--zi-text-2);font-family:var(--zi-font);font-size:12px;font-weight:600}
body.zi-legacy .subheader>td,body.zi-legacy .subheader>th{background:var(--zi-surface-2);color:inherit;font:inherit;border-bottom:1px solid var(--zi-line)}
body.zi-legacy .tablebox,body.zi-legacy .tableboxlight{background:var(--zi-surface);border:1px solid var(--zi-line);border-radius:var(--zi-radius);font-family:var(--zi-font);font-weight:400}
body.zi-legacy .tableboxnoborder{background:var(--zi-surface);border:0;font-family:var(--zi-font);font-weight:400}   /* named "noborder": stays borderless */
body.zi-legacy .returnbox{background:transparent;border:0;font-family:var(--zi-font);font-weight:400}   /* a plain action strip */
body.zi-legacy .menudata,body.zi-legacy .tabledata2,body.zi-legacy .odd_row,body.zi-legacy .even_row{background:var(--zi-surface);color:var(--zi-text);font-family:var(--zi-font)}
body.zi-legacy td.breakdown_section{background:var(--zi-surface-2);color:var(--zi-text);border-bottom:1px solid var(--zi-line-strong);font-family:var(--zi-font);font-weight:600}
body.zi-legacy .tabledata_odd,body.zi-legacy .tabledata_even{border:0;border-bottom:1px solid var(--zi-line);color:var(--zi-text);font-family:var(--zi-font)}
body.zi-legacy .tabledata_odd{background:var(--zi-surface)}
body.zi-legacy .tabledata_even{background:var(--zi-surface-2)}   /* subtle zebra, even rows only */
body.zi-legacy :where(tr.tabledata_odd,tr.tabledata_even)>td{border-bottom:1px solid var(--zi-line)}   /* a row border does not draw in separated tables */

/* ---------- wrapped legacy pages (Phase 1) ---------- */
.zi-legacy .zi-legacy-body{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:12px;color:#000}
.zi-legacy .zi-legacy-body,.zi-legacy .zi-legacy-body *{box-sizing:content-box}
.zi-legacy .zi-legacy-body #impact-breadcrumbs,.zi-legacy .zi-legacy-body .weird-breadcrumbs,.zi-legacy .zi-legacy-body .footer,.zi-legacy .zi-legacy-body #numQueries{display:none}
.zi-legacy .zi-legacy-body h1,.zi-legacy .zi-legacy-body h2{font-family:var(--zi-font);letter-spacing:0}
.zi-legacy .zi-legacy-body h1{font-size:20px;font-weight:600}
.zi-legacy .zi-legacy-body h2{font-size:15px;font-weight:600}
.zi-legacy .zi-legacy-body a{color:var(--zi-accent-text)}
.zi-legacy .zi-legacy-body .homeBody{padding:0}

/* ---- lists (Phase 2) ---- */
.zi-listcard .zi-toolbar{align-items:center}
.zi-toolbar .zi-search{height:32px;max-width:300px;flex:1 1 220px;cursor:text}
.zi-toolbar .zi-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.zi-chip{cursor:default;gap:6px;padding:0 6px 0 10px}
.zi-chip>span{color:var(--zi-text-3);font-size:12px;font-weight:500;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
.zi-chip{max-width:100%;min-width:0}
.zi-chip input,.zi-chip select{min-width:0;max-width:100%}
.zi-chip.set>span{color:inherit}
.zi-chip select,.zi-chip input{font:inherit;font-size:13px;border:0;background:transparent;color:var(--zi-text);outline:0;height:28px;padding:0 2px;max-width:160px;min-width:0}
.zi-chip input[type=text]{width:9em}
.zi-chip input[type=date]{width:9.5em}
.zi-chip .x{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;color:inherit}
.zi-chip .x:hover{background:rgba(0,0,0,.08);text-decoration:none}
.zi-chip:focus-within{border-style:solid;border-color:var(--zi-accent)}
/* `.zi :focus-visible` outranks the outline:0 above, so the square select or input drew its ring inside the rounded
   chip or search box. Move the ring to the box, where it follows the radius. */
.zi-chip :is(select,input):focus-visible,.zi-search input:focus-visible{outline:0}
.zi-chip:has(:is(select,input):focus-visible),.zi-search:has(input:focus-visible){outline:2px solid var(--zi-accent);outline-offset:2px}
.zi-count{margin-left:auto;font-size:12.5px;white-space:nowrap}
.zi-table th a.sort{display:inline-flex;align-items:center;gap:4px;color:inherit}
.zi-table th a.sort:hover{color:var(--zi-text);text-decoration:none}
.zi-table th a.sort .dim{opacity:.35}
.zi-table th a.sort:hover .dim{opacity:.8}
.zi-table th[aria-sort] a.sort{color:var(--zi-text)}
.zi-table th.act,.zi-table td.act{width:1%;white-space:nowrap;text-align:right}
.zi-rowact{display:inline-flex;align-items:center;gap:2px;justify-content:flex-end}
.zi-rowact .zi-btn.ghost{color:var(--zi-accent-text)}
.zi-rowact .zi-btn.ghost:hover{background:var(--zi-accent-soft)}
.zi-table .meta a{color:inherit}
.zi-table .meta .zi-pill{height:18px;font-size:11px;padding:0 6px;vertical-align:middle}
.zi-menu a.danger,.zi-menu button.danger{color:var(--zi-danger)}
@media (max-width:900px){
  .zi-toolbar .zi-search{max-width:none}
  .zi-count{margin-left:0;flex-basis:100%}
}
.zi-pager a{color:var(--zi-accent-text);padding:0 4px}
.zi-pager b{padding:0 6px;color:var(--zi-text)}
.zi-pager .zi-btn.disabled{opacity:.45;pointer-events:none}
.zi-toolbar-extra{flex-basis:100%;font-size:13px}
.zi-toolbar-extra table{font-size:13px}
.zi-toolbar-extra select,.zi-toolbar-extra input[type=text]{font:inherit;font-size:13px;height:30px;border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius);padding:0 8px;background:#fff}
.zi-table .legacy-util img{vertical-align:middle;margin:0 3px}
/* wide lists: keep the actions column in view while the table scrolls sideways */
.zi-table th.act,.zi-table td.act{position:sticky;right:0;background:var(--zi-surface);box-shadow:-8px 0 8px -8px rgba(0,0,0,.12)}
.zi-table th.act{background:var(--zi-surface-2);z-index:1}
.zi-table tbody tr:hover td.act{background:var(--zi-surface-2)}
/* ---- wrapped legacy record forms (Phase 3) ---- */
body.zi-formpage .zi-main{padding-bottom:100px}
body.zi-formpage .zi-footer{margin-bottom:64px}   /* the fixed save bar would otherwise sit on the footer links */
.zi-legacy-body{display:flow-root}   /* legacy floats stay inside the flow, so the fixed save bar never covers them */
.zi-formpage .zi-legacy-body>table{width:100%!important}
.zi-formpage .zi-legacy-body table.tableboxlight{border:0!important;width:100%!important;background:transparent!important;border-collapse:collapse}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr{display:grid;grid-template-columns:minmax(150px,230px) 1fr;gap:4px 16px;align-items:center;padding:7px 0;border-bottom:1px solid var(--zi-line)}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr:has(>td>table){display:flex;flex-wrap:wrap;align-items:flex-start;border-bottom:0;gap:16px 24px}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr:has(>td>table)>td{flex:1 1 360px;min-width:auto;overflow:visible}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr:has(>td>table)>td>table{width:100%!important;max-width:100%}
/* Question Detail (create3.php): the question and answer-set columns sit side by side in a plain outer table that cannot
   shrink below both columns, so the answer-set column ran off the page; they wrap like the columns above instead */
.zi-formpage .zi-legacy-body table.zi-question-columns,.zi-formpage .zi-legacy-body table.zi-question-columns>tbody{display:block;width:auto!important}
.zi-formpage .zi-legacy-body table.zi-question-columns>tbody>tr{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px 24px}
.zi-formpage .zi-legacy-body table.zi-question-columns>tbody>tr>td{flex:1 1 320px;min-width:auto;padding:0}
.zi-formpage .zi-legacy-body table.zi-question-columns>tbody>tr>td:first-child{flex:2 1 480px}
/* ...and on wide screens their field columns may shrink, so the 75-character Question Abbrev. box narrows instead of holding
   the question column at 747px; the answer-set column's labels take less room (phones keep the stacked rows below) */
@media (min-width:901px){
  .zi-formpage .zi-legacy-body table.zi-question-columns table.tableboxlight>tbody>tr{grid-template-columns:minmax(150px,230px) minmax(0,1fr)}
  .zi-formpage .zi-legacy-body table.zi-question-columns>tbody>tr>td:last-child table.tableboxlight>tbody>tr{grid-template-columns:minmax(110px,150px) minmax(0,1fr)}
}
/* Question Detail's Portion markings section (SUR-837, essays): each setting stacks label, control, then its rule in words;
   the words are generated, so they read as a quiet note under the control rather than as more labels */
.zi-formpage .zi-legacy-body #portion_marking_settings .cr-state{margin-left:6px;font:400 12.5px var(--zi-font);color:var(--zi-text-3)}   /* collapsed: what is in effect */
.zi-formpage .zi-legacy-body td.classification-settings{font:400 13.5px/1.45 var(--zi-font);color:var(--zi-text);padding-top:4px}
.zi-formpage .zi-legacy-body .classification-settings .cr-setting,.zi-formpage .zi-legacy-body .classification-settings .classification-rule{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.zi-formpage .zi-legacy-body .classification-settings .cr-setting{margin:0 0 20px;max-width:560px}
.zi-formpage .zi-legacy-body .classification-settings .cr-label{display:block;font:500 13px var(--zi-font);color:var(--zi-text);margin:0}
.zi-formpage .zi-legacy-body .classification-settings .cr-sentence{margin:0;padding:6px 10px;border-radius:var(--zi-radius);background:var(--zi-surface-2);font:400 12.5px/1.45 var(--zi-font);color:var(--zi-text-2)}
.zi-formpage .zi-legacy-body .classification-settings .cr-sentence:empty{display:none}
.zi-formpage .zi-legacy-body .classification-settings .cr-sentence.text-error{background:var(--zi-danger-soft);color:var(--zi-danger)}
.zi-formpage .zi-legacy-body .classification-settings .cr-note,.zi-formpage .zi-legacy-body .classification-settings .cr-hint{margin:0;font:400 12.5px/1.45 var(--zi-font);color:var(--zi-text-3)}
.zi-formpage .zi-legacy-body .classification-settings .cr-custom{display:flex;flex-direction:column;gap:10px;margin:2px 0;padding:4px 0 4px 12px;border-left:2px solid var(--zi-line-strong)}
.zi-formpage .zi-legacy-body .classification-settings .cr-custom label,.zi-formpage .zi-legacy-body .classification-settings .cr-required{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:0;font:500 13px var(--zi-font);color:var(--zi-text)}
.zi-formpage .zi-legacy-body .classification-settings .cr-required .cr-label{font-weight:500}
.zi-formpage .zi-legacy-body .classification-settings .cr-chip{display:inline-block;margin:0 4px 4px 0;padding:1px 8px;border:1px solid var(--zi-line-strong);border-radius:999px;font:400 12px var(--zi-font);color:var(--zi-text-2);text-decoration:none}
.zi-formpage .zi-legacy-body .classification-settings .cr-tester{display:grid;grid-template-columns:minmax(0,260px) auto;gap:6px 8px;justify-content:start;align-items:end;padding-top:12px;border-top:1px solid var(--zi-line)}
.zi-formpage .zi-legacy-body .classification-settings .cr-tester label{display:flex;flex-direction:column;gap:6px;margin:0;font:500 13px var(--zi-font);color:var(--zi-text)}
.zi-formpage .zi-legacy-body .classification-settings .cr-tester .cr-test-button{box-sizing:border-box;height:34px;padding:0 14px;border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius);background:#fff;font:500 13px/1 var(--zi-font);color:var(--zi-text);cursor:pointer}   /* Bootstrap .btn: the legacy button skin skips it */
.zi-formpage .zi-legacy-body .classification-settings .cr-tester .cr-test-button:hover{background:var(--zi-surface-2)}
.zi-formpage .zi-legacy-body .classification-settings .cr-verdicts{grid-column:1/-1;margin:2px 0 0;padding:0;list-style:none;font:400 12.5px/1.6 var(--zi-font);color:var(--zi-text-2)}
.zi-formpage .zi-legacy-body .classification-settings .cr-verdicts .text-success{color:var(--zi-ok)}
.zi-formpage .zi-legacy-body .classification-settings .cr-verdicts .text-error{color:var(--zi-danger)}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr:has(>td[colspan]:first-child+td){display:flex;align-items:center;gap:12px}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr:has(>td[colspan]:first-child+td)>td:first-child{flex:1;text-align:right}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr>td{display:block;padding:0;background:transparent;font-family:var(--zi-font);font-size:13.5px;color:var(--zi-text)}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr:has(>td:only-child>.help_box:only-child[style*="none"]){display:none}   /* a help row whose box is closed (show_help) would draw an empty bordered line */
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr>td:has(>a.custom-code-toggle,>a.survey-flow-toggle,>a.portion-marking-toggle)>hr{display:none}   /* collapsible section toggles: the row border already separates them, the <hr> doubled it */
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr>td[colspan]{grid-column:1/-1}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr>td:only-child{grid-column:1/-1}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr:has(>td:nth-child(3)){display:table-row;border-bottom:0;padding:0}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr:has(>td:nth-child(3))>td{display:table-cell;padding:4px 6px;vertical-align:middle;font-weight:400}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr>td:first-child{font-weight:500;color:var(--zi-text-2);font-size:13px}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr>td:first-child[colspan]{color:var(--zi-text)}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr.tableheader{display:block;background:transparent!important;border-bottom:1px solid var(--zi-line-strong);padding:22px 0 6px;margin:0 0 4px}
.zi-formpage .zi-legacy-body tr.tableheader>td{background:transparent!important;color:var(--zi-text)!important;font-family:var(--zi-font);font-size:15px;font-weight:600;padding:0}
.zi-formpage .zi-legacy-body input[type=text],.zi-formpage .zi-legacy-body input[type=password],.zi-formpage .zi-legacy-body input[type=email],.zi-formpage .zi-legacy-body input[type=number],.zi-formpage .zi-legacy-body select,.zi-formpage .zi-legacy-body textarea{font:13.5px var(--zi-font);height:34px;border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius);padding:0 10px;background:#fff;color:var(--zi-text);max-width:100%;box-sizing:border-box}
.zi-formpage .zi-legacy-body textarea{height:auto;padding:8px 10px;min-height:72px}
.zi-formpage .zi-legacy-body table{max-width:100%}
.zi-formpage .zi-legacy-body .cke,.zi-formpage .zi-legacy-body .cke_inner{max-width:100%;box-sizing:border-box}
.zi-formpage .zi-legacy-body td>textarea{width:100%}
.zi-formpage .zi-legacy-body input:focus,.zi-formpage .zi-legacy-body select:focus,.zi-formpage .zi-legacy-body textarea:focus{outline:2px solid var(--zi-accent);outline-offset:-1px;border-color:var(--zi-accent)}
.zi-formpage .zi-legacy-body input[disabled],.zi-formpage .zi-legacy-body select[disabled],.zi-formpage .zi-legacy-body textarea[disabled]{background:var(--zi-surface-2);color:var(--zi-text-3)}
.zi-formpage .zi-legacy-body input[type=checkbox],.zi-formpage .zi-legacy-body input[type=radio]{width:16px;height:16px;accent-color:var(--zi-accent);vertical-align:middle}
.zi-formpage .zi-legacy-body td.default{color:var(--zi-text-3)}
.zi-formpage .zi-legacy-body big{font-size:15px;font-weight:600;font-family:var(--zi-font)}
.zi-formpage .zi-legacy-body .alert{padding:12px 14px;border-radius:var(--zi-radius-lg);background:var(--zi-warn-soft);color:#5c3b04;font-family:var(--zi-font);font-size:13px;margin:8px 0}
.zi-formnotice{display:block}
.zi-formnotice ul{margin:6px 0 0 18px;padding:0}
.zi-formdanger{margin-top:24px}
.zi-formdanger .bd{display:flex;gap:8px;flex-wrap:wrap}
.zi-pagehead .zi-actions a.zi-btn{text-decoration:none}
@media (max-width:900px){.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr{grid-template-columns:1fr}.zi-formpage .zi-legacy-body input[type=text],.zi-formpage .zi-legacy-body textarea,.zi-formpage .zi-legacy-body select{width:100%}.zi-formpage .zi-legacy-body>table,.zi-formpage .zi-legacy-body table.tableboxlight{table-layout:fixed}}
/* wrapped legacy pages: icon-only action links show their title as a label; delete-ish ones read as danger */
.zi-legacy .zi-legacy-body a.zi-iconlabel{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:var(--zi-radius);white-space:nowrap;font-family:var(--zi-font);font-size:12px;color:var(--zi-accent-text);text-decoration:none}
.zi-legacy .zi-legacy-body a.zi-iconlabel::after{content:attr(title)}
.zi-legacy .zi-legacy-body a.zi-iconlabel:hover{background:var(--zi-accent-soft)}
.zi-legacy .zi-legacy-body a.zi-iconlabel[title^="Delete"],.zi-legacy .zi-legacy-body a.zi-iconlabel[title^="Remove"]{color:var(--zi-danger);margin-left:10px}
.zi-legacy .zi-legacy-body a.zi-iconlabel[title^="Delete"]:hover,.zi-legacy .zi-legacy-body a.zi-iconlabel[title^="Remove"]:hover{background:var(--zi-danger-soft)}
/* reports menu */
.zi-reportgroups{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));align-items:start}
.zi-reportgroups .zi-list .it .t b a.name{font-weight:500}
.zi-reportgroups .zi-list .it .t small{display:block;margin-top:2px;white-space:normal}
.zi-reportgroups .zi-pill.accent{height:18px;font-size:11px;padding:0 6px;vertical-align:middle;margin-left:6px}
@media (max-width:900px){.zi-reportgroups{grid-template-columns:1fr}}
/* report parameter page (rpt_main.php): label | : | control | required rows become a grid */
.zi-reportparams .zi-legacy-body table.tableheader{width:100%!important;background:transparent!important;border:0}
.zi-reportparams .zi-legacy-body table.tableheader>tbody>tr>td{border:0;padding:0}
.zi-reportparams .zi-legacy-body table.bodybackground{width:100%!important;background:var(--zi-surface)!important;border:1px solid var(--zi-line);border-radius:var(--zi-radius-lg);padding:4px 16px 12px;border-collapse:collapse}
.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr.tableheader{display:block;background:transparent!important;padding:14px 0 8px;border-bottom:1px solid var(--zi-line-strong);margin-bottom:4px}
.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr.tableheader>td{background:transparent!important;color:var(--zi-text)!important;font-family:var(--zi-font);font-size:15px;font-weight:600;padding:0;text-align:left}
.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr.subheader{display:none}
.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr.tabledata_even,.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr.tabledata_odd{display:grid;grid-template-columns:minmax(150px,230px) 0 1fr auto;gap:0 12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--zi-line);background:transparent!important}
.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr.tabledata_even>td,.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr.tabledata_odd>td{display:block;padding:0;font-family:var(--zi-font);font-size:13.5px;color:var(--zi-text)}
.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr>td{width:auto!important;border:0!important;padding:2px 0}
.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr>td:first-child{font-weight:500;color:var(--zi-text-2);font-size:13px}
.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr>td:nth-child(2){visibility:hidden;width:0;overflow:hidden}
.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr>td[colspan]{grid-column:1/-1}
.zi-reportparams .zi-legacy-body td p{margin:0}
.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr{border:0!important;border-bottom:1px solid var(--zi-line)!important;outline:0}
.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr:last-child{border-bottom:0!important}
.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr.tableheader{border-bottom:1px solid var(--zi-line-strong)!important}
/* the green star "Required Field." marker → the shell's required dot; the legend row reads as a quiet footnote */
.zi-legacy-body img[src$="images/star.png"]{width:6px!important;height:6px!important;border-radius:50%;background:var(--zi-danger);object-position:-99px -99px;vertical-align:middle;cursor:default!important}
.zi-reportparams .zi-legacy-body table.bodybackground>tbody>tr>td[colspan="4"]:has(img[src$="images/star.png"]){font-size:12px;font-weight:400;color:var(--zi-text-3)}
.zi-reportparams .zi-legacy-body table.bodybackground{border-collapse:separate!important;border-spacing:0}
.zi-reportparams .zi-legacy-body input:not([type]){font:13.5px var(--zi-font);height:34px;border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius);padding:0 10px;background:#fff;color:var(--zi-text);width:140px}
.zi-reportparams .zi-legacy-body img[src$="calendar.png"]{vertical-align:middle;margin-left:6px;opacity:.75}
.zi-reportparams .zi-legacy-body select,.zi-reportparams .zi-legacy-body input[type=text]{font:13.5px var(--zi-font);height:34px;border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius);padding:0 10px;background:#fff;color:var(--zi-text);max-width:100%}
.zi-reportparams .zi-legacy-body input[type=button]{font:13.5px var(--zi-font);height:34px;padding:0 14px;border-radius:var(--zi-radius);border:1px solid var(--zi-line-strong);background:#fff;color:var(--zi-text);cursor:pointer;margin-right:6px}
.zi-reportparams .zi-legacy-body input[type=button][value="Run Now"]{background:var(--zi-accent);border-color:var(--zi-accent);color:#fff}
.zi-reportparams .zi-legacy-body input[type=button]:hover{filter:brightness(.97)}
.zi-admingroups{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-items:start}
.zi-admingroups .zi-list .it svg{transform:rotate(-90deg);opacity:.5}
@media (max-width:900px){.zi-admingroups{grid-template-columns:1fr}}
/* actions dropdowns built from legacy links */
.zi-menuwrap.zi-inline{display:inline-block;vertical-align:middle;margin-left:4px}
.zi-menu a .zi-icon,.zi-menu button .zi-icon{color:var(--zi-text-3)}
.zi-menu a.danger .zi-icon{color:var(--zi-danger)}
.zi-menu a[style*="display: none"],.zi-menu a[style*="display:none"]{display:none!important}
.zi-legacy .zi-legacy-body .zi-menu a{font-family:var(--zi-font);font-size:13.5px;color:var(--zi-text);white-space:nowrap}
.zi-legacy .zi-legacy-body .zi-menu a.danger{color:var(--zi-danger)}
.zi-pagehead .zi-actions .zi-btn .zi-icon:last-child{margin-left:2px}
.zi-welcome{border-color:var(--zi-accent-soft);background:linear-gradient(180deg,var(--zi-accent-soft),var(--zi-surface) 70%)}
.zi-wheregroups{grid-template-columns:repeat(auto-fill,minmax(480px,1fr));align-items:start}
@media (max-width:900px){.zi-wheregroups{grid-template-columns:1fr}}
/* ---- generic table editor (metadata/table_editor.php) ---- */
.zi-tableeditor .zi-legacy-body>div:first-child,.zi-tableeditor .zi-legacy-body form[name=relations]{font-family:var(--zi-font);font-size:13px;color:var(--zi-text-2);margin-bottom:12px}
.zi-tableeditor .zi-legacy-body form[name=relations] select,.zi-tableeditor .zi-legacy-body form[name=pagenav] select,.zi-tableeditor .zi-legacy-body form[name=pagenav] input[type=text]{font:13px var(--zi-font);height:30px;border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius);padding:0 8px;background:#fff;color:var(--zi-text)}
.zi-tableeditor .zi-legacy-body form[name=pagenav]{display:flex;align-items:center;gap:6px;font-family:var(--zi-font);font-size:13px;color:var(--zi-text-2);padding:10px 0;flex-wrap:wrap}
.zi-tableeditor .zi-legacy-body form[name=pagenav] img{opacity:.6;cursor:pointer}
.zi-tableeditor .zi-legacy-body form[name=pagenav] img[style*="pointer"]{opacity:1}
.zi-tableeditor .zi-legacy-body table.tablebackground{width:100%!important;background:var(--zi-surface)!important;border:1px solid var(--zi-line);border-radius:var(--zi-radius-lg);border-collapse:separate;border-spacing:0;overflow:hidden;font-family:var(--zi-font);font-size:13.5px}
.zi-tableeditor .zi-legacy-body table.tablebackground tr.tableheader td{background:var(--zi-surface-2)!important;color:var(--zi-text)!important;padding:10px 12px;font-family:var(--zi-font);font-size:12px;font-weight:600}
.zi-tableeditor .zi-legacy-body table.tablebackground tr.subheader td{background:var(--zi-surface-2)!important;color:var(--zi-text-2)!important;font-size:12px;font-weight:600;padding:10px 12px;border-bottom:1px solid var(--zi-line);text-align:left;font-family:var(--zi-font)}
.zi-tableeditor .zi-legacy-body table.tablebackground tr.subheader td a.columnlink{color:inherit!important;font:inherit!important;text-decoration:none}
.zi-tableeditor .zi-legacy-body table.tablebackground tr.subheader td a.columnlink:hover{color:var(--zi-text)!important}
.zi-tableeditor .zi-legacy-body table.tablebackground td.breakdown_data{background:var(--zi-surface)!important;padding:6px 8px;border-bottom:1px solid var(--zi-line);vertical-align:middle}
.zi-tableeditor .zi-legacy-body table.tablebackground td.breakdown_data input[type=text],.zi-tableeditor .zi-legacy-body table.tablebackground td.breakdown_data select{font:13px var(--zi-font);height:30px;border:1px solid var(--zi-line-strong);border-radius:15px;padding:0 10px;background:#fff;color:var(--zi-text);width:100%;max-width:220px;box-sizing:border-box}
.zi-tableeditor .zi-legacy-body table.tablebackground td.breakdown_data input:focus,.zi-tableeditor .zi-legacy-body table.tablebackground td.breakdown_data select:focus{border-style:solid;border-color:var(--zi-accent);outline:0}
.zi-tableeditor .zi-legacy-body table.tablebackground td.breakdown_data:first-child{white-space:nowrap}
.zi-tableeditor .zi-legacy-body table.tablebackground tr[class^="tabledata"] td{padding:9px 12px;border-bottom:1px solid var(--zi-line);background:var(--zi-surface)!important;color:var(--zi-text);font-family:var(--zi-font);vertical-align:middle}
.zi-tableeditor .zi-legacy-body table.tablebackground tr[class^="tabledata"]:hover td{background:var(--zi-surface-2)!important}
.zi-tableeditor .zi-legacy-body table.tablebackground tr[class^="tabledata"]:last-child td{border-bottom:0}
.zi-tableeditor .zi-legacy-body td.zi-rowact-cell{white-space:nowrap;width:1%}
.zi-tableeditor .zi-legacy-body td.zi-rowact-cell .zi-btn{margin-right:2px}
/* ---- participant search (participant-search.php): its own search.css + zi-utils.css sit in the legacy layer ---- */
.zi-participantsearch .zi-legacy-body .zi-container{max-width:none;padding:0;font-family:var(--zi-font);font-size:13.5px;color:var(--zi-text)}
.zi-participantsearch .zi-legacy-body .zi-box{background:var(--zi-surface);border:1px solid var(--zi-line);border-radius:var(--zi-radius-lg);box-shadow:var(--zi-shadow);padding:16px;margin:0 0 16px}
.zi-participantsearch .zi-legacy-body .zi-box h2,.zi-participantsearch .zi-legacy-body .zi-box h3{font-family:var(--zi-font);font-size:15px;font-weight:600;margin:0 0 12px;color:var(--zi-text)}
.zi-participantsearch .zi-legacy-body #search-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px 16px}
.zi-participantsearch .zi-legacy-body #search-fields label{display:block;font-size:12.5px;font-weight:500;color:var(--zi-text-2);margin-bottom:4px}
.zi-participantsearch .zi-legacy-body #search-fields>div{display:grid;grid-template-columns:1fr auto;gap:4px 6px;align-items:center}
.zi-participantsearch .zi-legacy-body #search-fields>div>label{grid-column:1/-1;margin:0}
.zi-participantsearch .zi-legacy-body #search-fields>div>a{font-size:12px;white-space:nowrap}
.zi-participantsearch .zi-legacy-body input[type=text],.zi-participantsearch .zi-legacy-body input[type=email],.zi-participantsearch .zi-legacy-body input[type=number],.zi-participantsearch .zi-legacy-body select{font:13.5px var(--zi-font);height:34px;border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius);padding:0 10px;background:#fff;color:var(--zi-text);width:100%!important;max-width:100%;box-sizing:border-box}
.zi-participantsearch .zi-legacy-body .zi-util-width-05{width:auto!important;min-width:70px}
.zi-participantsearch .zi-legacy-body .zi-search-actions{justify-content:flex-start;gap:8px;margin-top:16px}
.zi-participantsearch .zi-legacy-body .zi-search-actions a{display:inline-flex;align-items:center;gap:8px;height:var(--zi-control-h);padding:0 14px;border-radius:var(--zi-radius);border:1px solid var(--zi-line-strong);background:#fff;color:var(--zi-text);font-weight:500;text-decoration:none;font-family:var(--zi-font)}
.zi-participantsearch .zi-legacy-body .zi-search-actions a:last-child{background:var(--zi-accent);border-color:var(--zi-accent);color:#fff}
.zi-participantsearch .zi-legacy-body .zi-search-actions a img{display:none}
.zi-participantsearch .zi-legacy-body .zi-results{margin-bottom:12px;gap:12px;flex-wrap:wrap}
.zi-participantsearch .zi-legacy-body .zi-results-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
.zi-participantsearch .zi-legacy-body .zi-results-table th{position:sticky;top:0;background:var(--zi-surface-2);text-align:left;font-weight:600;font-size:12px;color:var(--zi-text-2);padding:10px 12px;border-bottom:1px solid var(--zi-line)}
.zi-participantsearch .zi-legacy-body .zi-results-table td{padding:10px 12px;border-bottom:1px solid var(--zi-line);vertical-align:middle;font-family:var(--zi-font)}
.zi-participantsearch .zi-legacy-body .zi-results-table tr:hover td{background:var(--zi-surface-2)}
.zi-participantsearch .zi-legacy-body .zi-table-overflow{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zi-participantsearch .zi-legacy-body .zi-error-block{padding:12px 14px;border-radius:var(--zi-radius-lg);background:var(--zi-danger-soft);color:#7a1b15;margin-bottom:12px}

/* ---- legacy controls on wrapped pages ---- */
.zi-legacy .zi-legacy-body input[type=button]:not(.zi-btn),.zi-legacy .zi-legacy-body input[type=submit]:not(.zi-btn),.zi-legacy .zi-legacy-body input[type=reset],.zi-legacy .zi-legacy-body button:not(.zi-btn):not(.zi-more):not(.zi-help):not(.zi-dp-btn):not(.btn):not([class*=cke]):not(.zi-ae *){font:13px/1 var(--zi-font);height:32px;padding:0 12px;border-radius:var(--zi-radius);border:1px solid var(--zi-line-strong);background:#fff;color:var(--zi-text);cursor:pointer;vertical-align:middle}
.zi-legacy .zi-legacy-body input[type=button]:not(.zi-btn):hover,.zi-legacy .zi-legacy-body input[type=submit]:not(.zi-btn):hover,.zi-legacy .zi-legacy-body button:not(.zi-btn):not(.zi-more):not(.zi-help):not(.zi-dp-btn):not(.btn):not([class*=cke]):not(.zi-ae *):hover{background:var(--zi-surface-2)}
.zi-legacy .zi-legacy-body input[type=button]:disabled,.zi-legacy .zi-legacy-body input[type=submit]:disabled,.zi-legacy .zi-legacy-body button:not(.zi-dp-btn):disabled{opacity:.5;cursor:default;background:#fff}
.zi-legacy .zi-legacy-body .help_box,.zi-legacy .zi-legacy-body div.help{padding:10px 14px;border-radius:var(--zi-radius-lg);background:var(--zi-accent-soft);color:var(--zi-accent-text);font:13px/1.5 var(--zi-font);margin:6px 0 2px;border:0}
.zi-legacy .zi-legacy-body #custom_field_div{display:flex;flex-direction:column;gap:8px}
.zi-legacy .zi-legacy-body #custom_field_div>div{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.zi-legacy .zi-legacy-body #custom_field_div>div>div{float:none!important;display:flex;gap:8px;align-items:center}
.zi-legacy .zi-legacy-body #custom_field_div select[size]{height:auto;min-height:88px;padding:4px;width:100%;font:13px var(--zi-font);border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius)}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr.custom-code-row[class]{display:grid;grid-template-columns:minmax(150px,230px) 1fr 240px;gap:4px 16px;align-items:start;padding:7px 0;border-bottom:1px solid var(--zi-line)}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr.custom-code-row[class]>td{display:block;padding:0}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr.custom-code-row[class]>td:first-child{font-weight:500;color:var(--zi-text-2);font-size:13px;padding-top:8px}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr.custom-code-row[class]>td[rowspan]{background:var(--zi-surface-2)!important;border:1px solid var(--zi-line)!important;border-radius:var(--zi-radius-lg);padding:10px 12px!important;font-size:12px!important;line-height:1.7!important;white-space:normal!important;color:var(--zi-text-2)!important}
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr.custom-code-row[class] textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;font-size:12.5px!important;min-height:160px}

/* ---- inline row edit + add-row card (custom field values and similar small lists) ---- */
.zi-inline-view[hidden],.zi-inline-form[hidden]{display:none}
.zi-inline-form{display:flex;gap:8px;align-items:center}
.zi-inline-form input[type=text]{flex:1;min-width:220px;max-width:480px;font:inherit;height:32px;border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius);padding:0 10px;background:#fff;color:var(--zi-text)}
.zi-inline-form input[type=text]:focus{outline:2px solid var(--zi-accent);outline-offset:-1px;border-color:var(--zi-accent)}
.zi-addrow{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;padding:14px 16px;margin-bottom:16px}
.zi-addrow-field{display:flex;flex-direction:column;gap:6px;flex:1;max-width:480px;min-width:220px}
.zi-addrow-field span{font-size:13px;font-weight:500;color:var(--zi-text)}
.zi-addrow-field input{font:inherit;height:36px;border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius);padding:0 10px;background:#fff;color:var(--zi-text)}
.zi-addrow-field input:focus{outline:2px solid var(--zi-accent);outline-offset:-1px;border-color:var(--zi-accent)}
.zi-addrow .zi-btn{height:36px}

/* ---- answer set editor (answer_sets2.php): the two tablebox panels become cards; the answers table stays tabular ---- */
.zi-answerset .zi-legacy-body form[name=UpdateRecord]>table{width:100%!important}
.zi-answerset .zi-legacy-body form[name=UpdateRecord]>table>tbody>tr>td{padding:0 0 16px}
.zi-answerset .zi-legacy-body table.tablebox{width:100%;border:1px solid var(--zi-line);border-radius:var(--zi-radius-lg);border-collapse:separate;border-spacing:0;background:var(--zi-surface);overflow:hidden}
.zi-answerset .zi-legacy-body table.tablebox tr.tableheader,.zi-answerset .zi-legacy-body table.tablebox tr.subheader{background:transparent!important}
.zi-answerset .zi-legacy-body table.tablebox tr.tableheader>td{background:transparent!important;color:var(--zi-text)!important;font:600 15px var(--zi-font);padding:14px 16px 10px;border-bottom:1px solid var(--zi-line);text-align:left}
.zi-answerset .zi-legacy-body table.tablebox:not(:has(tr.subheader))>tbody>tr:not(.tableheader){display:grid;grid-template-columns:minmax(150px,230px) 1fr;gap:4px 16px;align-items:center;padding:8px 16px;border-bottom:1px solid var(--zi-line)}
.zi-answerset .zi-legacy-body table.tablebox:not(:has(tr.subheader))>tbody>tr:not(.tableheader):last-child{border-bottom:0}
.zi-answerset .zi-legacy-body table.tablebox:not(:has(tr.subheader))>tbody>tr:not(.tableheader)>td{display:block;padding:0;font-family:var(--zi-font);font-size:13.5px;width:auto!important;white-space:normal}
.zi-answerset .zi-legacy-body table.tablebox:not(:has(tr.subheader))>tbody>tr:not(.tableheader)>td:first-child{font-weight:500;color:var(--zi-text-2);font-size:13px}
.zi-answerset .zi-legacy-body table.tablebox:not(:has(tr.subheader))>tbody>tr:not(.tableheader)>td[colspan]{grid-column:1/-1}
.zi-answerset .zi-legacy-body table.tablebox input[type=text]{width:100%;max-width:100%}
.zi-answerset .zi-legacy-body table.tablebox input[name^="answer_set_value["],.zi-answerset .zi-legacy-body table.tablebox input[name=new_answer_set_value]{width:5.5em}
.zi-answerset .zi-legacy-body table.zi-answers tr.subheader th{background:var(--zi-surface-2);color:var(--zi-text-2);font:600 11px var(--zi-font);text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:8px 10px;border-bottom:1px solid var(--zi-line)}
.zi-answerset .zi-legacy-body table.zi-answers tr[id]>td{padding:6px 10px;vertical-align:middle;border-bottom:1px solid var(--zi-line);font-family:var(--zi-font);white-space:nowrap}
.zi-answerset .zi-legacy-body table.zi-answers tr[id]:last-child>td{border-bottom:0}
.zi-answerset .zi-legacy-body table.zi-answers tr[id]:hover>td{background:var(--zi-surface-2)}
.zi-answerset .zi-legacy-body table.zi-answers tr.zi-dragging>td{opacity:.35}
.zi-answerset .zi-legacy-body table.zi-answers td:first-child{width:45%}
.zi-answerset .zi-legacy-body .zi-seqcell{white-space:nowrap}
.zi-answerset .zi-legacy-body .zi-grip{cursor:grab;color:var(--zi-text-3);display:inline-flex;vertical-align:middle;margin-right:4px}
.zi-answerset .zi-legacy-body .zi-grip:active{cursor:grabbing}
.zi-answerset .zi-legacy-body .zi-seq{display:inline-block;min-width:22px;text-align:center;font-weight:600;color:var(--zi-text-2);font-variant-numeric:tabular-nums;margin-right:4px}
.zi-answerset .zi-legacy-body .zi-seqbtn{padding:0 4px;min-width:0;height:26px}
.zi-answerset .zi-legacy-body .zi-seqbtn:disabled{opacity:.3;cursor:default}
.zi-answerset .zi-legacy-body .zi-reorder-hint{font-size:12px;margin:0 0 8px}
/* round 4: answers and "Add new answer" stack, the add form reads as one inline row under the list */
.zi-answerset .zi-legacy-body tr[valign=top]{display:flex;flex-direction:column;gap:16px;align-items:stretch}
.zi-answerset .zi-legacy-body tr[valign=top]>td{flex:none;width:100%!important;min-width:0;padding:0!important}
.zi-answerset .zi-legacy-body tr[valign=top]>td:last-child table.tablebox>tbody{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;padding:0 16px 16px}
.zi-answerset .zi-legacy-body tr[valign=top]>td:last-child table.tablebox>tbody>tr.tableheader{flex:1 0 100%;display:block;margin:0 -16px}
.zi-answerset .zi-legacy-body tr[valign=top]>td:last-child table.tablebox>tbody>tr:not(.tableheader){display:flex!important;flex-direction:column;align-items:stretch!important;gap:6px;padding:0!important;border:0!important}
.zi-answerset .zi-legacy-body tr[valign=top]>td:last-child table.tablebox>tbody>tr:not(.tableheader):nth-child(2){flex:1 1 320px}
.zi-answerset .zi-legacy-body tr[valign=top]>td:last-child table.tablebox>tbody>tr:not(.tableheader):nth-child(4){flex:0 1 220px}
.zi-answerset .zi-legacy-body tr[valign=top]>td:last-child table.tablebox>tbody>tr:not(.tableheader)>td{display:block;padding:0!important;text-align:left!important}
.zi-answerset .zi-legacy-body tr[valign=top]>td:last-child table.tablebox>tbody>tr.tableheader>td{text-align:left!important;display:block;width:auto!important}
.zi-answerset .zi-legacy-body tr[valign=top]>td:last-child input[type=button]{height:34px}
.zi-answerset .zi-legacy-body tr[valign=top] table.tablebox{margin:0!important}
.zi-answerset .zi-legacy-body a[name=values]{display:block}
.zi-answerset .zi-legacy-body input[type=button][value]{height:34px}

/* ---- email template editor: editor left, variable chips right ---- */
.zi-emailtemplate .zi-legacy-body table.tableboxlight>tbody>tr.zi-editor-row{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start;border-bottom:0}
.zi-emailtemplate .zi-legacy-body tr.zi-editor-row>td.zi-editor-cell{order:1;min-width:0;font-weight:400}
.zi-emailtemplate .zi-legacy-body tr.zi-editor-row>td.zi-varpanel{order:2;font-weight:400;line-height:1.4;background:var(--zi-surface-2);border:1px solid var(--zi-line);border-radius:var(--zi-radius-lg);padding:14px!important;display:flex;flex-direction:column;gap:10px;font-size:13px}
.zi-emailtemplate .zi-legacy-body .zi-varhead{display:flex;flex-direction:column;gap:2px}
.zi-emailtemplate .zi-legacy-body .zi-varhead b{font-size:13px;color:var(--zi-text)}
.zi-emailtemplate .zi-legacy-body .zi-varhead .zi-muted{font-size:12px}
.zi-emailtemplate .zi-legacy-body .zi-varlist{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}
.zi-emailtemplate .zi-legacy-body .zi-varlist li{margin:0;padding:0}
.zi-emailtemplate .zi-legacy-body .zi-varchip{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:#fff;border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius);padding:6px 8px;cursor:pointer;font:12.5px var(--zi-font);color:var(--zi-text);height:auto}
.zi-emailtemplate .zi-legacy-body .zi-varchip:hover{border-color:var(--zi-accent);background:var(--zi-accent-soft)}
.zi-emailtemplate .zi-legacy-body .zi-varchip code{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--zi-accent-text);white-space:nowrap}
.zi-emailtemplate .zi-legacy-body .zi-varchip span{color:var(--zi-text-2);font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zi-emailtemplate .zi-legacy-body .zi-varchip .zi-icon{flex:none;color:var(--zi-text-3)}
.zi-emailtemplate .zi-legacy-body #selectCustomFieldsForCampaign{width:100%;max-width:100%}
.zi-emailtemplate .zi-legacy-body .cke{max-width:100%}
@media (max-width:1100px){.zi-emailtemplate .zi-legacy-body table.tableboxlight>tbody>tr.zi-editor-row{grid-template-columns:1fr}}

/* ---- assessment editor (edit-assessment.php): the legacy boxes become cards; topics and questions read as rows ---- */
.zi-listcard.zi-loading .zi-tablewrap,.zi-listcard.zi-loading .zi-empty{opacity:.55;transition:opacity .15s}

/* help tooltips (legacy "?" toggles) */
.zi-help,.zi-legacy .zi-legacy-body button.zi-help{display:inline-grid;min-height:0;box-shadow:none;place-items:center;width:20px;height:20px;margin-left:6px;padding:0;border:0!important;border-radius:50%;background:none;color:var(--zi-text-3);cursor:help;vertical-align:-4px}
.zi-help:hover,.zi-help:focus-visible,.zi-help[aria-expanded=true],.zi-legacy .zi-legacy-body button.zi-help:hover,.zi-legacy .zi-legacy-body button.zi-help[aria-expanded=true]{color:var(--zi-accent);background:var(--zi-accent-soft)}
.zi-help .zi-icon{width:15px;height:15px}
.zi-tooltip{position:fixed;z-index:210;max-width:340px;padding:10px 12px;border-radius:8px;background:#1f2933;color:#f5f7fa;font:12.5px/1.5 var(--zi-font);box-shadow:var(--zi-shadow-pop)}
.zi-tooltip[hidden]{display:none}
.zi-tooltip small{font-size:inherit}
.zi-legacy .zi-legacy-body .help_box.zi-help-source{display:none!important}
/* legacy label cells carry width="25%": inside the form grid that is 25% of the label column, one word per line */
.zi-formpage .zi-legacy-body table.tableboxlight>tbody>tr>td{width:auto!important}
/* Assessment Detail (assessment.php) */
.zi-ad{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.zi-ad-main,.zi-ad-side{display:grid;gap:16px;align-content:start;min-width:0}
.zi-ad .zi-card>.hd h2 .zi-ad-count{font-weight:400;font-size:12.5px;margin-left:6px}
.zi-ad-topiclist{list-style:none;margin:0;padding:0}
.zi-ad-topic{border-top:1px solid var(--zi-line)}
.zi-ad-topic:first-child{border-top:0}
.zi-ad-topic>details>summary{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;list-style:none}
.zi-ad-topic>details>summary::-webkit-details-marker{display:none}
.zi-ad-topic>details>summary::before{content:"";width:8px;height:8px;border-right:2px solid var(--zi-text-3);border-bottom:2px solid var(--zi-text-3);transform:rotate(-45deg);transition:transform .15s;flex:none;margin-right:2px}
.zi-ad-topic>details[open]>summary::before{transform:rotate(45deg)}
.zi-ad-topic>details>summary:hover{background:var(--zi-surface-2)}
.zi-ad-topic .n{width:22px;height:22px;border-radius:50%;background:var(--zi-surface-2);border:1px solid var(--zi-line);display:grid;place-items:center;font-size:11.5px;color:var(--zi-text-2);flex:none}
.zi-ad-topic .t{flex:1;min-width:0;display:flex;flex-direction:column}
.zi-ad-topic .t small{font-size:11.5px;color:var(--zi-text-3)}
.zi-ad-topic .m{font-size:12.5px;white-space:nowrap}
.zi-ad-topic.off .t b{color:var(--zi-text-3)}
.zi-ad-topicmeta{padding:0 16px 8px 64px;font-size:12.5px}
.zi-ad-noq{padding:0 16px 14px 64px;margin:0}
.zi-ad-qs{margin:0 0 8px}
.zi-ad-qs td.q{white-space:normal;line-height:1.45;max-width:640px}
.zi-ad-qs td.nw{white-space:nowrap;color:var(--zi-text-2)}
.zi-ad-qs .zi-ad-act{width:1%;white-space:nowrap;text-align:right;padding-right:8px}
.zi-ad-qs tr.off td{color:var(--zi-text-3)}
.zi-ad-qs th:first-child,.zi-ad-qs td:first-child{padding-left:16px;width:40px}
.zi-ad-texts{padding:4px 16px 12px}
.zi-ad-text h3{font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--zi-text-3);margin:14px 0 6px;font-weight:600}
.zi-ad-rich{border:1px solid var(--zi-line);border-radius:var(--zi-radius);padding:10px 14px;background:var(--zi-surface-2);max-height:320px;overflow:auto;overflow-wrap:anywhere}
.zi-ad-rich img{max-width:100%;height:auto}
.zi-ad-dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:0;padding:12px 16px 16px;font-size:13px}
.zi-ad-dl dt{color:var(--zi-text-3)}
.zi-ad-dl dd{margin:0;text-align:right;overflow-wrap:anywhere}
.zi-doc-dl{grid-template-columns:160px 1fr;font-size:13.5px}
.zi-doc-dl dd{text-align:left}
.zi-ad .zi-list a.it{color:inherit;text-decoration:none}
.zi-ad .zi-list a.it:hover{background:var(--zi-surface-2)}
@media (max-width:1100px){.zi-ad{grid-template-columns:1fr}}
/* count chip (editor and detail pages) */
.zi-ae-chip{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border:1px solid var(--zi-line);border-radius:999px;font-size:12px;color:var(--zi-text-2);background:var(--zi-surface);white-space:nowrap;text-decoration:none}
.zi-ae-chip .zi-icon{width:13px;height:13px}
a.zi-ae-chip:hover{border-color:var(--zi-accent);color:var(--zi-accent-text);text-decoration:none}
.zi-ae-chip.on{background:var(--zi-accent-soft);border-color:transparent;color:var(--zi-accent-text)}
/* Home: KPI tiles are links; needs-attention + welcome share a row only when both fit; the activity table always gets the full width */
a.zi-kpi-link{display:block;color:inherit;text-decoration:none;transition:border-color .12s,box-shadow .12s}
a.zi-kpi-link:hover,a.zi-kpi-link:focus-visible{border-color:var(--zi-accent);box-shadow:var(--zi-shadow-pop);text-decoration:none}
.zi-kpi .cta{display:flex;align-items:center;gap:4px;margin-top:10px;padding-top:8px;border-top:1px solid var(--zi-line);font-size:12.5px;font-weight:500;color:var(--zi-accent-text)}
.zi-kpi .cta .zi-icon{width:14px;height:14px}
.zi-home-top{display:grid;gap:16px;margin-bottom:16px;align-items:start}
.zi-home-top .zi-welcome[hidden]{display:none}
@media (min-width:1400px){.zi-home-top.with-welcome{grid-template-columns:1.6fr 1fr}}
@media (max-width:1399.98px){.zi-home-top .zi-welcome .bd{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.zi-home-top .zi-welcome .bd>*{margin:0!important}.zi-home-top .zi-welcome .bd p{flex:1;min-width:240px}}
#zi-home-activity{scroll-margin-top:calc(var(--zi-topbar-h) + 16px)}
.zi-footer .zi-legacy-switch{display:inline-flex;align-items:center;gap:6px;margin-left:auto}
.zi-menu.zi-floating a,.zi-menu.zi-floating button{font-family:var(--zi-font);font-size:13.5px;white-space:nowrap}
.zi-tableeditor .zi-pagerbtn{width:30px!important;min-width:0!important;height:30px!important;padding:0!important;vertical-align:middle;border:0!important;background:transparent!important}.zi-tableeditor .zi-pagerbtn:disabled{opacity:.35;cursor:default}

/* ---------- dashboard (dashboard*.php, legacy markup) ---------- */
.zi-dashboard .zi-legacy-body form[name=frmReports]>table,.zi-dashboard .zi-legacy-body table.dashboard_filter{background:var(--zi-surface)!important;border:1px solid var(--zi-line)!important;border-radius:var(--zi-radius-lg);padding:6px 10px}
.zi-dashboard .zi-legacy-body td,.zi-dashboard .zi-legacy-body th{font-family:var(--zi-font);font-size:13.5px}
.zi-dashboard .zi-legacy-body select,.zi-dashboard .zi-legacy-body input[type=text],.zi-dashboard .zi-legacy-body input:not([type]){font:13.5px var(--zi-font);height:32px;border:1px solid var(--zi-line-strong);border-radius:var(--zi-radius);padding:0 8px;background:#fff;color:var(--zi-text)}
.zi-dashboard .zi-legacy-body table.tablebox{box-sizing:border-box;width:100%!important;border:1px solid var(--zi-line)!important;border-radius:var(--zi-radius-lg);background:var(--zi-surface)!important;border-collapse:separate;border-spacing:0;overflow:hidden}
.zi-dashboard .zi-legacy-body table.tablebox tr.tableheader>td,.zi-dashboard .zi-legacy-body table.tablebox tr.tableheader>th{background:var(--zi-surface)!important;color:var(--zi-text)!important;font-size:15px;font-weight:600;text-align:left;padding:14px 16px;border-bottom:1px solid var(--zi-line)}
.zi-dashboard .zi-legacy-body table.tablebox tr.subheader>td,.zi-dashboard .zi-legacy-body table.tablebox tr.subheader>th,.zi-dashboard .zi-legacy-body table.tablebox th{background:var(--zi-surface-2)!important;color:var(--zi-text-2)!important;font-size:12px;font-weight:600;letter-spacing:.02em;padding:8px 12px;border-bottom:1px solid var(--zi-line);border-right:0!important}
.zi-dashboard .zi-legacy-body table.tablebox tr.subheader a,.zi-dashboard .zi-legacy-body table.tablebox th a{color:var(--zi-text-2)!important}
.zi-dashboard .zi-legacy-body table.tablebox td{background:transparent!important;border:0!important;border-bottom:1px solid var(--zi-line)!important;padding:8px 12px;color:var(--zi-text)}
.zi-dashboard .zi-legacy-body table.tablebox tr:last-child>td{border-bottom:0!important}
.zi-dashboard .zi-legacy-body table.tablebox tr:hover>td{background:var(--zi-surface-2)!important}
.zi-dashboard .zi-legacy-body table.tablebox td a{color:var(--zi-accent);font-weight:500}
.zi-dashboard .zi-dashbtn{width:30px!important;min-width:0!important;height:30px!important;padding:0!important;border:0!important;background:transparent!important;color:var(--zi-text-2)}
.zi-dashboard .zi-legacy-body{overflow-x:auto}
.zi-dashboard .zi-legacy-body table.tablebox td,.zi-dashboard .zi-legacy-body table.tablebox th{padding:8px 10px}
.zi-dashboard .zi-legacy-body form[name=frmReports] td{font-weight:500;color:var(--zi-text-2);font-size:13px}
.zi-dashboard .zi-legacy-body form[name=frmReports]>table{border-collapse:separate;padding:10px 12px!important}
.zi-dashboard .zi-legacy-body form[name=frmReports] b,.zi-dashboard .zi-legacy-body form[name=frmReports] strong{font-weight:500}
.zi-dashboard .zi-dashbtn:hover{color:var(--zi-accent)}
.zi-dashboard .zi-legacy-body img[src$="arrow-right.gif"]{display:none}
/* "Report results by" dropdowns (UI\Layout\DropdownMenu): scripts/zi/dashboard.js opens them position:fixed so the card no longer crops them */
.zi-dashboard .dropdown-menu{border:1px solid var(--zi-line)!important;border-radius:10px;box-shadow:var(--zi-shadow-pop)!important;background:var(--zi-surface)!important;padding:4px 0;z-index:200}
.zi-dashboard .dropdown-menu .dropdown-menu-header-box{background:transparent;width:auto;margin:0 0 4px;padding:8px 14px;border-bottom:1px solid var(--zi-line);font-size:var(--zi-fs-label);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--zi-text-3)}
.zi-dashboard .dropdown-menu .dropdown-menu-option{background:transparent;width:auto;padding:7px 14px;color:var(--zi-text);font-size:13.5px}
.zi-dashboard .dropdown-menu .dropdown-menu-option:hover{background:var(--zi-surface-2);color:var(--zi-accent)}
.zi-dashboard .dropdown-menu-container .dropdown-menu-arrow-box{background:var(--zi-surface);border-color:var(--zi-line);z-index:201}

.zi-formpage .zi-legacy-body table.zi-rectable{width:100%!important;max-width:100%;box-sizing:border-box}

/* ---------- admin record editor (metadata/edit_record.php): label/control grid like the record forms ---------- */
.zi-recordeditor .zi-legacy-body table.tableheader{width:100%!important;max-width:880px;background:transparent!important;border:0!important;margin:0!important}
.zi-recordeditor .zi-legacy-body table.tableheader>tbody>tr>td{padding:0;border:0}
.zi-recordeditor .zi-legacy-body table.bodybackground{width:100%!important;background:var(--zi-surface)!important;border:1px solid var(--zi-line)!important;border-radius:var(--zi-radius-lg);border-collapse:separate!important;border-spacing:0;padding:4px 16px 12px}
.zi-recordeditor .zi-legacy-body table.bodybackground tr.tableheader,.zi-recordeditor .zi-legacy-body table.bodybackground tr.tableheader>td{background:transparent!important;color:var(--zi-text)!important;font-family:var(--zi-font)}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr.tableheader>td{padding:12px 0 10px;border-bottom:1px solid var(--zi-line-strong)}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr.tableheader table td{font-size:15px;font-weight:600;padding:0}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr.tableheader table td[align=right]{font-size:13px;font-weight:500;color:var(--zi-text-2)!important}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr.subheader,.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr[height="10"]{display:none}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr.tabledata_even,.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr.tabledata_odd{display:grid;grid-template-columns:0 minmax(150px,230px) 1fr 14px;gap:0 12px;align-items:center;padding:8px 0;border:0!important;border-bottom:1px solid var(--zi-line)!important;background:transparent!important}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr>td{display:block;padding:0;border:0!important;font-family:var(--zi-font);font-size:13.5px;color:var(--zi-text);background:transparent!important;width:auto!important}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr>td:first-child:not([colspan]){overflow:hidden}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr>td:nth-child(2){font-weight:500;color:var(--zi-text-2);font-size:13px;white-space:normal}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr>td[colspan]{grid-column:1/-1}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr:has(>td[colspan][align=right]){border-bottom:0!important;padding:6px 0 0}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr>td[colspan][align=right]{font-size:12px!important;color:var(--zi-text-3)!important;font-weight:400}
.zi-recordeditor .zi-legacy-body input[type=text]{width:100%;max-width:520px}
.zi-recordeditor .zi-legacy-body textarea{width:100%;min-height:96px}
.zi-legacy-body .zi-imgbtn{width:30px!important;min-width:0!important;height:30px!important;padding:0!important;border:0!important;background:transparent!important;color:var(--zi-text-2);vertical-align:middle;margin-left:4px}
.zi-legacy-body .zi-imgbtn:hover{color:var(--zi-accent)}
.zi-dashboard .zi-legacy-body form[name=frmReports] div.tablebox{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;background:var(--zi-surface)!important;border:1px solid var(--zi-line)!important;border-radius:var(--zi-radius-lg);padding:12px 14px!important;box-sizing:border-box;font:500 13px var(--zi-font);color:var(--zi-text-2)}
.zi-dashboard .zi-legacy-body form[name=frmReports] div.tablebox *{font-weight:500}
.zi-dashboard .zi-legacy-body form[name=frmReports] div.tablebox .filter_sep{display:none!important}
.zi-dashboard .zi-legacy-body form[name=frmReports] input[type=submit]{height:32px;padding:0 14px;border-radius:var(--zi-radius);border:1px solid var(--zi-accent);background:var(--zi-accent);color:#fff;font:500 13px var(--zi-font);width:auto!important;margin:0!important;cursor:pointer}
.zi-dashboard .zi-legacy-body table.tablebox th{white-space:normal!important;line-height:1.3}
.zi-dashboard .zi-legacy-body table.tablebox td:has(>.zi-dashbtn){width:1%;text-align:center}
.zi-reportparams .zi-legacy-body table.bodybackground{box-sizing:border-box}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr>td:nth-child(3){display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr>td:nth-child(3)>input[type=text]{flex:1 1 280px}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr.tableheader table td[align=right]{display:flex;align-items:center;justify-content:flex-end;gap:8px}
.zi-recordeditor .zi-legacy-body table.bodybackground>tbody>tr.tableheader table td[align=right] form{display:contents}
.zi-dashboard .zi-legacy-body table.tablebox th,.zi-dashboard .zi-legacy-body table.tablebox td{min-width:0!important}
.zi-dashboard .zi-legacy-body table.tablebox tr>th:first-child{min-width:180px!important}
/* tables nested inside a record form (rater configuration, field maps, campaign2's "Add new custom field"): light cards, not gray legacy boxes */
.zi-formpage .zi-legacy-body table.tableboxlight table.tablebox{background:var(--zi-surface)!important;border:1px solid var(--zi-line)!important;border-radius:var(--zi-radius-lg);border-collapse:separate!important;border-spacing:0;overflow:hidden;margin:0!important}
.zi-formpage .zi-legacy-body table.tableboxlight table.tablebox tr.tableheader>td,.zi-formpage .zi-legacy-body table.tableboxlight table.tablebox tr.tableheader>th{background:transparent!important;color:var(--zi-text)!important;font:600 14px var(--zi-font);padding:10px 12px;border-bottom:1px solid var(--zi-line);text-align:left}
.zi-formpage .zi-legacy-body table.tableboxlight table.tablebox tr.subheader>td,.zi-formpage .zi-legacy-body table.tableboxlight table.tablebox tr.subheader>th{background:var(--zi-surface-2)!important;color:var(--zi-text-2)!important;font:600 12px var(--zi-font);padding:7px 10px;border-bottom:1px solid var(--zi-line)}
.zi-formpage .zi-legacy-body table.tableboxlight table.tablebox td{background:transparent!important;font-family:var(--zi-font);font-size:13px;padding:5px 10px;color:var(--zi-text)}
.zi-formpage .zi-legacy-body table.tableboxlight table.tablebox td b{font-weight:500;color:var(--zi-text-2)}
.zi-formpage .zi-legacy-body table.tableboxlight table.tablebox tr.tableheader,.zi-formpage .zi-legacy-body table.tableboxlight table.tablebox tr.subheader{background:transparent!important}

/* ---------- release notes (release_notes.php): a card per version, ### groups as tiles ---------- */
.zi-notes{font-size:14px;line-height:1.55;color:var(--zi-text)}
.zi-notes p{margin:0 0 10px}
.zi-notes ul{margin:0 0 10px;padding-left:18px}
.zi-notes li{margin:0 0 7px}
.zi-notes>:last-child,.zi-notes ul>li:last-child{margin-bottom:0}
.zi-notes code{font:12.5px var(--zi-mono)}
.zi-relcard{margin-bottom:20px;overflow:clip}   /* clip, not hidden: a hidden card is a scroll container and in-page links ignore scroll-margin under the top bar */
.zi-relcard.is-current{border-color:var(--zi-accent);box-shadow:0 0 0 1px var(--zi-accent),var(--zi-shadow)}
.zi-relcard>.hd{justify-content:flex-start;flex-wrap:wrap;row-gap:4px;background:var(--zi-surface-2);padding:14px 20px}
.zi-relcard.is-current>.hd{background:var(--zi-accent-soft)}
.zi-relcard>.hd h2{font-size:17px}
.zi-relcard .zi-rel-date{margin-left:auto;white-space:nowrap;font-size:12.5px;color:var(--zi-text-3)}
.zi-relcard>summary.hd{cursor:pointer;list-style:none}
.zi-relcard>summary.hd::-webkit-details-marker{display:none}
.zi-relcard>summary.hd::before{content:"";width:8px;height:8px;border-right:2px solid var(--zi-text-3);border-bottom:2px solid var(--zi-text-3);transform:rotate(-45deg);transition:transform .15s;flex:none;margin-right:2px}
.zi-relcard[open]>summary.hd::before{transform:rotate(45deg)}
.zi-relcard:not([open])>summary.hd{border-bottom:0}
.zi-relcard>.bd{padding:18px 20px 20px}
.zi-rel-intro{max-width:100ch;margin-bottom:14px}
.zi-rel-section+.zi-rel-section{margin-top:22px}
.zi-rel-section>h3{font-size:15px;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--zi-line)}
.zi-rel-groups{column-gap:36px;column-rule:1px solid var(--zi-line)}
.zi-rel-group{break-inside:avoid;padding-bottom:16px}
.zi-rel-group>h4{margin:0 0 8px;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--zi-text-2)}
.zi-relcard [id]{scroll-margin-top:calc(var(--zi-topbar-h) + 12px)}

/* import pages (tools/question_bank_import.php, tools/assessment_import.php): the Bootstrap 2 well becomes a shell card */
.zi-legacy .zi-legacy-body.zi-importpage{font:var(--zi-fs-body)/1.45 var(--zi-font);color:var(--zi-text)}
.zi-legacy .zi-legacy-body.zi-importpage,.zi-legacy .zi-legacy-body.zi-importpage *{box-sizing:border-box}
.zi-importpage .container{width:auto;max-width:720px;margin:0;padding:0}
.zi-importpage .container>h2,.zi-importpage .container>p,.zi-importpage .well>div[style]{display:none}
.zi-importpage .row{margin:0}
.zi-importpage .row .span8{float:none;width:auto;margin:0}
.zi-importpage .row .alert{margin:0 0 16px;padding:12px 14px;border:0;border-radius:var(--zi-radius-lg);font:13px/1.5 var(--zi-font);text-shadow:none;overflow-wrap:anywhere}
.zi-importpage .alert-error{background:var(--zi-danger-soft);color:#7a1b15}
.zi-importpage .alert-success{background:var(--zi-ok-soft);color:#145a35}
.zi-importpage .form-horizontal.well{margin:0;padding:20px;background:var(--zi-surface);border:1px solid var(--zi-line);border-radius:var(--zi-radius-lg);box-shadow:var(--zi-shadow)}
.zi-importpage .well>p{margin:0 0 8px;color:var(--zi-text-2)}
.zi-importpage .form-horizontal .control-group{margin:0 0 18px}
.zi-importpage .form-horizontal .control-group:last-child{margin:0}
.zi-importpage .form-horizontal .control-label{float:none;display:block;width:auto;margin:0 0 6px;padding:0;text-align:left;font-size:13px;font-weight:500;color:var(--zi-text)}
.zi-importpage .form-horizontal .controls{margin-left:0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.zi-importpage input[type=file]{font:13.5px var(--zi-font)}
.zi-legacy .zi-importpage a.zi-btn{color:var(--zi-text)}
