:root{--paper:#f3f5f0;--surface:#fff;--ink:#17262a;--muted:#55655f;--line:#d9dfd8;--cloth:#1f4a3e;--cloth-ink:#fff;--cloth-bg:#dce9e3;--stamp:#a8323f;--stamp-bg:#f6e1e3;--mustard:#6b5208;--mustard-bg:#f4eac8;--blue:#35548a;--blue-bg:#dee6f3;--tabs-h:64px;--serif:"Bitter", Georgia, "Times New Roman", serif;--sans:"Public Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root{--paper:#151d1f;--surface:#1e292b;--ink:#e4eae7;--muted:#9aa8a5;--line:#2e3b3e;--cloth:#6db39b;--cloth-ink:#0f1a17;--cloth-bg:#1f3530;--stamp:#e57b88;--stamp-bg:#3a2226;--mustard:#e0be55;--mustard-bg:#3a3220;--blue:#8faee0;--blue-bg:#22304a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:inherit}body{background:var(--paper);color:var(--ink);font:400 16px/1.5 var(--sans);padding-bottom:calc(var(--tabs-h) + 16px);-webkit-font-smoothing:antialiased;margin:0}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--cloth);outline-offset:2px}h1{font:700 26px/1.1 var(--serif);margin:0}h2{font:600 20px/1.25 var(--serif);margin:4px 0 12px}h3{font:600 16px/1.3 var(--serif);margin:24px 0 8px}h1.brand{font:inherit;margin:0;line-height:1}.wordmark{color:var(--ink);flex-direction:column;align-items:flex-start;padding-top:.22em;display:inline-flex}.wm-row{font:700 1em/1 var(--serif);letter-spacing:-.02em;align-items:baseline;display:flex}.wm-l{width:.17em;height:.8em;margin:0 .04em;display:inline-block;position:relative}.wm-l i{background:var(--stamp);clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%);position:absolute;inset:0}.wm-l svg{width:.56em;height:.44em;color:var(--cloth);position:absolute;top:-.4em;left:-.19em}.wm-sub{font:600 .24em/1 var(--sans);letter-spacing:.42em;text-transform:uppercase;color:var(--muted);margin-top:.22em}.wordmark.rev{color:#fff}.wordmark.rev .wm-l i{background:#e8828d}.wordmark.rev .wm-l svg{color:#dce9e3}.wordmark.rev .wm-sub{color:#a9cfc0}.error{color:var(--stamp)}.center{place-items:center;min-height:60vh;display:grid}header.top{top:env(safe-area-inset-top,0px);z-index:5;background:var(--paper);border-bottom:1px solid var(--line);position:sticky}.top-inner{justify-content:space-between;align-items:center;max-width:760px;margin:0 auto;padding:14px 18px 12px;display:flex}.admin-link{color:var(--cloth);font-weight:600;text-decoration:none}main{max-width:760px;margin:0 auto;padding:16px 18px 24px}.gate h1.brand{margin-bottom:4px}.gate{flex-direction:column;gap:14px;max-width:420px;margin:12vh auto 0;padding:0 20px;display:flex}.stack{flex-direction:column;gap:10px;margin:8px 0;display:flex}.btn{border:1px solid var(--line);background:var(--surface);border-radius:999px;justify-content:center;align-items:center;min-height:40px;padding:8px 14px;font-size:15px;font-weight:500;display:inline-flex}.btn.big{border-radius:12px;min-height:52px;font-size:16px}.btn.primary{background:var(--cloth);border-color:var(--cloth);color:var(--cloth-ink)}.btn.danger{color:var(--stamp);border-color:var(--stamp)}.row-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:10px 0;padding:14px}.tag{background:var(--cloth-bg);color:var(--cloth);border-radius:4px;margin-left:8px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.empty{text-align:center;padding:40px 12px}nav.tabs{z-index:10;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}nav.tabs a{max-width:152px;color:var(--muted);flex-direction:column;flex:1;align-items:center;gap:2px;padding:7px 4px 6px;font-size:12px;font-weight:500;text-decoration:none;display:flex}nav.tabs a.active{color:var(--cloth);font-weight:600}.tab-ico{border-radius:15px;justify-content:center;align-items:center;width:52px;height:30px;display:flex;position:relative}nav.tabs a.active .tab-ico{background:var(--cloth-bg)}.field{flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}.field input{font:400 16px var(--sans);color:var(--ink);border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:11px 12px}.btn.ghost{color:var(--cloth);background:0 0;border-color:#0000}.btn:disabled{opacity:.6;cursor:default}a.btn{color:var(--ink);text-decoration:none}a.btn.primary{color:var(--cloth-ink)}.muted{color:var(--muted)}.small{font-size:14px}.error{color:var(--stamp);margin:8px 0 0;font-size:14px}.field select,.field textarea{font:400 16px var(--sans);color:var(--ink);border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%;padding:10px 12px}.field textarea{resize:vertical;min-height:72px}.field input.ttl{font-family:var(--serif);font-weight:600}.field .lbl{font-size:14px;font-weight:600}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}@media (width<=420px){.grid3{grid-template-columns:1fr 1fr}.grid3 .f-last{grid-column:span 2}}.page-head{justify-content:space-between;align-items:flex-end;gap:12px;margin:4px 0 16px;display:flex}.page-head p{margin:6px 0 0}.page-title{font:700 32px/1.1 var(--serif);letter-spacing:-.01em;margin:0}.btn.add{border-radius:22px;height:44px;padding:0 18px;font-weight:600}.search-wrap{margin-bottom:8px;position:relative}.search-wrap svg{color:var(--muted);pointer-events:none;position:absolute;top:14px;left:14px}.search{border:1px solid var(--line);background:var(--surface);width:100%;height:48px;font:inherit;color:var(--ink);border-radius:14px;padding:0 14px 0 44px}.search:focus{border-color:var(--cloth);box-shadow:0 0 0 1px var(--cloth);outline:none}.match-line{margin:6px 2px 0}.match-line strong{color:var(--ink);font-weight:600}.try-title{margin:0 0 4px}.try{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.file-btn{position:relative;overflow:hidden}.file-btn input{opacity:0;cursor:pointer;position:absolute;inset:0}.card.notice{background:var(--mustard-bg);color:var(--ink);border-color:#0000}.tag.lent,.tag.library,.tag.borrowed{text-transform:uppercase;letter-spacing:.03em;background:0 0;border:1.5px solid;border-radius:5px;padding:1px 6px;font-size:11px;font-weight:700}.tag.lent{color:var(--stamp)}.tag.library{color:var(--mustard)}.tag.borrowed{color:var(--blue)}.tag.facet{background:var(--paper);color:var(--muted);font-weight:500}.tag.match{background:var(--cloth-bg);color:var(--cloth);font-weight:600}.tag.overdue{background:var(--stamp);color:#fff}.m .tag,.unit .tag{margin-left:0}.unit{background:var(--surface);border:1px solid var(--line);border-radius:18px;margin:10px 0 16px;padding-bottom:6px;overflow:hidden}.unit-head{padding:14px 14px 0}.unit-head h3{margin:0;font-size:15px}.shelf-block{padding-top:10px}.shelf-cap{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;padding:0 14px;font-size:12px;display:flex}.shelf-name{font-weight:600}.link-btn{color:var(--cloth);background:0 0;border:0;min-height:32px;padding:0 0 0 12px;font-size:12px;font-weight:600}.shelf-wrap{-webkit-overflow-scrolling:touch;padding:6px 14px 4px;overflow-x:auto}.shelf{border-bottom:10px solid #b9a586;align-items:flex-end;gap:3px;width:max-content;min-width:100%;min-height:136px;padding:0 4px;display:flex;box-shadow:0 4px #9c8665}@media (prefers-color-scheme:dark){.shelf{border-bottom-color:#5a4c3a;box-shadow:0 4px #3f3528}}.spine{width:var(--w);height:var(--h);background:var(--c);color:#f4f1e8;border:0;border-radius:3px 3px 1px 1px;flex:none;justify-content:center;padding:8px 0;display:flex;position:relative;box-shadow:inset -3px 0 #0000002e,inset 2px 0 #ffffff14}.spine span{writing-mode:vertical-rl;font:600 11px/1.1 var(--serif);text-overflow:ellipsis;white-space:nowrap;max-height:100%;overflow:hidden;transform:rotate(180deg)}.spine:before{content:"";background:#ffffff38;height:5px;position:absolute;top:14px;left:0;right:0}.spine.lent{border:2px dashed var(--stamp);color:var(--stamp);box-shadow:none;background:0 0}.spine.lent:before{display:none}.spine.library:after,.spine.borrowed:after{content:"";height:14px;position:absolute;bottom:10px;left:0;right:0}.spine.library:after{background:var(--mustard)}.spine.library span,.spine.borrowed span{box-sizing:border-box;padding-top:20px}.spine.borrowed:after{background:var(--blue)}.shelf-empty{color:var(--muted);align-self:center;padding:0 6px 20px;font-size:14px}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin:2px 0 6px;font-size:13px;display:flex}.legend i{vertical-align:-2px;border-radius:2px;width:10px;height:14px;margin-right:6px;display:inline-block}.chips{gap:8px;margin:0 -18px;padding:2px 18px 10px;display:flex;overflow-x:auto}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;flex:none;padding:6px 12px;font-size:14px}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.list{background:var(--surface);border:1px solid var(--line);border-radius:18px;flex-direction:column;display:flex;overflow:hidden}.item{text-align:left;border:0;border-bottom:1px solid var(--line);background:0 0;align-items:flex-start;gap:14px;width:100%;padding:14px;display:flex}.item:last-child{border-bottom:0}.item .loc{color:var(--muted);align-items:center;gap:5px;margin-top:2px;font-size:13px;display:flex}.item .swatch{background:var(--c);border-radius:2px;flex:0 0 8px;align-self:stretch}.item .body{flex:1;min-width:0}.item .t{font:600 16px/1.3 var(--serif)}.item .a{color:var(--muted);font-size:14px}.item .m{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:4px;font-size:13px;display:flex}.sheet-bg{z-index:20;background:#0a101273;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;max-height:calc(100% - 40px - env(safe-area-inset-top,0px));padding:18px 18px calc(20px + env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0;overflow:auto}@media (width>=640px){.sheet-bg{align-items:center}.sheet{border-radius:18px}}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.sheet-head h2{margin:0}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg label{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:500}.seg input{opacity:0;pointer-events:none;position:absolute}.seg label:has(input:checked){background:var(--ink);color:var(--paper);border-color:var(--ink);font-weight:600}.seg label:has(input:focus-visible){outline:2px solid var(--cloth);outline-offset:2px}.scan-hero{padding:0}.photo-prev{object-fit:cover;border-radius:12px;width:100%;max-height:240px;margin-bottom:12px;display:block}.reading{align-items:center;gap:12px;margin:8px 0 14px;display:flex}.dots{gap:4px;display:inline-flex}.dots i{background:var(--cloth);border-radius:2px;width:6px;height:18px;animation:1s ease-in-out infinite bob}.dots i:nth-child(2){background:var(--blue);animation-delay:.15s}.dots i:nth-child(3){background:var(--stamp);animation-delay:.3s}@keyframes bob{0%,to{transform:scaleY(.5)}50%{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.dots i{animation:none}}.rv{border-bottom:1px solid var(--line);grid-template-columns:28px 1fr;gap:4px 10px;padding:12px 0;display:grid}.rv>input[type=checkbox]{width:20px;height:20px;accent-color:var(--cloth);margin-top:8px}.rv .inputs{gap:6px;display:grid}.rv .inputs input[type=text]{border:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;border-radius:8px;width:100%;padding:8px 10px}.rv .inputs input.ttl{font-family:var(--serif);font-weight:600}.rv .note{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.rv.off .inputs{opacity:.5}.tag.low{background:var(--mustard-bg);color:var(--mustard);margin-left:0}.checks{flex-direction:column;gap:8px;font-weight:400;display:flex}.checks label{align-items:center;gap:10px;font-size:15px;display:flex}.checks input{width:18px;height:18px;accent-color:var(--cloth)}.group-row{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 0;display:flex}.group-row .body{flex:1;min-width:0}.group-row h3{margin:0}.switch{background:var(--line);border:0;border-radius:999px;flex:none;width:46px;height:28px;position:relative}.switch:after{content:"";background:var(--surface);border-radius:50%;width:22px;height:22px;transition:left .15s;position:absolute;top:3px;left:3px}.switch[aria-checked=true]{background:var(--cloth)}.switch[aria-checked=true]:after{left:21px}.friend{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:10px 0;padding:14px}.friend h3{margin:0}.friend details{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}.friend summary{cursor:pointer;padding:4px 0;font-weight:600}.fbook{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;display:flex}.fbook:last-child{border-bottom:0}.fbook .t{font:600 15px/1.3 var(--serif)}.req{flex-direction:column;gap:6px;display:flex}.badge{box-sizing:border-box;background:var(--stamp);color:#fff;text-align:center;border-radius:999px;min-width:16px;padding:0 4px;font-size:11px;font-weight:600;line-height:16px;position:absolute;top:-2px;right:2px}.cover{object-fit:cover;background:var(--line);border-radius:3px 6px 6px 3px;flex:none;display:block;box-shadow:0 2px 6px #17262a40}.cover-ph{box-sizing:border-box;color:#f4f1e8;font:700 11px/1.1 var(--serif);overflow-wrap:anywhere;align-items:flex-end;padding:8px 6px;display:flex;overflow:hidden;box-shadow:0 2px 6px #17262a40,inset 3px 0 #00000024}.fbook-main{align-items:center;gap:10px;min-width:0;display:flex}.rv.has-cover{grid-template-columns:28px 44px 1fr}.rv>.cover{align-self:start}.scan-section{border:1px solid var(--line);background:var(--surface);border-radius:14px;margin:14px 0}.scan-section>summary{cursor:pointer;font:600 17px/1.3 var(--serif);flex-wrap:wrap;align-items:center;gap:4px 8px;padding:10px 10px 10px 14px;list-style:none;display:flex}.scan-section-title{white-space:nowrap;flex:1 0 auto}.scan-section-hint{margin:0;padding:0 14px 8px}.suggest-row{align-items:center;gap:10px;display:flex}.scan-section>summary::-webkit-details-marker{display:none}.scan-section>summary:before{content:"▸";width:1.1em;color:var(--muted);transition:transform .15s;display:inline-block}.scan-section[open]>summary:before{transform:rotate(90deg)}.scan-section .count{color:var(--muted);font:400 14px var(--sans)}.scan-section-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding:0 14px 8px;display:flex}.scan-section-actions{font:400 14px var(--sans);align-items:center;gap:2px;display:inline-flex}.srow{border-top:1px solid var(--line)}.srow.off .srow-text{opacity:.6}.srow-top{align-items:center;gap:8px;padding:8px 10px 8px 14px;display:flex}.srow-top>input[type=checkbox]{width:22px;height:22px;accent-color:var(--cloth);flex:none}.srow-main{text-align:left;min-width:0;color:inherit;background:0 0;border:0;flex:1;align-items:center;gap:10px;padding:4px 0;display:flex}.srow-nocover{background:var(--line);border-radius:3px;flex:0 0 34px;height:51px}.srow-text{flex-direction:column;gap:1px;min-width:0;display:flex}.srow-text .t{font:600 15px/1.3 var(--serif);text-overflow:ellipsis;overflow:hidden}.srow-text .a{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.srow-text .tags{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.srow-text .tags .tag{margin-left:0;padding:1px 6px;font-size:11px}.srow-edit{gap:8px;padding:4px 14px 14px 46px;display:grid}.srow-edit input[type=text],.srow-edit input:not([type]){border:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;border-radius:8px;width:100%;padding:8px 10px}.srow-edit input.ttl{font-family:var(--serif);font-weight:600}.btn.suggest{text-align:left;border-color:var(--cloth);color:var(--cloth);justify-self:start}.save-bar{bottom:calc(var(--tabs-h) + 12px + env(safe-area-inset-bottom,0px));background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:16px 0 0;padding:12px 14px;position:sticky;box-shadow:0 -4px 16px #17262a14}a.review-banner{color:inherit;text-decoration:none;display:block}.review-place{margin:22px 0 6px}.review-item{gap:8px;display:grid}.review-head{align-items:flex-start;gap:10px;display:flex}.review-fields{flex:1;gap:6px;min-width:0;display:grid}.review-fields input{border:1px solid var(--line);background:var(--paper);color:var(--ink);font:inherit;border-radius:8px;width:100%;padding:8px 10px}.review-fields input.ttl{font-family:var(--serif);font-weight:600}.prose{text-align:left;max-width:640px;margin:0 auto}.prose h3{margin-top:20px}.prose ul{padding-left:20px}.bs-hero{background:color-mix(in srgb, var(--c) 16%, var(--surface));justify-content:center;margin:4px -18px 14px;padding:22px 0;display:flex}.bs-hero .cover{box-shadow:0 10px 24px #17262a52}.sheet .card{border-radius:18px;margin:14px 0 0;padding:16px}.sheet .card .field{margin-top:8px}.card-title{font:600 16px/1.2 var(--serif);margin:0}.card-title label{font:inherit}.stamp-card{border:1.5px solid var(--stamp)}.stamp-title{font:600 20px/1.2 var(--serif);margin:10px 0 0}.stamp-card p{margin:4px 0 0}.stamp{letter-spacing:.04em;text-transform:uppercase;border:1.5px solid var(--stamp);color:var(--stamp);border-radius:5px;padding:3px 9px;font-size:12px;font-weight:700;display:inline-flex}.stamp.solid{background:var(--stamp);color:#fff}.btn.block{width:100%;margin-top:14px}.btn.grow{flex:1}.mini-shelf{border-bottom:8px solid #bca37c;align-items:flex-end;gap:3px;height:72px;margin-top:12px;padding:0 2px;display:flex;overflow:hidden;box-shadow:0 3px #9c8462}@media (prefers-color-scheme:dark){.mini-shelf{border-bottom-color:#5a4c3a;box-shadow:0 3px #3f3528}}.mini-shelf i{width:var(--w);height:var(--h);background:var(--c);border-radius:2px 2px 1px 1px;flex:none}.mini-shelf i.lent{border:2px dashed var(--stamp);box-sizing:border-box;background:0 0}.mini-shelf i.me{outline:2px solid var(--cloth);outline-offset:2px}.tag-group-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:14px 0 8px;font-size:12px;font-weight:600}.tchips{flex-wrap:wrap;gap:8px;display:flex}.tchip{background:var(--paper);border-radius:17px;align-items:center;height:34px;padding:0 4px 0 12px;font-size:14px;font-weight:500;display:inline-flex}.tchip.on-card{background:var(--blue-bg);color:var(--blue)}.tchip button{background:0 0;border:0;width:30px;height:30px;font-size:18px;line-height:1}.tag-add{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;align-items:end;gap:8px;margin:16px 0 10px;display:grid}.tag-add .field{color:var(--muted);font-size:12px;margin-top:0!important}.tag-add .btn{min-height:44px}.sw-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:56px;display:flex}.sw-row:last-child{border-bottom:0}.sheet-foot{margin:16px -18px calc(-20px - env(safe-area-inset-bottom,0px));padding:12px 18px calc(16px + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line);position:sticky;bottom:0}.sheet-foot .row-actions{flex-wrap:nowrap;margin-top:0}.sheet-foot .error{margin:0 0 8px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:4px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:14px;flex-direction:column;gap:2px;padding:10px 8px 9px;text-decoration:none;display:flex}.stat b{font:700 22px/1 var(--serif)}.stat span{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:flex}.stat i{border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.due-link{align-items:center;gap:10px;margin-top:12px;padding:11px 14px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.due-link span{flex:1}.due-link strong{font-weight:600;text-decoration:underline}.room-head{justify-content:space-between;align-items:baseline;gap:12px;margin:22px 0 10px;display:flex}.room-head h2{font:600 19px/1.2 var(--serif);margin:0}.sec-title{font:600 13px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:24px 0 10px}.avatar{width:44px;height:44px;font:700 15px var(--sans);border-radius:50%;flex:none;place-items:center;display:grid}.avatar.c0{background:var(--blue-bg);color:var(--blue)}.avatar.c1{background:var(--cloth-bg);color:var(--cloth)}.avatar.c2{background:var(--stamp-bg);color:var(--stamp)}.avatar.c3{background:var(--mustard-bg);color:var(--mustard)}.card.req{border-radius:18px;margin:0 0 10px;padding:14px}.req-top{align-items:flex-start;gap:12px;display:flex}.req-text{flex:1;min-width:0;font-size:15px;line-height:1.35}.req-title{font:600 16px/1.3 var(--serif);margin-top:2px}.req-quote{background:var(--paper);border-radius:10px;margin:8px 0 0;padding:8px 10px;font-size:14px}.req-actions{gap:8px;margin-top:12px;display:flex}.req-actions .btn{flex:1}.card.req .field{margin-top:12px}.search.plain{height:48px}.frow,.frow-static{border-bottom:1px solid var(--line)}.frow:last-child,.frow-static:last-child{border-bottom:0}.frow summary{cursor:pointer;align-items:center;gap:12px;min-height:64px;padding:10px 14px;list-style:none;display:flex}.frow summary::-webkit-details-marker{display:none}.frow summary:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);flex:none;width:8px;height:8px;margin-left:auto;transition:transform .15s;transform:rotate(-45deg)}.frow[open] summary:after{transform:rotate(45deg)}.frow-static{align-items:center;gap:12px;min-height:64px;padding:10px 14px;display:flex}.frow-text{flex-direction:column;flex:1;min-width:0;display:flex}.frow-name{font-size:16px;font-weight:600}.frow-body{padding:0 14px 12px}.code-card{background:var(--cloth-bg);color:var(--cloth);border-radius:18px;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:14px 16px;display:flex}.code-value{font:700 22px/1.2 var(--serif);letter-spacing:.06em;margin-top:2px}.auth{background:var(--paper);min-height:100vh}.auth-hero{box-sizing:border-box;background:#1f4a3e;height:320px;padding:30px 24px 0;position:relative}.auth-hero h1.brand{margin:0}.auth-tag{max-width:290px;font:500 18px/1.35 var(--serif);color:#dce9e3;margin:12px 0 0}.auth-shelf{border-bottom:10px solid #bca37c;align-items:flex-end;gap:3px;height:128px;display:flex;position:absolute;bottom:0;left:24px;right:24px;overflow:hidden;box-shadow:0 4px #9c8462}.auth-shelf i{box-sizing:border-box;border-radius:3px 3px 1px 1px;flex:none}.auth-panel{flex-direction:column;gap:14px;padding:26px 24px 40px;display:flex}.auth-panel h2{font:700 24px/1.15 var(--serif);margin:0 0 2px}.auth-panel .stack{gap:14px;margin:0}.auth-panel .field input{box-sizing:border-box;border-radius:12px;height:52px;padding:0 14px;font-size:16px}.auth-panel .btn.big{border-radius:14px;min-height:54px;margin-top:2px;font-size:17px;font-weight:600}.pw{position:relative}.pw input{width:100%;padding-right:72px!important}.pw-toggle{height:44px;color:var(--cloth);background:0 0;border:0;padding:0 12px;font-size:14px;font-weight:600;position:absolute;top:4px;right:4px}.auth-links{flex-direction:column;align-items:center;display:flex}.auth-note{text-align:center;margin:0;line-height:1.45}@media (width>=600px){.auth{border-radius:24px;max-width:440px;min-height:0;margin:6vh auto;overflow:hidden;box-shadow:0 12px 40px #17262a2e}}.side-brand,.side-foot{display:none}.narrow{max-width:760px;margin:0 auto}.cover.fluid{aspect-ratio:2/3;border-radius:4px 9px 9px 4px;width:100%;height:auto;box-shadow:0 6px 16px #17262a47}.cover-ph.fluid{padding:12px 10px;font-size:17px;box-shadow:0 6px 16px #17262a47,inset 5px 0 #00000029}.bcard{text-align:left;background:0 0;border:0;border-radius:14px;flex-direction:column;align-items:stretch;gap:6px;padding:8px;display:flex}.bcard.sel{outline:3px solid var(--cloth);outline-offset:-1px;background:var(--surface)}.bcard-t{font:600 15px/1.25 var(--serif);margin-top:4px}.bcard-a{color:var(--muted);font-size:13px}.bcard .m{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.bcard .m .tag{margin-left:0}.bpanel{background:var(--surface);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:14px;padding:22px 20px;display:flex;position:sticky;top:24px}.bpanel-top{align-items:flex-start;gap:14px;display:flex}.bpanel-top h3{font:700 20px/1.2 var(--serif);margin:0}.bpanel .tag-group-label{margin:0 0 6px}.bpanel .card{margin:0}.tchip.nobtn{padding-right:12px}.btn.outline{border:1.5px solid var(--cloth);color:var(--cloth);background:0 0}@media (width>=1024px){:root{--tabs-h:0px}body{padding-bottom:0}body.has-sidebar{padding-left:248px}header.top{display:none}main{max-width:1180px;padding:32px 40px 56px}nav.tabs{border-top:0;border-right:1px solid var(--line);flex-direction:column;justify-content:flex-start;gap:6px;width:248px;padding:28px 16px 20px;top:0;right:auto}nav.tabs a{border-radius:12px;flex-direction:row;flex:none;gap:12px;max-width:none;height:44px;padding:0 12px;font-size:15px}nav.tabs a.active{background:var(--cloth-bg)}nav.tabs a.active .tab-ico{background:0 0}.tab-ico{width:auto;height:auto}.badge{top:-6px;right:-10px}.side-brand{padding:0 10px 22px;display:block}.side-foot{border-top:1px solid var(--line);align-items:center;gap:10px;margin-top:auto;padding:14px 10px 0;display:flex}.side-who{flex-direction:column;min-width:0;font-size:14px;font-weight:600;display:flex}.side-foot .avatar{width:36px;height:36px;font-size:13px}nav.tabs .side-who a{background:0 0;border-radius:0;height:auto;padding:0;font-size:13px}.books-desktop{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:28px;display:grid}.book-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.page-head{margin-top:0}.stats{max-width:760px}}@media (width>=1360px){.book-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.card .photo-prev{border-radius:12px}.scan-card{border-radius:18px;padding:18px}.viewfinder{width:200px;max-width:100%;color:var(--cloth);margin:0 auto 14px;display:block}.tips{color:var(--muted);margin:8px 0 0;padding-left:20px;font-size:14px;line-height:1.6}.account-top{align-items:center;gap:12px;margin-bottom:14px;display:flex}.name-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.name-row .field input{box-sizing:border-box;border-radius:12px;height:48px}.card .sw-row{border:0;min-height:0}
