*{box-sizing:border-box} :root{color-scheme:light;--ink:#19243d;--muted:#67728a;--blue:#244dcc;--blue-dark:#183da9;--tint:#edf2ff;--line:#e6eaf1;--paper:#fff;--bg:#f4f6fa;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif;font-size:16px}
body{margin:0;color:var(--ink);background:var(--bg);line-height:1.5}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default}button,a,input{outline-offset:4px}button:focus-visible,a:focus-visible{outline:3px solid #7599ff}a{color:inherit;text-decoration:none}button{border:0} [hidden]{display:none!important}
.app-shell{max-width:880px;margin:0 auto;min-height:100vh;background:var(--paper);border-left:1px solid var(--line);border-right:1px solid var(--line)}
.site-header{height:84px;padding:0 36px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;gap:12px;align-items:center;font-size:1.2rem;font-weight:750;letter-spacing:.02em}.brand-icon{width:38px;height:38px;background:var(--blue);color:white;border-radius:11px;display:grid;place-items:center}.brand-icon svg{width:23px;height:23px}.sample-tag{font-size:.75rem;color:#68758f;background:#f1f3f8;border:1px solid #e4e8f1;border-radius:5px;padding:3px 8px;white-space:nowrap}
.main-nav{display:flex;border-bottom:1px solid var(--line);padding:0 36px;gap:30px}.nav-item{min-height:50px;display:flex;align-items:center;gap:7px;font-size:1rem;font-weight:650;border-bottom:3px solid transparent;padding:0 3px;color:var(--muted)}.nav-item[aria-current=page]{color:var(--blue);border-bottom-color:var(--blue)}.nav-count{font-size:.75rem;min-width:23px;height:22px;padding:1px 6px;border-radius:7px;background:#eff2f7;color:#59677e;text-align:center}.nav-item[aria-current=page] .nav-count{background:var(--tint);color:var(--blue)}
main{padding:28px 36px 128px}.page-intro{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:23px}.eyebrow{font-size:.8125rem;color:var(--muted);margin:0 0 5px}h1{font-size:1.625rem;line-height:1.4;letter-spacing:-.03em;margin:0;font-weight:750}.intro-count{font-size:.8125rem;color:var(--muted);white-space:nowrap;align-self:flex-end;margin-bottom:4px}.intro-count b{color:var(--ink);font-weight:650}
.browse-tools{background:white}.search-box{display:flex;align-items:center;gap:10px;min-height:50px;border:1px solid #e0e5ef;background:#f7f8fb;border-radius:11px;padding:0 14px}.search-box:focus-within{border-color:#5378e0;box-shadow:0 0 0 3px #244dcc0d}.search-box svg{width:21px;height:21px;flex-shrink:0;color:#76839b}.search-box input{border:0;outline:none;background:transparent;color:var(--ink);min-width:0;width:100%;height:48px;font-size:.9375rem}.search-box input::placeholder{color:#8790a1}.search-box input::-webkit-search-cancel-button{display:none}.clear-search{color:var(--muted);font-size:1.4rem;background:transparent;min-width:36px;min-height:40px;padding:0}
.filters{display:flex;gap:8px;margin:17px 0 22px}.filters button{min-height:40px;font-size:.875rem;padding:7px 18px;border-radius:8px;color:#5b6780;background:#f3f5f9;transition:background .15s}.filters button[aria-pressed=true]{background:var(--blue);color:#fff;font-weight:650}.filters button:hover:not([aria-pressed=true]){background:#e7edf8}
.category-scroller{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0 0;padding:3px 0 5px}.category-scroller button{min-height:42px;padding:6px 7px;border:1px solid #e1e6f0;border-radius:9px;background:#fff;color:#59677e;font-size:.8125rem;line-height:1.25}.category-scroller button[aria-pressed=true]{border-color:#244dcc;background:#eef3ff;color:#244dcc;font-weight:650}.category-tag{border-radius:4px;background:#f2f0fb;color:#66538a;padding:1px 6px}.category-special{background:#fff0e3;color:#a24c1e}.category-other{background:#f1f3f6;color:#667085}
.list-heading{display:flex;justify-content:space-between;font-size:.8125rem;color:#79849a;padding:0 0 12px;border-bottom:1px solid var(--line)}.list-heading span:last-child{color:#8b94a4}
.book-list,.cart-list{list-style:none;padding:0;margin:0}.book-row{display:flex;align-items:center;gap:15px;min-height:86px;padding:16px 0;border-bottom:1px solid var(--line)}.row-number{font-size:.75rem;font-variant-numeric:tabular-nums;color:#a0a9bb;align-self:center;width:22px;flex-shrink:0}.book-info{flex:1;min-width:0}.book-title{margin:0 0 6px;font-size:1rem;font-weight:650;line-height:1.5;overflow-wrap:anywhere}.book-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.75rem;color:var(--muted)}.group-tag{font-size:.8125rem;font-weight:650;letter-spacing:.025em;border-radius:4px;background:#eef1f7;color:#51627f;min-width:32px;text-align:center;padding:0 5px}.pinyin-tag{color:#416e62}.meta-separator{color:#c7ceda}.add-button{display:flex;justify-content:center;gap:4px;align-items:center;background:var(--tint);color:var(--blue);border:1px solid #dfe7ff;min-width:83px;min-height:40px;font-size:.875rem;font-weight:650;border-radius:8px;flex-shrink:0}.add-button:hover{background:#dfe8ff}.add-button span{font-size:1.1rem;line-height:1}
.quantity-controls{display:flex;align-items:center;flex-shrink:0;gap:0;background:#f6f8fc;border-radius:8px;border:1px solid #e3e9f5;overflow:hidden}.quantity-controls button{width:34px;min-height:40px;background:transparent;font-size:1.125rem;color:var(--blue);padding:0}.quantity-controls button:disabled{color:#b3bccb;background:#f1f3f7}.quantity-controls output{font-size:.9375rem;font-weight:650;min-width:25px;text-align:center;color:var(--blue);font-variant-numeric:tabular-nums}.selected-row .group-tag{background:var(--tint);color:var(--blue)}
.list-end{text-align:center;color:#919aab;font-size:.8125rem;margin:26px 0 5px}.bottom-bar{position:fixed;bottom:0;left:0;right:0;z-index:10;padding-bottom:env(safe-area-inset-bottom);background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -6px 20px #18264404}.bottom-inner{max-width:880px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 36px}.selection-summary{display:flex;align-items:center;gap:12px;min-width:0}.bag-icon{color:var(--blue);width:29px;flex-shrink:0}.bag-icon svg{display:block;width:27px;height:27px}.selection-summary strong{font-size:.9375rem;display:block;font-weight:600}.selection-summary b{font-size:1.25rem;color:var(--blue);padding:0 3px}.selection-summary div>span{font-size:.75rem;display:block;color:var(--muted);margin-top:1px}
.primary-button{min-height:46px;background:var(--blue);color:white;border-radius:9px;padding:11px 22px;font-weight:650;font-size:.9375rem;display:inline-flex;align-items:center;justify-content:center;gap:16px;white-space:nowrap}.primary-button:hover{background:var(--blue-dark)}.secondary-button{background:var(--tint);color:var(--blue);padding:10px 18px;border-radius:8px;font-weight:600;min-height:44px;font-size:.9375rem}
.cart-intro{margin-bottom:7px}.cart-instruction{font-size:.9375rem;color:var(--muted);margin:0 0 25px}.receipt{border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:3px 3px 12px 12px;overflow:hidden;padding:0 24px;background:white}.receipt-heading{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line);font-size:.875rem;color:var(--muted)}.receipt-heading strong{color:var(--blue);font-size:.9375rem}.cart-row{padding:18px 0;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.cart-actions{display:flex;align-items:center;gap:14px}.remove-button{min-width:36px;min-height:40px;font-size:.8125rem;background:transparent;color:#7d8799;padding:0}.remove-button:hover{color:#b63c42}.receipt-total{display:flex;justify-content:space-between;align-items:center;padding:19px 0}.receipt-total>span{font-size:.9375rem;color:var(--muted)}.receipt-total strong{font-size:1.8rem;color:var(--blue);line-height:1.2}.receipt-total small{font-size:.875rem;font-weight:500}.receipt-note{display:flex;align-items:center;gap:8px;border-top:1px dashed #dce2ef;color:#6d7890;padding:15px 0;font-size:.8125rem}.receipt-note p{margin:0}.receipt-note>span{font-size:1rem}.local-note{font-size:.8125rem;line-height:1.7;color:#8b94a4;text-align:center;margin:18px 8px}.empty-state{text-align:center;padding:64px 8px}.empty-mark{display:grid;place-items:center;font-size:1.8rem;width:64px;height:64px;border-radius:18px;color:#6a83bf;background:#eef2fa;margin:0 auto 20px}.empty-state h2{font-size:1.15rem;font-weight:650;margin:0 0 9px}.empty-state p{color:var(--muted);font-size:.9375rem;margin:0 0 23px}.toast{position:fixed;z-index:20;bottom:112px;left:50%;transform:translateX(-50%) translateY(8px);background:#1e2b48;color:white;border-radius:9px;padding:11px 18px;font-size:.875rem;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;max-width:calc(100% - 32px);text-align:center}.toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}.noscript{padding:24px;color:#a23b31}
@media(min-width:1000px){.app-shell{margin-top:30px;margin-bottom:30px;min-height:calc(100vh - 60px);border:1px solid var(--line);border-radius:18px;overflow:hidden}.site-header{height:88px}main{padding-top:32px}.book-row{min-height:87px}.bottom-bar{background:transparent;border:0;box-shadow:none;pointer-events:none}.bottom-inner{pointer-events:auto;background:#fff;border:1px solid var(--line);border-radius:13px 13px 0 0;box-shadow:0 -4px 18px #1a2a4805}}
@media(max-width:600px){.app-shell{border:0}.site-header{height:72px;padding:0 20px}.brand{font-size:1.0625rem;gap:10px}.brand-icon{width:34px;height:34px;border-radius:9px}.brand-icon svg{width:21px;height:21px}.main-nav{padding:0 20px;gap:25px}.nav-item{min-height:47px;font-size:.9375rem}main{padding:22px 20px 120px}h1{font-size:1.4rem}.page-intro{margin-bottom:19px;gap:8px}.eyebrow{font-size:.75rem;margin-bottom:4px}.intro-count{font-size:.75rem}.search-box{padding:0 11px;gap:8px}.search-box input{font-size:1rem}.search-box input::placeholder{font-size:.875rem}.filters{margin:14px 0 19px}.filters button{padding:7px 16px;min-height:40px}.list-heading{font-size:.75rem;padding-bottom:9px}.book-row{min-height:84px;gap:9px;padding:14px 0}.row-number{width:19px;font-size:.75rem}.book-title{font-size:1rem;line-height:1.5;margin-bottom:5px}.book-meta{gap:6px}.add-button{min-width:74px}.quantity-controls button{width:31px;min-height:40px}.quantity-controls output{min-width:23px}.bottom-inner{padding:13px 20px;gap:10px}.selection-summary{gap:9px}.bag-icon{width:25px}.bag-icon svg{width:24px;height:24px}.primary-button{padding:11px 17px;gap:12px}.selection-summary strong{font-size:.875rem}.selection-summary div>span{font-size:.75rem}.receipt{padding:0 16px}.cart-instruction{margin-top:8px;font-size:.875rem}.cart-row{align-items:flex-start;gap:8px;padding:17px 0}.cart-row .book-info{padding-top:2px}.cart-actions{flex-direction:column;gap:3px;align-items:flex-end}.remove-button{min-height:30px}.cart-row .row-number{display:none}.receipt-note{align-items:flex-start;font-size:.8125rem}.cart-intro{margin-bottom:0}.empty-state{padding-top:56px}.pager{padding:12px;gap:8px;margin-top:18px}.pager-button{min-width:74px;padding:8px 10px;font-size:.875rem}.pager-status{font-size:.8125rem}}
@media(max-width:360px){main{padding-left:14px;padding-right:14px}.site-header,.main-nav{padding-left:14px;padding-right:14px}.row-number{display:none}.bottom-inner{padding-left:14px;padding-right:14px}.bag-icon{display:none}.intro-count{display:none}.book-meta{gap:5px}.primary-button{padding-left:14px;padding-right:14px}.receipt{padding:0 12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{.site-header,.main-nav,.bottom-bar,.cart-actions,.local-note,.toast,.cart-instruction,.receipt-actions,.copy-fallback{display:none!important}.app-shell{border:0;margin:0}body{background:white}main{padding:0}.receipt{break-inside:avoid}.cart-row{break-inside:avoid}}
.receipt-actions{margin:14px 0 0}.receipt-actions .primary-button{width:100%}.copy-fallback{margin:12px 0 0}.copy-fallback p{margin:0 0 8px;font-size:.875rem;color:var(--muted)}.copy-fallback textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px;font:inherit;font-size:.875rem;line-height:1.6;color:var(--ink);background:var(--paper);resize:vertical}
.catalog-updated{font-size:.75rem;color:var(--muted);margin:0 0 16px}.book-title{overflow-wrap:anywhere}
.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 6px;padding:14px 16px;border:1px solid var(--line);border-radius:11px;background:#f8faff}
.pager-status{flex:1;text-align:center;font-size:.875rem;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}
.pager-button{min-height:44px;min-width:92px;padding:8px 14px;border-radius:9px;background:#eef1f7;color:#51627f;font-size:.9375rem;font-weight:600}
.pager-button:hover:not(:disabled){background:#e3e9f5}
.pager-button:disabled{background:#f2f4f8;color:#a9b2c2}
.pager-next{background:var(--blue);color:#fff}
.pager-next:hover:not(:disabled){background:var(--blue-dark)}
.pager-next:disabled{background:#c3cfea;color:#fff}


/* ---------- 草稿变化提示 / 提交 / 订单（2026-09-17 接入云接口时新增） ---------- */
.notice{border:1px solid #f0d9a8;background:#fff9ec;color:#8a5a12;border-radius:10px;padding:12px 14px;font-size:.875rem;line-height:1.6;margin:0 0 18px}
.notice-warn{border-color:#f3c9c9;background:#fdf3f3;color:#93343a}

/* ---------- 备案号悬挂（2026-09-29 备案通过后新增） ---------- */
.site-footer{margin:30px 0 0;text-align:center;font-size:.75rem;line-height:1.9;color:#919aab}
.site-footer a{color:inherit;text-decoration:none}
.site-footer a:hover{color:var(--blue);text-decoration:underline}
.notice b{font-weight:650}
.submit-box{border-top:1px dashed #dce2ef;margin-top:4px;padding:18px 0 6px}
.submit-title{font-size:.9375rem;font-weight:650;margin:0 0 6px}
.submit-note{font-size:.8125rem;color:var(--muted);margin:0 0 13px;line-height:1.65}
.submit-note b{color:var(--ink);font-weight:650}
.field-label{display:block;font-size:.8125rem;color:var(--muted);margin:0 0 6px}
.field-input{width:100%;min-height:48px;border:1px solid #e0e5ef;background:#f7f8fb;border-radius:10px;padding:0 14px;font-size:.9375rem;color:var(--ink);outline:none}
.field-input:focus{border-color:#5378e0;background:#fff;box-shadow:0 0 0 3px #244dcc0d}
.submit-box .primary-button{width:100%;margin-top:12px}
.submit-box .primary-button:disabled{background:#c3cfea;cursor:default}
.order-hint{font-size:.875rem;color:var(--muted);margin:0 0 4px;padding:14px 0 0;line-height:1.6}
.order-actions{display:flex;flex-wrap:wrap;gap:10px}
.order-actions .primary-button,.order-actions .secondary-button{flex:1 1 auto}
.receipt-heading #order-no{font-variant-numeric:tabular-nums;font-weight:650;color:var(--ink);font-size:.9375rem}
.receipt-heading #order-state{color:var(--blue)}
@media(max-width:600px){.notice{margin-bottom:14px;padding:11px 12px;font-size:.8125rem}.submit-box .primary-button,.order-actions .primary-button,.order-actions .secondary-button{width:100%;flex:1 1 100%}}
