:root{color-scheme:light;--bg: oklch(1 0 0);--surface: oklch(.967 .006 140);--surface-2: oklch(.943 .008 140);--border: oklch(.89 .012 140);--border-strong: oklch(.78 .02 140);--ink: oklch(.21 .02 140);--muted: oklch(.44 .02 140);--primary: oklch(.52 .14 140);--primary-hover: oklch(.47 .14 140);--primary-active: oklch(.43 .13 140);--primary-ink: oklch(1 0 0);--primary-soft: oklch(.94 .03 140);--danger: oklch(.53 .19 27);--danger-hover: oklch(.48 .19 27);--danger-ink: oklch(1 0 0);--danger-text: oklch(.48 .18 27);--warn-bg: oklch(.955 .035 85);--warn-border: oklch(.8 .09 85);--warn-text: oklch(.4 .09 70);--strength-weak: oklch(.53 .19 27);--strength-fair: oklch(.68 .14 75);--strength-strong: oklch(.6 .13 140);--strength-excellent: oklch(.5 .15 145);--focus-ring: oklch(.52 .14 140);--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--radius-control: 8px;--radius-card: 12px;--radius-pill: 999px;--ease-out: cubic-bezier(.19, 1, .22, 1);--dur-fast: .15s;--dur: .2s;--z-sticky: 10;--z-backdrop: 40;--z-dialog: 50;--z-toast: 60}[data-theme=dark]{color-scheme:dark;--bg: oklch(.14 0 0);--surface: oklch(.19 0 0);--surface-2: oklch(.23 0 0);--border: oklch(.3 0 0);--border-strong: oklch(.42 0 0);--ink: oklch(.93 .005 140);--muted: oklch(.68 .01 140);--primary: oklch(.74 .13 145);--primary-hover: oklch(.78 .13 145);--primary-active: oklch(.7 .13 145);--primary-ink: oklch(.16 .02 140);--primary-soft: oklch(.25 .04 145);--danger: oklch(.58 .19 27);--danger-hover: oklch(.63 .19 27);--danger-ink: oklch(1 0 0);--danger-text: oklch(.72 .16 25);--warn-bg: oklch(.24 .04 85);--warn-border: oklch(.45 .09 85);--warn-text: oklch(.85 .09 85);--strength-weak: oklch(.62 .19 27);--strength-fair: oklch(.74 .13 80);--strength-strong: oklch(.72 .13 145);--strength-excellent: oklch(.8 .14 145);--focus-ring: oklch(.74 .13 145)}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--bg: oklch(.14 0 0);--surface: oklch(.19 0 0);--surface-2: oklch(.23 0 0);--border: oklch(.3 0 0);--border-strong: oklch(.42 0 0);--ink: oklch(.93 .005 140);--muted: oklch(.68 .01 140);--primary: oklch(.74 .13 145);--primary-hover: oklch(.78 .13 145);--primary-active: oklch(.7 .13 145);--primary-ink: oklch(.16 .02 140);--primary-soft: oklch(.25 .04 145);--danger: oklch(.58 .19 27);--danger-hover: oklch(.63 .19 27);--danger-ink: oklch(1 0 0);--danger-text: oklch(.72 .16 25);--warn-bg: oklch(.24 .04 85);--warn-border: oklch(.45 .09 85);--warn-text: oklch(.85 .09 85);--strength-weak: oklch(.62 .19 27);--strength-fair: oklch(.74 .13 80);--strength-strong: oklch(.72 .13 145);--strength-excellent: oklch(.8 .14 145);--focus-ring: oklch(.74 .13 145)}}@media(prefers-reduced-motion:reduce){:root{--dur-fast: 0ms;--dur: 0ms}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{scrollbar-gutter:stable}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;transition:background-color var(--dur) var(--ease-out),color var(--dur) var(--ease-out)}h1,h2,h3{line-height:1.2;text-wrap:balance;font-weight:650}p{max-width:70ch}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}::selection{background:var(--primary-soft)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:550;line-height:1;padding:.625rem 1rem;border-radius:var(--radius-control);border:1px solid transparent;background:var(--surface-2);color:var(--ink);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);white-space:nowrap}.btn:hover:not(:disabled){background:var(--border)}.btn:active:not(:disabled){translate:0 .5px}.btn:disabled{opacity:.45}.btn--primary{background:var(--primary);color:var(--primary-ink)}.btn--primary:hover:not(:disabled){background:var(--primary-hover)}.btn--primary:active:not(:disabled){background:var(--primary-active)}.btn--ghost{background:transparent;border-color:var(--border-strong)}.btn--ghost:hover:not(:disabled){background:var(--surface);border-color:var(--border-strong)}.btn--danger{background:var(--danger);color:var(--danger-ink)}.btn--danger:hover:not(:disabled){background:var(--danger-hover)}.btn--small{padding:.4rem .65rem;font-size:var(--text-xs)}.btn__spinner{width:.875em;height:.875em;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:btn-spin .7s linear infinite}@keyframes btn-spin{to{rotate:360deg}}@media(prefers-reduced-motion:reduce){.btn__spinner{animation-duration:1.6s}}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border-radius:var(--radius-control);border:none;background:transparent;color:var(--muted);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.icon-btn:disabled{opacity:.45}.icon-btn svg{width:1.125rem;height:1.125rem}.switch{display:inline-flex;align-items:center;gap:var(--space-3);padding:0;border:none;background:none;font-size:var(--text-sm);color:var(--ink);min-height:2rem}.switch:disabled{opacity:.45}.switch__track{position:relative;flex-shrink:0;width:2.25rem;height:1.3rem;border-radius:var(--radius-pill);background:var(--border-strong);transition:background-color var(--dur-fast) var(--ease-out)}.switch[aria-checked=true] .switch__track{background:var(--primary)}.switch__thumb{position:absolute;top:2px;left:2px;width:calc(1.3rem - 4px);height:calc(1.3rem - 4px);border-radius:50%;background:#fff;transition:translate var(--dur-fast) var(--ease-out)}.switch[aria-checked=true] .switch__thumb{translate:.95rem 0}.slider{display:grid;gap:var(--space-2)}.slider__head{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--text-sm)}.slider__value{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}.slider input[type=range]{width:100%;accent-color:var(--primary);margin:0}.field{display:grid;gap:var(--space-1)}.field__label{font-size:var(--text-sm);font-weight:550}.field__control{position:relative;display:flex}.field input,.field select{width:100%;padding:.55rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--bg);color:var(--ink);font-size:var(--text-sm);transition:border-color var(--dur-fast) var(--ease-out)}.field input::placeholder{color:var(--muted)}.field input:disabled{background:var(--surface);opacity:.7}.field__hint{font-size:var(--text-xs);color:var(--muted)}.field__error{font-size:var(--text-xs);color:var(--danger-text)}.field--invalid input{border-color:var(--danger)}.field__reveal{position:absolute;right:.25rem;top:50%;translate:0 -50%}.field input.has-reveal{padding-right:2.5rem}.segmented{display:inline-flex;padding:3px;gap:2px;background:var(--surface-2);border-radius:var(--radius-control)}.segmented__option{flex:1;padding:.4rem .9rem;font-size:var(--text-sm);font-weight:550;line-height:1;border:none;border-radius:calc(var(--radius-control) - 3px);background:transparent;color:var(--muted);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);white-space:nowrap}.segmented__option:hover:not([aria-checked=true]):not(:disabled){color:var(--ink)}.segmented__option[aria-checked=true]{background:var(--bg);color:var(--ink);box-shadow:0 1px 2px #00000014}.tabs{display:flex;gap:var(--space-4);border-bottom:1px solid var(--border)}.tabs__tab{padding:var(--space-2) var(--space-1);margin-bottom:-1px;border:none;border-bottom:2px solid transparent;background:none;font-size:var(--text-sm);font-weight:550;color:var(--muted);transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.tabs__tab:hover{color:var(--ink)}.tabs__tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--primary)}.dialog{width:min(26rem,calc(100vw - 2rem));border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg);color:var(--ink);padding:var(--space-5);margin:auto}.dialog::backdrop{background:#00000073}.dialog__title{font-size:var(--text-lg);margin-bottom:var(--space-4)}.dialog__actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5)}.toast-region{position:fixed;bottom:var(--space-5);left:50%;translate:-50% 0;display:grid;gap:var(--space-2);z-index:var(--z-toast);justify-items:center}.toast{padding:var(--space-2) var(--space-4);border-radius:var(--radius-control);background:var(--ink);color:var(--bg);font-size:var(--text-sm);animation:toast-in var(--dur) var(--ease-out)}.toast--error{background:var(--danger);color:var(--danger-ink)}@keyframes toast-in{0%{opacity:0;translate:0 .5rem}}.inline-warning{padding:var(--space-2) var(--space-3);border:1px solid var(--warn-border);border-radius:var(--radius-control);background:var(--warn-bg);color:var(--warn-text);font-size:var(--text-sm)}.inline-warning--danger{border-color:var(--danger);background:color-mix(in oklch,var(--danger) 8%,var(--bg));color:var(--danger-text)}.empty-state{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-7) var(--space-5);text-align:center}.empty-state__title{font-size:var(--text-lg);font-weight:600}.empty-state__body{color:var(--muted);font-size:var(--text-sm);max-width:32ch}.app{max-width:40rem;margin:0 auto;padding:var(--space-5) var(--space-4) var(--space-7)}.app__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.app__wordmark{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em}.app__wordmark svg{color:var(--primary)}.app__tagline{color:var(--muted);font-size:var(--text-xs)}.app__view{margin-top:var(--space-5);display:grid;gap:var(--space-5)}.panel{display:grid;gap:var(--space-4);padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}.panel--plain{border:none;background:none;padding:0}.panel__title{font-size:var(--text-base);font-weight:650}.app__footer{margin-top:var(--space-7);padding-top:var(--space-4);border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);flex-wrap:wrap;font-size:var(--text-xs);color:var(--muted)}.app__footer strong{color:var(--ink);font-weight:600}.app__footer-link{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--primary);font-weight:550;text-decoration:none;white-space:nowrap}.app__footer-link:hover{text-decoration:underline}@media(max-width:480px){.app{padding-top:var(--space-4)}.panel{padding:var(--space-4)}}.gen__controls{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.gen__results{list-style:none;padding:0;display:grid;gap:var(--space-2)}.gen__result{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--bg)}.gen__password{flex:1;font-family:var(--font-mono);font-size:var(--text-sm);overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.gen__results--single .gen__result{padding:var(--space-4)}.gen__results--single .gen__password{font-size:var(--text-lg)}.gen__result-actions{display:flex;gap:var(--space-1);flex-shrink:0}.strength{display:grid;gap:var(--space-1)}.strength__bar{height:6px;border-radius:var(--radius-pill);background:var(--surface-2);overflow:hidden}.strength__fill{height:100%;border-radius:inherit;transition:width var(--dur) var(--ease-out),background-color var(--dur) var(--ease-out)}.strength__fill[data-level=weak]{background:var(--strength-weak)}.strength__fill[data-level=fair]{background:var(--strength-fair)}.strength__fill[data-level=strong]{background:var(--strength-strong)}.strength__fill[data-level=excellent]{background:var(--strength-excellent)}.strength__meta{font-size:var(--text-xs);color:var(--muted);font-variant-numeric:tabular-nums}.strength__label{color:var(--ink);font-weight:600;text-transform:capitalize}.gen__toggles{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:var(--space-2) var(--space-4)}.share__qr-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--space-4);width:fit-content;max-width:100%}.share__qr-card svg{display:block;width:min(280px,70vw);height:auto}.share__link-row{display:flex;gap:var(--space-2);align-items:stretch}.share__link-row input{flex:1;min-width:0;padding:.55rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--surface);color:var(--muted);font-size:var(--text-xs);font-family:var(--font-mono)}.share__secret{font-family:var(--font-mono);font-size:var(--text-base);overflow-wrap:anywhere;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface)}.share__downloads{display:flex;gap:var(--space-2)}.field textarea{width:100%;min-height:5.5rem;padding:.55rem .75rem;border:1px solid var(--border-strong);border-radius:var(--radius-control);background:var(--bg);color:var(--ink);font-size:var(--text-sm);font-family:inherit;resize:vertical}.vault__toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.vault__count{font-size:var(--text-sm);color:var(--muted)}.vault__actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.vault__list{list-style:none;padding:0;display:grid;gap:var(--space-2)}.entry{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--bg)}.entry__main{flex:1;min-width:0;display:grid;gap:2px}.entry__label{font-weight:600;font-size:var(--text-sm)}.entry__meta{font-size:var(--text-xs);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry__password{font-family:var(--font-mono);font-size:var(--text-xs);overflow-wrap:anywhere;color:var(--ink)}.entry__actions{display:flex;gap:var(--space-1);flex-shrink:0}.vault-form{display:grid;gap:var(--space-4);max-width:26rem}.vault-form__ack{display:flex;gap:var(--space-2);align-items:flex-start;font-size:var(--text-sm)}.vault-form__ack input{margin-top:3px;accent-color:var(--primary)}.vault__locked-hint{color:var(--muted);font-size:var(--text-sm)}
