:root{
  --bg:#efeae0;--paper:#fbf8f1;--paper-2:#f5f0e6;--ink:#211e19;--muted:#766f64;
  --line:#d8d0c3;--accent:#2f5548;--accent-soft:#dfe8e2;--wine:#713936;--gold:#9a7540;
  --shadow:0 18px 48px rgba(50,41,31,.09);--sans:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --serif:"Songti SC","STSong","Noto Serif CJK SC",Georgia,serif
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink)}
body{font-family:var(--sans);line-height:1.6}button,input,select{font:inherit}button{color:inherit}
a{color:inherit;text-decoration:none}.hidden{display:none!important}
.topbar{height:68px;padding:0 28px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--line);background:rgba(251,248,241,.92);backdrop-filter:blur(16px);position:sticky;top:0;z-index:30}
.home-link{font-size:13px;color:var(--muted);white-space:nowrap}.brand{font:600 18px/1 var(--serif);letter-spacing:.06em}
.brand small{font:600 10px/1 var(--sans);color:var(--gold);letter-spacing:.14em;margin-left:10px}
.primary-tabs{margin-left:auto;display:flex;gap:5px;padding:5px;background:#e7e0d4;border-radius:12px}
.primary-tab{border:0;background:transparent;padding:9px 14px;border-radius:8px;cursor:pointer;font-size:13px;color:var(--muted)}
.primary-tab.active{background:var(--paper);color:var(--ink);box-shadow:0 3px 12px rgba(45,36,27,.08)}
.search-wrap{width:min(280px,22vw);position:relative}.search-wrap input{width:100%;padding:10px 12px 10px 34px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}
.search-wrap:before{content:"⌕";position:absolute;left:12px;top:7px;color:var(--muted);font-size:20px}
.dashboard{max-width:1420px;margin:auto;padding:46px 42px 80px}.dashboard-hero{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:50px;align-items:end;padding:55px 0 46px;border-bottom:1px solid var(--line)}
.eyebrow{margin:0 0 16px;color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.18em}
.dashboard-hero h1{margin:0;font:500 clamp(46px,6vw,88px)/1.08 var(--serif);letter-spacing:-.04em}.dashboard-hero h1 span{color:#777064}
.dashboard-hero>p{margin:0;color:var(--muted);font:400 18px/1.8 var(--serif)}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:30px 0}
.stat{padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}.stat b{display:block;font:600 32px/1 Georgia;color:var(--accent)}.stat span{font-size:12px;color:var(--muted)}
.dashboard-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:18px}.panel{padding:25px;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:var(--shadow)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.panel h2{margin:0;font:600 24px/1.2 var(--serif)}.panel-link{border:0;background:none;color:var(--accent);cursor:pointer;font-size:13px}
.current-list,.shelf-preview{display:grid;gap:10px}.current-item,.preview-item{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;padding:15px 0;border:0;border-top:1px solid #e6dfd4;background:transparent;text-align:left;cursor:pointer}
.current-item:first-child,.preview-item:first-child{border-top:0}.item-title{display:block;font:600 17px/1.4 var(--serif)}.item-meta{display:block;font-size:12px;color:var(--muted);margin-top:3px}.status-chip{align-self:center;padding:4px 9px;border-radius:99px;font-size:11px;background:var(--accent-soft);color:var(--accent)}
.explore-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.action-card{border:1px solid var(--line);background:var(--paper-2);border-radius:14px;padding:18px;text-align:left;cursor:pointer}.action-card b{display:block;font:600 17px var(--serif);margin-bottom:4px}.action-card span{font-size:12px;color:var(--muted)}
.workspace{height:calc(100vh - 68px);display:grid;grid-template-columns:250px 340px minmax(480px,1fr);overflow:hidden}
.column{min-width:0;border-right:1px solid var(--line);background:var(--paper)}.column:last-child{border-right:0}
.column-head{height:78px;padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--paper)}
.column-head h2{margin:0;font:600 19px/1.2 var(--serif)}.column-head p{margin:4px 0 0;font-size:11px;color:var(--muted)}
.column-scroll{height:calc(100% - 78px);overflow:auto;padding:12px}.nav-section{padding:9px 9px 5px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.12em}
.nav-item,.author-item{width:100%;border:0;background:transparent;text-align:left;border-radius:11px;cursor:pointer}
.nav-item{display:flex;justify-content:space-between;gap:14px;padding:11px 12px;margin:2px 0}.nav-item:hover,.nav-item.active,.author-item:hover,.author-item.active{background:var(--accent-soft)}
.nav-item strong{font-size:14px}.nav-item span{font-size:11px;color:var(--muted)}
.author-item{padding:15px 14px;margin:4px 0;border:1px solid transparent}.author-top{display:flex;justify-content:space-between;gap:10px}.author-name{font:600 17px/1.35 var(--serif)}.stars{font-family:Georgia;color:var(--gold);white-space:nowrap;font-size:12px}.author-era{margin-top:5px;color:var(--muted);font-size:11px}.author-progress{margin-top:9px;display:flex;align-items:center;gap:8px;font-size:10px;color:var(--muted)}.mini-bar{height:4px;flex:1;background:#e6ded2;border-radius:99px;overflow:hidden}.mini-bar i{display:block;height:100%;background:var(--accent)}
.detail-column{background:var(--bg)}.detail-scroll{height:100%;overflow:auto;padding:34px clamp(26px,4vw,62px) 70px}
.breadcrumb{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px;margin-bottom:32px}.breadcrumb button{border:0;background:none;padding:0;color:var(--accent);cursor:pointer}
.author-hero{padding-bottom:28px;border-bottom:1px solid var(--line)}.author-kicker{color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.14em}.author-hero h1{margin:8px 0 8px;font:600 clamp(40px,5vw,72px)/1.06 var(--serif);letter-spacing:-.03em}.author-hero p{max-width:720px;margin:0;color:var(--muted);font:400 17px/1.8 var(--serif)}
.author-score{display:flex;gap:16px;align-items:center;margin-top:18px}.author-score .stars{font-size:16px}.work-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:30px 0 14px}.work-toolbar h2{margin:0;font:600 24px var(--serif)}
.sort-toggle{display:flex;padding:4px;background:#e6ded2;border-radius:9px}.sort-btn{border:0;background:transparent;padding:7px 10px;border-radius:7px;font-size:11px;cursor:pointer;color:var(--muted)}.sort-btn.active{background:var(--paper);color:var(--ink)}
.work-list{display:grid;gap:11px}.work-card{display:grid;grid-template-columns:40px minmax(0,1fr) 118px;gap:15px;align-items:start;padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--paper)}
.work-no{font:600 24px/1 Georgia;color:var(--gold)}.work-title{font:600 19px/1.35 var(--serif)}.work-note{margin-top:5px;font-size:12px;color:var(--muted)}.work-rating{margin-top:8px}.status-select{width:100%;padding:8px 8px;border:1px solid var(--line);border-radius:9px;background:var(--paper-2);font-size:12px}
.empty-detail{height:100%;display:grid;place-items:center;text-align:center;color:var(--muted)}.empty-detail b{display:block;color:var(--ink);font:600 28px var(--serif)}
.shelf-page{max-width:1300px;margin:auto;padding:42px}.shelf-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:26px}.shelf-head h1{margin:0;font:600 52px var(--serif)}.shelf-filters{display:flex;gap:8px;flex-wrap:wrap}.shelf-filter{border:1px solid var(--line);background:transparent;border-radius:99px;padding:8px 13px;cursor:pointer;font-size:12px}.shelf-filter.active{background:var(--ink);color:white}.shelf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.shelf-card{padding:20px;border:1px solid var(--line);border-radius:15px;background:var(--paper);cursor:pointer}.shelf-card h3{margin:0 0 6px;font:600 20px var(--serif)}
.mobile-back{display:none}
@media(max-width:1000px){
  .topbar{height:auto;min-height:62px;padding:12px 16px;flex-wrap:wrap}.brand small{display:none}.primary-tabs{order:3;width:100%;overflow:auto}.primary-tab{flex:1;white-space:nowrap}.search-wrap{width:180px;margin-left:auto}
  .dashboard{padding:25px 18px 60px}.dashboard-hero{grid-template-columns:1fr;padding-top:30px}.stats{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}
  .workspace{height:auto;min-height:calc(100vh - 120px);display:block;overflow:visible}.column{display:none;border:0}.column.mobile-active{display:block}.column-head{position:sticky;top:120px;z-index:5}.column-scroll{height:auto;overflow:visible;padding:12px 16px 50px}.detail-scroll{height:auto;overflow:visible;padding:24px 18px 70px}
  .mobile-back{display:inline-flex;border:0;background:none;padding:0;color:var(--accent);font-size:12px;cursor:pointer}.work-card{grid-template-columns:34px minmax(0,1fr)}.status-select{grid-column:2}.shelf-page{padding:28px 18px}.shelf-head{display:block}.shelf-head h1{font-size:40px}.shelf-filters{margin-top:18px}.shelf-grid{grid-template-columns:1fr}
}
@media(max-width:560px){.home-link{display:none}.search-wrap{width:100%}.dashboard-hero h1{font-size:46px}.explore-actions{grid-template-columns:1fr}.work-toolbar{align-items:flex-start;flex-direction:column}}

