:root{--bg: #f5f6f8;--surface: #ffffff;--surface-2: #f0f2f5;--border: #e2e5ea;--text: #1a1f2b;--muted: #6b7280;--accent: #0d9488;--accent-strong: #0f766e;--danger: #dc2626;--shadow: 0 1px 3px rgba(16, 24, 40, .08), 0 6px 20px rgba(16, 24, 40, .06);--radius: 14px;color-scheme:light dark}@media(prefers-color-scheme:dark){:root{--bg: #0b1220;--surface: #131a2a;--surface-2: #1b2436;--border: #263149;--text: #e7ebf3;--muted: #93a0b5;--accent: #2dd4bf;--accent-strong: #14b8a6;--danger: #f87171;--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 8px 30px rgba(0, 0, 0, .35)}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.2}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface-2);padding:0 4px;border-radius:4px}.muted{color:var(--muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:10px;padding:10px 16px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s;background:var(--surface-2);color:var(--text)}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);color:#04211d}.btn.primary:hover:not(:disabled){background:var(--accent-strong)}.btn.ghost{background:transparent;border-color:var(--border)}.btn.ghost:hover:not(:disabled){background:var(--surface-2)}.btn.icon{padding:9px;border-radius:10px;background:transparent;color:var(--muted)}.btn.icon:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn.icon.sm{padding:6px}.btn.danger{color:var(--danger)}.btn.danger-solid{background:var(--danger);color:#fff}.btn.sm{padding:6px 10px;font-size:.85rem}.link{background:none;border:none;color:var(--accent-strong);cursor:pointer;font-size:.9rem;padding:4px}.link:hover{text-decoration:underline}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field>span{font-size:.85rem;font-weight:600;color:var(--muted)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],.select{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:.95rem}input:focus,.select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.checkbox{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;color:var(--muted);margin-bottom:14px}.checkbox input{margin-top:2px}.alert{border-radius:10px;padding:10px 12px;font-size:.88rem;margin:4px 0 12px}.alert.error{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.alert.info{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent-strong)}.auth-screen{min-height:100%;display:grid;place-items:center;padding:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px}.auth-card{width:100%;max-width:380px}.brand{display:flex;align-items:center;gap:12px;margin-bottom:8px}.brand.compact{margin:0}.brand.compact small{display:block;font-size:.78rem}.brand-badge{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--accent);color:#04211d;flex-shrink:0}.divider{text-align:center;border-top:1px solid var(--border);margin:18px 0;position:relative}.divider span{position:relative;top:-11px;background:var(--surface);padding:0 10px;color:var(--muted);font-size:.8rem}.auth-links{display:flex;justify-content:space-between;margin-top:14px}.btn.primary,.auth-card .btn{width:100%}.app{min-height:100%;display:flex;flex-direction:column}.app-header{display:grid;grid-template-columns:1fr auto;grid-template-areas:"brand actions" "meta meta";align-items:center;column-gap:12px;row-gap:2px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}.brand.compact{grid-area:brand}.app-name{font-size:1rem}.header-actions{grid-area:actions;display:flex;align-items:center;gap:4px}.header-meta{grid-area:meta;display:flex;gap:8px;flex-wrap:wrap;align-items:baseline;font-size:.78rem;min-width:0}.header-meta .email{overflow-wrap:anywhere}@media(min-width:640px){.app-header{grid-template-columns:auto 1fr auto;grid-template-areas:"brand meta actions";padding:12px 20px}.header-meta{justify-content:flex-end}.header-meta .email{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.app-main{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:20px}.toolbar{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.search{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--muted)}.search input{border:none;background:none;padding:11px 0}.search input:focus{outline:none}.toolbar .select{width:auto;min-width:150px}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}.file-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s}.file-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.thumb{border:none;padding:0;cursor:pointer;height:120px;background:var(--surface-2);display:grid;place-items:center;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover}.kind{color:var(--muted)}.kind-image{color:#14b8a6}.kind-pdf{color:#ef4444}.kind-doc{color:#3b82f6}.kind-sheet{color:#22c55e}.kind-archive{color:#f59e0b}.kind-audio{color:#a855f7}.kind-video{color:#ec4899}.file-meta{padding:10px 12px;display:flex;flex-direction:column;gap:3px;flex:1}.file-name{font-weight:600;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-badge{align-self:flex-start;margin-top:4px;font-size:.72rem;background:var(--surface-2);color:var(--muted);padding:2px 8px;border-radius:999px}.file-actions{display:flex;justify-content:space-around;padding:6px;border-top:1px solid var(--border)}.empty{display:grid;place-items:center;gap:12px;color:var(--muted);padding:60px 20px;text-align:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#060a148c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;place-items:center;padding:20px;z-index:20}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;width:100%;max-width:520px;max-height:90vh;overflow:auto}.modal.sm{max-width:400px}.modal.preview{max-width:820px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.modal-head h2{font-size:1.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.modal-actions.between{justify-content:space-between;align-items:center}.modal-actions .btn,.modal .btn.primary{width:auto}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:30px;text-align:center;color:var(--muted);cursor:pointer;display:grid;gap:6px;place-items:center;transition:border-color .15s,background .15s}.dropzone.dragging,.dropzone:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}.dropzone p{margin:4px 0 0}.upload-list{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-direction:column;gap:8px}.upload-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:10px}.upload-row.done{border-color:var(--accent)}.upload-row.error{border-color:var(--danger)}.upload-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.upload-info .name{font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress{height:5px;background:var(--surface-2);border-radius:999px;overflow:hidden;margin-top:4px}.progress .bar{height:100%;background:var(--accent);transition:width .2s}.preview-body{display:grid;place-items:center;min-height:200px;background:var(--surface-2);border-radius:10px;overflow:hidden}.preview-image{max-width:100%;max-height:60vh;object-fit:contain}.preview-pdf{width:100%;height:60vh;border:none}.preview-fallback{display:grid;place-items:center;gap:10px;padding:40px;color:var(--muted)}.link-box{display:flex;gap:8px;margin-top:12px}.link-box input{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.shares{margin-top:20px;border-top:1px solid var(--border);padding-top:16px}.shares h3{font-size:.95rem;margin-bottom:10px}.shares ul{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:6px}.shares li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;background:var(--surface-2);border-radius:8px}.shares li small{display:block;font-size:.75rem}.share-view{min-height:100%;display:flex;flex-direction:column}.share-head{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--surface)}.share-main{flex:1;display:grid;place-items:center;padding:24px}.share-card{width:100%;max-width:720px;display:flex;flex-direction:column;gap:12px}.share-card .btn.primary{width:auto;align-self:flex-start}.spinner{display:inline-block;border:2.5px solid color-mix(in srgb,currentColor 30%,transparent);border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pw-strength{display:flex;flex-direction:column;gap:4px;margin:-6px 0 12px}.pw-bars{display:flex;gap:4px}.pw-bars span{flex:1;height:4px;border-radius:2px;background:var(--surface-2)}.pw-strength.s0 .pw-bars span.on,.pw-strength.s1 .pw-bars span.on{background:#ef4444}.pw-strength.s2 .pw-bars span.on{background:#f59e0b}.pw-strength.s3 .pw-bars span.on{background:#eab308}.pw-strength.s4 .pw-bars span.on{background:#22c55e}.app-footer{text-align:center;padding:14px;font-size:.72rem;color:var(--muted)}.view-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.view-controls{display:flex;gap:10px;flex-wrap:wrap}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}.segmented button{border:none;background:transparent;color:var(--muted);padding:8px 12px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-weight:600;font-size:.85rem}.segmented button+button{border-left:1px solid var(--border)}.segmented button.active{background:var(--accent);color:#04211d}.breadcrumbs{display:flex;align-items:center;gap:2px;flex-wrap:wrap;color:var(--muted)}.crumb{display:inline-flex;align-items:center;gap:2px}.crumb-link{display:inline-flex;align-items:center;gap:4px;padding:4px 6px}.crumb-link:disabled{color:var(--text);text-decoration:none;cursor:default;opacity:1;font-weight:700}.results-note{margin:-6px 0 12px}.folder-tint{color:#eab308}.file-grid.icons{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:10px}.file-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border:1px solid transparent;border-radius:12px;text-align:center;background:transparent;color:inherit;font:inherit;cursor:default}.file-tile:hover{background:var(--surface);border-color:var(--border)}button.file-tile{cursor:pointer}.tile-thumb{width:56px;height:56px;border:none;background:var(--surface-2);border-radius:10px;display:grid;place-items:center;overflow:hidden;cursor:pointer}.tile-thumb img{width:100%;height:100%;object-fit:cover}.tile-name{font-size:.8rem;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile-actions{display:none}.file-tile:hover .tile-actions{display:block}.tile-actions .file-actions{border:none;padding:0;gap:2px}.file-card.folder,.file-tile.folder{position:relative}.file-card.folder{cursor:pointer;text-align:left;font:inherit;color:inherit}.folder-move{position:absolute;top:6px;right:6px;opacity:0;background:var(--surface);border:1px solid var(--border)}.file-card.folder:hover .folder-move,.file-card.folder:focus-within .folder-move,.file-tile.folder:hover .folder-move,.file-tile.folder:focus-within .folder-move{opacity:1}.new-folder-btn{white-space:nowrap}.file-card.folder .file-name{padding:8px 12px 0}.file-card.folder small{padding:0 12px 10px}.file-table{width:100%;border-collapse:collapse;font-size:.9rem}.file-table th{text-align:left;color:var(--muted);font-size:.78rem;font-weight:600;padding:8px 10px;border-bottom:1px solid var(--border)}.file-table td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.file-row:hover,.folder-row:hover{background:var(--surface)}.folder-row{cursor:pointer}.col-date{white-space:nowrap;color:var(--muted);width:116px}.col-size{white-space:nowrap;color:var(--muted);width:96px}.col-actions{width:1%;white-space:nowrap}.col-actions .file-actions{border:none;padding:0;justify-content:flex-end}.row-name{display:inline-flex;align-items:center;gap:8px;max-width:100%;background:none;border:none;cursor:pointer;color:var(--text);font:inherit}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-inline{display:block;font-size:.72rem}@media(max-width:560px){.file-table .col-date{display:none}}
