@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";
:root{--bg-primary:#0a0e14;--bg-secondary:#111820;--bg-card:#161d27;--bg-card-hover:#1a2332;--bg-elevated:#1e2836;--accent:#22c55e;--accent-hover:#16a34a;--accent-glow:#22c55e26;--accent-subtle:#22c55e14;--text-primary:#e8ecf1;--text-secondary:#8896a7;--text-muted:#5a6b7d;--text-inverse:#0a0e14;--border:#ffffff0f;--border-hover:#ffffff1a;--border-accent:#22c55e33;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px #22c55e26;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--font:"Inter",-apple-system,BlinkMacSystemFont,system-ui,sans-serif}[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f1f5f9;--bg-card:#fff;--bg-card-hover:#f8fafc;--bg-elevated:#fff;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-inverse:#fff;--border:#e2e8f0;--border-hover:#cbd5e1;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 32px #00000026;--btn-ghost-hover-bg:#0000000d;--file-icon-default-bg:#0000000d;--topbar-bg:#fffffff2;background:var(--bg-primary);color:var(--text-primary)}[data-theme=light] .vault-public{background:linear-gradient(135deg,#f0f7ff 0%,#fff 100%)}[data-theme=light] .topbar{background:#fffffff2;border-bottom-color:#e2e8f0}[data-theme=light] .page-title{background:linear-gradient(135deg,#0f172a,#475569);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}[data-theme=light] .btn-ghost{color:#475569}[data-theme=light] .btn-ghost:hover{color:#0f172a;background:#0000000d}[data-theme=light] .btn-secondary{color:#0f172a;background:#fff;border-color:#e2e8f0}[data-theme=light] .btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1}[data-theme=light] .file-icon-default{color:#64748b;background:#0000000f}[data-theme=light] .tabs{background:#f1f5f9}[data-theme=light] .tab.active{color:#0f172a;background:#fff;box-shadow:0 1px 3px #0000001a}[data-theme=light] .tab{color:#64748b}[data-theme=light] .dropzone{border-color:#cbd5e1}[data-theme=light] .card{background:#fff;border-color:#e2e8f0;box-shadow:0 1px 3px #0000000f}[data-theme=light] .modal{background:#fff;border-color:#e2e8f0}[data-theme=light] .file-item{background:#f8fafc;border-color:#e2e8f0}[data-theme=light] .file-item:hover{background:#f1f5f9;border-color:#cbd5e1}[data-theme=light] .toast{color:#0f172a;background:#fff;border-color:#e2e8f0}[data-theme=light] .stat-card{background:#fff;border-color:#e2e8f0}[data-theme=light] .pin-digit{color:#0f172a;background:#f1f5f9;border-color:#e2e8f0}[data-theme=light] ::-webkit-scrollbar-thumb{background:#00000026}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff26}.btn{border-radius:var(--radius-sm);font-family:var(--font);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-hover));color:var(--text-inverse);box-shadow:var(--shadow-sm),var(--shadow-glow)}.btn-primary:hover{box-shadow:var(--shadow-md),0 0 30px #22c55e33;transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}.btn-danger{color:var(--danger);background:#ef44441a;border:1px solid #ef444433}.btn-danger:hover{background:#ef444426}.btn-ghost{color:var(--text-secondary);background:0 0;padding:8px 12px}.btn-ghost:hover{color:var(--text-primary);background:var(--btn-ghost-hover-bg,#ffffff0a)}.btn-sm{min-height:36px;padding:6px 14px;font-size:12px}.btn-lg{padding:14px 28px;font-size:16px}.input{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font);outline:none;padding:12px 16px;font-size:14px;transition:all .2s}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.input::placeholder{color:var(--text-muted)}.label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;transition:all .2s}.card:hover{border-color:var(--border-hover)}.card-clickable:hover{background:var(--bg-card-hover);cursor:pointer;transform:translateY(-1px)}.badge{text-transform:uppercase;letter-spacing:.04em;border-radius:6px;align-items:center;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.badge-active{color:var(--success);background:#22c55e1a}.badge-disabled{color:var(--danger);background:#ef44441a}.badge-info{color:var(--info);background:#3b82f61a}.container{max-width:1200px;margin:0 auto;padding:0 24px}.page-header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.page-title{letter-spacing:-.02em;background:linear-gradient(135deg,var(--text-primary),var(--text-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:28px;font-weight:800}.page-subtitle{color:var(--text-muted);margin-top:4px;font-size:14px}.topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);z-index:100;background:#0a0e14d9;justify-content:space-between;align-items:center;padding:16px 24px;display:flex;position:sticky;top:0}.topbar-brand{letter-spacing:-.01em;align-items:center;gap:10px;font-size:16px;font-weight:700;display:flex}.topbar-brand-icon{background:linear-gradient(135deg,var(--accent),var(--accent-hover));border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:24px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:480px;padding:32px;animation:.3s cubic-bezier(.22,1,.36,1) slideUp}.modal-title{margin-bottom:8px;font-size:20px;font-weight:700}.modal-desc{color:var(--text-secondary);margin-bottom:24px;font-size:14px;line-height:1.5}.dropzone{border:2px dashed var(--border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;padding:56px 32px;transition:all .2s}.dropzone:hover,.dropzone.active{border-color:var(--accent);background:var(--accent-subtle)}.dropzone-icon{opacity:.5;margin-bottom:16px;font-size:48px}.dropzone-text{color:var(--text-secondary);margin-bottom:4px;font-size:16px;font-weight:600}.dropzone-sub{color:var(--text-muted);font-size:13px}.pin-container{justify-content:center;gap:8px;margin:24px 0;display:flex}.pin-digit{text-align:center;background:var(--bg-secondary);border:2px solid var(--border);border-radius:var(--radius-md);width:52px;height:60px;color:var(--text-primary);font-size:24px;font-weight:700;font-family:var(--font);outline:none;transition:all .2s}.pin-digit:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-in{animation:.4s cubic-bezier(.22,1,.36,1) slideUp}.file-item{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:14px;min-height:56px;margin-bottom:8px;padding:14px 16px;transition:all .2s;display:flex;overflow:hidden}.file-item:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}@keyframes upload-queued-pulse{0%,to{opacity:.15}50%{opacity:.4}}.upload-pending-queued{opacity:.15;animation:1.8s ease-in-out infinite upload-queued-pulse}.upload-pending-uploading{opacity:.5}.upload-progress-bar{background:var(--accent);border-radius:0 2px 2px 0;min-width:4px;height:3px;transition:width .15s;position:absolute;bottom:0;left:0}.file-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:flex}.file-icon-pdf{color:var(--danger);background:#ef44441a}.file-icon-img{color:var(--info);background:#3b82f61a}.file-icon-doc{color:var(--success);background:#22c55e1a}.file-icon-default{background:var(--file-icon-default-bg,#ffffff0a);color:var(--text-muted)}.file-name{color:var(--text-primary);font-size:15px;font-weight:500}.file-meta{color:var(--text-muted);margin-top:2px;font-size:12px}.grid-2{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.stat-value{letter-spacing:-.02em;margin-bottom:4px;font-size:32px;font-weight:800}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600}@media (max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:16px}.container{padding:0 16px}.modal{padding:24px}}@media (max-width:640px){.vault-stats-share-grid{grid-template-columns:1fr!important}}@media (max-width:480px){.topbar{padding:12px 16px}.topbar-brand span{display:none}}.vault-public{background:radial-gradient(at top,#111820 0%,#0a0e14 70%);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.vault-public-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:580px;padding:40px;animation:.5s cubic-bezier(.22,1,.36,1) slideUp}.vault-public-header{margin-bottom:32px}.vault-public-topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:20px;display:flex}.vault-public-brand{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.first-time-banner{border-radius:var(--radius-md);background:#f0f9ff;border:1px solid #bae6fd;margin-bottom:20px;padding:14px 16px;position:relative}[data-theme=dark] .first-time-banner{background:#3b82f614;border-color:#3b82f633}.vault-public-icon{background:linear-gradient(135deg,var(--accent),var(--accent-hover));width:64px;height:64px;box-shadow:var(--shadow-glow);border-radius:16px;justify-content:center;align-items:center;margin:0 auto 16px;font-size:28px;display:flex}.vault-public-name{margin-bottom:4px;font-size:24px;font-weight:700}.vault-public-sub{color:var(--text-muted);font-size:14px}.upload-success{text-align:center;padding:32px;animation:.4s cubic-bezier(.22,1,.36,1) slideUp}.upload-success-icon{background:#22c55e1a;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 16px;font-size:32px;display:flex}.tabs{background:var(--bg-secondary);border-radius:var(--radius-sm);gap:4px;margin-bottom:24px;padding:4px;display:flex}.tab{font-family:var(--font);cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:6px;flex:1;padding:10px 16px;font-size:13px;font-weight:600;transition:all .2s}.tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm)}.empty-state{text-align:center;color:var(--text-muted);padding:48px 24px}.empty-state-icon{opacity:.3;margin-bottom:16px;font-size:48px}.empty-state-text{color:var(--text-secondary);margin-bottom:8px;font-size:16px;font-weight:500}.empty-state-sub{font-size:13px}.qr-container{border-radius:var(--radius-md);background:#fff;margin:16px 0;padding:16px;display:inline-flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:2000;align-items:center;gap:8px;padding:14px 20px;font-size:14px;font-weight:500;animation:.3s slideUp;display:flex;position:fixed;bottom:24px;right:24px}.print-portal{display:flex}@media print{@page{margin:0;size:letter portrait}html,body{background:#fff!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important}body>*{display:none!important}body>.print-portal{background:#fff!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;display:block!important;position:static!important}.print-portal .btn,.print-portal .modal-title,.print-portal .modal-desc,.print-portal button{display:none!important}.print-portal .modal{width:100%!important;max-width:none!important;box-shadow:none!important;background:#fff!important;margin:0!important;padding:0!important;position:static!important}.print-portal .modal-preview-box{background:#fff!important;border:none!important;max-height:none!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.print-portal .preview-scale-v2{box-shadow:none!important;margin:0!important;display:block!important;transform:none!important}.print-page-v2{page-break-after:always;visibility:visible!important;box-sizing:border-box!important;background:#fff!important;flex-direction:column!important;width:8.5in!important;height:11in!important;margin:0 auto!important;padding:.5in!important;display:flex!important;position:relative!important}.print-page-v2,.print-page-v2 *{visibility:visible!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}}.modal-preview-box{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:12px;justify-content:center;width:100%;max-height:60vh;margin-bottom:24px;padding:20px;display:flex;overflow:auto}.preview-scale-v2{transform-origin:top;margin-bottom:-320px;transform:scale(.6);box-shadow:0 20px 50px #0000001a}.print-page-v2{background:#fff;flex-direction:column;width:8.5in;height:11in;padding:.5in;display:flex}.print-cards-row{justify-content:center;gap:.25in;margin-bottom:.5in;display:flex!important}.vault-card-print{color:#0f172a;box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;justify-content:space-between;width:3.375in;height:2.125in;padding:16px;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}@media print{.vault-card-print{box-shadow:none!important;border:1px solid #cbd5e1!important}}.vault-card-header{justify-content:space-between;align-items:flex-start;display:flex}.vault-card-logo{letter-spacing:-.01em;color:var(--accent);font-size:11px;font-weight:800}.vault-card-body{align-items:center;gap:12px;display:flex}.vault-card-qr{background:#fff;border:1px solid #f1f5f9;border-radius:6px;padding:4px}.vault-card-info{flex:1}.vault-card-name{color:#1e293b;white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:14px;font-weight:700;overflow:hidden}.vault-card-id{color:#64748b;background:#f1f5f9;border-radius:4px;width:fit-content;padding:2px 6px;font-family:monospace;font-size:10px}.vault-card-footer{color:#94a3b8;border-top:1px solid #f1f5f9;justify-content:space-between;padding-top:8px;font-size:8px;display:flex}.vault-card-inverted{display:block}.print-main-content{border-top:1px solid #e2e8f0;flex:1;padding-top:.5in}.print-title{margin-bottom:24px;font-size:28px;font-weight:800}.print-instruction-grid{grid-template-columns:1fr 1fr;gap:32px;margin-bottom:40px;display:grid}.keychain-promo{text-align:center;background:#f0fdf4;border:2px solid #bbf7d0;border-radius:20px;padding:32px}.keychain-promo h2{color:#166534;margin-bottom:12px}
