:root{color-scheme:light dark;--font-sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: 1.625rem;--text-2xl: 2rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--radius-sm: 4px;--radius: 8px;--radius-lg: 12px;--radius-pill: 999px;--content-max: 1200px;--control-height: 2.5rem;--color-bg: #f5f6f8;--color-surface: #ffffff;--color-surface-2: #eef0f4;--color-border: #d3d8e0;--color-border-strong: #8a93a3;--color-text: #1a1f2b;--color-text-muted: #545d6e;--color-link: #1f4fc4;--color-primary: #2357d9;--color-primary-hover: #1c47b3;--color-primary-contrast: #ffffff;--color-danger: #b42318;--color-danger-hover: #912018;--color-danger-contrast: #ffffff;--color-focus: #2357d9;--badge-active-bg: #dcf5e4;--badge-active-fg: #12603a;--badge-expired-bg: #fde4e1;--badge-expired-fg: #9a2316;--badge-suspended-bg: #fff1cc;--badge-suspended-fg: #7a4d00;--badge-revoked-bg: #e7e9ee;--badge-revoked-fg: #3a4252;--alert-error-bg: #fde8e6;--alert-error-fg: #8a1c12;--alert-error-border: #f2b8b2;--alert-warning-bg: #fff6dd;--alert-warning-fg: #6b4300;--alert-warning-border: #f1d58a;--alert-info-bg: #e7efff;--alert-info-fg: #1b3e8f;--alert-info-border: #b5c9f5;--alert-success-bg: #e3f6ea;--alert-success-fg: #135c37;--shadow-sm: 0 1px 2px rgb(16 24 40 / .06);--shadow: 0 1px 3px rgb(16 24 40 / .1), 0 1px 2px rgb(16 24 40 / .06);--shadow-lg: 0 12px 32px rgb(16 24 40 / .22);--backdrop: rgb(16 20 30 / .55)}@media(prefers-color-scheme:dark){:root{--color-bg: #0f131b;--color-surface: #171c26;--color-surface-2: #212836;--color-border: #2e3747;--color-border-strong: #6b7588;--color-text: #e7eaf0;--color-text-muted: #a5aebd;--color-link: #8fb0ff;--color-primary: #4d7cf0;--color-primary-hover: #6a91f5;--color-primary-contrast: #0b1020;--color-danger: #f0776b;--color-danger-hover: #f59389;--color-danger-contrast: #1d0906;--color-focus: #8fb0ff;--badge-active-bg: #11402a;--badge-active-fg: #8be2b0;--badge-expired-bg: #4a1b16;--badge-expired-fg: #ffb4aa;--badge-suspended-bg: #47360b;--badge-suspended-fg: #ffd77a;--badge-revoked-bg: #2c3240;--badge-revoked-fg: #c7cdd8;--alert-error-bg: #3d1713;--alert-error-fg: #ffc2ba;--alert-error-border: #6e2a22;--alert-warning-bg: #3a2d0b;--alert-warning-fg: #ffe09a;--alert-warning-border: #6a5214;--alert-info-bg: #16264a;--alert-info-fg: #c3d4ff;--alert-info-border: #2c4682;--alert-success-bg: #10351f;--alert-success-fg: #a6eac2;--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow: 0 1px 3px rgb(0 0 0 / .5);--shadow-lg: 0 12px 32px rgb(0 0 0 / .6);--backdrop: rgb(0 0 0 / .65)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-md);line-height:1.5;color:var(--color-text);background:var(--color-bg);overflow-x:hidden}body.has-modal{overflow:hidden}h1,h2,h3{line-height:1.25;margin:0}h1{font-size:var(--text-xl);overflow-wrap:anywhere}h2{font-size:var(--text-lg);margin-bottom:var(--space-3)}p{margin:0}a{color:var(--color-link);text-underline-offset:2px}code,pre,.mono{font-family:var(--font-mono)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}main:focus{outline:none}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.muted{color:var(--color-text-muted)}.small{font-size:var(--text-sm)}.block{display:block}.break{overflow-wrap:anywhere;word-break:break-word}.prewrap{white-space:pre-wrap;overflow-wrap:anywhere}.num{text-align:right;font-variant-numeric:tabular-nums}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.skip-link{position:absolute;left:var(--space-2);top:-100px;z-index:100;padding:var(--space-2) var(--space-3);background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow)}.skip-link:focus{top:var(--space-2)}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10}.topbar__inner{max-width:var(--content-max);margin:0 auto;padding:var(--space-2) var(--space-4);display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:700;color:var(--color-text);text-decoration:none;min-height:var(--control-height)}.brand__mark{display:inline-grid;place-items:center;width:1.75rem;height:1.75rem;border-radius:var(--radius);background:var(--color-primary);color:var(--color-primary-contrast);font-weight:800}.nav{display:flex;align-items:center;gap:var(--space-4);flex:1;min-width:0}.nav__list{list-style:none;margin:0;padding:0;display:flex;gap:var(--space-1);flex-wrap:wrap}.nav__link{display:inline-flex;align-items:center;min-height:var(--control-height);padding:0 var(--space-3);border-radius:var(--radius);color:var(--color-text);text-decoration:none;font-weight:500}.nav__link:hover{background:var(--color-surface-2)}.nav__link.active{background:var(--color-surface-2);color:var(--color-link);box-shadow:inset 0 -2px 0 var(--color-primary)}.nav__user{margin-left:auto;display:flex;align-items:center;gap:var(--space-3);min-width:0}.nav__email{color:var(--color-text-muted);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:16rem}.topbar .menu-toggle{display:none;margin-left:auto}@media(max-width:860px){.topbar .menu-toggle{display:inline-flex}.nav{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;padding-bottom:var(--space-2)}.nav--open{display:flex}.nav__list{flex-direction:column}.nav__user{margin-left:0;justify-content:space-between;border-top:1px solid var(--color-border);padding-top:var(--space-2)}}.page{max-width:var(--content-max);margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-7)}.page--narrow{max-width:40rem}.page-header{margin-bottom:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}.page-header__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.page-header__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.page-header__sub{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;color:var(--color-text-muted)}.back-link{font-size:var(--text-sm);align-self:flex-start}.section{margin-bottom:var(--space-5)}.section__header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-3)}.section__header h2{margin-bottom:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card.section{padding:var(--space-5)}@media(max-width:640px){.card.section{padding:var(--space-4)}}.grid-2{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:var(--space-5);align-items:start}@media(max-width:860px){.grid-2{grid-template-columns:minmax(0,1fr);gap:0}}.form-narrow{max-width:44rem}.action-bar{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--space-4);border-radius:var(--radius);border:1px solid transparent;font:inherit;font-weight:600;font-size:var(--text-sm);line-height:1.2;cursor:pointer;text-decoration:none;white-space:nowrap}.button:disabled{cursor:not-allowed;opacity:.55}.button--primary{background:var(--color-primary);color:var(--color-primary-contrast)}.button--primary:hover:not(:disabled){background:var(--color-primary-hover)}.button--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.button--secondary:hover:not(:disabled){background:var(--color-surface-2)}.button--danger{background:var(--color-danger);color:var(--color-danger-contrast)}.button--danger:hover:not(:disabled){background:var(--color-danger-hover)}.button--ghost{background:transparent;color:var(--color-link)}.button--ghost:hover:not(:disabled){background:var(--color-surface-2)}.button--small{min-height:2rem;padding:0 var(--space-3)}.button--block{width:100%}.icon-button{display:inline-grid;place-items:center;width:2.25rem;height:2.25rem;flex:none;border:0;border-radius:var(--radius);background:transparent;color:inherit;font-size:1.4rem;line-height:1;cursor:pointer}.icon-button:hover{background:var(--color-surface-2)}.link-button{background:none;border:0;padding:0;font:inherit;color:var(--color-link);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.field>label,.field__label,.fieldset legend{font-weight:600;font-size:var(--text-sm)}.field__required{color:var(--color-danger)}.field__hint{font-size:var(--text-sm);color:var(--color-text-muted)}.field__error{font-size:var(--text-sm);color:var(--color-danger);font-weight:600}.fieldset{border:0;padding:0;margin:0}.fieldset legend{padding:0;margin-bottom:var(--space-1)}input[type=text],input[type=email],input[type=password],input[type=search],input[type=date],select,textarea{width:100%;min-height:var(--control-height);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit}textarea{resize:vertical}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--color-danger);box-shadow:0 0 0 1px var(--color-danger)}input:disabled,select:disabled,textarea:disabled{opacity:.6}.checkbox{display:flex;align-items:center;gap:var(--space-2);min-height:2rem}.checkbox input{width:1.15rem;height:1.15rem;margin:0;accent-color:var(--color-primary)}.input-row{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap}.input-row>input{flex:1 1 12rem;width:auto;min-width:0}.form-actions{display:flex;gap:var(--space-2);justify-content:flex-end;flex-wrap:wrap}.toolbar{display:flex;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.search{flex:1 1 18rem;max-width:32rem}.filters{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,13rem),1fr));gap:var(--space-3);padding:var(--space-4);margin-bottom:var(--space-4);align-items:start}.filters .search{grid-column:1 / -1;max-width:none}.filters__reset{display:flex;align-items:flex-end;align-self:end}.chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-1)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:.125rem var(--space-2);border-radius:var(--radius-pill);background:var(--color-surface-2);border:1px solid var(--color-border);font-family:var(--font-mono);font-size:var(--text-sm);max-width:100%;overflow-wrap:anywhere}.chip__remove{display:inline-grid;place-items:center;width:1.5rem;height:1.5rem;margin-right:-.25rem;border:0;border-radius:var(--radius-pill);background:transparent;color:inherit;font-size:1rem;cursor:pointer}.chip__remove:hover{background:var(--color-border)}.feature-list{font-family:var(--font-mono);font-size:var(--text-sm);overflow-wrap:anywhere}.badge{display:inline-block;padding:.125rem .625rem;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:700;letter-spacing:.02em;text-transform:uppercase;white-space:nowrap}.badge--active{background:var(--badge-active-bg);color:var(--badge-active-fg)}.badge--expired{background:var(--badge-expired-bg);color:var(--badge-expired-fg)}.badge--suspended{background:var(--badge-suspended-bg);color:var(--badge-suspended-fg)}.badge--revoked{background:var(--badge-revoked-bg);color:var(--badge-revoked-fg)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius);border:1px solid transparent;margin-bottom:var(--space-4)}.stack>.alert,.dialog .alert{margin-bottom:0}.alert--error{background:var(--alert-error-bg);color:var(--alert-error-fg);border-color:var(--alert-error-border)}.alert--warning{background:var(--alert-warning-bg);color:var(--alert-warning-fg);border-color:var(--alert-warning-border)}.alert--info{background:var(--alert-info-bg);color:var(--alert-info-fg);border-color:var(--alert-info-border)}.state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-text-muted);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-lg)}.state--loading{flex-direction:row;justify-content:center}.state--error{color:var(--alert-error-fg);background:var(--alert-error-bg);border:1px solid var(--alert-error-border)}.state__title{font-weight:600;color:var(--color-text)}.spinner{width:1.25rem;height:1.25rem;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.table-wrap{width:100%;overflow-x:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table th,.table td{padding:var(--space-3) var(--space-4);text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border)}.table th.num,.table td.num{text-align:right}.table thead th{font-weight:600;color:var(--color-text-muted);background:var(--color-surface-2);white-space:nowrap}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:var(--color-surface-2)}@media(max-width:640px){.table-wrap:has(.table--cards){background:transparent;border:0;box-shadow:none;overflow:visible}.table--cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.table--cards,.table--cards tbody,.table--cards tr,.table--cards td{display:block;width:100%}.table--cards tr{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-3);padding:var(--space-2) 0}.table--cards td{position:relative;padding:var(--space-2) var(--space-4) var(--space-2) calc(var(--space-4) + 7.5rem + var(--space-3));border-bottom:0;text-align:left;min-height:2.25rem;overflow-wrap:anywhere}.table--cards td.num{text-align:left}.table--cards td:before{content:attr(data-label);position:absolute;left:var(--space-4);top:var(--space-2);width:7.5rem;font-weight:600;color:var(--color-text-muted)}}.details{display:grid;gap:var(--space-3);margin:0}.details>div{display:grid;grid-template-columns:10rem minmax(0,1fr);gap:var(--space-3)}.details dt{font-weight:600;color:var(--color-text-muted)}.details dd{margin:0;min-width:0}@media(max-width:480px){.details>div{grid-template-columns:minmax(0,1fr);gap:0}}.meta{margin:0;display:grid;gap:.125rem;font-size:var(--text-xs)}.meta>div{display:flex;gap:var(--space-2);min-width:0}.meta dt{font-family:var(--font-mono);color:var(--color-text-muted)}.meta dd{margin:0;font-family:var(--font-mono);min-width:0}.code-block{margin:var(--space-3) 0;padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius);font-size:var(--text-sm);overflow-x:auto;white-space:pre}.code-inline{padding:.0625rem .3rem;background:var(--color-surface-2);border-radius:var(--radius-sm);font-size:.9em}.details-toggle summary{cursor:pointer;font-weight:600;font-size:var(--text-sm);margin-bottom:var(--space-2)}.steps{margin:0 0 var(--space-3);padding-left:1.25rem;display:grid;gap:var(--space-2)}.key-display{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-4);background:var(--color-surface-2);border:2px dashed var(--color-border-strong);border-radius:var(--radius)}.key-display__value{flex:1 1 auto;font-size:clamp(1rem,4.2vw,1.375rem);font-weight:700;letter-spacing:.05em;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.stat-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,12rem),1fr));gap:var(--space-3)}.stat{position:relative;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1);border-left:4px solid var(--color-border)}.stat--success{border-left-color:var(--badge-active-fg)}.stat--warning{border-left-color:var(--badge-suspended-fg)}.stat--danger{border-left-color:var(--badge-expired-fg)}.stat__link{display:flex;flex-direction:column;gap:var(--space-1);color:inherit;text-decoration:none}.stat__link:after{content:"";position:absolute;inset:0;border-radius:inherit}.stat__link:hover .stat__label{text-decoration:underline}.stat__value{font-size:var(--text-2xl);font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.stat__label{color:var(--color-text-muted);font-size:var(--text-sm)}.pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-3)}.pagination__info{color:var(--color-text-muted);font-size:var(--text-sm)}.pagination__buttons{display:flex;align-items:center;gap:var(--space-2)}.pagination__page{font-size:var(--text-sm);white-space:nowrap}.dialog-backdrop{position:fixed;inset:0;z-index:50;background:var(--backdrop);display:grid;place-items:center;padding:var(--space-4);overflow-y:auto}.dialog{width:100%;max-height:calc(100dvh - 2 * var(--space-4));display:flex;flex-direction:column;background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--color-border)}.dialog--sm{max-width:28rem}.dialog--md{max-width:36rem}.dialog--lg{max-width:48rem}.dialog__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5) 0}.dialog__title{margin:0}.dialog__body{padding:var(--space-4) var(--space-5);overflow-y:auto}.dialog__footer{display:flex;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap;padding:0 var(--space-5) var(--space-4)}@media(max-width:480px){.dialog-backdrop{padding:var(--space-2)}.dialog__header,.dialog__body,.dialog__footer{padding-left:var(--space-4);padding-right:var(--space-4)}}.toasts{position:fixed;right:var(--space-4);bottom:var(--space-4);z-index:60;display:flex;flex-direction:column;gap:var(--space-2);max-width:min(26rem,calc(100vw - 2 * var(--space-4)))}.toast{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);background:var(--color-surface)}.toast span{flex:1}.toast--success{background:var(--alert-success-bg);color:var(--alert-success-fg)}.toast--error{background:var(--alert-error-bg);color:var(--alert-error-fg)}.login{min-height:100dvh;display:grid;place-items:center;padding:var(--space-4)}.login__card{width:100%;max-width:24rem;padding:var(--space-6) var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.login__brand{display:flex;align-items:center;gap:var(--space-2);font-weight:700}
