:root{--color-text:#1f2328;--color-text-muted:#57606a;--color-text-disabled:#8c959f;--color-surface:#fff;--color-bg:#f6f8fa;--color-bg-subtle:#eaeef2;--color-bg-panel:#eef1f4;--color-border:#d0d7de;--color-border-strong:#b6bec7;--color-action:#1f6feb;--color-action-emphasis:#0969da;--color-action-disabled:#8caadb;--color-danger:#cf222e;--color-danger-hover:#a40e26;--color-danger-disabled:#d98290;--color-danger-bg:#fff0f0;--color-danger-panel-bg:#fef2f2;--color-danger-panel-border:#fca5a5;--color-danger-panel-text:#7f1d1d;--color-success:#1a7f37;--color-success-bg:#d1f0d8;--color-success-strong:#0e6027;--color-success-bg-strong:#bbe1c1;--color-success-dark:#065f46;--color-warning-bg:#fff8c5;--color-warning-text:#7d4e00;--color-info-bg:#ddf4ff;--color-internal-bg:#fbefff;--color-internal-text:#6639ba;--color-internal-text-strong:#322b5d;--color-internal-border:#8250df;--color-env-staging:#e36209;--color-env-preview:#8250df;--color-backdrop:#1f232880;--space-2:2px;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-16:16px;--space-24:24px;--space-32:32px;--space-64:64px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-pill:999px;--shadow-sm:0 4px 12px #00000014;--shadow-md:0 10px 30px #0003;--shadow-marker:-2px -2px 6px #00000040;color:var(--color-text);background:var(--color-bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif}body{min-height:100vh;margin:0}.centered{max-width:420px;margin:var(--space-64) auto;padding:var(--space-32) var(--space-24);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center}.wide{max-width:1100px;margin:var(--space-32) auto;padding:0 var(--space-24)}.bar{margin-bottom:var(--space-16);justify-content:space-between;align-items:center;display:flex}.app-nav{gap:var(--space-24);padding:var(--space-12) var(--space-24);background:var(--color-surface);border-bottom:1px solid var(--color-border);font-size:14px;display:flex}.app-nav a{color:var(--color-action);text-decoration:none}.app-nav a:hover{text-decoration:underline}.app-nav a[aria-current=page]{color:var(--color-action-emphasis);font-weight:600}h1{margin:0;font-size:24px}.subtext{color:var(--color-text-muted);margin:var(--space-8) 0;font-size:14px}.form{gap:var(--space-12);text-align:left;margin:var(--space-24) 0;flex-direction:column;display:flex}.form label{gap:var(--space-4);color:var(--color-text-muted);flex-direction:column;font-size:13px;display:flex}.form input,.form textarea{padding:var(--space-8) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:14px}.btn{justify-content:center;align-items:center;gap:var(--space-8);padding:var(--space-8) var(--space-16);border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;font-size:14px;font-weight:500;display:inline-flex}.btn-primary{background:var(--color-action);color:var(--color-surface)}.btn-primary:disabled{background:var(--color-action-disabled);cursor:not-allowed}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-bg)}.btn-secondary:disabled{color:var(--color-text-disabled);cursor:not-allowed}.error{color:var(--color-danger);padding:var(--space-8) var(--space-10);background:var(--color-danger-bg);border-left:3px solid var(--color-danger);border-radius:var(--radius-sm);margin:0;font-size:13px;line-height:1.5}.success-banner{margin:var(--space-12) 0;padding:var(--space-12) var(--space-16);background:var(--color-success-bg);border-left:4px solid var(--color-success);border-radius:var(--radius-sm);color:var(--color-success-strong);outline:none}.success-banner p{margin:0 0 var(--space-8)}.success-banner strong{color:var(--color-success-strong)}.success-banner__follow-up{margin:var(--space-8) 0 0}.reset-link-row{align-items:center;gap:var(--space-8);flex-wrap:wrap;display:flex}.reset-link{padding:var(--space-6) var(--space-8);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow-wrap:anywhere;flex:auto;font-size:13px}.linklike{color:var(--color-action);cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.linklike:hover:not(:disabled){text-decoration:underline}.linklike:disabled{color:var(--color-action-disabled);cursor:not-allowed}.btn-google{width:100%;margin-top:var(--space-8)}.divider{align-items:center;gap:var(--space-12);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin:var(--space-16) 0 0;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--color-border);flex:1;height:1px}.table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;overflow:hidden}.table th,.table td{padding:var(--space-10) var(--space-12);text-align:left;border-bottom:1px solid var(--color-border);font-size:14px}.table th{background:var(--color-bg);color:var(--color-text-muted);font-weight:600}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--color-bg)}.row-actions{text-align:right;white-space:nowrap;width:1%}.linklike.danger{color:var(--color-danger)}.linklike.danger:hover:not(:disabled){text-decoration:underline}.btn-danger{background:var(--color-danger);color:var(--color-surface)}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn-danger:disabled{background:var(--color-danger-disabled);cursor:not-allowed}.modal-backdrop{background:var(--color-backdrop);z-index:10;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-24);width:min(440px,100vw - 32px);box-shadow:var(--shadow-md);max-height:calc(100vh - 2 * var(--space-24));overflow-y:auto}.modal h2{margin:0 0 var(--space-8);font-size:18px}.modal-actions{justify-content:flex-end;gap:var(--space-16);margin-top:var(--space-8);align-items:center;display:flex}.env-marker{z-index:1000;padding:var(--space-6) 14px var(--space-8);letter-spacing:1.5px;text-transform:uppercase;color:var(--color-surface);border-top-left-radius:var(--radius-lg);box-shadow:var(--shadow-marker);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:11px;font-weight:700;position:fixed;bottom:0;right:0}.env-marker--dev{background:var(--color-danger)}.env-marker--staging{background:var(--color-env-staging)}.env-marker--preview{background:var(--color-env-preview);pointer-events:auto;cursor:pointer}.env-marker--preview:focus-visible{outline:2px solid var(--color-surface);outline-offset:-4px}.env-marker__branch{vertical-align:bottom;opacity:0;white-space:nowrap;letter-spacing:.5px;max-width:0;margin-left:0;transition:max-width .18s,margin-left .18s,opacity .18s;display:inline-block;overflow:hidden}.env-marker--expanded .env-marker__branch{max-width:240px;margin-left:var(--space-8);opacity:1}.env-marker__slot{letter-spacing:.5px;opacity:.85;margin-left:8px}.breadcrumb{margin:0 0 var(--space-4);color:var(--color-text-muted);font-size:13px}.breadcrumb a{color:var(--color-action);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.detail-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-16) 20px;margin:var(--space-16) 0}.detail-card__header{justify-content:space-between;align-items:flex-start;gap:var(--space-8);margin-bottom:var(--space-12);display:flex}.detail-card__header h2{margin:0;font-size:16px}.kv{gap:var(--space-6) var(--space-16);grid-template-columns:160px 1fr;margin:0;font-size:14px;display:grid}.kv dt{color:var(--color-text-muted)}.kv dd{overflow-wrap:anywhere;margin:0}@media (width<=600px){.kv{gap:var(--space-2) 0;grid-template-columns:1fr}.kv dt{margin-top:var(--space-8);font-weight:600}}.progress-list{gap:var(--space-6);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.progress-item{padding:var(--space-6) var(--space-10);border-left:3px solid var(--color-border);background:var(--color-bg);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;font-size:14px;display:flex}.progress-item--done{border-left-color:var(--color-success)}.progress-item__label{color:var(--color-text-muted)}.progress-item__value{color:var(--color-text)}.pill{padding:var(--space-2) var(--space-8);border-radius:var(--radius-pill);background:var(--color-bg-subtle);color:var(--color-text);white-space:nowrap;font-size:12px;font-weight:500;display:inline-block}.pill--complete{background:var(--color-success-bg);color:var(--color-success)}.pill--in_progress{background:var(--color-warning-bg);color:var(--color-warning-text)}.pill--not_started{background:var(--color-bg-subtle);color:var(--color-text-muted)}.pill--danger{color:#cf222e;background:#ffeef0}.pill--muted{background:var(--color-bg-subtle);color:var(--color-text-muted)}.tier-picker-list{flex-direction:column;gap:8px;margin:12px 0;padding:0;list-style:none;display:flex}.tier-picker-row{cursor:pointer;border:1px solid #d0d7de;border-radius:8px;align-items:center;gap:12px;padding:12px;display:flex}.tier-picker-row:hover{border-color:#1f6feb}.tier-picker-row--selected{background:#f6f8fa;border-color:#1f6feb}.tier-picker-row--disabled{cursor:not-allowed;opacity:.6}.tier-picker-row__main{flex-direction:column;flex:auto;gap:2px;display:flex}.location-editor-list{gap:var(--space-12);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.location-row{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-12) 14px;background:var(--color-bg)}.form .row{gap:var(--space-12);display:flex}.form .row>label{flex:1;min-width:0}@media (width<=600px){.form .row{gap:var(--space-8);flex-direction:column}}.form-actions{justify-content:flex-end;gap:var(--space-8);margin-top:var(--space-8);display:flex}.form-actions__danger{order:-1;margin-right:auto}.form select{padding:var(--space-8) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px}.filter-input{margin:0 0 var(--space-12);display:block}.filter-input input{width:100%;max-width:360px;padding:var(--space-8) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}tr.row-clickable{cursor:pointer}tr.row-clickable:hover{background:var(--color-bg)}tr.row-clickable:focus-visible{outline:2px solid var(--color-action);outline-offset:-2px}tr.row-clickable:focus:not(:focus-visible){outline:none}.worker-list{margin:0;padding:0;list-style:none}.worker-row{align-items:center;gap:var(--space-8);padding:var(--space-12) 0;border-bottom:1px solid var(--color-border);display:flex}.worker-row:last-child{border-bottom:none}.worker-row__name,.worker-row__email{flex:1;min-width:0}.cert-list{margin:0;padding:0;list-style:none}.cert-row{gap:var(--space-8);padding:var(--space-12) 0;padding-left:var(--space-8);border-bottom:1px solid var(--color-border);border-left:3px solid #0000;flex-direction:column;display:flex}.cert-row:last-child{border-bottom:none}.cert-row__main{align-items:flex-start;gap:var(--space-8);flex-wrap:wrap;display:flex}.cert-row__info{flex:1;min-width:0}.cert-row__name{color:var(--color-text);font-size:14px;font-weight:500;display:block}.cert-row__meta{color:var(--color-text-muted);margin:var(--space-2) 0 0;font-size:13px;display:block}.cert-row__detail{padding-top:var(--space-8);border-top:1px dashed var(--color-border)}.cert-row--editing .cert-row__detail{border-top:none;padding-top:0}.btn--sm{padding:var(--space-4) var(--space-10);font-size:13px}.empty-state{padding:var(--space-24) 0;text-align:center}.location-group{margin-top:var(--space-16)}.location-group__heading{margin:0 0 var(--space-8);color:var(--color-text);font-size:16px;font-weight:600}.pill-status--pending{background:var(--color-warning-bg);color:var(--color-warning-text)}.pill-status--assigned,.pill-status--scheduled{background:var(--color-info-bg);color:var(--color-action-emphasis)}.pill-status--in_progress{background:var(--color-success-bg-strong);color:var(--color-success-strong)}.pill-status--completed{background:var(--color-success-bg);color:var(--color-success)}.pill-status--canceled,.pill-priority--normal{background:var(--color-bg-subtle);color:var(--color-text-muted)}.pill-priority--high{background:var(--color-warning-bg);color:var(--color-warning-text)}.pill-priority--critical,.pill-status--delayed{color:#9a3412;background:#fed7aa;border:1px solid #fb923c}.pill-service--inspection,.pill-service--maintenance,.pill-service--repair{background:var(--color-bg-subtle);color:var(--color-text)}.pill--internal{background:var(--color-internal-bg);color:var(--color-internal-text);padding:1px var(--space-6);font-size:11px}.pill-billing--not_billed{color:#57606a;background:#eaeef2}.pill-billing--draft{color:#7d4e00;background:#fff8c5}.pill-billing--open{color:#0969da;background:#ddf4ff}.pill-billing--paid{color:#1a7f37;background:#d1f0d8}.pill-billing--uncollectible,.pill-billing--void{color:#57606a;background:#eaeef2;text-decoration:line-through}.jobs-filters{gap:var(--space-12);margin-bottom:var(--space-12);flex-wrap:wrap;align-items:flex-end;display:flex}.filter-preset{background:var(--color-surface);border:1px solid var(--color-border);height:34px;color:var(--color-text);cursor:pointer;border-radius:999px;padding:0 12px;font-family:inherit;font-size:13px}.filter-preset:hover{border-color:var(--color-border-strong,#cbd5e1)}.filter-preset--active{color:#1e3a8a;background:#eff6ff;border-color:#bfdbfe;font-weight:500}.filter-preset:focus-visible{outline:2px solid var(--color-action);outline-offset:2px}.filter-select{gap:var(--space-4);color:var(--color-text-muted);flex-direction:column;font-size:13px;display:flex;position:relative}.filter-select--inline{align-items:center;gap:var(--space-8);flex-direction:row}.filter-select--inline>select{padding:var(--space-6) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);min-width:180px;max-width:280px;font-size:14px}.filter-select__label{font-weight:500}.filter-select__value{align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);cursor:pointer;font-size:14px;display:inline-flex}.filter-select__menu{z-index:5;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-6) 0;margin-top:var(--space-2);min-width:180px;max-height:240px;position:absolute;top:100%;left:0;overflow-y:auto}.filter-select__opt{align-items:center;gap:var(--space-8);padding:var(--space-6) var(--space-12);color:var(--color-text);cursor:pointer;font-size:14px;display:flex}.filter-select__opt:hover{background:var(--color-bg)}.jobs-resultbar{align-items:center;gap:var(--space-16);margin:var(--space-8) 0 var(--space-12);flex-wrap:wrap;font-size:13px;display:flex}.jobs-sort{align-items:center;gap:var(--space-6);display:inline-flex}.jobs-sort select{padding:var(--space-4) var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:13px}.jobs-table-scroll{overflow-x:auto}.jobs-table{font-size:13px}.jobs-table .mono{color:var(--color-text-muted);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:12px}@media (width<=640px){.jobs-table th:nth-child(3),.jobs-table td:nth-child(3),.jobs-table th:nth-child(7),.jobs-table td:nth-child(7),.jobs-table th:nth-child(8),.jobs-table td:nth-child(8),.jobs-table th:nth-child(10),.jobs-table td:nth-child(10){display:none}}.pager{align-items:center;gap:var(--space-4);margin-top:var(--space-12);justify-content:center;display:flex}.pager__page{padding:var(--space-4) var(--space-10);border-radius:var(--radius-sm)}.pager__page--current{background:var(--color-info-bg);color:var(--color-action-emphasis);font-weight:600}.job-detail__badges{gap:var(--space-8);margin-top:var(--space-8);flex-wrap:wrap;display:flex}.job-detail__grid{gap:var(--space-16);grid-template-columns:1fr;display:grid}@media (width>=900px){.job-detail__grid{grid-template-columns:2fr 1fr}}.job-detail__col-main,.job-detail__col-side{gap:var(--space-12);flex-direction:column;min-width:0;display:flex}.job-detail__pre{white-space:pre-wrap;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-8) var(--space-10);margin:0;font-family:inherit;font-size:14px}.job-detail__tech-name{margin:0 0 var(--space-4);color:var(--color-text);font-weight:600}.job-detail__outcome{margin-top:var(--space-12);color:var(--color-text);font-size:14px}.form-actions--col{align-items:stretch;gap:var(--space-8);flex-direction:column}.timeline{gap:var(--space-12);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.timeline-entry{border-left:2px solid var(--color-border);padding-left:var(--space-12)}.timeline-entry--internal{border-left-color:var(--color-internal-border);background:var(--color-internal-bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:var(--space-6) var(--space-12) var(--space-6) 14px;margin-left:-2px}.timeline-entry--internal .timeline-entry__text{color:var(--color-internal-text-strong)}.timeline-entry__meta{align-items:center;gap:var(--space-8);color:var(--color-text-muted);font-size:12px;display:flex}.timeline-entry__time{font-weight:500}.timeline-entry__actor{font-size:12px}.timeline-entry__body{margin-top:var(--space-4)}.timeline-entry__text{white-space:pre-wrap;color:var(--color-text);margin:0;font-family:inherit;font-size:14px}.update-title{color:#1f2328;margin-bottom:4px;font-size:14px;font-weight:600;display:block}.update-body{white-space:pre-wrap;color:#1f2328;margin:0;font-size:14px}.attachment-list{margin:var(--space-8) 0 0;gap:var(--space-6);flex-direction:column;padding:0;list-style:none;display:flex}.attachment-list__row{align-items:center;gap:var(--space-12);padding:var(--space-6) 0;border-bottom:1px solid var(--color-bg-subtle);font-size:14px;display:flex}.attachment-list__row:last-child{border-bottom:none}.attachment-list__row .subtext{margin:0;font-size:12px}.attachment-upload{border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-12);background:var(--color-bg);gap:var(--space-8);margin:var(--space-8) 0;flex-direction:column;display:flex}.attachment-upload__list{gap:var(--space-4);flex-direction:column;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.attachment-upload__row{justify-content:space-between;gap:var(--space-12);padding:var(--space-4) 0;display:flex}.attachment-upload__row--error{color:var(--color-danger)}.attachment-upload__row--done{color:var(--color-success)}.post-update-form{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-12);margin-bottom:var(--space-12)}.form-checkbox,.form-radio{align-items:center;gap:var(--space-8);color:var(--color-text);flex-direction:row;font-size:14px;display:flex}.form-checkbox input[type=checkbox],.form-radio input[type=radio]{margin:0}.radio-group{gap:var(--space-6);flex-direction:column;display:flex}.cert-picker,.equipment-picker{background:var(--color-bg-panel);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-12) 14px;margin-bottom:var(--space-12)}.equipment-picker__date{margin:0 0 var(--space-12)}.equipment-picker__templated{gap:var(--space-8);flex-direction:column;display:flex}.equipment-picker__zone-heading{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.4px;margin:0;font-size:13px;font-weight:600}.cert-picker__list,.equipment-picker__list{margin:var(--space-8) 0 0;gap:var(--space-6);flex-direction:column;padding:0;list-style:none;display:flex}.cert-picker__item,.equipment-picker__item{align-items:baseline;gap:var(--space-10);padding:var(--space-6) var(--space-8);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);flex-wrap:wrap;display:flex}.cert-picker__name,.equipment-picker__name{color:var(--color-text);flex:1;min-width:0;font-size:14px;font-weight:500}.cert-picker__regulator,.equipment-picker__category{color:var(--color-text-muted);white-space:nowrap;font-size:12px}.equipment-picker__full-catalog{margin-top:var(--space-12);padding-top:var(--space-12);border-top:1px dashed var(--color-border)}.equipment-picker__full-catalog summary{color:var(--color-action);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:500;list-style:none}.equipment-picker__full-catalog summary:before{content:"▶ ";font-size:10px;transition:transform .15s;display:inline-block}.equipment-picker__full-catalog[open] summary:before{transform:rotate(90deg)}.equipment-picker__full-catalog summary::-webkit-details-marker{display:none}.cert-row__actions{align-items:center;gap:var(--space-6);flex-shrink:0;display:flex}.location-row__actions{justify-content:flex-end;gap:var(--space-6);display:flex}.cert-row__confirm-delete{background:var(--color-danger-panel-bg);border:1px solid var(--color-danger-panel-border);border-left:3px solid var(--color-danger);border-radius:var(--radius-sm);padding:var(--space-10) var(--space-12)}.cert-row__confirm-delete p{margin:0 0 var(--space-8);color:var(--color-danger-panel-text);font-size:14px;font-weight:500}.danger-panel{margin-top:var(--space-16);background:var(--color-danger-panel-bg);border:1px solid var(--color-danger-panel-border);border-left:3px solid var(--color-danger);border-radius:var(--radius-sm);padding:var(--space-12)}.danger-panel h3{margin:0 0 var(--space-8);color:var(--color-danger);font-size:15px}.danger-panel p{margin:0 0 var(--space-8);color:var(--color-danger-panel-text);font-size:14px}.finding-row{justify-content:space-between;align-items:center;gap:var(--space-8);padding:var(--space-6) var(--space-8);margin-top:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex}.route-error{align-items:flex-start;gap:var(--space-12);padding:var(--space-24);max-width:640px;margin:var(--space-24) auto 0;background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-danger);border-radius:var(--radius-lg);flex-direction:column;display:flex}.route-error__title{color:var(--color-text);margin:0}.route-error__body{color:var(--color-text-muted);margin:0}.route-error__detail{width:100%;padding:var(--space-8);background:var(--color-bg);border-radius:var(--radius-sm);white-space:pre-wrap;margin:0;font-size:12px;overflow-x:auto}.app-error{max-width:480px;margin:var(--space-64) auto;padding:var(--space-32);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-align:center}.app-error h1{margin:0 0 var(--space-8)}.app-error p{margin:0 0 var(--space-16);color:var(--color-text-muted)}.app-error__detail{text-align:left;margin-top:var(--space-16);padding:var(--space-8);background:var(--color-bg);border-radius:var(--radius-sm);white-space:pre-wrap;font-size:12px;overflow-x:auto}.route-loading{padding:var(--space-32) var(--space-24);color:var(--color-text-muted);opacity:0;justify-content:center;animation:.2s linear .2s forwards route-loading-fade-in;display:flex}@keyframes route-loading-fade-in{to{opacity:1}}.page{max-width:1280px;margin:0 auto;padding:16px 24px}.row-clickable{cursor:pointer}.row-clickable:hover{background:#f6f8fa}.row-clickable:focus-visible{outline-offset:-2px;outline:2px solid #0969da}.mono{font-family:ui-monospace,SFMono-Regular,monospace;font-size:13px}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.filter-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.filter-row input[type=search]{border:1px solid #d0d7de;border-radius:6px;flex:280px;padding:6px 10px;font-family:inherit;font-size:14px}.filter-row select{background:#fff;border:1px solid #d0d7de;border-radius:6px;padding:6px 10px;font-size:14px}.count-line{color:#57606a;margin:0 0 12px;font-size:13px}.error-banner{color:#cf222e;background:#fff5f5;border:1px solid #ffd3d3;border-radius:6px;margin-bottom:12px;padding:8px 12px}.catalog-stale-banner{color:#82071e;background:#fff5f5;border:1px solid #ffb3b3;border-left:4px solid #cf222e;border-radius:6px;margin:0 0 16px;padding:12px 16px;font-size:14px}.catalog-stale-banner strong{margin-bottom:6px;font-size:15px;display:block}.catalog-stale-banner p{margin:0 0 6px;line-height:1.45}.catalog-stale-banner__versions{color:#57606a;font-size:13px}.catalog-stale-banner code{background:#fff;border:1px solid #ffd3d3;border-radius:4px;padding:1px 5px;font-size:12px}.pagination{color:#57606a;justify-content:center;align-items:center;gap:12px;margin-top:16px;font-size:13px;display:flex}.pagination button{cursor:pointer;background:#fff;border:1px solid #d0d7de;border-radius:4px;padding:4px 12px;font-size:13px}.pagination button:disabled{opacity:.4;cursor:not-allowed}.action-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.warning{color:#4b3a00;background:#fff8c5;border:1px solid #f7d06c;border-radius:6px;margin:8px 0;padding:8px 12px;font-size:13px}.field-hint{color:#57606a;margin-top:2px;font-size:12px;display:block}.label-text{font-size:13px;font-weight:600}.modal-footer{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.pill--type-subscription{color:#0550ae;background:#ddf4ff}.pill--type-job{color:#4b3a00;background:#fff8c5}.pill--type-add_on{color:#5b21b6;background:#efeafc}.pill--status-paid{color:#1a7f37;background:#dafbe1}.pill--status-open{color:#57606a;background:#f6f8fa;border:1px solid #d0d7de}.pill--status-draft{color:#57606a;background:#f6f8fa}.pill--status-uncollectible,.pill--status-void{color:#cf222e;background:#ffebe9}.bar-actions{align-items:center;gap:16px;display:flex}.form-fieldset{border:1px solid #d0d7de;border-radius:6px;margin:4px 0 8px;padding:8px 12px 10px}.form-fieldset legend{color:#57606a;text-transform:uppercase;letter-spacing:.06em;padding:0 4px;font-size:12px}.status-pill{white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;max-width:180px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-flex;overflow:hidden}.status-pill--compliant{background:var(--color-success-bg);color:var(--color-success-dark)}.status-pill--due_soon,.status-pill--action_required{background:var(--color-warning-bg);color:var(--color-warning-text)}.status-pill--overdue{background:var(--color-danger-bg);color:var(--color-danger-hover)}.status-pill--failed{background:var(--color-warning-bg);color:var(--color-warning-text)}.status-pill--non_compliant{background:var(--color-danger-bg);color:var(--color-danger)}.status-pill--replaced{color:var(--color-text-muted);background:#c8d4d8}.modal.asset-form-modal{flex-direction:column;width:min(580px,100vw - 32px);padding:0;display:flex}.asset-form-modal__header{justify-content:space-between;align-items:flex-start;gap:var(--space-16);padding:var(--space-24);border-bottom:1px solid var(--color-border);display:flex}.asset-form-modal__header h2{margin:0}.asset-form-modal__close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:0;flex-shrink:0;padding:4px;font-size:20px;line-height:1}.asset-form-modal__body{padding:var(--space-24);gap:var(--space-24);flex-direction:column;display:flex}.asset-form-modal__body fieldset{gap:var(--space-8);border:0;flex-direction:column;margin:0;padding:0;display:flex}.asset-form-modal__body section{gap:var(--space-8);flex-direction:column;display:flex}.asset-form-modal__body legend{color:var(--color-text);margin-bottom:4px;font-size:12px;font-weight:700}.asset-form-modal__body label{color:var(--color-text);flex-direction:column;gap:4px;font-size:11px;font-weight:500;display:flex}.asset-form-modal__body input,.asset-form-modal__body select,.asset-form-modal__body textarea{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13px}.asset-form-modal__body input:focus,.asset-form-modal__body select:focus,.asset-form-modal__body textarea:focus{outline:2px solid var(--color-action);outline-offset:-1px;border-color:var(--color-action)}.asset-form-modal__row{gap:var(--space-16);grid-template-columns:1fr 1fr;display:grid}.asset-form-modal__footer{justify-content:space-between;align-items:center;gap:var(--space-16);padding:var(--space-16) var(--space-24);border-top:1px solid var(--color-border);display:flex}.asset-form-modal__footer-actions{gap:var(--space-8);align-items:center;display:flex}.asset-form-modal__delete{margin-right:auto}.asset-form-modal__readonly{flex-direction:column;gap:2px;padding:6px 0;display:flex}.asset-form-modal__readonly .subtext{text-transform:uppercase;letter-spacing:.5px;font-size:11px}.asset-form-modal__readonly p{color:var(--color-text);margin:0;font-size:14px;font-weight:500}.asset-form-modal__confirm-prompt{color:var(--color-text);font-size:13px;font-weight:600}.required{color:var(--color-danger)}.duration-picker__row{gap:var(--space-8);display:flex}.duration-picker__row input[type=number]{flex-shrink:0;width:72px}.duration-picker__row select{flex:1}.btn-link{color:var(--color-action);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;font-family:inherit;text-decoration:underline}.cadence-no-duration-note{padding:var(--space-8) var(--space-10);background:var(--color-bg-panel);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:12px;font-style:italic}
