/* © 2026 equusMEDIA Digital Systems · PX030 Ramiel · ramiel-common.css v0.3.70 */
/* NB rebuilt 2026-09-30 from CSSOM after an accidental truncation; comments/exact formatting of the pre-0.3.66 source were not preserved, rules are intact. */
:root { --fs-base: 10pt; --fs-h1: 12pt; --fs-sm: 8pt; --col-icon: 2rem; --col-mini: 5.5rem; --col-badge: 6rem; --col-date: 7.5rem; --col-code: 8rem; --col-count: 8.5rem; --col-status: 9rem; --col-check: 7rem; --halo-blue: #00a4dc; --halo-grey: #606060; --bg: #ffffff; --bg-soft: #f5f7fa; --bg-soft-2: #ebeef2; --border: #d8dde3; --border-soft: #e8ebef; --text: #1a1a1a; --text-muted: #5f6770; --text-faint: #8b9197; --danger: #c41e3a; --danger-bg: #fde8eb; --ok: #1a8050; --radius: 6px; --radius-lg: 10px; --shadow-sm: 0 1px 2px rgba(20, 25, 35, 0.06); --shadow-md: 0 2px 12px rgba(0,0,0,0.06); --halo-blue-dark: #0080b0; --halo-blue-bg: rgba(0, 164, 220, 0.08); --warn: #b86200; --warn-bg: #fff4e3; --ok-bg: #e8f5ec; --font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace; --danger-border: #f0c8c8; --danger-deep: #7c2d12; --danger-soft: #d9534f; --danger-strong: #b91c1c; --detour: #6b4ea8; --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; --halo-black: #000000; --hrwl: #b94300; --hrwl-bg: #fff0e6; --info: #1f5fa8; --ok-soft: #5eba7d; --ok-strong: #1a6f3a; --ok-tint: #c7eed3; --slate: #1e293b; --warn-border: #f0d9a8; --warn-mid: #b08322; --warn-soft: #f59e0b; --warn-strong: #6b3f00; --white: #ffffff; }
button, input, select, textarea { font: inherit; color: inherit; }
input, select, textarea { transition: border-color 0.12s; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--halo-blue); box-shadow: rgba(0, 164, 220, 0.15) 0px 0px 0px 3px; }
html, body { background: var(--bg-soft); color: var(--text); font-family: var(--font-body); font-size: var(--fs-base); line-height: 1.5; margin: 0px; height: 100vh; overflow: hidden; padding: 0px; }
.login-card { background: var(--bg); border-radius: var(--radius-lg); border: 1px solid var(--border); box-shadow: var(--shadow-md); max-width: 460px; padding: 36px 36px 32px; width: 100%; }
.login-logo { display: block; margin: 0px auto 8px; width: 220px; }
.login-portal-label { color: var(--halo-blue); font-size: var(--fs-h1); font-weight: 700; letter-spacing: 0.06em; margin-bottom: 12px; margin-top: 18px; text-align: center; text-transform: uppercase; white-space: nowrap; }
.login-title { font-size: var(--fs-h1); font-weight: 600; margin: 0px 0px 4px; text-align: center; }
.login-subtitle { color: var(--text-muted); font-size: var(--fs-base); margin: 0px 0px 24px; text-align: center; }
.login-form .field { margin-bottom: 14px; }
.login-form label { color: var(--text-muted); display: block; font-size: var(--fs-base); font-weight: 500; letter-spacing: 0.03em; margin-bottom: 4px; text-transform: uppercase; }
.login-form input[type="email"], .login-form input[type="password"], .login-form input[type="text"] { background: var(--bg); border-radius: var(--radius); border: 1px solid var(--border); font-family: inherit; font-size: var(--fs-base); padding: 10px 12px; transition: border-color 0.12s; width: 100%; }
.login-form input:focus { border-color: var(--halo-blue); box-shadow: rgba(0, 164, 220, 0.15) 0px 0px 0px 3px; outline: none; }
.password-wrap { position: relative; }
.password-wrap input { padding-right: 56px !important; }
.password-wrap .password-toggle { background: none; border-radius: 6px; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; box-shadow: none; color: var(--text-muted, var(--text-muted)); cursor: pointer; font-family: inherit; font-size: var(--fs-base); font-weight: 600; height: auto; letter-spacing: 0.04em; padding: 4px 6px; position: absolute; right: 0px; text-transform: uppercase; top: 50%; transform: translateY(-50%); margin: 0px !important; width: auto !important; }
.password-wrap .password-toggle:hover { background: none; color: var(--halo-blue); }
.login-forgot { margin-top: 14px; min-height: 20px; text-align: center; }
.login-forgot a { color: var(--halo-blue); cursor: pointer; font-size: var(--fs-base); text-decoration: none; }
.login-forgot a:hover { text-decoration: underline; }
.login-form .login-card .btn { width: 100%; }
.login-error { background: var(--danger-bg); border-radius: var(--radius); color: var(--danger); font-size: var(--fs-base); margin-bottom: 14px; padding: 10px 12px; }
.login-help { border-top: 1px solid var(--border-soft); color: var(--text-faint); font-size: var(--fs-base); margin-top: 20px; padding-top: 16px; text-align: center; }
.login-back { margin-top: 12px; text-align: center; }
.login-back a { color: var(--text-muted); cursor: pointer; font-size: var(--fs-base); text-decoration: none; }
.login-back a:hover { color: var(--halo-blue); }
.password-set-note { background: var(--bg-soft); border-left: 3px solid var(--halo-blue); border-radius: 0 var(--radius) var(--radius) 0; color: var(--text); font-size: var(--fs-base); margin-bottom: 16px; padding: 10px 12px; }
.app-header { align-items: center; background: var(--bg); border-bottom: 1px solid var(--border); display: flex; grid-area: header; justify-content: space-between; padding: 0px 24px; }
.app-header .crumb { color: var(--text-muted); font-size: var(--fs-base); }
.app-header .crumb strong { color: var(--text); font-weight: 600; }
.app-header .crumb a { color: var(--text-muted); cursor: pointer; text-decoration: none; }
.app-header .crumb a:hover { color: var(--halo-blue); }
.user-menu { align-items: center; display: flex; font-size: var(--fs-base); gap: 12px; }
.user-menu .who { color: var(--text-muted); }
.user-menu .who strong { color: var(--text); font-weight: 600; }
.user-menu .role-tag { background: var(--halo-blue); border-radius: 10px; color: white; display: inline-block; font-size: var(--fs-base); font-weight: 600; letter-spacing: 0.04em; margin-left: 6px; padding: 2px 7px; text-transform: uppercase; }
.user-menu button { background: none; border-radius: var(--radius); border: 1px solid var(--border); color: var(--text-muted); cursor: pointer; font-family: inherit; font-size: var(--fs-base); padding: 6px 12px; transition: 0.12s; }
.user-menu button:hover { border-color: var(--halo-grey); color: var(--text); }
.app-sidebar { background: var(--bg-soft); border-right: 1px solid var(--border); display: flex; flex-direction: column; grid-area: sidebar; height: 100vh; overflow: hidden; }
.sidebar-logo { border-bottom: 1px solid var(--border); padding: 14px 20px 18px; }
.sidebar-logo img { display: block; max-width: 180px; width: 100%; }
.sidebar-system-label { padding: 12px 20px 6px; font-size: var(--fs-h1); font-weight: 700; letter-spacing: 0.02em; color: var(--text); }
.sidebar-rto { background: rgba(0, 164, 220, 0.1); border-radius: 6px; border: 1px solid rgba(0, 164, 220, 0.28); margin: 8px 16px 4px; padding: 9px 11px; }
.sidebar-rto .sr-name { color: var(--text); font-size: var(--fs-base); font-weight: 700; line-height: 1.25; }
.sidebar-rto .sr-rto { color: var(--text-muted); font-size: var(--fs-base); font-variant-numeric: tabular-nums; margin-top: 2px; }
.sidebar-rto.none { background: var(--warn-bg); border-color: var(--warn-border); }
.sidebar-rto.none .sr-name { color: var(--warn); font-size: var(--fs-base); font-weight: 600; }
.sidebar-nav { flex: 1 1 0%; overflow-y: auto; padding: 0px 12px 72px; }
.sidebar-nav .nav-section { margin-top: 14px; }
.sidebar-nav .nav-section-title { color: var(--text-faint); font-size: var(--fs-base); font-weight: 600; letter-spacing: 0.06em; padding: 8px 8px 4px; text-transform: uppercase; }
.sidebar-nav a { align-items: center; border-radius: var(--radius); color: var(--text); cursor: pointer; display: flex; font-size: var(--fs-base); justify-content: space-between; margin-bottom: 1px; padding: 7px 10px; text-decoration: none; user-select: none; }
.sidebar-nav a:hover { background: var(--bg-soft-2); }
.sidebar-nav a.active { background: var(--halo-blue); color: white; font-weight: 500; }
.sidebar-nav a.active .nav-count { background: rgba(255, 255, 255, 0.25); color: white; }
.sidebar-nav a.disabled { color: var(--text-faint); cursor: not-allowed; }
.sidebar-nav a.disabled:hover { background: transparent; }
.sidebar-nav a.subnav { color: var(--text-muted); font-size: var(--fs-base); padding-left: 22px; }
.nav-count { background: var(--bg-soft-2); border-radius: 9px; color: var(--text-muted); font-size: var(--fs-base); font-weight: 500; min-width: 20px; padding: 1px 7px; text-align: center; }
.sidebar-version { border-bottom: 1px solid var(--border-soft); color: var(--text-faint); font-family: var(--font-mono); font-size: var(--fs-base); padding: 4px 20px 10px; }
.app-main { background: var(--bg); grid-area: main; overflow-y: auto; min-height: 0px; padding: 24px 32px 64px; }
.page-header h1 { font-size: var(--fs-h1); font-weight: 600; margin: 0px 0px 4px; }
.page-header .page-sub { color: var(--text-muted); font-size: var(--fs-base); margin: 0px; }
.page-header .page-actions { display: flex; flex-shrink: 0; gap: 8px; }
.dash-section-header { align-items: center; display: flex; justify-content: space-between; margin-bottom: 10px; }
.dash-section-header h3 { align-items: center; display: flex; font-size: var(--fs-base); font-weight: 600; gap: 8px; margin: 0px; }
.dash-section-body { font-size: var(--fs-base); }
.audit-row { align-items: baseline; background: var(--bg); display: grid; font-size: var(--fs-base); gap: 12px; grid-template-columns: 160px 1fr 140px; padding: 8px 12px; }
.audit-when { color: var(--text-muted); font-size: var(--fs-base); }
.audit-what { color: var(--text); }
.audit-who { text-align: right; }
.detail-grid dt { color: var(--text-muted); font-size: var(--fs-base); font-weight: 500; letter-spacing: 0.03em; text-transform: uppercase; }
.detail-grid dd { font-size: var(--fs-base); margin: 0px; }
.btn { background: var(--bg); border-radius: var(--radius); border: 1px solid var(--border); color: var(--text); cursor: pointer; display: inline-block; font-family: inherit; font-size: var(--fs-base); font-weight: 500; padding: 7px 14px; text-decoration: none; transition: 0.12s; white-space: nowrap; }
.btn:hover { background: var(--bg-soft); border-color: var(--halo-grey); }
.btn-primary { background: var(--halo-blue); border-color: var(--halo-blue); color: white; }
.btn-primary:hover { background: var(--halo-blue-dark); border-color: var(--halo-blue-dark); }
.btn-danger { border-color: var(--danger-border); color: var(--danger); }
.btn-danger:hover { background: var(--danger-bg); border-color: var(--danger); }
.btn-sm { font-size: var(--fs-base); padding: 4px 10px; }
.data-table { background: var(--bg); border-collapse: collapse; font-size: var(--fs-base); width: 100%; }
.data-table thead th { background: var(--bg-soft); border-bottom: 1px solid var(--border); color: var(--text-muted); cursor: pointer; font-size: var(--fs-base); font-weight: 600; letter-spacing: 0.03em; padding: 10px 12px; text-align: left; text-transform: uppercase; user-select: none; }
.data-table tbody td { border-bottom: 1px solid var(--border-soft); padding: 5px 12px; vertical-align: top; }
.data-table tbody tr:hover { background: var(--bg-soft); }
.merge-cluster { border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; margin: 0px 0px 12px; }
.merge-cluster:last-child { margin-bottom: 0px; }
.merge-cluster-h { margin: 0px 0px 4px; font-size: var(--fs-h1); }
.merge-note { margin: 0px 0px 6px; font-size: var(--fs-base); }
.merge-table { margin: 0px; }
.merge-table .merge-keep { text-align: center; width: 44px; }
.merge-cluster-act { margin: 10px 0px 0px; }
.cmp-applybar { display: flex; gap: 8px; flex-wrap: wrap; margin: 0px 0px 12px; position: sticky; top: 0px; background: var(--bg); padding: 6px 0px; z-index: 2; }
.cmp-table th.cmp-c, .cmp-table td.cmp-c { text-align: center; width: 66px; }
.cmp-prow > td { background: var(--halo-blue-bg, var(--bg-soft)); font-weight: 700; border-top: 2px solid var(--border); }
.cmp-crow > td { background: var(--bg-soft); }
.cmp-crow > td.cmp-cname { font-weight: 600; padding-left: 18px; }
.cmp-lrow > td.cmp-lname { padding-left: 30px; }
.cmp-dl { font-size: 0.8em; margin-left: 3px; color: var(--text-muted); }
.cmp-off { opacity: 0.3; }
.cmp-d { color: var(--ok, #2d8a3e); font-weight: 600; }
.cmp-tick { font-weight: 700; }
td.cmp-do { background: var(--halo-blue-bg, #e8f6fc); }
.cmp-do-i { display: inline-block; padding: 2px 10px; background: var(--halo-blue-bg, #e8f6fc); border-radius: 4px; }
.cmp-lock, td.cmp-lock { color: var(--text-faint); opacity: 0.55; }
.cmp-docrow > td { padding: 4px 12px 8px 30px; border-bottom: 1px solid var(--border); background: var(--bg); }
.docbar { display: flex; flex-wrap: wrap; gap: 18px; align-items: center; }
.docbar-doc { display: inline-flex; align-items: center; gap: 6px; }
.docbar-lbl { font-size: var(--fs-base); color: var(--text-muted); font-weight: 600; margin-right: 2px; }
.docbar .btn-sm { padding: 2px 8px; }
.kp-partner { border: 1px solid var(--border); border-radius: var(--radius); margin: 0px 0px 18px; overflow: hidden; background: var(--bg); }
.kp-phead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 18px; padding: 12px 14px; background: var(--bg-soft); border-bottom: 2px solid var(--halo-blue); }
.kp-pname { font-weight: 700; font-size: var(--fs-h1); }
.kp-inv { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.kp-inv .docbar { gap: 10px; }
.kp-invref { font-weight: 600; font-size: var(--fs-base); }
.kp-tag { font-size: var(--fs-sm); font-weight: 700; letter-spacing: 0.04em; padding: 2px 8px; border-radius: 999px; }
.kp-tag.kp-tosend { background: rgba(0, 164, 220, 0.14); color: var(--halo-blue); }
.kp-tag.kp-sent { background: rgba(38, 166, 91, 0.16); color: rgb(30, 126, 69); }
.kp-tag.kp-paidtag { background: rgba(38, 166, 91, 0.16); color: rgb(30, 126, 69); }
.kp-course { padding: 4px 14px 10px; }
.kp-chead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 0px 6px; }
.kp-ctitle { font-weight: 600; font-size: var(--fs-base); }
.kp-bulkbar { display: flex; flex-wrap: wrap; gap: 6px; }
.kp-ltable { width: 100%; border-collapse: collapse; }
.kp-ltable thead th { text-align: left; font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); font-weight: 600; padding: 2px 10px; border-bottom: 1px solid var(--border); }
.kp-ltable { table-layout: fixed; }
.kp-ltable thead th:first-child, .kp-ltable td.kp-lname { width: 300px; }
.kp-ltable thead th.kp-c, .kp-ltable td.kp-c { text-align: center; width: 150px; }
.kp-ltable tbody td { padding: 7px 10px; border-bottom: 1px solid var(--border); vertical-align: middle; }
.kp-ltable tbody tr:last-child td { border-bottom-width: medium; border-bottom-style: none; border-bottom-color: currentcolor; }
.kp-lname { font-weight: 600; font-size: var(--fs-base); word-break: break-word; }
.kp-cid { font-size: var(--fs-sm); color: var(--text-muted); font-weight: 400; }
.kp-done { color: rgb(30, 126, 69); font-weight: 700; }
.kp-done .kp-dl { color: var(--text-muted); font-weight: 500; font-size: var(--fs-base); }
.kp-lock { color: var(--text-muted); opacity: 0.55; }
.kp-soacell .docbar { gap: 10px; }
.soa-units { margin: 8px 0px 4px; padding-left: 18px; font-size: var(--fs-base); }
.soa-units li { margin: 2px 0px; }
.soa-reissue { border-top: 1px solid var(--border); padding-top: 12px; }
.soa-reissue h4 { margin: 0px 0px 4px; }
.soa-reissue .field { width: 100%; }
.comms-body { border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 14px; background: var(--bg-soft); max-height: 340px; overflow: auto; font-size: var(--fs-base); line-height: 1.5; }
.data-table tbody tr.clickable { cursor: pointer; }
.data-table .col-code { color: var(--text-muted); font-family: var(--font-mono); }
input.field-code, input#code { width: 11ch; text-transform: uppercase; }
.data-table.list-tight { table-layout: fixed; width: 100%; }
.data-table.list-tight th, .data-table.list-tight td { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.data-table.list-tight th.col-flex, .data-table.list-tight td.col-flex { white-space: normal; overflow: visible; }
.data-table.list-tight .col-icon { width: var(--col-icon); }
.data-table.list-tight .col-mini { width: var(--col-mini); }
.data-table.list-tight .col-badge { width: var(--col-badge); }
.data-table.list-tight .col-date { width: var(--col-date); }
.data-table.list-tight .col-code { width: var(--col-code); }
.data-table.list-tight .col-count { width: var(--col-count); }
.data-table.list-tight .col-status { width: var(--col-status); }
.data-table.list-tight .col-check { width: var(--col-check); text-align: center; }
.data-table .col-actions { text-align: right; white-space: nowrap; }
.table-controls input[type="search"] { border-radius: var(--radius); border: 1px solid var(--border); font-family: inherit; font-size: var(--fs-base); flex: 0 1 320px; min-width: 220px; padding: 7px 12px; }
.table-controls input[type="search"]:focus { border-color: var(--halo-blue); box-shadow: rgba(0, 164, 220, 0.15) 0px 0px 0px 3px; outline: none; }
.table-controls select { background: var(--bg); border-radius: var(--radius); border: 1px solid var(--border); font-family: inherit; font-size: var(--fs-base); flex: 0 0 auto; min-width: 160px; padding: 7px 12px; }
.table-meta { color: var(--text-muted); font-size: var(--fs-base); margin-left: auto; }
.badge { border-radius: 10px; display: inline-block; font-size: var(--fs-base); font-weight: 600; letter-spacing: 0.04em; padding: 2px 8px; text-transform: uppercase; }
/* RPL box (Phil 2026-10-01): a special, single-learner box — make it VERY obvious. Distinct violet, not a status colour. */
.badge-rpl { background: #6d28d9; color: #fff; border-radius: 6px; display: inline-block; font-size: var(--fs-base); font-weight: 700; letter-spacing: 0.06em; padding: 1px 7px; text-transform: uppercase; }
.rpl-row > td, tr.rpl-row > td { background: rgba(109, 40, 217, 0.10); }
.rpl-row { box-shadow: inset 3px 0 0 #6d28d9; }
.kp-course.rpl-row { border-left: 3px solid #6d28d9; background: rgba(109, 40, 217, 0.06); }
.badge-active { background: var(--ok-bg); color: var(--ok); }
.badge-invited { background: var(--bg-soft-2); color: var(--text-muted); }
.badge-onboarding { background: var(--bg-soft-2); color: var(--text-muted); }
.badge-pending_approval { background: var(--warn-bg); color: var(--warn); }
.badge-draft { background: var(--bg-soft-2); color: var(--text-muted); }
.audit-dot-green { background: var(--ok-soft); }
.audit-dot-yellow { background: var(--warn-soft); }
.audit-dot-red { background: var(--danger-soft); }
.badge-completed { background: var(--bg-soft-2); color: var(--text-muted); }
.badge-finalised { background: var(--bg-soft-2); color: var(--halo-blue); }
.badge-hrwl { background: var(--hrwl-bg); color: var(--hrwl); }
.badge-program-type { background: var(--bg-soft-2); color: var(--text-muted); font-weight: 500; }
.modal { background: var(--bg); border-radius: var(--radius-lg); box-shadow: rgba(0, 0, 0, 0.25) 0px 20px 60px; display: flex; flex-direction: column; max-height: 90vh; max-width: 600px; width: 100%; }
.modal.modal-lg { max-width: 800px; }
.modal.modal-sm { max-width: 420px; }
.modal-header { align-items: center; border-bottom: 1px solid var(--border-soft); display: flex; justify-content: space-between; padding: 18px 22px; }
.modal-header h2 { font-size: var(--fs-h1); font-weight: 600; margin: 0px; }
.modal-header .close { background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: var(--text-faint); cursor: pointer; font-size: var(--fs-h1); line-height: 1; padding: 0px 4px; }
.modal-header .close:hover { color: var(--text); }
.modal-body { flex: 1 1 0%; overflow-y: auto; padding: 10px 20px; }
.modal-footer { background: var(--bg-soft); border-radius: 0 0 var(--radius-lg) var(--radius-lg); border-top: 1px solid var(--border-soft); display: flex; gap: 8px; justify-content: flex-end; padding: 14px 22px; }
.form-grid .full-width { grid-column: span 2; }
.form-field { display: flex; flex-direction: column; }
.form-field label { color: var(--text-muted); font-size: var(--fs-base); font-weight: 500; letter-spacing: 0.03em; margin-bottom: 4px; text-transform: uppercase; }
.form-field .required-mark { color: var(--danger); }
.form-field input, .form-field select, .form-field textarea { background: var(--bg); border-radius: var(--radius); border: 1px solid var(--border); color: var(--text); font-family: inherit; font-size: var(--fs-base); padding: 9px 11px; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--halo-blue); box-shadow: rgba(0, 164, 220, 0.15) 0px 0px 0px 3px; outline: none; }
.form-field textarea { min-height: 70px; resize: vertical; }
.form-field .hint { color: var(--text-faint); font-size: var(--fs-base); margin-top: 3px; }
.field { box-sizing: border-box; padding: 5px 11px; border: 1px solid var(--border); border-radius: var(--radius); font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-size: var(--fs-base); background: var(--bg); color: var(--text); transition: border-color 0.12s; }
.field:focus { outline: none; border-color: var(--halo-blue); box-shadow: rgba(0, 164, 220, 0.15) 0px 0px 0px 3px; }
.field[readonly], .field:disabled { background: var(--bg-soft); color: var(--text-muted); }
.field-xs { width: 32px; padding-left: 5px; padding-right: 5px; text-align: right; }
.field-num { width: 72px; padding-left: 6px; padding-right: 6px; text-align: right; }
.field-sm { width: 96px; }
.field-md { width: 160px; }
.field-lg { width: 220px; }
.field-full { width: 100%; }
.field-grow { flex: 1 1 0%; min-width: 200px; }
.sn-th { text-align: left; width: 200px; font-weight: 600; }
.hint-inline { font-size: var(--fs-base); }
.field-tall { min-height: 220px; resize: vertical; }
.field-minw { min-width: 220px; }
.field-dark { background: rgb(28, 36, 48); color: rgb(255, 255, 255); border-color: rgb(58, 70, 86); }
.upper { text-transform: uppercase; }
.mono { font-family: var(--font-mono); }
.tal { text-align: left; }
.mb-0 { margin-bottom: 0px; }
.mt-1 { margin-top: 8px; }
.gap-r { margin-right: 7px; }
.j4-choice { display: inline-flex; gap: 4px; }
button.j4-mark.j4-on { opacity: 1; color: rgb(255, 255, 255); }
button.j4-mark.j4-on.j4-c { background: var(--ok); border-color: var(--ok); }
button.j4-mark.j4-on.j4-nyc { background: var(--warn); border-color: var(--warn); }
.j4-head { margin-bottom: 10px; }
.j4-bulkbar { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.j4-scroll { overflow: auto; }
.j4-actions { margin-top: 14px; }
.j4-bundle { background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; padding: 2px 5px; margin: -2px -5px; font: inherit; color: inherit; cursor: pointer; border-radius: 4px; }
.j4-bundle:hover { background: var(--bg-soft); color: var(--halo-blue); }
.decl-body { color: var(--text-muted); font-size: var(--fs-base); margin-top: 8px; line-height: 1.5; }
.ack-note-label { display: block; margin-top: 12px; font-size: var(--fs-base); color: var(--text-muted); }
.tr-choice { display: inline-flex; gap: 4px; }
.btn.tr-pass { background: var(--ok); border-color: var(--ok); color: rgb(255, 255, 255); }
.btn.tr-fail { background: var(--danger); border-color: var(--danger); color: rgb(255, 255, 255); }
.btn.tr-block { background: var(--warn); border-color: var(--warn); color: rgb(255, 255, 255); }
.tr-note { min-width: 140px; }
.picker-input { background: var(--bg); border-radius: var(--radius); border: 1px solid var(--border); font-family: inherit; font-size: var(--fs-base); padding: 9px 11px; width: 100%; }
.picker-input:focus { border-color: var(--halo-blue); box-shadow: rgba(0, 164, 220, 0.15) 0px 0px 0px 3px; outline: none; }
.picker-results { background: var(--bg); border-radius: var(--radius); border: 1px solid var(--border); box-shadow: var(--shadow-md); left: 0px; margin-top: 4px; max-height: 480px; overflow-y: auto; position: absolute; right: 0px; top: 100%; z-index: 10; }
.picker-result { align-items: center; border-bottom: 1px solid var(--border-soft); cursor: pointer; display: flex; gap: 8px; padding: 8px 12px; }
.picker-result:last-child { border-bottom-width: medium; border-bottom-style: none; border-bottom-color: currentcolor; }
.picker-result .picker-code { color: var(--text-muted); flex-shrink: 0; font-family: var(--font-mono); font-size: var(--fs-base); min-width: 110px; }
.picker-result .picker-title { flex: 1 1 0%; font-size: var(--fs-base); }
.picker-result .picker-badges { display: flex; flex-shrink: 0; gap: 4px; }
.picker-empty { color: var(--text-muted); font-size: var(--fs-base); padding: 14px 12px; text-align: center; }
.linked-items { border-radius: var(--radius); border: 1px solid var(--border-soft); overflow: hidden; }
.linked-items .linked-item { align-items: center; background: var(--bg); border-bottom: 1px solid var(--border-soft); display: flex; gap: 12px; padding: 8px 12px; }
.linked-items .linked-item:last-child { border-bottom-width: medium; border-bottom-style: none; border-bottom-color: currentcolor; }
.linked-items .li-code { color: var(--text-muted); flex-shrink: 0; font-family: var(--font-mono); font-size: var(--fs-base); min-width: 110px; }
.linked-items .li-title { flex: 1 1 0%; font-size: var(--fs-base); }
.linked-items .li-remove { background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: var(--text-faint); cursor: pointer; font-size: var(--fs-h1); line-height: 1; padding: 4px 6px; }
.linked-items .li-remove:hover { color: var(--danger); }
.empty-state { color: var(--text-muted); padding: 48px 20px; text-align: center; }
.empty-state h3 { color: var(--text); font-size: var(--fs-base); font-weight: 600; margin: 0px 0px 4px; }
.empty-state p { font-size: var(--fs-base); margin: 0px 0px 18px; }
.loading { color: var(--text-muted); font-size: var(--fs-base); padding: 40px; text-align: center; }
.toast-container { display: flex; flex-direction: column; gap: 8px; position: fixed; right: 16px; top: 16px; z-index: 200; }
.toast { animation: 0.18s ease-out 0s 1 normal none running toast-in; background: var(--bg); border-radius: var(--radius); border: 1px solid var(--border); box-shadow: var(--shadow-md); font-size: var(--fs-base); max-width: 380px; min-width: 260px; padding: 10px 16px; }
.toast.ok { border-left-color: var(--ok); }
.toast.error { border-left-color: var(--danger); }
.toast.warn { border-left-color: var(--warn); }
.detail-grid { display: grid; gap: 10px 20px; grid-template-columns: 200px 1fr; margin-bottom: 18px; }
.section-header { align-items: center; border-bottom: 1px solid var(--border-soft); display: flex; justify-content: space-between; margin: 10px 0px 5px; padding-bottom: 4px; }
.section-header h3 { font-size: var(--fs-base); font-weight: 600; margin: 0px; }
.hidden { display: none !important; }
.text-muted { color: var(--text-muted); }
.text-mono { font-family: var(--font-mono); }
.login-version { color: var(--text-muted, var(--text-muted)); font-size: var(--fs-base); letter-spacing: 0.02em; margin-top: 18px; text-align: center; }
.form-grid { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; }
.required-mark { color: var(--danger); }
.hat-card { max-width: 520px; }
.hat-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin: 8px 0px 4px; }
.hat-btn { align-items: center; background: var(--bg); border-radius: var(--radius-lg, 12px); border: 1px solid var(--border, var(--border-soft)); cursor: pointer; display: flex; flex-direction: column; gap: 8px; padding: 18px 14px; position: relative; text-align: center; transition: border-color 0.12s, box-shadow 0.12s; }
.hat-btn:hover { border-color: var(--halo-blue); box-shadow: rgba(0, 0, 0, 0.06) 0px 2px 10px; }
.hat-btn.current { border-color: var(--halo-blue); }
.hat-logo-wrap { align-items: center; display: flex; height: 56px; justify-content: center; }
.hat-logo { height: auto; max-height: 56px; max-width: 120px; object-fit: contain; width: auto; }
.hat-initials { align-items: center; background: var(--halo-blue); border-radius: 50%; color: var(--bg); display: flex; font-size: var(--fs-h1); font-weight: 700; height: 52px; justify-content: center; width: 52px; }
.hat-name { color: var(--text, var(--slate)); font-size: var(--fs-base); font-weight: 600; line-height: 1.3; }
.hat-roles { color: var(--text-muted, var(--text-muted)); font-size: var(--fs-base); text-transform: capitalize; }
.hat-current-badge { color: var(--halo-blue); font-size: var(--fs-base); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
.switch-rto { background: transparent; border-radius: 6px; border: 1px solid var(--border, var(--border-soft)); color: var(--text-muted, var(--text-muted)); cursor: pointer; font-size: var(--fs-base); margin-right: 8px; padding: 6px 12px; }
.switch-rto:hover { border-color: var(--halo-blue); color: var(--halo-blue); }
.page { margin: 0px auto; max-width: 800px; padding: 24px 16px 80px; }
header.brand { align-items: center; display: flex; justify-content: center; padding: 24px 0px; }
header.brand .logo { display: block; height: 64px; width: auto; }
.card { background: var(--bg); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); margin-bottom: 18px; padding: 28px; }
.count-pill { border-radius: 10px; display: inline-block; font-size: var(--fs-base); font-weight: 700; letter-spacing: 0.04em; padding: 2px 9px; }
.count-pill.attention { background: var(--warn-bg); color: var(--warn-soft); }
.count-pill.warn { background: var(--warn-bg); color: var(--warn); }
.count-pill.danger { background: var(--danger-bg); color: var(--danger); }
.placeholder { color: var(--text-faint); font-style: italic; padding: 20px; text-align: center; }
h1 { font-size: var(--fs-h1); font-weight: 600; margin: 0px 0px 6px; }
.subtitle { color: var(--text-muted); font-size: var(--fs-base); margin: 0px 0px 24px; }
.btn:disabled { cursor: not-allowed; opacity: 0.5; }
.error-box { background: var(--danger-bg); border-radius: var(--radius); border: 1px solid var(--danger); color: var(--danger); font-size: var(--fs-base); margin-bottom: 16px; padding: 12px 14px; }
.login-card label { display: block; font-size: var(--fs-base); font-weight: 600; margin: 0px 0px 6px; }
.welcome h1 { color: var(--halo-blue); font-size: var(--fs-h1); margin: 0px 0px 8px; }
.section-header h2 { font-size: var(--fs-base); font-weight: 600; margin: 0px; }
.form-field.full-width { grid-column: 1 / -1; }
.data-table th { background: var(--bg-soft); border-bottom: 1px solid var(--border); color: var(--text-muted); font-size: var(--fs-base); font-weight: 600; letter-spacing: 0.04em; padding: 8px 10px; text-align: left; text-transform: uppercase; }
.data-table td { border-bottom: 1px solid var(--border-soft); padding: 5px 10px; vertical-align: middle; }
.login-card input { border-radius: 6px; border: 1px solid var(--border); font-size: var(--fs-base); margin: 0px 0px 14px; padding: 10px 12px; width: 100%; }
@media (max-width: 600px) {
  .audit-row { grid-template-columns: 1fr; }
  .audit-who { text-align: left; }
}
.sr-acting { font-size: var(--fs-base); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--warn-strong); margin-bottom: 2px; }
.btn-link { background: transparent; border-color: transparent; color: var(--halo-blue); font-weight: 600; width: auto; }
.btn-link:hover { background: var(--halo-blue-bg); border-color: transparent; }
.data-table .btn { width: auto; vertical-align: middle; }
.btn-block { width: 100%; }
.login-shell, .entry-host { min-height: 100vh; display: flex; align-items: flex-start; justify-content: center; background: var(--bg); padding: 80px 20px 48px; }
.entry-host:empty { display: none; }
* { box-sizing: border-box; }
.login-shell { min-height: 100vh; display: flex; align-items: flex-start; justify-content: center; background: var(--bg); padding: 80px 20px 48px; }
.app-shell { display: grid; grid-template: "sidebar header" 56px "sidebar main" 1fr / 240px 1fr; height: 100vh; overflow: hidden; }
.sidebar-nav a.subnav.active { padding-left: 22px; }
.page-header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; gap: 16px; }
.dash-section { background: var(--bg); border: 1px solid var(--border-soft); border-radius: var(--radius); padding: 16px 18px; margin-bottom: 16px; }
.dash-section-attention { border-left: 3px solid var(--halo-blue); }
.dash-section-error { border-left: 3px solid var(--warn); background: var(--warn-bg, var(--warn-bg)); }
.dash-section-quiet { opacity: 0.7; }
.dash-count-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0px 6px; border-radius: 11px; font-size: var(--fs-base); font-weight: 600; }
.dash-count-attention { background: var(--halo-blue); color: white; }
.dash-count-error { background: var(--warn); color: white; }
.dash-count-quiet { background: var(--bg-soft-2); color: var(--text-muted); }
.btn.btn-link { background: transparent; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; padding: 0px; color: var(--halo-blue); font-size: var(--fs-base); font-weight: 600; cursor: pointer; font-family: inherit; }
.btn.btn-link:hover { text-decoration: underline; }
.audit-list { display: flex; flex-direction: column; gap: 1px; background: var(--border-soft); border-radius: var(--radius); overflow: hidden; }
.btn-xs { padding: 2px 8px; font-size: var(--fs-base); }
.data-table thead th.sortable:hover { background: var(--bg-soft-2); }
.data-table thead th .sort-indicator { margin-left: 4px; color: var(--text-faint); font-size: var(--fs-base); }
.data-table.soa-queue-table tbody tr:hover { background: transparent; cursor: default; }
.accordion-table .accordion-caret { width: 28px; text-align: center; padding: 10px 0px 10px 8px; color: var(--text-muted); user-select: none; }
.accordion-table .accordion-caret .caret { display: inline-block; font-size: var(--fs-base); transition: transform 0.15s; }
.accordion-table tr.accordion-expanded > .accordion-caret .caret { color: var(--halo-blue); }
.accordion-table tr.accordion-expanded { background: var(--bg-soft); }
.accordion-table tr.accordion-expanded:hover { background: var(--bg-soft); }
.accordion-detail-row { background: var(--bg-soft); }
.accordion-detail-row:hover { background: var(--bg-soft) !important; }
.accordion-detail-cell { background: var(--bg-soft); padding: 0px !important; border-bottom: 1px solid var(--border) !important; }
.accordion-detail-body { padding: 20px 32px 24px; background: var(--bg); margin: 0px 8px 8px; border-left: 3px solid var(--halo-blue); border-radius: 0 var(--radius) var(--radius) 0; }
.accordion-detail-body .section-header h3 { font-size: var(--fs-base); text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); font-weight: 600; margin: 0px 0px 10px; }
.accordion-detail-body .section-header { border-bottom: 1px solid var(--border-soft); padding-bottom: 6px; margin-bottom: 12px; }
.accordion-title-row { margin-bottom: 16px; padding-bottom: 10px; border-bottom: 1px solid var(--border-soft); }
.accordion-title-row h2 { font-size: var(--fs-h1); font-weight: 600; margin: 0px; color: var(--text); }
.accordion-detail-footer { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--border-soft); display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.accordion-detail-footer:empty { display: none; }
.table-controls { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.badge-suspended { background: var(--warn-bg); color: var(--warn); }
.badge-closed { background: var(--bg-soft-2); color: var(--text-muted); }
.audit-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; vertical-align: middle; border: 1px solid rgba(0, 0, 0, 0.15); }
.btn-spinner { display: inline-block; width: 11px; height: 11px; border-width: 2px; border-style: solid; border-color: transparent currentcolor currentcolor; border-image: none; border-radius: 50%; animation: 0.6s linear 0s infinite normal none running btn-spin; vertical-align: -1px; margin-right: 7px; }
@keyframes btn-spin { 
  100% { transform: rotate(360deg); }
}
.badge-sent { background: var(--warn-bg); color: var(--warn); }
.badge-paid { background: var(--ok-bg); color: var(--ok); }
.badge-cancelled { background: var(--bg-soft-2); color: var(--text-muted); text-decoration: line-through; }
.badge-pending { background: var(--bg-soft-2); color: var(--text-muted); }
.badge-failed { background: var(--danger-border); color: var(--danger-strong); }
.badge-manual { background: var(--warn-bg); color: var(--warn); }
.badge-current { background: var(--ok-bg); color: var(--ok); }
.badge-superseded { background: var(--warn-bg); color: var(--warn); }
.badge-deleted { background: var(--bg-soft-2); color: var(--text-muted); }
.badge-prereq { background: var(--bg-soft-2); color: var(--detour); }
.modal-overlay { position: fixed; inset: 0px; background: rgba(15, 20, 30, 0.4); display: flex; align-items: center; justify-content: center; z-index: 100; padding: 20px; }
.modal.modal-tall .modal-body { min-height: 540px; }
.form-field .checkbox-row { display: flex; align-items: center; gap: 8px; padding: 9px 11px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-soft); }
.form-field .checkbox-row input[type="checkbox"] { width: 16px; height: 16px; margin: 0px; }
.form-field .checkbox-row label { margin: 0px; font-size: var(--fs-base); font-weight: 500; color: var(--text); text-transform: none; letter-spacing: 0px; cursor: pointer; }
.picker-input-row { position: relative; }
.picker-result:hover, .picker-result.highlighted { background: var(--bg-soft); }
.picker-empty .btn { margin-top: 8px; }
.linked-items .linked-item:hover { background: var(--bg-soft); }
.linked-items .li-badges { display: flex; gap: 4px; flex-shrink: 0; }
.linked-items .li-role-select { font-size: var(--fs-base); padding: 4px 8px; }
@keyframes toast-in { 
  0% { transform: translateX(20px); opacity: 0; }
  100% { transform: translateX(0px); opacity: 1; }
}
.section-header .section-actions { display: flex; gap: 6px; }
.role-grouped { margin-top: 12px; }
.role-grouped .role-group { margin-bottom: 14px; }
.role-grouped .role-group-title { font-size: var(--fs-base); font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; padding: 4px 0px 6px; }
.text-right { text-align: right; }
.mt-3 { margin-top: 12px; }
.mt-4 { margin-top: 16px; }
.af_list { z-index: 9999 !important; }
.wq-legend { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; background: var(--bg); border: 1px solid var(--border-soft); border-radius: 10px; padding: 12px 16px; margin: 0px 0px 14px; font-size: var(--fs-base); color: var(--text-muted); }
.wq-node.goal { color: var(--ok-strong); font-weight: 600; }
.wq-line { flex: 0 0 26px; height: 1.5px; background: var(--border); display: inline-block; }
.wq-chips { display: flex; gap: 10px; flex-wrap: wrap; margin: 0px 0px 16px; }
.wq-chip { background: var(--bg); border: 1px solid var(--border-soft); border-radius: 8px; padding: 9px 14px; min-width: 96px; }
.wq-chip .n { font-size: var(--fs-h1); font-weight: 600; line-height: 1; }
.wq-chip.soa .n { color: var(--ok-strong); }
.wq-chip .l { font-size: var(--fs-base); color: var(--text-muted); margin-top: 3px; }
.wq-row { background: var(--bg); border: 1px solid var(--border-soft); border-radius: 10px; padding: 14px 16px; margin-bottom: 10px; display: grid; grid-template-columns: 1fr auto; gap: 14px; align-items: center; }
.wq-name { font-size: var(--fs-base); font-weight: 600; }
.wq-prog { font-size: var(--fs-base); color: var(--text-muted); margin-top: 3px; }
.wq-code { font-family: var(--font-mono); font-size: var(--fs-base); background: var(--bg-soft); border: 1px solid var(--border-soft); border-radius: 4px; padding: 1px 6px; margin-right: 6px; }
.wq-units { color: var(--text-faint); margin-left: 8px; font-size: var(--fs-base); }
.wq-mini { display: flex; align-items: center; margin-top: 9px; }
.wq-dot { width: 13px; height: 13px; border-radius: 50%; border: 1.5px solid var(--border); background: var(--bg); display: inline-block; }
.wq-dot.done { background: var(--ok-strong); border-color: var(--ok-strong); }
.wq-dot.byp { background: var(--detour); border-color: var(--detour); }
.wq-dot.cur { border-color: var(--info); box-shadow: 0 0 0 2px var(--bg-soft-2); }
.wq-mini-line { flex: 0 0 26px; height: 1.5px; background: var(--border); display: inline-block; margin: 0px 3px; }
.wq-act { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; min-width: 172px; }
.wq-next { font-size: var(--fs-base); color: var(--text-faint); text-transform: uppercase; letter-spacing: 0.05em; }
.wq-btn { font-family: inherit; font-size: var(--fs-base); font-weight: 500; border-radius: 7px; padding: 8px 15px; cursor: pointer; border: 1px solid transparent; white-space: nowrap; }
.wq-btn.primary { background: var(--info); color: var(--bg); }
.wq-btn.soa { background: var(--ok-strong); color: var(--bg); }
.wq-btn.bypass { background: none; color: var(--detour); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; font-size: var(--fs-base); padding: 2px 4px; }
.wq-btn.bypass:hover { text-decoration: underline; }
.wq-log { background: var(--bg); border: 1px solid var(--border-soft); border-radius: 10px; padding: 16px 20px; margin-top: 20px; }
.wq-log h2 { font-size: var(--fs-base); font-weight: 600; margin: 0px 0px 4px; }
.wq-log-sub { font-size: var(--fs-base); color: var(--text-muted); margin-bottom: 8px; }
.wq-log-item { display: flex; justify-content: space-between; gap: 10px; padding: 7px 0px; border-top: 1px solid var(--border-soft); font-size: var(--fs-base); }
.wq-log-time { font-size: var(--fs-base); color: var(--text-faint); white-space: nowrap; }
.wq-scrim { position: fixed; inset: 0px; background: rgba(15, 20, 30, 0.42); display: none; align-items: center; justify-content: center; z-index: 60; padding: 20px; }
.wq-scrim.show { display: flex; }
.wq-modal { background: var(--bg); border-radius: 12px; padding: 22px; width: 440px; max-width: 100%; box-shadow: rgba(10, 20, 40, 0.25) 0px 20px 50px; }
.wq-modal h3 { margin: 0px 0px 4px; font-size: var(--fs-h1); }
.wq-modal p { margin: 0px 0px 12px; font-size: var(--fs-base); color: var(--text-muted); }
.wq-modal textarea { width: 100%; border: 1px solid var(--border); border-radius: 8px; padding: 9px 11px; font-family: inherit; font-size: var(--fs-base); resize: vertical; min-height: 74px; box-sizing: border-box; }
.wq-modal-foot { display: flex; justify-content: flex-end; gap: 10px; margin-top: 14px; }
.wq-btn.ghost { background: none; border: 1px solid var(--border); color: var(--text-muted); }
#sidebarNav a.nav-detour { padding-left: 30px; }
#sidebarNav a.nav-detour::before { content: "↳ "; color: var(--text-faint); }
details.wq-band { margin-bottom: 12px; }
details.wq-band summary { cursor: pointer; font-size: var(--fs-base); font-weight: 600; padding: 10px 14px; background: var(--bg); border: 1px solid var(--border-soft); border-radius: 8px; user-select: none; list-style: none; }
details.wq-band summary::-webkit-details-marker { display: none; }
details.wq-band summary::before { content: "▸ "; color: var(--text-faint); }
details.wq-band[open] summary::before { content: "▾ "; }
details.wq-band[open] summary { margin-bottom: 10px; }
.wq-node.detour { color: var(--detour); }
details.wq-sub { margin: 0px 0px 8px 14px; }
details.wq-sub summary { cursor: pointer; font-size: var(--fs-base); font-weight: 500; padding: 8px 12px; background: var(--bg-soft); border: 1px solid var(--border-soft); border-radius: 7px; user-select: none; list-style: none; color: var(--text-muted); }
details.wq-sub summary::-webkit-details-marker { display: none; }
details.wq-sub summary::before { content: "▸"; color: var(--text-faint); }
details.wq-sub[open] summary::before { content: "▾"; }
details.wq-sub[open] summary { margin-bottom: 8px; }
.module-frame { display: block; width: 100%; height: calc(-64px + 100vh); border: 0px; background: var(--bg); }
#sidebarNav a[data-module] { cursor: pointer; }
.user-menu .partner-tag { display: inline-block; background: var(--halo-blue); color: white; font-size: var(--fs-base); font-weight: 600; padding: 2px 7px; border-radius: 10px; text-transform: uppercase; letter-spacing: 0.04em; margin-left: 6px; }
.sidebar-partner-label { padding: 12px 20px 6px; font-size: var(--fs-base); font-weight: 600; color: var(--text-faint); text-transform: uppercase; letter-spacing: 0.08em; }
.sidebar-partner-name { padding: 0px 20px 6px; font-size: var(--fs-base); font-weight: 600; color: var(--text); }
.sidebar-partner-code { padding: 0px 20px 14px; font-size: var(--fs-base); font-family: var(--font-mono); color: var(--text-muted); border-bottom: 1px solid var(--border); }
.badge-removed { background: var(--bg-soft-2); color: var(--text-muted); }
.partner-info-strip { background: var(--bg-soft); border: 1px solid var(--border-soft); border-radius: var(--radius); padding: 14px 18px; margin-bottom: 20px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.partner-info-strip dt { font-size: var(--fs-base); color: var(--text-muted); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 4px; }
.partner-info-strip dd { margin: 0px; font-size: var(--fs-base); color: var(--text); }
.partner-info-collapsed > summary { cursor: pointer; font-size: var(--fs-base); color: var(--text-muted); padding: 8px 0px; user-select: none; }
.partner-info-collapsed > summary:hover { color: var(--halo-blue); }
.dash-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; margin-top: 20px; }
.dash-tile { background: var(--bg); border: 1px solid var(--border-soft); border-radius: var(--radius); padding: 16px 18px; transition: border-color 0.12s, transform 0.12s; display: flex; flex-direction: column; gap: 4px; min-height: 120px; }
.dash-tile:hover { border-color: var(--halo-blue); transform: translateY(-1px); }
.dash-tile-warn { border-color: var(--warn); background: var(--warn-bg, var(--warn-bg)); }
.dash-tile-label { font-size: var(--fs-base); text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); font-weight: 600; }
.dash-tile-value { font-size: var(--fs-h1); font-weight: 700; line-height: 1.1; color: var(--text); }
.dash-tile-sub { font-size: var(--fs-base); color: var(--text-muted); flex: 1 1 0%; }
.dash-tile-action { margin-top: 8px; align-self: flex-start; background: transparent; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; padding: 0px; color: var(--halo-blue); font-size: var(--fs-base); font-weight: 600; cursor: pointer; font-family: inherit; }
.dash-tile-action:hover { text-decoration: underline; }
.dash-tile-placeholder { padding: 24px; text-align: center; color: var(--text-muted); font-size: var(--fs-base); grid-column: 1 / -1; }
.placeholder-card { background: var(--bg-soft); border: 1px dashed var(--border); border-radius: var(--radius); padding: 28px 24px; text-align: center; color: var(--text-muted); margin-top: 18px; }
.placeholder-card h3 { margin: 0px 0px 6px; font-size: var(--fs-base); font-weight: 600; color: var(--text); }
.placeholder-card p { margin: 0px; font-size: var(--fs-base); }
.form-field input, .form-field textarea { padding: 9px 11px; border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base); font-family: inherit; background: var(--bg); color: var(--text); }
.form-field input:focus, .form-field textarea:focus { outline: none; border-color: var(--halo-blue); box-shadow: rgba(0, 164, 220, 0.15) 0px 0px 0px 3px; }
.picker-result:hover { background: var(--bg-soft); }
.outcomes-grid-wrap { overflow-x: auto; margin-top: 6px; border: 1px solid var(--border-soft); border-radius: var(--radius); }
.outcomes-grid { width: 100%; border-collapse: collapse; font-size: var(--fs-base); background: var(--bg); }
.outcomes-grid thead th { background: var(--bg-soft); padding: 8px 10px; border-bottom: 1px solid var(--border-soft); font-size: var(--fs-base); text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); text-align: left; }
.outcomes-grid .outcomes-unit-th { text-align: center; }
.outcomes-grid tbody td { padding: 8px 10px; border-bottom: 1px solid var(--border-soft); }
.outcomes-cell { text-align: center; cursor: pointer; min-width: 60px; font-weight: 600; transition: background 0.1s; }
.outcomes-cell:hover { background: var(--bg-soft); }
.outcomes-c { background: var(--ok-bg); color: var(--ok-strong); }
.outcomes-c:hover { background: var(--ok-tint); }
.outcomes-nyc { background: var(--hrwl-bg); color: var(--danger-strong); }
.outcomes-nyc:hover { background: var(--danger-border); }
.outcomes-pending { color: var(--text-muted); }
.outcomes-other { background: var(--warn-bg); color: var(--warn-strong); }
.outcomes-locked { cursor: not-allowed; opacity: 0.5; }
.outcomes-locked:hover { background: transparent; }
.outcomes-cell sup { font-size: var(--fs-base); margin-left: 2px; opacity: 0.7; }
.app-shell.hidden { display: none; }
.sidebar-profile-label { padding: 12px 20px 6px; font-size: var(--fs-base); font-weight: 600; color: var(--text-faint); text-transform: uppercase; letter-spacing: 0.08em; }
.sidebar-profile-name { padding: 0px 20px 6px; font-size: var(--fs-base); font-weight: 600; color: var(--text); }
.sidebar-profile-meta { padding: 0px 20px 14px; font-size: var(--fs-base); color: var(--text-muted); border-bottom: 1px solid var(--border); }
.sidebar-nav a.hidden { display: none; }
[data-page-content].hidden { display: none; }
.card.hidden { display: none; }
.evidence-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; padding-bottom: 10px; border-bottom: 1px solid var(--border-soft); }
.evidence-header h2 { margin: 0px; font-size: var(--fs-h1); }
.evidence-hint { font-size: var(--fs-base); color: var(--text-muted); margin: 0px 0px 14px; }
.btn-add { padding: 7px 14px; border: 1px solid var(--halo-blue); background: var(--bg); color: var(--halo-blue-dark); border-radius: var(--radius); cursor: pointer; font-size: var(--fs-base); font-family: inherit; font-weight: 500; }
.btn-add:hover { background: var(--halo-blue-bg); }
.evidence-list { margin-top: 10px; }
.evidence-item { padding: 10px 12px; border: 1px solid var(--border-soft); border-radius: var(--radius); margin-bottom: 8px; display: grid; grid-template-columns: 1fr auto; gap: 6px 14px; align-items: center; }
.evidence-item .title { font-weight: 600; font-size: var(--fs-base); }
.evidence-item .meta { font-size: var(--fs-base); color: var(--text-muted); }
.evidence-item .notes { font-size: var(--fs-base); color: var(--danger); margin-top: 4px; }
.evidence-status { font-size: var(--fs-base); }
.status-pending { background: var(--warn-bg); color: var(--warn); padding: 3px 9px; border-radius: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.dash-section.attention { border-left-color: var(--warn-soft); }
.dash-section.warn { border-left-color: var(--warn); }
.dash-section.danger { border-left-color: var(--danger); }
.dash-section.info { border-left-color: var(--halo-blue); }
.dash-section-body .empty-quiet { color: var(--text-muted); font-size: var(--fs-base); padding: 4px 0px; }
.dash-section-body .dash-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0px; border-bottom: 1px solid var(--border-soft); }
.dash-section-body .dash-row:last-child { border-bottom: 0px; }
.dash-section-body .dash-row .left { min-width: 0px; }
.dash-section-body .dash-row .left .meta { font-size: var(--fs-base); color: var(--text-muted); }
.dash-section-body .dash-row a.action { font-size: var(--fs-base); color: var(--halo-blue); text-decoration: none; }
.dash-section-body .dash-row a.action:hover { text-decoration: underline; }
.count-pill.info { background: var(--halo-blue-bg); color: var(--halo-blue-dark); }
.count-pill.zero { background: var(--bg-soft-2); color: var(--text-muted); }
.status-verified { background: var(--ok-bg); color: var(--ok); padding: 3px 9px; border-radius: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.status-rejected { background: var(--danger-bg); color: var(--danger); padding: 3px 9px; border-radius: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.view-toggle-btn { background: var(--bg); border-top: 0px; border-bottom: 0px; border-left: 0px; border-image: none; border-right: 1px solid var(--border); padding: 6px 12px; font-size: var(--fs-base); color: var(--text-muted); cursor: pointer; }
.view-toggle-btn:last-child { border-right: 0px; }
.view-toggle-btn.active { background: var(--halo-blue); color: white; font-weight: 600; }
.delivery-section { border-bottom: 1px solid var(--border-soft); }
.delivery-section:last-child { border-bottom: 0px; }
.delivery-section-header { padding: 10px 14px; background: var(--bg); display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: var(--fs-base); }
.delivery-table { width: 100%; border-collapse: collapse; font-size: var(--fs-base); }
.delivery-table thead tr { background: var(--bg-soft-2); }
.delivery-table th { padding: 6px 12px; text-align: left; font-size: var(--fs-base); text-transform: uppercase; color: var(--text-muted); letter-spacing: 0.04em; }
.delivery-table td { padding: 10px 12px; border-top: 1px solid var(--border-soft); }
.btn-c-inline { background: var(--ok); color: white; border-color: var(--ok); font-weight: 700; min-width: 38px; margin-right: 4px; }
.btn-c-inline:hover:not(:disabled) { background: var(--ok-strong); border-color: var(--ok-strong); }
.btn-more { background: var(--bg); color: var(--text-muted); min-width: 32px; font-weight: 700; }
.btn-bulk { background: var(--halo-blue); color: white; border-color: var(--halo-blue); font-weight: 600; }
.btn-bulk:hover:not(:disabled) { background: var(--halo-blue-dark); border-color: var(--halo-blue-dark); }
.status-active { background: var(--ok-bg); color: var(--ok); padding: 3px 9px; border-radius: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.status-expired { background: var(--bg-soft-2); color: var(--text-muted); padding: 3px 9px; border-radius: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.status-revoked { background: var(--danger-bg); color: var(--danger); padding: 3px 9px; border-radius: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.dlearner { border-bottom: 1px solid var(--border-soft); }
.dlearner:last-child { border-bottom: 0px; }
.dlearner-header { display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: var(--bg-soft); flex-wrap: wrap; }
.dlearner-header.accordion { cursor: pointer; }
.accordion-caret { font-size: var(--fs-base); color: var(--text-muted); width: 12px; display: inline-block; }
.dlearner-name { font-weight: 600; flex: 1 1 200px; min-width: 0px; }
.dlearner-tally { font-weight: 400; font-size: var(--fs-base); color: var(--text-muted); margin-left: 8px; }
.learner-atts { display: inline-flex; gap: 14px; font-size: var(--fs-base); flex-wrap: wrap; }
.learner-atts label, .dunit-atts label { display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
.dlearner-actions { display: inline-flex; gap: 6px; }
.dlearner-err { color: var(--danger); font-size: var(--fs-base); padding: 2px 14px 8px; }
.dunits { padding: 2px 14px 12px; }
.dunits.collapsed { display: none; }
.dunit { display: flex; gap: 14px; align-items: flex-start; justify-content: space-between; padding: 10px 0px; border-top: 1px solid var(--border-soft); }
.dunit-main { min-width: 0px; flex: 1 1 auto; }
.dunit-code { font-family: var(--font-mono); font-weight: 600; font-size: var(--fs-base); }
.dunit-title { color: var(--text-muted); font-size: var(--fs-base); margin-left: 8px; }
.dunit-atts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; font-size: var(--fs-base); }
.adj-note { margin-top: 6px; }
.adj-note textarea { width: 100%; max-width: 420px; font-size: var(--fs-base); padding: 6px 8px; border: 1px solid var(--border); border-radius: var(--radius); font-family: inherit; resize: vertical; }
.dunit-outcome-cell { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex: 0 0 auto; }
select.unit-outcome { font-size: var(--fs-base); padding: 5px 8px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-soft-2); color: inherit; }
.modal-backdrop { position: fixed; inset: 0px; background: rgba(15, 20, 30, 0.4); display: flex; align-items: center; justify-content: center; z-index: 100; padding: 20px; }
.modal-backdrop.hidden { display: none; }
.modal-field { display: flex; flex-direction: column; margin-bottom: 12px; min-width: 0px; }
.modal-field label { font-size: var(--fs-base); font-weight: 500; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); margin-bottom: 4px; }
.modal-field input, .modal-field select, .modal-field textarea { padding: 9px 11px; border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base); font-family: inherit; background: var(--bg); width: 100%; max-width: 100%; box-sizing: border-box; }
.modal-field input[type="file"] { padding: 6px 0px; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; background: none; }
.modal-field .hint { font-size: var(--fs-base); color: var(--text-faint); margin-top: 3px; }
h2 { margin: 0px 0px 14px; font-size: var(--fs-h1); }
label { font-size: var(--fs-base); font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); margin-bottom: 5px; display: block; }
input[type="email"]:not(.field), input[type="password"]:not(.field), input[type="text"]:not(.field) { padding: 11px 13px; border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base); font-family: inherit; background: var(--bg); width: 100%; margin-bottom: 16px; }
input:focus { outline: none; border-color: var(--halo-blue); box-shadow: rgba(0, 164, 220, 0.15) 0px 0px 0px 3px; }
input[readonly] { background: var(--bg-soft); color: var(--text-muted); }
.message-box { padding: 14px 16px; border-radius: var(--radius); background: var(--halo-blue-bg); border: 1px solid var(--halo-blue); color: var(--text); font-size: var(--fs-base); margin-bottom: 18px; }
.ok-box { padding: 12px 14px; border-radius: var(--radius); background: var(--ok-bg); border: 1px solid var(--ok); color: var(--ok); font-size: var(--fs-base); margin-bottom: 16px; }
.user-strip { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; background: var(--bg); border: 1px solid var(--border-soft); border-radius: var(--radius); margin-bottom: 18px; }
.user-strip .who { font-size: var(--fs-base); }
.user-strip .who strong { color: var(--text); }
.btn-signout { background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; color: var(--text-muted); font-size: var(--fs-base); cursor: pointer; padding: 4px 8px; border-radius: var(--radius); }
.btn-signout:hover { color: var(--text); background: var(--bg-soft); }
.status-badge { display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: var(--fs-base); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.status-onboarding { background: var(--warn-bg); color: var(--warn); }
.status-inactive { background: var(--bg-soft-2); color: var(--text-muted); }
.footer { text-align: center; color: var(--text-faint); font-size: var(--fs-base); margin-top: 40px; }
.login-card input[type="email"], .login-card input[type="password"], .login-card input[type="text"] { font-size: var(--fs-base); padding: 10px 12px; margin-bottom: 14px; border-radius: 6px; }
.section { background: var(--bg); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); padding: 20px 24px; margin-bottom: 18px; border-left: 4px solid var(--border-soft); }
.section.attention { border-left-color: var(--halo-blue); }
.section.warn { border-left-color: var(--warn); }
.section.danger { border-left-color: var(--danger); }
.section.ok { border-left-color: var(--ok); }
.section-meta { font-size: var(--fs-base); color: var(--text-muted); }
.text-faint { color: var(--text-faint); }
.text-warn { color: var(--warn); font-weight: 600; }
.text-danger { color: var(--danger); font-weight: 600; }
.empty-row { text-align: center; padding: 16px; color: var(--text-faint); font-style: italic; font-size: var(--fs-base); }
.btn-sm:hover { background: var(--bg-soft); border-color: var(--halo-blue); color: var(--halo-blue-dark); }
.hrwl-flag { display: inline-block; padding: 1px 7px; background: var(--warn-bg); color: var(--warn); border-radius: 4px; font-size: var(--fs-base); font-weight: 600; text-transform: uppercase; }
.login-card button#btn_login:hover { background: var(--halo-blue-dark); }
.login-card button#btn_login:disabled { opacity: 0.6; cursor: default; }
.login-card .error-box { margin-bottom: 14px; }
.summary-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-bottom: 18px; }
.summary-card { background: var(--bg); border-radius: var(--radius); padding: 14px 16px; box-shadow: var(--shadow-md); border-left: 4px solid var(--border-soft); }
.summary-card.attention { border-left-color: var(--halo-blue); }
.summary-card.warn { border-left-color: var(--warn); }
.summary-card.danger { border-left-color: var(--danger); }
.summary-card .label { font-size: var(--fs-base); text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); font-weight: 600; margin-bottom: 4px; }
.summary-card .value { font-size: var(--fs-h1); font-weight: 700; color: var(--text); }
.summary-card .sublabel { font-size: var(--fs-base); color: var(--text-faint); margin-top: 2px; }
.subtab-nav { display: flex; gap: 4px; border-bottom: 1px solid var(--border); margin-bottom: 16px; }
.subtab-nav button { background: none; border-width: 0px 0px 2px; border-style: none none solid; border-color: currentcolor currentcolor transparent; border-image: none; padding: 10px 16px; font-size: var(--fs-base); color: var(--text-muted); cursor: pointer; }
.subtab-nav button.active { color: var(--halo-blue); border-bottom-color: var(--halo-blue); font-weight: 600; }
.subtab-pane { display: none; }
.subtab-pane.active { display: block; }
.modal.sm { max-width: 480px; }
.modal.md { max-width: 640px; }
.modal.lg { max-width: 880px; }
.modal-footer button { padding: 8px 14px; border-radius: var(--radius); border: 1px solid var(--border); background: var(--bg); cursor: pointer; font-size: var(--fs-base); }
.modal-footer button.primary, .modal-footer button.btn-primary { background: var(--halo-blue); border-color: var(--halo-blue); color: white; }
.modal-footer button.danger, .modal-footer button.btn-danger { background: var(--danger); border-color: var(--danger); color: white; }
.cb-sel { font-size: var(--fs-base); color: var(--text); margin-top: 6px; }
.cb-sel .cb-sel-code, .cb-sel strong { color: var(--halo-blue); font-weight: 600; }
.cb-sel em { color: var(--text-muted); font-style: normal; }
.cb-panel { border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; margin-top: 10px; }
.cb-panel h4 { font-size: var(--fs-base); font-weight: 600; text-transform: none; letter-spacing: 0px; margin: 12px 0px 6px; color: var(--text); }
.cb-panel h4:first-child { margin-top: 0px; }
.cb-panel .cb-note { font-weight: 400; color: var(--text-muted); font-size: var(--fs-base); }
.cb-panel h4 .cb-spec-title { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.cb-panel .cb-spec-all { width: auto; margin: 0px; flex: 0 0 auto; }
.cb-panel .cb-pkg { background: var(--bg-soft); border-radius: 6px; padding: 8px 10px; margin-bottom: 10px; }
.cb-panel .cb-pkg-head { font-weight: 600; font-size: var(--fs-base); color: var(--text); }
.cb-panel .cb-pkg-text { font-size: var(--fs-base); color: var(--text-muted); white-space: pre-wrap; margin-top: 4px; max-height: 140px; overflow: auto; line-height: 1.4; }
.cb-panel .cb-meter { margin-top: 6px; font-size: var(--fs-base); color: var(--text); }
.cb-panel .cb-meter-live { font-weight: 600; }
.cb-panel .cb-grp-live { font-weight: 600; font-size: var(--fs-base); margin-left: 6px; color: var(--text-muted); }
.cb-panel .cb-ok { color: rgb(26, 127, 55); }
.cb-panel .cb-under { color: var(--text-muted); }
.cb-panel .cb-over { color: var(--danger, #b3261e); }
.cb-panel .cb-wt { font-size: var(--fs-base); color: var(--text-muted); font-weight: 600; }
.cb-panel .cb-preq { display: inline-block; margin-left: 6px; font-size: var(--fs-base); color: rgb(154, 103, 0); }
.cb-panel .cb-pkg-more { margin-top: 4px; }
.cb-panel .cb-pkg-more summary { cursor: pointer; color: var(--text-muted); font-size: var(--fs-base); }
.cb-loc-new { border: 1px solid var(--border); border-radius: 6px; padding: 10px 12px; margin-top: 8px; background: var(--bg-soft); }
.cb-loc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cb-loc-grid > #cbl_name { grid-column: 1 / -1; }
.cb-loc-grid input, .cb-loc-grid select { width: 100%; box-sizing: border-box; }
.cb-loc-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
.cb-panel .cb-u { display: grid; grid-template-columns: 20px 104px 1fr; gap: 10px; align-items: start; padding: 4px 0px; margin: 0px; text-transform: none; letter-spacing: 0px; font-weight: 400; font-size: var(--fs-base); color: var(--text); cursor: pointer; text-align: left; }
.cb-panel .cb-u.cb-u-off { opacity: 0.55; cursor: default; }
.cb-panel .cb-u input { margin: 2px 0px 0px; width: auto; }
.cb-panel .cb-u .cb-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--fs-base); color: var(--text-muted); padding-top: 1px; white-space: nowrap; text-transform: none; }
.cb-panel .cb-u .cb-title { line-height: 1.35; text-transform: none; }
#toastHost { position: fixed; bottom: 24px; right: 24px; display: flex; flex-direction: column; gap: 8px; z-index: 200; }
.audit-records-filters { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 12px; padding: 12px; background: var(--bg-soft); border-radius: var(--radius); }
.audit-records-filters .form-field { margin: 0px; min-width: 140px; }
.audit-records-table { width: 100%; border-collapse: collapse; font-size: var(--fs-base); }
.audit-records-table th { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--border); background: var(--bg-soft); font-weight: 600; font-size: var(--fs-base); color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.04em; }
.audit-records-table td { padding: 10px; border-bottom: 1px solid var(--border-soft); vertical-align: top; }
.audit-records-table tr:hover { background: var(--bg-soft); }
.audit-records-table .badge { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: var(--fs-base); font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.audit-records-table .badge-open { background: var(--danger-bg); color: var(--danger); }
.audit-records-table .badge-acknowledged { background: var(--warn-bg); color: var(--warn); }
.audit-records-table .badge-resolved { background: var(--ok-bg); color: var(--ok); }
body { margin: 0px; background: var(--bg-soft); color: var(--text); font-size: var(--fs-base); line-height: 1.5; }
a { color: var(--halo-blue); }
.data-table th, .data-table td { text-align: left; padding: 9px 12px; border-bottom: 1px solid var(--border-soft); vertical-align: top; }
.page-sub { color: var(--text-muted); margin: 6px 0px 0px; }
.login-form button { width: 100%; padding: 11px 12px; background: var(--halo-blue); color: white; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: var(--radius); font-size: var(--fs-base); font-weight: 600; font-family: inherit; cursor: pointer; margin-top: 8px; transition: background 0.12s; }
.login-form button:hover { background: rgb(0, 145, 194); }
.login-form button:disabled { background: var(--text-faint); cursor: not-allowed; }
#modalHost:empty { display: none; }
.modal h3 { margin: 0px 0px 12px; }
.modal-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }
.filter-bar { display: flex; gap: 12px; flex-wrap: wrap; margin: 14px 0px 18px; align-items: end; }
.filter-field { display: flex; flex-direction: column; }
.filter-field label { font-size: var(--fs-base); font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); margin-bottom: 5px; }
.filter-field select, .filter-field input { padding: 8px 11px; border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base); font-family: inherit; background: var(--bg); min-width: 160px; }
.data-table tr.clickable:hover { background: var(--bg-soft); cursor: pointer; }
.status-invited { background: var(--halo-blue-bg); color: var(--halo-blue-dark); }
.status-removed { background: var(--danger-bg); color: var(--danger); }
.modal .form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; margin-bottom: 4px; }
.modal .form-field { display: flex; flex-direction: column; }
.modal .form-field.full { grid-column: 1 / -1; }
.modal label { font-size: var(--fs-base); font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); margin-bottom: 5px; }
.modal input, .modal select, .modal textarea { padding: 9px 11px; border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base); font-family: inherit; background: var(--bg); width: 100%; box-sizing: border-box; }
.modal textarea { resize: vertical; }
.invite-result { margin-top: 16px; padding: 14px; background: var(--ok-bg); border: 1px solid var(--ok); border-radius: var(--radius); }
.invite-result label { font-size: var(--fs-base); text-transform: uppercase; font-weight: 600; color: var(--ok); letter-spacing: 0.04em; display: block; margin-bottom: 6px; }
.invite-result .url-row { display: flex; gap: 8px; align-items: center; }
.invite-result input { flex: 1 1 0%; font-family: var(--font-mono); font-size: var(--fs-base); padding: 8px 10px; border: 1px solid var(--ok); border-radius: var(--radius); background: var(--bg); }
.module-footer { text-align: center; font-size: var(--fs-base); color: rgb(138, 147, 161); padding: 14px 0px 18px; }
.welcome .lead { margin: 0px 0px 4px; font-size: var(--fs-h1); }
.welcome .partner { font-weight: 600; }
.welcome .offering { background: var(--bg-soft); padding: 12px 14px; border-radius: var(--radius); margin: 12px 0px 0px; font-weight: 500; }
.section-header .hint { color: var(--text-muted); font-size: var(--fs-base); margin-top: 4px; }
.form-field .hint.survey { color: var(--halo-blue-dark); font-style: italic; }
.form-field .req { color: var(--danger); margin-left: 2px; }
.form-field input[type="text"], .form-field input[type="email"], .form-field input[type="tel"], .form-field input[type="number"], .form-field input[type="date"], .form-field select, .form-field textarea { padding: 9px 11px; border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base); font-family: inherit; background: var(--bg); transition: border-color 0.12s; width: 100%; }
.form-field input[readonly], .form-field input[disabled] { background: var(--bg-soft); color: var(--text-muted); }
.form-field input[type="file"] { padding: 6px; font-size: var(--fs-base); }
.checkbox-row { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0px; }
.checkbox-row input[type="checkbox"] { margin-top: 3px; flex-shrink: 0; }
.checkbox-row label { font-size: var(--fs-base); line-height: 1.4; cursor: pointer; }
.declaration { background: var(--bg-soft); padding: 14px 16px; border-radius: var(--radius); margin-bottom: 12px; }
.declaration .dec-title { font-weight: 600; margin-bottom: 6px; }
.declaration .dec-body { font-size: var(--fs-base); color: var(--text-muted); margin-bottom: 8px; }
.error-msg { background: var(--danger-bg); color: var(--danger); padding: 12px 14px; border-radius: var(--radius); margin-bottom: 16px; font-size: var(--fs-base); }
.warn-msg { background: var(--warn-bg); color: var(--warn); padding: 12px 14px; border-radius: var(--radius); margin-bottom: 16px; font-size: var(--fs-base); }
.actions { display: flex; justify-content: flex-end; gap: 10px; padding-top: 16px; border-top: 1px solid var(--border-soft); margin-top: 20px; }
.loading-overlay { position: fixed; inset: 0px; background: rgba(255, 255, 255, 0.7); display: flex; align-items: center; justify-content: center; z-index: 100; flex-direction: column; gap: 12px; }
.spinner { width: 40px; height: 40px; border-top-style: ; border-top-width: ; border-right-color: ; border-right-style: ; border-right-width: ; border-bottom-color: ; border-bottom-style: ; border-bottom-width: ; border-left-color: ; border-left-style: ; border-left-width: ; border-image-source: ; border-image-slice: ; border-image-width: ; border-image-outset: ; border-image-repeat: ; border-top-color: var(--halo-blue); border-radius: 50%; animation: 0.8s linear 0s infinite normal none running spin; }
@keyframes spin { 
  100% { transform: rotate(360deg); }
}
.typeahead { position: relative; }
.typeahead .ta-input { padding: 9px 11px; border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base); font-family: inherit; background: var(--bg); width: 100%; }
.typeahead .ta-input:focus { outline: none; border-color: var(--halo-blue); box-shadow: rgba(0, 164, 220, 0.15) 0px 0px 0px 3px; }
.typeahead .ta-dropdown { position: absolute; top: 100%; left: 0px; right: 0px; z-index: 10; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); margin-top: 2px; max-height: 240px; overflow-y: auto; box-shadow: rgba(0, 0, 0, 0.08) 0px 4px 12px; }
.typeahead .ta-item { padding: 8px 12px; cursor: pointer; font-size: var(--fs-base); border-bottom: 1px solid var(--border-soft); }
.typeahead .ta-item:last-child { border-bottom-width: medium; border-bottom-style: none; border-bottom-color: currentcolor; }
.typeahead .ta-item:hover, .typeahead .ta-item.active { background: var(--halo-blue-bg); color: var(--halo-blue-dark); }
.typeahead .ta-empty { padding: 12px; font-size: var(--fs-base); color: var(--text-muted); text-align: center; }
footer.foot { text-align: center; color: var(--text-faint); font-size: var(--fs-base); padding: 20px 0px; }
footer.foot a { color: var(--text-muted); text-decoration: none; }
footer.foot a:hover { color: var(--halo-blue); text-decoration: underline; }
.form-field input[type="text"], .form-field input[type="date"] { padding: 9px 11px; border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base); font-family: inherit; background: var(--bg); transition: border-color 0.12s; width: 100%; }
.form-field input:focus { outline: none; border-color: var(--halo-blue); box-shadow: rgba(0, 164, 220, 0.15) 0px 0px 0px 3px; }
.form-field input.text-mono { font-family: var(--font-mono); letter-spacing: 0.04em; text-transform: uppercase; }
.success-box { background: var(--ok-bg); border-left: 3px solid var(--ok); padding: 14px 16px; border-radius: var(--radius); margin: 12px 0px; font-size: var(--fs-base); color: var(--text); }
.success-box strong { color: var(--ok); }
.soa-list { display: flex; flex-direction: column; gap: 10px; }
.soa-card { background: var(--bg-soft); border: 1px solid var(--border-soft); border-radius: var(--radius); padding: 14px 16px; cursor: pointer; transition: 0.12s; }
.soa-card:hover { border-color: var(--halo-blue); background: var(--halo-blue-bg); }
.soa-card.selected { border-color: var(--halo-blue); background: var(--halo-blue-bg); box-shadow: 0 0 0 2px var(--halo-blue); }
.soa-card .parchment { font-family: var(--font-mono); font-weight: 700; font-size: var(--fs-base); color: var(--halo-blue-dark); }
.soa-card .title { font-weight: 500; margin-top: 2px; }
.soa-card .meta { font-size: var(--fs-base); color: var(--text-muted); margin-top: 4px; }
html, body { margin: 0px; padding: 0px; font-family: var(--font-body); color: var(--text); background: var(--bg); min-height: 100vh; }
.welcome { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px 20px; text-align: center; cursor: pointer; }
.welcome .logo { width: 100%; max-width: 320px; margin-bottom: 28px; }
.welcome .tagline { font-size: var(--fs-base); color: var(--text-muted); margin: 0px 0px 28px; }
.welcome .enter { font-size: var(--fs-base); font-weight: 600; color: var(--halo-blue); text-transform: uppercase; letter-spacing: 0.06em; }
.welcome .learner-note { font-size: var(--fs-base); color: var(--text-faint); margin-top: 40px; }
.splash { min-height: 100vh; display: flex; align-items: center; justify-content: center; color: var(--text-muted); font-size: var(--fs-base); }
.login-card button:hover { background: var(--halo-blue-dark); }
.login-card button:disabled { opacity: 0.6; cursor: default; }
.app-header .brand { display: flex; align-items: center; gap: 14px; }
.app-header .brand img { height: 30px; width: auto; display: block; }
.app-header .brand .console-title { font-size: var(--fs-h1); font-weight: 700; color: var(--halo-blue); text-transform: uppercase; letter-spacing: 0.07em; line-height: 1; }
.env-badge { font-size: var(--fs-base); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 3px 9px; border-radius: 4px; border: 1px solid; }
.env-badge.test { color: var(--warn); background: var(--warn-bg); }
.env-badge.live { color: var(--ok); background: var(--bg-soft); }
.env-switch { font-size: var(--fs-base); font-weight: 600; padding: 4px 10px; border-radius: var(--radius); border: 1px solid var(--border); background: var(--bg); color: var(--halo-blue); cursor: pointer; }
.env-switch:hover { background: var(--bg-soft); }
.env-choice { display: flex; gap: 12px; }
.env-choice button { flex: 1 1 0%; text-align: left; padding: 14px; border-radius: var(--radius); border: 1px solid var(--border); background: var(--bg); cursor: pointer; }
.env-choice button:hover:not(:disabled) { border-color: var(--halo-blue); }
.env-choice button:disabled { opacity: 0.45; cursor: default; }
.env-choice button b { display: block; font-size: var(--fs-base); margin-bottom: 4px; }
.env-choice button small { color: var(--text-muted); font-size: var(--fs-base); line-height: 1.4; }
.env-choice .live b { color: var(--warn); }
.env-warn { background: var(--warn-bg); border: 1px solid var(--warn-soft); color: var(--danger-deep); padding: 12px 14px; border-radius: var(--radius); font-size: var(--fs-base); line-height: 1.5; }
.app-header .user-menu .who { display: flex; flex-direction: row; align-items: center; gap: 8px; line-height: 1.25; }
.app-header .user-menu .who-name { font-weight: 700; font-size: var(--fs-base); color: var(--text); }
.app-header .user-menu .who-role { font-size: var(--fs-base); font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: var(--halo-blue); }
.app-header .user-menu { display: flex; align-items: center; gap: 14px; font-size: var(--fs-base); color: var(--text-muted); }
.app-header .user-menu button { padding: 7px 14px; background: var(--bg-soft); color: var(--text); border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base); cursor: pointer; }
.page-header p { margin: 0px; color: var(--text-muted); font-size: var(--fs-base); max-width: 640px; }
.btn-ghost { padding: 6px 12px; background: var(--bg); color: var(--halo-blue); border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base); cursor: pointer; }
table.data-table { width: 100%; border-collapse: collapse; }
.data-table tr:last-child td { border-bottom-width: medium; border-bottom-style: none; border-bottom-color: currentcolor; }
.pill { display: inline-block; font-size: var(--fs-base); font-weight: 600; padding: 2px 9px; border-radius: 20px; }
.pill.active { background: var(--ok-bg); color: var(--ok); }
.pill.suspended { background: var(--danger-bg); color: var(--danger); }
.pill.halo { background: rgba(0, 164, 220, 0.1); color: var(--halo-blue-dark); }
.pill.generic { background: var(--bg-soft-2); color: var(--text-muted); }
.pill.pending { background: var(--warn-bg); color: var(--warn); }
.mono { font-variant-numeric: tabular-nums; font-weight: 600; }
.modal-header .locked { margin-top: 6px; font-size: var(--fs-base); color: var(--text-muted); }
.modal-body label { display: block; font-size: var(--fs-base); font-weight: 500; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); margin: 0px 0px 4px; }
.modal-body .hint { font-size: var(--fs-base); color: var(--text-faint); margin-top: 3px; }
.modal-body input, .modal-body select, .modal-body textarea { width: 100%; padding: 9px 11px; margin: 0px 0px 14px; border: 1px solid var(--border); border-radius: 6px; font-size: var(--fs-base); }
.modal-body textarea { resize: vertical; font-family: inherit; }
.modal-body .row { display: flex; gap: 14px; }
.modal-body .row > div { flex: 1 1 0%; }
.modal-body .section-label { font-size: var(--fs-base); text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-faint); margin: 4px 0px 10px; border-top: 1px solid var(--border-soft); padding-top: 14px; }
.footer-version { text-align: center; color: var(--text-faint); font-size: var(--fs-base); padding: 24px; }
.modal-body .abn-row { display: flex; gap: 10px; align-items: center; margin: 0px 0px 6px; }
.modal-body .abn-row input { margin: 0px; flex: 1 1 0%; }
.modal-body .abn-row button { white-space: nowrap; }
.abn-status { font-size: var(--fs-base); min-height: 15px; margin: 0px 0px 12px; color: var(--text-muted); }
.abn-status.ok { color: var(--ok); }
.abn-status.err { color: var(--danger); }
.launcher-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.lp-h2 { font-size: var(--fs-base); text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); margin: 24px 0px 10px; font-weight: 700; }
.lp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.lp-frontdoor { grid-template-columns: minmax(260px, 460px); }
.lp-frontdoor .lp-card { border-color: var(--halo-blue); box-shadow: rgba(0, 164, 220, 0.15) 0px 2px 10px; }
.lp-branch { text-align: center; color: var(--text-faint, var(--text-faint)); font-size: var(--fs-base); letter-spacing: 0.04em; margin: 12px 0px 4px; }
.lp-card { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; box-shadow: var(--shadow, 0 1px 3px rgba(0,0,0,0.04)); }
.lp-card .lp-name { font-size: var(--fs-base); font-weight: 600; }
.lp-card .lp-desc { font-size: var(--fs-base); color: var(--text-muted); flex-grow: 1; min-height: 32px; }
.lp-card .lp-meta { display: flex; gap: 8px; flex-wrap: wrap; font-size: var(--fs-base); align-items: center; }
.lp-card .lp-role { background: var(--bg-soft-2, var(--bg-soft-2)); color: var(--text-muted); padding: 2px 8px; border-radius: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.lp-card .lp-ver { background: var(--ok-bg, var(--ok-bg)); color: var(--ok, var(--ok)); padding: 2px 8px; border-radius: 10px; font-family: var(--font-mono); font-weight: 600; }
.lp-card .lp-ver.warn { background: var(--warn-bg, var(--warn-bg)); color: var(--warn, var(--warn)); }
.lp-card .lp-ver.bad { background: var(--danger-bg, var(--danger-bg)); color: var(--danger, var(--danger)); }
.lp-grouprow td { font-weight: 600; color: var(--text-muted); background: var(--bg-soft); }
.lp-ver { font-family: var(--font-mono); }
td.lp-ok { color: var(--ok); font-weight: 600; }
td.lp-warn { color: var(--warn); }
td.lp-bad { color: var(--danger); font-weight: 600; }
.lp-card .lp-date { font-family: var(--font-mono); color: var(--text-faint, var(--text-faint)); }
.lp-card .lp-open { margin-top: 6px; align-self: flex-start; background: var(--halo-blue); color: var(--bg); text-decoration: none; padding: 6px 14px; border-radius: var(--radius); font-size: var(--fs-base); font-weight: 600; }
.lp-card .lp-open:hover { background: var(--halo-blue-dark, var(--halo-blue-dark)); }
.tenant-context { padding: 11px 28px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; border-bottom: 1px solid var(--border); }
.tenant-context.set { background: rgba(0, 164, 220, 0.08); border-bottom-color: rgba(0, 164, 220, 0.3); }
.tenant-context.none { background: var(--warn-bg); border-bottom-color: var(--warn-border); }
.tenant-context .tc-tag { font-size: var(--fs-base); font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-faint); }
.tenant-context .tc-name { font-weight: 700; font-size: var(--fs-base); color: var(--text); }
.tenant-context .tc-rto { font-variant-numeric: tabular-nums; font-size: var(--fs-base); color: var(--text-muted); }
.tenant-context.none .tc-name { color: var(--warn-mid); font-weight: 600; font-size: var(--fs-base); }
.tenant-context.none .tc-tag { color: var(--warn-mid); }
.tenant-context .tc-current { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.tenant-context .tc-switch { display: flex; align-items: center; gap: 8px; }
.tenant-context .tc-switch select { padding: 7px 10px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg); color: var(--text); font-size: var(--fs-base); }
.tenant-context .tc-switch .btn-primary:disabled { opacity: 0.45; cursor: default; }
.user-group { margin-bottom: 18px; }
.user-group:last-child { margin-bottom: 0px; }
.user-group-head { display: flex; align-items: baseline; gap: 10px; padding: 0px 2px 8px; }
.user-group-head .ug-name { font-size: var(--fs-base); font-weight: 700; }
.user-group-head .ug-rto { font-size: var(--fs-base); font-variant-numeric: tabular-nums; color: var(--text-muted); }
.user-group-head .ug-count { font-size: var(--fs-base); color: var(--text-faint); margin-left: auto; }
.user-group.platform .ug-name { color: var(--halo-blue-dark); }
.user-group.unplaced .ug-name { color: var(--warn-mid); }
.op-nav { display: flex; gap: 2px; padding: 0px 28px; background: var(--bg); border-bottom: 1px solid var(--border); overflow-x: auto; }
.op-nav button { appearance: none; background: none; border-width: medium medium 2px; border-style: none none solid; border-color: currentcolor currentcolor transparent; border-image: none; padding: 13px 14px; font-size: var(--fs-base); font-weight: 600; color: var(--text-muted); cursor: pointer; white-space: nowrap; }
.op-nav button:hover { color: var(--text); }
.op-nav button.active { color: var(--halo-blue); border-bottom-color: var(--halo-blue); }
.op-nav button .nav-count { display: inline-block; min-width: 18px; padding: 0px 5px; margin-left: 5px; font-size: var(--fs-base); font-weight: 700; line-height: 16px; text-align: center; border-radius: 9px; background: var(--bg-soft-2); color: var(--text-muted); vertical-align: middle; }
.op-nav button.active .nav-count { background: rgba(0, 164, 220, 0.14); color: var(--halo-blue-dark); }
.op-nav button .nav-count.alert { background: var(--danger-bg); color: var(--danger); }
.op-nav button .nav-count:empty { display: none; }
.build-card { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 14px 16px; margin-bottom: 12px; background: var(--bg); }
.build-card .bc-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.build-card .bc-title { font-size: var(--fs-base); font-weight: 700; }
.build-card .bc-when { margin-left: auto; font-size: var(--fs-base); color: var(--text-faint); }
.build-card .bc-summary { font-size: var(--fs-base); color: var(--text); margin: 2px 0px 8px; }
.build-card .bc-affects { font-size: var(--fs-base); color: var(--text-muted); }
.build-card .bc-affects b { color: var(--text); font-weight: 600; }
.bstatus { display: inline-block; font-size: var(--fs-base); font-weight: 600; padding: 2px 9px; border-radius: 20px; text-transform: capitalize; }
.bstatus.proposed { background: var(--bg-soft-2); color: var(--text-muted); }
.bstatus.scheduled { background: rgba(0, 164, 220, 0.1); color: var(--halo-blue-dark); }
.bstatus.in_progress { background: var(--warn-bg); color: var(--warn); }
.bstatus.blocked { background: var(--danger-bg); color: var(--danger); }
.bstatus.released { background: var(--ok-bg); color: var(--ok); }
.builds-group-h { font-size: var(--fs-base); text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-faint); margin: 18px 0px 10px; font-weight: 700; }
.builds-group-h:first-child { margin-top: 4px; }
.issue-card { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 13px 16px; margin-bottom: 10px; background: var(--bg); }
.issue-card.closed { opacity: 0.62; }
.issue-card .ic-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.issue-card .ic-summary { font-size: var(--fs-base); font-weight: 600; }
.issue-card .ic-when { margin-left: auto; font-size: var(--fs-base); color: var(--text-faint); white-space: nowrap; }
.issue-card .ic-meta { font-size: var(--fs-base); color: var(--text-muted); margin: 6px 0px 0px; }
.issue-card .ic-detail { font-size: var(--fs-base); margin: 8px 0px 0px; white-space: pre-wrap; }
.issue-card details { margin-top: 8px; }
.issue-card details summary { font-size: var(--fs-base); color: var(--halo-blue); cursor: pointer; }
.issue-card pre.ic-env { background: var(--bg-soft); border: 1px solid var(--border-soft); border-radius: 6px; padding: 10px; font-size: var(--fs-base); overflow-x: auto; margin: 8px 0px 0px; max-height: 240px; }
.issue-card .ic-actions { margin-top: 10px; display: flex; gap: 8px; }
.pill.cat { background: var(--bg-soft-2); color: var(--text-muted); }
.pill.st-open { background: var(--danger-bg); color: var(--danger); }
.pill.st-ack { background: var(--warn-bg); color: var(--warn); }
.pill.st-closed { background: var(--ok-bg); color: var(--ok); }
.note-thread { margin-top: 10px; display: flex; flex-direction: column; gap: 6px; }
.note-item { background: var(--bg-soft); border: 1px solid var(--border-soft); border-radius: 6px; padding: 7px 10px; }
.note-meta { display: block; font-size: var(--fs-base); color: var(--text-faint); margin-bottom: 2px; }
.note-text { font-size: var(--fs-base); white-space: pre-wrap; }
.note-empty { font-size: var(--fs-base); color: var(--text-faint); margin-top: 8px; }
.note-add { display: flex; gap: 8px; margin-top: 8px; }
.note-add .note-input { flex: 1 1 0%; padding: 7px 10px; border: 1px solid var(--border); border-radius: 6px; font-size: var(--fs-base); }
.reorder { display: inline-flex; flex-direction: column; gap: 2px; margin-right: 2px; }
.reorder .btn-ghost { padding: 0px 7px; line-height: 1.35; font-size: var(--fs-base); }
.reorder .btn-ghost[disabled] { opacity: 0.35; cursor: default; }
.bstatus-select, .prio-select { font-size: var(--fs-base); padding: 3px 7px; border: 1px solid var(--border); border-radius: 6px; background: var(--bg); color: var(--text); }
.issue-card.prio-urgent { border-left: 3px solid var(--danger); }
.issue-card.prio-high { border-left: 3px solid var(--warn); }
.prod-controls { display: flex; align-items: center; gap: 12px; margin: 0px 0px 14px; flex-wrap: wrap; }
.prod-search { flex: 1 1 0%; min-width: 220px; padding: 9px 12px; border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base); font-family: inherit; background: var(--bg); color: var(--text); }
.prod-toggle { font-size: var(--fs-base); color: var(--text-muted); display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.prod-count { font-size: var(--fs-base); color: var(--text-faint); margin: 0px 0px 10px; }
.change-card { border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 13px 16px; margin-bottom: 10px; background: var(--bg); }
.change-card.ms { border-left: 3px solid var(--halo-blue); }
.change-card .cc-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.change-card .cc-ref { font-size: var(--fs-base); font-weight: 700; color: var(--text-muted); font-variant-numeric: tabular-nums; }
.change-card .cc-area { font-size: var(--fs-base); font-weight: 600; padding: 2px 9px; border-radius: 20px; background: var(--bg-soft-2); color: var(--text-muted); }
.change-card .cc-ms { font-size: var(--fs-base); font-weight: 600; padding: 2px 9px; border-radius: 20px; background: rgba(0, 164, 220, 0.12); color: var(--halo-blue-dark); }
.change-card .cc-when { margin-left: auto; font-size: var(--fs-base); color: var(--text-faint); white-space: nowrap; }
.change-card .cc-request { font-size: var(--fs-base); font-weight: normal; margin: 8px 0px 0px; white-space: pre-line; }
.change-card .cc-change { font-size: var(--fs-base); color: var(--text); margin: 5px 0px 0px; white-space: pre-line; }
.change-card .cc-affected { font-size: var(--fs-base); color: var(--text-muted); margin: 8px 0px 0px; }
.change-card .cc-affected b { color: var(--text); font-weight: 600; }
.change-card .cc-depends { font-size: var(--fs-base); color: var(--text-muted); margin: 6px 0px 0px; }
.change-card .cc-depends b { color: var(--text); font-weight: 600; }
.change-card .cc-shortfall { font-size: var(--fs-base); margin: 8px 0px 0px; padding: 7px 10px; border-radius: 6px; background: var(--warn-bg); color: var(--warn-strong); border-left: 3px solid var(--warn); }
.change-card .cc-shortfall b { color: var(--warn-strong); font-weight: 600; }
.change-card .cc-edit { margin-left: 6px; }
.chg-ms { font-size: var(--fs-base); color: var(--text-muted); display: inline-flex; align-items: center; gap: 7px; margin-top: 4px; }
.section-intro { color: var(--text-muted); font-size: var(--fs-base); max-width: 640px; margin: 0px 0px 18px; }
.empty-scaffold { color: var(--text-muted); padding: 40px 20px; text-align: center; border: 1px dashed var(--border); border-radius: var(--radius-lg); background: var(--bg); font-size: var(--fs-base); }
.status-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 8px; vertical-align: middle; }
.db-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.db-chip { display: flex; flex-direction: column; gap: 2px; padding: 8px 14px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-soft, var(--bg-soft)); min-width: 96px; }
.db-chip .dc-k { font-size: var(--fs-base); text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-faint, var(--text-faint)); }
.db-chip .dc-v { font-size: var(--fs-h1); font-weight: 700; font-variant-numeric: tabular-nums; }
.status-dot.ok { background: var(--ok); }
.status-dot.bad { background: var(--danger); }
.status-dot.unknown { background: var(--warn-mid); }
.sys-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 4px; border-bottom: 1px solid var(--border-soft); }
.sys-row:last-child { border-bottom-width: medium; border-bottom-style: none; border-bottom-color: currentcolor; }
.sys-row .sys-name { font-weight: 600; }
.sys-row .sys-state { font-size: var(--fs-base); color: var(--text-muted); }
.imp-step { margin-bottom: 18px; }
.imp-drop { border: 2px dashed var(--border); border-radius: var(--radius-lg); padding: 26px; text-align: center; color: var(--text-muted); cursor: pointer; background: var(--bg); }
.imp-drop.drag { border-color: var(--halo-blue); background: rgba(0, 164, 220, 0.05); }
.imp-map-tbl { width: 100%; border-collapse: collapse; }
.imp-map-tbl th { text-align: left; font-size: var(--fs-base); text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-faint); padding: 8px 12px; border-bottom: 1px solid var(--border); background: var(--bg-soft); }
.imp-map-tbl td { padding: 6px 12px; border-bottom: 1px solid var(--border-soft); vertical-align: middle; }
.imp-grouprow td { background: var(--bg-soft); font-size: var(--fs-base); text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); font-weight: 700; }
.imp-map-tbl select, .imp-map-tbl input { width: 100%; padding: 6px 8px; margin: 0px; border: 1px solid var(--border); border-radius: 6px; font-size: var(--fs-base); }
.imp-pre { background: var(--bg-soft); border: 1px solid var(--border-soft); border-radius: 6px; padding: 12px; font-family: var(--font-mono); font-size: var(--fs-base); overflow: auto; max-height: 340px; white-space: pre-wrap; }
@media (max-width: 600px) {
  .form-grid { grid-template-columns: 1fr; }
  .card { padding: 18px; }
}
.nav-module-off { opacity: 0.55; cursor: default; }
.nav-module-flag { font-size: var(--fs-base); font-style: italic; color: var(--text-muted); margin-left: 6px; white-space: nowrap; }
.pricing-table th.grp { text-align: center; background: var(--bg-soft-2); border-left: 1px solid var(--border); }
.pricing-table tr.subhead th { font-size: var(--fs-base); font-weight: 600; color: var(--text-muted); background: var(--bg-soft); padding-top: 2px; padding-bottom: 2px; }
.pricing-table td { vertical-align: middle; }
.price-input { width: 84px; padding: 4px 6px; border: 1px solid var(--border); border-radius: var(--radius); font-family: var(--font-mono); font-size: var(--fs-base); text-align: right; background: var(--bg); transition: border-color 0.15s, background 0.4s; }
.price-input:focus { outline: none; border-color: var(--halo-blue); }
.price-input.needs { border-color: var(--warn); background: var(--warn-bg); }
.price-input.saved { background: var(--ok-bg); border-color: var(--ok); }
tr.row-unpriced td:first-child { box-shadow: inset 3px 0 0 var(--warn); }
.kind-badge { display: inline-block; font-size: var(--fs-base); text-transform: uppercase; letter-spacing: 0.04em; padding: 1px 6px; border-radius: 10px; background: var(--bg-soft-2); color: var(--text-muted); }
.ovr-add { margin-top: 12px; padding: 10px 12px; background: var(--bg-soft); border: 1px solid var(--border-soft); border-radius: var(--radius); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ovr-add select { padding: 5px 8px; border: 1px solid var(--border); border-radius: var(--radius); font-size: var(--fs-base); background: var(--bg); }
.data-table td.num, .data-table th.num { text-align: right; font-family: var(--font-mono); }
.modal.modal-wide { max-width: 1080px; }
.data-table.form-rows { table-layout: fixed; }
.data-table.form-rows thead th, .data-table.form-rows tbody td, .data-table.form-rows tfoot td { padding: 2px 5px; vertical-align: middle; }
.data-table.form-rows .col-qty { width: 50px; }
.data-table.form-rows .col-money { width: 84px; }
.data-table.form-rows .col-act { width: 34px; }
.data-table.form-rows td .field { width: 100%; margin: 0px; padding: 4px 6px; font-size: var(--fs-base); vertical-align: middle; }
.data-table.form-rows td.num .field { text-align: right; }
.modal-ver { font-size: var(--fs-sm); font-weight: 400; }
.tab-btn { padding: 8px 16px; background: none; border-width: medium medium 2px; border-style: none none solid; border-color: currentcolor currentcolor transparent; border-image: none; margin-bottom: -2px; cursor: pointer; font-style: inherit; font-variant: inherit; font-stretch: inherit; font-size: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-size-adjust: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-language-override: inherit; font-weight: 400; color: var(--text-muted); }
.tab-btn.active { border-bottom-color: var(--halo-blue); font-weight: 600; color: var(--halo-blue); }
.w150 { width: 150px; }
.logo-prev { max-height: 48px; max-width: 200px; border: 1px solid var(--line, #eee); border-radius: 4px; background: rgb(255, 255, 255); padding: 4px; }
.pick-ov { position: fixed; inset: 0px; background: rgba(0, 0, 0, 0.45); z-index: 9000; display: flex; align-items: center; justify-content: center; }
.pick-modal { background: var(--surface, #fff); color: inherit; border-radius: 12px; max-width: 560px; width: 92%; max-height: 80vh; display: flex; flex-direction: column; overflow: hidden; }
.pick-head { padding: 14px 16px; border-bottom: 1px solid var(--border); display: flex; gap: 10px; align-items: center; }
.pick-sub { color: var(--ink-soft); }
.pick-x { margin-left: auto; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; background: none; cursor: pointer; color: inherit; }
.pick-search-row { padding: 10px 16px; }
.pick-list { overflow: auto; }
.pick-empty { padding: 14px; color: var(--ink-soft); }
.pick-email { color: var(--ink-soft); flex: 1 1 0%; }
.enq-result-row { padding: 10px 12px; border-bottom: 1px solid var(--border-soft); cursor: pointer; display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.enq-result-row[data-full] { opacity: 0.7; }
.cat-color { color: var(--cat); }
.badge, .kind-badge, .status-pill { background: none; padding: 0px; border-radius: 0px; }
.audit-records-table .badge { background: none; padding: 0px; border-radius: 0px; }
.editor-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 7px; gap: 16px; flex-wrap: wrap; }
.editor-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; padding-top: 7px; border-top: 1px solid var(--border); gap: 16px; flex-wrap: wrap; }
.ed-total { font-size: var(--fs-base); }
.ed-total strong { font-family: var(--font-mono); font-size: var(--fs-h1); }
.batch-card { border: 1px solid var(--border); border-radius: var(--radius); padding: 8px 12px; margin-bottom: 8px; background: var(--bg); }
.batch-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 6px; flex-wrap: wrap; }
.batch-total { font-family: var(--font-mono); font-size: var(--fs-h1); font-weight: 600; }
.batch-lines { margin: 0px 0px 6px; }
.batch-lines th, .batch-lines td { font-size: var(--fs-base); }
.batch-foot { display: flex; justify-content: flex-end; }
.ramiel-testframe { position: fixed; inset: 0px; border: 3px solid var(--warn); pointer-events: none; z-index: 9998; }
.ramiel-testframe-label { position: fixed; top: 0px; left: 50%; transform: translateX(-50%); background: var(--warn); color: rgb(255, 255, 255); pointer-events: none; z-index: 9999; font: 600 11px / 1 -apple-system, system-ui, sans-serif; letter-spacing: 0.09em; text-transform: uppercase; padding: 5px 14px; border-radius: 0px 0px 7px 7px; box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 6px; white-space: nowrap; }
.ramiel-crewbtn { position: fixed; left: 16px; bottom: 16px; z-index: 9997; background: var(--halo-blue); color: rgb(255, 255, 255); border-width: medium; border-style: none; border-color: currentcolor; border-image: none; border-radius: 22px; cursor: pointer; font: 600 12px / 1 -apple-system, system-ui, sans-serif; padding: 10px 16px; box-shadow: rgba(0, 0, 0, 0.28) 0px 3px 10px; display: inline-flex; align-items: center; gap: 7px; }
.ramiel-crewbtn:hover { filter: brightness(1.08); }
.ramiel-crewbtn:active { transform: translateY(1px); }
:root { --fs-title: 14pt; --fs-head: 12pt; --fs-base: 10pt; --fs-foot: 8pt; --sp-y: 6pt; }
html, body { font-size: var(--fs-base); }
h1, h2 { font-size: var(--fs-head); margin-top: var(--sp-y); margin-bottom: var(--sp-y); }
h3, h4, h5, h6 { font-size: var(--fs-base); margin-top: var(--sp-y); margin-bottom: var(--sp-y); }
table, th, td, .data-table, .data-table th, .data-table td { font-size: var(--fs-base); }
.app-footer, footer, .footer, .sidebar-version, .login-version, .copyright { font-size: var(--fs-foot); }
.sidebar-brand, .brand-title, .portal-title, .login-title { font-size: var(--fs-title); }
.u-hide { display: none !important; }
.u-flex { display: flex; }
.u-iflex { display: inline-flex; }
.u-block { display: block; }
.u-ib { display: inline-block; }
.u-col { flex-direction: column; }
.u-wrap { flex-wrap: wrap; }
.u-aic { align-items: center; }
.u-aie { align-items: flex-end; }
.u-ais { align-items: flex-start; }
.u-jsb { justify-content: space-between; }
.u-jcc { justify-content: center; }
.u-jce { justify-content: flex-end; }
.u-tac { text-align: center; }
.u-tar { text-align: right; }
.u-tal { text-align: left; }
.u-ptr { cursor: pointer; }
.u-cap { text-transform: capitalize; }
.u-nowrap { white-space: nowrap; }
.u-ovh { overflow: hidden; }
.u-ova { overflow: auto; }
.u-fw4 { font-weight: 400; }
.u-fw5 { font-weight: 500; }
.u-fw6 { font-weight: 600; }
.u-fw7 { font-weight: 700; }
.u-soft { color: var(--ink-soft); }
.u-m0 { margin: 0px; }
.u-mt0 { margin-top: 0px; }
.u-mb0 { margin-bottom: 0px; }
.u-mt1 { margin-top: 6pt; }
.u-mt2 { margin-top: 12pt; }
.u-mt3 { margin-top: 18pt; }
.u-mt4 { margin-top: 24pt; }
.u-mt5 { margin-top: 30pt; }
.u-upper { text-transform: uppercase; }
.u-dim { opacity: 0.5; }
.text-sm { font-size: var(--fs-sm); }
.w130 { width: 130px; }
.w200 { width: 200px; }
.mw160 { max-width: 160px; }
.u-mb1 { margin-bottom: 6pt; }
.u-mb2 { margin-bottom: 12pt; }
.u-mb3 { margin-bottom: 18pt; }
.u-mb4 { margin-bottom: 24pt; }
.u-gap1 { gap: 6pt; }
.u-gap2 { gap: 12pt; }
.u-gapxs { gap: 3pt; }
.u-p0 { padding: 0px; }
.u-py0 { padding-top: 0px; padding-bottom: 0px; }
.u-px0 { padding-left: 0px; padding-right: 0px; }
.u-m0 { margin: 0px; }
.u-ml0 { margin-left: 0px; }
.u-mr0 { margin-right: 0px; }
.u-p1 { padding: 6pt; }
.u-py1 { padding-top: 6pt; padding-bottom: 6pt; }
.u-px1 { padding-left: 6pt; padding-right: 6pt; }
.u-m1 { margin: 6pt; }
.u-ml1 { margin-left: 6pt; }
.u-mr1 { margin-right: 6pt; }
.u-p2 { padding: 12pt; }
.u-py2 { padding-top: 12pt; padding-bottom: 12pt; }
.u-px2 { padding-left: 12pt; padding-right: 12pt; }
.u-m2 { margin: 12pt; }
.u-ml2 { margin-left: 12pt; }
.u-mr2 { margin-right: 12pt; }
.u-p3 { padding: 18pt; }
.u-py3 { padding-top: 18pt; padding-bottom: 18pt; }
.u-px3 { padding-left: 18pt; padding-right: 18pt; }
.u-m3 { margin: 18pt; }
.u-ml3 { margin-left: 18pt; }
.u-mr3 { margin-right: 18pt; }
.u-p4 { padding: 24pt; }
.u-py4 { padding-top: 24pt; padding-bottom: 24pt; }
.u-px4 { padding-left: 24pt; padding-right: 24pt; }
.u-m4 { margin: 24pt; }
.u-ml4 { margin-left: 24pt; }
.u-mr4 { margin-right: 24pt; }
.u-p5 { padding: 30pt; }
.u-py5 { padding-top: 30pt; padding-bottom: 30pt; }
.u-px5 { padding-left: 30pt; padding-right: 30pt; }
.u-m5 { margin: 30pt; }
.u-ml5 { margin-left: 30pt; }
.u-mr5 { margin-right: 30pt; }
.ig-1 { line-height: 1.5; }
.ig-2 { width: 100%; box-sizing: border-box; }
.ig-3 { margin: 0px 0px 10px; line-height: 1.5; }
.ig-4 { border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--bg-soft); }
.ig-5 { margin: 0px 0px 14px; }
.ig-6 { border: 1px solid var(--border); border-radius: var(--radius); max-height: 280px; background: var(--bg); }
.ig-7 { border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg); }
.ig-8 { text-transform: none; letter-spacing: 0px; }
.ig-9 { margin: 12px 0px 0px; }
.ig-10 { flex: 1 1 0%; }
.ig-11 { width: 64px; }
.ig-12 { border-bottom: 1px solid var(--border-soft); }
.ig-13 { width: 100%; }
.ig-14 { background: rgb(255, 255, 255); border-radius: 10px; max-width: 360px; width: 90%; box-shadow: rgba(0, 0, 0, 0.2) 0px 10px 40px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }
.ig-15 { margin: 0px 0px 4px; color: rgb(26, 39, 51); }
.ig-16 { margin: 0px 0px 14px; color: rgb(95, 103, 112); }
.ig-17 { width: 100%; border: 1px solid rgb(214, 219, 224); border-radius: 6px; box-sizing: border-box; }
.ig-18 { color: rgb(192, 57, 43); min-height: 16px; }
.ig-19 { width: 100%; background: rgb(0, 164, 220); color: rgb(255, 255, 255); border: 0px; border-radius: 6px; }
.ig-20 { border: 1px solid var(--border); border-radius: 8px; }
.ig-21 { max-width: 340px; }
.ig-22 { margin: 12px 0px 0px; color: var(--danger,#b3261e); }
.ig-23 { font-style: italic; }
.ig-24 { padding: 2px 0px; }
.ig-25 { background: rgb(138, 109, 59); color: rgb(255, 255, 255); }
.ig-26 { padding: 3px 0px; }
.ig-27 { width: 16px; height: 16px; flex: 0 0 16px; }
.ig-28 { margin: 8px 0px 2px; }
.ig-29 { margin: 14px 0px 4px; }
.ig-30 { max-height: 180px; border: 1px solid var(--border); border-radius: var(--radius); }
.ig-31 { max-height: 160px; border: 1px solid var(--border); border-radius: var(--radius); white-space: pre-wrap; }
.ig-32 { max-height: 240px; border: 1px solid var(--border); border-radius: var(--radius); }
.ig-33 { flex: 1 1 0%; min-width: 220px; border: 1px solid var(--border); border-radius: var(--radius); font-family: inherit; }
.ig-34 { margin: -4px 0px 10px; }
.jcl-row-dim { opacity: 0.55; }
.ig-36 { flex: 1 1 0%; min-width: 200px; }
.ig-37 { margin: 8px 0px; }
.ig-38 { margin: 4px 0px 0px; }
.ig-39 { text-transform: none; letter-spacing: 0px; color: var(--text); }
.ig-40 { opacity: 0.6; cursor: default; }
.ig-41 { opacity: 0.5; cursor: default; }
.ig-42 { text-transform: capitalize; }
.ig-43 { max-width: 560px; }
.ig-44 { margin: 6px 0px 0px; }
.ig-45 { border-bottom: 2px solid rgb(226, 232, 240); margin: 0px 0px 18px; }
.ig-46 { margin: 4px 0px 12px; }
.ig-47 { border-top: 1px solid var(--line,#eee); padding-top: 12px; }
.ig-48 { max-width: 620px; }
.ig-49 { background: rgb(107, 78, 168); }
.ig-50 { border: 1px solid rgb(0, 164, 220); border-radius: 10px; background: rgba(0, 164, 220, 0.06); }
.ig-51 { margin: 0px 0px 4px; }
.ig-52 { margin: 0px 0px 12px; color: var(--text-muted,#667); }
.ig-53 { background: rgb(232, 161, 58); color: rgb(255, 255, 255); text-decoration: none; }
.ig-54 { width: 100%; font-family: var(--font-mono,monospace); box-sizing: border-box; }
.ig-55 { margin: 10px 0px; }
.ig-56 { margin: 6px 0px 10px; }
.ig-57 { border-right-width: medium; border-bottom-width: medium; border-left-width: medium; border-right-style: none; border-bottom-style: none; border-left-style: none; border-right-color: currentcolor; border-bottom-color: currentcolor; border-left-color: currentcolor; border-image: none; border-top: 1px solid var(--border,#e3e6ea); margin: 16px 0px; }
.ig-58 { width: 28px; }
.ig-59 { color: var(--danger); }
.ig-60 { border-top: 1px solid var(--border-soft); padding-top: 12px; }
.ig-61 { background: var(--bg-soft); border-radius: var(--radius); border: 1px solid var(--border-soft); }
.ig-62 { padding-left: 26px; }
.ig-63 { margin: 0px 0px 12px; }
.ig-64 { background: var(--bg-soft); border-left: 3px solid var(--halo-blue); border-radius: 0 var(--radius) var(--radius) 0; }
.ig-65 { background: var(--bg-soft); border-radius: var(--radius); }
.ig-66 { max-height: 280px; border: 1px solid var(--border); border-radius: var(--radius); }
.ig-67 { border-bottom: 1px solid var(--border); }
.ig-68 { min-width: 120px; }
.ig-69 { margin: 0px 0px 8px; }
.ig-70 { background: var(--bg-soft); }
.ig-71 { border: 1px solid var(--border); border-radius: 8px; background: rgb(255, 255, 255); }
.ig-72 { flex: 1 1 0%; min-width: 240px; }
.ig-73 { width: 100%; margin: 6px 0px; }
.ig-74 { width: 32px; }
.ig-75 { margin: 5px 0px; }
.ig-76 { align-items: end; }
.ig-77 { flex: 1 1 0%; min-width: 220px; }
.ig-78 { padding: 4px 0px; }
.ig-79 { margin: 8px 0px 0px; }
.ig-80 { margin: 4px 0px 10px; }
.ig-81 { margin: 0px 0px 6px; }
.ig-82 { align-items: baseline; }
.ig-83 { width: 55%; }
.ig-84 { max-width: 700px; }
.ig-85 { width: 280px; }
.ig-86 { color: var(--ink-soft); }
.ig-87 { color: var(--danger,#b3261e); }
.ig-88 { align-items: baseline; padding: 3px 0px; }
.ig-89 { border: 1px solid var(--border); border-radius: var(--radius); }
.ig-90 { max-height: 240px; }
.ig-91 { padding: 0px; }
.ig-92 { color: var(--warn); }
.ig-93 { width: 100%; border-collapse: collapse; }
.ig-94 { padding: 7px 0px; width: 35%; }
.ig-95 { padding: 7px 0px; }
.ig-96 { max-width: 240px; }
.ig-97 { color: var(--ink-soft); flex: 1 1 0%; }
.ig-98 { background: var(--surface,#fff); color: inherit; border-radius: 12px; max-width: 560px; width: 92%; max-height: 80vh; display: flex; flex-direction: column; overflow: hidden; }
.ig-99 { padding: 14px 16px; border-bottom: 1px solid var(--border); display: flex; gap: 10px; align-items: center; }
.ig-100 { margin-left: auto; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; background: none; cursor: pointer; color: inherit; }
.ig-101 { padding: 10px 16px; }
.ig-102 { overflow: auto; }
.ig-103 { padding: 14px; color: var(--ink-soft); }
.ig-104 { background: var(--surface,#fff); color: inherit; border-radius: 12px; max-width: 620px; width: 92%; max-height: 80vh; }
.ig-105 { margin-left: auto; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; background: none; color: inherit; }
.ig-106 { max-width: 520px; margin: 64px auto; }
.ig-107 { max-width: 820px; }
.ig-108 { margin: -4px 0px 8px; }
.ig-109 { border: 1px dashed var(--border); border-radius: var(--radius); }
.ig-110 { margin: 4px 0px 8px; }
.ig-111 { background: var(--bg-soft-2); }
.ig-112 { width: 100%; border-collapse: collapse; margin: 14px 0px; border: 1px solid var(--border-soft); }
.ig-113 { text-transform: uppercase; }
.ig-114 { background: var(--bg-soft); border-radius: 6px; margin: 12px 0px; }
.ig-115 { background: var(--danger); color: white; border-color: var(--danger); }
.ig-116 { margin: 0px 0px 12px; background: var(--bg-soft); border-radius: 6px; line-height: 1.4; }
.ig-117 { margin-left: auto; opacity: 0.65; }
.ig-118 { background: rgb(227, 244, 231); color: rgb(45, 138, 62); border-radius: 6px; }
.ig-119 { margin: 22px 0px 10px; }
.ig-120 { padding: 16px 0px; }
.ig-121 { margin: 30px 0px 10px; }
.ig-122 { overflow-x: auto; }
.ig-123 { padding: 18px 0px; }
.ig-124 { margin: 8px 2px; }
.ig-125 { margin: 28px 0px 12px; }
.ig-126 { padding: 14px 0px; }
.ig-127 { margin: 34px 0px 4px; }
.ig-128 { margin: 34px 0px 12px; }
.ig-129 { padding: 10px 0px; }
.ig-130 { border-top: 1px solid var(--border); padding-top: 14px; }
.ig-131 { z-index: 60; }
.ig-132 { max-width: 440px; }
.ig-133 { border-top-width: medium; border-top-style: none; border-top-color: currentcolor; padding-top: 0px; }
.ig-134 { max-width: 520px; }
.ig-135 { max-width: 600px; }
.ig-136 { text-transform: none; }
.ig-137 { color: var(--text-faint); }
.ig-138 { padding: 16px 0px; color: var(--danger); }
.ig-139 { letter-spacing: 0.05em; text-transform: uppercase; }
.ig-140 { margin-left: auto; }
.ig-141 { background: var(--warn-bg); color: var(--warn); }
.ig-142 { margin: 10px 0px 0px; }
.ig-143 { width: 11px; height: 11px; border-top-style: ; border-top-width: ; border-right-color: ; border-right-style: ; border-right-width: ; border-bottom-color: ; border-bottom-style: ; border-bottom-width: ; border-left-color: ; border-left-style: ; border-left-width: ; border-image-source: ; border-image-slice: ; border-image-width: ; border-image-outset: ; border-image-repeat: ; border-top-color: var(--halo-blue); border-radius: 50%; animation: 0.8s linear 0s infinite normal none running spin; vertical-align: -1px; }
.ig-144 { color: var(--text-faint, #8b9197); }
.ig-145 { font-variant-numeric: tabular-nums; }
.ig-146 { border-top: 2px solid var(--border); }
.ig-147 { border-width: medium; border-style: none; border-color: currentcolor; border-image: none; font: inherit; }
.ig-148 { color: var(--danger,#b42318); }
.ig-149 { width: 34%; }
.ig-150 { width: 40%; }
.ig-151 { width: 26%; }
.ig-152 { color: var(--ok,#1a7f37); }
.ig-153 { color: var(--muted,#667085); }
.ig-154 { margin: 12px 0px; }
.ig-155 { width: 60px; }
.ig-156 { width: 90px; }
.ig-157 { padding: 6px 0px; }
.ig-158 { width: 110px; }
.ig-159 { width: 120px; }
.ig-160 { width: 200px; }
.ig-161 { width: 220px; }
.ig-162 { width: 150px; }
.ig-163 { max-width: 640px; }
.ig-164 { background: var(--halo-blue); color: white; border: 0px; border-radius: var(--radius); }
.ig-165 { width: 50px; }
.ig-166 { width: 80px; }
.ig-167 { border-radius: 4px; text-transform: uppercase; }
.ig-168 { margin: 6px 0px 12px; }
.ig-169 { color: var(--halo-blue); text-decoration: none; }
.ig-170 { padding: 8px 0px; width: 40%; }
.ig-171 { padding: 8px 0px; }
.ig-172 { border-top: 1px solid var(--border-soft); padding-top: 14px; }
.ig-173 { font-family: monospace; }
.ig-174 { padding-top: 6px; }
.ig-175 { margin: 0px 0px 10px; }
.ig-176 { color: var(--ok); }
.ig-177 { background: var(--bg-soft); border-bottom: 1px solid var(--border-soft); }
.ig-178 { position: fixed; bottom: 6px; right: 9px; font: 11px / 1.3 -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: rgb(139, 145, 151); background: rgba(255, 255, 255, 0.85); border-radius: 4px; z-index: 99999; pointer-events: none; }
.ig-179 { background: rgb(255, 244, 214); border: 1px solid rgb(224, 179, 74); border-radius: 8px; margin: 0px 0px 12px; }
.ig-180 { margin: 0px 0px 16px; line-height: 1.4; }
.ig-181 { color: var(--text-muted, #666); padding-left: 26px; }
.ig-182 { border: 1px solid var(--border); border-radius: var(--radius-lg); margin: 22px 0px 28px; background: var(--bg-soft); }
.ig-183 { background: rgb(0, 164, 220); color: rgb(255, 255, 255); border-radius: 8px; text-decoration: none; }
.ig-184 { background: rgb(255, 255, 255); color: rgb(0, 164, 220); border: 1.5px solid rgb(0, 164, 220); border-radius: 8px; text-decoration: none; }
.ig-185 { color: rgb(95, 103, 112); }
.ig-186 { font: inherit; border: 1px solid var(--border,#d8dde3); border-radius: 6px; }
.ig-187 { flex-direction: row; }
.ig-188 { width: auto; }
.ig-189 { padding-left: 18px; }
.ig-190 { background: rgb(255, 255, 255); color: var(--halo-blue,#00a4dc); }
.ig-191 { width: 100%; font: inherit; border: 1px solid var(--border,#d8dde3); border-radius: 6px; }
.mm-qual { margin: 0px 0px 14px; }
.mm-qual h4 { margin: 0px 0px 6px; font-size: 0.95rem; }
.mm-u { display: flex; align-items: baseline; gap: 8px; padding: 4px 6px; border-radius: 6px; cursor: pointer; }
.mm-u:hover { background: var(--surface-2,#f5f7f9); }
.mm-u input { margin: 0px; }
.mm-code { font-weight: 600; font-variant-numeric: tabular-nums; min-width: 110px; }
.mm-t { color: var(--text-2,#4a5560); }
.mm-note { color: var(--halo-blue,#00a4dc); font-size: 0.85em; }
.mm-dim { opacity: 0.5; cursor: not-allowed; }
.mm-dim:hover { background: none; }
.wq-ro { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.wq-rostat { color: var(--text-2,#4a5560); font-size: 0.9em; white-space: nowrap; }
.wq-open { padding: 8px 12px 4px; }

/* explicit Add-unit control (Phil 2026-09-30, no magic) */
.picker-input-row { display: flex; gap: 8px; align-items: center; }
.picker-input-row .picker-input { flex: 1 1 auto; width: auto; }
.picker-input-row .unit-add-btn { flex: 0 0 auto; white-space: nowrap; }
.picker-pick-note { color: var(--muted); font-size: var(--fs-sm); padding: 6px 11px 2px; }