.account{display:flex;align-items:center;gap:8px}.account-btn{border:1px solid var(--line);background:var(--paper);border-radius:10px;padding:9px 12px;cursor:pointer;font-size:12px;white-space:nowrap}.account-btn.subtle{background:transparent}.user-panel{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}
.sync-banner{max-width:1420px;margin:16px auto 0;padding:10px 16px;border:1px solid var(--line);border-radius:12px;background:var(--paper);font-size:12px;color:var(--muted)}.sync-banner.ok{border-color:#a9c2b7;color:var(--accent);background:#eef5f0}.sync-banner.error{border-color:#d3aaa5;color:var(--wine);background:#fbefed}
dialog{border:0;border-radius:18px;padding:0;max-width:430px;width:calc(100% - 32px);background:var(--paper);box-shadow:0 30px 90px rgba(30,25,20,.25)}dialog::backdrop{background:rgba(25,22,18,.45);backdrop-filter:blur(4px)}.login-card{padding:28px}.login-card h2{margin:0 0 8px;font:600 28px var(--serif)}.login-card p{color:var(--muted);font-size:13px}.login-card input{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:white;margin:10px 0}.dialog-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.login-message{min-height:20px;margin-top:10px;font-size:12px}
@media(max-width:1000px){.account{margin-left:auto}.user-panel span{display:none}}

/* 2026 reading journey refresh */
.hero-actions{max-width:390px}.hero-actions p{margin:0 0 22px;color:var(--muted);font:400 18px/1.8 var(--serif)}
.hero-primary,.hero-secondary{min-height:44px;border-radius:999px;padding:10px 18px;cursor:pointer;font-weight:700}
.hero-primary{border:1px solid var(--accent);background:var(--accent);color:#fff;box-shadow:0 10px 24px rgba(47,85,72,.18)}
.hero-secondary{border:0;background:transparent;color:var(--accent)}
.panel-head .eyebrow{margin-bottom:6px}.current-panel{background:linear-gradient(145deg,var(--paper),#f2eadf)}
.explore-actions{grid-template-columns:1fr}.action-card{min-height:86px;position:relative;padding-right:44px}.action-card:after{content:"→";position:absolute;right:18px;top:50%;transform:translateY(-50%);color:var(--gold)}
.explore-head{height:auto;min-height:92px;align-items:flex-start;flex-direction:column}
.dimension-toggle{display:flex;width:100%;gap:4px;padding:4px;border-radius:10px;background:#e7e0d4}
.dimension-btn{flex:1;min-height:34px;border:0;border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;font-size:11px}
.dimension-btn.active{background:var(--paper);color:var(--ink);box-shadow:0 3px 10px rgba(45,36,27,.08)}
.explore-head+.column-scroll{height:calc(100% - 112px)}
.mobile-nav{display:none}
button,input,select,a{outline-color:transparent}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.nav-item,.author-item,.action-card,.current-item,.shelf-filter,.shelf-view-tab,.account-btn{min-height:44px}
.status-select{min-height:42px;font-weight:700;color:var(--accent);border-color:rgba(47,85,72,.24);background:#edf3ef}

@media(max-width:1000px){
  body{padding-bottom:76px}.topbar{position:sticky;top:0;display:grid;grid-template-columns:auto 1fr auto;gap:10px}.brand{justify-self:start}.primary-tabs{display:none}.search-wrap{grid-column:1/-1;grid-row:2;width:100%;margin:0}.account{grid-column:3;grid-row:1}.sync-banner{margin:8px 12px 0}
  .dashboard-hero{gap:24px}.hero-actions{max-width:620px}.hero-actions p{font-size:16px}.hero-primary,.hero-secondary{min-height:48px}
  .mobile-nav{position:fixed;left:12px;right:12px;bottom:10px;z-index:50;display:grid;grid-template-columns:repeat(3,1fr);padding:6px;border:1px solid rgba(74,60,43,.14);border-radius:18px;background:rgba(251,248,241,.94);box-shadow:0 18px 44px rgba(45,36,27,.18);backdrop-filter:blur(18px)}
  .mobile-nav-item{min-height:54px;border:0;border-radius:13px;background:transparent;color:var(--muted);font-size:11px;cursor:pointer}.mobile-nav-item span{display:block;font-size:19px;line-height:1.1}.mobile-nav-item.active{background:var(--accent);color:#fff}
  .explore-head{position:sticky;top:118px;min-height:104px}.explore-head+.column-scroll{height:auto}
}
@media(max-width:560px){
  .dashboard{padding-top:16px}.dashboard-hero{padding:24px 0 30px}.dashboard-hero h1{font-size:clamp(38px,11vw,50px)}
  .hero-primary,.hero-secondary{width:100%;margin-top:6px}.stats{display:flex;gap:22px;overflow-x:auto;margin:20px -18px;padding:0 18px 8px}.stat{min-width:118px}
  .dashboard-grid{gap:14px}.panel{padding:20px 17px}.action-card{min-height:76px}.brand{font-size:16px}.account-btn{padding:8px 10px}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.dashboard>.next-book-prompt-card{margin:28px 0 22px;padding:28px 30px;background:linear-gradient(135deg,rgba(238,244,239,.98),rgba(226,218,204,.82))}.dashboard>.next-book-prompt-card button{min-height:46px;box-shadow:0 10px 24px rgba(49,82,71,.18)}
