:root{--bg-base:#0b0d12;--bg-surface:#12141b;--bg-elevated:#171a23;--bg-overlay:#1d202b;--border:#21242e;--border-hover:#2c303c;--text-primary:#ecedf1;--text-secondary:#9497a8;--text-muted:#6b6f80;--text-faint:#494d5c;--accent:#c6a15b;--accent-high:#dab876;--accent-soft:#c6a15b1f;--accent-ink:#16130b;--danger:#e5484d;--danger-soft:#e5484d1f;--success:#3fcb8c;--success-soft:#3fcb8c1f;--warning:#e8803a;--warning-soft:#e8803a1f;--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--text-2xs:11px;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-lg:16px;--text-xl:22px;--text-2xl:32px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:40px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-pill:999px;--shadow-sm:0 10px 30px #00000059;--shadow-lg:0 24px 64px #00000080;--ease:cubic-bezier(.4, 0, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button,input,textarea{font-family:inherit}button{font:inherit}::selection{background:var(--accent-soft);color:var(--accent-high)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.vault-layout{background:var(--bg-base);height:100dvh;color:var(--text-primary);font-family:var(--font-ui);display:flex;overflow:hidden}.vault-loading{background:var(--bg-base);height:100dvh;color:var(--text-secondary);font-size:var(--text-sm);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.loading-mark-danger,.loading-text-danger{color:var(--danger)}.vault-sidebar{background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;width:224px;min-width:224px;display:flex;overflow:hidden}.sidebar-logo{align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border);padding:22px 18px 20px;display:flex}.logo-mark{border-radius:var(--radius-sm);background:var(--accent-soft);width:30px;height:30px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.logo-name{font-size:var(--text-base);color:var(--text-primary);letter-spacing:-.01em;font-weight:700}.logo-tagline{font-size:var(--text-2xs);color:var(--text-muted);margin-top:1px}.sidebar-search{margin-top:6px;padding:8px 12px;position:relative}.sidebar-search input{background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-xs);box-sizing:border-box;transition:border-color .15s var(--ease);outline:none;padding:8px 10px 8px 32px}.sidebar-search input:focus{border-color:var(--accent)}.sidebar-search input::placeholder{color:var(--text-faint)}.search-icon{color:var(--text-faint);pointer-events:none;position:absolute;top:50%;left:22px;transform:translateY(-50%)}.sidebar-nav{flex:1;padding:6px 10px;overflow-y:auto}.nav-section-label{font-size:var(--text-2xs);color:var(--text-faint);margin:18px 0 6px;padding:0 8px;font-weight:500}.nav-section-label:first-child{margin-top:10px}.nav-item{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);width:100%;color:var(--text-muted);font-family:var(--font-ui);font-size:var(--text-sm);cursor:pointer;text-align:left;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:none;margin-bottom:2px;padding:8px 10px;display:flex}.nav-item:hover{background:var(--bg-overlay);color:var(--text-secondary)}.nav-item.active{background:var(--accent-soft);color:var(--accent-high)}.nav-icon{flex-shrink:0;width:16px;display:flex}.nav-label{flex:1}.nav-count{font-size:var(--text-2xs);background:var(--border);color:var(--text-muted);border-radius:var(--radius-md);font-family:var(--font-mono);padding:2px 7px}.nav-item.active .nav-count{color:var(--accent-high);background:#c6a15b2e}.sidebar-footer{border-top:1px solid var(--border);padding:12px}.user-pill{align-items:center;gap:var(--space-2);background:var(--bg-overlay);border-radius:var(--radius-sm);padding:8px 10px;display:flex}.user-avatar{background:var(--accent-soft);width:26px;height:26px;font-size:var(--text-2xs);color:var(--accent-high);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.user-email{font-size:var(--text-2xs);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sidebar-logout-btn{flex-shrink:0;margin-left:auto}.btn-delete-account,.btn-change-password{align-items:center;gap:var(--space-2);width:100%;color:var(--text-faint);font-family:var(--font-ui);font-size:var(--text-2xs);cursor:pointer;border-radius:var(--radius-sm);text-align:left;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:none;margin-top:4px;padding:9px 10px;display:flex}.btn-delete-account:hover{background:var(--danger-soft);color:var(--danger)}.btn-change-password:hover{background:var(--accent-soft);color:var(--accent-high)}.vault-main{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.main-topbar{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.topbar-title{font-size:var(--text-lg);letter-spacing:-.01em;color:var(--text-primary);margin:0;font-weight:600}.topbar-actions{align-items:center;gap:14px;display:flex}.saving-indicator{font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:6px;display:flex}.saving-indicator-danger{color:var(--danger)}.btn-primary{background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;transition:background .15s var(--ease);border:none;align-items:center;gap:6px;padding:8px 14px;font-weight:600;display:inline-flex}.btn-primary:hover:not(:disabled){background:var(--accent-high)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.icon-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:inline-flex}.icon-btn:hover{background:var(--bg-overlay);color:var(--text-primary)}.icon-btn.copied{color:var(--success)}.icon-btn-group{gap:2px;display:flex}.entry-list{flex:1;padding:14px;overflow-y:auto}.entry-card{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;transition:border-color .15s var(--ease), background .15s var(--ease);align-items:center;gap:13px;margin-bottom:7px;padding:11px 13px;display:flex}.entry-card:hover{border-color:var(--border-hover);background:var(--bg-elevated)}.entry-card.active{background:var(--accent-soft);border-color:#c6a15b4d}.entry-card.dragging{opacity:.4}.entry-card.drag-over{border-color:var(--accent);box-shadow:inset 0 2px 0 var(--accent)}.entry-drag-handle{color:var(--text-faint);cursor:grab;opacity:0;transition:opacity .15s var(--ease);flex-shrink:0;align-items:center;margin-left:-4px;display:flex}.entry-card:hover .entry-drag-handle{opacity:1}.entry-card.dragging .entry-drag-handle{cursor:grabbing}.entry-icon-wrap{border-radius:var(--radius-sm);width:36px;height:36px;font-size:var(--text-base);color:var(--text-primary);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.cat-login{background:#1c2a3e}.cat-card{background:#2a2038}.cat-note{background:#1c2e20}.entry-info{flex:1;min-width:0}.entry-label{font-size:var(--text-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.entry-username{font-size:var(--text-2xs);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;overflow:hidden}.entry-2fa-badge{color:var(--success);vertical-align:-1px;margin-left:6px}.entry-date{font-size:var(--text-2xs);color:var(--text-faint);flex-shrink:0}.empty-state{height:240px;color:var(--text-faint);font-size:var(--text-sm);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.empty-icon{opacity:.35}.vault-detail{background:var(--bg-surface);border-left:1px solid var(--border);flex-direction:column;width:300px;min-width:300px;display:flex;overflow:hidden}.vault-detail-empty{justify-content:center;align-items:center}.detail-placeholder{align-items:center;gap:var(--space-2);color:var(--text-faint);font-size:var(--text-sm);flex-direction:column;display:flex}.placeholder-icon{opacity:.25}.detail-header{border-bottom:1px solid var(--border);padding:22px}.detail-icon-wrap{align-items:center;gap:13px;display:flex}.detail-icon{border-radius:var(--radius-md);width:44px;height:44px;color:var(--text-primary);flex-shrink:0;justify-content:center;align-items:center;font-size:17px;font-weight:600;display:flex}.detail-name{font-size:var(--text-lg);letter-spacing:-.005em;color:var(--text-primary);font-weight:600}.detail-url{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.detail-body{flex-direction:column;flex:1;gap:20px;padding:20px 22px;display:flex;overflow-y:auto}.detail-field{gap:var(--space-2);flex-direction:column;display:flex}.field-label{font-size:var(--text-2xs);color:var(--text-muted);font-weight:500}.field-value-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.field-mono{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--text-primary);word-break:break-all}.field-link{font-size:var(--text-xs);color:var(--accent);text-overflow:ellipsis;white-space:nowrap;text-decoration:none;overflow:hidden}.field-link:hover{color:var(--accent-high);text-decoration:underline}.field-notes{font-size:var(--text-sm);color:var(--text-secondary);white-space:pre-wrap;margin:0;line-height:1.6}.field-notes-hidden{color:var(--text-faint);font-style:italic}.field-notes-row{align-items:flex-start;gap:var(--space-2);display:flex}.field-notes-box{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;min-width:0;max-height:160px;padding:10px 12px;overflow-y:auto}.field-notes-actions{flex-shrink:0;margin-top:1px}.tag-list{flex-wrap:wrap;gap:6px;display:flex}.tag{font-size:var(--text-2xs);background:var(--bg-overlay);color:var(--text-secondary);border-radius:var(--radius-pill);border:1px solid var(--border);padding:4px 10px}.detail-meta{font-size:var(--text-2xs);color:var(--text-faint);border-top:1px solid var(--border);flex-direction:column;gap:4px;padding-top:4px;display:flex}.detail-footer{gap:var(--space-2);border-top:1px solid var(--border);padding:16px 22px;display:flex}.btn-edit{justify-content:center;align-items:center;gap:var(--space-2);background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-sm);cursor:pointer;transition:border-color .15s var(--ease);flex:1;padding:9px;font-weight:500;display:flex}.btn-edit:hover{border-color:var(--border-hover)}.btn-delete{background:var(--danger-soft);border-radius:var(--radius-sm);color:var(--danger);font-family:var(--font-ui);font-size:var(--text-xs);cursor:pointer;transition:background .15s var(--ease);border:1px solid #e5484d4d;justify-content:center;align-items:center;padding:9px 12px;display:inline-flex}.btn-delete:hover:not(:disabled){background:#e5484d33}.btn-delete:disabled{opacity:.5;cursor:not-allowed}.btn-delete-solid{gap:0;padding:8px 16px}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#06070ab8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-surface);border:1px solid var(--border-hover);border-radius:var(--radius-lg);width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px #00000080}.modal-sm{width:400px}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-header h2{font-size:var(--text-lg);letter-spacing:-.005em;color:var(--text-primary);margin:0;font-weight:600}.modal-title-danger{align-items:center;gap:var(--space-2);display:flex;color:var(--danger)!important}.modal-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color .15s var(--ease), background .15s var(--ease);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:inline-flex}.modal-close:hover{color:var(--text-primary);background:var(--bg-overlay)}.modal-body{padding:18px 24px 24px}.confirm-text{font-size:var(--text-sm);color:var(--text-secondary);margin:0 0 18px;line-height:1.6}.confirm-text strong{color:var(--text-primary)}.confirm-subtext{font-size:var(--text-xs);color:var(--text-muted);margin:0 0 14px}.confirm-keyword{color:var(--danger);font-family:var(--font-mono)}.confirm-input{background:var(--bg-base);border-radius:var(--radius-sm);width:100%;color:var(--danger);font-family:var(--font-mono);font-size:var(--text-sm);box-sizing:border-box;border:1px solid #e5484d4d;outline:none;margin-bottom:18px;padding:10px 12px}.confirm-input:focus{border-color:var(--danger)}.modal-form{flex-direction:column;gap:16px;padding:20px 24px;display:flex}.form-row{gap:var(--space-2);flex-direction:column;display:flex}.form-row label{font-size:var(--text-xs);color:var(--text-secondary);font-weight:500}.form-row input,.form-row textarea{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-sm);transition:border-color .15s var(--ease);resize:vertical;outline:none;padding:9px 12px}.form-row input:focus,.form-row textarea:focus{border-color:var(--accent)}.form-row input::placeholder,.form-row textarea::placeholder{color:var(--text-faint)}.password-input-wrap{align-items:center;gap:6px;display:flex}.password-input{flex:1;font-family:var(--font-mono)!important}.generate-btn{color:var(--accent)!important}.generate-options-open{color:var(--accent-high);background:var(--accent-soft)}.generator-panel{gap:var(--space-3);background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.category-selector{gap:6px;display:flex}.cat-btn{background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-family:var(--font-ui);font-size:var(--text-xs);cursor:pointer;transition:border-color .15s var(--ease), color .15s var(--ease), background .15s var(--ease);flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 10px;display:flex}.cat-btn:hover{border-color:var(--border-hover)}.cat-btn.active{border-color:var(--accent);color:var(--accent-high);background:var(--accent-soft)}.btn-secondary{background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--text-sm);cursor:pointer;transition:border-color .15s var(--ease);padding:9px 16px;font-weight:500}.btn-secondary:hover{border-color:var(--border-hover);color:var(--text-primary)}.modal-actions{gap:var(--space-2);justify-content:flex-end;padding-top:4px;display:flex}.form-row-split{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=720px){.form-row-split{grid-template-columns:1fr}}.field-hint{font-size:var(--text-2xs);color:var(--text-muted);margin-top:2px}.form-notice{align-items:center;gap:var(--space-2);background:var(--accent-soft);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary);border:1px solid #c6a15b4d;padding:10px 14px;display:flex}.form-error{align-items:center;gap:var(--space-2);background:var(--danger-soft);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--danger);border:1px solid #e5484d4d;padding:10px 14px;display:flex}.generator-output{justify-content:space-between;align-items:center;gap:var(--space-2);background:var(--bg-base);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;display:flex}.generator-password{font-size:var(--text-lg);word-break:break-all}.generator-range{width:100%;accent-color:var(--accent);cursor:pointer}.generator-options{gap:var(--space-2);flex-direction:column;display:flex}.generator-toggle{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;display:flex}.generator-toggle input[type=checkbox]{accent-color:var(--accent);cursor:pointer;width:15px;height:15px}.field-hint-danger{color:var(--danger)}.field-hint-warn{color:var(--warning)}.uppercase-input{text-transform:uppercase}.totp-secret-input{font-family:var(--font-mono);font-size:var(--text-xs)}.totp-code{letter-spacing:.08em}.totp-countdown{background:var(--border);border-radius:2px;height:3px;margin-top:8px;overflow:hidden}.totp-countdown-bar{background:var(--accent);height:100%;transition:width 1s linear}.card-number-wrap{display:flex;position:relative}.card-number-input{width:100%;font-family:var(--font-mono);letter-spacing:.06em;box-sizing:border-box;padding-right:92px!important}.card-brand-chip{pointer-events:none;font-size:var(--text-2xs);border-radius:var(--radius-pill);background:var(--bg-overlay);color:var(--text-secondary);border:1px solid var(--border);padding:4px 9px;font-weight:600;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.card-brand-chip-visa{color:#6fa0e8;border-color:#6fa0e859}.card-brand-chip-mastercard{color:#e89a4c;border-color:#e89a4c59}.card-brand-chip-amex{color:#6fc4c4;border-color:#6fc4c459}.card-brand-chip-diners{color:#b58ae0;border-color:#b58ae059}.card-brand-chip-discover{color:#e8b04c;border-color:#e8b04c59}.card-brand-chip-jcb{color:#7bc97b;border-color:#7bc97b59}.card-brand-chip-unionpay{color:#e06868;border-color:#e0686859}.card-brand-chip-unknown{color:var(--text-muted)}.card-preview{aspect-ratio:1.586;border-radius:var(--radius-md);color:#f2f0ea;width:100%;box-shadow:var(--shadow-sm);background:#1a1626;flex-direction:column;flex-shrink:0;justify-content:space-between;padding:18px 20px;display:flex;position:relative;overflow:hidden}.card-preview-visa{background:#16223d}.card-preview-mastercard{background:#2e1a0d}.card-preview-amex{background:#0f2626}.card-preview-diners{background:#201730}.card-preview-discover{background:#33260e}.card-preview-jcb{background:#0f2e1a}.card-preview-unionpay{background:#331515}.card-preview-unknown{background:#1a1626}.card-preview-top{justify-content:space-between;align-items:center;display:flex}.card-chip{border-radius:var(--radius-sm);background:linear-gradient(135deg,#e8ce86 0%,#b9954f 100%);width:34px;height:24px}.card-preview-brand{font-size:var(--text-xs);letter-spacing:.02em;opacity:.9;font-weight:700}.card-preview-number{font-family:var(--font-mono);font-size:var(--text-lg);letter-spacing:.08em}.card-preview-bottom{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.card-preview-label{text-transform:uppercase;letter-spacing:.05em;opacity:.65;margin-bottom:3px;font-size:9px}.card-preview-value{font-size:var(--text-xs);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.card-expired-banner{align-items:center;gap:var(--space-2);background:var(--danger-soft);border-radius:var(--radius-sm);color:var(--danger);font-size:var(--text-xs);border:1px solid #e5484d4d;padding:9px 12px;display:flex}.auth-error{align-items:center;gap:var(--space-2);background:var(--danger-soft);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--danger);border:1px solid #e5484d4d;padding:10px 14px;display:flex}.mobile-back-btn,.topbar-search-mobile{display:none}@media (width<=768px){.vault-layout{flex-direction:column;overflow:hidden}.vault-sidebar{width:100%;min-width:unset;border-right:none;border-top:1px solid var(--border);height:auto;padding-bottom:env(safe-area-inset-bottom);flex-direction:row;flex-shrink:0;order:3;overflow:visible}.sidebar-logo,.sidebar-search,.sidebar-footer{display:none}.sidebar-nav{flex-direction:row;gap:0;width:100%;padding:0;display:flex;overflow-x:auto}.nav-section-label{display:none}.nav-item{border-radius:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-width:52px;margin-bottom:0;padding:10px 4px 8px;font-size:9.5px}.nav-item.active{border-top:2px solid var(--accent);background:0 0}.nav-count,.nav-item-extra{display:none}.vault-main{flex:1;order:1;min-height:0;overflow:hidden}.main-topbar{min-width:0;padding:14px 16px}.topbar-title{font-size:var(--text-base);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.topbar-actions{flex-shrink:0;gap:6px}.topbar-actions .btn-primary{padding:8px}.topbar-actions .btn-primary span{display:none}.topbar-search-mobile{background:var(--bg-surface);border-bottom:1px solid var(--border);align-items:center;padding:12px 16px;display:flex;position:relative}.topbar-search-mobile input{background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-sm);box-sizing:border-box;outline:none;padding:9px 12px 9px 34px}.topbar-search-mobile input:focus{border-color:var(--accent)}.topbar-search-mobile input::placeholder{color:var(--text-faint)}.topbar-search-mobile .search-icon{left:28px}.entry-list{padding:10px}.entry-card{gap:14px;margin-bottom:8px;padding:13px 14px}.entry-icon-wrap{width:40px;height:40px;font-size:var(--text-lg)}.entry-label{font-size:var(--text-base)}.entry-username{font-size:var(--text-xs)}.entry-date{font-size:var(--text-2xs)}.vault-detail{z-index:50;border-left:none;flex-direction:column;display:flex;position:fixed;inset:0;width:100%!important;min-width:unset!important}.vault-detail-empty{display:none}.mobile-back-btn{align-items:center;gap:var(--space-2);border:none;border-bottom:1px solid var(--border);color:var(--accent);font-family:var(--font-ui);font-size:var(--text-sm);cursor:pointer;text-align:left;background:0 0;flex-shrink:0;width:100%;padding:14px 18px;font-weight:500;display:flex}.mobile-back-btn:active{background:var(--bg-overlay)}.field-mono{font-size:var(--text-sm)}.password-hidden{letter-spacing:.2em!important;font-size:20px!important;line-height:1.2!important}.password-visible{white-space:normal!important;word-break:break-all!important;font-size:13px!important;line-height:1.5!important}.field-value-row{align-items:flex-start}.icon-btn{margin-top:-3px;padding:7px}.detail-footer{padding:14px 18px;padding-bottom:max(14px, env(safe-area-inset-bottom))}.btn-edit,.btn-delete{font-size:var(--text-sm);padding:12px}.modal{border-radius:var(--radius-md);width:calc(100vw - 16px);max-height:95vh;margin:8px}.modal-form{padding:16px 20px}.cat-btn{font-size:var(--text-2xs);padding:8px 4px}}.mobile-logout-btn,.mobile-tool-btn{display:none}@media (width<=768px){.mobile-logout-btn,.mobile-tool-btn{display:flex}}.auth-layout{background:var(--bg-base);min-height:100vh;color:var(--text-primary);font-family:var(--font-ui);display:flex}.auth-left{border-right:1px solid var(--border);flex-direction:column;flex:1;justify-content:center;max-width:480px;padding:64px;display:flex}.auth-brand{align-items:center;gap:var(--space-2);margin-bottom:56px;display:flex}.brand-mark{border-radius:var(--radius-sm);background:var(--accent-soft);width:32px;height:32px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.brand-name{font-size:var(--text-lg);color:var(--text-primary);letter-spacing:-.01em;font-weight:700}.brand-tagline{font-size:var(--text-xs);color:var(--text-muted);margin-top:1px}.auth-headline{font-size:var(--text-2xl);letter-spacing:-.015em;color:var(--text-primary);max-width:360px;margin:0 0 16px;font-weight:700;line-height:1.25}.auth-sub{font-size:var(--text-base);color:var(--text-secondary);max-width:340px;margin:0 0 40px;line-height:1.65}.auth-pillars{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.auth-pillars li{align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5;display:flex}.pillar-icon{color:var(--accent);flex-shrink:0;margin-top:1px}.auth-right{flex:1;justify-content:center;align-items:center;padding:40px;display:flex}.auth-card{width:100%;max-width:380px}.auth-tabs{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);gap:2px;margin-bottom:32px;padding:3px;display:flex}.auth-tab{font-size:var(--text-sm);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:color .15s var(--ease), background .15s var(--ease);background:0 0;border:none;flex:1;padding:9px;font-weight:500}.auth-tab:hover{color:var(--text-secondary)}.auth-tab.active{background:var(--bg-overlay);color:var(--text-primary)}.auth-field{margin-bottom:18px}.auth-field label{font-size:var(--text-xs);color:var(--text-secondary);margin-bottom:7px;font-weight:500;display:block}.field-label-row{justify-content:space-between;align-items:center;margin-bottom:7px;display:flex}.field-label-row label{margin-bottom:0}.toggle-pass{font-size:var(--text-xs);color:var(--text-muted);cursor:pointer;transition:color .15s var(--ease);background:0 0;border:none;align-items:center;gap:5px;padding:0;display:inline-flex}.toggle-pass:hover{color:var(--accent)}.auth-field input{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-size:var(--text-base);box-sizing:border-box;transition:border-color .15s var(--ease);outline:none;padding:11px 14px}.auth-field input:focus{border-color:var(--accent)}.auth-field input::placeholder{color:var(--text-faint)}.auth-field input:disabled{opacity:.5;cursor:not-allowed}.strength-wrap{align-items:center;gap:var(--space-2);margin-top:10px;display:flex}.strength-bars{flex:1;gap:3px;display:flex}.strength-bar{height:3px;transition:background .3s var(--ease);border-radius:2px;flex:1}.strength-label{font-size:var(--text-2xs);font-family:var(--font-mono);white-space:nowrap;transition:color .3s var(--ease)}.argon-notice{align-items:center;gap:var(--space-2);background:var(--accent-soft);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--accent-high);border:1px solid #c6a15b4d;margin-bottom:16px;padding:10px 14px;display:flex}.argon-spinner{flex-shrink:0;animation:1s linear infinite spin}.auth-error{align-items:center;gap:var(--space-2);background:var(--danger-soft);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--danger);border:1px solid #e5484d4d;margin-bottom:16px;padding:10px 14px;display:flex}.master-warning{gap:var(--space-2);background:var(--accent-soft);border-radius:var(--radius-sm);border:1px solid #c6a15b4d;margin-bottom:18px;padding:12px 14px;display:flex}.warning-icon{color:var(--accent);flex-shrink:0;margin-top:2px}.master-warning p{font-size:var(--text-xs);color:var(--text-secondary);margin:0;line-height:1.55}.master-warning strong{color:var(--text-primary)}.btn-submit{background:var(--accent);width:100%;color:var(--accent-ink);border-radius:var(--radius-sm);padding:var(--space-3);font-size:var(--text-base);cursor:pointer;transition:background .15s var(--ease);border:none;margin-top:6px;font-weight:600}.btn-submit:hover:not(:disabled){background:var(--accent-high)}.btn-submit:disabled{opacity:.5;cursor:not-allowed}.auth-switch{text-align:center;font-size:var(--text-sm);color:var(--text-muted);margin-top:24px}.auth-switch button{color:var(--accent);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;padding:0;font-weight:500}.auth-switch button:hover{color:var(--accent-high)}.auth-legal-consent{font-size:var(--text-2xs);color:var(--text-muted);text-align:center;margin:14px 0 0;line-height:1.5}.auth-legal-consent a{color:var(--text-secondary);text-decoration:underline}.auth-legal-consent a:hover{color:var(--accent-high)}.auth-legal-footer{justify-content:center;gap:16px;margin-top:28px;display:flex}.auth-legal-footer a{font-size:var(--text-2xs);color:var(--text-faint);text-decoration:none}.auth-legal-footer a:hover{color:var(--text-muted)}@media (width<=768px){.auth-layout{flex-direction:column}.auth-left{border-right:none;border-bottom:1px solid var(--border);max-width:100%;padding:32px 24px}.auth-headline{max-width:none;font-size:26px}.auth-sub{max-width:none}.auth-right{padding:32px 24px}}.sessions-list{padding:8px 0}.session-card{border-bottom:1px solid var(--border);transition:background .15s var(--ease);align-items:center;gap:15px;padding:14px 24px;display:flex}.session-card:last-child{border-bottom:none}.session-card:hover{background:var(--bg-elevated)}.session-card.current{background:var(--accent-soft);border-left:2px solid var(--accent);padding-left:22px}.session-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.session-info{flex:1;min-width:0}.session-ua{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-primary);margin-bottom:4px;display:flex}.badge-current{font-size:var(--text-2xs);color:var(--accent-high);border-radius:var(--radius-pill);background:#c6a15b29;padding:2px 8px}.session-meta{font-size:var(--text-2xs);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.btn-revoke{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:border-color .15s var(--ease), color .15s var(--ease), background .15s var(--ease);background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:7px 9px;display:inline-flex}.btn-revoke:hover:not(:disabled){color:var(--danger);background:var(--danger-soft);border-color:#e5484d4d}.btn-revoke:disabled{opacity:.4;cursor:not-allowed}.btn-revoke-all{border-radius:var(--radius-sm);color:var(--danger);font-family:var(--font-ui);font-size:var(--text-xs);cursor:pointer;transition:background .15s var(--ease);white-space:nowrap;background:0 0;border:1px solid #e5484d4d;align-items:center;gap:6px;padding:7px 14px;font-weight:500;display:inline-flex}.btn-revoke-all:hover:not(:disabled){background:var(--danger-soft)}.btn-revoke-all:disabled{opacity:.4;cursor:not-allowed}.audit-list{padding:4px 0}.audit-row{border-bottom:1px solid var(--border);transition:background .15s var(--ease);align-items:center;gap:15px;padding:12px 24px;display:flex}.audit-row:last-child{border-bottom:none}.audit-row:hover{background:var(--bg-elevated)}.audit-icon{border-radius:var(--radius-sm);background:var(--bg-overlay);width:28px;height:28px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.audit-icon.action-login_success{background:var(--success-soft);color:var(--success)}.audit-icon.action-register{background:var(--accent-soft);color:var(--accent-high)}.audit-icon.action-login_failed{background:var(--danger-soft);color:var(--danger)}.audit-icon.action-logout,.audit-icon.action-vault_write{background:var(--bg-overlay);color:var(--text-muted)}.audit-icon.action-session_revoked{background:var(--danger-soft);color:var(--danger)}.audit-icon.action-password_change_attempt{background:var(--accent-soft);color:var(--accent-high)}.audit-info{flex:1;min-width:0}.audit-action{font-size:var(--text-sm);color:var(--text-primary);margin-bottom:3px}.audit-meta{font-size:var(--text-2xs);color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.audit-meta-extra{color:var(--text-faint)}.audit-date{font-size:var(--text-2xs);color:var(--text-faint);font-family:var(--font-mono);white-space:nowrap;flex-shrink:0}.audit-pagination{border-top:1px solid var(--border);justify-content:center;align-items:center;gap:16px;padding:16px 24px;display:flex}.btn-page{background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--text-xs);cursor:pointer;transition:border-color .15s var(--ease), color .15s var(--ease);padding:7px 14px}.btn-page:hover:not(:disabled){border-color:var(--accent);color:var(--accent-high)}.btn-page:disabled{opacity:.3;cursor:not-allowed}.page-info{font-size:var(--text-2xs);color:var(--text-muted);font-family:var(--font-mono)}@media (width<=768px){.sp-layout{padding:32px 20px 48px}.session-meta,.audit-meta{font-size:var(--text-2xs)}}.sp-layout{background:var(--bg-base);min-height:100vh;color:var(--text-primary);font-family:var(--font-ui);max-width:840px;margin:0 auto;padding:48px 40px 64px}.sp-header{margin-bottom:36px}.sp-back{align-items:center;gap:var(--space-2);color:var(--text-muted);font-family:var(--font-ui);font-size:var(--text-sm);cursor:pointer;transition:color .15s var(--ease);background:0 0;border:none;margin-bottom:24px;padding:0;display:inline-flex}.sp-back:hover{color:var(--accent)}.sp-title{font-size:var(--text-xl);letter-spacing:-.01em;color:var(--text-primary);margin:0 0 8px;font-weight:700}.sp-sub{font-size:var(--text-sm);color:var(--text-secondary);margin:0}.sp-loading{height:300px;color:var(--text-secondary);font-size:var(--text-sm);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.loading-mark{color:var(--accent)}.sp-content{flex-direction:column;gap:28px;display:flex}.sp-section{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.section-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.section-title{font-size:var(--text-base);color:var(--text-primary);margin:0 0 3px;font-weight:600}.section-sub{font-size:var(--text-xs);color:var(--text-muted);margin:0}.sep{color:var(--text-faint)}.summary-chips{gap:var(--space-2);flex-wrap:wrap;padding:20px 24px;display:flex}.summary-chip{align-items:center;gap:var(--space-2);background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition:border-color .15s var(--ease), color .15s var(--ease);padding:8px 13px;display:inline-flex}.summary-chip:hover{border-color:var(--border-hover);color:var(--text-primary)}.summary-chip-count{font-family:var(--font-mono);color:var(--text-primary);font-weight:600}.summary-chip.severity-danger .summary-chip-count{color:var(--danger)}.summary-chip.severity-warn .summary-chip-count{color:var(--warning)}.finding-list{padding:4px 0}.finding-row{border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s var(--ease);align-items:center;gap:15px;padding:12px 24px;display:flex}.finding-row:last-child{border-bottom:none}.finding-row:hover{background:var(--bg-elevated)}.finding-icon{border-radius:var(--radius-sm);background:var(--bg-overlay);width:28px;height:28px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.finding-icon.severity-danger{background:var(--danger-soft);color:var(--danger)}.finding-icon.severity-warn{background:var(--warning-soft);color:var(--warning)}.finding-info{flex:1;min-width:0}.finding-label{font-size:var(--text-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;overflow:hidden}.finding-reason{font-size:var(--text-2xs);color:var(--text-muted)}.finding-action{color:var(--text-faint);flex-shrink:0}.empty-finding{text-align:center;font-size:var(--text-xs);color:var(--text-muted);padding:24px}.pwned-check-btn{background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-ui);font-size:var(--text-xs);cursor:pointer;transition:border-color .15s var(--ease), color .15s var(--ease);flex-shrink:0;padding:8px 14px;font-weight:500}.pwned-check-btn:hover{border-color:var(--border-hover);color:var(--text-primary)}@media (width<=768px){.sp-layout{padding:32px 20px 48px}.summary-chips{padding:16px}.finding-row{padding:12px 16px}.section-header{padding:16px 16px 14px}}.legal-layout{background:var(--bg-base);min-height:100vh;color:var(--text-primary);font-family:var(--font-ui);padding:48px 24px 80px}.legal-container{max-width:720px;margin:0 auto}.legal-back{align-items:center;gap:var(--space-2);color:var(--text-muted);font-family:var(--font-ui);font-size:var(--text-sm);cursor:pointer;transition:color .15s var(--ease);background:0 0;border:none;margin-bottom:28px;padding:0;display:inline-flex}.legal-back:hover{color:var(--accent)}.legal-brand{align-items:center;gap:var(--space-2);margin-bottom:20px;display:flex}.legal-brand-mark{border-radius:var(--radius-sm);background:var(--accent-soft);width:30px;height:30px;color:var(--accent-high);justify-content:center;align-items:center;display:flex}.legal-brand-name{font-size:var(--text-lg);letter-spacing:-.01em;font-weight:600}.legal-nav{border-bottom:1px solid var(--border);gap:18px;margin-bottom:20px;padding-bottom:20px;display:flex}.legal-nav a{font-size:var(--text-sm);color:var(--text-secondary);transition:color .15s var(--ease);text-decoration:none}.legal-nav a:hover{color:var(--accent-high)}.legal-title{letter-spacing:-.01em;margin:0 0 8px;font-size:26px;font-weight:700}.legal-updated{font-size:var(--text-xs);color:var(--text-muted);margin:0 0 36px}.legal-content{font-size:var(--text-base);color:var(--text-secondary);line-height:1.7}.legal-content h2{font-size:var(--text-lg);color:var(--text-primary);letter-spacing:-.005em;margin:36px 0 12px;font-weight:600}.legal-content h2:first-child{margin-top:0}.legal-content p{margin:0 0 14px}.legal-content ul{margin:0 0 14px;padding-left:20px}.legal-content li{margin-bottom:6px}.legal-content strong{color:var(--text-primary);font-weight:600}.legal-content a{color:var(--accent);text-decoration:none}.legal-content a:hover{text-decoration:underline}.legal-placeholder{color:var(--danger);font-family:var(--font-mono);font-size:var(--text-xs);background:var(--danger-soft);border-radius:4px;padding:1px 6px}.legal-callout{background:var(--accent-soft);border-radius:var(--radius-md);font-size:var(--text-sm);border:1px solid #c6a15b4d;margin:20px 0;padding:14px 16px}.legal-callout strong{color:var(--accent-high)}@media (width<=640px){.legal-layout{padding:32px 18px 60px}.legal-title{font-size:var(--text-xl)}.legal-nav{flex-wrap:wrap;gap:12px 18px}}
