/* Warm Paper Study. Two layers, split rule by rule:
   - body.layout-warm-paper = the desktop workspace layout (full-width top bar, left basket panel, card
     header/footer, filter grid). Every theme uses it; warm-paper.js moves the existing controls into place.
     Geometry only: display, position, size, spacing, type size, visibility.
   - body.skin-warm-paper = how the 暖纸书房 theme paints that layout (colours, borders, shadows, radii and
     the line icons). Only the Warm Paper theme gets this class.
   Classic (清爽原版) and Liquid Glass (流光玻璃) paint the same layout from warm-layout-skins.css.
   A structure rule and its skin twin keep the original selector (class swapped, same specificity) and sit
   next to each other, so the Warm Paper cascade is unchanged. Structure rules never use the --warm-* palette. */
/* Cold load: the layout only lands after the deferred scripts, so the head script marks <html> and the
   workspace stays hidden on a plain page in the theme's own background instead of flashing the classic
   skeleton. The login overlay is a separate fixed layer and is not affected. */
html.warm-paper-boot body{background:#f7f6f2!important}
html.warm-paper-boot.warm-paper-boot-dark body{background:#191c20!important}
html.warm-paper-boot.warm-paper-boot-classic body{background:#f8fafc!important}
html.warm-paper-boot.warm-paper-boot-classic.warm-paper-boot-dark body{background:#151515!important}
html.warm-paper-boot.warm-paper-boot-glass body{background:#eaf0fc!important}
html.warm-paper-boot.warm-paper-boot-glass.warm-paper-boot-dark body{background:#0e1016!important}
html.warm-paper-boot body>#appSidebar,html.warm-paper-boot body>main,html.warm-paper-boot body>#mobileStudyApp{visibility:hidden!important}
.warm-only{display:none}
/* Neutrals follow the login screen (auth-login.css: --auth-paper #f7f6f2, --auth-border #e3e3dc); brick-red accent is unchanged. */
body.skin-warm-paper{--warm-page:#f7f6f2;--warm-ink:#292a2e;--warm-muted:#868681;--warm-border:#e3e3dc;--warm-accent:#bc5143;background:var(--warm-page)!important;color:var(--warm-ink)!important}
body.skin-warm-paper button:focus-visible,body.skin-warm-paper summary:focus-visible,body.skin-warm-paper [role=button]:focus-visible{outline:2px solid #ba6453;outline-offset:3px}
body.layout-warm-paper .warm-relabel{font-size:0!important;gap:9px}
body.layout-warm-paper .warm-relabel>*{display:none!important}
body.layout-warm-paper .warm-relabel:not([style*="--warm-icon"]):before{display:none!important}
body.layout-warm-paper .warm-relabel:after{content:attr(data-warm-label);font:500 14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;white-space:nowrap}
body.layout-warm-paper .warm-relabel:before,.warm-with-icon:before,.warm-filter-reset:before{content:"";display:inline-block;width:20px;height:20px;flex-shrink:0}
body.skin-warm-paper .warm-relabel:before,body.skin-warm-paper .warm-with-icon:before,body.skin-warm-paper .warm-filter-reset:before{background:currentColor;mask:var(--warm-icon) center/contain no-repeat;-webkit-mask:var(--warm-icon) center/contain no-repeat}
@media(min-width:768px){
 body.layout-warm-paper .warm-only{display:flex}
 /* Top bar across the full width; basket panel and content share the row below it. */
 body.layout-warm-paper{--warm-sidebar:318px;display:grid!important;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);height:100vh;height:100dvh}
 body.layout-warm-paper>#appTopHeader{grid-column:1/-1;grid-row:1}
 body.layout-warm-paper>main{grid-column:2;grid-row:2;height:auto;min-height:0;width:auto;min-width:0}
 body.skin-warm-paper>main{background:var(--warm-page)!important}
 /* Paper basket panel: the classic sidebar in the left column. Collapse/expand is the classic drawer (see the handle rules below). */
 body.layout-warm-paper #appSidebar{grid-column:1;grid-row:2;display:flex!important;flex-direction:column;position:relative!important;width:var(--warm-sidebar)!important;min-width:0!important;height:auto;min-height:0;padding:0;transform:none!important;overflow:visible;z-index:20}
 body.skin-warm-paper #appSidebar{background:var(--warm-page)!important;border:0!important;border-right:1px solid var(--warm-border)!important;box-shadow:none!important}
 /* Collapsed: a 30px rail that keeps the divider line and the handle; clip-path lets the handle overhang the line when open. */
 body.layout-warm-paper #appSidebar{clip-path:inset(0 -14px 0 0)}
 body.layout-warm-paper #appSidebar.collapsed{width:30px!important;min-width:0!important}
 body.skin-warm-paper #appSidebar.collapsed{box-shadow:none!important}
 body.layout-warm-paper #sidebarDrawerHandle{display:flex!important;position:absolute;top:50%!important;right:-11px!important;left:auto;width:22px;min-height:52px;padding:0;transform:translateY(-50%)!important;gap:4px;z-index:40}
 body.skin-warm-paper :is(#sidebarDrawerHandle,#hallFilterDrawerHandle){border:1px solid var(--warm-border);border-radius:11px;background:#fff;color:#7a7974;box-shadow:0 2px 8px rgb(47 46 36 / 6%);transition:border-color .16s,color .16s,background .16s}
 body.skin-warm-paper :is(#sidebarDrawerHandle,#hallFilterDrawerHandle):hover{background:#fff;border-color:#b5b3a7;color:var(--warm-accent);box-shadow:0 3px 10px rgb(47 46 36 / 10%)}
 body.skin-warm-paper :is(#sidebarDrawerHandle,#hallFilterDrawerHandle):active{background:#f7f7f2;box-shadow:none}
 body.layout-warm-paper #sidebarDrawerHandle .sidebar-drawer-arrow{font-size:16px;font-weight:600;transform:none}
 body.skin-warm-paper #sidebarDrawerHandle .sidebar-drawer-arrow{text-shadow:none}
 body.layout-warm-paper #appSidebar.collapsed #sidebarDrawerHandle .sidebar-drawer-arrow{transform:rotate(180deg)}
 body.layout-warm-paper #sidebarDrawerHandle:hover .sidebar-drawer-arrow{transform:none}
 body.layout-warm-paper #appSidebar.collapsed #sidebarDrawerHandle:hover .sidebar-drawer-arrow{transform:rotate(180deg)}
 body.layout-warm-paper #appSidebar.collapsed #sidebarDrawerHandle{right:auto!important;left:50%;width:24px;min-height:104px;transform:translate(-50%,-50%)!important}
 body.skin-warm-paper #appSidebar.collapsed #sidebarDrawerHandle{box-shadow:none}
 body.layout-warm-paper #sidebarDrawerHandle :is(.sidebar-drawer-count,.sidebar-drawer-marks){font-size:10px;font-weight:650;letter-spacing:0;writing-mode:vertical-rl;width:auto;padding:0;line-height:1}
 body.skin-warm-paper #sidebarDrawerHandle :is(.sidebar-drawer-count,.sidebar-drawer-marks){text-shadow:none}
 body.skin-warm-paper #sidebarDrawerHandle .sidebar-drawer-count{color:var(--warm-accent)}
 body.skin-warm-paper #sidebarDrawerHandle .sidebar-drawer-marks{color:var(--warm-muted)}
 body.layout-warm-paper #sidebarContent{display:flex;flex-direction:column;opacity:1!important;visibility:visible!important;pointer-events:auto!important;transform:none!important;filter:none!important;width:calc(var(--warm-sidebar) - 1px)!important;min-width:0!important;height:100%;padding:20px 0 0;overflow:hidden;box-sizing:border-box}
 body.skin-warm-paper #sidebarContent{background:var(--warm-page)!important;border:0;border-radius:0}
 body.layout-warm-paper #appSidebar.collapsed #sidebarContent{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
 body.layout-warm-paper #sidebarContent>.p-5:first-of-type{display:none!important}
 body.layout-warm-paper #sidebarContent>.px-5{padding:0 16px 6px!important;gap:10px!important}
 body.layout-warm-paper #btnRandomPanel,body.layout-warm-paper #btnSmartFusion{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 16px!important}
 body.skin-warm-paper #btnRandomPanel,body.skin-warm-paper #btnSmartFusion{background:#fff!important;border:1px solid #d8d7d0!important;border-radius:11px!important;box-shadow:none!important;color:#333337!important;text-shadow:none;transition:background .16s,border-color .16s}
 body.skin-warm-paper #btnRandomPanel:hover,body.skin-warm-paper #btnSmartFusion:hover{background:#f1f0eb!important;border-color:#b5b3a7!important}
 body.skin-warm-paper #btnRandomPanel.warm-relabel:after,body.skin-warm-paper #btnSmartFusion.warm-relabel:after{font-weight:600}
 /* app.css draws a shine sweep on these two buttons' ::before by id; reuse the box as the icon slot. */
 body.skin-warm-paper #btnRandomPanel.warm-relabel:before,body.skin-warm-paper #btnSmartFusion.warm-relabel:before{content:"";display:inline-block!important;position:static;inset:auto;width:18px;height:18px;opacity:1;transform:none!important;transition:none;pointer-events:none;background:currentColor;mask:var(--warm-icon) center/contain no-repeat;-webkit-mask:var(--warm-icon) center/contain no-repeat;color:#b0503f}
 body.skin-warm-paper #btnRandomPanel.warm-relabel:before{width:24px;height:24px;background:url('/static/assets/capybara/xiaobala-outline-warm-v1.png') center/contain no-repeat;mask:none;-webkit-mask:none}
 body.skin-warm-paper #btnRandomPanel:hover:before,body.skin-warm-paper #btnSmartFusion:hover:before{transform:none!important}
 body.layout-warm-paper #cartDropZone{flex:1;min-height:0;margin:14px 2px 0 6px!important;padding:0 4px 0 6px!important}
 body.skin-warm-paper #cartDropZone{border-radius:12px}
 body.layout-warm-paper #cartDropZone>div:first-child{margin:0!important;padding:0 4px!important;align-items:center}
 body.skin-warm-paper #cartDropZone>div:first-child>h3{font-size:0!important;gap:0;color:#2a2b2f!important}
 body.skin-warm-paper #cartDropZone>div:first-child>h3.warm-relabel:after{font-size:18px;font-weight:700;color:#2a2b2f;letter-spacing:.01em}
 body.layout-warm-paper #cartDropZone>div:first-child>div{gap:2px!important}
 body.layout-warm-paper #cartDropZone>div:first-child>div>.h-4,body.layout-warm-paper #cartDropZone>div:first-child>div>button[onclick="showCartGuide()"]{display:none!important}
 body.layout-warm-paper #cartDropZone>div:first-child>div>button{width:32px;height:32px;display:inline-flex!important;align-items:center;justify-content:center;padding:0!important;margin:0!important;cursor:pointer!important}
 body.skin-warm-paper #cartDropZone>div:first-child>div>button{border:0!important;border-radius:8px;background:transparent!important;box-shadow:none!important;color:#868680!important;opacity:1!important;transform:none!important}
 body.skin-warm-paper #cartDropZone>div:first-child>div>button:hover{background:#e9e9e4!important;color:#b0503f!important}
 body.layout-warm-paper #cartDropZone>div:first-child>div>button:disabled{display:none!important}
 body.layout-warm-paper #cartDropZone>div:first-child>div>button.warm-relabel:after{display:none}
 body.layout-warm-paper #cartDropZone>div:first-child>div>button.warm-relabel:before{width:18px;height:18px}
 body.layout-warm-paper .warm-basket-count{font-size:13px;margin:4px 4px 14px;line-height:1.5}
 body.skin-warm-paper .warm-basket-count{color:var(--warm-muted)}
 /* Scrollbar: a thin rounded thumb on a transparent track, tucked against the panel edge, visible only
    when the list overflows. Blink/WebKit: keep overflow-y:scroll so the 10px slot is always reserved (a
    transparent track draws nothing while the list fits) — WebKit sizes scrollbar-gutter:stable from the
    native theme, not from ::-webkit-scrollbar, so auto+stable makes rows jump there. Never set
    scrollbar-width/-color for these engines: Chrome then ignores ::-webkit-scrollbar entirely. */
 body.layout-warm-paper #cartList{gap:2px!important;padding:0 6px 12px 0!important;counter-reset:warm-cart;overflow-y:scroll!important;overscroll-behavior:contain}
 body.skin-warm-paper #cartList::-webkit-scrollbar{width:10px;height:10px}
 body.skin-warm-paper #cartList::-webkit-scrollbar-track,body.skin-warm-paper #cartList::-webkit-scrollbar-corner{background:transparent}
 body.skin-warm-paper #cartList::-webkit-scrollbar-thumb{background:#ceccc3;border:3px solid transparent;background-clip:padding-box;border-radius:999px;min-height:36px}
 body.skin-warm-paper #cartList::-webkit-scrollbar-thumb:hover{background-color:#b8b7ab}
 body.skin-warm-paper #cartList::-webkit-scrollbar-button{display:none;width:0;height:0}
 /* Firefox: standard properties. Guard on the thumb pseudo — Firefox 153/154/ESR 153 answer true for
    selector(::-webkit-scrollbar) without implementing it, but have never recognised the thumb. */
 @supports not selector(::-webkit-scrollbar-thumb){body.layout-warm-paper #cartList{overflow-y:auto!important;scrollbar-gutter:stable;scrollbar-width:thin}body.skin-warm-paper #cartList{scrollbar-color:#ceccc3 transparent}
}
 body.layout-warm-paper #cartList>.cart-item{counter-increment:warm-cart;display:grid!important;grid-template-columns:30px minmax(0,1fr) 28px;column-gap:12px;align-items:start;padding:10px 4px!important;margin:0!important;overflow:visible}
 body.skin-warm-paper #cartList>.cart-item{border:0!important;box-shadow:none!important;background:transparent!important;border-radius:10px}
 body.skin-warm-paper #cartList>.cart-item:hover{background:#edece8!important}
 body.layout-warm-paper #cartList>.cart-item>div:first-child{display:contents}
 body.layout-warm-paper #cartList>.cart-item>div:first-child>div{grid-column:1;grid-row:1/span 3;width:30px;height:30px;display:flex;align-items:center;justify-content:center;margin:0}
 body.skin-warm-paper #cartList>.cart-item>div:first-child>div{background:#e9e8e4;border-radius:8px;color:#4c4b48!important}
 body.layout-warm-paper #cartList>.cart-item>div:first-child>div>svg{display:none}
 body.layout-warm-paper #cartList>.cart-item>div:first-child>div>b{width:auto;font-size:0!important}
 body.layout-warm-paper #cartList>.cart-item>div:first-child>div>b:before{content:counter(warm-cart);font-size:13px;font-weight:600}
 body.layout-warm-paper #cartList>.cart-item>div:first-child>span{grid-column:2;grid-row:1;font:650 15px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace!important;letter-spacing:-.2px;cursor:pointer;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px}
 body.skin-warm-paper #cartList>.cart-item>div:first-child>span{color:#2b2c30!important;text-decoration:none!important}
 body.skin-warm-paper #cartList>.cart-item:hover>div:first-child>span{color:var(--warm-accent)!important}
 body.layout-warm-paper .warm-cart-meta{grid-column:2;grid-row:2;font-size:12.5px;line-height:1.5;margin-top:2px}
 body.skin-warm-paper .warm-cart-meta{color:var(--warm-muted)}
 body.layout-warm-paper #cartList>.cart-item>.cart-part-selection{grid-column:2;grid-row:3;justify-self:start;max-width:100%;margin:6px 0 0!important;font-size:11.5px;padding:2px 8px}
 body.skin-warm-paper #cartList>.cart-item>.cart-part-selection{color:#7e4f43;background:#f8eeea;border:1px solid #ecd6cf;border-radius:6px}
 body.layout-warm-paper #cartList>.cart-item>button[onclick^="removeFromCart"]{grid-column:3;grid-row:1/span 3;align-self:start;width:28px;height:28px;display:flex;align-items:center;justify-content:center;margin:3px 0 0!important;padding:0!important}
 body.skin-warm-paper #cartList>.cart-item>button[onclick^="removeFromCart"]{border-radius:8px;color:#868680!important}
 body.skin-warm-paper #cartList>.cart-item>button[onclick^="removeFromCart"]:hover{background:#e5e4de;color:#b0503f!important}
 body.layout-warm-paper #cartList>.cart-item>button[onclick^="removeFromCart"] svg{width:15px;height:15px}
 body.layout-warm-paper #cartList>div:not(.cart-item):not(.cart-drop-indicator){font-size:13px;padding:14px!important}
 body.skin-warm-paper #cartList>div:not(.cart-item):not(.cart-drop-indicator){background:#fff!important;color:var(--warm-muted)!important;border:1px dashed #d8d7cf!important;box-shadow:none!important;border-radius:10px!important}
 body.skin-warm-paper #cartList .cart-drop-indicator{border-color:var(--warm-accent)!important;box-shadow:none!important}
 body.layout-warm-paper #sidebarContent>.p-5:last-child{margin:0 6px;padding:12px 10px 16px!important;gap:0!important}
 body.skin-warm-paper #sidebarContent>.p-5:last-child{background:transparent!important;border-top:1px solid var(--warm-border)!important;box-shadow:none!important}
 body.layout-warm-paper #sidebarContent>.p-5:last-child>.flex{display:none!important}
 body.layout-warm-paper #sidebarContent>.p-5:last-child>button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 16px!important}
 body.skin-warm-paper #sidebarContent>.p-5:last-child>button{border-radius:11px!important;background:var(--warm-accent)!important;color:#fff!important;box-shadow:none!important;overflow:visible;transition:background .16s}
 body.skin-warm-paper #sidebarContent>.p-5:last-child>button:hover{background:#a94538!important}
 body.skin-warm-paper #sidebarContent>.p-5:last-child>button.warm-relabel:after{font-weight:600;font-size:15px}
 body.skin-warm-paper #sidebarContent>.p-5:last-child>button.warm-relabel:before{order:2;width:18px;height:18px}
 body.layout-warm-paper #appTopHeader{display:grid!important;grid-template-columns:minmax(172px,auto) auto minmax(0,1fr);align-items:center;gap:18px;margin:0;padding:18px clamp(20px,2.6vw,44px) 0 22px!important;min-height:86px;height:auto!important;overflow:visible!important}
 body.skin-warm-paper #appTopHeader{background:var(--warm-page)!important;border-bottom:1px solid var(--warm-border)!important;box-shadow:none!important}
 body.layout-warm-paper #appTopHeader>div:first-child{display:contents!important}
 body.layout-warm-paper #appBrandTitle{grid-column:1;grid-row:1;display:grid!important;grid-template-columns:42px auto;column-gap:11px;row-gap:2px;align-content:center;font-size:24px!important;line-height:1.15;position:relative;padding-bottom:17px;letter-spacing:.01em}
 body.skin-warm-paper #appBrandTitle{color:#25262b!important}
 body.layout-warm-paper #appBrandTitle img{width:42px!important;height:44px!important;grid-row:1/3;object-fit:contain}
 body.skin-warm-paper #appBrandText{color:#25262b!important}
 body.layout-warm-paper .warm-brand-caption{display:block;font-size:8px;letter-spacing:.2em;font-weight:600;grid-column:2;white-space:nowrap}
 body.skin-warm-paper .warm-brand-caption{color:#8a8986}
 body.layout-warm-paper #mainTabs{grid-column:2;grid-row:1;gap:8px!important;align-self:stretch;overflow:visible!important}
 body.skin-warm-paper #mainTabs{align-items:stretch}
 body.layout-warm-paper #mainTabs>button{display:flex;align-items:center;margin:0!important;white-space:nowrap}
 body.skin-warm-paper #mainTabs>button{border:0!important;border-bottom:2px solid transparent!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;gap:10px;color:#646361!important;padding:4px 14px 19px!important;font-weight:500;transform:none!important}
 body.layout-warm-paper #mainTabs>button.hidden{display:none!important}
 body.skin-warm-paper #mainTabs>button.bg-st-red{color:var(--warm-accent)!important;border-bottom-color:var(--warm-accent)!important}
 body.skin-warm-paper #mainTabs>button:after{font-size:14px}
 body.skin-warm-paper #mainTabs>button.warm-relabel{font-size:0!important}
 body.layout-warm-paper #appTopHeader>div:first-child>div:last-child{grid-column:3;grid-row:1;justify-content:flex-end;padding-bottom:17px;gap:10px!important;min-width:0}
 body.skin-warm-paper #pwaInstallEntry{display:none!important}
 /* Account: the classic user card, moved into the top bar by warm-paper.js and shown compactly. */
 body.layout-warm-paper #appTopHeader .user-info-card{display:flex!important;align-items:center;gap:10px;width:auto!important;min-width:0;max-width:240px;flex:0 1 auto;margin:0 0 0 4px;padding:3px 4px 3px 14px!important;text-align:left}
 body.skin-warm-paper #appTopHeader .user-info-card{border:0!important;border-left:1px solid var(--warm-border)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;transform:none!important}
 body.skin-warm-paper #appTopHeader .user-info-card:hover #sidebar_username{color:var(--warm-accent)!important}
 body.layout-warm-paper #appTopHeader #sidebar_avatar{width:36px!important;height:36px!important;font-size:15px!important}
 body.skin-warm-paper #appTopHeader #sidebar_avatar{border:1px solid var(--warm-border)!important;background-color:var(--warm-accent);box-shadow:none!important;transform:none!important}
 body.layout-warm-paper #appTopHeader .user-info-card>.truncate{min-width:0;display:flex;flex-direction:column;gap:1px}
 body.layout-warm-paper #appTopHeader .user-info-card>.truncate>div:first-child,body.layout-warm-paper #appTopHeader .user-info-card>div:last-child{display:none!important}
 body.layout-warm-paper #appTopHeader #sidebar_username{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 body.skin-warm-paper #appTopHeader #sidebar_username{color:#2b2c30!important}
 body.layout-warm-paper #appTopHeader #sidebar_username.warm-relabel:after{font-size:13px;font-weight:650;letter-spacing:.01em}
 body.layout-warm-paper #appTopHeader #sidebar_usertype{margin:0!important;font-size:11px!important;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 body.skin-warm-paper #appTopHeader #sidebar_usertype{color:var(--warm-muted)!important}
 /* Language switch (文 / A): neutral paper track instead of the classic slate-blue pill. */
 body.layout-warm-paper #appTopHeader>div:first-child>div:last-child>div:first-child{height:38px;padding:3px!important}
 body.skin-warm-paper #appTopHeader>div:first-child>div:last-child>div:first-child{background:#eceae4!important;border-color:var(--warm-border)!important;box-shadow:none!important}
 body.layout-warm-paper #appTopHeader .lang-choice-btn{height:30px;display:inline-flex;align-items:center;padding:0 12px!important;font-weight:700!important}
 body.skin-warm-paper #appTopHeader .lang-choice-btn{color:#7a7974!important;background:transparent;box-shadow:none!important}
 body.skin-warm-paper #appTopHeader .lang-choice-btn:hover{color:#2b2c30!important}
 body.skin-warm-paper #appTopHeader .lang-choice-btn.bg-white{background:#fff!important;color:#2b2c30!important;box-shadow:0 1px 3px rgb(47 46 36 / 12%)!important}
 /* Light/dark switch and theme picker (暖纸书房 / 清爽原版 / 流光玻璃) share one quiet round button style. */
 body.layout-warm-paper :is(.style-toggle-btn,.theme-toggle-btn){width:38px;height:38px}
 body.skin-warm-paper :is(.style-toggle-btn,.theme-toggle-btn){border-color:var(--warm-border)!important;background:#fff!important;color:#52514e!important;box-shadow:none!important}
 body.skin-warm-paper :is(.style-toggle-btn,.theme-toggle-btn):hover{transform:none;border-color:#b5b3a7!important;background:#f7f7f2!important}
 body.layout-warm-paper .theme-toggle-btn{font-size:16px;font-weight:600}
 body.layout-warm-paper main>div.overflow-y-auto{padding-bottom:40px}
 body.skin-warm-paper main>div.overflow-y-auto{background:var(--warm-page)!important}
 body.layout-warm-paper #hallPanel{max-width:1520px;padding:0 clamp(20px,2.6vw,44px) 40px clamp(14px,1.8vw,30px)!important;width:100%}
 body.layout-warm-paper #hallPanel>.sticky{position:sticky!important;top:0!important;z-index:110;padding-bottom:10px!important;transform:none!important;max-height:none!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important}
 body.skin-warm-paper #hallPanel>.sticky{background:var(--warm-page)!important}
 body.skin-warm-paper #hallPanel>.sticky:after{content:"";position:absolute;left:0;right:0;top:100%;height:14px;background:linear-gradient(var(--warm-page),rgb(247 246 242 / 0));pointer-events:none}
 body.skin-warm-paper #hallPanel .glass-surface{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;backdrop-filter:none!important;padding:23px 0 0!important;gap:17px!important}
 body.layout-warm-paper #tabletTopToggle{display:none!important}
 body.layout-warm-paper.tablet-top-collapsed :is(#hallPanel,#variantsPanel,#pastPapersPanel) .sticky{display:block!important}
 body.layout-warm-paper #hallPanel .hall-search-row{order:-1;display:flex;align-items:center;gap:14px;margin:0!important;padding:0!important}
 body.layout-warm-paper #questionSearchControl{flex:1;min-width:0;padding:0!important;display:flex;min-height:46px!important;align-items:center;position:relative}
 body.skin-warm-paper #questionSearchControl{border:1px solid var(--warm-border)!important;border-radius:8px!important;background:#fff!important;box-shadow:0 2px 4px #3e3c2a03!important}
 body.skin-warm-paper #questionSearchControl:before{content:"";width:20px;height:20px;background:#8b8b89;mask:url('/static/assets/ui/lucide/search.svg') center/contain no-repeat;margin-left:16px;flex-shrink:0}
 body.layout-warm-paper #questionSearchControl .question-search-label,body.layout-warm-paper #questionSearchControl .question-search-help{display:none!important}
 body.layout-warm-paper #questionSearchControl input{font-size:14px!important;height:44px!important;min-height:0!important;flex:1}
 body.skin-warm-paper #questionSearchControl input{border:0!important;box-shadow:none!important;background:transparent!important;padding:11px 12px!important;color:#353538!important}
 body.layout-warm-paper #questionSearchControl .math-input-shell{flex:1;min-width:0}
 body.skin-warm-paper #questionSearchControl .math-input-shell{background:transparent!important;border:0!important;box-shadow:none!important}
 body.layout-warm-paper #questionSearchControl>p.question-search-help{display:none}
 body.layout-warm-paper #questionSearchControl .question-unified-input-wrap{flex:1;min-width:0}
 body.layout-warm-paper .hall-search-actions{gap:28px;align-items:center;padding:0!important}
 body.layout-warm-paper .hall-favorites-filter{font-size:13px;white-space:nowrap}
 body.skin-warm-paper .hall-favorites-filter{border:0;background:transparent;padding:0;color:#434340}
 body.layout-warm-paper .photo-search-entry{width:46px;height:46px}
 body.skin-warm-paper .photo-search-entry{border:1px solid var(--warm-border)!important;border-radius:8px!important;background:#fff!important;color:#434340!important}
 body.layout-warm-paper #filterBar{display:grid!important;grid-template-columns:minmax(172px,1.6fr) repeat(4,minmax(90px,1fr)) minmax(145px,1.45fr) minmax(100px,1fr) minmax(110px,1.05fr)!important;gap:10px!important}
 body.layout-warm-paper #filterBar>div{min-width:0;position:relative}
 body.layout-warm-paper #filterBar>div>label{position:absolute!important;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}
 body.layout-warm-paper #filterBar>div>div[role=button],body.layout-warm-paper #filterBar select,body.layout-warm-paper #filter_marks{display:flex;align-items:center;gap:8px;min-height:42px;height:42px;font-size:12px!important;font-weight:500!important;padding:9px 11px!important;width:100%}
 body.skin-warm-paper #filterBar>div>div[role=button],body.skin-warm-paper #filterBar select,body.skin-warm-paper #filter_marks{border:1px solid var(--warm-border)!important;border-radius:7px!important;background:white!important;box-shadow:none!important;color:#3c3b3b!important}
 body.skin-warm-paper #filterBar>div>div[role=button]:before{content:"";background:#72726e;mask:var(--warm-icon) center/contain no-repeat;width:17px;height:17px;flex-shrink:0}
 body.layout-warm-paper #filterBar [id^=label_]{font-size:0!important;flex:1;min-width:0}
 body.skin-warm-paper #filterBar [id^=label_]{color:#3c3b3b!important}
 body.layout-warm-paper #filterBar [id^=label_]:after{content:attr(data-warm-value);font-size:12px;font-weight:500}
 body.layout-warm-paper .warm-filter-count{font-size:10px;white-space:nowrap}
 body.skin-warm-paper .warm-filter-count{color:#95948e}
 body.layout-warm-paper #filterBar [id^=drop_]{min-width:180px;right:0}
 body.layout-warm-paper #filterBar #drop_chapters{min-width:280px}
 body.layout-warm-paper .warm-filter-summary{gap:18px;align-items:center;min-height:32px;flex-wrap:wrap;margin:0 0 3px}
 body.layout-warm-paper .warm-filter-chips{flex:1;display:flex;flex-wrap:wrap;gap:7px;min-width:100px}
 body.layout-warm-paper .warm-chip{font-size:12px;line-height:1;padding:9px 12px}
 body.skin-warm-paper .warm-chip{border-radius:20px;background:#eae9e5;color:#666560;border:0}
 body.skin-warm-paper .warm-chip:hover{background:#dfddd4;color:#7e4f43}
 body.layout-warm-paper .warm-filter-reset{display:flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap}
 body.skin-warm-paper .warm-filter-reset{background:none;border:0;color:#656460}
 body.layout-warm-paper .warm-filter-reset:before{width:16px;height:16px}
 body.layout-warm-paper .warm-result-count{font-size:12px}
 body.skin-warm-paper .warm-result-count{color:#878780}
 body.layout-warm-paper #statusBanner{display:none!important}
 body.layout-warm-paper #questionsGrid{margin-top:8px!important;gap:24px!important}
 body.layout-warm-paper .question-card[data-question-id]{display:flex!important;flex-direction:column!important;margin:0!important;overflow:hidden}
 body.skin-warm-paper .question-card[data-question-id]{background:#fff!important;border:1px solid #e6e5e1!important;border-radius:12px!important;box-shadow:0 4px 16px #4a462e04!important;transition:box-shadow .15s}
 body.skin-warm-paper .question-card[data-question-id]:hover{box-shadow:0 7px 22px #4a462e08!important;transform:none!important}
 body.layout-warm-paper .warm-original-meta{display:none!important}
 body.layout-warm-paper .warm-card-header{display:flex;align-items:center;gap:22px;padding:13px 23px;min-height:62px}
 body.skin-warm-paper .warm-card-header{border-bottom:1px solid #eeedea}
 body.layout-warm-paper .warm-card-header h3{font:650 19px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace!important;letter-spacing:-.5px;flex-shrink:0}
 body.skin-warm-paper .warm-card-header h3{color:#303035!important}
 body.layout-warm-paper .warm-card-info{font-size:13.5px;line-height:1.7;flex:1;min-width:0}
 body.skin-warm-paper .warm-card-info{color:#868681}
 body.layout-warm-paper .warm-card-controls{display:flex;align-items:center;gap:11px;flex-shrink:0;margin-left:auto}
 body.layout-warm-paper .warm-card-controls>button{display:flex;align-items:center;justify-content:center;min-height:38px}
 body.skin-warm-paper .warm-card-controls>button{background:transparent!important;box-shadow:none!important;border:0!important;border-radius:8px;color:#52514e!important;padding:5px!important;transform:none!important}
 body.skin-warm-paper .warm-card-controls>button:after{font-size:12px}
 body.skin-warm-paper .warm-card-controls>button.warm-is-saved{color:#b95745!important}
 body.skin-warm-paper .warm-card-controls>button.warm-xiaobala{height:42px;width:42px;background:transparent url('/static/assets/capybara/xiaobala-outline-warm-v1.png') center/34px 34px no-repeat!important}
 body.skin-warm-paper .warm-xiaobala:before,body.skin-warm-paper .warm-xiaobala:after{display:none!important}
 body.skin-warm-paper .warm-card-controls>button:hover{background-color:#f7f7f2!important}
 body.layout-warm-paper .warm-question-body{width:100%!important;max-width:none;padding:18px 24px 7px!important;gap:0!important}
 body.skin-warm-paper .warm-question-body{background:#fff!important;border:0!important}
 body.layout-warm-paper .warm-question-body figure{margin:0!important}
 body.skin-warm-paper .warm-question-body figure{border-radius:0!important}
 body.layout-warm-paper .warm-question-body .answer-anchor-wrapper{max-width:1000px;margin-right:auto}
 body.layout-warm-paper .warm-question-body img{max-width:100%;height:auto}
 body.skin-warm-paper .warm-question-body img{background:#fff!important;filter:none!important;mix-blend-mode:normal!important}
 body.layout-warm-paper .warm-card-footer{display:grid;grid-template-columns:repeat(5,max-content) 1fr max-content;column-gap:22px;row-gap:0;padding:10px 23px 16px;align-items:center}
 body.skin-warm-paper .warm-card-footer{background:#fff!important;border:0!important}
 body.layout-warm-paper .warm-card-footer>details{display:contents!important}
 body.layout-warm-paper .warm-card-footer>details::details-content{display:contents!important}
 body.layout-warm-paper .warm-card-footer>details:nth-of-type(1)>summary{grid-column:1;grid-row:1}
 body.layout-warm-paper .warm-card-footer>details:nth-of-type(2)>summary{grid-column:2;grid-row:1}
 body.layout-warm-paper .warm-card-footer>[onclick^="reqGenerateVariant"]{grid-column:3;grid-row:1}
 body.layout-warm-paper .warm-card-footer>[data-var-count]{grid-column:4;grid-row:1}
 body.layout-warm-paper .warm-card-footer>[data-comments-toggle]{grid-column:5;grid-row:1}
 body.layout-warm-paper .warm-card-footer>.question-select-parts{grid-column:6;grid-row:1}
/* Subjects without variants (only 9708/9709/9231 have them since 2026-10-27): Comments moves up next to the report. */
 body.layout-warm-paper .warm-card-footer:has(>[data-comments-toggle]):not(:has(>[data-var-count])){grid-template-columns:repeat(3,max-content) 1fr max-content}
 body.layout-warm-paper .warm-card-footer:has(>[data-comments-toggle]):not(:has(>[data-var-count]))>[data-comments-toggle]{grid-column:3}
 body.layout-warm-paper .warm-card-footer:has(>[data-comments-toggle]):not(:has(>[data-var-count]))>.question-select-parts{grid-column:4}
 body.layout-warm-paper .warm-card-footer:has(>[data-comments-toggle]):not(:has(>[data-var-count]))>[id^=btn_cart_]{grid-column:5}
 body.layout-warm-paper .warm-card-footer>details>summary,body.layout-warm-paper .warm-card-footer>button{display:inline-flex!important;align-items:center;justify-content:flex-start;gap:9px;min-height:42px;margin:0!important;list-style:none}
 body.skin-warm-paper .warm-card-footer>details>summary,body.skin-warm-paper .warm-card-footer>button{border:0!important;background:transparent!important;box-shadow:none!important;color:#484745!important;padding:8px 4px!important;border-radius:6px;transform:none!important}
 body.skin-warm-paper .warm-card-footer>details>summary:hover,body.skin-warm-paper .warm-card-footer>button:hover{background:#f6f5f1!important}
 body.skin-warm-paper .warm-card-footer>details>summary:after{padding-right:12px;background:url('/static/assets/ui/lucide/chevron-down.svg') right center/10px no-repeat}
 body.layout-warm-paper .warm-card-footer>details:not([open])>:not(summary){display:none!important}
 body.layout-warm-paper .warm-card-footer>details[open]>div{grid-column:1/-1;order:10;margin-top:16px;overflow:hidden;padding:18px}
 body.skin-warm-paper .warm-card-footer>details[open]>div{border:1px solid #eae9e2!important;border-radius:9px;background:#fff!important}
 body.layout-warm-paper .warm-card-footer>details .ms-answer-img{width:100%;max-width:100%;margin:0}
 body.skin-warm-paper .warm-card-footer>details[open]>summary,body.skin-warm-paper .warm-card-footer>button.warm-tab-active{color:#b05443!important}
 /* 考官报告的「中 / 英」切换：暖纸书房把整行标题换成图标 + 短标签（.warm-relabel 把 summary
    的子元素全藏了），这里把包着标题的那一层放回布局，只藏它里面的图标和标题两个 span。
    能不能看见仍由 app.css 决定（中文界面 + 报告已展开），order 把它排到短标签后面。 */
 body.layout-warm-paper .warm-card-footer>details.question-card-er>summary.warm-relabel>div{display:contents!important}
 body.layout-warm-paper .warm-card-footer>details.question-card-er>summary.warm-relabel>div>span{display:none!important}
 body.layout-warm-paper .warm-card-footer>details.question-card-er>summary.warm-relabel .er-lang-toggle{order:1}
 body.skin-warm-paper:not(.theme-dark) .warm-card-footer>details.question-card-er .er-lang-toggle{background:#f3f1ea!important;border-color:#e3e1d8!important}
 body.skin-warm-paper:not(.theme-dark) .warm-card-footer>details.question-card-er .er-lang-toggle button{color:#8b8981!important}
 body.skin-warm-paper:not(.theme-dark) .warm-card-footer>details.question-card-er .er-lang-toggle button[class~="bg-white"]{background:#fff!important;color:#b05443!important}
 body.layout-warm-paper .warm-card-footer>[id^=var_drawer_]{grid-column:1/-1;order:20}
 body.layout-warm-paper .warm-card-footer>[id^=btn_cart_]{grid-column:7;grid-row:1;justify-content:center;min-width:145px}
 body.skin-warm-paper .warm-card-footer>[id^=btn_cart_]{padding:10px 17px!important;background:var(--warm-accent)!important;color:#fff!important;border:1px solid var(--warm-accent)!important}
 body.skin-warm-paper .warm-card-footer>[id^=btn_cart_].warm-in-cart{background:#fff!important;border-color:#e0dfd9!important;color:#52524e!important}
 body.layout-warm-paper #capybaraWidget{width:86px;height:101px;z-index:45}
 body.layout-warm-paper #capybaraWidget:not([style]){left:calc(100vw - 102px);top:calc(100dvh - 127px);right:auto;bottom:auto}
}
@media(min-width:768px) and (max-width:1599px){
 body.layout-warm-paper #filterBar{grid-template-columns:1.5fr 1fr 1fr 1fr!important;row-gap:10px!important}
}
@media(min-width:768px) and (max-width:1359px){
 body.layout-warm-paper{--warm-sidebar:292px}
 body.layout-warm-paper .warm-card-header{flex-wrap:wrap;row-gap:0;padding-top:11px;padding-bottom:11px}
 body.layout-warm-paper .warm-card-info{order:3;flex:0 0 100%;font-size:12.5px}
 body.layout-warm-paper .warm-card-footer{column-gap:12px;grid-template-columns:repeat(5,max-content) 1fr max-content}
 body.layout-warm-paper .warm-card-footer>[id^=btn_cart_]{grid-column:7;min-width:118px}
 body.skin-warm-paper .warm-card-footer .warm-relabel:after{font-size:12px}
}
/* Narrow desktops with the basket open: the card footer wraps instead of pushing the add button out of the card. */
@media(min-width:768px) and (max-width:1099px){
 body.layout-warm-paper .warm-card-footer{display:flex;flex-wrap:wrap;align-items:center;gap:2px 12px}
 body.layout-warm-paper .warm-card-footer>[id^=btn_cart_]{margin-left:auto!important;min-width:112px}
 body.layout-warm-paper .warm-card-footer>details[open]>div,body.layout-warm-paper .warm-card-footer>[id^=var_drawer_]{flex:0 0 100%}
}
@media(min-width:768px) and (max-width:1199px){
 body.layout-warm-paper #appTopHeader{grid-template-columns:1fr 1fr;gap:0;padding:16px clamp(20px,2.6vw,44px) 0 22px!important;min-height:120px}
 body.layout-warm-paper #appTopHeader>div:first-child>div:last-child{grid-column:2}
 body.layout-warm-paper #mainTabs{grid-column:1/-1;grid-row:2;justify-content:space-between}
 body.skin-warm-paper #mainTabs>button{padding:6px 12px 13px!important}
}
/* Warm Paper in English: the tab names (Question Hall / Shared Variants / Past Papers / Favorites /
   Paper History) run ~125px wider than the Chinese ones, and the top bar's controls column is the one
   that yields (minmax(0,1fr)), so from 1280px to about 1300px the account name and plan stopped
   rendering and the controls overflowed. Tighten the tab padding and the icon gap for English only —
   Chinese keeps the roomier tabs, and below 1280px app.css packs them tighter still. */
@media(min-width:1280px){
 html[lang="en"] body.skin-warm-paper #mainTabs>button{gap:8px;padding-left:9px!important;padding-right:9px!important}
}
@media(max-width:767px){
 body.layout-warm-paper>#appTopHeader{display:none!important}
}
