*{box-sizing:border-box}
:root{--bg:#090c11;--panel:#11161e;--line:#222b38;--text:#f5f7fa;--muted:#8c97a8}
body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,Tahoma,Arial,sans-serif}
a{color:inherit;text-decoration:none}button,input{font:inherit}
.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.sidebar{border-left:1px solid var(--line);background:#0d1117;padding:24px 18px;display:flex;flex-direction:column;gap:20px}
.brand{display:flex;align-items:center;gap:12px}.logo,.login-logo{width:44px;height:44px;border-radius:13px;background:#fff;color:#000;display:grid;place-items:center;font-weight:900}
.brand-title{font-weight:800}.brand-sub,.muted,.small-note{color:var(--muted);font-size:12px}
.nav{padding:11px 13px;border-radius:10px;background:#151b25}
.side-actions{display:grid;gap:9px}.btn,.logout{width:100%;border:1px solid var(--line);background:var(--panel);color:#fff;padding:11px;border-radius:10px;cursor:pointer;text-align:center}
.btn.primary{background:#fff;color:#111;font-weight:800}.storage-box,.dav-note{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel)}
.storage-box{margin-top:auto}.storage-path{font-size:12px;direction:ltr;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout{background:transparent}
.content{padding:34px;min-width:0}.topbar{margin-bottom:22px}.topbar h1{margin:0 0 6px;font-size:30px}.breadcrumb{color:var(--muted);font-size:13px}
.table-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel)}
.table-head,.file-row{display:grid;grid-template-columns:minmax(0,1fr) 120px 260px;align-items:center;gap:10px;padding:0 18px}
.table-head{height:46px;background:#0e131b;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line)}
.file-row{min-height:68px;border-bottom:1px solid var(--line)}.file-row:hover{background:#141a23}.file-row:last-child{border-bottom:0}
.file-name{display:flex;align-items:center;gap:12px;min-width:0}.file-icon{font-size:24px}.name-text{min-width:0}.name-text strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.name-text span{display:block;color:var(--muted);font-size:11px;margin-top:4px}
.size{color:var(--muted);font-size:13px;direction:ltr}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.row-actions form{margin:0}
.small-btn{border:1px solid var(--line);background:#171e29;color:#fff;padding:8px 11px;border-radius:9px;cursor:pointer;font-size:12px}.download{background:#fff;color:#111;font-weight:800}.danger{background:#21151a;color:#ffadb7}
.progress-wrap{border:1px solid var(--line);background:var(--panel);padding:13px;border-radius:12px;margin-bottom:14px;font-size:13px}.progress{height:7px;background:#202734;border-radius:20px;overflow:hidden;margin-top:9px}.progress>div{height:100%;background:#fff;width:0}
.empty{text-align:center;padding:70px;color:var(--muted)}.empty-icon{font-size:44px}.empty h3{color:#fff}
dialog{border:0;background:transparent}dialog::backdrop{background:rgba(0,0,0,.65)}.dialog-card{width:340px;background:var(--panel);color:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;display:grid;gap:14px}.dialog-card input,.login-card input{width:100%;background:#0c1118;color:#fff;border:1px solid var(--line);border-radius:10px;padding:12px}
.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.dialog-actions button{border:1px solid var(--line);background:#171e29;color:#fff;border-radius:9px;padding:9px 14px}.dialog-actions .primary{background:#fff;color:#111}
.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(390px,100%);background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:30px;text-align:center}.login-logo{margin:0 auto 16px}.login-card p{color:var(--muted)}.login-card form{display:grid;gap:12px}.login-button{border:0;background:#fff;color:#111;border-radius:10px;padding:12px;font-weight:800}.error{color:#ff9aa6}
@media(max-width:850px){.app{display:block}.sidebar{border-left:0;border-bottom:1px solid var(--line)}.storage-box{margin-top:0}.content{padding:18px}}
@media(max-width:650px){.table-head{display:none}.file-row{grid-template-columns:1fr;padding:14px}.size{display:none}.row-actions{justify-content:flex-start;margin-right:36px;flex-wrap:wrap}}
