@charset "UTF-8";@font-face{font-family:DM Mono;font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTW7PB1QTsUX8KYth-gCKSIUKw.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTW7PB1QTsUX8KYth-gBqSI.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTR7PB1QTsUX8KYvrGyEY2tbZX9.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTR7PB1QTsUX8KYvrGyEYOtbQ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYthSQBLyM.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTU7PB1QTsUX8KYthqQBA.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTR7PB1QTsUX8KYvumzEY2tbZX9.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/dmmono/v16/aFTR7PB1QTsUX8KYvumzEYOtbQ.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f0f2f5;--surface: #ffffff;--surface2: #e8ecf2;--border: #d4dae6;--accent: #3a6fd8;--accent-dim: #dce8ff;--danger: #c94f4f;--success: #2e8f60;--text: #1e2433;--muted: #7a849a;--radius: 10px;--font: "DM Mono", "Fira Code", monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh}.auth-wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 30% 20%,#dce8ff 0%,var(--bg) 65%)}.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2.5rem 2rem;display:flex;flex-direction:column;gap:1.5rem;box-shadow:0 8px 32px #3c508c14}.brand{text-align:center}.brand .brand-icon{font-size:2rem}.brand h1{font-size:1.8rem;letter-spacing:.08em;color:var(--accent);margin-top:.25rem}.brand .brand-sub{color:var(--muted);font-size:.8rem;margin-top:.25rem}form{display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.35rem}.field label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.field input{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font);font-size:.9rem;padding:.65rem .9rem;outline:none;transition:border-color .2s,box-shadow .2s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3a6fd81a}.field input::placeholder{color:var(--border)}.field .field-error{font-size:.72rem;color:var(--danger)}.error-banner{background:#c94f4f14;border:1px solid rgba(201,79,79,.35);border-radius:var(--radius);color:var(--danger);padding:.6rem .9rem;font-size:.82rem}.success-banner{background:#2e8f6014;border:1px solid rgba(46,143,96,.35);border-radius:var(--radius);color:var(--success);padding:.6rem .9rem;font-size:.82rem}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:.75rem;font-family:var(--font);font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .1s,box-shadow .2s;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px #3a6fd840}.btn-primary:hover:not(:disabled){opacity:.88;box-shadow:0 4px 16px #3a6fd859}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-link{text-align:center;font-size:.8rem;color:var(--muted)}.auth-link a{color:var(--accent);text-decoration:none}.auth-link a:hover{text-decoration:underline}.dashboard{display:flex;min-height:100vh}.sidebar{width:220px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1.5rem 1rem;gap:.5rem;position:fixed;top:0;left:0;bottom:0;box-shadow:2px 0 12px #3c508c0a}.sidebar-brand{display:flex;align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;color:var(--accent);padding:0 .5rem 1rem;border-bottom:1px solid var(--border);margin-bottom:.5rem}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:.25rem}.nav-item{display:flex;align-items:center;gap:.65rem;padding:.6rem .75rem;border-radius:var(--radius);color:var(--muted);font-size:.85rem;cursor:pointer;text-decoration:none;transition:background .15s,color .15s}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:var(--accent-dim);color:var(--accent)}.nav-item .nav-icon{font-size:1rem}.btn-logout{background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);font-family:var(--font);font-size:.82rem;padding:.55rem .75rem;cursor:pointer;display:flex;align-items:center;gap:.4rem;transition:border-color .2s,color .2s,background .2s}.btn-logout:hover{border-color:#c94f4f80;color:var(--danger);background:#c94f4f0d}.main{margin-left:220px;flex:1;padding:2rem 2.5rem;display:flex;flex-direction:column;gap:2rem}.top-bar h2{font-size:1.4rem}.top-bar h2 .highlight{color:var(--accent)}.top-bar .subtext{color:var(--muted);font-size:.82rem;margin-top:.25rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;display:flex;align-items:center;gap:1rem;box-shadow:0 2px 8px #3c508c0d}.stat-card .stat-icon{font-size:1.8rem}.stat-card .stat-info{display:flex;flex-direction:column;gap:.1rem}.stat-card .stat-value{font-size:1.6rem;font-weight:700;color:var(--text)}.stat-card .stat-label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.vault-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:0 2px 8px #3c508c0d}.vault-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.vault-section .section-header h3{font-size:.95rem}.btn-add{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:.5rem 1rem;font-family:var(--font);font-size:.8rem;cursor:pointer;transition:opacity .2s,box-shadow .2s;box-shadow:0 2px 8px #3a6fd833}.btn-add:hover{opacity:.85;box-shadow:0 4px 12px #3a6fd84d}.empty-state{text-align:center;padding:3rem 0;color:var(--muted)}.empty-state .empty-icon{font-size:3rem;margin-bottom:.75rem;opacity:.5}.empty-state p{font-size:.95rem;color:var(--text)}.empty-state span{font-size:.8rem}
