:root{--text:#1a1c1e;--text-soft:#6b7076;--text-faint:#9a9ea3;--text-label:#7a7f85;--bg:#ececeb;--surface:#fff;--surface-soft:#f4f5f6;--surface-subtle:#fafafb;--border:#dcdddf;--border-soft:#edeeef;--border-strong:#c6c9cc;--accent:#2f6bb0;--accent-hover:#1f4d84;--accent-tint:#eaf0f7;--accent-tint-strong:#dbe7f4;--amber:#8a6d1f;--green:#3f6b45;--rust:#9c3b32;--rust-border:#c9908a;--rust-tint:#fbf6f5;--danger:#9c3b32;--font-sans:"IBM Plex Sans", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font:400 13px/1.5 var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}h1{font:600 15px/1.1 var(--font-sans);color:var(--text);margin:0 0 20px}h2{font:600 13px var(--font-sans);color:var(--text);margin:0}label{font:500 10px var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-label);margin-bottom:6px;display:block}input,select{font:400 13px var(--font-sans);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:0;height:30px;padding:0 9px}input:focus,select:focus{outline:2px solid var(--accent-tint);border-color:var(--accent)}button{font:500 12px var(--font-sans);cursor:pointer;color:#fff;background:var(--accent);border:1px solid var(--accent);border-radius:0;height:30px;padding:0 14px}button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button:disabled{color:#a1a5a9;border-color:var(--border);cursor:default;background:#e9eaeb}.login-page{justify-content:center;align-items:center;min-height:100svh;padding:16px;display:flex}.login-form{background:var(--surface);border:1px solid var(--border);flex-direction:column;gap:4px;width:100%;max-width:340px;padding:24px 22px;display:flex}.login-form h1{text-align:center;margin-bottom:20px}.login-form label{margin-top:4px}.login-form input{width:100%;margin-bottom:14px}.login-error{color:var(--danger);font:400 12px var(--font-sans);margin:4px 0 12px}.login-secondary-link{color:var(--text-soft);font:400 12px var(--font-sans);text-align:center;margin-top:14px}.loading-state{text-align:center;color:var(--text-soft);font:400 13px var(--font-sans);padding:40px}.customers-page,.dashboard-page,.roles-page,.cert-detail-page{max-width:1120px;margin:0;padding:20px 28px 28px}.customers-page header,.dashboard-page header,.roles-page header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:14px;display:flex}.customers-page header>div,.dashboard-page header>div,.roles-page header>div{align-items:center;gap:10px;display:flex}.customers-page header a,.roles-page header a{color:var(--text-soft);font:400 12px var(--font-sans)}.dashboard-nav{gap:16px;margin-bottom:20px;display:flex}.dashboard-nav a{color:var(--accent);font:500 13px var(--font-sans)}.empty-state{color:var(--text-soft);font:400 13px var(--font-sans);padding:32px 0}.table-scroll{width:100%;overflow-x:auto}.customers-table,.permissions-table{border-collapse:collapse;table-layout:fixed;border:1px solid var(--border);width:100%;min-width:560px}.customers-table th,.permissions-table th{text-align:left;font:500 10px var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-label);background:var(--surface-soft);border-bottom:1px solid var(--border);padding:6px 10px}.customers-table td,.permissions-table td{font:400 13px var(--font-sans);border-bottom:1px solid var(--border-soft);overflow-wrap:break-word;padding:8px 10px}.customers-table tbody tr:last-child td,.permissions-table tbody tr:last-child td{border-bottom:none}.customers-table .row-actions-cell{white-space:nowrap;width:108px}.permissions-table th,.permissions-table td{text-align:center}.permissions-table th:first-child,.permissions-table td:first-child{text-align:left}.permission-name{font:400 13px var(--font-sans)}.modal-backdrop{z-index:100;background:#1a1c1e52;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-panel{background:var(--surface);border:1px solid #b9bcbf;width:100%;max-width:460px;max-height:calc(100svh - 32px);padding:0;overflow-y:auto;box-shadow:0 8px 24px #0000002e}.modal-header{justify-content:space-between;align-items:center;padding:16px 20px 14px;display:flex}.modal-header h2{font:600 14px var(--font-sans);align-items:center;gap:9px;display:flex}.modal-marker{flex:none;width:6px;height:6px}.modal-marker-amber{background:var(--amber)}.modal-close-button{color:var(--text-soft);background:0 0;border:none;height:auto;padding:0 4px;font-size:1.4rem;line-height:1}.modal-close-button:hover{color:var(--text);background:0 0}.modal-panel>p,.modal-panel>table,.modal-panel .customer-form{width:calc(100% - 40px);margin:0 20px 14px}.modal-panel .customer-form{border:none;max-width:none;padding:0}.modal-panel .form-actions{border-top:1px solid var(--border);background:var(--surface-subtle);justify-content:flex-end;width:100%;margin:14px 0 0;padding:11px 20px}.column-sort-button{color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;white-space:nowrap;background:0 0;border:none;height:auto;padding:0}.column-sort-button:hover{color:var(--accent);background:0 0}.customers-search{flex-direction:column;gap:4px;max-width:420px;margin-bottom:16px;display:flex}.customers-search input{width:100%}.row-actions{gap:10px;display:flex}.row-actions .link-button{white-space:nowrap}.link-button{color:var(--accent);font:400 12px var(--font-sans);background:0 0;border:none;height:auto;padding:0;text-decoration:underline}.link-button:hover{color:var(--accent-hover);background:0 0}.danger-link{color:var(--danger)}.self-role-note{font:400 11px var(--font-sans);color:var(--text-soft);margin-left:6px}.customer-form{background:var(--surface);border:1px solid var(--border);flex-direction:column;max-width:420px;margin-bottom:24px;padding:20px;display:flex}.customer-form input,.customer-form select,.customer-form textarea{width:100%;margin-bottom:14px}.customer-form textarea{font:400 13px var(--font-sans);color:inherit;background:var(--surface);border:1px solid var(--border-strong);resize:vertical;padding:8px 9px}.form-error{color:var(--danger);font:400 12px var(--font-sans);margin:0 0 12px}.form-actions{gap:8px;display:flex}.secondary-button{background:var(--surface);border:1px solid var(--border-strong);color:var(--text)}.secondary-button:hover{background:var(--surface-soft);border-color:var(--border-strong)}@media (width<=480px){.customers-page,.dashboard-page,.roles-page,.cert-detail-page{padding:16px}.form-actions{flex-direction:column}.form-actions button{width:100%}.customers-table .hide-on-narrow{display:none}.customers-table{min-width:0}}.customer-search-results{border:1px solid var(--border-strong);background:var(--surface);border-top:none;max-height:220px;margin:-14px 0 14px;padding:0;list-style:none;overflow-y:auto;box-shadow:0 2px 4px #0000000f}.customer-search-results li{border-bottom:1px solid var(--border-soft)}.customer-search-results li:last-child{border-bottom:none}.customer-search-results .link-button{text-align:left;width:100%;font:400 13px var(--font-sans);padding:8px 10px;text-decoration:none;display:block}.customer-search-results .link-button:hover{background:var(--accent-tint);color:var(--text)}.app-shell{background:var(--surface);min-height:100svh;display:flex}.app-shell-nav{background:var(--surface-soft);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:212px;display:flex}.app-shell-brand{border-bottom:1px solid var(--border);flex-direction:column;gap:2px;padding:16px 16px 14px;display:flex}.app-shell-brand strong{font:600 13px/1.2 var(--font-sans);color:var(--text)}.app-shell-brand span{font:400 10px var(--font-mono);color:var(--text-label)}.app-shell-nav-section{flex-direction:column;padding:0 8px;display:flex}.app-shell-nav-label{font:500 10px var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);padding:14px 8px 4px}.app-shell-nav-section:first-of-type .app-shell-nav-label{padding-top:6px}.app-shell-nav-section a,.app-shell-nav-disabled{height:30px;font:400 12px var(--font-sans);color:#3c4045;align-items:center;padding:0 8px;text-decoration:none;display:flex}.app-shell-nav-section a:hover{background:var(--surface);font-weight:600}.app-shell-nav-section a.active{background:var(--surface);box-shadow:inset 2px 0 0 var(--accent);font-weight:600}.app-shell-nav-disabled{color:var(--text-faint);cursor:not-allowed}.app-shell-user{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding:12px 14px;display:flex}.app-shell-user>div{flex-direction:column;display:flex}.app-shell-user>div strong{font:500 12px var(--font-sans);color:var(--text)}.app-shell-user>div span{color:var(--text-label);font:400 10px var(--font-mono)}.app-shell-user .secondary-button{height:26px;padding:0 10px;font-size:11px}.app-shell-content{background:var(--surface);flex:1;min-width:0}@media (width<=720px){.app-shell{flex-direction:column}.app-shell-nav{flex-flow:wrap;align-items:center;gap:4px 12px;width:100%;padding:10px 14px}.app-shell-brand{border-bottom:none;padding:0}.app-shell-nav-section{flex-flow:wrap;padding:0}.app-shell-nav-label{display:none}.app-shell-nav-section:first-of-type .app-shell-nav-label{padding-top:0}.app-shell-user{border-top:none;margin-top:0;margin-left:auto;padding:0}}.status-pill{font:500 10px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border:1px solid;padding:2px 7px;display:inline-block}.status-pill.status-draft{border-color:var(--border-strong);background:var(--surface-soft);color:var(--text-soft)}.status-pill.status-pending,.status-pill.status-published{color:var(--green);background:#eef3ef;border-color:#b3c2b5}.status-pill.status-pulled{border-color:var(--rust-border);color:var(--rust);background:#fbf1f0}tr.status-row-pulled{background:var(--rust-tint)}.customers-page header input[type=search]{width:230px}.cert-tabs{border-bottom:1px solid var(--border);align-items:center;gap:18px;height:38px;margin-bottom:16px;display:flex}.cert-tabs button{color:var(--text-soft);height:100%;font:400 11px var(--font-sans);background:0 0;border:none;border-radius:0;margin:0;padding:0;box-shadow:inset 0 -2px #0000}.cert-tabs button:hover{color:var(--text);background:0 0}.cert-tabs button.active{color:var(--text);box-shadow:inset 0 -2px 0 var(--accent);font-weight:500}.cert-tabs button:disabled{color:var(--text-faint);cursor:not-allowed}.cert-list-link{color:var(--accent);font:400 12px var(--font-mono);text-decoration:none}.cert-list-link:hover{text-decoration:underline}.cert-detail-breadcrumb{color:var(--text-faint);font:400 10px var(--font-mono);margin-bottom:4px}.cert-detail-breadcrumb a{color:var(--text-faint)}.cert-detail-header{border-bottom:1px solid var(--border);flex-direction:column;gap:12px;margin-bottom:16px;padding-bottom:16px;display:flex}.cert-detail-header-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.cert-detail-title{min-width:0}.cert-detail-header h1{align-items:center;gap:10px;margin-bottom:0;display:flex}.cert-detail-meta{border-top:1px solid var(--border-soft);flex-wrap:wrap;gap:26px;margin:0;padding-top:9px;display:flex}.cert-detail-meta div{min-width:110px}.cert-detail-meta dt{font:500 10px var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);margin-bottom:2px}.cert-detail-meta dd{font:400 13px var(--font-mono);color:var(--text);margin:0}.cert-detail-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.cert-detail-actions .link-button{align-items:center;height:30px;padding:0 10px;display:inline-flex}.cert-detail-readonly-note{color:var(--text-soft);background:var(--surface-soft);border:1px solid var(--border);font:400 13px var(--font-sans);margin-bottom:12px;padding:10px 14px}.cert-detail-autosave{color:#3c4045;font:400 12px var(--font-sans);border:1px solid var(--border);background:var(--surface-soft);align-items:center;gap:9px;width:fit-content;margin-bottom:20px;padding:8px 11px;display:flex}.cert-detail-autosave:before{content:"";background:var(--green);border-radius:50%;flex:none;width:5px;height:5px}.reading-section{margin-bottom:28px}.reading-section-header{background:var(--surface-soft);border:1px solid var(--border-strong);border-bottom:none;justify-content:space-between;align-items:baseline;gap:12px;height:34px;padding:0 12px;display:flex}.reading-section-header h2{align-items:baseline;gap:8px;display:flex}.reading-section-header-right{align-items:baseline;gap:14px;display:flex}.reading-section-header-right .link-button{font-size:11px}.section-summary{font:500 11px var(--font-mono);color:var(--text-soft)}.section-summary-fail{color:var(--rust)}.section-summary-review{color:var(--amber)}.section-summary-pass{color:var(--green)}.reading-table{border:1px solid var(--border-strong);table-layout:auto;border-top:none}.reading-table th{background:var(--surface-subtle)}.reading-table th:last-child{color:var(--text-label)}.reading-table th:not(:first-child):not(:last-child),.reading-table td:not(:first-child):not(:last-child){text-align:right}th.reading-table-actual{color:var(--amber)}th.reading-table-reading{color:var(--accent)}.reading-table input[type=text]{text-align:right;width:100%;height:26px;margin:0}tr.reading-row-fail{background:var(--rust-tint)}.reading-table td.reading-pt-fail{background:#f7f0ef}.reading-input-fail{color:var(--rust);font-weight:500;border-color:var(--rust-border)!important}.pass-fail-pass{color:var(--green);font:500 11px var(--font-sans)}.pass-fail-fail{color:var(--rust);font:500 11px var(--font-sans);align-items:center;gap:7px;display:inline-flex}.pass-fail-delta{color:var(--amber);font:400 10px var(--font-mono)}.pass-fail-review{color:var(--amber);font:400 11px var(--font-sans)}.pass-fail-pending{color:var(--text-soft)}@media (width<=720px){.cert-detail-header-top{flex-direction:column}.cert-detail-actions{width:100%}.cert-detail-actions button{flex:1}}
