: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;min-width:0;margin-right:auto;display:flex}.app-shell-gear{width:26px;height:26px;color:var(--text-label);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.app-shell-gear:hover,.app-shell-gear.active{color:var(--text);background:var(--surface)}.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{white-space:nowrap;flex-shrink:0;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-published{color:var(--green);background:#eef3ef;border-color:#b3c2b5}.status-pill.status-pending{color:var(--amber);background:#fbf6e6;border-color:#d9c78f}.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-statusline{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px;display:flex}.cert-detail-autosave,.cert-detail-locked{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:0;padding:8px 11px;display:flex}.cert-detail-locked:before{content:"";background:var(--text-faint);border-radius:50%;flex:none;width:5px;height:5px}.cert-history-button{height:32px;padding:0 14px;font-size:12px}.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)}.reading-block+.reading-block{margin-top:16px}.reading-block-title{font:600 12px var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--text-soft);margin:0;padding:8px 12px 0}.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:44px;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}.reading-table{border:none}.reading-table thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.reading-table,.reading-table tbody,.reading-table tr,.reading-table td{width:100%;display:block}.reading-table tr{border:1px solid var(--border-strong);margin-bottom:12px;padding:4px 0}.reading-table td{text-align:right;border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.reading-table tr:last-child td:last-child,.reading-table td:last-child{border-bottom:none}.reading-table td:before{content:attr(data-label);font:500 10px var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--text-label);text-align:left;flex:none}.reading-table td.reading-pt-fail{background:0 0}.reading-table input[type=text]{max-width:160px}}.cert-not-issued{color:#8a8f98;font-style:italic}.signature-page{max-width:36rem}.signature-help{color:#5b6270;line-height:1.5}.signature-current{margin:1.25rem 0}.signature-img{background:#fff;border:1px solid #d8dbe0;max-width:20rem;max-height:8rem;padding:.5rem}.signature-saved{color:#1f6b3a}.preview-link{height:30px;font:500 12px var(--font-sans);cursor:pointer;align-items:center;padding:0 14px;text-decoration:none;display:inline-flex}.cert-preview-page{background:#e9ebee;min-height:100vh;padding:1rem 1rem 3rem}.cert-preview-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;max-width:8.5in;margin:0 auto .75rem;display:flex}.cert-preview-banner{color:#6b4e00;background:#fff4d6;border:1px solid #e3c36a;padding:.4rem .7rem;font-size:.85rem}@media print{.no-print{display:none!important}.cert-preview-page{background:#fff;min-height:0;padding:0}}.cert-details-form{flex-wrap:wrap;align-items:flex-end;gap:1rem 1.5rem;margin:.75rem 0 1rem;display:flex}.cert-details-field{flex-direction:column;gap:.25rem;min-width:12rem;display:flex}.cert-details-field label{color:#5b6270;font-size:.8rem}.cert-details-env{color:#5b6270;flex-basis:100%;margin:0;font-size:.85rem}.signature-required{background:#fff8e1;border:1px solid #e3c36a;margin:0 0 1rem;padding:.75rem 1rem}.signature-required p{margin:0 0 .5rem}.settings-page{max-width:40rem}.settings-help{color:#5b6270;line-height:1.5}.profile-page{max-width:40rem}.profile-section{margin:0 0 1.75rem}.profile-readonly{gap:.5rem;margin:0 0 .5rem;display:grid}.profile-readonly dt{color:#5b6270;font-size:.8rem}.profile-readonly dd{margin:0;font-weight:500}.cert-details-serial{flex-direction:column;align-items:flex-start;gap:.25rem;display:flex}.cert-status{font:500 11px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--text-soft);align-items:center;gap:6px;display:inline-flex}.cert-status:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.cert-status-draft{color:var(--text-soft)}.cert-status-pending{color:var(--amber)}.cert-status-published{color:var(--green)}.cert-status-pulled{color:var(--rust)}.cert-detail-actions .secondary-button{color:var(--text);border-color:#8f959b}.cert-detail-actions .secondary-button:hover{border-color:var(--text-soft);background:var(--surface-soft)}.signature-missing-banner{border:1px solid var(--rust-border);border-left:4px solid var(--rust);color:var(--rust);background:#fbf1f0;margin:0 0 14px;padding:10px 14px;line-height:1.45}.signature-missing-banner a{color:var(--rust);font-weight:600}.status-needs-signature{font:500 10px var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--rust);margin-top:3px;display:block}.cert-mine{color:var(--text-soft);font-size:.85em}.cert-action-error{border:1px solid var(--rust-border);background:#fbf1f0;margin:0 0 12px;padding:8px 12px}.cert-subtabs{gap:6px;margin:-4px 0 14px;display:flex}.cert-subtabs button{background:var(--surface);color:var(--text-soft);border:1px solid var(--border-strong);height:26px;padding:0 12px;font-size:11px}.cert-subtabs button:hover{background:var(--surface-soft);border-color:var(--border-strong)}.cert-subtabs button.active{background:var(--accent-tint);border-color:var(--accent);color:var(--accent-hover);font-weight:600}.staff-row-inactive td{color:var(--text-faint)}.staff-deactivated{color:var(--rust);font:500 10px var(--font-mono);letter-spacing:.06em;text-transform:uppercase}.customers-table td .link-button{margin-left:8px}.cert-history{border-top:1px solid var(--border);margin:4px 0 8px;padding-top:12px}.cert-history-title{font:500 11px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-label);margin:0 0 4px}.cert-history-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.cert-history-list>li{grid-template-columns:12.5rem 1fr;align-items:baseline;gap:12px;font-size:13px;display:grid}.cert-history-when{color:var(--text-soft);font:400 11px var(--font-mono)}.cert-history-list details ul{color:var(--text-soft);margin:6px 0 0 16px;padding:0}.cert-history-list details summary{cursor:pointer}@media (width<=600px){.cert-history-list>li{grid-template-columns:1fr;gap:2px}}.reading-table input[type=text]:disabled,.cert-details-form input:disabled{color:var(--text);-webkit-text-fill-color:var(--text);opacity:1;cursor:default;background:0 0;border-color:#0000;font-weight:600}.reading-table input[type=text]:disabled.reading-input-fail{color:var(--rust);-webkit-text-fill-color:var(--rust);font-weight:600;border-color:#0000!important}.cert-details-form input:disabled{padding-left:0}.inline-check{margin:.5rem 0 .75rem;display:inline-block}.template-history{max-height:60vh;margin:0;padding:0;list-style:none;overflow-y:auto}.template-history li{border-bottom:1px solid #e5e7eb;padding:.5rem 0}.template-history .muted,.modal-panel .muted{color:#6b7280;font-size:.85rem}.notice{background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;margin:.75rem 0;padding:.6rem .8rem}.customers-table .templates-actions-cell{white-space:normal;width:220px}.templates-actions-cell .row-actions{flex-wrap:wrap;gap:4px 12px}.help-tip{vertical-align:middle;text-transform:none;letter-spacing:normal;margin-left:6px;font-weight:400;display:inline-block;position:relative}.help-tip-button{color:#6b7280;width:16px;height:16px;min-height:0;font:600 11px/1 var(--font-sans);cursor:help;background:#fff;border:1px solid #6b7280;border-radius:50%;padding:0}.help-tip-bubble{z-index:20;color:#fff;width:280px;max-width:80vw;font:400 12px/1.45 var(--font-sans);text-align:left;background:#111827;border-radius:6px;padding:10px 12px;display:none;position:absolute;top:22px;right:0;box-shadow:0 4px 12px #0003}.help-tip-bubble p{margin:0 0 6px}.help-tip-bubble p:last-child{margin-bottom:0}.help-tip:hover .help-tip-bubble,.help-tip:focus-within .help-tip-bubble{display:block}
