:root{--bg: #080808;--surface: #0f0f0f;--surface-raised: #141414;--border: #1c1c1c;--border-active: #2a2a2a;--text: #d4d4c8;--text-dim: #555550;--text-muted: #333330;--accent: #00ff88;--accent-dim: #00cc6a;--accent-glow: rgba(0, 255, 136, .12);--danger: #ff3355;--danger-dim: #cc2944;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--font-display: "Space Mono", monospace;--radius: 2px;--transition: .12s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-mono);background:var(--bg);color:var(--text);font-size:13px;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100svh}#root{min-height:100svh;display:flex;flex-direction:column}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:0;opacity:.4}h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:.08em}.unlock-screen{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;gap:2rem;position:relative;z-index:1}.unlock-header{text-align:center}.logo{font-family:var(--font-display);font-size:2rem;font-weight:700;letter-spacing:.2em;line-height:1}.logo-bracket{color:var(--accent)}.logo-text{color:var(--text)}.tagline{margin-top:.5rem;color:var(--text-dim);font-size:11px;letter-spacing:.15em;text-transform:uppercase}.unlock-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.mode-tabs{display:flex;border-bottom:1px solid var(--border)}.tab{flex:1;padding:.75rem 1rem;background:none;border:none;color:var(--text-dim);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;cursor:pointer;transition:color var(--transition),background var(--transition)}.tab:hover{color:var(--text);background:var(--surface-raised)}.tab.active{color:var(--accent);border-bottom:2px solid var(--accent);margin-bottom:-1px}.reauth-banner{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:#ff33550f;border-left:3px solid var(--danger)}.reauth-icon{font-size:1.2rem;line-height:1;margin-top:1px;flex-shrink:0}.reauth-text{display:flex;flex-direction:column;gap:.3rem}.reauth-title{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;color:var(--danger)}.reauth-subtitle{font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;color:var(--text-dim);line-height:1.5}.unlock-form{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.unlock-footer{display:flex;gap:.5rem;justify-content:center}.badge{font-size:10px;letter-spacing:.1em;padding:3px 8px;border:1px solid var(--border-active);color:var(--text-dim);border-radius:var(--radius)}.field{display:flex;flex-direction:column;gap:.4rem}.field label{font-size:10px;letter-spacing:.15em;color:var(--text-dim);display:flex;align-items:center;gap:.5rem}.field input{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);font-size:13px;padding:.6rem .75rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition);width:100%}.field input:focus{border-color:var(--accent-dim);box-shadow:0 0 0 3px var(--accent-glow)}.field input::placeholder{color:var(--text-muted)}.field input:disabled{opacity:.5;cursor:not-allowed}.field-hint{font-size:10px;color:var(--text-dim);font-style:italic}.help-link{color:var(--accent-dim);text-decoration:none;font-size:10px;margin-left:auto}.help-link:hover{color:var(--accent)}.input-row{display:flex;gap:.5rem;align-items:center}.input-row input{flex:1}.btn-primary{background:var(--accent);color:#000;border:none;border-radius:var(--radius);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.12em;padding:.65rem 1.25rem;cursor:pointer;transition:background var(--transition),opacity var(--transition),box-shadow var(--transition)}.btn-primary:hover{background:var(--accent-dim);box-shadow:0 0 12px var(--accent-glow)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--text-dim);border:1px solid var(--border-active);border-radius:var(--radius);font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;padding:.65rem 1.25rem;cursor:pointer;transition:color var(--transition),border-color var(--transition)}.btn-secondary:hover{color:var(--text);border-color:var(--text-dim)}.btn-sm{padding:.4rem .75rem;font-size:11px}.btn-icon{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;padding:4px 6px;border-radius:var(--radius);transition:color var(--transition),background var(--transition);line-height:1}.btn-icon:hover{color:var(--text);background:var(--surface-raised)}.btn-icon.btn-danger:hover{color:var(--danger)}.btn-text{background:none;border:none;color:var(--accent-dim);font-family:var(--font-mono);font-size:11px;cursor:pointer;text-align:left;padding:0;text-decoration:underline;text-decoration-style:dotted}.btn-text:hover{color:var(--accent)}.error-msg{color:var(--danger);font-size:12px;padding:.5rem .75rem;border:1px solid var(--danger-dim);border-radius:var(--radius);background:#ff33550f}.error-inline{color:var(--danger);font-size:11px}.spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(0,0,0,.3);border-top-color:#000;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.vault-view{flex:1;display:flex;flex-direction:column;max-width:680px;width:100%;margin:0 auto;padding:0 1rem 2rem;position:relative;z-index:1}.vault-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--border);margin-bottom:1.25rem;gap:1rem}.vault-title{font-family:var(--font-display);font-size:1rem;font-weight:700;letter-spacing:.12em;display:flex;align-items:center;gap:0}.vault-user{color:var(--text-dim);font-weight:400}.header-actions{display:flex;align-items:center;gap:.75rem}.saving-indicator{color:var(--text-dim);font-size:11px;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.vault-toolbar{display:flex;gap:.75rem;margin-bottom:1.25rem}.search-input{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-mono);font-size:13px;padding:.5rem .75rem;outline:none;transition:border-color var(--transition)}.search-input:focus{border-color:var(--border-active)}.search-input::placeholder{color:var(--text-muted)}.entry-list{list-style:none;display:flex;flex-direction:column;gap:2px}.entry-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);animation:fadeSlideIn .2s ease both;transition:border-color var(--transition),background var(--transition)}.entry-item:hover{border-color:var(--border-active)}.entry-item.entry-expanded{border-color:var(--border-active);background:var(--surface-raised)}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.entry-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:.5rem 1rem;padding:.75rem 1rem;cursor:pointer;-webkit-user-select:none;user-select:none}.entry-site{display:flex;align-items:center;gap:.5rem;font-weight:700;color:var(--text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-favicon{flex-shrink:0;border-radius:2px}.entry-username{color:var(--text-dim);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-chevron{color:var(--text-dim);font-size:10px;transition:color var(--transition)}.entry-item:hover .entry-chevron{color:var(--text)}.entry-detail{padding:0 1rem 1rem;display:flex;flex-direction:column;gap:.75rem}.entry-detail-password{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem 1rem}.entry-detail-label{display:block;font-size:10px;color:var(--text-dim);letter-spacing:.1em;margin-bottom:.4rem}.entry-detail-dots{font-size:13px;color:var(--text);letter-spacing:.08em;word-break:break-all;min-height:1.6em;margin-bottom:.75rem}.entry-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.btn-detail{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;padding:.6rem 1rem;border-radius:var(--radius);cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}.btn-reveal{background:var(--accent);color:var(--bg);border:1px solid var(--accent);font-weight:700}.btn-reveal:hover{background:var(--accent-dim);border-color:var(--accent-dim)}.btn-reveal.active{background:var(--surface-raised);color:var(--accent);border-color:var(--accent-dim)}.btn-copy{background:transparent;color:var(--text-dim);border:1px solid var(--border-active)}.btn-copy:hover{color:var(--text);border-color:var(--text-dim)}.entry-detail-footer{display:grid;grid-template-columns:1fr auto;gap:.5rem}.btn-edit{background:transparent;color:var(--text-dim);border:1px solid var(--border-active)}.btn-edit:hover{color:var(--text);border-color:var(--text-dim)}.btn-delete{background:transparent;color:var(--danger);border:1px solid var(--danger-dim)}.btn-delete:hover{background:#ff335514}.empty-state{text-align:center;color:var(--text-dim);padding:3rem 1rem;font-size:12px;letter-spacing:.05em;border:1px dashed var(--border);border-radius:var(--radius)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--surface);border:1px solid var(--border-active);border-radius:var(--radius);width:100%;max-width:400px;animation:modalIn .15s ease}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .75rem;border-bottom:1px solid var(--border)}.modal-title{font-family:var(--font-display);font-size:12px;letter-spacing:.15em;color:var(--accent)}.entry-form{padding:1.25rem 1rem;display:flex;flex-direction:column;gap:1rem}.form-actions{display:flex;justify-content:flex-end;gap:.5rem;padding-top:.5rem}
