:root{--ink:#1c2940;--muted:#65738b;--blue:#305ee8;--border:#e3e9f2;--surface:#f5f7fb;--radius:18px;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--surface);font-size:16px;line-height:1.6}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}:focus-visible{outline:3px solid #a1b7ff;outline-offset:4px}h1,h2,p{margin-top:0}h1{font-size:clamp(1.8rem,3.5vw,2.6rem);letter-spacing:-.05em;line-height:1.25;margin-bottom:15px}h2{font-size:1.13rem;margin-bottom:8px}p{color:var(--muted)}.topbar{height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 max(5vw,24px);background:#fff;border-bottom:1px solid var(--border)}.brand{display:flex;gap:12px;align-items:center;font-size:1.25rem;font-weight:750;letter-spacing:.02em}.brand-icon{display:grid;place-items:center;border-radius:12px;background:var(--blue);width:40px;height:40px;color:#fff;font-size:1.6rem}nav{display:flex;gap:28px;align-items:center;font-size:.9rem}nav a:hover{color:var(--blue)}form{margin:0}.nav-login{border:1px solid var(--border);padding:9px 16px;border-radius:9px}.nav-login span{margin-left:12px}.nav-button{border:0;background:none;color:var(--muted);padding:8px 0}.container{max-width:1220px;margin:0 auto;padding:58px 32px 70px;min-height:calc(100vh - 175px)}.eyebrow{color:var(--blue);letter-spacing:.15em;font-size:.76rem;font-weight:700;margin-bottom:14px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:32px}.section-heading p{margin:0}.stats{padding:16px 26px;background:#eaf0ff;border:1px solid #dde5ff;border-radius:14px;min-width:170px;display:flex;flex-direction:column;gap:3px}.stats strong{font-size:1.8rem;color:#254cc0}.stats small{font-size:.9rem;font-weight:500}.stats>span{font-size:.85rem;color:#52698e}.panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius)}.list-title{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:24px 28px}.list-title h2{margin:0}.muted{color:var(--muted);font-size:.86rem}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:.88rem}thead{background:#f9fafc;color:var(--muted);font-size:.8rem}th{font-weight:500;padding:13px 22px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}td{padding:21px 22px;border-bottom:1px solid #edf0f5}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafbff}.file-name{display:flex;align-items:center;gap:14px;min-width:200px;max-width:410px;font-weight:550}.file-name>span:last-child{overflow-wrap:anywhere}.file-type{width:44px;height:48px;background:#eef2ff;border:1px solid #dfe7ff;border-radius:9px;display:grid;place-items:center;color:#5068b5;font-size:.65rem;font-weight:750;flex:none}.row-actions{display:flex;gap:18px;justify-content:flex-end;align-items:center;white-space:nowrap}.download{color:var(--blue);font-weight:650}.download span{margin-left:8px}.download:hover{text-decoration:underline}.danger-link{background:none;border:0;padding:0;color:#b94f5a;font-size:.86rem}.nowrap{white-space:nowrap}.align-right{text-align:right}.pagination{border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:18px 26px;font-size:.85rem;color:var(--muted)}.pagination>div{display:flex;gap:20px}.pagination a{color:var(--blue)}.empty{text-align:center;padding:66px 24px 72px}.empty>span{font-size:2.4rem;color:#617ed2;background:#f0f4ff;display:inline-grid;place-items:center;width:78px;height:78px;border-radius:23px;margin-bottom:22px}.empty p{margin-bottom:0;font-size:.9rem}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;background:var(--blue);color:#fff;border:1px solid var(--blue);border-radius:10px;padding:12px 22px;font-weight:600;font-size:.95rem;min-height:48px}.button:hover{background:#254bc4}.button.secondary{background:#edf2ff;color:var(--blue);border-color:#dde6ff}.auth{max-width:480px;margin:12px auto 32px;padding:38px}.auth h1{font-size:2rem}.auth>p{font-size:.9rem}.back{font-size:.85rem;color:var(--muted);display:inline-block;margin-bottom:36px}.stack{display:grid;gap:19px;margin-top:26px}.stack label{display:grid;gap:8px;font-size:.9rem;font-weight:550}.stack input{min-width:0;width:100%;border:1px solid #d9e0ec;border-radius:9px;padding:11px 13px;background:#fff;color:var(--ink)}input:focus{border-color:var(--blue);outline:3px solid #e6ecff}.stack small{color:var(--muted);font-size:.8rem;font-weight:400}.auth-note{border-top:1px solid var(--border);padding-top:22px;margin-top:28px;margin-bottom:0;font-size:.8rem!important}.notice{padding:14px 18px;border-radius:10px;background:#e8f6ee;color:#26714d;border:1px solid #cde9d8;margin-bottom:25px;font-size:.9rem;overflow-wrap:anywhere}.notice.error{background:#fff0f1;border-color:#f6dadd;color:#a73544}.upload-panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:30px;margin-bottom:30px;display:grid;grid-template-columns:1fr 1.2fr;gap:40px}.upload-panel h2{margin-top:14px}.upload-panel p{font-size:.86rem;margin-bottom:0}.upload-symbol{display:grid;place-items:center;width:44px;height:44px;background:#edf2ff;color:var(--blue);border-radius:12px;font-size:1.5rem}.file-picker{display:grid;gap:10px;padding:18px 20px;background:#fafbff;border:1px dashed #a9b9df;border-radius:12px;font-size:.9rem;color:#344d8a}.file-picker.dragover{border-color:var(--blue);background:#eaf0ff}.file-picker input{max-width:100%;font-size:.85rem}.file-picker input::file-selector-button{border:1px solid #dce3f1;border-radius:7px;background:white;padding:7px 10px;color:var(--ink);margin-right:10px;cursor:pointer}#file-hint{margin:8px 0 15px;overflow-wrap:anywhere}#upload-status{margin-top:14px;font-size:.85rem;color:var(--muted)}progress{display:block;width:100%;height:9px;accent-color:var(--blue);margin-bottom:7px}.account{padding:22px 28px;margin-top:24px}.account summary{cursor:pointer;font-size:.9rem;color:var(--muted)}.account .stack{max-width:440px}.narrow{max-width:620px;padding:40px;margin:40px auto}.checks{list-style:none;padding:0;margin:24px 0;border:1px solid var(--border);border-radius:10px}.checks li{display:flex;justify-content:space-between;gap:10px;padding:10px 14px;font-size:.85rem;border-bottom:1px solid var(--border)}.checks li:last-child{border:0}.ok{color:#237b53}.bad{color:#b83a46}footer{max-width:1220px;margin:auto;padding:23px 32px;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:12px;font-size:.8rem;color:#7d889c}@media(max-width:760px){.topbar{height:auto;min-height:80px;padding:18px 20px;flex-wrap:wrap;gap:14px}nav{gap:16px;font-size:.82rem}.brand{font-size:1.08rem}.container{padding:32px 18px 45px}.section-heading{align-items:flex-start;gap:18px}.stats{min-width:110px;padding:13px 15px}.stats strong{font-size:1.5rem}.section-heading p{font-size:.9rem}.eyebrow{font-size:.72rem}.list-title{padding:20px}.list-title .muted{font-size:.76rem}th,td{padding:15px}.file-name{min-width:210px}.upload-panel{grid-template-columns:1fr;gap:22px;padding:24px}.auth{padding:28px 24px}.upload-panel>div p{margin-bottom:0}.row-actions{gap:12px}footer{padding:22px 18px}}@media(max-width:420px){.section-heading{flex-direction:column}.stats{flex-direction:row;align-items:center;gap:18px;width:100%}.brand-icon{width:34px;height:34px}.topbar nav{width:100%;justify-content:space-between}.nav-login{padding:5px 10px}.container{padding-top:26px}.auth h1{font-size:1.7rem}.auth{padding:25px 20px}}




/* 适配深蓝夜景与暖光背景的透明玻璃主题。 */
:root { --ink: #edf3fa; --muted: #c9d5e4; --blue: #b7ddff; --border: rgba(211,231,255,.24); color-scheme: dark; }
html { min-height: 100%; background: #132c4e; }
body { min-height: 100vh; min-height: 100svh; position: relative; isolation: isolate; background: transparent; color: var(--ink); text-shadow: 0 1px 3px rgba(3,12,25,.72); }
body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(rgba(5,15,30,.25),rgba(5,15,30,.38)), url("landing-bg.png") center / cover no-repeat; }
body .topbar, .panel, .upload-panel, .stats, body .workspace-tabs a {
  background: transparent;
  border-color: rgba(211,231,255,.24);
  box-shadow: 0 12px 36px rgba(2,12,30,.18), inset 0 1px 0 rgba(255,255,255,.16);
  -webkit-backdrop-filter: blur(24px) saturate(115%) brightness(.78);
  backdrop-filter: blur(24px) saturate(115%) brightness(.78);
}
body .panel thead, body .panel tbody tr:hover,
body .file-type, body .empty > span, body .upload-symbol,
body .stack input, body .stack select, body .file-picker,
body .stack input:focus, body .stack select:focus, body .file-picker.dragover,
body .button, body .button:hover, body .button.secondary,
body .brand-icon, body .notice, body .notice.error,
body .file-picker input::file-selector-button {
  background: transparent; border-color: rgba(211,231,255,.32);
}
body h1, body h2, body h3, body p, body label, body input, body select,
body button, body .button, body .brand, body .brand-icon,
body .file-name, body .checks { color: var(--ink); }
body .muted, body .back, body .stack small, body .auth-note,
body .nav-button, body .account summary, body .pagination,
body .stats > span, body footer, body thead, body .file-picker,
body #file-hint, body #upload-status { color: var(--muted); }
body a, body .download, body .eyebrow, body .stats strong,
body .file-type, body .upload-symbol, body .empty > span,
body .workspace-tabs a, body .auth-note a { color: var(--blue); }
body h1, body h2, body h3, body .brand { color: #fff5e8; }
body .danger-link, body .notice.error, body .bad { color: #ffbac1; }
body .notice, body .ok { color: #b7ecd0; }
body input::placeholder { color: #becbdd; opacity: 1; }
body .file-picker input::file-selector-button { color: var(--ink); }
body .panel th, body .panel td, body .panel .pagination, body footer { border-color: rgba(211,231,255,.18); }
body .button:hover, body .workspace-tabs a:hover { border-color: #b7ddff; }
body a:hover, body .button:hover, body .nav-button:hover { color: #fff5e8; }
body .danger-link:hover { color: #ffd5da; }
body input:focus, body select:focus { outline: 2px solid #b7ddff; outline-offset: 2px; }
body :focus-visible { outline-color: #b7ddff; }
body input { caret-color: #edf3fa; }
body ::selection { background: #b7ddff; color: #10243b; text-shadow: none; }
body .button, body .file-picker input::file-selector-button { text-shadow: inherit; }
/* 原生下拉选项保留可读底色。 */
body .stack select option { color: #edf3fa; background: #17293f; }
@media (max-width:600px) { body::before { background-position: center, 36% center; } }
