

:root { --ink:#24342d; --muted:#738078; --paper:#f8f7f2; --card:#fffef9; --line:#e5e3d8; --sage:#6f8d79; --sage-dark:#486555; --sage-soft:#e8efe8; --peach:#f1dfce; --sand:#eee8d8; --rose:#a95f4d; --rose-soft:#f6e7e1; --shadow:0 18px 50px rgba(54,70,60,.09); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,sans-serif; }
button,input,select,textarea { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
button { color:inherit; }
.topbar { height:74px; position:sticky; top:0; z-index:30; display:flex; align-items:center; padding:0 max(4vw,28px); gap:40px; background:rgba(248,247,242,.93); backdrop-filter:blur(18px); border-bottom:1px solid rgba(216,216,206,.8); }
.brand { color:inherit; text-decoration:none; display:flex; align-items:center; gap:11px; min-width:190px; }
.brand-mark { width:40px; height:40px; display:grid; place-items:center; color:white; background:var(--sage-dark); border-radius:13px 13px 13px 4px; font-family:serif; font-weight:700; font-size:21px; box-shadow:0 6px 14px rgba(72,101,85,.2); }
.brand b,.brand small { display:block; }.brand b { font-family:serif; font-size:20px; letter-spacing:.08em; }.brand small { color:var(--muted); font-size:10px; letter-spacing:.12em; margin-top:1px; }
.desktop-nav { align-self:stretch; display:flex; gap:30px; }.desktop-nav button { position:relative; border:0; background:none; color:var(--muted); padding:0 4px; cursor:pointer; font-weight:600; }.desktop-nav button.active { color:var(--ink); }.desktop-nav button.active:after { content:""; position:absolute; height:3px; border-radius:3px; background:var(--sage); left:0; right:0; bottom:0; }
.header-actions { margin-left:auto; display:flex; align-items:center; gap:10px; }
.primary-btn,.ghost-btn { min-height:42px; padding:0 17px; border-radius:12px; cursor:pointer; font-weight:650; border:1px solid transparent; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; transition:.2s ease; }.primary-btn { background:var(--sage-dark); color:white; box-shadow:0 7px 18px rgba(72,101,85,.16); }.primary-btn:hover { background:#3b5848; transform:translateY(-1px); }.primary-btn:disabled { opacity:.6; cursor:wait; }.ghost-btn { border-color:var(--line); background:rgba(255,255,255,.7); }.ghost-btn:hover { background:#fff; border-color:#c9d0c7; }
.avatar,.tiny-avatar { display:inline-grid; place-items:center; border-radius:50%; color:#fff; background:#a5745e; font-weight:700; }.avatar { width:38px; height:38px; margin-left:3px; }.tiny-avatar { width:24px; height:24px; font-size:11px; font-style:normal; }
.page { max-width:1390px; margin:auto; padding:0 max(4vw,28px) 80px; }
.welcome { min-height:244px; display:flex; align-items:center; position:relative; overflow:hidden; padding:38px 2px 26px; }.eyebrow,.overline { margin:0 0 12px; font-size:10px; letter-spacing:.2em; color:var(--sage); font-weight:800; }.welcome h1 { margin:0; font-family:"Songti SC","STSong",serif; font-size:clamp(33px,4.1vw,57px); line-height:1.16; font-weight:600; letter-spacing:-.02em; }.welcome h1 em { color:var(--sage-dark); font-style:normal; border-bottom:7px solid #dce6db; }.welcome p:last-child { margin:18px 0 0; color:var(--muted); font-size:15px; letter-spacing:.03em; }.leaf-shape { margin-left:auto; width:215px; height:145px; border:1px solid #d9dfd6; border-radius:90% 12% 80% 16%; background:linear-gradient(140deg,#e8eee6,#f2ebdc); transform:rotate(-5deg); display:grid; place-items:center; position:relative; opacity:.9; }.leaf-shape:before { content:""; width:90px; height:1px; background:#bdcbbd; transform:rotate(-22deg); position:absolute; }.leaf-shape span { font-family:serif; font-size:40px; color:#77917e; transform:rotate(5deg); }.leaf-shape i { position:absolute; border:1px solid #dfc9b6; width:74px; height:44px; border-radius:60% 8%; right:-25px; bottom:-10px; }
.metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:42px; }.metrics article { min-height:98px; background:rgba(255,254,249,.86); border:1px solid var(--line); border-radius:18px; display:flex; align-items:center; padding:20px; gap:15px; box-shadow:0 5px 20px rgba(62,75,67,.035); }.metric-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; font-family:serif; font-size:21px; }.metric-icon.sage { background:var(--sage-soft); color:var(--sage-dark); }.metric-icon.peach { background:var(--peach); color:#9d694d; }.metric-icon.sand { background:var(--sand); color:#887953; }.metric-icon.rose { background:var(--rose-soft); color:var(--rose); }.metrics small { display:block; color:var(--muted); font-size:12px; margin-bottom:3px; }.metrics strong { font-size:29px; font-family:Georgia,serif; font-weight:500; }.metrics div>span { font-size:12px; color:var(--muted); margin-left:5px; }
.notice { position:fixed; z-index:80; top:84px; left:50%; transform:translateX(-50%); padding:12px 14px 12px 18px; background:#30483a; color:white; border-radius:12px; box-shadow:var(--shadow); font-size:14px; display:flex; align-items:center; gap:20px; }.notice button { border:0; color:white; background:none; font-size:20px; cursor:pointer; }
.section-heading { display:flex; align-items:end; gap:28px; margin-bottom:22px; }.section-heading .overline { margin-bottom:3px; }.section-heading h2 { font-family:"Songti SC",serif; font-size:29px; margin:0; }.section-heading>p { color:var(--muted); font-size:13px; margin:0 0 3px; }.task-heading .primary-btn { margin-left:auto; }
.toolbar { display:flex; align-items:center; gap:20px; margin-bottom:22px; }.search { flex:0 1 350px; height:44px; border:1px solid var(--line); background:#fff; display:flex; align-items:center; border-radius:12px; padding:0 13px; gap:9px; }.search span { font-size:22px; color:var(--muted); }.search input { border:0; outline:0; background:transparent; width:100%; font-size:13px; }.filter-pills { display:flex; gap:7px; overflow:auto; scrollbar-width:none; }.filter-pills button { white-space:nowrap; border:1px solid var(--line); border-radius:100px; background:transparent; color:var(--muted); padding:8px 13px; cursor:pointer; font-size:12px; }.filter-pills button.active { color:var(--sage-dark); background:var(--sage-soft); border-color:#cddace; font-weight:700; }
.document-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }.document-card,.add-card { min-height:322px; border-radius:19px; border:1px solid var(--line); background:var(--card); overflow:hidden; position:relative; text-align:left; transition:.22s ease; }.document-card { cursor:pointer; }.document-card:hover,.document-card:focus { transform:translateY(-4px); box-shadow:var(--shadow); border-color:#ced7cd; outline:none; }.card-top { position:absolute; top:16px; left:16px; right:16px; display:flex; justify-content:space-between; z-index:2; }.file-badge { width:47px; height:55px; display:flex; align-items:center; justify-content:center; position:relative; border-radius:8px 8px 8px 3px; background:#f4dfd8; color:#a55343; font-family:Georgia,serif; font-weight:bold; font-size:18px; box-shadow:0 5px 10px rgba(50,60,50,.09); }.file-badge.doc,.file-badge.docx { background:#e4ede6; color:#4f755d; }.file-badge.ppt,.file-badge.pptx { background:#f3e4cf; color:#a46c40; }.file-badge.xls,.file-badge.xlsx { background:#e0ebe2; color:#3f7654; }.file-badge i { position:absolute; bottom:-5px; font:700 7px system-ui; letter-spacing:.04em; padding:2px 4px; border-radius:3px; background:#fff; color:currentColor; text-transform:uppercase; }.status { background:#f1ead9; color:#887243; border-radius:100px; padding:5px 9px; font-size:10px; height:max-content; }.status.done { background:var(--sage-soft); color:var(--sage-dark); }.file-lines { height:145px; padding:31px 22px; background:#f0efe9; display:flex; flex-direction:column; gap:10px; align-items:flex-end; }.file-lines span { display:block; height:5px; border-radius:5px; background:#d7d7ce; width:63%; }.file-lines span:nth-child(2) { width:78%; margin-top:22px; }.file-lines span:nth-child(3) { width:88%; }.file-lines b { display:block; width:56%; height:25px; border-radius:5px; background:#dfe6dd; }.card-content { padding:17px 18px 12px; }.category { color:var(--sage); font-size:10px; font-weight:800; letter-spacing:.08em; }.card-content h3 { font-size:16px; line-height:1.45; margin:6px 0 5px; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }.card-content p { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#99a099; font-size:10px; margin:0; }.document-card footer { position:absolute; bottom:0; left:0; right:0; min-height:47px; border-top:1px solid #efeee8; display:flex; align-items:center; padding:0 16px; gap:12px; color:var(--muted); font-size:10px; }.document-card footer span:first-child { display:flex; align-items:center; gap:5px; margin-right:auto; }.document-card footer .overdue { color:var(--rose); }.add-card { border:1.5px dashed #ccd2c9; background:rgba(255,255,255,.35); display:flex; align-items:center; justify-content:center; flex-direction:column; cursor:pointer; }.add-card:hover { background:#fffef9; border-color:var(--sage); }.add-card>span { width:52px; height:52px; border-radius:50%; display:grid; place-items:center; background:var(--sage-soft); color:var(--sage-dark); font-size:25px; margin-bottom:14px; }.add-card b { font-size:14px; }.add-card small { color:var(--muted); margin-top:6px; }.empty-state { border:1.5px dashed #cfd5cc; min-height:310px; border-radius:20px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:30px; background:rgba(255,255,255,.3); }.empty-paper { width:58px; height:58px; display:grid; place-items:center; border-radius:18px; background:var(--sage-soft); color:var(--sage-dark); font-size:26px; }.empty-state h3 { margin:15px 0 7px; font-family:serif; font-size:20px; }.empty-state p { color:var(--muted); max-width:440px; font-size:13px; line-height:1.7; margin:0 0 16px; }.skeleton-card { padding:18px; cursor:default; }.skeleton-card span { display:block; border-radius:8px; background:linear-gradient(90deg,#edede7,#f7f6f1,#edede7); background-size:200% 100%; animation:shine 1.5s infinite; height:145px; margin-bottom:13px; }.skeleton-card span:nth-child(2) { width:72%; height:20px; }.skeleton-card span:nth-child(3) { width:45%; height:12px; }@keyframes shine { to { background-position:-200% 0; } }
.modal-backdrop,.review-overlay { position:fixed; inset:0; z-index:60; background:rgba(35,47,40,.34); backdrop-filter:blur(5px); display:grid; place-items:center; padding:18px; animation:fade .18s ease; }.modal { width:min(620px,100%); max-height:94vh; overflow:auto; background:var(--card); border-radius:24px; padding:25px; box-shadow:0 25px 80px rgba(38,52,43,.22); }.modal.compact { width:min(560px,100%); }.modal-head { display:flex; justify-content:space-between; align-items:start; margin-bottom:20px; }.modal-head h2 { font:600 25px "Songti SC",serif; margin:0; }.modal-head p { color:var(--muted); margin:6px 0 0; font-size:12px; }.modal-head>button { border:0; background:#f0f0e9; width:35px; height:35px; border-radius:50%; font-size:22px; cursor:pointer; }.dropzone { width:100%; min-height:145px; border:1.5px dashed #bac8bb; background:#f3f6f0; border-radius:17px; display:flex; flex-direction:column; justify-content:center; align-items:center; cursor:pointer; margin-bottom:20px; padding:16px; }.dropzone>span { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; color:white; background:var(--sage); font-weight:800; margin-bottom:10px; }.dropzone b { font-size:13px; max-width:90%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.dropzone small { margin-top:5px; color:var(--muted); font-size:10px; }.dropzone.has-file { border-style:solid; background:var(--sage-soft); }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.form-grid label { font-size:11px; font-weight:700; color:#59665e; }.form-grid .full { grid-column:1/-1; }.form-grid input,.form-grid select,.form-grid textarea { width:100%; margin-top:7px; border:1px solid var(--line); background:white; border-radius:10px; min-height:42px; padding:9px 11px; outline:none; color:var(--ink); }.form-grid textarea { min-height:90px; resize:vertical; }.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus { border-color:#94ab99; box-shadow:0 0 0 3px #edf2ed; }.modal-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:22px; }.form-error { color:var(--rose); background:var(--rose-soft); padding:9px 12px; border-radius:8px; font-size:11px; }
.review-overlay { place-items:stretch; padding:14px; }.review-shell { background:var(--paper); border-radius:20px; overflow:hidden; display:flex; flex-direction:column; min-width:0; }.review-shell>header { height:65px; flex:none; background:#fffefb; border-bottom:1px solid var(--line); display:flex; align-items:center; padding:0 18px; gap:18px; }.review-shell>header>div { min-width:0; flex:1; }.review-shell>header b,.review-shell>header small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.review-shell>header small { color:var(--muted); font-size:10px; margin-top:3px; }.back-btn { border:0; background:none; cursor:pointer; color:var(--sage-dark); font-weight:700; }.review-body { flex:1; min-height:0; display:grid; grid-template-columns:minmax(0,1.65fr) minmax(340px,.7fr); }.viewer { min-width:0; display:flex; flex-direction:column; background:#e9e9e4; }.viewer-toolbar { height:44px; flex:none; display:flex; align-items:center; padding:0 16px; gap:9px; font-size:11px; color:var(--muted); }.viewer-toolbar a { margin-left:auto; color:var(--sage-dark); }.mini-file { width:28px; height:28px; border-radius:6px; display:grid; place-items:center; color:white; background:var(--rose); font-weight:800; font-size:10px; }.mini-file.doc,.mini-file.docx { background:var(--sage); }.mini-file.ppt,.mini-file.pptx { background:#b77c4d; }.viewer iframe { width:calc(100% - 28px); flex:1; min-height:500px; border:0; margin:0 14px; background:white; box-shadow:0 8px 35px rgba(42,51,45,.11); }.viewer-fallback { height:38px; display:grid; place-items:center; font-size:10px; color:var(--muted); }.comment-panel { min-width:0; overflow:auto; background:#fffefb; border-left:1px solid var(--line); padding:22px; }.comment-title { display:flex; justify-content:space-between; align-items:end; }.comment-title .overline { margin-bottom:2px; }.comment-title h2 { margin:0; font:600 23px "Songti SC",serif; }.comment-title>span { font-size:10px; border-radius:100px; background:var(--rose-soft); color:var(--rose); padding:5px 9px; }.comment-form { margin:18px 0; padding:14px; border-radius:14px; background:#f1f4ef; border:1px solid #e0e7df; }.comment-form>div { display:grid; grid-template-columns:1fr .75fr; gap:7px; }.comment-form input,.comment-form textarea { border:1px solid #dfe3dc; outline:none; width:100%; border-radius:8px; padding:9px; font-size:11px; background:white; }.comment-form textarea { margin-top:7px; min-height:80px; resize:vertical; }.comment-form button { min-height:34px; padding:0 13px; margin:8px 0 0 auto; font-size:11px; }.comment-list { display:flex; flex-direction:column; gap:10px; }.comment-list article { padding:13px; border-radius:13px; border:1px solid var(--line); background:white; }.comment-list article.resolved { opacity:.58; background:#f5f5f0; }.comment-meta { display:flex; align-items:center; gap:7px; }.comment-meta b { font-size:11px; }.comment-meta i { background:var(--sand); border-radius:5px; padding:3px 5px; font-size:9px; font-style:normal; }.comment-meta time { margin-left:auto; color:#a0a6a0; font-size:9px; }.comment-list article p { font-size:12px; line-height:1.65; margin:10px 0; }.comment-list article button { border:0; background:none; color:var(--sage-dark); font-size:10px; padding:0; cursor:pointer; }.comments-empty { padding:45px 0; text-align:center; color:var(--muted); font-size:12px; }.comments-empty small { color:#a3aaa4; }
.task-list { display:grid; gap:13px; }.task-card { display:grid; grid-template-columns:1.1fr 1fr 1.2fr; gap:24px; align-items:center; background:var(--card); border:1px solid var(--line); border-radius:18px; padding:20px 22px; }.task-status-row { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:10px; }.task-status { background:#f1ead9; color:#806f43; border-radius:100px; padding:4px 8px; }.task-status.done { color:var(--sage-dark); background:var(--sage-soft); }.task-main h3 { font-size:15px; margin:10px 0 5px; }.task-main p { margin:0; color:var(--muted); font-size:10px; }.progress-control>div:first-child { display:flex; justify-content:space-between; font-size:11px; }.progress-control b { font-family:Georgia,serif; color:var(--sage-dark); }.progress-control input { width:100%; accent-color:var(--sage); margin:10px 0 5px; cursor:pointer; }.progress-track { height:5px; background:#e5e7df; border-radius:5px; overflow:hidden; }.progress-track i { display:block; height:100%; border-radius:5px; background:var(--sage); }.difficulty { display:flex; align-items:center; gap:11px; background:var(--rose-soft); border-radius:13px; padding:12px; min-width:0; }.difficulty.none { background:var(--sage-soft); }.difficulty>span { width:28px; height:28px; flex:none; display:grid; place-items:center; border-radius:50%; color:white; background:var(--rose); font-weight:700; }.difficulty.none>span { background:var(--sage); }.difficulty>div { min-width:0; flex:1; }.difficulty small { color:var(--rose); font-size:9px; }.difficulty p { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin:3px 0 0; font-size:10px; }.difficulty button { border:1px solid #e4bbb0; background:white; border-radius:8px; padding:6px 8px; flex:none; cursor:pointer; color:var(--rose); font-size:9px; }.difficulty button:disabled { opacity:.6; }
.mobile-nav { display:none; }
@keyframes fade { from { opacity:0; } }

@media (max-width:1050px) { .document-grid { grid-template-columns:repeat(3,1fr); }.metrics { grid-template-columns:repeat(2,1fr); }.task-card { grid-template-columns:1fr 1fr; }.difficulty { grid-column:1/-1; }.review-body { grid-template-columns:1.35fr 360px; } }
@media (max-width:760px) {
  .topbar { height:62px; padding:0 16px; }.brand { min-width:0; }.brand-mark { width:35px; height:35px; border-radius:11px 11px 11px 4px; }.brand b { font-size:18px; }.brand small,.desktop-nav,.header-actions .ghost-btn,.header-actions .primary-btn { display:none; }.header-actions { margin-left:auto; }.avatar { width:34px; height:34px; }
  .page { padding:0 15px 95px; }.welcome { min-height:190px; padding:28px 2px 20px; }.welcome h1 { font-size:32px; max-width:320px; }.welcome h1 em { display:block; width:max-content; }.welcome p:last-child { font-size:12px; }.eyebrow { font-size:8px; }.leaf-shape { position:absolute; width:100px; height:75px; right:-28px; bottom:20px; opacity:.6; }.leaf-shape span { font-size:24px; }
  .metrics { display:flex; overflow:auto; margin:0 -15px 32px; padding:0 15px 5px; gap:10px; scroll-snap-type:x mandatory; scrollbar-width:none; }.metrics article { flex:0 0 156px; min-height:80px; padding:14px; scroll-snap-align:start; }.metric-icon { width:39px; height:39px; }.metrics strong { font-size:23px; }
  .section-heading { align-items:start; flex-direction:column; gap:6px; margin-bottom:16px; }.section-heading h2 { font-size:25px; }.section-heading>p { font-size:11px; line-height:1.5; }.task-heading .primary-btn { display:none; }
  .toolbar { display:block; }.search { width:100%; max-width:none; margin-bottom:11px; }.filter-pills { margin:0 -15px; padding:0 15px; }
  .document-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.document-card,.add-card { min-height:285px; border-radius:15px; }.file-lines { height:125px; padding:25px 15px; }.card-top { top:12px; left:12px; right:12px; }.file-badge { width:42px; height:49px; }.card-content { padding:13px; }.card-content h3 { font-size:13px; }.document-card footer { padding:0 10px; gap:7px; }.document-card footer span:nth-child(2) { display:none; }.add-card small { text-align:center; padding:0 10px; font-size:9px; }.empty-state { min-height:300px; padding:22px; }
  .mobile-nav { position:fixed; z-index:40; display:flex; align-items:center; justify-content:center; gap:80px; left:14px; right:14px; bottom:12px; height:67px; border:1px solid rgba(220,220,210,.9); background:rgba(255,254,249,.94); backdrop-filter:blur(15px); border-radius:20px; box-shadow:0 10px 35px rgba(42,56,47,.16); }.mobile-nav button { border:0; background:none; color:var(--muted); display:flex; flex-direction:column; align-items:center; gap:2px; font-size:10px; min-width:45px; }.mobile-nav button span { font-size:18px; }.mobile-nav button.active { color:var(--sage-dark); font-weight:800; }.mobile-nav .mobile-add { position:absolute; left:50%; transform:translateX(-50%); width:49px; height:49px; min-width:0; border-radius:16px; display:grid; place-items:center; background:var(--sage-dark); color:white; font-size:26px; box-shadow:0 7px 18px rgba(72,101,85,.25); }
  .modal-backdrop { padding:0; align-items:end; }.modal { border-radius:24px 24px 0 0; padding:21px 17px calc(20px + env(safe-area-inset-bottom)); max-height:92vh; }.form-grid { grid-template-columns:1fr; }.form-grid .full { grid-column:auto; }.dropzone { min-height:125px; }
  .review-overlay { padding:0; }.review-shell { border-radius:0; }.review-shell>header { padding:0 12px; gap:8px; }.review-shell>header .ghost-btn { width:36px; overflow:hidden; padding:0; color:transparent; }.review-shell>header .ghost-btn:after { content:"↗"; color:var(--sage-dark); }.review-body { display:block; overflow:auto; }.viewer { height:52vh; }.viewer iframe { min-height:0; }.comment-panel { border:0; min-height:48vh; padding:18px 15px 90px; overflow:visible; }.back-btn { font-size:0; }.back-btn:first-letter { font-size:20px; }
  .task-card { grid-template-columns:1fr; gap:18px; padding:17px; }.difficulty { grid-column:auto; }.notice { width:calc(100% - 28px); top:72px; }
}

/* Reader-first document library */
.app-root { min-height:100vh; background:var(--paper); }.compact-topbar { position:relative; }.compact-topbar .desktop-nav { margin-left:22px; }.library-shell { min-height:calc(100vh - 74px); display:grid; grid-template-columns:270px minmax(0,1fr) 315px; border-top:1px solid var(--line); }.library-sidebar { background:#f2f2ec; border-right:1px solid var(--line); padding:28px 17px; display:flex; flex-direction:column; min-height:0; }.library-title { padding:0 8px 18px; }.library-title .overline { margin-bottom:4px; }.library-title h1 { margin:0; font:600 27px "Songti SC",serif; }.library-title p { color:var(--muted); font-size:11px; margin:5px 0 0; }.library-search { height:41px; flex:none; width:100%; margin-bottom:20px; }.tag-section { border-top:1px solid #deded4; padding:16px 7px; }.tag-section>div:first-child { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }.tag-section small { font-size:10px; font-weight:800; color:var(--muted); letter-spacing:.06em; }.tag-reset { border:0; background:none; color:var(--sage-dark); cursor:pointer; font-size:10px; }.tag-list { display:flex; gap:7px; flex-wrap:wrap; }.tag-list button { min-height:29px; border:1px solid #d9ddd5; background:#fafaf6; border-radius:100px; color:#647168; cursor:pointer; padding:4px 8px; font-size:10px; }.tag-list button.active { color:var(--sage-dark); background:var(--sage-soft); border-color:#c9d9ca; font-weight:800; }.tag-list i { color:#9ca69d; font-style:normal; font-size:9px; margin-left:3px; }.sidebar-upload { width:100%; margin:2px 0 15px; min-height:40px; border:1px dashed #9fb1a1; background:#e6eee6; color:var(--sage-dark); border-radius:10px; cursor:pointer; font-size:12px; font-weight:700; }.file-nav { min-height:0; overflow:auto; padding-right:2px; display:grid; gap:5px; align-content:start; }.file-nav>p { color:var(--muted); padding:8px; font-size:11px; }.file-nav>button { border:1px solid transparent; background:transparent; display:flex; align-items:center; gap:9px; padding:8px; border-radius:11px; text-align:left; cursor:pointer; min-width:0; }.file-nav>button:hover,.file-nav>button.active { background:#fffef9; border-color:#d9e0d7; }.file-nav>button>span:last-child { min-width:0; }.file-nav b,.file-nav small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.file-nav b { font-size:11px; }.file-nav small { color:var(--muted); font-size:9px; margin-top:3px; }.reader-main { min-width:0; background:#e9e9e3; display:flex; flex-direction:column; position:relative; }.reader-head { min-height:112px; background:#fffef9; padding:22px 28px 18px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:20px; }.reader-head h2 { margin:2px 0 8px; font:600 27px/1.3 "Songti SC",serif; }.reader-head .overline { margin:0; font-size:9px; }.reader-tags { display:flex; flex-wrap:wrap; gap:6px; }.reader-tags button,.reader-tags span { border:1px solid #d8e0d6; color:var(--sage-dark); background:var(--sage-soft); border-radius:100px; padding:4px 8px; cursor:pointer; font-size:10px; }.reader-actions { display:flex; align-items:start; gap:7px; white-space:nowrap; }.reader-actions .ghost-btn { min-height:34px; padding:0 10px; font-size:11px; }.document-canvas { flex:1; min-height:0; margin:23px 22px 26px; background:#fff; box-shadow:0 5px 28px rgba(41,50,44,.09); overflow:auto; }.document-canvas>iframe { width:100%; height:100%; min-height:620px; border:0; }.docx-canvas { padding:clamp(24px,5vw,72px); }.reader-loading,.reader-error { min-height:420px; display:grid; place-content:center; text-align:center; color:var(--muted); font-size:13px; }.reader-error b { display:block; color:var(--ink); font:600 21px "Songti SC",serif; }.reader-error p { max-width:320px; line-height:1.7; }.word-content { color:#202520; font-family:"Songti SC","STSong",serif; font-size:17px; line-height:1.95; max-width:850px; margin:auto; }.word-content h1,.word-content h2,.word-content h3 { font-family:"PingFang SC","Microsoft YaHei",sans-serif; line-height:1.45; color:#24342d; }.word-content h1 { font-size:28px; text-align:center; margin:0 0 1.5em; }.word-content h2 { font-size:22px; margin:1.8em 0 .6em; }.word-content h3 { font-size:18px; margin:1.4em 0 .5em; }.word-content p { margin:0 0 1em; text-align:justify; }.word-content img { max-width:100%; height:auto; display:block; margin:18px auto; }.word-content table { width:100%; border-collapse:collapse; margin:18px 0; font-family:"PingFang SC",sans-serif; font-size:13px; }.word-content td,.word-content th { border:1px solid #ccd3c9; padding:7px 9px; }.file-fallback { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:35px; }.file-fallback .file-badge { position:static; margin-bottom:16px; }.file-fallback h3 { font:600 21px "Songti SC",serif; margin:0 0 7px; }.file-fallback p { color:var(--muted); max-width:380px; font-size:12px; line-height:1.7; margin:0 0 17px; }.comments-dock { background:#fffef9; border-left:1px solid var(--line); padding:20px 17px; overflow:auto; min-width:0; }.dock-title { display:flex; align-items:end; justify-content:space-between; margin-bottom:14px; }.dock-title .overline { margin:0 0 3px; font-size:9px; }.dock-title h3 { margin:0; font:600 23px "Songti SC",serif; }.dock-title>button { border:0; background:none; color:var(--sage-dark); font-size:10px; cursor:pointer; }.tag-editor { margin:0 0 11px; padding:10px; border-radius:10px; background:var(--sage-soft); }.tag-editor label { color:#5a6b5d; display:block; font-size:9px; font-weight:700; }.tag-editor input { width:100%; min-height:34px; margin:6px 0; border:1px solid #cfdbcf; border-radius:7px; padding:7px; font-size:10px; }.tag-editor .primary-btn { min-height:30px; padding:0 10px; font-size:10px; }.comments-dock .comment-form { margin-top:0; }.comments-dock .comment-list { max-height:none; }.empty-reader { min-height:510px; margin:22px; background:#fffef9; box-shadow:0 5px 28px rgba(41,50,44,.07); display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:30px; }.empty-reader>span { width:54px; height:54px; display:grid; place-items:center; background:var(--sage-soft); border-radius:17px; color:var(--sage-dark); font-size:25px; }.empty-reader h2 { margin:17px 0 6px; font:600 24px "Songti SC",serif; }.empty-reader p { color:var(--muted); font-size:12px; margin:0 0 16px; }.tag-picker { grid-column:1/-1; }.tag-picker>label { display:block; margin-bottom:7px; }.tag-picker>div { display:flex; flex-wrap:wrap; gap:6px; }.tag-picker button { border:1px solid var(--line); background:#fff; color:var(--muted); border-radius:100px; padding:6px 9px; cursor:pointer; font-size:10px; }.tag-picker button.active { color:var(--sage-dark); border-color:#c8d9c8; background:var(--sage-soft); }.tag-picker input { margin-top:9px; }
@media (max-width:1100px) { .library-shell { grid-template-columns:235px minmax(0,1fr); }.comments-dock { grid-column:1/-1; border-left:0; border-top:1px solid var(--line); max-height:500px; }.reader-main { display:block; min-height:calc(100vh - 74px); }.document-canvas { min-height:600px; }.reader-head { position:sticky; top:0; z-index:3; }.library-shell { align-items:start; }.reader-main .comments-dock { background:#fffef9; } }
@media (max-width:760px) { .compact-topbar .desktop-nav { display:none; }.library-shell { min-height:calc(100vh - 62px); display:block; }.library-sidebar { padding:15px; min-height:auto; border-right:0; border-bottom:1px solid var(--line); }.library-title { padding:0 0 10px; display:flex; align-items:baseline; gap:10px; }.library-title .overline { display:none; }.library-title h1 { font-size:23px; }.library-title p { margin:0; }.library-search { margin-bottom:11px; }.tag-section { padding:0 0 11px; border:0; }.tag-section>div:first-child { display:none; }.tag-list { flex-wrap:nowrap; overflow:auto; padding-bottom:3px; }.tag-list button { white-space:nowrap; }.sidebar-upload,.file-nav { display:none; }.reader-main { min-height:0; }.reader-head { min-height:0; padding:16px 15px 13px; align-items:start; }.reader-head h2 { font-size:20px; }.reader-actions .ghost-btn:first-child { display:none; }.document-canvas { min-height:500px; margin:10px; }.document-canvas>iframe { min-height:500px; }.docx-canvas { padding:23px 18px; }.word-content { font-size:16px; line-height:1.9; }.word-content h1 { font-size:23px; }.word-content h2 { font-size:19px; }.comments-dock { padding:16px 14px 88px; }.empty-reader { min-height:430px; margin:10px; }.reader-tags { max-width:230px; }.reader-actions { flex:none; }.reader-actions .ghost-btn { padding:0 8px; font-size:10px; }.tag-picker button { font-size:9px; }.task-card { margin:0 15px; }.tasks-only { padding-top:25px; } }

.library-shell { grid-template-columns:270px minmax(0,1fr); }
.reader-main { display:grid; grid-template-columns:minmax(0,1fr) 315px; grid-template-rows:auto minmax(0,1fr); }
.reader-head { grid-column:1/-1; }.reader-main>.document-canvas { grid-column:1; grid-row:2; margin:23px 0 26px 22px; }.reader-main>.comments-dock { grid-column:2; grid-row:2; border-left:1px solid var(--line); border-top:0; }.reader-main>.empty-reader { grid-column:1/-1; }
@media (max-width:1100px) { .library-shell { grid-template-columns:235px minmax(0,1fr); }.reader-main { display:flex; flex-direction:column; }.reader-main>.document-canvas { margin:23px 22px 0; }.reader-main>.comments-dock { border-left:0; border-top:1px solid var(--line); max-height:500px; }.reader-main>.empty-reader { margin:22px; } }
@media (max-width:760px) { .reader-main>.document-canvas { margin:10px; }.reader-main>.comments-dock { padding:16px 14px 88px; }.reader-main>.empty-reader { margin:10px; } }

/* Immersive archive login */
.auth-night { min-height:100vh; position:relative; overflow:hidden; background:#03081b; color:#edf2ff; }.night-scene { position:absolute; inset:0; overflow:hidden; }.night-scene img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; opacity:.79; }.night-scene:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(2,7,23,.97) 0%,rgba(2,7,23,.86) 34%,rgba(2,7,23,.20) 69%,rgba(2,7,23,.44) 100%),linear-gradient(0deg,rgba(2,7,23,.52),transparent 48%); }.scene-spotlight { position:absolute; z-index:2; width:460px; height:720px; left:calc(65% - 230px); top:-80px; clip-path:polygon(47% 0,53% 0,100% 100%,0 100%); background:radial-gradient(ellipse at 50% 20%,rgba(255,205,101,.72),rgba(242,167,62,.19) 36%,rgba(242,167,62,0) 73%); opacity:.05; mix-blend-mode:screen; transition:opacity .58s ease,filter .58s ease; pointer-events:none; }.scene-glow { position:absolute; z-index:2; left:calc(65% - 165px); top:38%; width:330px; height:330px; border-radius:50%; background:radial-gradient(circle,rgba(255,185,75,.46),rgba(255,166,57,.12) 38%,transparent 72%); filter:blur(18px); opacity:0; transition:opacity .5s ease; pointer-events:none; }.scene-spotlight.on { opacity:1; filter:brightness(1.35); }.scene-glow.on { opacity:1; }
.night-content { position:relative; z-index:3; min-height:100vh; padding:40px clamp(26px,7vw,108px) 34px; display:flex; flex-direction:column; align-items:flex-start; }.night-brand { display:flex; align-items:center; gap:9px; color:white; text-decoration:none; letter-spacing:.04em; }.night-brand>span { width:34px; height:34px; display:grid; place-items:center; border-radius:10px 10px 10px 3px; background:#f2bd65; color:#102031; font:700 19px "Songti SC",serif; }.night-brand b { font:600 21px "Songti SC",serif; }.night-brand i { font-size:10px; color:#96a3b8; font-style:normal; border-left:1px solid #47556a; padding-left:9px; }.night-card { width:min(390px,100%); margin:auto 0; padding:0; }.night-copy>p { margin:0 0 8px; color:#c9a568; letter-spacing:.2em; font-size:10px; font-weight:800; }.night-copy h1 { margin:0; font:600 42px "Songti SC",serif; letter-spacing:.03em; }.night-copy>span { display:block; color:#aab6c6; font-size:13px; margin:12px 0 22px; }.night-tabs { display:flex; margin-bottom:18px; gap:2px; padding:3px; background:rgba(21,33,54,.62); border:1px solid rgba(180,196,223,.17); border-radius:13px; backdrop-filter:blur(14px); }.night-tabs button { flex:1; min-height:41px; border:0; border-radius:10px; color:#aeb9cb; background:transparent; cursor:pointer; font-weight:700; transition:.2s ease; }.night-tabs button.active { color:#19263c; background:#eef2f6; box-shadow:0 5px 15px rgba(0,0,0,.24); }.night-card form { display:grid; gap:13px; }.night-card label { color:#c9d2df; font-size:11px; font-weight:700; }.night-card label small { color:#8490a3; font-weight:400; }.night-card input { width:100%; min-height:48px; margin-top:6px; padding:0 13px; border:1px solid rgba(184,203,228,.2); border-radius:11px; color:white; background:rgba(8,17,36,.66); outline:none; box-shadow:inset 0 1px rgba(255,255,255,.04); }.night-card input::placeholder { color:#77849a; }.night-card input:focus { border-color:#d3a65f; box-shadow:0 0 0 3px rgba(208,161,86,.17); }.night-message { margin:0; padding:10px 12px; background:rgba(164,69,49,.31); color:#ffd0c6; border:1px solid rgba(255,151,130,.26); border-radius:9px; font-size:11px; line-height:1.5; }.night-message.good { background:rgba(77,139,107,.29); color:#c6f0d1; border-color:rgba(147,221,171,.2); }.night-submit { min-height:51px; margin-top:4px; border:1px solid rgba(252,222,169,.5); background:linear-gradient(125deg,#f1c46e,#cf9144); color:#162437; border-radius:13px; cursor:pointer; font-weight:850; font-size:14px; box-shadow:0 12px 26px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.47); }.night-submit:hover { filter:brightness(1.07); transform:translateY(-1px); }.night-submit:disabled { opacity:.65; cursor:wait; transform:none; }.night-submit span { margin-left:12px; font-size:20px; vertical-align:-1px; }.night-approval { display:flex; align-items:start; gap:9px; margin-top:15px; padding:10px 12px; background:rgba(31,47,72,.62); border:1px solid rgba(180,196,223,.15); border-radius:11px; color:#aeb9cb; }.night-approval>span { width:20px; height:20px; flex:none; display:grid; place-items:center; border-radius:50%; background:#718d7c; color:white; font-size:11px; }.night-approval p { margin:0; font-size:10px; line-height:1.65; }.night-approval b { display:block; color:#e3ebf8; }.night-note { display:block; color:#77849a; font-size:9px; margin:16px 0 0; text-align:center; }.night-hint { margin:0; color:#8e9bb0; font-size:10px; letter-spacing:.03em; }.night-hint:before { content:"✦"; color:#e9b35b; margin-right:7px; }
@media (max-width:760px) { .auth-night { min-height:100dvh; }.night-scene img { object-position:63% center; opacity:.62; }.night-scene:after { background:linear-gradient(180deg,rgba(2,7,23,.46),rgba(2,7,23,.80) 42%,rgba(2,7,23,.97) 76%),linear-gradient(90deg,rgba(2,7,23,.66),rgba(2,7,23,.12)); }.scene-spotlight { width:330px; height:530px; left:calc(63% - 165px); top:20px; }.scene-glow { left:calc(63% - 120px); top:27%; width:240px; height:240px; }.night-content { padding:25px 19px 28px; }.night-brand>span { width:31px; height:31px; }.night-brand b { font-size:19px; }.night-brand i { display:none; }.night-card { margin:auto 0 21px; }.night-copy h1 { font-size:36px; }.night-copy>span { font-size:12px; margin-bottom:17px; }.night-hint { font-size:9px; max-width:260px; }.night-card input { min-height:45px; }.night-submit { min-height:48px; } }

/* Preserve the original archive illustration; brighten only its existing lamp beam. */
.night-scene img { opacity:1; }
.night-scene:after { background:linear-gradient(90deg,rgba(2,7,23,.96) 0%,rgba(2,7,23,.86) 32%,rgba(2,7,23,.30) 49%,rgba(2,7,23,.04) 70%,rgba(2,7,23,.08) 100%); }
.night-scene img.night-scene-base { opacity:1; }
.night-scene img.night-scene-lit { opacity:0; transition:opacity .6s ease; }
.night-scene.lit img.night-scene-lit { opacity:1; }
.scene-spotlight,.scene-glow { display:none!important; }
@media (max-width:760px) { .night-scene img { opacity:1; object-position:63% center; }.night-scene:after { background:linear-gradient(180deg,rgba(2,7,23,.20),rgba(2,7,23,.52) 47%,rgba(2,7,23,.91) 77%),linear-gradient(90deg,rgba(2,7,23,.65),rgba(2,7,23,.04)); } }
@media (max-width:380px) { .document-grid { grid-template-columns:1fr; }.document-card,.add-card { min-height:300px; }.file-lines { height:140px; } }
@media (prefers-reduced-motion:reduce) { *,*:before,*:after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }

/* Account access */
.account-button { border:0; background:transparent; display:flex; align-items:center; gap:7px; cursor:pointer; padding:0; }
.account-button i { font-size:11px; color:var(--muted); font-style:normal; max-width:70px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-link { color:var(--sage-dark); text-decoration:none; font-size:11px; font-weight:700; padding:8px; }
.auth-page { min-height:100vh; display:grid; grid-template-columns:minmax(360px,.86fr) minmax(520px,1.14fr); background:var(--paper); }
.auth-intro { padding:52px clamp(34px,6vw,90px); background:#e8eee6; display:flex; flex-direction:column; justify-content:space-between; position:relative; overflow:hidden; }
.auth-intro:after { content:"阅"; position:absolute; right:-30px; top:50%; transform:translateY(-50%); font:250px/1 "Songti SC",serif; color:rgba(72,101,85,.055); }
.auth-brand { position:relative; z-index:1; }.auth-intro>div { position:relative; z-index:1; }.auth-intro h1 { margin:0; font:600 clamp(42px,5vw,66px)/1.2 "Songti SC",serif; }.auth-intro h1 em { color:var(--sage-dark); font-style:normal; border-bottom:8px solid rgba(255,255,255,.65); }.auth-intro>div>p:last-child { color:#6f7d73; line-height:1.8; max-width:380px; }.auth-intro blockquote { position:relative; z-index:1; margin:0; color:#5f7165; font:15px/1.8 "Songti SC",serif; border-left:2px solid #9eaf9f; padding-left:17px; }
.auth-panel { display:grid; place-items:center; padding:34px; }.auth-card { width:min(440px,100%); }.auth-tabs { display:flex; gap:5px; padding:4px; background:#eeede7; border-radius:14px; margin-bottom:38px; }.auth-tabs button { width:50%; min-height:42px; border:0; border-radius:11px; background:transparent; color:var(--muted); cursor:pointer; font-weight:700; }.auth-tabs button.active { background:white; color:var(--ink); box-shadow:0 4px 12px rgba(50,60,54,.07); }.auth-copy h2 { margin:4px 0 6px; font:600 30px "Songti SC",serif; }.auth-copy p { margin:0 0 25px; color:var(--muted); font-size:12px; }.auth-card form { display:grid; gap:15px; }.auth-card label { font-size:11px; font-weight:700; color:#59665e; }.auth-card input { width:100%; min-height:48px; margin-top:7px; border:1px solid var(--line); border-radius:12px; padding:0 13px; outline:none; background:#fffefb; }.auth-card input:focus { border-color:#94ab99; box-shadow:0 0 0 3px #edf2ed; }.auth-submit { width:100%; min-height:49px; margin-top:5px; }.auth-message { margin:0; background:var(--rose-soft); color:var(--rose); border-radius:9px; padding:10px 12px; font-size:11px; line-height:1.5; }.auth-message.good { background:var(--sage-soft); color:var(--sage-dark); }.approval-note { margin-top:20px; display:flex; gap:10px; background:#f0f3ed; border:1px solid #e0e7df; border-radius:13px; padding:13px; }.approval-note>span { width:27px; height:27px; flex:none; display:grid; place-items:center; border-radius:50%; background:var(--sage); color:white; }.approval-note p { margin:0; font-size:10px; line-height:1.7; color:var(--muted); }.approval-note b { color:var(--ink); }.security-note { display:block; margin-top:17px; text-align:center; color:#9aa19a; font-size:9px; }
.admin-page { min-height:100vh; background:var(--paper); }.admin-header { height:74px; padding:0 max(4vw,28px); border-bottom:1px solid var(--line); background:#fffefb; display:flex; align-items:center; justify-content:space-between; }.admin-header>div { display:flex; align-items:center; gap:14px; color:var(--muted); font-size:11px; }.admin-wrap { max-width:1120px; margin:auto; padding:58px 24px 80px; }.admin-title { display:flex; justify-content:space-between; align-items:end; margin-bottom:36px; }.admin-title h1 { margin:5px 0 9px; font:600 38px "Songti SC",serif; }.admin-title p { margin:0; color:var(--muted); font-size:12px; }.pending-count { min-width:145px; border:1px solid var(--line); border-radius:17px; background:#fffefb; padding:16px 20px; }.pending-count strong,.pending-count span { display:block; }.pending-count strong { font:32px Georgia,serif; color:var(--rose); }.pending-count span { color:var(--muted); font-size:10px; }.admin-notice { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; padding:11px 15px; border-radius:10px; background:var(--sage-soft); color:var(--sage-dark); font-size:11px; }.admin-notice button { border:0; background:none; font-size:20px; cursor:pointer; }.admin-filters { display:flex; gap:8px; margin-bottom:16px; overflow:auto; }.admin-filters button { border:1px solid var(--line); border-radius:100px; background:transparent; padding:8px 13px; white-space:nowrap; cursor:pointer; font-size:11px; }.admin-filters button.active { background:var(--sage-dark); border-color:var(--sage-dark); color:white; }.admin-filters span { margin-left:6px; opacity:.65; }.user-list { display:grid; gap:10px; }.user-row { display:grid; grid-template-columns:46px 1fr 120px 75px minmax(150px,auto); align-items:center; gap:14px; min-height:84px; padding:14px 17px; background:#fffefb; border:1px solid var(--line); border-radius:15px; }.user-avatar { width:42px; height:42px; display:grid; place-items:center; border-radius:13px; background:var(--sage-soft); color:var(--sage-dark); font-weight:800; }.user-info h3 { margin:0 0 4px; font-size:13px; }.user-info h3 i { margin-left:6px; background:var(--sand); padding:3px 5px; border-radius:4px; color:#81744e; font:normal 8px system-ui; }.user-info p,.user-date small,.user-date span { margin:0; display:block; color:var(--muted); font-size:10px; }.user-date span { color:var(--ink); margin-top:4px; }.user-status { justify-self:start; border-radius:100px; padding:5px 8px; font-size:9px; background:#efeee9; color:var(--muted); }.user-status.pending { background:var(--rose-soft); color:var(--rose); }.user-status.approved { background:var(--sage-soft); color:var(--sage-dark); }.user-actions { justify-self:end; display:flex; gap:6px; }.user-actions button { border:1px solid var(--line); background:white; border-radius:8px; padding:7px 9px; cursor:pointer; font-size:9px; }.user-actions button.approve { color:white; border-color:var(--sage-dark); background:var(--sage-dark); }.admin-empty { min-height:250px; border:1px dashed #ccd2c9; border-radius:18px; display:flex; flex-direction:column; align-items:center; justify-content:center; color:var(--muted); }.admin-empty>span { width:45px; height:45px; display:grid; place-items:center; border-radius:50%; background:var(--sage-soft); color:var(--sage-dark); margin-bottom:11px; }.admin-empty p { font-size:11px; }

@media (max-width:760px) {
  .account-button i,.admin-link { display:none; }.account-button .avatar { margin:0; }
  .auth-page { display:block; }.auth-intro { min-height:245px; padding:28px 22px; }.auth-intro blockquote { display:none; }.auth-intro h1 { font-size:37px; margin-top:34px; }.auth-intro>div>p:last-child { font-size:11px; }.auth-panel { padding:28px 18px 42px; align-items:start; }.auth-tabs { margin-bottom:27px; }
  .admin-header { height:64px; padding:0 15px; }.admin-header>div>span { display:none; }.admin-wrap { padding:35px 15px 75px; }.admin-title { align-items:start; }.admin-title h1 { font-size:31px; }.admin-title p { max-width:230px; line-height:1.6; }.pending-count { min-width:92px; padding:12px; }.user-row { grid-template-columns:42px 1fr auto; gap:10px; padding:13px; }.user-date { display:none; }.user-status { grid-column:3; grid-row:1; }.user-actions { grid-column:2/-1; justify-self:start; }.user-info p { max-width:185px; overflow:hidden; text-overflow:ellipsis; }
}

/* Archive login palette: ink, aged brass, and warm paper — no ice-blue controls. */
.night-brand>span { background:linear-gradient(135deg,#efc56e,#c98b3e); color:#172035; box-shadow:0 5px 16px rgba(220,157,66,.18); }
.night-brand i { color:#a9a193; border-color:rgba(208,166,96,.38); }
.night-copy>p { color:#dfb568; }.night-copy>span { color:#bbb7ad; }
.night-tabs { background:rgba(12,22,40,.78); border-color:rgba(205,163,94,.30); box-shadow:inset 0 1px rgba(255,255,255,.025); }
.night-tabs button { color:#aba99f; }.night-tabs button.active { color:#171c2a; background:linear-gradient(135deg,#e7c47f,#c99047); box-shadow:0 5px 16px rgba(0,0,0,.34),inset 0 1px rgba(255,244,211,.55); }
.night-card label { color:#d4d0c7; }.night-card label small { color:#9e9b93; }
.night-card input { color:#f4e7ce; background:rgba(12,22,40,.86); border-color:rgba(205,163,94,.34); box-shadow:inset 0 1px rgba(255,237,196,.04),0 1px rgba(0,0,0,.35); }
.night-card input::placeholder { color:#7f8490; }.night-card input:focus { border-color:#e2b665; box-shadow:0 0 0 3px rgba(216,166,83,.16),inset 0 1px rgba(255,237,196,.04); }
.night-card input:-webkit-autofill,.night-card input:-webkit-autofill:hover,.night-card input:-webkit-autofill:focus { -webkit-text-fill-color:#f4e7ce; caret-color:#f4e7ce; -webkit-box-shadow:0 0 0 1000px #0c1628 inset,0 1px rgba(0,0,0,.35); box-shadow:0 0 0 1000px #0c1628 inset,0 1px rgba(0,0,0,.35); border-color:rgba(205,163,94,.42); transition:background-color 9999s ease-out 0s; }
.night-submit { color:#162033; border-color:rgba(255,224,166,.63); background:linear-gradient(125deg,#edc66f,#c9873d); box-shadow:0 12px 26px rgba(0,0,0,.34),inset 0 1px rgba(255,246,217,.54); }
.night-approval { background:rgba(20,31,48,.78); border-color:rgba(205,163,94,.22); color:#b7b4ab; }.night-approval>span { background:#b88448; }.night-approval b { color:#eee3cc; }
.night-note { color:#92969d; }.night-hint { color:#9fa1a1; }.night-hint:before { color:#e0ae5d; }

/* Keep the pixel-art illustration at its complete aspect ratio instead of cropping it to fill tall screens. */
.night-scene { background:#03081b; }
.night-scene img { object-fit:contain; object-position:center; }
@media (max-width:760px) { .night-scene img { object-fit:contain; object-position:center; } }

/* Darkened aged-metal controls to sit with the archive rather than above it. */
.auth-night { color:#d2cdc2; }
.night-brand { color:#d1cbc0; }.night-brand b { color:#d7d1c6; text-shadow:0 1px 0 #050915,0 0 14px rgba(171,125,70,.12); }
.night-brand>span { background:linear-gradient(135deg,#8a6745,#5c422f); color:#dfd2ba; box-shadow:inset 0 1px rgba(236,210,165,.26),0 5px 16px rgba(0,0,0,.25); }
.night-copy h1 { color:#d5d0c7; text-shadow:0 1px 0 #080c16,0 0 18px rgba(120,96,70,.09); }.night-copy>p { color:#9a774d; }.night-copy>span { color:#aaa69e; }
.night-tabs { background:rgba(8,16,29,.84); border-color:rgba(142,107,67,.58); }.night-tabs button { color:#a8a39a; }.night-tabs button.active { color:#e5d8c1; background:linear-gradient(135deg,#896441,#593e2a); box-shadow:inset 0 1px rgba(233,206,161,.28),0 5px 15px rgba(0,0,0,.40); }
.night-card label { color:#bbb5a9; }.night-card label small { color:#8d8a84; }
.night-card input { color:#d6cdbc; background:rgba(12,20,32,.92); border-color:rgba(139,103,64,.65); box-shadow:inset 0 1px rgba(219,192,146,.035),0 1px rgba(0,0,0,.48); }.night-card input::placeholder { color:#777771; }.night-card input:focus { border-color:#a47b4d; box-shadow:0 0 0 3px rgba(128,92,55,.18),inset 0 1px rgba(219,192,146,.035); }
.night-card input:-webkit-autofill,.night-card input:-webkit-autofill:hover,.night-card input:-webkit-autofill:focus { -webkit-text-fill-color:#d6cdbc; caret-color:#d6cdbc; -webkit-box-shadow:0 0 0 1000px #0c1420 inset,0 1px rgba(0,0,0,.48); box-shadow:0 0 0 1000px #0c1420 inset,0 1px rgba(0,0,0,.48); border-color:rgba(139,103,64,.72); }
.night-submit { color:#e6dac4; border-color:rgba(181,139,84,.65); background:linear-gradient(125deg,#876342,#593e2b); box-shadow:0 12px 26px rgba(0,0,0,.42),inset 0 1px rgba(231,207,167,.25); }.night-submit:hover { filter:brightness(1.12) saturate(.9); }
.night-note { color:#8f8c86; }.night-hint { color:#99958d; }.night-hint:before { color:#9a764c; }
.night-scene.lit img.night-scene-lit { opacity:.72; }

/* Mainland login: preserve the illustration and let its own lamp wake up on entry. */
.night-scene img.night-scene-lit { opacity:0; filter:brightness(.92) saturate(.92); transition:opacity 2.7s cubic-bezier(.22,.75,.2,1),filter 2.7s cubic-bezier(.22,.75,.2,1); }
.night-scene.lit img.night-scene-lit { opacity:.84; filter:brightness(1.08) saturate(1.03); }
.night-card { width:min(360px,100%); margin:auto 0; }
.night-tabs { margin-bottom:13px; padding:2px; border-radius:12px; }
.night-tabs button { min-height:38px; border-radius:9px; font-size:13px; letter-spacing:.035em; }
.night-card form { gap:10px; }
.night-card label { font-size:10px; letter-spacing:.045em; }
.night-card input { min-height:43px; margin-top:5px; padding:0 12px; border-radius:10px; font-size:12px; }
.night-submit { min-height:45px; margin-top:3px; border-radius:11px; font-size:13px; letter-spacing:.035em; }
.night-submit span { margin-left:9px; font-size:17px; }
.night-approval { margin-top:11px; padding:8px 10px; border-radius:10px; }
.night-approval p { font-size:9px; line-height:1.55; }
.night-brand { gap:8px; }.night-brand>span { width:31px; height:31px; font-size:17px; border-radius:9px 9px 9px 3px; }.night-brand b { font-size:19px; letter-spacing:.07em; }
@media (max-width:760px) { .night-content { padding:22px 20px 24px; }.night-card { width:min(350px,100%); margin:auto 0 12px; }.night-tabs { margin-bottom:11px; }.night-card input { min-height:42px; }.night-submit { min-height:44px; } }
@media (prefers-reduced-motion:reduce) { .night-scene img.night-scene-lit { transition:none; } }

/* The compact material list uses a more legible title size. */
.file-nav b { font-size:14.3px; line-height:1.35; }
.user-info small { display:block; margin-top:3px; color:#9b968c; font-size:9px; }
