:root{--bg: #f0f4f1;--surface: #ffffff;--surface-2: #f7faf8;--surface-3: #edf2ee;--ink: #0d1f18;--ink-2: #1a3a2f;--muted: #526b63;--muted-light: #90aaa2;--accent: #15a37a;--accent-dark: #0f7d5d;--accent-subtle: #e3f5ed;--accent-subtle-2: #bfe8d3;--danger: #d93f55;--danger-subtle: #fce8eb;--warn: #d97706;--warn-subtle: #fef3e2;--line: #e0ebe6;--line-strong: #cddbd5;--shadow-xs: 0 1px 2px rgba(13, 31, 24, .06);--shadow-sm: 0 2px 8px rgba(13, 31, 24, .08), 0 1px 2px rgba(13, 31, 24, .05);--shadow: 0 4px 20px rgba(13, 31, 24, .1), 0 2px 6px rgba(13, 31, 24, .06);--shadow-lg: 0 20px 60px rgba(13, 31, 24, .16), 0 4px 16px rgba(13, 31, 24, .08);--r-xs: 6px;--r-sm: 8px;--r: 12px;--r-lg: 16px;--r-xl: 20px;--r-2xl: 24px}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;color:var(--ink);background:var(--bg);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,p{margin:0}input,textarea,select{font:inherit;width:100%;background:var(--surface-2);border:1.5px solid var(--line);border-radius:var(--r-sm);padding:9px 12px;color:var(--ink);outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #15a37a1f;background:var(--surface)}input::placeholder,textarea::placeholder{color:var(--muted-light)}input[readonly]{background:var(--surface-2);color:var(--ink-2);cursor:default}input[readonly]:focus{border-color:var(--line);box-shadow:none}textarea{resize:vertical;min-height:72px}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2352706b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px;width:auto}button{font:inherit;border:none;border-radius:var(--r-sm);padding:9px 16px;background:var(--accent);color:#fff;cursor:pointer;font-weight:500;font-size:.875rem;white-space:nowrap;transition:background .15s ease,box-shadow .15s ease,transform .1s ease;display:inline-flex;align-items:center;gap:6px}button:hover{background:var(--accent-dark)}button:active{transform:scale(.97)}.btn-primary{width:100%;justify-content:center;padding:11px 16px;font-size:.9375rem;border-radius:var(--r-sm);background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark);box-shadow:0 4px 14px #15a37a4d}.btn-ghost{background:var(--surface-3);color:var(--ink-2)}.btn-ghost:hover{background:var(--line);color:var(--ink)}.btn-danger{background:var(--danger-subtle);color:var(--danger)}.btn-danger:hover{background:#f8c8cf;color:#b02240}.btn-icon{background:transparent;color:var(--muted);padding:0;width:34px;height:34px;border-radius:var(--r-sm);justify-content:center;flex-shrink:0}.btn-icon:hover{background:var(--surface-3);color:var(--ink)}.btn-icon-danger:hover{background:var(--danger-subtle);color:var(--danger)}.btn-copy{background:var(--accent-subtle);color:var(--accent-dark);padding:8px 12px;font-size:.8125rem;min-width:76px;justify-content:center;border-radius:var(--r-sm)}.btn-copy:hover{background:var(--accent-subtle-2);color:var(--accent-dark)}.btn-copy.copied{background:#d1fae5;color:#065f46}.stack{display:grid;gap:12px}.shell{width:min(1400px,96vw);margin:0 auto;padding:16px 0 40px}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(ellipse at 25% 20%,rgba(21,163,122,.13) 0%,transparent 55%),radial-gradient(ellipse at 78% 82%,rgba(13,31,24,.07) 0%,transparent 48%),var(--bg)}.auth-card{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2xl);box-shadow:var(--shadow-lg);padding:40px 36px;display:grid;gap:24px}.auth-logo{display:flex;align-items:center;gap:12px}.auth-logo-icon{width:46px;height:46px;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);border-radius:13px;display:grid;place-items:center;color:#fff;flex-shrink:0;box-shadow:0 4px 12px #15a37a4d}.auth-logo-text h1{font-size:1.4375rem;font-weight:700;letter-spacing:-.025em;color:var(--ink)}.auth-logo-text p{font-size:.75rem;color:var(--muted-light);margin-top:1px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--surface-3);border-radius:var(--r);padding:4px;gap:4px}.auth-tabs button{background:transparent;color:var(--muted);border-radius:calc(var(--r) - 2px);padding:9px;font-weight:500;font-size:.875rem;justify-content:center;transition:all .15s ease}.auth-tabs button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-xs)}.auth-tabs button:hover:not(.active){background:#fff9;color:var(--ink-2)}.form-field{display:grid;gap:5px}.form-field label{font-size:.8125rem;font-weight:600;color:var(--muted);letter-spacing:.01em}.form-field label .opt{font-weight:400;color:var(--muted-light)}.app-shell{display:grid;gap:10px}.topbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);display:grid;grid-template-columns:auto 1fr auto;gap:12px;padding:10px 14px;align-items:center}.topbar-brand{display:flex;align-items:center;gap:8px}.brand-icon{width:32px;height:32px;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);border-radius:9px;display:grid;place-items:center;color:#fff;flex-shrink:0;box-shadow:0 2px 6px #15a37a40}.brand-name{font-size:.9375rem;font-weight:700;letter-spacing:-.02em;color:var(--ink)}.vault-pill{display:flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;margin-left:2px}.vault-pill.locked{background:var(--warn-subtle);color:var(--warn)}.vault-pill.unlocked{background:var(--accent-subtle);color:var(--accent-dark)}.topbar-search{position:relative}.topbar-search input{padding-left:36px}.topbar-search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted-light);pointer-events:none;display:flex}.topbar-actions{display:flex;align-items:center;gap:4px}.topbar-sep{width:1px;height:20px;background:var(--line);margin:0 2px}.vault-banner{background:var(--surface);border:1px solid #fde68a;border-left:4px solid var(--warn);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:18px 22px;display:grid;gap:14px}.vault-banner-header{display:flex;align-items:flex-start;gap:12px}.vault-banner-icon{width:36px;height:36px;background:var(--warn-subtle);border-radius:var(--r-sm);display:grid;place-items:center;color:var(--warn);flex-shrink:0}.vault-banner h2{font-size:.9375rem;font-weight:600;color:var(--ink-2)}.vault-banner p{font-size:.8125rem;color:var(--muted);margin-top:2px}.vault-form{display:grid;grid-template-columns:1fr auto;gap:8px}.workspace{display:grid;grid-template-columns:340px 1fr;gap:10px;min-height:66vh}.list-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:14px;display:grid;gap:10px;align-content:start;overflow:hidden}.list-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.list-head-label{font-size:.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.07em}.list-head-count{color:var(--muted-light);font-weight:400}.list-head select{font-size:.75rem;padding:5px 26px 5px 8px;border-radius:var(--r-xs);background:var(--surface-2);border:1.5px solid var(--line);color:var(--muted)}.group-bar{display:flex;flex-wrap:wrap;gap:4px}.chip{background:transparent;color:var(--muted);border-radius:999px;padding:4px 11px;font-size:.75rem;font-weight:500;border:1.5px solid var(--line);cursor:pointer;transition:all .12s ease}.chip:hover{background:var(--accent-subtle);color:var(--accent-dark);border-color:var(--accent-subtle-2)}.chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.entry-list{list-style:none;padding:0;margin:0;display:grid;gap:1px;max-height:64vh;overflow-y:auto}.entry-list::-webkit-scrollbar{width:3px}.entry-list::-webkit-scrollbar-track{background:transparent}.entry-list::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.entry-row{width:100%;text-align:left;display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:var(--r-sm);background:transparent;color:var(--ink);transition:background .1s ease}.entry-row:hover{background:var(--surface-3);color:var(--ink)}.entry-row.active{background:var(--accent-subtle);color:var(--ink)}.entry-row.active:hover{background:var(--accent-subtle-2)}.entry-avatar{width:34px;height:34px;border-radius:9px;flex-shrink:0;display:grid;place-items:center;font-size:.8125rem;font-weight:700;letter-spacing:-.01em}.entry-info{flex:1;min-width:0;display:grid;gap:1px}.entry-title{font-size:.875rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.entry-sub{font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-list-empty{padding:28px 16px;text-align:center;color:var(--muted-light);font-size:.8125rem}.detail-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:22px 26px;display:grid;gap:18px;align-content:start}.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--line)}.detail-head h2{font-size:1.1875rem;font-weight:700;letter-spacing:-.02em}.detail-host{display:flex;align-items:center;gap:4px;font-size:.8125rem;color:var(--muted);margin-top:3px}.detail-host a{color:inherit;text-decoration:none;transition:color .12s ease}.detail-host a:hover{color:var(--accent)}.detail-grid{display:grid;gap:16px}.field-label{font-size:.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.field-row{display:grid;grid-template-columns:1fr auto;gap:6px}.field-row-password{display:grid;grid-template-columns:1fr auto auto;gap:6px}.meta-box{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;display:grid;gap:5px;font-size:.8125rem;color:var(--muted)}.meta-box strong{color:var(--ink-2);font-weight:500}.description-box{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;font-size:.875rem;color:var(--muted);line-height:1.65}.empty-state{display:grid;place-items:center;text-align:center;padding:56px 24px;gap:14px}.empty-state-icon{width:60px;height:60px;background:var(--surface-3);border-radius:var(--r-lg);display:grid;place-items:center;color:var(--muted-light)}.empty-state h2{font-size:1rem;font-weight:600;color:var(--ink-2)}.empty-state p{font-size:.875rem;color:var(--muted);max-width:220px;line-height:1.6}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1f1885;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:grid;place-items:center;padding:24px;z-index:100;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{width:min(520px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:24px 26px;display:grid;gap:20px;animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.modal-header h2{font-size:1.0625rem;font-weight:700;letter-spacing:-.01em}.modal-header p{font-size:.8125rem;color:var(--muted);margin-top:4px;line-height:1.5}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.msg{display:flex;align-items:center;gap:7px;font-size:.8125rem;border-radius:var(--r-sm);padding:9px 12px;line-height:1.4}.msg-success{color:var(--accent-dark);background:var(--accent-subtle);border:1px solid var(--accent-subtle-2)}.msg-error{color:var(--danger);background:var(--danger-subtle);border:1px solid #f5b8c0}@media (max-width: 1024px){.workspace{grid-template-columns:1fr}.entry-list{max-height:42vh}.topbar{grid-template-columns:auto 1fr}.topbar-actions{grid-column:1 / -1;justify-content:flex-end}}@media (max-width: 640px){.shell{width:100%;padding:10px 12px 32px}.auth-card{padding:32px 24px;border-radius:var(--r-xl)}.topbar{grid-template-columns:1fr;gap:8px}.vault-form,.field-row,.field-row-password{grid-template-columns:1fr}.detail-panel{padding:16px 18px}}
