:root{color-scheme:light;--bg:#f5f5f7;--text:#111827;--muted:#6b7280;--line:#e5e7eb;--panel:#fff;--soft:#f9fafb;--accent:#2563eb;--accent-dark:#1d4ed8;--accent-soft:#eff6ff;--danger:#dc2626;--danger-soft:#fef2f2;--shadow:0 12px 34px rgba(15,23,42,.08)}*{box-sizing:border-box}body,html{width:100%;min-height:100%}body,html{overflow-x:hidden}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}button,input{font:inherit}.shell{width:min(1080px,100%);max-width:100vw;min-height:100dvh;margin:0 auto;padding:34px 22px;overflow-x:clip}.authShell{display:grid;place-items:center}.authPanel,.drive{width:100%;border:1px solid var(--line);border-radius:14px;background:var(--panel);padding:22px;box-shadow:var(--shadow)}.drive{display:flex;flex-direction:column;min-height:calc(100dvh - 150px);overflow:hidden}.authPanel{max-width:420px;padding:26px}.brandBlock{display:flex;align-items:center;gap:12px}.brandBlock.compact{min-width:0}.brandMark{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:12px;background:var(--accent);color:#fff;font-size:18px;font-weight:700}.eyebrow{margin:0 0 4px;color:var(--accent);font-size:12px;font-weight:600;letter-spacing:0}h1,h2{margin:0;line-height:1.2}h1{font-size:27px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}h1,h2{font-weight:700}h2{font-size:22px}.tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin:22px 0;padding:4px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.fileActions button,.fileRow,.ghost,.primary,.tabs button,.uploadButton{border-radius:10px;cursor:pointer}.ghost,.tabs button{border:1px solid transparent;background:transparent;color:var(--text);padding:9px 12px;font-weight:500}.tabs button.active{border-color:var(--line);background:#fff;color:var(--accent);box-shadow:0 4px 12px rgba(15,23,42,.08)}.form{grid-gap:14px;gap:14px}.form,label{display:grid}label{grid-gap:7px;gap:7px;color:var(--muted);font-size:14px}input{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;color:var(--text);background:#fff}input:focus{outline:3px solid rgba(37,99,235,.14);border-color:var(--accent)}input[type=checkbox]{width:18px;height:18px;padding:0}.primary,.uploadButton{border:0;background:var(--accent);color:#fff;padding:10px 15px;text-align:center;font-weight:600;box-shadow:none}.primary:hover,.uploadButton:hover{background:var(--accent-dark)}.primary:disabled{opacity:.7;cursor:default}.message{margin:0;color:var(--danger);font-size:14px;min-height:20px}.uploadProgress{display:grid;grid-gap:6px;gap:6px;margin-bottom:10px;color:var(--muted);font-size:13px}.uploadProgress div{display:flex;justify-content:space-between;gap:12px}.uploadProgress span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploadProgress strong{color:var(--accent);font-weight:600}.uploadProgress progress{width:100%;height:8px;overflow:hidden;border:0;border-radius:999px;background:#e5e7eb}.uploadProgress progress::-webkit-progress-bar{background:#e5e7eb}.uploadProgress progress::-webkit-progress-value{background:var(--accent)}.uploadProgress progress::-moz-progress-bar{background:var(--accent)}.driveHeader,.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.topbar{margin-bottom:16px;padding:8px 2px}.driveHeader{margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.driveStats{margin:5px 0 0;color:var(--muted);font-size:13px}.toolbar{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:640px}.toolbar .ghost,.toolbar .uploadButton{padding:8px 12px}.fileActions button,.toolbar .ghost{border:1px solid var(--line);background:var(--panel)}.fileActions button:hover,.toolbar .ghost:hover{border-color:var(--accent);color:var(--accent)}.fileActions button:disabled,.toolbar .ghost:disabled{opacity:.5;cursor:default}.uploadButton input{display:none}.fileList{display:grid;align-content:start;grid-gap:8px;gap:8px;overflow:auto;min-height:0;padding:2px}.fileRow{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;border:1px solid var(--line);background:#fff;padding:10px 12px;text-align:left;box-shadow:none;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.fileRow:hover{border-color:var(--accent);box-shadow:0 8px 24px rgba(15,23,42,.06);transform:translateY(-1px)}.fileRow.selected{border-color:var(--accent);background:var(--accent-soft)}.fileBadge{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700;letter-spacing:0}.fileMeta{display:grid;grid-gap:5px;gap:5px;min-width:0}.fileMeta span{overflow-wrap:anywhere;font-weight:500}.empty,.fileMeta small{color:var(--muted)}.fileActions{display:flex;gap:8px;justify-content:flex-end}.fileActions button{color:var(--text);min-width:58px;padding:7px 11px;font-size:13px}.fileActions .dangerButton,.toolbar .dangerButton{color:var(--danger)}.fileActions .dangerButton:hover,.toolbar .dangerButton:hover{background:var(--danger-soft)}.fileActions .dangerButton:hover{border-color:var(--danger);color:var(--danger)}.empty{display:grid;place-items:center;min-height:220px;margin:0;border:1px dashed var(--line);border-radius:14px;background:var(--soft)}@media (max-width:560px){body,html{position:fixed;inset:0;width:100vw;height:100%;overscroll-behavior:none}.shell{display:flex;flex-direction:column;width:100%;height:100dvh;height:100svh;min-height:100dvh;min-height:100svh;max-width:100vw;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));overflow:hidden;transform:translateZ(0)}.authPanel,.drive{padding:16px}.authShell{justify-content:center}.authPanel,.topbar{flex:0 0 auto}.topbar{min-height:58px;margin-bottom:12px}.driveHeader,.topbar{align-items:flex-start}h1{font-size:24px}.drive{flex:1 1 auto;min-height:0;padding:12px}.driveHeader{flex-direction:column;flex:0 0 auto;gap:10px;margin-bottom:10px;padding-bottom:10px}.toolbar{max-width:none;width:100%;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch}.toolbar .ghost,.toolbar .uploadButton{flex:0 0 auto;min-width:92px;height:40px;white-space:nowrap}.message{flex:0 0 20px;overflow:hidden}.uploadProgress{flex:0 0 auto}.fileRow{grid-template-columns:auto auto 1fr;gap:8px;min-height:104px;padding:10px}.fileBadge{width:38px;height:38px;font-size:10px}.fileActions{grid-column:1/-1;width:100%;justify-content:stretch}.fileActions button{flex:1 1;height:38px;padding:0 8px;white-space:nowrap}}