:root{--teal:#24565d;--teal-dark:#193f45;--teal-soft:#e7f1f2;--yellow:#ffc400;--ink:#142033;--muted:#667085;--line:#e4eaf0;--surface:#fff;--page:#f4f7f9;--danger:#c53c3c;--shadow:0 18px 50px rgba(31,55,70,.10)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:var(--ink);background:var(--page)}button,input{font:inherit}button,a{tap-highlight-color:transparent}.hidden{display:none!important}
.login-view{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 25% 20%,#fff9df,transparent 33%),linear-gradient(135deg,#eff7f7,#f8fafc)}
.login-card{width:min(420px,100%);padding:42px 40px;border:1px solid rgba(255,255,255,.9);border-radius:26px;background:rgba(255,255,255,.94);box-shadow:var(--shadow)}.login-logo{display:block;width:78px;height:78px;margin:0 auto 16px}.login-card h1{text-align:center;margin:0;font-size:32px}.login-card>p{text-align:center;color:var(--muted);margin:8px 0 28px}.login-card label,.dialog-card label{display:grid;gap:8px;margin:14px 0;color:#344054;font-weight:700;font-size:14px}.login-card input,.dialog-card input{width:100%;height:48px;border:1px solid #ccd6df;border-radius:12px;padding:0 14px;outline:none;background:#fff}.login-card input:focus,.dialog-card input:focus,.search input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(36,86,93,.12)}.login-card .btn{width:100%;margin-top:12px}.form-error{min-height:22px;margin-top:12px;color:var(--danger);font-size:14px;text-align:center}.legacy-link{display:block;margin-top:16px;text-align:center;color:var(--muted);font-size:14px;text-decoration:none}
.btn{height:44px;padding:0 18px;border:0;border-radius:11px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:disabled{opacity:.6;cursor:not-allowed}.primary{background:var(--teal);color:#fff}.primary:hover{background:var(--teal-dark)}.secondary{background:#fff;color:var(--ink);border:1px solid #d7e0e7}.secondary:hover{background:#f8fafb}
.app{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;padding:26px 16px 18px;display:flex;flex-direction:column;background:linear-gradient(180deg,#2b656b,#1d474e);color:#fff}.brand{height:72px;display:flex;align-items:center;gap:14px;padding:0 14px 18px;font-size:24px}.brand img{width:50px;height:50px}.sidebar nav{display:grid;gap:8px;margin-top:34px}.nav-item{width:100%;min-height:52px;padding:0 15px;border:0;border-radius:12px;background:transparent;color:#eef8f8;text-decoration:none;display:flex;align-items:center;gap:14px;font-size:17px;font-weight:700;cursor:pointer;text-align:left}.nav-item:hover{background:rgba(255,255,255,.09)}.nav-item.active{background:rgba(255,196,0,.18);color:#fff7ca}.nav-icon{width:26px;text-align:center;color:#bdd9dc;font-size:21px}.sidebar-bottom{margin-top:auto;display:grid;gap:8px}.account-name{padding:0 15px 8px;color:#c8dfe1;font-size:14px;overflow:hidden;text-overflow:ellipsis}
.main{min-width:0}.topbar{min-height:112px;padding:24px 34px;display:flex;align-items:center;gap:20px;justify-content:space-between;background:#fff;border-bottom:1px solid #edf1f4}.topbar h1{font-size:26px;margin:0 0 7px}.breadcrumbs{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:14px;min-height:20px}.crumb{border:0;background:none;color:var(--teal);padding:0;cursor:pointer}.crumb:last-child{color:var(--muted);cursor:default}.top-actions{display:flex;gap:10px}.upload-label{cursor:pointer}.workspace{padding:26px 34px 42px}.toolbar{display:flex;justify-content:space-between;gap:14px;margin-bottom:16px}.search{width:min(430px,100%);height:44px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid #d6dfe7;border-radius:11px;background:#fff}.search span{font-size:24px;color:var(--muted)}.search input{width:100%;height:100%;border:0;outline:0;background:transparent}.icon-button{width:44px;height:44px;border:1px solid #d7e0e7;border-radius:11px;background:#fff;color:var(--teal);font-size:22px;cursor:pointer}.icon-button:hover{background:var(--teal-soft)}
.file-panel{min-height:420px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 10px 35px rgba(42,64,78,.06);overflow:hidden}.file-panel.dragging{outline:3px solid rgba(255,196,0,.65);outline-offset:-5px}.table-head,.file-row{display:grid;grid-template-columns:minmax(260px,1fr) 120px 190px 72px;align-items:center;gap:16px;padding:0 22px}.table-head{height:54px;background:#f8fafb;color:var(--muted);font-size:13px;font-weight:800;border-bottom:1px solid var(--line)}.file-row{min-height:68px;border-bottom:1px solid #edf1f4}.file-row:last-child{border-bottom:0}.file-row:hover{background:#fbfcfd}.file-name{min-width:0;display:flex;align-items:center;gap:13px}.file-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;background:#edf4f5;color:var(--teal);font-size:20px;flex:0 0 auto}.file-icon.folder{background:#fff5c4;color:#a77500}.name-button{min-width:0;border:0;background:none;padding:0;color:var(--ink);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;font-weight:700}.name-button:hover{color:var(--teal)}.file-meta{color:var(--muted);font-size:14px}.row-menu{position:relative}.more-button{width:38px;height:38px;border:0;border-radius:10px;background:transparent;cursor:pointer;color:var(--muted);font-size:20px}.more-button:hover{background:var(--teal-soft)}.menu-pop{position:absolute;right:0;top:42px;z-index:20;width:140px;padding:6px;border:1px solid var(--line);border-radius:11px;background:#fff;box-shadow:0 12px 30px rgba(22,38,50,.16)}.menu-pop button{width:100%;height:36px;border:0;border-radius:8px;background:transparent;text-align:left;padding:0 10px;cursor:pointer}.menu-pop button:hover{background:#f2f6f7}.menu-pop .danger{color:var(--danger)}
.loading,.empty{min-height:320px;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--muted)}.loading:not(.hidden),.empty:not(.hidden){display:flex}.spinner{width:28px;height:28px;border:3px solid #dce6e8;border-top-color:var(--teal);border-radius:50%;animation:spin .7s linear infinite}.empty-icon{font-size:52px;color:#a9c8cc}.empty strong{color:var(--ink);font-size:18px}.empty span{font-size:14px}@keyframes spin{to{transform:rotate(360deg)}}
dialog{border:0;border-radius:18px;padding:0;box-shadow:var(--shadow)}dialog::backdrop{background:rgba(18,34,45,.42);backdrop-filter:blur(3px)}.dialog-card{width:min(430px,calc(100vw - 32px));padding:26px}.dialog-card h2{margin:0 0 20px}.dialog-actions{margin-top:24px;display:flex;justify-content:flex-end;gap:10px}.toast{position:fixed;z-index:999;left:50%;top:20px;transform:translate(-50%,-20px);padding:11px 18px;border-radius:11px;background:#153c42;color:#fff;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#9e3232}.mobile-only,.sidebar-mask{display:none}
@media(max-width:850px){.app{display:block}.sidebar{position:fixed;z-index:100;left:-260px;width:240px;transition:left .2s}.sidebar.open{left:0}.sidebar-mask{display:block;position:fixed;inset:0;z-index:90;background:rgba(14,28,38,.38);opacity:0;pointer-events:none;transition:.2s}.sidebar-mask.show{opacity:1;pointer-events:auto}.mobile-only{display:inline-grid;place-items:center;flex:0 0 auto}.topbar{min-height:96px;padding:18px 18px}.topbar h1{font-size:22px}.workspace{padding:18px}.top-actions .secondary{display:none}.table-head{display:none}.file-row{grid-template-columns:minmax(0,1fr) 46px;padding:10px 14px}.file-row>.file-meta{display:none}.file-panel{border-radius:14px}.toolbar{margin-bottom:12px}}
@media(max-width:520px){.topbar{align-items:flex-start;flex-wrap:wrap}.top-actions{width:100%;justify-content:flex-end}.workspace{padding:12px}.file-row{min-height:64px}.login-card{padding:34px 24px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation-duration:.01ms!important}}
