@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap";:root{color-scheme:light;--bg: #f8f9fa;--surface: #ffffff;--ink: #1f1f1f;--muted: #444746;--muted-soft: #747775;--border: #e1e3e1;--border-strong: #c4c7c5;--accent: #0b57d0;--accent-soft: #d3e3fd;--accent-hover: #a8c7fa;--accent-ink: #0842a0;--danger: #b3261e;--danger-bg: #fce8e6;--danger-border: #f2b8b5;--sidebar-w: 16rem;--header-h: 4rem;--radius-sm: 8px;--radius: 16px;--radius-lg: 24px;--font-ui: "Manrope", "Segoe UI", sans-serif;--shadow-new: 0 1px 3px 1px rgba(60, 64, 67, .15), 0 1px 2px rgba(60, 64, 67, .3);--shadow-menu: 0 4px 12px rgba(60, 64, 67, .2), 0 1px 3px rgba(60, 64, 67, .15);--shadow-panel: 0 1px 2px rgba(60, 64, 67, .08)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%}body{color:var(--ink);font-family:var(--font-ui);font-size:14px;line-height:1.45;background:var(--bg)}#app{min-height:100vh}button,input,a{font:inherit}button{cursor:pointer}.icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.25rem;height:1.25rem;line-height:0}.icon svg{width:100%;height:100%;display:block}.login{min-height:100vh;display:grid;place-content:center;justify-items:center;padding:2rem 1.25rem;gap:.5rem;background:radial-gradient(900px 420px at 15% -5%,rgba(11,87,208,.1),transparent 55%),radial-gradient(700px 360px at 90% 10%,rgba(52,168,83,.08),transparent 50%),var(--bg);animation:fade-up .42s ease both}.login-brand{margin:0;display:inline-flex;align-items:center;gap:.65rem;font-size:clamp(2.4rem,7vw,3.4rem);font-weight:700;letter-spacing:-.03em;color:var(--ink)}.login-mark{width:2.6rem;height:2.6rem;object-fit:contain;display:block}.login-tagline{margin:0 0 1.25rem;color:var(--muted);font-size:1rem;text-align:center}.login-form{width:min(22rem,100%);display:grid;gap:.55rem;padding:1.4rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-panel)}.login-form label{font-size:.8rem;font-weight:600;color:var(--muted)}.login-form input{width:100%;padding:.75rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--ink)}.login-form input:focus{outline:2px solid rgba(11,87,208,.35);outline-offset:1px}.login-form button[type=submit]{margin-top:.4rem;padding:.75rem 1rem;border:none;border-radius:999px;background:var(--accent);color:#fff;font-weight:600;transition:background .16s ease,transform .16s ease}.login-form button[type=submit]:hover{background:var(--accent-ink)}.login-form button[type=submit]:active{transform:translateY(1px)}.login-form button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.login-error{margin:0;font-size:.85rem;color:var(--danger)}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.app-header{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr) auto;align-items:center;gap:.75rem;min-height:var(--header-h);padding:.55rem 1rem .55rem .85rem;background:var(--bg)}.app-brand{display:inline-flex;align-items:center;gap:.55rem;margin-left:.35rem;color:var(--ink);text-decoration:none;font-size:1.35rem;font-weight:600;letter-spacing:-.02em}.brand-mark{width:2rem;height:2rem;object-fit:contain;display:block}.header-search{display:flex;align-items:center;gap:.55rem;width:min(48rem,100%);margin-inline:auto;padding:0 1rem;min-height:2.9rem;border-radius:999px;background:#e9eef6;border:1px solid transparent;transition:background .16s ease,box-shadow .16s ease,border-color .16s ease}.header-search:focus-within{background:var(--surface);border-color:transparent;box-shadow:0 1px 3px #3c404333,0 0 0 1px #0b57d033}.header-search-icon{color:var(--muted);width:1.35rem;height:1.35rem}.header-search-input{flex:1;min-width:0;border:none;background:transparent;color:var(--ink);outline:none;font-size:.98rem}.header-search-input::placeholder{color:var(--muted-soft)}.header-logout{width:2.5rem;height:2.5rem;display:grid;place-items:center;border:none;border-radius:999px;background:transparent;color:var(--muted);transition:background .14s ease,color .14s ease}.header-logout:hover{background:#44474614;color:var(--ink)}.app-body{flex:1;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:0;align-items:stretch}.app-sidebar{display:flex;flex-direction:column;gap:.85rem;padding:.35rem .75rem 1.25rem .85rem;min-height:calc(100vh - var(--header-h))}.new-menu-wrap{position:relative;width:fit-content}.btn-new{display:inline-flex;align-items:center;gap:.75rem;min-width:8.5rem;padding:.85rem 1.35rem .85rem 1rem;border:none;border-radius:var(--radius-lg);background:var(--surface);color:var(--ink);font-weight:600;font-size:.95rem;box-shadow:var(--shadow-new);transition:background .14s ease,box-shadow .14s ease}.btn-new:hover:not(:disabled){background:#f6f8fc;box-shadow:0 2px 6px 2px #3c404326,0 1px 2px #3c40434d}.btn-new:disabled,.btn-new.is-disabled{opacity:.55;cursor:not-allowed}.btn-new-icon{width:1.45rem;height:1.45rem}.new-menu{position:absolute;top:calc(100% + .4rem);left:0;z-index:40;min-width:14rem;padding:.4rem 0;border-radius:8px;background:var(--surface);box-shadow:var(--shadow-menu);animation:fade-in .14s ease}.new-menu-item{width:100%;display:flex;align-items:center;gap:.85rem;padding:.7rem 1rem;border:none;background:transparent;color:var(--ink);text-align:left;font-weight:500}.new-menu-item:hover{background:#44474614}.app-nav{display:flex;flex-direction:column;gap:.15rem}.nav-link{display:flex;align-items:center;gap:.85rem;width:100%;padding:.7rem 1rem .7rem .95rem;border:none;border-radius:999px;background:transparent;color:var(--ink);font-weight:550;text-align:left;transition:background .14s ease,color .14s ease}.nav-link:hover{background:#44474614}.nav-link.is-active{background:var(--accent-soft);color:var(--accent-ink);font-weight:650}.nav-icon{color:inherit;opacity:.9}.app-main{min-width:0;min-height:0;padding:0 .85rem .85rem 0}.app-content{height:calc(100vh - var(--header-h) - .85rem);min-height:28rem;overflow:auto;background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-panel);position:relative}.btn-primary,.btn-secondary,.btn-danger,.btn-ghost{padding:.45rem .95rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);font-weight:600;font-size:.86rem;transition:background .14s ease,border-color .14s ease}.btn-primary{background:var(--accent);border-color:transparent;color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-ink)}.btn-secondary:hover:not(:disabled){background:#0b57d00f;border-color:var(--accent);color:var(--accent-ink)}.btn-danger{background:transparent;border-color:var(--danger-border);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-bg)}.btn-ghost{background:transparent;border-color:transparent}.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled{opacity:.5;cursor:not-allowed}.upload-controls{display:flex;align-items:center;gap:.55rem}.upload-status{color:var(--muted);font-size:.8rem;white-space:nowrap}.upload-progress{width:5.5rem;height:.3rem;border-radius:999px;background:#4447461f;overflow:hidden}.upload-progress-bar{height:100%;width:0;background:var(--accent);transition:width .18s ease}.drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;background:#d3e3fd8c;border:2px dashed var(--accent);border-radius:inherit;pointer-events:none;animation:fade-in .16s ease}.drop-overlay-card{display:grid;gap:.25rem;justify-items:center;padding:1.25rem 1.5rem;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-menu);color:var(--accent-ink);text-align:center}.drop-overlay-card strong{font-size:1.05rem}.drop-overlay-card span{color:var(--muted);font-size:.9rem}.browser-panel,.search-panel,.trash-panel{display:flex;flex-direction:column;min-height:100%;position:relative}.browser-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:1rem 1.25rem .65rem}.browser-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem;margin-left:auto}.panel-title{margin:0;font-size:1.45rem;font-weight:650;letter-spacing:-.02em}.breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem;min-width:0;font-size:1.35rem;font-weight:650;letter-spacing:-.02em}.breadcrumb.is-animating{animation:crumb-slide .26s ease}.breadcrumb-sep{width:1.15rem;height:1.15rem;color:var(--muted-soft)}.breadcrumb-link{border:none;background:transparent;color:var(--muted);padding:.2rem .35rem;border-radius:var(--radius-sm);font:inherit;font-weight:650}.breadcrumb-link:hover{background:#44474614;color:var(--ink)}.breadcrumb-current{color:var(--ink);padding:.2rem .35rem}.view-toggle{display:inline-flex;align-items:center;padding:.15rem;border-radius:999px;border:1px solid var(--border);background:var(--bg)}.view-toggle-btn{width:2.1rem;height:2.1rem;display:grid;place-items:center;border:none;border-radius:999px;background:transparent;color:var(--muted)}.view-toggle-btn.is-active{background:var(--accent-soft);color:var(--accent-ink)}.view-toggle-btn:hover:not(.is-active){background:#44474614}.selection-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .55rem;margin:0 1.1rem .35rem;padding:.45rem .55rem .45rem .9rem;border-radius:999px;background:var(--accent-soft);animation:fade-in .16s ease}.selection-count{margin-right:.15rem;color:var(--accent-ink);font-size:.9rem;font-weight:650}.selection-clear{width:1.85rem;height:1.85rem;display:grid;place-items:center;margin-right:auto;border:none;border-radius:999px;background:transparent;color:var(--accent-ink)}.selection-clear:hover{background:#0b57d01f}.selection-bar .btn-secondary,.selection-bar .btn-danger{border-color:transparent;background:transparent}.selection-bar .btn-secondary:hover:not(:disabled){background:#0b57d01f}.selection-bar .btn-danger:hover:not(:disabled){background:#b3261e1a}.file-list-host,.search-results{flex:1;padding:0 .65rem 1.5rem}.file-list-header{display:grid;grid-template-columns:minmax(0,1fr) 7rem 8.5rem;gap:.65rem;align-items:center;padding:.55rem .85rem .55rem 3.35rem;margin:0 .35rem;border-bottom:1px solid var(--border);color:var(--muted);font-size:.82rem;font-weight:600}.file-list-header.search-header{grid-template-columns:minmax(0,1fr) 7rem;padding-left:2.5rem}.file-list-header.trash-header{grid-template-columns:minmax(0,1fr) 10rem}.file-list{list-style:none;margin:0;padding:.2rem 0 0;display:grid;gap:0}.file-list.is-fading{animation:fade-up .28s ease both}.file-list.view-list .file-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) 7rem 8.5rem auto;align-items:center;gap:.65rem;min-height:2.85rem;padding:.35rem .55rem .35rem .75rem;margin:0 .35rem;border-radius:var(--radius-sm);border-bottom:1px solid transparent;background:transparent;cursor:default;transition:background .12s ease}.file-list.view-list .file-row:hover{background:#4447460f}.file-list.view-list .file-row.is-selected{background:var(--accent-soft)}.file-list.view-grid{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.75rem;padding:.75rem .5rem}.file-list.view-grid .file-row{position:relative;display:flex;flex-direction:column;align-items:center;gap:.55rem;padding:1.1rem .75rem .85rem;border-radius:12px;border:1px solid var(--border);background:var(--bg);min-height:7.5rem}.file-list.view-grid .file-row:hover{background:#eef2f8}.file-list.view-grid .file-row.is-selected{background:var(--accent-soft);border-color:var(--accent-hover)}.file-list.view-grid .file-check{position:absolute;top:.65rem;left:.65rem}.file-list.view-grid .file-icon{width:2.6rem;height:2.6rem;margin-top:.35rem}.file-list.view-grid .file-name{width:100%;text-align:center;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.file-list.view-grid .file-meta,.file-list.view-grid .file-date,.file-list.view-grid .file-download{display:none}.search-panel .file-row{grid-template-columns:auto minmax(0,1fr) 7rem auto}.trash-panel .file-row{grid-template-columns:auto auto minmax(0,1fr) 10rem}.file-check{width:1.05rem;height:1.05rem;accent-color:var(--accent)}.file-icon{width:1.5rem;height:1.5rem;flex-shrink:0}.file-icon svg{width:100%;height:100%}.file-name{justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:none;background:transparent;color:var(--ink);font-weight:550;padding:0;text-align:left}.file-name:hover{color:var(--accent)}.file-name-static{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-meta,.file-date{color:var(--muted);font-size:.82rem;white-space:nowrap}.file-download{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;color:var(--muted);text-decoration:none;border-radius:999px;opacity:0;transition:opacity .12s ease,background .12s ease,color .12s ease}.file-row:hover .file-download,.file-row.is-selected .file-download,.file-download:focus-visible{opacity:1}.file-download:hover{color:var(--accent-ink);background:#0b57d01a}.empty-state,.list-status{margin:0;padding:4rem 1.25rem;text-align:center;color:var(--muted)}.empty-illustration{width:8.5rem;height:5.5rem;margin:0 auto 1.1rem;border-radius:18px;background:linear-gradient(145deg,#fbbc04 0 38%,transparent 38%),linear-gradient(180deg,#e8f0fe,#d3e3fd);position:relative;box-shadow:inset 0 0 0 1px #0b57d014}.empty-illustration:before{content:"";position:absolute;left:1.1rem;top:1.35rem;width:2.4rem;height:2.9rem;border-radius:4px;background:#fff;box-shadow:0 0 0 1px #3c404326}.empty-illustration:after{content:"";position:absolute;right:1.3rem;top:1.1rem;width:2.8rem;height:2.2rem;border-radius:5px 5px 4px 4px;background:linear-gradient(180deg,#f0c36a 0,#f0c36a 28%,#fbbc04 28%,#fbbc04)}.empty-title{margin:0 0 .35rem;color:var(--ink);font-size:1.15rem;font-weight:650}.empty-copy{margin:0;color:var(--muted);font-size:.92rem}.list-sentinel{height:1px;width:100%}.search-form{display:flex;flex-wrap:wrap;gap:.55rem;padding:0 1.25rem .85rem}.search-input{flex:1 1 14rem;min-width:10rem;padding:.65rem .9rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg);color:var(--ink)}.search-input:focus{outline:2px solid rgba(11,87,208,.28);outline-offset:1px;background:var(--surface)}.toast-stack{position:fixed;left:1rem;bottom:1rem;z-index:80;display:grid;gap:.45rem;width:min(22rem,calc(100vw - 2rem))}.toast{padding:.8rem 1rem;border-radius:8px;border:none;background:#303030;color:#fff;box-shadow:var(--shadow-menu);opacity:0;transform:translateY(8px);transition:opacity .22s ease,transform .22s ease}.toast.is-visible{opacity:1;transform:translateY(0)}.toast-error{background:#601410;color:#fce8e6}.toast-info{background:#0b57d0}.preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;background:#202124eb;opacity:0;transition:opacity .2s ease}.preview-overlay.is-open{opacity:1}.preview-bar{display:flex;align-items:center;gap:1rem;padding:.85rem 1rem;border-bottom:1px solid rgba(255,255,255,.08);color:#f5f7f9}.preview-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}.preview-actions{display:flex;gap:.45rem}.preview-actions .btn-secondary,.preview-actions .btn-ghost{color:#f5f7f9;background:#ffffff14;border-color:#ffffff24;text-decoration:none}.preview-stage{flex:1;min-height:0;display:grid;place-items:center;padding:1rem}.preview-media{max-width:100%;max-height:calc(100vh - 6.5rem);object-fit:contain;border-radius:8px}.preview-frame{width:min(960px,100%);height:calc(100vh - 6.5rem);border:none;border-radius:8px;background:#fff}.preview-text{width:min(860px,100%);max-height:calc(100vh - 6.5rem);overflow:auto;margin:0;padding:1.25rem;border-radius:10px;background:#0f1720;color:#e8eef2;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;white-space:pre-wrap;word-break:break-word}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes crumb-slide{0%{opacity:.35;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}@media(max-width:900px){.app-header{grid-template-columns:auto minmax(0,1fr) auto;padding-inline:.75rem}.app-brand{margin-left:0}.app-brand span:last-child,.app-brand{font-size:1.15rem}.app-body{grid-template-columns:1fr}.app-sidebar{min-height:0;padding:.35rem .75rem .55rem;gap:.55rem}.new-menu-wrap{width:100%}.btn-new{width:100%;justify-content:center}.app-nav{flex-direction:row;overflow-x:auto;gap:.25rem;padding-bottom:.15rem}.nav-link{width:auto;white-space:nowrap;padding:.55rem .85rem}.app-main{padding:0 .55rem .55rem}.app-content{height:auto;min-height:calc(100vh - 11rem);border-radius:var(--radius)}.file-list-header{grid-template-columns:minmax(0,1fr) 6rem;padding-left:3.2rem}.file-list-header .col-date{display:none}.file-list.view-list .file-row{grid-template-columns:auto auto minmax(0,1fr) auto}.file-date,.file-meta,.upload-progress,.upload-status{display:none}}@media(max-width:560px){.header-search{min-height:2.5rem;padding-inline:.75rem}.breadcrumb{font-size:1.15rem}.selection-bar{margin-inline:.65rem;border-radius:12px}}
