:root{--font:"Helvetica Neue",Helvetica,Arial,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-display:"Helvetica Neue",Helvetica,Arial,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--radius-sm:6px;--radius:10px;--radius-lg:14px;--radius-xl:20px;--shadow-xs:0 1px 2px rgba(0,0,0,.04);--shadow-sm:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--shadow:0 4px 6px -1px rgba(0,0,0,.07),0 2px 4px -2px rgba(0,0,0,.05);--shadow-md:0 10px 15px -3px rgba(0,0,0,.08),0 4px 6px -4px rgba(0,0,0,.04);--shadow-lg:0 20px 25px -5px rgba(0,0,0,.08),0 8px 10px -6px rgba(0,0,0,.04);--transition:180ms cubic-bezier(.4,0,.2,1);--transition-slow:300ms cubic-bezier(.4,0,.2,1)}html,html[data-theme=light]{--bg:#f8fafc;--bg-subtle:#f1f5f9;--surface:#fff;--surface-hover:#f8fafc;--surface-active:#f1f5f9;--border:#e2e8f0;--border-hover:#cbd5e1;--text:#0f172a;--text-secondary:#1e293b;--text-muted:#334155;--primary:#6366f1;--primary-hover:#4f46e5;--primary-light:#eef2ff;--primary-text:#4338ca;--danger:#ef4444;--danger-light:#fef2f2;--danger-hover:#dc2626;--success:#10b981;--success-light:#ecfdf5;--warning:#f59e0b;--warning-light:#fffbeb;--overlay:rgba(15,23,42,.3);--gradient-brand:linear-gradient(135deg,#6366f1,#8b5cf6 50%,#a78bfa);--input-bg:#fff;--badge-bg:#f1f5f9}html[data-theme=dark]{--bg:#0c0f1a;--bg-subtle:#111827;--surface:#1a1f36;--surface-hover:#232946;--surface-active:#2a3050;--border:#2a2f45;--border-hover:#3b4166;--text:#f1f5f9;--text-secondary:#e2e8f0;--text-muted:#cbd5e1;--primary:#818cf8;--primary-hover:#6366f1;--primary-light:rgba(129,140,248,.12);--primary-text:#a5b4fc;--danger:#f87171;--danger-light:hsla(0,91%,71%,.1);--danger-hover:#ef4444;--success:#34d399;--success-light:rgba(52,211,153,.1);--warning:#fbbf24;--warning-light:rgba(251,191,36,.1);--overlay:rgba(0,0,0,.55);--gradient-brand:linear-gradient(135deg,#818cf8,#a78bfa 50%,#c4b5fd);--input-bg:#111827;--badge-bg:#232946;--shadow-xs:0 1px 2px rgba(0,0,0,.2);--shadow-sm:0 1px 3px rgba(0,0,0,.3);--shadow:0 4px 6px rgba(0,0,0,.3);--shadow-md:0 10px 15px rgba(0,0,0,.3);--shadow-lg:0 20px 25px rgba(0,0,0,.3)}*,:after,:before{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv02","cv03","cv04","cv11";-moz-osx-font-smoothing:grayscale}a{color:var(--primary);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--primary-hover)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.02em;font-weight:700}::selection{background:var(--primary);color:#fff}.container{max-width:1140px;margin:0 auto;padding:0 1.25rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1.15rem;border:1px solid transparent;border-radius:var(--radius);font-family:var(--font);font-size:.875rem;font-weight:600;cursor:pointer;transition:all var(--transition);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1.4}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.55;pointer-events:none}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 1px 2px rgba(99,102,241,.3)}.btn-primary:hover{background:var(--primary-hover);box-shadow:0 4px 12px rgba(99,102,241,.25)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-secondary{background:var(--surface);color:var(--text-secondary);border-color:var(--border)}.btn-secondary:hover{background:var(--surface-hover);border-color:var(--border-hover);color:var(--text)}.btn-ghost{background:transparent;color:var(--text-muted);border:none;padding:.4rem .6rem}.btn-ghost:hover{background:var(--surface-active);color:var(--text)}.btn-sm{padding:.35rem .75rem;font-size:.8rem;border-radius:var(--radius-sm)}.btn-lg{padding:.7rem 1.5rem;font-size:1rem}.btn-icon{padding:.45rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:all var(--transition);display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-hover)}input,select,textarea{width:100%;background:var(--input-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem .85rem;font-family:var(--font);font-size:.9rem;outline:none;transition:all var(--transition);line-height:1.5}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}input::placeholder{color:var(--text-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-xs);transition:border-color var(--transition),box-shadow var(--transition)}.card:hover{box-shadow:var(--shadow-sm)}.fw-logo-text{font-family:var(--font-display);font-weight:800;letter-spacing:-.04em;color:var(--text);line-height:1}.fw-logo-accent{background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.fw-logo svg{filter:drop-shadow(0 2px 4px rgba(99,102,241,.2));transition:transform var(--transition)}.fw-logo:hover svg{transform:scale(1.05)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.35rem;font-size:.82rem;font-weight:600;color:var(--text-secondary);letter-spacing:.01em}.form-error{background:var(--danger-light);color:var(--danger)}.form-error,.form-success{font-size:.84rem;padding:.6rem .85rem;border-radius:var(--radius);margin-bottom:1rem;text-align:center}.form-success{background:var(--success-light);color:var(--success)}.landing{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow:hidden;background:var(--bg)}.landing-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.18;animation:blobFloat 20s ease-in-out infinite}.blob-1{width:600px;height:600px;background:var(--primary);top:-15%;right:-10%;animation-delay:0s}.blob-2{width:500px;height:500px;background:#8b5cf6;bottom:-10%;left:-8%;animation-delay:-7s}.blob-3{width:350px;height:350px;background:#06b6d4;top:40%;left:50%;animation-delay:-14s}@keyframes blobFloat{0%,to{transform:translate(0) scale(1)}25%{transform:translate(30px,-40px) scale(1.05)}50%{transform:translate(-20px,20px) scale(.95)}75%{transform:translate(15px,30px) scale(1.02)}}.landing-nav{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem}.theme-toggle{width:40px;height:40px;border-radius:12px}.theme-toggle:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.landing-hero{position:relative;z-index:2;flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;gap:1.5rem}.hero-icon{width:120px;height:120px;object-fit:contain;filter:drop-shadow(0 8px 24px rgba(0,0,0,.12));animation:iconFloat 4s ease-in-out infinite;-webkit-user-select:none;-moz-user-select:none;user-select:none}@keyframes iconFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.sso-btn{display:inline-flex;align-items:center;gap:.75rem;padding:.85rem 2rem;background:var(--surface);border:1.5px solid var(--border);border-radius:14px;font-family:var(--font);font-size:1rem;font-weight:600;cursor:pointer;transition:all var(--transition);box-shadow:var(--shadow-sm);margin-top:.5rem}.sso-btn,.sso-btn:hover{color:var(--text);text-decoration:none}.sso-btn:hover{border-color:var(--primary);box-shadow:var(--shadow-md),0 0 0 3px var(--primary-light);transform:translateY(-1px)}.sso-btn:active{transform:translateY(0)}.sso-btn svg:last-child{opacity:.4;transition:all var(--transition)}.sso-btn:hover svg:last-child{opacity:1;transform:translateX(2px)}.landing-footer{position:relative;z-index:2;text-align:center;padding:1.25rem 2rem;font-size:.78rem;color:var(--text-muted);opacity:.6}.app-layout{display:grid;grid-template-columns:250px 1fr;min-height:100vh;transition:grid-template-columns var(--transition-slow)}.app-layout.sidebar-collapsed{grid-template-columns:64px 1fr}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;z-index:50;transition:width var(--transition-slow)}.sidebar-brand{display:flex;align-items:center;gap:.65rem;padding:1.1rem 1.15rem;border-bottom:1px solid var(--border)}.sidebar-brand-text{font-size:1.15rem;font-weight:800;background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.03em;white-space:nowrap;font-family:var(--font-display)}.sidebar-nav{flex:1 1;padding:.75rem .65rem;display:flex;flex-direction:column;gap:.2rem}.sidebar-item{display:flex;align-items:center;gap:.7rem;padding:.6rem .85rem;border:none;border-radius:var(--radius);background:transparent;color:var(--text-muted);cursor:pointer;font-family:var(--font);font-size:.85rem;font-weight:600;transition:all var(--transition);white-space:nowrap;width:100%;text-align:left}.sidebar-item:hover{color:var(--text);background:var(--surface-hover)}.sidebar-item.active{color:var(--primary);background:var(--primary-light)}.sidebar-item svg{flex-shrink:0}.sidebar-collapsed .sidebar-item{justify-content:center;padding:.6rem}.sidebar-collapsed .sidebar-brand{justify-content:center;padding:1.1rem .5rem}.sidebar-footer{padding:.75rem .65rem;border-top:1px solid var(--border)}.sidebar-collapse-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:all var(--transition)}.sidebar-collapse-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-hover)}.app-main{display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 1.75rem;height:64px;background:var(--surface);border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;z-index:40;gap:1rem}.topbar-title h1{font-size:1.1rem;font-weight:700;color:var(--text);line-height:1.2;letter-spacing:-.02em;font-family:var(--font-display)}.topbar-title p{font-size:.78rem;color:var(--text-muted);margin-top:.1rem}.topbar-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.page-content{flex:1 1;padding:1.5rem 1.75rem 3rem;overflow-y:auto}.profile-wrapper{position:relative}.profile-trigger{display:flex;align-items:center;gap:.3rem;padding:.2rem;border:1px solid var(--border);border-radius:50px;background:var(--surface);cursor:pointer;transition:all var(--transition)}.profile-trigger:hover{border-color:var(--border-hover);background:var(--surface-hover)}.profile-trigger .chevron-icon{color:var(--text-muted);margin-right:.3rem}.profile-dropdown{position:absolute;right:0;top:calc(100% + 8px);width:280px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100;animation:slideUp .18s ease;overflow:hidden}.profile-dropdown-header{display:flex;align-items:center;gap:.75rem;padding:1rem}.avatar-lg{width:40px;height:40px;font-size:1rem}.profile-dropdown-name{font-size:.88rem;font-weight:700;color:var(--text)}.profile-dropdown-email{font-size:.75rem;color:var(--text-muted);word-break:break-all}.profile-dropdown-role{display:inline-block;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--primary);background:var(--primary-light);padding:.1rem .4rem;border-radius:4px;margin-top:.2rem}.profile-dropdown-divider{height:1px;background:var(--border)}.profile-dropdown-storage{padding:.75rem 1rem}.profile-dropdown-storage-row{display:flex;justify-content:space-between;font-size:.78rem;color:var(--text-secondary);margin-bottom:.35rem}.profile-dropdown-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.7rem 1rem;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-family:var(--font);font-size:.84rem;font-weight:500;transition:all var(--transition);text-align:left}.profile-dropdown-item:hover{background:var(--surface-hover);color:var(--text)}.profile-dropdown-item.danger{color:var(--danger)}.profile-dropdown-item.danger:hover{background:var(--danger-light)}.avatar{width:34px;height:34px;background:var(--gradient-brand);color:#fff;font-weight:700;font-size:.8rem}.avatar,.theme-toggle{border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.theme-toggle{width:36px;height:36px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;transition:all var(--transition);font-size:1.1rem}.theme-toggle:hover{border-color:var(--border-hover);color:var(--text);background:var(--surface-hover)}.tabs{gap:.25rem;padding:.25rem;background:var(--bg-subtle);border-radius:var(--radius);margin-bottom:1.5rem;border:1px solid var(--border)}.tab,.tabs{display:flex}.tab{flex:1 1;padding:.55rem .75rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;font-family:var(--font);font-size:.85rem;font-weight:600;transition:all var(--transition);align-items:center;justify-content:center;gap:.4rem}.tab.active,.tab:hover{color:var(--text);background:var(--surface)}.tab.active{box-shadow:var(--shadow-sm)}.tab-badge{font-size:.7rem;background:var(--badge-bg);color:var(--text-muted);padding:.1rem .4rem;border-radius:50px;min-width:20px;text-align:center}.tab.active .tab-badge{background:var(--primary-light);color:var(--primary)}.storage-bar{gap:1rem;padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1.5rem;font-size:.84rem}.storage-bar,.storage-info{display:flex;align-items:center}.storage-info{gap:.5rem;color:var(--text-secondary);white-space:nowrap}.storage-track{flex:1 1;height:6px;background:var(--bg-subtle);border-radius:50px;overflow:hidden}.storage-fill{height:100%;border-radius:50px;transition:width var(--transition-slow);background:var(--primary)}.storage-fill.warning{background:var(--warning)}.storage-fill.danger{background:var(--danger)}.storage-label{font-weight:600;color:var(--text);white-space:nowrap}.dashboard{display:grid;grid-gap:1rem;gap:1rem}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.section-title{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:0}.folder-toolbar{justify-content:space-between;gap:.75rem;padding:.65rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.breadcrumb,.folder-toolbar{display:flex;align-items:center;flex-wrap:wrap}.breadcrumb{gap:0;min-width:0}.breadcrumb-item{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .5rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;font-family:var(--font);font-size:.82rem;font-weight:600;transition:all var(--transition);white-space:nowrap}.breadcrumb-item:hover{color:var(--text);background:var(--surface-hover)}.breadcrumb-item.active{color:var(--text);font-weight:700}.breadcrumb-sep-group{display:inline-flex;align-items:center}.breadcrumb-sep{color:var(--text-muted);font-size:.78rem;opacity:.5;margin:0 .1rem}.folder-item{cursor:default}.folder-item:hover{border-color:var(--primary);background:var(--primary-light)}.folder-icon{background:var(--warning-light)!important;color:var(--warning)!important;cursor:pointer}html[data-theme=dark] .folder-icon{background:rgba(251,191,36,.12)!important;color:#fbbf24!important}.upload-progress-list{display:flex;flex-direction:column;gap:.5rem}.upload-progress-item{padding:.65rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.upload-progress-item.done{border-color:var(--success)}.upload-progress-item.error{border-color:var(--danger)}.upload-progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.upload-progress-name{font-size:.82rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}.upload-progress-pct{font-size:.78rem;font-weight:700;color:var(--primary)}.upload-progress-item.done .upload-progress-pct{color:var(--success)}.upload-progress-item.error .upload-progress-pct{color:var(--danger)}.upload-progress-track{width:100%;height:4px;background:var(--bg-subtle);border-radius:50px;overflow:hidden}.upload-progress-fill{height:100%;border-radius:50px;background:var(--primary);transition:width .2s ease}.upload-progress-fill.done{background:var(--success)}.upload-progress-fill.error{background:var(--danger)}.upload-area{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:2.5rem 1.5rem;text-align:center;cursor:pointer;transition:all var(--transition);background:var(--surface)}.upload-area.dragging,.upload-area:hover{border-color:var(--primary);background:var(--primary-light)}.upload-area.dragging{box-shadow:0 0 0 4px var(--primary-light)}.upload-icon{width:56px;height:56px;border-radius:14px;background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;margin:0 auto 1rem;font-size:1.6rem}.upload-title{font-size:.95rem;font-weight:600;color:var(--text);margin-bottom:.25rem}.upload-hint{font-size:.82rem;color:var(--text-muted)}.upload-hint strong{color:var(--primary)}.file-list{display:flex;flex-direction:column;gap:.5rem}.file-item{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition)}.file-item:hover{border-color:var(--border-hover);box-shadow:var(--shadow-xs)}.file-icon-wrap{width:40px;height:40px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.file-icon-wrap.doc{background:#dbeafe;color:#2563eb}.file-icon-wrap.img{background:#fce7f3;color:#db2777}.file-icon-wrap.vid{background:#ede9fe;color:#7c3aed}.file-icon-wrap.zip{background:#fef3c7;color:#d97706}.file-icon-wrap.code{background:#ecfdf5;color:#059669}.file-icon-wrap.generic{background:var(--bg-subtle);color:var(--text-muted)}html[data-theme=dark] .file-icon-wrap.doc{background:rgba(37,99,235,.15)}html[data-theme=dark] .file-icon-wrap.img{background:rgba(219,39,119,.15)}html[data-theme=dark] .file-icon-wrap.vid{background:rgba(124,58,237,.15)}html[data-theme=dark] .file-icon-wrap.zip{background:rgba(217,119,6,.15)}html[data-theme=dark] .file-icon-wrap.code{background:rgba(5,150,105,.15)}.file-info{flex:1 1;min-width:0}.file-name{font-weight:600;font-size:.9rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-meta{font-size:.78rem;color:var(--text-muted);margin-top:.15rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.file-actions{display:flex;gap:.35rem;flex-shrink:0}.encrypted-badge{display:inline-flex;align-items:center;gap:.2rem;font-size:.7rem;font-weight:600;color:var(--success);background:var(--success-light);padding:.1rem .4rem;border-radius:4px}.link-item{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition)}.link-item:hover{border-color:var(--border-hover);box-shadow:var(--shadow-xs)}.link-icon-wrap{width:40px;height:40px;border-radius:var(--radius);background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}.link-info{flex:1 1;min-width:0}.link-token{font-family:SF Mono,Fira Code,monospace;font-weight:700;font-size:.88rem;color:var(--primary)}.link-meta{font-size:.78rem;color:var(--text-muted);margin-top:.15rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.link-status{display:inline-flex;align-items:center;gap:.2rem;font-size:.72rem;font-weight:700;padding:.12rem .5rem;border-radius:50px;text-transform:uppercase;letter-spacing:.03em}.link-status.active{background:var(--success-light);color:var(--success)}.link-status.expired{background:var(--warning-light);color:var(--warning)}.link-status.revoked{background:var(--danger-light);color:var(--danger)}.modal-overlay{position:fixed;inset:0;background:var(--overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem;animation:fadeIn .18s ease}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.75rem;width:100%;max-width:460px;box-shadow:var(--shadow-lg);animation:slideUp .25s cubic-bezier(.4,0,.2,1)}.modal h2{margin-bottom:1.15rem;font-size:1.1rem;font-weight:700}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.empty{text-align:center;padding:3rem 1.5rem;color:var(--text-muted)}.empty-icon{font-size:2.5rem;margin-bottom:.75rem;opacity:.6}.empty-title{font-size:1rem;font-weight:600;color:var(--text-secondary);margin-bottom:.25rem}.empty-desc{font-size:.85rem}.trash-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.65rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:.75rem;flex-wrap:wrap;gap:.5rem}.trash-toolbar-left{display:flex;align-items:center;gap:1rem}.trash-toolbar-right{display:flex;align-items:center;gap:.5rem}.trash-count-badge{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;color:var(--text-muted);background:var(--bg-subtle);padding:.3rem .7rem;border-radius:20px}.trash-deleted-badge{display:inline-flex;align-items:center;font-size:.72rem;font-weight:500;color:var(--warning,#d97706);background:rgba(217,119,6,.08);padding:.1rem .45rem;border-radius:4px}html[data-theme=dark] .trash-deleted-badge{background:rgba(217,119,6,.15)}.trash-item{opacity:.92;border-style:dashed!important}.trash-item:hover{opacity:1}.trash-perm-delete{color:var(--danger)!important}.trash-perm-delete:hover{background:rgba(239,68,68,.08)!important;border-color:var(--danger)!important}.trash-empty{padding:4rem 2rem;background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius-lg);margin-top:.5rem}.trash-empty-icon{opacity:.35;margin-bottom:1rem}.security-grid{display:flex;flex-direction:column;gap:1.25rem}.security-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-xs)}.security-card-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem}.security-card-icon{width:36px;height:36px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}.security-card-icon.shield{background:var(--success-light);color:var(--success)}.security-card-icon.key{background:var(--warning-light);color:var(--warning)}.security-card-icon.device{background:var(--primary-light);color:var(--primary)}.security-card-icon.history{background:var(--bg-subtle);color:var(--text-muted)}.security-card-title{font-size:.95rem;font-weight:700}.security-card-desc{font-size:.84rem;color:var(--text-muted);margin-bottom:.75rem}.mfa-secret-box{background:var(--bg-subtle);border:1px solid var(--border);padding:.6rem;border-radius:var(--radius);font-family:SF Mono,Fira Code,monospace;font-size:.78rem;word-break:break-all;color:var(--text-secondary);margin:.5rem 0}.status-badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.82rem;font-weight:600;padding:.25rem .65rem;border-radius:50px}.status-badge.enabled{background:var(--success-light);color:var(--success)}.status-badge.disabled{background:var(--bg-subtle);color:var(--text-muted)}.alert-bar{padding:.65rem 1rem;border-radius:var(--radius);font-size:.84rem;font-weight:500;margin-bottom:1rem;animation:slideUp .2s ease}.alert-bar.success{background:var(--success-light);color:var(--success)}.alert-bar.error{background:var(--danger-light);color:var(--danger)}.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:.65rem 1.25rem;border-radius:50px;font-size:.84rem;font-weight:600;box-shadow:var(--shadow-lg);z-index:200;animation:toastIn .3s ease,toastOut .3s ease 1.7s forwards}@keyframes toastIn{0%{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0;transform:translateX(-50%) translateY(20px)}}.dashboard-overview{display:flex;flex-direction:column;gap:1.5rem}.stat-cards{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1rem;gap:1rem}.stat-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);transition:box-shadow var(--transition),border-color var(--transition)}.stat-card:hover{box-shadow:var(--shadow-sm);border-color:var(--border-hover)}.stat-card-info{display:flex;flex-direction:column;gap:.2rem}.stat-card-label{font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.stat-card-value{font-size:1.65rem;font-weight:800;color:var(--text);line-height:1.2}.stat-card-icon{width:44px;height:44px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card-icon.files-icon{background:var(--primary-light);color:var(--primary)}.stat-card-icon.storage-icon{background:var(--success-light);color:var(--success)}.stat-card-icon.links-icon{background:var(--warning-light);color:var(--warning)}.stat-card-icon.folders-icon{background:#ede9fe;color:#7c3aed}html[data-theme=dark] .stat-card-icon.folders-icon{background:rgba(124,58,237,.15)}.info-cards-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.info-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-xs)}.info-card-title{font-size:.92rem;font-weight:700;color:var(--text);margin-bottom:1rem;padding-bottom:.65rem;border-bottom:1px solid var(--border)}.storage-visual{display:flex;align-items:center;gap:1.5rem;justify-content:center}.storage-donut{flex-shrink:0}.storage-legend{display:flex;flex-direction:column;gap:.65rem}.storage-legend-item{display:flex;align-items:center;gap:.5rem;font-size:.84rem;color:var(--text-secondary)}.storage-legend-item strong{margin-left:auto;color:var(--text);font-size:.85rem}.storage-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.storage-legend-dot.used{background:var(--primary)}.storage-legend-dot.free{background:var(--border)}.quick-summary{display:flex;flex-direction:column;gap:0}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:.55rem 0;border-bottom:1px solid var(--border);font-size:.84rem;color:var(--text-secondary)}.summary-row:last-child{border-bottom:none}.summary-row strong{color:var(--text)}.data-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;font-size:.84rem}.data-table th{text-align:left;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.data-table td,.data-table th{padding:.6rem .75rem;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{color:var(--text-secondary)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--surface-hover)}.table-file-name{display:flex;align-items:center;gap:.5rem;color:var(--text);font-weight:600}.table-file-icon{font-size:1rem}.table-badge{display:inline-block;font-size:.72rem;font-weight:600;padding:.15rem .45rem;border-radius:4px;background:var(--badge-bg);color:var(--text-muted);text-transform:uppercase}@media (max-width:640px){.file-item,.link-item{flex-direction:column;align-items:flex-start;gap:.5rem}.file-actions{width:100%;justify-content:flex-end}.folder-toolbar{flex-direction:column;align-items:stretch}.breadcrumb{justify-content:flex-start}}@media (max-width:900px){.stat-cards{grid-template-columns:repeat(2,1fr)}.info-cards-row{grid-template-columns:1fr}}@media (max-width:768px){.app-layout{grid-template-columns:1fr}.sidebar{display:none}.topbar{padding:0 1rem}.page-content{padding:1rem 1rem 3rem}.stat-cards{grid-template-columns:1fr 1fr}}