:root{--base:#16121f;--base-deep:#100d17;--surface:#1e1829;--surface-lift:#272036;--line:#362d4a;--line-soft:#2a2339;--text:#efeaf7;--muted:#9c92b8;--faint:#6d6486;--pulse:#7de2d1;--ember:#f5a25d;--alert:#f2718c;--ui:"Sora", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--code:"Azeret Mono", ui-monospace, "SFMono-Regular", "Consolas", monospace;--radius:14px;--measure:40rem;--ease:cubic-bezier(.2, .8, .2, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{min-height:100svh;font-family:var(--ui);color:var(--text);background:var(--base);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55}body:before{content:"";pointer-events:none;background:radial-gradient(60rem 40rem at 18% -10%,#7de2d112,#0000 60%),radial-gradient(48rem 36rem at 100% 0,#a078ff14,#0000 62%);position:fixed;inset:0}.shell{max-width:var(--measure);margin:0 auto;padding:2.5rem 1.5rem 5rem;position:relative}:where(button,input,textarea,select){font:inherit;color:inherit}:focus-visible{outline:2px solid var(--pulse);outline-offset:3px;border-radius:6px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[hidden]{display:none!important}.masthead{flex-direction:column;gap:1.15rem;margin-bottom:2rem;display:flex}.wordmark{letter-spacing:-.02em;align-items:baseline;gap:.55rem;margin:0;font-size:1.05rem;font-weight:700;display:flex}.wordmark:before{content:"";background:var(--pulse);width:7px;height:7px;transition:background .4s var(--ease);border-radius:50%;box-shadow:0 0 12px #7de2d199}body.is-stale .wordmark:before{background:var(--faint);box-shadow:none}.toolbar{align-items:center;gap:.6rem;display:flex}.btn-new{border:1px solid var(--pulse);background:var(--pulse);color:var(--base-deep);cursor:pointer;transition:background .18s var(--ease), transform .18s var(--ease);border-radius:999px;flex-shrink:0;align-items:center;gap:.35rem;padding:.65rem 1.1rem;font-size:.85rem;font-weight:600;display:inline-flex}.btn-new:hover{background:#93ebdc}.btn-new:active{transform:translateY(1px)}.btn-new svg{width:16px;height:16px}.search{flex:12rem;min-width:0;position:relative}.search svg{width:16px;height:16px;color:var(--faint);pointer-events:none;position:absolute;top:50%;left:.9rem;transform:translateY(-50%)}.search input{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);transition:border-color .18s var(--ease);border-radius:999px;padding:.65rem .9rem .65rem 2.5rem;font-size:.85rem}.search input:focus{border-color:var(--faint);outline:none}.settings-wrap{flex-shrink:0;position:relative}.menu{z-index:10;border:1px solid var(--line);background:var(--surface-lift);border-radius:12px;min-width:13rem;padding:.4rem;position:absolute;top:calc(100% + .5rem);right:0;box-shadow:0 12px 32px #00000059}.menu-email{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid var(--line);margin:0 0 .3rem;padding:.5rem .7rem .6rem;font-size:.75rem;overflow:hidden}.menu-item{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:.55rem .7rem;font-size:.85rem;display:block}.menu-item:hover{background:var(--surface)}.menu-item.is-danger{color:var(--alert)}.register-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.1rem;display:flex}.register-count{color:var(--muted);font-size:.82rem}.empty-actions{gap:.6rem;display:flex}.rows{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.no-matches{text-align:center;color:var(--muted);padding:2.5rem 0;font-size:.88rem}.row{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);transition:border-color .18s var(--ease), transform .18s var(--ease);flex-direction:column;gap:.9rem;padding:1.1rem;display:flex}.row:hover{border-color:var(--faint)}.row-top{align-items:center;gap:.7rem;display:flex}.row-avatar{color:#fff;border-radius:9px;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:.9rem;font-weight:700;display:grid}.row-identity{flex:1;min-width:0}.row-issuer{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.88rem;font-weight:600;overflow:hidden}.row-account{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;margin:.1rem 0 0;font-size:.76rem;overflow:hidden}.row-delete{flex-shrink:0;width:30px;height:30px}.row-delete svg{width:15px;height:15px}.row-delete.is-arming{color:var(--alert);background:#f2718c1f}.ring{flex-shrink:0;width:38px;height:38px;position:relative}.ring svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--line-soft);stroke-width:3px}.ring-fill{fill:none;stroke:var(--pulse);stroke-width:3px;stroke-linecap:round;transition:stroke-dashoffset 1s linear,stroke .4s}.row.is-expiring .ring-fill{stroke:var(--ember)}.ring-label{font-family:var(--code);color:var(--muted);font-variant-numeric:tabular-nums;place-items:center;font-size:.7rem;font-weight:600;display:grid;position:absolute;inset:0}.row.is-expiring .ring-label{color:var(--ember)}.row-bottom{cursor:pointer;justify-content:space-between;align-items:flex-end;gap:.75rem;display:flex}.row-next{text-align:right;flex-shrink:0}.row-next-label{color:var(--faint);margin-bottom:.15rem;font-size:.68rem;display:block}.row-next-code{font-family:var(--code);color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:.85rem;display:block}.code{font-family:var(--code);letter-spacing:.01em;font-variant-numeric:tabular-nums;color:var(--text);align-items:flex-start;font-size:1.7rem;font-weight:600;line-height:1;display:flex}.code-gap{width:.5em}.digit{height:1em;display:inline-block;overflow:hidden}.digit-track{flex-direction:column;display:flex;transform:translateY(-50%)}.digit-cell{height:1em;line-height:1}.digit-track.is-rolling{transition:transform .42s var(--ease)}.code.is-broken{font-size:1rem;font-family:var(--ui);color:var(--alert);font-weight:400}.icon-btn{width:38px;height:38px;color:var(--muted);cursor:pointer;transition:background .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease);background:0 0;border:1px solid #0000;border-radius:10px;place-items:center;padding:0;display:grid}.icon-btn:hover{background:var(--surface-lift);color:var(--text)}.icon-btn svg{width:17px;height:17px}.code.is-copied{color:var(--pulse);transition:color .15s var(--ease)}.btn{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;transition:background .18s var(--ease), border-color .18s var(--ease), transform .18s var(--ease);border-radius:10px;justify-content:center;align-items:center;gap:.45rem;padding:.6rem 1.1rem;font-size:.85rem;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-lift);border-color:var(--faint)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--pulse);border-color:var(--pulse);width:100%;color:var(--base-deep);padding:.78rem 1.1rem;font-weight:600}.btn-primary:hover:not(:disabled){background:#93ebdc;border-color:#93ebdc}.btn-link{color:var(--muted);cursor:pointer;text-underline-offset:3px;text-decoration:underline;text-decoration-color:var(--line);background:0 0;border:0;padding:0;font-size:.82rem}.btn-link:hover{color:var(--text)}.empty{border-bottom:1px solid var(--line-soft);padding:3.5rem 0 1rem}.empty p{max-width:30rem;color:var(--muted);margin:0 0 1.25rem;font-size:.92rem}.gate{place-items:center;min-height:100svh;padding:2rem 1.5rem;display:grid}.gate-card{width:100%;max-width:22.5rem}.gate-title{letter-spacing:-.03em;margin:0 0 .4rem;font-size:1.6rem;font-weight:700}.gate-sub{color:var(--muted);margin:0 0 2.25rem;font-size:.9rem}.field{margin-bottom:1rem}.field label{color:var(--muted);margin-bottom:.4rem;font-size:.8rem;display:block}.field input,.field textarea,.field select{border:1px solid var(--line);background:var(--base-deep);width:100%;color:var(--text);transition:border-color .18s var(--ease);border-radius:10px;padding:.7rem .85rem}.field input:focus,.field textarea:focus{border-color:var(--pulse);outline:none}.field-hint{color:var(--faint);margin:.4rem 0 0;font-size:.75rem}.notice{color:#f8b6c4;background:#f2718c14;border:1px solid #f2718c59;border-left-width:3px;border-radius:8px;margin:0 0 1rem;padding:.65rem .85rem;font-size:.82rem}.advanced{border-top:1px solid var(--line-soft);margin-bottom:1rem;padding-top:.85rem}.advanced summary{color:var(--muted);cursor:pointer;font-size:.8rem;list-style:none}.advanced summary::-webkit-details-marker{display:none}.advanced summary:hover{color:var(--text)}.advanced-grid{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:.9rem;display:grid}dialog.sheet{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:min(26rem,100vw - 2rem);color:var(--text);padding:1.75rem}dialog.sheet::backdrop{backdrop-filter:blur(3px);background:#0a080fb8}@keyframes sheet-in{0%{opacity:0;transform:translateY(8px)scale(.985)}}dialog.sheet[open]{animation:sheet-in .24s var(--ease)}.sheet-title{letter-spacing:-.02em;margin:0 0 .35rem;font-size:1.1rem;font-weight:700}.sheet-sub{color:var(--muted);margin:0 0 1.5rem;font-size:.85rem}.sheet-actions{gap:.6rem;margin-top:1.4rem;display:flex}.sheet-actions .btn-primary{flex:1;width:auto}.import-progress{color:var(--muted);font-variant-numeric:tabular-nums;margin:0 0 1rem;font-size:.85rem}.import-result{border:1px solid var(--line);background:var(--base-deep);border-radius:10px;margin:0 0 1rem;padding:.85rem 1rem}.import-result p{color:var(--text);margin:0;font-size:.85rem;line-height:1.6}.import-result p+p{border-top:1px solid var(--line-soft);margin-top:.5rem;padding-top:.5rem}.footnote{color:var(--faint);margin-top:3rem;font-size:.75rem;line-height:1.7}@media (width<=30rem){.shell{padding:1.75rem 1.15rem 4rem}.menu-email{max-width:12rem}.advanced-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.digit-track.is-rolling{transition:none}}
