:root{--navy: #0f2b5b;--navy-deep: #0a1f42;--navy-bright: #1c4a92;--navy-tint: #e8eef7;--navy-tint-strong: #cfdcef;--red: #d8232a;--red-deep: #a81a20;--red-tint: #fdecec;--white: #ffffff;--paper: #f5f7fa;--line: #dde3ec;--line-strong: #c2cbd9;--ink: #1a1d23;--ink-soft: #4a5361;--ink-faint: #7b8595;--ok: #1a7f4b;--ok-tint: #e6f4ec;--warn: #b26a00;--warn-tint: #fdf1e0;--danger: var(--red);--danger-tint: var(--red-tint);--font: "Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "Cascadia Code", "Consolas", ui-monospace, monospace;--text-xs: .8125rem;--text-sm: .9375rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--text-3xl: 2.25rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(15, 43, 91, .08);--shadow: 0 2px 8px rgba(15, 43, 91, .1);--shadow-lg: 0 8px 28px rgba(15, 43, 91, .14);--tap-min: 44px;--focus-ring: 0 0 0 3px var(--navy-tint-strong);--transition: .14s ease}@media(prefers-reduced-motion:reduce){:root{--transition: 0ms}}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:var(--text-base);line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;font-weight:600;color:var(--navy);line-height:1.3}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}code{font-family:var(--font-mono);font-size:.92em}.boot{display:grid;place-items:center;min-height:100vh;color:var(--ink-faint)}.signin{display:grid;place-items:center;min-height:100vh;padding:var(--space-5)}.signin__inner{width:min(100%,26rem);display:flex;flex-direction:column;align-items:center;gap:var(--space-5)}.signin__logo{width:100%;max-width:15rem;height:auto}.signin__sub{margin:calc(var(--space-2) * -1) 0 0;color:var(--ink-soft);text-align:center}.signin__card{width:100%;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.shell{display:flex;min-height:100vh}.nav{flex:none;width:15rem;background:var(--white);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:var(--space-4) var(--space-3)}.nav__brand{padding:var(--space-2) var(--space-3) var(--space-4)}.nav__logo{width:100%;max-width:10rem;height:auto}.nav__where{display:block;margin-top:var(--space-1);font-size:var(--text-sm);color:var(--ink-faint)}.nav__items{display:flex;flex-direction:column;gap:var(--space-1)}.nav__item{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:var(--tap-min);padding:0 var(--space-3);background:none;border:none;border-radius:var(--radius);color:var(--ink-soft);font-size:var(--text-base);text-align:left;transition:background var(--transition),color var(--transition)}.nav__item:hover{background:var(--navy-tint);color:var(--navy)}.nav__item--on,.nav__item--on:hover{background:var(--navy);color:var(--white)}.nav__foot{margin-top:auto;padding-top:var(--space-5);border-top:1px solid var(--line)}.nav__who{padding:0 var(--space-3) var(--space-3)}.nav__name{display:block;font-weight:600;color:var(--navy)}.nav__role{display:block;font-size:var(--text-sm);color:var(--ink-faint)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.bar{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--white);border-bottom:1px solid var(--line)}.bar__title{font-size:var(--text-xl)}.bar__right{margin-left:auto;display:flex;align-items:center;gap:var(--space-3)}.page{flex:1;width:100%;max-width:76rem;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-7);display:flex;flex-direction:column;gap:var(--space-4)}.panel{padding:var(--space-5);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-4)}.panel__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.panel__title{font-size:var(--text-lg)}.panel__body{margin:0;color:var(--ink-soft)}.panel__body--aside{padding-left:var(--space-4);border-left:2px solid var(--line);color:var(--ink-faint);font-size:var(--text-sm)}.empty{margin:0;padding:var(--space-6) 0;text-align:center;color:var(--ink-faint)}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:var(--space-4)}.tile{padding:var(--space-5);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.tile__value{display:block;font-size:var(--text-3xl);font-weight:600;color:var(--navy);font-variant-numeric:tabular-nums;line-height:1.1}.tile__label{display:block;margin-top:var(--space-1);color:var(--ink-faint);font-size:var(--text-sm)}.tile--ok .tile__value{color:var(--ok)}.tile--warn .tile__value{color:var(--warn)}.status{display:flex;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg)}.status--ok{border-left:5px solid var(--ok)}.status--warn{border-left:5px solid var(--warn)}.status--danger{border-left:5px solid var(--danger)}.status__label{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--navy)}.status__detail{margin:var(--space-1) 0 0;color:var(--ink-soft)}.scroll{overflow-x:auto;margin:0 calc(var(--space-5) * -1);padding:0 var(--space-5)}.table{width:100%;border-collapse:collapse;white-space:nowrap}.table th{text-align:left;padding:var(--space-2) var(--space-4) var(--space-2) 0;color:var(--ink-faint);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line)}.table td{padding:var(--space-3) var(--space-4) var(--space-3) 0;border-bottom:1px solid var(--line);vertical-align:middle;font-size:var(--text-sm)}.table tr:last-child td{border-bottom:none}.row--gone td{opacity:.5}.row__actions{display:flex;gap:var(--space-2);justify-content:flex-end}.muted{color:var(--ink-faint)}.pill{display:inline-block;padding:2px var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;text-transform:capitalize}.pill--active{background:var(--ok-tint);color:var(--ok)}.pill--grace{background:var(--warn-tint);color:var(--warn)}.pill--expired{background:var(--navy-tint);color:var(--ink-soft)}.pill--revoked{background:var(--danger-tint);color:var(--red-deep)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field__label{font-weight:600;color:var(--navy);font-size:var(--text-sm)}.field__input{width:100%;min-height:var(--tap-min);padding:0 var(--space-4);background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius);font-size:var(--text-base)}.field__input:focus{outline:3px solid var(--navy-bright);outline-offset:-1px;border-color:var(--navy-bright)}.field__hint{color:var(--ink-faint);font-size:var(--text-sm)}.form{display:flex;flex-direction:column;gap:var(--space-4);align-items:flex-start}.form--row{flex-direction:row;flex-wrap:wrap;align-items:flex-end;gap:var(--space-4);padding:var(--space-4);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}.form--row .field{flex:1 1 12rem}.field--wide{flex:2 1 22rem!important}.field--narrow{flex:0 0 7rem!important}.form--row .error,.form--row .field--full{flex:1 1 100%}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-5);background:var(--navy);color:var(--white);border:none;border-radius:var(--radius);font-size:var(--text-base);font-weight:600;transition:background var(--transition)}.button:hover:not(:disabled){background:var(--navy-bright)}.button:disabled{opacity:.5;cursor:not-allowed}.button--quiet{background:var(--white);color:var(--navy);border:1px solid var(--line-strong)}.button--quiet:hover:not(:disabled){background:var(--navy-tint)}.button--danger{background:var(--white);color:var(--red-deep);border:1px solid var(--line-strong)}.button--danger:hover:not(:disabled){background:var(--danger-tint);border-color:var(--danger)}.button--small{min-height:2.25rem;padding:0 var(--space-3);font-size:var(--text-sm);font-weight:500}.error{margin:0;padding:var(--space-3) var(--space-4);background:var(--danger-tint);border:1px solid var(--danger);border-radius:var(--radius);color:var(--red-deep)}.note{margin:0;padding:var(--space-3) var(--space-4);background:var(--ok-tint);border:1px solid var(--ok);border-radius:var(--radius);color:var(--ok)}.issued{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background:var(--navy-tint);border:1px solid var(--navy-tint-strong);border-radius:var(--radius)}.token{margin:0;padding:var(--space-4);background:var(--white);border:1px solid var(--line);border-radius:var(--radius);font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.7;white-space:pre-wrap;word-break:break-all;max-height:12rem;overflow-y:auto}.twofa{display:flex;gap:var(--space-5);flex-wrap:wrap;align-items:flex-start}.twofa__qr{flex:none;padding:var(--space-3);background:var(--white);border:1px solid var(--line);border-radius:var(--radius)}.twofa__qr canvas,.twofa__qr img{display:block;width:180px;height:180px}.twofa__side{flex:1 1 18rem;display:flex;flex-direction:column;gap:var(--space-3)}.twofa__secret{padding:var(--space-3);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);font-family:var(--font-mono);font-size:var(--text-sm);word-break:break-all}.code-input{font-family:var(--font-mono);font-size:var(--text-xl);letter-spacing:.35em;text-align:center;max-width:11rem}@media(max-width:60rem){.shell{flex-direction:column}.nav{width:100%;flex-direction:row;align-items:center;gap:var(--space-3);border-right:none;border-bottom:1px solid var(--line);overflow-x:auto}.nav__brand{padding:0 var(--space-2) 0 0}.nav__logo{max-width:7rem}.nav__items{flex-direction:row}.nav__foot{margin:0 0 0 auto;padding:0 0 0 var(--space-3);border-top:none;border-left:1px solid var(--line);display:flex;align-items:center;gap:var(--space-2)}.nav__who{padding:0}.page{padding:var(--space-4) var(--space-3) var(--space-6)}}
