:root{font-family:'Noto Sans SC','Microsoft YaHei',sans-serif;color:#292d2b;background:#f7f6f2;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}svg{width:20px;height:20px;display:block}h1,h2,h3,p{margin-top:0}[hidden]{display:none!important}
.app-shell{display:grid;grid-template-columns:256px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid #ebeae4;padding:30px 17px 20px;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:4px 13px 0}.brand-mark{width:40px;height:40px;flex:none}.brand-mark svg{width:100%;height:100%}.brand strong{display:block;font-size:19px;letter-spacing:.035em;font-weight:700}.brand small{display:block;color:#a1a6a0;font-size:10px;letter-spacing:.07em;margin-top:2px}.sidebar-label{color:#b1b4ad;font-size:11px;letter-spacing:.18em;margin:61px 16px 14px;font-weight:700}.side-nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;width:100%;display:flex;align-items:center;gap:13px;text-align:left;padding:13px 15px;border-radius:11px;color:#777e78;font-size:14px;font-weight:600;transition:.2s}.nav-item:hover{background:#f6f7f3;color:#355b43}.nav-item.is-active{background:#eaf2e9;color:#3d6c4a}.nav-icon svg{width:19px;height:19px}.nav-count{font-style:normal;margin-left:auto;background:#f1f0eb;border-radius:20px;padding:2px 7px;font-size:11px;color:#8b918b}.nav-item.is-active .nav-count{background:#dcebdc;color:#3d6c4a}.sidebar-bottom{margin-top:auto}.sidebar-tip{background:#f6f7f0;border:1px solid #e8eee5;border-radius:15px;padding:19px 18px 16px;margin:0 5px 23px;color:#4b7054}.tip-icon{display:inline-flex;background:#e7eee0;padding:8px;border-radius:9px;margin-bottom:11px}.tip-icon svg{width:17px;height:17px}.sidebar-tip strong{display:block;font-size:12px}.sidebar-tip p{font-size:11px;line-height:1.7;color:#899389;margin:7px 0 0}.sidebar-foot{display:flex;align-items:center;gap:7px;color:#989e99;font-size:11px;padding:0 13px}.status-dot{display:inline-block;width:7px;height:7px;background:#62b183;border-radius:50%;box-shadow:0 0 0 3px #e2f3e8;flex:none}.foot-version{margin-left:auto;letter-spacing:.08em;color:#c0c4bf}
.main-area{min-width:0}.topbar{height:76px;background:rgba(255,255,255,.82);border-bottom:1px solid #eeede8;display:flex;justify-content:space-between;align-items:center;padding:0 43px}.breadcrumb{font-size:13px;color:#a7aca7;display:flex;align-items:center;gap:13px}.breadcrumb strong{color:#47524a;font-weight:600}.crumb-divider{color:#d5d9d2}.top-actions{display:flex;align-items:center;gap:20px}.preview-badge{border:1px solid #e9ece5;border-radius:30px;background:#fff;color:#68756a;font-size:11px;padding:8px 12px;display:flex;align-items:center;gap:8px}.preview-badge .status-dot{width:6px;height:6px;box-shadow:none}.avatar{height:32px;width:32px;border-radius:50%;display:grid;place-items:center;background:#e9f0e4;color:#477052;font-size:13px;font-weight:700}.content{max-width:1510px;margin:0 auto;padding:38px 43px 80px}.page{display:none}.page.is-active{display:block}
.hero{position:relative;min-height:329px;border-radius:20px;background:#edf2e9;overflow:hidden;padding:38px 48px 32px;display:flex;align-items:center}.hero:after{content:"";position:absolute;left:57%;top:0;width:50%;height:100%;background:radial-gradient(circle at 55% 40%,#d9e8d2 0%,transparent 70%);pointer-events:none}.hero-text{position:relative;z-index:2;width:min(650px,68%)}.eyebrow{display:flex;align-items:center;gap:10px;color:#6f9675;font-size:10px;font-weight:700;letter-spacing:.25em}.eyebrow-line{width:22px;height:1px;background:#79a380}.hero h1{font-size:37px;line-height:1.42;letter-spacing:.01em;margin:16px 0 9px;font-weight:700;color:#315840}.hero h1 span{color:#4f7658}.hero p{color:#859385;font-size:13px;margin-bottom:25px}.search-box{height:54px;border:1px solid #e7e9e3;background:#fff;display:flex;align-items:center;box-shadow:0 11px 25px #45684d13;border-radius:11px;padding:5px 5px 5px 17px;max-width:580px}.search-symbol{color:#8daa8d;display:inline-flex;flex:none}.search-symbol svg{width:19px;height:19px}.search-box input{border:0;outline:0;min-width:0;flex:1;padding:0 12px;color:#344037;font-size:13px;background:transparent}.search-box input::placeholder{color:#adb5aa}.search-submit{border:0;display:flex;align-items:center;gap:11px;justify-content:center;background:#3e684c;color:#fff;border-radius:8px;height:44px;padding:0 18px;font-weight:600;font-size:12px;white-space:nowrap;transition:.2s}.search-submit:hover,.btn-primary:hover{background:#2d583c}.search-submit svg{width:15px;height:15px}.hero-hint{display:flex;align-items:center;gap:6px;color:#a0ab9c;font-size:11px;margin-top:13px}.hero-hint svg{width:13px;height:13px}.hero-art{position:absolute;right:1%;top:0;width:41%;height:100%;z-index:1}.hero-circle{position:absolute;border-radius:50%;background:#dcead5}.hero-circle-1{width:283px;height:283px;right:8%;top:23px}.hero-circle-2{width:180px;height:180px;right:38%;top:185px;background:#e6efe0}.hero-book{position:absolute;border-radius:5px 11px 11px 5px;box-shadow:14px 18px 28px #526c4b29;transform-origin:bottom center}.hero-book-back{height:190px;width:132px;right:44%;top:72px;transform:rotate(-17deg);background:#bfbea6;border-left:6px solid #a1a088;color:#fffdf3;display:flex;align-items:end;padding:0 14px 24px;font-family:serif;font-size:18px;letter-spacing:.14em}.hero-book-front{height:230px;width:158px;right:15%;top:49px;transform:rotate(9deg);background:linear-gradient(145deg,#db876c,#bd6e5b);border-left:8px solid #b46653;color:#fff8e9;padding:26px 22px;display:flex;flex-direction:column}.book-art-kicker{font-family:serif;letter-spacing:.3em;font-size:9px;opacity:.77}.hero-book-front strong{font-family:serif;font-size:30px;line-height:1.3;letter-spacing:.12em;margin-top:24px;font-weight:500}.hero-book-front i{height:1px;width:30px;background:#ffead9;margin-top:auto}.book-art-footer{font-size:8px;letter-spacing:.1em;margin-top:10px}.hero-art-flower{position:absolute;color:#f8f7e5;font-size:45px;right:4%;top:28px;transform:rotate(22deg)}
.stats-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin:19px 0 40px}.stat-card{background:#fff;border:1px solid #eeede8;border-radius:14px;min-height:90px;padding:18px 22px;display:flex;gap:17px;align-items:center}.stat-icon{width:43px;height:43px;border-radius:12px;display:grid;place-items:center;flex:none}.stat-icon svg{width:21px;height:21px}.stat-icon-peach{background:#fbece4;color:#d9866b}.stat-icon-green{background:#eaf3eb;color:#62a27b}.stat-icon-yellow{background:#fbf2df;color:#cda45c}.stat-card small{display:block;font-size:11px;color:#a0a59f;margin-bottom:4px}.stat-card strong{display:block;font-size:22px;color:#374c3c;line-height:1.2}.stat-card em{font-size:11px;color:#adb5ac;font-weight:500;font-style:normal}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:10px;margin-bottom:20px}.section-kicker{display:block;color:#8da491;font-size:10px;font-weight:700;letter-spacing:.23em;margin-bottom:7px}.section-heading h2{font-size:20px;letter-spacing:.01em;margin-bottom:3px}.section-heading p{font-size:12px;color:#a5aaa4;margin-bottom:0}.count-label{color:#a2aaa2;font-size:11px;white-space:nowrap;margin-bottom:5px}
.book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.book-card{min-width:0;background:#fff;border:1px solid #ecece6;border-radius:15px;padding:18px;display:flex;gap:15px;transition:.2s;min-height:163px}.book-card:hover{transform:translateY(-3px);box-shadow:0 14px 29px #374a3610;border-color:#dfe8db}.book-cover{width:81px;height:116px;border-radius:3px 6px 6px 3px;flex:none;position:relative;overflow:hidden;color:white;box-shadow:5px 6px 10px #2d3f2d21;display:flex;flex-direction:column;padding:12px 9px;border-left:4px solid #0002}.book-cover:after{content:"";position:absolute;width:95px;height:95px;border:1px solid #fff5;border-radius:50%;right:-34px;bottom:-28px}.book-cover small{font-size:6px;letter-spacing:.1em;opacity:.7}.book-cover strong{font-family:serif;letter-spacing:.1em;font-weight:500;font-size:15px;line-height:1.36;margin:auto 0;word-break:break-all}.book-cover i{height:1px;width:18px;background:#fffd;display:block}.book-cover.peach{background:linear-gradient(145deg,#df9a7e,#b56c5b)}.book-cover.green{background:linear-gradient(145deg,#91ad8b,#527f70)}.book-cover.blue{background:linear-gradient(145deg,#88a7b0,#577b8d)}.book-cover.brown{background:linear-gradient(145deg,#bc9c7f,#8b6a5c)}.book-cover.purple{background:linear-gradient(145deg,#ae9ab4,#756e9b)}.book-cover.gold{background:linear-gradient(145deg,#d3b273,#ac805a)}.book-meta{min-width:0;display:flex;flex-direction:column;flex:1}.book-meta h3{font-size:14px;line-height:1.45;margin:2px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-meta .author{font-size:11px;color:#a5aba4;margin-bottom:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-meta .description{font-size:10px;color:#afb5af;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:12px}.book-card-footer{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-top:auto}.tag{display:inline-block;padding:4px 7px;background:#f2f5ef;color:#7f9a80;font-size:9px;border-radius:5px;white-space:nowrap}.link-button{border:0;background:transparent;color:#4e7957;font-size:11px;font-weight:700;padding:3px 0;white-space:nowrap}.link-button:hover{text-decoration:underline}.link-button svg{display:inline-block;vertical-align:-2px;width:12px;height:12px;margin-left:2px}
.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:10px 0 29px}.page-heading h1{font-size:28px;line-height:1.3;margin:0 0 6px;color:#324439}.page-heading p{font-size:12px;color:#a3aaa2;margin:0}.btn{border:0;border-radius:9px;padding:10px 17px;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;font-size:12px;font-weight:600;transition:.2s}.btn svg{width:15px;height:15px}.btn-outline{border:1px solid #e5e9e2;background:#fff;color:#667c6b}.btn-outline:hover{border-color:#b4c9b6;color:#416a4c}.btn-primary{background:#3e684c;color:#fff}.btn-danger{background:#d95d55;color:#fff}.btn-danger:hover{background:#b84841}.btn-quiet{background:#f2f5ef;color:#588063}.btn-quiet:hover{background:#e7eee5}.btn-text{padding:7px 4px;color:#7a837a;background:transparent}.btn-text:hover{color:#376845}.btn-text.danger{color:#c78177}.btn-text.danger:hover{color:#b6463d}
.panel-intro{display:flex;gap:16px;align-items:center;border:1px solid #e7eee5;border-radius:14px;background:#eef5ec;padding:20px 22px;margin-bottom:31px}.panel-intro-icon{width:41px;height:41px;display:grid;place-items:center;background:#dcebd9;color:#5c8d68;border-radius:11px;flex:none}.panel-intro strong{font-size:13px;color:#52705a}.panel-intro p{color:#8e9e8e;font-size:11px;margin:4px 0 0}.task-tabs{display:flex;gap:25px;border-bottom:1px solid #e8eae4;margin-bottom:17px}.filter-tab{position:relative;border:0;background:transparent;padding:0 0 15px;color:#9aa29a;font-weight:600;font-size:12px}.filter-tab.is-active{color:#416d4e}.filter-tab.is-active:after{position:absolute;content:"";height:2px;left:0;right:0;bottom:-1px;background:#5d9670}.filter-tab span{display:inline-block;background:#e8f1e5;color:#5d9065;padding:2px 6px;border-radius:9px;font-size:10px;margin-left:4px}.task-list{display:grid;gap:12px}.task-card{background:#fff;border:1px solid #ecece6;border-radius:13px;padding:18px 20px}.task-card-top{display:flex;align-items:flex-start;gap:14px}.task-mini-cover{width:43px;height:58px;border-radius:3px 5px 5px 3px;display:grid;place-items:center;color:#fff;flex:none;font-family:serif;letter-spacing:.08em;font-size:12px;box-shadow:2px 3px 8px #223a261c}.task-main{flex:1;min-width:0}.task-main h3{margin:1px 0 5px;font-size:14px}.task-meta{color:#a0a8a0;font-size:10px}.task-status{margin-left:auto;font-size:10px;font-weight:600;border-radius:20px;padding:5px 9px;white-space:nowrap;background:#edf4ed;color:#5b9a68}.task-status.done{background:#e9f3ea;color:#508761}.task-status.failed{background:#fff0ec;color:#c77864}.task-status.queued{background:#f7f1e4;color:#aa8b53}.task-progress{margin:15px 0 14px 57px}.progress-line{height:6px;border-radius:5px;background:#edf0eb;overflow:hidden}.progress-line i{height:100%;display:block;border-radius:5px;background:linear-gradient(90deg,#79b289,#4d9067);transition:width .3s}.progress-detail{display:flex;justify-content:space-between;color:#a3aaa3;font-size:10px;margin-top:7px}.task-actions{display:flex;justify-content:flex-end;gap:15px;border-top:1px solid #f1f2ee;padding-top:10px;margin-top:12px}.empty-state{text-align:center;background:#fff;border:1px dashed #dfe7dc;border-radius:14px;padding:40px;color:#a1aaa0;font-size:12px}.empty-state strong{display:block;color:#526a56;font-size:15px;margin:7px 0}.empty-state svg{width:28px;height:28px;margin:auto;color:#8daa8f}
.library-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border:1px solid #ecece6;border-radius:12px 12px 0 0;padding:16px 20px}.library-location{display:flex;align-items:center;gap:8px;min-width:0;font-size:12px;color:#8e998f}.library-location svg{width:15px;height:15px;color:#87a58a}.library-location strong{font-weight:600;color:#5d7562;overflow:hidden;text-overflow:ellipsis}.library-search{display:flex;align-items:center;gap:8px;border:1px solid #e9ece6;border-radius:8px;padding:8px 11px;color:#a0aea0;background:#fbfcfa;width:210px}.library-search svg{width:15px;height:15px}.library-search input{min-width:0;border:0;background:transparent;outline:0;color:#485a4e;font-size:11px;width:100%}.library-search input::placeholder{color:#b0b8ae}.library-table-wrap{border:1px solid #ecece6;border-top:0;background:#fff;border-radius:0 0 12px 12px;overflow:auto}.library-table{width:100%;border-collapse:collapse;min-width:650px;text-align:left}.library-table th{font-size:10px;color:#acb3ab;font-weight:600;background:#fbfcfa;border-bottom:1px solid #eff0eb;padding:13px 20px}.library-table td{padding:14px 20px;border-bottom:1px solid #f2f3ef;color:#8f9a8f;font-size:11px}.library-table tr:last-child td{border-bottom:0}.library-table .file-name-cell{color:#435448;font-size:12px;font-weight:600}.file-name-wrap{display:flex;align-items:center;gap:11px}.file-icon{width:31px;height:34px;border-radius:7px;display:grid;place-items:center;color:#6fa37c;background:#eaf3e8;flex:none}.file-icon.file{background:#f8efe7;color:#c68c6c}.file-icon svg{width:17px;height:17px}.file-name-wrap small{display:block;color:#adb5ac;font-size:10px;font-weight:400;margin-top:3px}.file-type{background:#f4f6f2;color:#8c9a8d;border-radius:4px;padding:3px 6px;font-size:9px}.file-actions{display:flex;justify-content:flex-end;gap:11px}.actions-col{text-align:right}
.update-banner{min-height:160px;position:relative;overflow:hidden;border-radius:16px;background:linear-gradient(100deg,#647e65,#789675);color:#fff;padding:30px 35px;margin-bottom:36px}.banner-kicker{font-size:9px;letter-spacing:.2em;color:#d4e6d2}.update-banner h2{font-size:22px;margin:13px 0 7px}.update-banner p{font-size:11px;color:#d9e6d6;margin:0}.banner-ornament{position:absolute;right:75px;top:-78px;font-size:260px;line-height:1;color:#ffffff16;transform:rotate(-12deg)}.update-section-heading{margin-bottom:17px}.update-list{display:grid;gap:12px}.update-card{display:flex;align-items:center;gap:15px;background:#fff;border:1px solid #ecece6;border-radius:13px;padding:16px 19px}.update-card .task-mini-cover{width:48px;height:63px}.update-main{flex:1;min-width:0}.update-main h3{font-size:14px;margin:0 0 6px}.update-main p{font-size:10px;color:#a5ada5;margin:0}.update-badge{background:#fff2e7;color:#cb8a65;font-size:10px;font-weight:700;padding:5px 8px;border-radius:7px;white-space:nowrap}.update-actions{display:flex;align-items:center;gap:15px}
.dialog-backdrop{position:fixed;inset:0;z-index:20;background:#17241cb3;display:grid;place-items:center;padding:20px;backdrop-filter:blur(3px)}.dialog{position:relative;background:#fff;border-radius:18px;box-shadow:0 26px 70px #101a1238;width:min(100%,520px);padding:29px}.dialog-close{position:absolute;top:17px;right:17px;border:0;background:#f5f6f2;color:#829086;padding:7px;border-radius:8px}.dialog-close svg{width:16px;height:16px}.book-dialog-header{display:flex;gap:20px;padding-right:24px}.book-dialog-header .book-cover{width:105px;height:146px;padding:16px}.book-dialog-header .book-cover strong{font-size:19px}.book-dialog h2{font-size:22px;margin:7px 0 9px}.book-dialog .dialog-author{font-size:12px;color:#93a095}.book-dialog .dialog-summary{font-size:12px;line-height:1.7;color:#89958a;margin:14px 0}.dialog-chip-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:18px}.dialog-chip{background:#f2f6ef;color:#6c9073;border-radius:6px;padding:6px 9px;font-size:10px}.dialog-field{display:block;margin:20px 0 4px;color:#526759;font-size:12px;font-weight:600}.dialog-field input{display:block;width:100%;padding:11px 12px;margin-top:8px;border:1px solid #e5ebe2;border-radius:8px;outline:0}.dialog-field input:focus{border-color:#88b291}.dialog-field small{font-weight:400;color:#a3aca2;display:block;margin-top:6px}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:25px}.delete-dialog{text-align:center;width:min(100%,410px)}.delete-dialog-icon{height:50px;width:50px;background:#fff0ec;color:#d27767;border-radius:15px;display:grid;place-items:center;margin:0 auto 15px}.delete-dialog h2{font-size:19px;margin:0 0 11px}.delete-dialog p{font-size:12px;color:#8e978f;line-height:1.7;margin:0}.delete-dialog .dialog-actions{justify-content:center}.toast{position:fixed;right:25px;bottom:25px;z-index:30;transform:translateY(20px);opacity:0;pointer-events:none;background:#354f3c;color:#fff;border-radius:9px;padding:11px 16px;font-size:12px;box-shadow:0 15px 28px #1c352624;transition:.25s}.toast.is-visible{opacity:1;transform:translateY(0)}.mobile-nav{display:none}
.choice-list{display:grid;gap:9px;margin-top:18px}.choice-button{justify-content:flex-start;white-space:normal;text-align:left;line-height:1.5}
@media(max-width:1250px){.content{padding:32px 30px 70px}.topbar{padding:0 30px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-art{right:-4%}}
@media(max-width:900px){.app-shell{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.topbar{height:61px;padding:0 22px}.content{padding:25px 22px 95px}.mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;z-index:10;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e9ece6;box-shadow:0 -5px 20px #243b2612;padding:7px 7px calc(7px + env(safe-area-inset-bottom))}.mobile-nav-item{border:0;background:transparent;color:#9da89f;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;padding:5px;border-radius:8px}.mobile-nav-item.is-active{color:#477858}.mobile-nav-item svg{width:20px;height:20px}.mobile-nav-item small{font-size:10px}.toast{bottom:76px}}
@media(max-width:650px){.topbar{padding:0 17px}.preview-badge{font-size:0;gap:0;width:27px;height:27px;justify-content:center;padding:0}.preview-badge .status-dot{width:7px;height:7px}.top-actions{gap:11px}.content{padding:18px 15px 90px}.hero{padding:27px 21px 25px;min-height:324px;border-radius:16px;align-items:flex-start}.hero-text{width:100%}.hero h1{font-size:27px;line-height:1.42;margin:12px 0 8px}.hero p{font-size:11px;margin-bottom:20px;max-width:260px;line-height:1.6}.eyebrow{font-size:8px}.search-box{height:47px;max-width:none;margin-top:5px;position:relative}.search-box input{font-size:11px;padding:0 7px}.search-submit{height:38px;padding:0 11px;font-size:10px;gap:4px}.search-submit svg{display:none}.hero-hint{font-size:9px}.hero-art{width:100%;height:100%;right:0;top:0;pointer-events:none;opacity:.18}.hero-circle-1{right:-45px;top:0}.hero-book-back{right:22%;top:103px}.hero-book-front{right:-20px;top:69px}.hero-art-flower{display:none}.stats-row{gap:8px;margin:12px 0 30px}.stat-card{border-radius:11px;min-height:85px;padding:13px 9px;display:block}.stat-icon{width:30px;height:30px;border-radius:8px;margin-bottom:7px}.stat-icon svg{width:16px;height:16px}.stat-card small{font-size:8px;line-height:1.25;white-space:nowrap}.stat-card strong{font-size:17px}.stat-card em{font-size:8px}.section-heading h2{font-size:18px}.section-heading p{font-size:10px}.book-grid{grid-template-columns:1fr;gap:10px}.book-card{min-height:147px;padding:13px;gap:13px}.book-cover{width:76px;height:110px}.book-meta .description{margin-bottom:6px}.page-heading{margin:4px 0 22px;align-items:flex-start}.page-heading h1{font-size:23px}.page-heading p{font-size:10px;line-height:1.5}.page-heading .btn{padding:9px 10px;font-size:10px;margin-top:10px}.panel-intro{padding:15px;gap:12px;margin-bottom:25px}.panel-intro p{font-size:10px}.task-card{padding:15px}.task-progress{margin-left:0}.task-actions{gap:13px}.library-toolbar{padding:12px;align-items:stretch;flex-direction:column}.library-search{width:100%}.update-banner{padding:26px 23px;min-height:145px}.update-banner h2{font-size:20px}.banner-ornament{right:-15px}.update-card{gap:11px;padding:12px;flex-wrap:wrap}.update-main{flex-basis:calc(100% - 64px)}.update-actions{width:100%;justify-content:space-between;padding-top:7px}.book-dialog-header{gap:15px}.book-dialog-header .book-cover{width:82px;height:116px;padding:11px}.book-dialog-header .book-cover strong{font-size:15px}.book-dialog h2{font-size:19px}.dialog{padding:23px}.dialog-actions .btn{flex:1}.toast{right:13px;left:13px;text-align:center}}
@media(max-width:650px){.library-table-wrap{border:0;background:transparent;overflow:visible}.library-table{display:block;min-width:0}.library-table thead{display:none}.library-table tbody{display:grid;gap:10px}.library-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#fff;border:1px solid #ecece6;border-radius:12px;overflow:hidden}.library-table td{border:0;padding:7px 12px;font-size:10px}.library-table td:first-child{grid-column:1/-1;padding:13px 12px 7px}.library-table td:nth-child(3){text-align:center}.library-table td:nth-child(4){text-align:right}.library-table td:nth-child(5){grid-column:1/-1;padding:5px 12px 9px;border-top:1px solid #f1f2ee}.library-table .file-name-cell{font-size:12px}.file-actions{justify-content:flex-end}.file-name-wrap{align-items:flex-start}.file-name-wrap>div{min-width:0;overflow-wrap:anywhere}.file-name-wrap small{overflow-wrap:anywhere}.library-table td[colspan]{grid-column:1/-1;padding:5px 12px}}

/* Book preview: keep the dialog within the viewport and scroll its contents. */
body.dialog-open { overflow: hidden; }
.dialog-backdrop { overflow-y: auto; overscroll-behavior: contain; }
.book-dialog { width: min(100%, 680px); max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); display: flex; flex-direction: column; overflow: hidden; }
.book-dialog #bookDialogContent { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding-right: 4px; }
.book-dialog .dialog-close { z-index: 2; }
.book-dialog-header { align-items: flex-start; }
.book-dialog-title { min-width: 0; flex: 1; padding-right: 15px; }
.book-dialog-title h2 { overflow-wrap: anywhere; }
.book-dialog-header .dialog-chip-row { margin-top: 15px; }
.book-cover.has-image { background: #eef0eb; padding: 0; }
.book-cover.has-image > small, .book-cover.has-image > strong, .book-cover.has-image > i, .book-cover.has-image::after { display: none; }
.book-cover-image { width: 100%; height: 100%; object-fit: cover; display: block; }
.description-section { margin-top: 20px; padding: 16px; background: #f7f9f6; border: 1px solid #e9eee8; border-radius: 12px; }
.description-section > strong { color: #526a58; font-size: 12px; }
.description-section .dialog-summary { white-space: pre-wrap; overflow-wrap: anywhere; margin: 9px 0 0; line-height: 1.75; }
.description-section .dialog-summary.is-collapsed { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; }
.description-section .dialog-summary.is-expanded { display: block; }
.description-toggle { display: inline-block; border: 0; background: transparent; color: #477858; font-size: 12px; font-weight: 700; padding: 10px 0 0; }
.book-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 15px; }
.book-facts { display: grid; gap: 9px; margin: 15px 0 0; padding: 16px; border-radius: 12px; background: #f7f9f6; border: 1px solid #e9eee8; font-size: 12px; }
.book-facts > div { display: flex; gap: 9px; min-width: 0; }
.book-facts dt { color: #8b998c; white-space: nowrap; }
.book-facts dd { margin: 0; color: #45564a; overflow-wrap: anywhere; }
.book-id { margin-top: 12px; color: #a1aca1; font-size: 10px; overflow-wrap: anywhere; }
.detail-context { margin-top: 18px; padding: 13px 15px; border-radius: 10px; background: #f3f7f0; color: #677b68; font-size: 12px; line-height: 1.65; overflow-wrap: anywhere; }
.detail-context strong { display: block; color: #4c6953; margin-bottom: 4px; }
.detail-context small { display: block; color: #9aa89a; }
.detail-error { padding: 10px 12px; margin-bottom: 12px; border-radius: 8px; background: #fff2ed; color: #bd725f; font-size: 12px; }
.file-detail-title { overflow-wrap: anywhere; padding-right: 24px; }
.file-detail-note { color: #9ca79d; font-size: 12px; line-height: 1.6; }
@media (max-width: 650px) {
  .dialog-backdrop { padding: 12px; }
  .book-dialog { max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); padding: 20px; }
  .book-dialog-header { gap: 13px; padding-right: 14px; }
  .book-dialog-header .book-cover { flex: none; }
  .book-dialog-title { padding-right: 4px; }
  .book-dialog-header .dialog-chip-row { margin-top: 9px; }
  .description-section { margin-top: 16px; padding: 13px; }
  .book-facts { padding: 13px; }
}

/* Keep wheel and touch scrolling inside the open dialog. */
html.dialog-open { overflow: hidden; }
body.dialog-open { position: fixed; left: 0; right: 0; width: 100%; overflow: hidden; }
.dialog-backdrop { overflow: hidden; }
.book-dialog #bookDialogContent { flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: auto; touch-action: pan-y; -webkit-overflow-scrolling: touch; }
.dialog-backdrop { grid-template-columns: minmax(0, 1fr); }
.dialog { min-width: 0; max-width: 100%; justify-self: center; }
.book-dialog #bookDialogContent { min-width: 0; width: 100%; }

/* Actions stay visible while book details scroll above them. */
#bookDialogFooter { flex: none; min-width: 0; padding-top: 14px; margin-top: 14px; border-top: 1px solid #e8ece6; background: #fff; }
#bookDialogFooter .dialog-actions { margin: 0; }

/* Compact personal workspace. */
.side-nav { margin-top: 38px; }
.status-dot.is-error { background: #d27767; box-shadow: 0 0 0 3px #fcebe7; }
.content { padding-top: 28px; }
.search-panel { display: flex; align-items: center; gap: 24px; min-width: 0; padding: 20px 24px; background: #fff; border: 1px solid #ecece6; border-radius: 14px; }
.search-panel h1 { flex: none; margin: 0; color: #324439; font-size: 24px; line-height: 1.3; }
.search-panel .search-box { flex: 1; max-width: 680px; min-width: 0; margin-left: auto; box-shadow: none; background: #f9fbf8; }
.stats-row { margin: 16px 0 30px; }
.section-heading { align-items: center; }
.section-heading h2 { margin: 0; }
.page-heading { margin: 0 0 22px; }
.page-heading h1 { margin: 0; }
@media (max-width: 900px) {
  .content { padding-top: 20px; }
}
@media (max-width: 650px) {
  .content { padding-top: 16px; }
  .search-panel { display: block; padding: 16px; }
  .search-panel h1 { margin-bottom: 14px; font-size: 21px; }
  .search-panel .search-box { width: 100%; max-width: none; }
  .stats-row { margin: 12px 0 26px; }
  .page-heading { align-items: center; gap: 10px; margin: 0 0 18px; }
  .page-heading .btn { margin-top: 0; }
}

/* Task history tab. */
.task-tabs { overflow-x: auto; scrollbar-width: none; white-space: nowrap; }
.task-tabs::-webkit-scrollbar { display: none; }
.history-toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 16px 18px; background: #fff; border: 1px solid #ecece6; border-radius: 12px 12px 0 0; }
.history-search { display: flex; align-items: center; gap: 8px; width: min(100%, 360px); min-width: 0; padding: 9px 11px; border: 1px solid #e9ece6; border-radius: 8px; background: #fbfcfa; color: #9aab9b; }
.history-search svg { width: 16px; height: 16px; flex: none; }
.history-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: #435448; font-size: 12px; }
.history-toolbar .count-label { margin: 0 0 0 auto; }
.history-table-wrap { overflow-x: auto; background: #fff; border: 1px solid #ecece6; border-top: 0; border-radius: 0 0 12px 12px; }
.history-table { width: 100%; min-width: 900px; border-collapse: collapse; text-align: left; table-layout: fixed; }
.history-table th { padding: 13px 12px; background: #fbfcfa; border-bottom: 1px solid #eff0eb; color: #a3ada3; font-size: 11px; font-weight: 600; }
.history-table td { padding: 14px 12px; border-bottom: 1px solid #f0f2ed; color: #758478; font-size: 11px; line-height: 1.55; overflow-wrap: anywhere; }
.history-table tr:last-child td { border-bottom: 0; }
.history-table th:first-child, .history-table td:first-child { padding-left: 20px; width: 14%; }
.history-table th:nth-child(2) { width: 20%; }
.history-table th:nth-child(3) { width: 9%; }
.history-table th:nth-child(4) { width: 15%; }
.history-table th:nth-child(5) { width: 20%; }
.history-table th:nth-child(6) { width: 7%; }
.history-table th:last-child { width: 15%; }
.history-table .history-book { color: #354c3a; font-size: 12px; font-weight: 600; }
.history-id { font-variant-numeric: tabular-nums; }
.history-status { display: inline-block; padding: 5px 8px; border-radius: 7px; background: #f3f4f0; color: #829083; white-space: nowrap; font-size: 10px; font-weight: 700; }
.history-status.success { background: #e8f4ec; color: #4c9567; }
.history-status.failed, .history-status.failure { background: #fff0eb; color: #c77764; }
.history-status.partial { background: #fff4df; color: #ae8646; }
.history-actions { text-align: right; }
.history-actions .btn { white-space: nowrap; }
.history-action-buttons { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }
.history-mobile-label { display: none; }
@media (max-width: 650px) {
  .task-tabs { gap: 18px; }
  .history-toolbar { padding: 12px; gap: 10px; border-radius: 12px; }
  .history-search { width: 100%; }
  .history-toolbar .count-label { margin-left: auto; }
  .history-table-wrap { margin-top: 10px; border: 0; background: transparent; overflow: visible; }
  .history-table, .history-table tbody { display: block; min-width: 0; }
  .history-table thead { display: none; }
  .history-table tbody { display: grid; gap: 10px; }
  .history-table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; padding: 14px; border: 1px solid #ecece6; border-radius: 12px; background: #fff; }
  .history-table td, .history-table td:first-child { display: block; width: auto; padding: 0; border: 0; font-size: 11px; }
  .history-table .history-book { grid-column: 1; grid-row: 1; font-size: 13px; }
  .history-status-cell { grid-column: 2; grid-row: 1; }
  .history-time { grid-column: 1 / -1; grid-row: 2; }
  .history-author { grid-column: 1 / -1; grid-row: 3; }
  .history-id { grid-column: 1 / -1; grid-row: 4; }
  .history-progress { grid-column: 1 / -1; grid-row: 5; }
  .history-actions { grid-column: 1 / -1; grid-row: 6; padding-top: 5px !important; }
  .history-action-buttons { justify-content: flex-start; }
  .history-mobile-label { display: inline; color: #a3ada3; }
}

/* Show every confirmed file path before permanent deletion. */
.delete-dialog.has-file-targets { width: min(100%, 520px); }
.delete-dialog.has-file-targets p { text-align: left; white-space: pre-line; padding: 13px 15px; border: 1px solid #f2e2dc; border-radius: 10px; background: #fff9f7; overflow-wrap: anywhere; }
@media (min-width: 1251px) { .history-table-wrap { overflow-x: clip; } }
.standalone-notice { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 24px; text-align: center; color: #263d2d; }
.standalone-notice h1 { margin: 0; font-size: clamp(22px, 5vw, 32px); }
.standalone-notice p { margin: 0; color: #6f7d70; }
.standalone-notice a { display: inline-flex; align-items: center; min-height: 44px; margin-top: 6px; padding: 0 22px; border-radius: 10px; background: #2f624b; color: #fff; text-decoration: none; }
