:root{--bg: #0f1419;--surface: #1a2332;--surface-2: #243044;--border: #2d3f56;--text: #e8eef5;--text-muted: #8fa3bf;--primary: #3b82f6;--primary-hover: #2563eb;--danger: #ef4444;--danger-hover: #dc2626;--radius: 10px;--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh}a{color:var(--primary)}button,input{font:inherit}.btn{border:none;border-radius:var(--radius);padding:.55rem 1rem;cursor:pointer;font-weight:500;transition:background .15s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-sm{padding:.35rem .75rem;font-size:.875rem}.link-btn{background:none;border:none;color:var(--primary);cursor:pointer;margin-left:.5rem;text-decoration:underline}.loading-screen{display:grid;place-items:center;min-height:100vh;color:var(--text-muted)}.auth-page{display:grid;place-items:center;min-height:100vh;padding:1.5rem}.auth-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);padding:2rem}.brand{margin:0;font-size:1.75rem;font-weight:700;letter-spacing:-.02em}.auth-subtitle{margin:.25rem 0 1.5rem;color:var(--text-muted)}.auth-form label{display:block;margin-bottom:1rem;font-size:.875rem;color:var(--text-muted)}.auth-form input{display:block;width:100%;margin-top:.35rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text)}.auth-form input:focus{outline:2px solid var(--primary);outline-offset:1px}.auth-form .btn{width:100%;margin-top:.5rem}.auth-footer{margin:1.5rem 0 0;text-align:center;font-size:.875rem;color:var(--text-muted)}.hint{margin:-.5rem 0 .5rem;font-size:.8rem;color:var(--text-muted)}.error-banner{background:#ef444426;border:1px solid var(--danger);color:#fecaca;padding:.75rem 1rem;border-radius:var(--radius);margin:0 0 1rem;font-size:.9rem}.muted{color:var(--text-muted)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--surface);position:sticky;top:0;z-index:10}.brand-inline{margin:0;font-size:1.25rem;font-weight:700}.topbar-actions{display:flex;gap:.5rem}.layout{display:flex;flex:1;min-height:0}.sidebar{width:200px;flex-shrink:0;padding:1rem .75rem;border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;gap:.25rem}.nav-item{text-align:left;padding:.6rem .75rem;border:none;border-radius:var(--radius);background:transparent;color:var(--text-muted);cursor:pointer}.nav-item.active{background:var(--surface-2);color:var(--text);font-weight:500}.nav-item:disabled{opacity:.45;cursor:not-allowed}.main-content{flex:1;padding:1.25rem;overflow-y:auto;transition:background .15s}.main-content.drag-over,.files-panel.drag-over{background:#3b82f614;outline:2px dashed var(--primary);outline-offset:-8px}.files-panel{min-height:100%}.trash-subtree-hint{display:block;margin-top:.15rem;font-size:.85rem}.sidebar .nav-item{text-decoration:none;display:block;width:100%;font:inherit}.main-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.main-header h2{margin:0;font-size:1.25rem}.file-list{list-style:none;margin:0;padding:0}.file-row{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:.5rem}.file-icon{font-size:1.5rem;flex-shrink:0}.file-meta{flex:1;min-width:0}.file-name{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-details{display:block;font-size:.8rem;color:var(--text-muted)}.file-actions{display:flex;gap:.35rem;flex-shrink:0}.upload-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;margin-bottom:1rem}.upload-title{margin:0 0 .75rem;font-size:.9rem;color:var(--text-muted)}.upload-list{list-style:none;margin:0;padding:0}.upload-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.upload-row:last-child{border-bottom:none}.upload-info{flex:1;min-width:0}.upload-name{display:block;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-done{color:#4ade80;font-size:.85rem}.upload-error{color:#fecaca;font-size:.85rem}.progress-bar{height:6px;background:var(--surface-2);border-radius:3px;margin-top:.35rem;overflow:hidden}.progress-fill{height:100%;background:var(--primary);border-radius:3px;transition:width .2s}.upload-actions{display:flex;gap:.25rem}.empty-state{text-align:center;padding:3rem 1.5rem;border:1px dashed var(--border);border-radius:var(--radius)}.empty-title{margin:0 0 .5rem;font-size:1.1rem}.empty-subtitle{margin:0 0 1.5rem;color:var(--text-muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;padding:1rem;z-index:100}.modal{background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);padding:1.5rem;max-width:400px;width:100%}.modal h3{margin:0 0 .5rem;word-break:break-word}.modal p{margin:0 0 1.25rem;color:var(--text-muted)}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem}.modal-wide{max-width:440px}.share-expiry{border:none;margin:0 0 1rem;padding:0}.share-expiry legend{font-size:.9rem;color:var(--text-muted);margin-bottom:.5rem}.radio-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem;font-size:.95rem;cursor:pointer}.share-link-display{word-break:break-all;font-size:.9rem;margin:0 0 1.25rem}.existing-shares{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.existing-shares h4{margin:0 0 .75rem;font-size:.9rem;color:var(--text-muted)}.share-list{list-style:none;margin:0;padding:0}.share-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.share-row:last-child{border-bottom:none}.share-expiry-label{font-size:.875rem}.share-row-actions{display:flex;gap:.35rem;flex-shrink:0}.public-share-page{min-height:100vh;display:flex;flex-direction:column}.public-share-header{padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:var(--surface)}.public-share-main{flex:1;display:grid;place-items:center;padding:1.5rem}.public-share-card{width:100%;max-width:400px;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);padding:2rem 1.5rem}.public-share-card.unavailable p{margin:0;color:var(--text-muted)}.public-file-icon{font-size:2.5rem;display:block;margin-bottom:.75rem}.public-filename{margin:0 0 .5rem;font-size:1.25rem;word-break:break-word}.public-mime{margin:0;color:var(--text-muted);font-size:.9rem}.public-size{margin:.25rem 0 1rem;font-size:1rem}.public-expires{margin:0 0 1.25rem;font-size:.9rem;color:var(--text-muted)}.btn-lg{padding:.75rem 1.5rem;font-size:1rem;width:100%;max-width:240px}.main-content-full{flex:1;max-width:960px;margin:0 auto;width:100%}.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem;font-size:1rem;min-width:0}.breadcrumb-segment{display:inline-flex;align-items:center;min-width:0}.breadcrumb-sep{margin:0 .35rem;color:var(--text-muted)}.breadcrumb-link{background:none;border:none;color:var(--primary);cursor:pointer;padding:0;font:inherit;text-decoration:underline;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breadcrumb-current{font-weight:500;max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-field{display:block;margin-bottom:1rem;font-size:.875rem;color:var(--text-muted)}.form-field input{display:block;width:100%;margin-top:.35rem;padding:.65rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text)}.folder-row{padding:0}.folder-open{flex:1;display:flex;align-items:center;gap:.75rem;min-width:0;padding:.85rem 1rem;border:none;background:transparent;color:inherit;cursor:pointer;text-align:left;font:inherit}.folder-open:hover{background:#3b82f60f}.folder-tree{list-style:none;margin:0 0 1rem;padding:0;max-height:240px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius)}.folder-tree-item{display:block;width:100%;text-align:left;padding:.5rem .75rem;border:none;background:transparent;color:var(--text);cursor:pointer;font:inherit}.folder-tree-item:hover,.folder-tree-item.selected{background:var(--surface-2)}.empty-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}@media (max-width: 768px){.layout{flex-direction:column}.sidebar{width:100%;flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--border);padding:.5rem}.sidebar .nav-item{flex:1 1 auto;text-align:center;padding:.5rem;font-size:.9rem}.main-header{flex-direction:column;align-items:flex-start;gap:.5rem}.breadcrumbs{font-size:.9rem}.breadcrumb-link,.breadcrumb-current{max-width:8rem}.topbar-actions,.file-row{flex-wrap:wrap}.file-actions{width:100%;justify-content:flex-end;margin-top:.25rem}.topbar-actions .btn-ghost{padding:.55rem .65rem;font-size:.85rem}}@media (max-width: 480px){.main-content{padding:1rem}.file-actions{flex-direction:column;align-items:stretch}.file-actions .btn{width:100%}.modal-wide{max-width:100%}.share-row{flex-direction:column;align-items:stretch}.share-row-actions{justify-content:flex-end}.public-share-card{padding:1.5rem 1rem}}
