.snp{--snp-bg: var(--bg, #f7f4ee);--snp-surface: var(--surface, #fffdf9);--snp-stone: var(--stone, #ece6dc);--snp-line: var(--line, #ddd4c6);--snp-grid: var(--grid, #ebe3d7);--snp-text: var(--text, #2a211b);--snp-text-2: var(--text-2, #5c544b);--snp-muted: #756c61;--snp-accent: var(--brown, #4a3426);--snp-on-accent: var(--on-brown, #fff);--snp-warn: var(--warn, #75490f);--snp-warn-bg: var(--warn-bg, #f6ead8);--snp-err: var(--err, #8e2f22);--snp-err-bg: var(--err-bg, #f7e4df);--snp-hover: rgba(74, 52, 38, .07);--snp-c1: #2a78d6;--snp-c2: #eb6834;--snp-c3: #1baf7a;--snp-c4: #eda100;--snp-c0: #b5aea3;container-type:inline-size;color:var(--snp-text);font-size:15px;line-height:1.45}:root[data-theme=gece] .snp,:root[data-theme=dark] .snp{--snp-muted: #a3988a;--snp-hover: rgba(226, 201, 166, .08);--snp-c1: #3987e5;--snp-c2: #d95926;--snp-c3: #199e70;--snp-c4: #c98500;--snp-c0: #6d665d}@media(prefers-color-scheme:dark){:root[data-snp-auto]:not([data-theme=light]) .snp{--snp-muted: #a3988a;--snp-hover: rgba(226, 201, 166, .08);--snp-c1: #3987e5;--snp-c2: #d95926;--snp-c3: #199e70;--snp-c4: #c98500;--snp-c0: #6d665d}}.snp *,.snp *:before,.snp *:after{box-sizing:border-box}.snp button,.snp input,.snp select{font:inherit;color:inherit}.snp-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;margin:0 0 16px;color:var(--snp-text-2);font-size:13px}.snp-chk{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--snp-text)}.snp-chk input{width:17px;height:17px;accent-color:var(--snp-accent);margin:0}.snp-card{background:var(--snp-surface);border:1px solid var(--snp-line);border-radius:14px;padding:18px;margin:0 0 16px;box-shadow:none}.snp-h2{font-family:var(--serif, ui-serif, Georgia, serif);font-size:19px;font-weight:600;line-height:1.25;margin:0 0 4px;color:var(--snp-text)}.snp-sub{margin:0 0 14px;color:var(--snp-text-2);font-size:13px}.snp-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.snp-tile{background:var(--snp-bg);border-radius:12px;padding:12px 14px}.snp-v{font-size:26px;font-weight:650;line-height:1.15;font-variant-numeric:tabular-nums}.snp-k{font-size:13px;color:var(--snp-text-2);margin-top:2px}.snp-x{font-size:12px;color:var(--snp-muted);margin-top:2px}.snp-split{display:flex;height:14px;border-radius:99px;overflow:hidden;background:var(--snp-stone);gap:2px;margin:4px 0 14px}.snp-split span{display:block;height:100%;min-width:3px}.snp-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:6px 18px;margin:0;padding:0;list-style:none}.snp-legend li{display:flex;align-items:center;gap:8px;font-size:14px}.snp-lbl{white-space:nowrap}.snp-n{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:600}.snp-p{color:var(--snp-muted);font-size:13px;min-width:42px;text-align:right;font-variant-numeric:tabular-nums}.snp-sw{display:inline-block;width:11px;height:11px;border-radius:3px;flex:none}.snp-legend-inline{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 10px;padding:0;list-style:none;font-size:13px;color:var(--snp-text-2)}.snp-legend-inline li{display:inline-flex;align-items:center;gap:6px}.snp-note{font-size:12.5px;color:var(--snp-muted);margin:12px 0 0}.snp-bg-c1,.snp-c1{background:var(--snp-c1);fill:var(--snp-c1)}.snp-bg-c2,.snp-c2{background:var(--snp-c2);fill:var(--snp-c2)}.snp-bg-c3,.snp-c3{background:var(--snp-c3);fill:var(--snp-c3)}.snp-bg-c4,.snp-c4{background:var(--snp-c4);fill:var(--snp-c4)}.snp-bg-c0,.snp-c0{background:var(--snp-c0);fill:var(--snp-c0)}.snp-chart-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px}.snp-linkbtn{background:none;border:0;padding:0;color:var(--snp-text-2);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-size:13px}.snp-chart{position:relative;width:100%}.snp-svg{display:block;width:100%;height:auto;overflow:visible}.snp-gridline{stroke:var(--snp-grid);stroke-width:1}.snp-axis{fill:var(--snp-muted);font-size:11px;font-variant-numeric:tabular-nums}.snp-hit{fill:transparent;cursor:default;outline:none}.snp-hit.snp-on{fill:var(--snp-hover)}.snp-tip{position:absolute;z-index:3;pointer-events:none;background:var(--snp-surface);color:var(--snp-text);border:1px solid var(--snp-line);border-radius:10px;padding:8px 10px;font-size:13px;box-shadow:0 6px 18px #0000001f;min-width:160px}.snp-tip[hidden]{display:none}.snp-tip-t{font-weight:600;margin-bottom:4px}.snp-tip-r{display:flex;align-items:center;gap:6px}.snp-tip-n{margin-left:auto;padding-left:12px;font-variant-numeric:tabular-nums;font-weight:600}.snp-empty{color:var(--snp-text-2);font-size:14px;padding:18px 0;margin:0}.snp-tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--snp-line);border-radius:12px}.snp-table{width:100%;border-collapse:collapse;font-size:13.5px;margin:0}.snp-table th,.snp-table td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--snp-line);vertical-align:top}.snp-table tr:last-child td{border-bottom:0}.snp-table th{position:sticky;top:0;background:var(--snp-stone);font-weight:600;font-size:12.5px;color:var(--snp-text-2);white-space:nowrap}.snp-sort{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer}.snp-dir{opacity:.7;margin-left:3px}.snp-table .snp-num{text-align:right;font-variant-numeric:tabular-nums}.snp-nowrap{white-space:nowrap}.snp-wrap{overflow-wrap:anywhere}.snp-table tbody tr:hover td{background:var(--snp-hover)}.snp-badge{display:inline-block;font-size:11px;font-weight:600;padding:1px 7px;border-radius:99px;background:var(--snp-stone);color:var(--snp-text-2);margin-left:6px;vertical-align:1px}.snp-badge-warn{background:var(--snp-warn-bg);color:var(--snp-warn)}.snp-badge-err{background:var(--snp-err-bg);color:var(--snp-err)}.snp-chip{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.snp-est{color:var(--snp-muted);margin-left:2px;cursor:help}.snp-dim{color:var(--snp-muted)}.snp-days .snp-today td{font-weight:600;background:var(--snp-bg)}.snp-days .snp-s,.snp-note.snp-s{display:none}@media(max-width:560px){.snp-days .snp-l,.snp-days .snp-wide{display:none}.snp-days .snp-s{display:inline}.snp-note.snp-s{display:block}.snp-days th,.snp-days td{padding:8px 6px;font-size:13px}.snp-days th:first-child,.snp-days td:first-child{padding-left:10px}}.snp-small{font-size:12px;color:var(--snp-muted)}.snp-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 12px}.snp-field{height:36px;border:1px solid var(--snp-line);background:var(--snp-bg);border-radius:10px;padding:0 12px;min-width:0;color:var(--snp-text)}.snp-search{flex:1 1 220px}.snp-btn{display:inline-flex;align-items:center;height:34px;padding:0 14px;border-radius:99px;border:1px solid var(--snp-line);background:transparent;color:var(--snp-text);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}.snp-btn:disabled{opacity:.6;cursor:default}.snp-count{color:var(--snp-text-2);font-size:13px;margin-left:auto}.snp-btn:focus-visible,.snp-chk input:focus-visible,.snp-field:focus-visible,.snp-hit:focus-visible,.snp-sort:focus-visible,.snp-linkbtn:focus-visible{outline:2px solid var(--snp-c1);outline-offset:2px}.snp-social .snp-quiet td{color:var(--snp-muted)}.snp-social .snp-total td{font-weight:600;background:var(--snp-bg)}.snp-link{font-size:12.5px;color:var(--snp-text-2);margin-right:8px}.snp-btn-s{height:28px;padding:0 10px;font-size:12.5px}@container (max-width: 700px){.snp-social-wrap{border:0;border-radius:0;overflow:visible}.snp-social thead{display:none}.snp-social,.snp-social tbody{display:block}.snp-social tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;padding:12px;margin:0 0 8px;border:1px solid var(--snp-line);border-radius:12px;background:var(--snp-bg)}.snp-social.snp-table td{display:block;padding:0;border:0;text-align:left;background:none}.snp-social .snp-s-ch{grid-column:1 / -1}.snp-social .snp-s-n:before{content:attr(data-l);display:block;color:var(--snp-muted);font-size:11.5px;font-weight:400}.snp-social .snp-s-link{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}.snp-social .snp-s-empty{display:none}.snp-social .snp-total{background:var(--snp-stone)}}.snp-accounts .snp-table{min-width:960px}.snp-accounts .snp-c-source{max-width:180px;overflow-wrap:anywhere}.snp-accounts .snp-c-name{min-width:130px}.snp-accounts .snp-c-used{min-width:170px}@container (max-width: 700px){.snp-accounts{border:0;border-radius:0;overflow:visible}.snp-accounts .snp-table{min-width:0}.snp-accounts thead{display:none}.snp-accounts .snp-table,.snp-accounts tbody{display:block}.snp-accounts tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 12px;padding:12px;margin:0 0 8px;border:1px solid var(--snp-line);border-radius:12px;background:var(--snp-bg)}.snp-accounts .snp-table tbody tr:hover td{background:none}.snp-accounts .snp-table td{display:block;padding:0;border:0;text-align:left;white-space:normal;min-width:0;font-size:13.5px}.snp-accounts td[data-l]:before{content:attr(data-l) " ";color:var(--snp-muted);font-size:12px;margin-right:4px}.snp-accounts .snp-c-name{grid-column:1;grid-row:1;font-weight:600;font-size:15px}.snp-accounts .snp-c-plat{grid-column:2;grid-row:1;justify-self:end}.snp-accounts .snp-c-contact{grid-column:1 / -1;grid-row:2;display:flex;gap:8px;align-items:baseline}.snp-accounts .snp-c-created,.snp-accounts .snp-c-used,.snp-accounts .snp-c-seen{grid-column:1 / -1}.snp-accounts .snp-c-books{grid-column:1}.snp-accounts .snp-c-friends{grid-column:2;justify-self:end}.snp-accounts .snp-c-days{grid-column:1 / -1}.snp-accounts .snp-c-source,.snp-accounts .snp-c-country{grid-column:1 / -1;max-width:none}.snp-accounts .snp-empty-m{display:none}}@container (max-width: 560px){.snp-v{font-size:22px}.snp-card{padding:14px}.snp-count{margin-left:0;width:100%}.snp-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.snp-legend{grid-template-columns:minmax(0,1fr)}}.snp .snp-late td{color:#9b2c1f;font-weight:600}.snp .snp-late td:last-child{font-weight:400}.snp .snp-missing td{vertical-align:top}.snp .snp-missing code{font-size:13px;letter-spacing:.02em}.snp .snp-links{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:4px;font-size:12px}.snp .snp-links a{color:var(--snp-accent)}.snp .snp-ok{color:#45633a;font-weight:600;font-size:13px}.snp .snp-muted{color:var(--snp-muted);font-size:12px}.snp .snp-btn-sm{font:inherit;font-size:13px;font-weight:600;padding:5px 10px;border-radius:8px;border:1px solid var(--snp-accent);background:var(--snp-accent);color:var(--snp-on-accent);cursor:pointer;white-space:nowrap}.snp .snp-form-row td{background:var(--snp-bg)}.snp .snp-form{display:grid;gap:8px;max-width:640px;padding:6px 0}.snp .snp-fld{display:grid;gap:3px;font-size:13px;color:var(--snp-text-2)}.snp .snp-fld-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.snp .snp-in{font:inherit;font-size:15px;padding:7px 9px;border:1px solid var(--snp-line);border-radius:8px;background:var(--snp-surface);color:var(--snp-text);min-width:0}.snp .snp-form-actions{display:flex;gap:8px;align-items:center}.snp .snp-form .snp-btn{font:inherit;font-weight:600;padding:8px 14px;border-radius:8px;border:0;background:var(--snp-accent);color:var(--snp-on-accent);cursor:pointer}.snp .snp-btn-ghost{font:inherit;padding:8px 12px;border-radius:8px;border:1px solid var(--snp-line);background:transparent;color:var(--snp-text);cursor:pointer}.snp .snp-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:4px 0 12px}.snp .snp-bulk .snp-note{flex-basis:100%;margin:0}.snp .snp-curated{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.snp .snp-curated .snp-btn-ghost{padding:4px 9px;font-size:13px}.snp .snp-tabs{position:sticky;top:var(--snp-sticky-top, 0px);z-index:4;display:flex;gap:4px;margin:0 0 16px;padding:6px 0;overflow-x:auto;scrollbar-width:none;background:var(--snp-bg);border-bottom:1px solid var(--snp-line)}.snp .snp-tabs::-webkit-scrollbar{display:none}.snp .snp-tab{flex:none;display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:14px;font-weight:600;padding:8px 14px;border-radius:99px;border:1px solid transparent;background:transparent;color:var(--snp-text-2);cursor:pointer;white-space:nowrap}.snp .snp-tab:hover{background:var(--snp-hover);color:var(--snp-text)}.snp .snp-tab:focus-visible{outline:2px solid var(--snp-accent);outline-offset:1px}.snp .snp-tab-on,.snp .snp-tab-on:hover{background:var(--snp-accent);color:var(--snp-on-accent)}.snp .snp-tab-badge{min-width:20px;padding:0 6px;border-radius:10px;font-size:12px;line-height:20px;text-align:center;background:var(--snp-warn-bg);color:var(--snp-warn)}.snp .snp-tab-badge-late{background:var(--snp-err-bg);color:var(--snp-err)}.snp .snp-tab-n{font-size:12px;font-weight:500;opacity:.75}@media(max-width:520px){.snp .snp-tab{padding:7px 11px;font-size:13.5px}}.snp .snp-verdict{margin:12px 0;padding:10px 12px;border-radius:10px;font-size:14px;line-height:1.45;background:var(--snp-bg);color:var(--snp-text)}.snp .snp-verdict.snp-good{background:#e6f0e1;color:#2f5226}.snp .snp-verdict.snp-warn{background:var(--snp-warn-bg);color:var(--snp-warn)}.snp .snp-verdict.snp-bad{background:var(--snp-err-bg);color:var(--snp-err)}.snp .snp-cohorts td.snp-ok{color:#2f5226;font-weight:600}.snp .snp-cohorts td.snp-mid{color:var(--snp-warn);font-weight:600}.snp .snp-cohorts td.snp-low{color:var(--snp-err);font-weight:600}:root[data-theme=gece] .snp .snp-verdict.snp-good,:root[data-theme=dark] .snp .snp-verdict.snp-good{background:#78aa6e29;color:#a9d39d}:root[data-theme=gece] .snp .snp-cohorts td.snp-ok,:root[data-theme=dark] .snp .snp-cohorts td.snp-ok{color:#a9d39d}@media(prefers-color-scheme:dark){:root[data-snp-auto] .snp .snp-verdict.snp-good{background:#78aa6e29;color:#a9d39d}:root[data-snp-auto] .snp .snp-cohorts td.snp-ok{color:#a9d39d}}.snp .snp-cohorts th,.snp .snp-cohorts td{white-space:nowrap}.snp-types{margin:12px 0 0;padding-left:18px;columns:2;column-gap:24px;font-size:14px;line-height:1.6}.snp-tile-btn{cursor:pointer;outline:2px solid transparent;transition:outline-color .15s}.snp-tile-btn:hover,.snp-tile-btn:focus-visible{outline-color:var(--snp-accent, #4a3426)}.snp-tile-btn .snp-x{font-weight:600}.snp-filter-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 8px;scroll-margin-top:calc(var(--snp-sticky-top, 0px) + 56px)}.snp-pend{border:1px solid var(--snp-line, #e6ded3);border-radius:12px;padding:12px 14px;margin:0 0 10px}.snp-pend-title{font-weight:600;margin-bottom:4px}.snp-pend-meta{font-size:13px;color:var(--snp-muted, #6b5f55);margin-bottom:6px;word-break:break-all}.snp-pend-reason{font-size:13px;margin-bottom:10px}.snp-pend-actions{display:flex;gap:8px;flex-wrap:wrap}.snp-link-btn{background:none;border:0;padding:0;font:inherit;font-size:12px;font-weight:600;color:var(--snp-accent);text-decoration:underline;cursor:pointer}.snp-form-row .snp-form,.snp-form-row .snp-note{position:sticky;left:0;max-width:min(640px,calc(100vw - 72px))}.snp .snp-cands{margin:8px 0 0;padding-left:18px;font-size:13px}.snp .snp-cands li{margin:0 0 8px}.snp .snp-cand-actions{display:inline-flex;gap:6px;flex-wrap:wrap;margin-left:6px;vertical-align:middle}.snp .snp-fix-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.snp .snp-fix-form .snp-fld{flex:1 1 200px;margin:0}.snp section.snp-card[id]{scroll-margin-top:calc(var(--snp-sticky-top, 0px) + 56px)}.snp .snp-fix-form>.snp-note{flex-basis:100%;margin:0}:root{--bg: #f7f4ee;--surface: #fffdf9;--stone: #ece6dc;--stone-2: #e3dbcf;--line: #ddd4c6;--warm-gray: #8c8378;--text: #2a211b;--text-2: #5c544b;--brown: #4a3426;--brown-2: #36251a;--brown-soft: #ede3d6;--bronze: #8a6a45;--warn: #75490f;--warn-bg: #f6ead8;--err: #8e2f22;--err-bg: #f7e4df;--ok: #45633a;--ok-bg: #e6eddf;--ai: #574f72;--ai-bg: #ebe8f1;--data: #a0582c;--data-strong: #7a3f1d;--data-track: #f1e0d2;--grid: #ebe3d7;--on-brown: #fff;--radius: 14px;--radius-sm: 10px;--shadow: 0 1px 2px rgba(42, 33, 27, .06), 0 6px 18px rgba(42, 33, 27, .06);--shadow-cover: 0 1px 1px rgba(42, 33, 27, .12), 0 4px 10px rgba(42, 33, 27, .12);--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--serif: ui-serif, "New York", "Iowan Old Style", Charter, Georgia, "Times New Roman", serif;--nav-h: 62px;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}body.sheet-open{overflow:hidden}body:before{content:"";position:fixed;top:0;left:0;right:0;height:var(--safe-t);background:var(--bg);z-index:45;pointer-events:none}body.sheet-open .toasts{bottom:auto;top:calc(10px + var(--safe-t))}body.sheet-open .toast:not(.toast-error){display:none}a{color:var(--brown)}img{max-width:100%}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}h1{font-family:var(--serif);font-size:30px;line-height:1.15}p{margin:.35em 0}hr{border:0;border-top:1px solid var(--line);margin:18px 0}button{font:inherit;color:inherit}:focus-visible{outline:3px solid rgba(74,52,38,.45);outline-offset:2px;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--text-2)}.small{font-size:14px}.tiny{font-size:12px}.center{text-align:center}.block{display:block}.grow{flex:1;min-width:0}.push{margin-left:auto}.row{display:flex;align-items:center}.row.gap{gap:10px}.row.wrap{flex-wrap:wrap}.row.end{justify-content:flex-end}.stack{display:grid;gap:10px}.mt{margin-top:16px}.mt-s{margin-top:8px}.mb{margin-bottom:16px}.mb-s{margin-bottom:8px}.pad-y{padding:12px 0}.full{width:100%}.mono{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px}.ok-text{color:var(--ok)}.error-text{color:var(--err)}.warn-text{color:var(--warn)}.danger-text{color:var(--err)!important}.shell{min-height:100vh}.main{padding-bottom:calc(var(--nav-h) + var(--safe-b) + 24px)}.page{max-width:1080px;margin:0 auto;padding:calc(14px + var(--safe-t)) 16px 24px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:8px 0 16px}.nav{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:stretch;justify-content:space-around;height:calc(var(--nav-h) + var(--safe-b));padding-bottom:var(--safe-b);background:#f7f4eef0;backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-top:1px solid var(--line)}.nav-brand{display:none}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--warm-gray);text-decoration:none;font-size:11px;font-weight:500;min-width:0}.nav-item.active{color:var(--brown)}.nav-icon{position:relative;display:grid;place-items:center}.nav-primary .nav-icon{width:50px;height:50px;border-radius:50%;background:var(--brown);color:var(--on-brown);margin-top:-18px;box-shadow:0 6px 16px #36251a52}.nav-primary.active .nav-icon{background:var(--brown-2)}.nav-primary .nav-label{margin-top:1px}.nav-badge{position:absolute;top:-6px;right:-12px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--bronze);color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center}@media(min-width:900px){.main{padding-bottom:40px;margin-left:232px}.nav{top:0;right:auto;width:232px;height:auto;flex-direction:column;justify-content:flex-start;gap:4px;padding:22px 14px;border-top:0;border-right:1px solid var(--line);background:var(--bg)}.nav-brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:22px;font-weight:600;padding:0 10px 18px;order:-2}.nav-item{position:relative;flex:none;flex-direction:row;justify-content:flex-start;gap:12px;padding:10px 12px;border-radius:10px;font-size:15px}.nav-icon{position:static}.nav-item.active,.nav-item:hover{background:var(--stone)}.nav-primary{order:-1;margin-bottom:10px;background:var(--brown);color:var(--on-brown)!important}.nav-primary:hover,.nav-primary.active{background:var(--brown-2)}.nav-primary .nav-icon{width:auto;height:auto;margin:0;background:none;box-shadow:none}.nav-badge{top:50%;right:12px;transform:translateY(-50%)}.page{padding-top:28px;padding-left:28px;padding-right:28px}}.offline-bar{display:flex;align-items:center;gap:8px;justify-content:center;padding:calc(8px + var(--safe-t)) 12px 8px;background:var(--warn-bg);color:var(--warn);font-size:13px}.topbar{display:flex;align-items:center;gap:8px;margin:0 -6px 4px}.splash{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:14px;padding:24px;text-align:center}.splash-detail{max-width:360px;word-break:break-word;opacity:.7;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border-radius:12px;border:1px solid transparent;font-size:15px;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background .15s,transform .05s}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default}.btn.lg{min-height:52px;font-size:16px}.btn.full{white-space:normal;text-align:center;line-height:1.25;padding-top:8px;padding-bottom:8px}.result>*,.form>*,.sheet-body>*{min-width:0}.btn.small{min-height:36px;padding:0 12px;font-size:14px}.btn-primary{background:var(--brown);color:var(--on-brown)}.btn-primary:hover{background:var(--brown-2)}.btn-soft{background:var(--stone);color:var(--text)}.btn-soft:hover{background:var(--stone-2)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--line)}.btn-ghost:hover{background:var(--stone)}.btn-light{background:#fff;color:var(--brown-2)}.btn-danger{background:var(--err);color:#fff}.btn .count-badge{background:var(--brown);color:var(--on-brown);border-radius:10px;font-size:12px;padding:0 7px;line-height:20px}.icon-btn{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;background:transparent;border:0;color:var(--text);cursor:pointer}.icon-btn:hover{background:var(--stone)}.icon-btn.sm{width:34px;height:34px}.link-btn{background:none;border:0;padding:4px 0;color:var(--brown);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;display:inline-flex;align-items:center;gap:4px}.link-btn.tiny{font-size:12px;font-weight:500}.form{display:grid;gap:14px}.field{display:grid;gap:6px}.field label,.label{font-size:14px;font-weight:600;color:var(--text)}.field-msg{font-size:13px;color:var(--text-2)}.field-msg.error{color:var(--err)}.input,.select{width:100%;min-height:46px;padding:10px 12px;font:inherit;font-size:16px;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);appearance:none;-webkit-appearance:none}.select{width:auto;min-height:40px;padding:6px 30px 6px 10px;font-size:14px;background-image:linear-gradient(45deg,transparent 50%,var(--text-2) 50%),linear-gradient(135deg,var(--text-2) 50%,transparent 50%);background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-size:5px 5px;background-repeat:no-repeat}select.input{background-image:linear-gradient(45deg,transparent 50%,var(--text-2) 50%),linear-gradient(135deg,var(--text-2) 50%,transparent 50%);background-position:calc(100% - 17px) 52%,calc(100% - 12px) 52%;background-size:5px 5px;background-repeat:no-repeat}textarea.input{min-height:90px;resize:vertical;line-height:1.45}.input:focus,.select:focus{outline:none;border-color:var(--brown);box-shadow:0 0 0 3px #4a342624}.field-error .input,.input.invalid{border-color:var(--err)}.input-xl{font-size:24px;letter-spacing:.06em;min-height:58px;font-variant-numeric:tabular-nums}.input-narrow{width:90px;flex:none}.grid-2{display:grid;gap:14px;grid-template-columns:1fr}@media(min-width:560px){.grid-2{grid-template-columns:1fr 1fr}}.form-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;margin-top:4px}.check{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.check input{width:20px;height:20px;margin-top:1px;accent-color:var(--brown);flex:none}.inline-form{display:grid;gap:10px;margin-top:14px;padding:12px;border-radius:var(--radius-sm);background:var(--stone)}.note{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-sm);background:var(--stone);color:var(--text);margin:8px 0;font-size:14px}.note-error{background:var(--err-bg);color:var(--err)}.note-warn{background:var(--warn-bg);color:var(--warn);display:block}.note-info{background:var(--brown-soft);color:var(--brown-2);display:block}.ai-note{display:flex;gap:6px;align-items:flex-start;color:var(--ai);background:var(--ai-bg);padding:8px 10px;border-radius:10px;margin:8px 0 0}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:0 1px #2a211b05}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.card-title{font-size:17px;display:flex;align-items:center;gap:8px}.section-title{font-size:17px;margin:22px 0 10px;display:flex;align-items:center;gap:8px}.count-pill{background:var(--stone);color:var(--text-2);border-radius:10px;padding:0 8px;font-size:13px;line-height:22px;font-weight:600}.cover{position:relative;aspect-ratio:2 / 3;width:100%;border-radius:3px 6px 6px 3px;overflow:hidden;background:var(--stone);box-shadow:var(--shadow-cover);flex:none;border:1px solid rgba(42,33,27,.06)}.cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .2s}.cover img.loaded{opacity:1}.cover:after{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:linear-gradient(90deg,#0000001f,#fff0);pointer-events:none}.cover-blank{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:12% 11% 10% 14%;color:var(--brown-2)}.cover-blank-title{font-family:var(--serif);font-weight:600;font-size:14px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.cover-blank-author{font-size:11px;color:var(--text-2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cover-fluid{width:100%}.cover-xs{width:44px}.cover-xs .cover-blank{padding:5px 4px 4px 6px}.cover-xs .cover-blank-title{font-size:7px;-webkit-line-clamp:4}.cover-xs .cover-blank-author{display:none}.cover-sm{width:64px}.cover-sm .cover-blank-title{font-size:9px}.cover-sm .cover-blank-author{font-size:8px}.cover-md{width:112px}.cover-md .cover-blank-title{font-size:13px}.cover-lg{width:150px}.cover-lg .cover-blank-title{font-size:16px}.cover-lg .cover-blank-author{font-size:12px}@media(min-width:600px){.cover-fluid .cover-blank-title{font-size:15px}.cover-fluid .cover-blank-author{font-size:12px}}.loc{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:7px;background:var(--brown-soft);color:var(--brown-2);font-weight:700;font-size:13px;letter-spacing:.02em;font-variant-numeric:tabular-nums;white-space:nowrap}.loc-sm{height:21px;font-size:12px;padding:0 6px}.loc-md{height:28px;font-size:14px;padding:0 10px}.loc-none{background:transparent;color:var(--text-2);border:1px dashed var(--line);font-weight:500}.loc-big{font-size:34px;line-height:1.1;font-weight:700;color:var(--brown);letter-spacing:.01em;font-variant-numeric:tabular-nums}.loc-big.none{font-size:22px;color:var(--text-2);font-weight:600}.loc-list{display:flex;gap:6px;flex-wrap:wrap}.search-bar{position:sticky;top:0;z-index:20;background:var(--bg);padding:calc(8px + var(--safe-t)) 0 8px;margin:-8px 0 8px}@media(min-width:900px){.search-bar{padding-top:10px}}.search-field{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:0 6px 0 14px;color:var(--text-2)}.search-field:focus-within{border-color:var(--brown);box-shadow:0 0 0 3px #4a34261f}.search-field input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:17px;min-height:50px;color:var(--text)}.search-field input::-webkit-search-cancel-button{display:none}.toolbar{display:flex;gap:8px;align-items:center;margin-top:10px}.toolbar .select-wrap{margin-left:auto}.view-toggle{display:flex;background:var(--stone);border-radius:12px;padding:3px}.view-toggle button{width:40px;height:38px;border:0;background:transparent;border-radius:9px;color:var(--text-2);display:grid;place-items:center;cursor:pointer}.view-toggle button.active{background:var(--surface);color:var(--brown);box-shadow:0 1px 2px #00000014}.active-filters{margin-top:10px;align-items:center}.result-count{margin:0 0 10px}.search-mini{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:0 12px;background:var(--surface);color:var(--text-2)}.search-mini input{flex:1;border:0;outline:0;background:transparent;font:inherit;font-size:16px;min-height:44px;color:var(--text)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border-radius:19px;border:1px solid var(--line);background:var(--surface);color:var(--text);font-size:14px;cursor:pointer}.chip:hover{border-color:var(--warm-gray)}.chip-active{background:var(--brown);border-color:var(--brown);color:var(--on-brown)}.chip-active:hover{border-color:var(--brown-2)}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:20px 12px}@media(min-width:600px){.book-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:26px 18px}}.book-card{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit;min-width:0}.book-card-cover{position:relative}.book-card:hover .cover{transform:translateY(-2px);box-shadow:0 2px 4px #2a211b24,0 10px 22px #2a211b24}.book-card .cover{transition:transform .15s,box-shadow .15s}.book-card-title{font-size:14px;font-weight:600;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.book-card-author{font-size:13px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-card-loc{display:flex;align-items:center;gap:6px;margin-top:2px}.dot-flag{position:absolute;top:6px;right:6px;width:10px;height:10px;border-radius:50%;background:var(--bronze);border:2px solid var(--surface)}.book-list{display:grid;grid-template-columns:minmax(0,1fr);gap:2px}.list-row{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:12px;text-decoration:none;color:inherit;min-height:64px}.list-row:hover{background:var(--stone)}.list-row-main{flex:1;min-width:0}.list-row-title{font-weight:600;font-size:15px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.list-row-sub{font-size:13px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-row-loc{display:grid;gap:4px;justify-items:end}.list-row.selectable{cursor:pointer}.list-row.selectable input{width:22px;height:22px;accent-color:var(--brown);flex:none}.list-row.selected{background:var(--brown-soft)}.select-all{padding:8px}.load-more{display:grid;place-items:center;padding:24px}.empty{text-align:center;padding:40px 16px;max-width:460px;margin:0 auto}.empty-icon{width:64px;height:64px;border-radius:20px;background:var(--stone);color:var(--brown);display:grid;place-items:center;margin:0 auto 14px}.empty h3{font-family:var(--serif);font-size:21px;margin-bottom:6px}.empty-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}.empty-shelly{padding-top:16px}.shelly{display:block;margin:0 auto 4px;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.shelly-hello{display:flex;align-items:center;gap:10px;margin:4px 0 10px}.shelly-hello .shelly{margin:0;flex:none}.shelly-hello p{margin:0}.spinner{display:inline-block;width:26px;height:26px;border-radius:50%;border:3px solid var(--stone-2);border-top-color:var(--brown);animation:spin .8s linear infinite;flex:none}.spinner-sm{width:16px;height:16px;border-width:2px}.btn-primary .spinner,.btn-danger .spinner{border-color:#ffffff59;border-top-color:#fff}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--stone) 0%,var(--stone-2) 50%,var(--stone) 100%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:8px}.skeleton.line{height:14px;margin:10px 0}.skeleton.cover-md{width:112px;aspect-ratio:2/3}.skeleton.cover-lg{width:150px;aspect-ratio:2/3;margin:0 auto 16px}.w80{width:80%}.w60{width:60%}.w50{width:50%}@keyframes shimmer{to{background-position:-200% 0}}.sheet-backdrop{position:fixed;inset:0;z-index:100;background:#241a1361;display:flex;align-items:flex-end;justify-content:center;animation:fade .18s ease-out}.sheet{width:100%;max-height:calc(100vh - 28px - var(--safe-t));display:flex;flex-direction:column;background:var(--bg);border-radius:20px 20px 0 0;box-shadow:0 -8px 30px #241a132e;animation:up .24s cubic-bezier(.2,.8,.2,1);padding-bottom:var(--safe-b)}.sheet-handle{width:40px;height:5px;border-radius:3px;background:var(--stone-2);margin:8px auto 0;flex:none}.sheet-head{display:flex;align-items:center;gap:8px;padding:8px 10px 4px 18px;flex:none}.sheet-title{flex:1;font-family:var(--serif);font-size:21px}.sheet-body{padding:6px 18px 18px;overflow-y:auto;-webkit-overflow-scrolling:touch}.sheet-foot{display:flex;gap:10px;padding:12px 18px 14px;border-top:1px solid var(--line);background:var(--bg);flex:none}.sheet-foot .grow{flex:1}@media(min-width:700px){.sheet-backdrop{align-items:center;padding:24px}.sheet{max-width:560px;border-radius:20px;max-height:88vh;padding-bottom:0}.sheet-wide{max-width:720px}.sheet-handle{display:none}.sheet-head{padding-top:14px}}@keyframes up{0%{transform:translateY(40px);opacity:.4}}@keyframes fade{0%{opacity:0}}.toasts{position:fixed;left:50%;transform:translate(-50%);bottom:calc(var(--nav-h) + var(--safe-b) + 34px);z-index:200;display:grid;gap:6px;width:min(520px,calc(100vw - 24px));pointer-events:none}@media(min-width:900px){.toasts{bottom:24px;left:calc(50% + 116px)}}.toast{pointer-events:auto;display:flex;align-items:center;gap:12px;justify-content:space-between;background:#2e2119;color:#fff;padding:9px 10px 9px 14px;min-height:44px;border-radius:12px;box-shadow:0 6px 18px #00000029;font-size:14px;animation:up .2s ease-out}.toast-error{background:#6f2419}.toast-action{background:none;border:0;color:#f1d9b5;font-weight:700;cursor:pointer;padding:6px 4px}.segmented{display:flex;background:var(--stone);border-radius:13px;padding:4px;gap:4px;margin:0 0 14px}.segmented button{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;min-height:42px;border:0;border-radius:10px;background:transparent;color:var(--text-2);font-weight:600;font-size:14px;cursor:pointer}.segmented button.active{background:var(--surface);color:var(--brown-2);box-shadow:0 1px 3px #00000014}.page-add{max-width:720px}.target-bar{width:100%;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;padding:12px 14px;margin-bottom:14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:var(--brown)}.target-bar.unplaced{border-style:dashed;color:var(--text-2)}.target-main{flex:1;min-width:0;display:grid}.target-label{font-size:12px;color:var(--text-2);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.target-value{font-weight:700;color:var(--text);font-size:15px}.target-bar.unplaced .target-value{font-weight:500;color:var(--text-2);font-size:14px}.target-change{font-size:14px;font-weight:600;color:var(--brown)}.scan-view{position:relative;aspect-ratio:4 / 3;border-radius:18px;overflow:hidden;background:#1d1611;color:#f3ede4}@media(max-width:560px){.scan-view{aspect-ratio:1 / 1}}.scan-view video{width:100%;height:100%;object-fit:cover;display:block}.scan-view:not(.live) video{opacity:0}.scan-placeholder{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:14px;padding:24px;text-align:center}.scan-placeholder p{max-width:320px;margin:0;color:#e6dccf}.scan-error{color:#ffe0c9!important;font-size:14px}.scan-overlay{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;background:radial-gradient(ellipse at center,transparent 45%,rgba(0,0,0,.35) 100%)}.scan-frame{position:relative;width:80%;height:34%;border-radius:14px;box-shadow:0 0 0 2px #ffffffd9,0 0 0 9999px #0000002e}.scan-line{position:absolute;left:6%;right:6%;top:50%;height:2px;background:#ffc48ce6;box-shadow:0 0 10px #ffb46ee6;animation:scanline 1.8s ease-in-out infinite}@keyframes scanline{0%,to{transform:translateY(-28px)}50%{transform:translateY(28px)}}.torch-btn{position:absolute;right:12px;bottom:12px;width:46px;height:46px;border-radius:50%;border:0;background:#00000073;color:#fff;display:grid;place-items:center}.cam-btn{position:absolute;left:12px;bottom:12px;width:46px;height:46px;border-radius:50%;border:0;background:#00000073;color:#fff;display:grid;place-items:center}.torch-btn.on{background:#f3d58f;color:#2a211b}.scan-hint{min-height:22px;margin:10px 2px}.scan-alt{display:flex;flex-wrap:wrap;gap:8px}.scan-alt .btn{flex:1 1 140px}.isbn-panel{display:grid;gap:12px}.search-panel .cand-list{display:grid;gap:6px}.manual-cta{margin-top:22px;padding-top:14px;border-top:1px solid var(--line)}.cand{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer}.cand:hover{border-color:var(--warm-gray)}.cand-main{flex:1;display:grid;gap:1px;min-width:0}.src-tag{font-size:11px;color:var(--bronze);font-weight:600;text-transform:uppercase;letter-spacing:.04em;margin-top:2px}.cand-list{display:grid;gap:8px}.session{margin-top:10px}.session-list{display:grid;grid-template-columns:minmax(0,1fr);gap:4px}.session-row{min-width:0}.session-row{display:flex;align-items:center;gap:12px;padding:8px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}.session-main{flex:1;min-width:0}.session-title{font-weight:600;text-decoration:none;color:var(--text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result{display:grid;gap:12px}.result-loading{display:flex;gap:16px;align-items:flex-start;padding:6px 0 14px}.result-head{display:flex;gap:16px;align-items:flex-start}.result-cover{display:grid;gap:6px;justify-items:center;flex:none}.result-info{flex:1;min-width:0}.result-title{font-family:var(--serif);font-size:22px;line-height:1.2}.result-sub{color:var(--text-2);margin-top:2px}.src-line a{color:var(--text-2)}.class-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.class-box-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.class-box-head h4{font-size:15px}.class-row{display:flex;gap:12px;padding:7px 0;border-top:1px solid var(--stone);align-items:baseline}.class-row:first-of-type{border-top:0}.class-label{width:104px;flex:none;font-size:13px;color:var(--text-2)}.class-val{flex:1;display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;min-width:0}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-block;padding:2px 10px;border-radius:12px;background:var(--stone);font-size:13px}.tag-ai{background:var(--ai-bg);color:var(--ai)}.origin{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;padding:2px 7px;border-radius:8px;letter-spacing:.01em}.origin-source{background:var(--stone);color:var(--text-2)}.origin-ai{background:var(--ai-bg);color:var(--ai)}.origin-user{background:var(--ok-bg);color:var(--ok)}.shelf-row{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;flex-wrap:wrap}.existing{display:flex;gap:14px;align-items:flex-start;padding:10px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}.pick-row{width:100%;display:flex;align-items:center;gap:12px;padding:12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;margin-bottom:14px}.pick-row.selected{border-color:var(--brown);box-shadow:0 0 0 2px #4a342626}.pick-main{flex:1;display:grid}.pick-group{margin-bottom:16px}.pick-group-head{display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:8px}.bc-code{display:inline-grid;place-items:center;min-width:34px;height:26px;padding:0 6px;border-radius:7px;background:var(--brown);color:var(--on-brown);font-size:13px;font-weight:700}.bc-code.lg{min-width:44px;height:36px;font-size:16px;border-radius:10px}.shelf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.shelf-btn{position:relative;display:grid;gap:1px;padding:10px 10px 8px;min-height:64px;text-align:left;border-radius:12px;border:1px solid var(--line);background:var(--surface);cursor:pointer}.shelf-btn:disabled{opacity:.4}.shelf-btn.selected{border-color:var(--brown);background:var(--brown-soft);box-shadow:0 0 0 2px #4a342626}.shelf-btn-code{font-weight:700;font-size:16px;color:var(--brown-2);font-variant-numeric:tabular-nums}.shelf-btn-sub{font-size:12px;color:var(--text-2)}.shelf-btn-count{position:absolute;top:8px;right:9px;font-size:12px;color:var(--warm-gray)}.editor-sec{margin-bottom:18px}.editor-sec .label{margin-bottom:8px;display:block}.filter-bc{margin-top:8px}.page-detail{max-width:760px}.detail-hero{display:grid;grid-template-columns:108px 1fr;gap:16px;align-items:start;margin:2px 0 16px}.detail-cover .cover{width:108px}.detail-titles{min-width:0}.detail-title{font-size:23px;line-height:1.18;overflow-wrap:anywhere}.detail-sub{font-size:15px;color:var(--text-2);margin-top:4px}.detail-authors{font-size:16px;margin-top:6px}.hero-loc{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}@media(min-width:640px){.detail-hero{grid-template-columns:170px 1fr;gap:24px;align-items:end}.detail-cover .cover{width:170px}.detail-title{font-size:30px}.detail-sub,.detail-authors{font-size:17px}}.detail-loading{display:grid;justify-items:center;gap:4px}.loc-card{border-color:#d9cbb8;background:linear-gradient(180deg,#fffdf9,#fbf6ef)}.copy-row{display:flex;align-items:center;gap:12px;padding:6px 0 12px;border-bottom:1px solid var(--stone);margin-bottom:8px;flex-wrap:wrap}.copy-main{flex:1;min-width:160px}.copy-actions{display:flex;align-items:center;gap:4px}.info-list{margin:0;display:grid}.info-row{display:flex;gap:12px;padding:8px 0;border-top:1px solid var(--stone)}.info-row:first-child{border-top:0}.info-row dt{width:120px;flex:none;color:var(--text-2);font-size:14px}.info-row dd{margin:0;flex:1;display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;overflow-wrap:anywhere}.src-dot{font-size:11px;color:var(--warm-gray);border:1px solid var(--line);border-radius:6px;padding:0 5px}.desc{margin-top:12px}.desc-text{white-space:pre-line;color:var(--text);font-size:15px}.desc-text.clamp{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.disclosure{margin-top:12px;border-top:1px solid var(--stone);padding-top:10px}.disclosure summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--brown);list-style:none;display:flex;align-items:center;gap:6px;min-height:32px}.disclosure summary:before{content:"\203a";display:inline-block;transition:transform .15s;font-size:18px;line-height:1}.disclosure[open] summary:before{transform:rotate(90deg)}.disclosure summary::-webkit-details-marker{display:none}.evidence p,.sources p{margin:6px 0}.src-fields{list-style:none;padding:0;margin:8px 0;display:grid;gap:2px;font-size:13px}.src-fields li{display:flex;justify-content:space-between;gap:10px;padding:3px 0;border-bottom:1px dotted var(--stone-2)}.reading-toggle{display:flex;background:var(--stone);border-radius:12px;padding:4px;gap:4px;margin-bottom:14px}.reading-toggle button{flex:1;min-height:42px;border:0;border-radius:9px;background:transparent;font-weight:600;color:var(--text-2);cursor:pointer;font-size:14px}.reading-toggle button.active{background:var(--brown);color:var(--on-brown)}.mini-list{display:grid;gap:4px}.mini-row{display:flex;align-items:center;gap:12px;padding:8px;border-radius:12px;text-decoration:none;color:inherit;width:100%;border:0;background:transparent;text-align:left;cursor:pointer}.mini-row:hover{background:var(--stone)}.danger-zone{display:flex;justify-content:center;margin:22px 0 8px}.menu-list{display:grid;gap:2px}.menu-list button{display:flex;align-items:center;gap:12px;width:100%;min-height:50px;border:0;background:transparent;border-radius:12px;padding:0 12px;font-size:16px;text-align:left;cursor:pointer}.menu-list button:hover{background:var(--stone)}.bookcases{display:grid;gap:14px}@media(min-width:900px){.bookcases{grid-template-columns:1fr 1fr;align-items:start}}.bookcase{padding:14px;margin:0}.bookcase-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.bookcase-body{border:6px solid #6b4e3a;border-top-width:8px;border-radius:6px;background:#f3ece2;padding:0 6px}.shelf-line{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;align-items:center;column-gap:10px;row-gap:2px;min-height:58px;padding:6px 4px;border-bottom:5px solid #6b4e3a;text-decoration:none;color:inherit}.shelf-name{grid-column:2 / -1;font-size:13px;line-height:1.25;color:var(--text-2);overflow-wrap:anywhere}.shelf-line:last-of-type{border-bottom-width:5px}.shelf-line:hover{background:#ffffff80}.shelf-code{width:34px;font-weight:700;color:var(--brown-2);font-variant-numeric:tabular-nums}.shelf-bar{width:100%;min-width:0;display:flex;align-items:flex-end;gap:2px;height:40px;overflow:hidden}.shelf-bar i{display:block;width:6px;border-radius:1.5px 1.5px 0 0;background:#b8a68e}.shelf-bar i:nth-child(3n){background:#8f7a62}.shelf-bar i:nth-child(5n){background:#cdbca4}.shelf-bar i:nth-child(7n){background:#6f5b49}.shelf-meta{display:grid;justify-items:end}.shelf-count{font-weight:700;font-size:15px}.add-shelf{margin:8px 4px}.unplaced-card{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;border-style:dashed}.shelf-head{margin:4px 0 14px}.shelf-head .loc-big{font-size:44px}.action-bar{position:fixed;left:12px;right:12px;bottom:calc(var(--nav-h) + var(--safe-b) + 12px);z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 10px 10px 16px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);font-weight:600}@media(min-width:900px){.action-bar{left:260px;right:28px;bottom:24px}}.review-group{margin-bottom:8px}.review-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.tax-list{display:grid;margin-top:8px;max-height:420px;overflow-y:auto;border:1px solid var(--stone);border-radius:12px}.tax-row{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 12px;border:0;border-bottom:1px solid var(--stone);background:transparent;text-align:left;cursor:pointer}.tax-row:last-child{border-bottom:0}.tax-row:hover{background:var(--stone)}.backup-row{display:flex;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--stone);flex-wrap:wrap}.backup-row:first-of-type{border-top:0}.svc-row{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--stone)}.svc-row:first-of-type{border-top:0}.svc-dot{width:10px;height:10px;border-radius:50%;margin-top:7px;flex:none;background:var(--line)}.svc-dot.ok{background:var(--ok)}.svc-dot.bad{background:var(--err)}.svc-dot.idle{background:var(--warm-gray)}.tech code{display:block;margin-top:4px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-2)}.auth{min-height:100vh;display:grid;place-items:center;padding:calc(24px + var(--safe-t)) 16px calc(24px + var(--safe-b))}.auth-card{width:100%;max-width:400px}.auth-brand{text-align:center;margin-bottom:22px;display:grid;justify-items:center;gap:6px}.auth-brand h1{font-size:34px}.auth-lang{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:26px;color:var(--text-2)}.auth-lang .link-btn{min-height:36px;padding:6px 2px;font-size:14px}.auth-lang .link-btn[aria-pressed=true]{color:var(--text);text-decoration:none;cursor:default}.logo{display:block}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.ai-assist{background:var(--ai-bg);border-radius:var(--radius);padding:12px 14px;margin:10px 0}.ai-assist-title{display:flex;align-items:center;gap:6px;margin:0 0 10px;color:var(--ai);font-weight:600;font-size:15px}.ai-assist-actions{display:flex;flex-wrap:wrap;gap:8px}.ai-assist-actions .btn{flex:1 1 200px;justify-content:center;background:var(--surface)}.ai-assist .muted.tiny,.ai-assist .note{margin:8px 0 0}.nav-wide-only{display:none!important}@media(min-width:900px){.nav-wide-only{display:flex!important}.review-strip{display:none!important}}.review-strip{display:flex;align-items:center;gap:10px;padding:10px 14px;margin:0 0 12px;border-radius:var(--radius-sm);background:var(--warn-bg);color:var(--warn);text-decoration:none;font-size:15px}.lent-badge{display:inline-block;font-size:11px;line-height:1;padding:4px 6px;border-radius:6px;background:var(--ai-bg);color:var(--ai);margin-left:6px;vertical-align:middle}.lent-note{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;padding:6px 10px;border-radius:8px;background:var(--ai-bg);color:var(--ai);font-size:14px}.lent-note .link-btn{margin-left:auto}.lent-note .link-btn+.link-btn{margin-left:0}.lend-btn{margin-top:6px}.lend-link{margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--stone);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;word-break:break-all;-webkit-user-select:all;user-select:all}.odunc-book{display:flex;gap:14px;align-items:flex-start;padding:14px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line)}.odunc-title{font-size:18px;line-height:1.3;display:block}.odunc-note{margin:8px 0 0;font-style:italic;color:var(--text-2)}.method-switch{display:flex;gap:8px;justify-content:center;margin:12px 0 4px}.auth-sub{font-family:var(--serif);font-size:20px;margin:4px 0 10px;text-align:center}.code-input{font-size:22px;letter-spacing:.2em;text-align:center;font-variant-numeric:tabular-nums}.page-friends .page-head p{margin:4px 0 0}.person-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.card-title+.person-row,.sub-title+.person-row,summary+.person-row{border-top:0}.person-row .btn.small{flex:none}.link-row{color:inherit;text-decoration:none}.avatar{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--brown-soft);color:var(--brown);font-weight:600;font-family:var(--serif);font-size:18px}.sub-title{font-size:14px;font-weight:600;color:var(--text-2);margin:14px 0 4px}.btn-stack{display:grid;gap:8px}@media(min-width:560px){.btn-stack{grid-template-columns:1fr 1fr}}.loan-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line);flex-wrap:wrap}.card-title+.loan-row{border-top:0}.loan-actions{display:flex;gap:6px;margin-left:auto}.loan-st.loan-accepted{color:var(--ok);font-weight:600}.loan-st.loan-declined{color:var(--err)}.toggles{display:grid;gap:4px;margin-top:10px}.toggle-row{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line);cursor:pointer}.toggle-row strong{display:block;font-weight:600}.switch{appearance:none;-webkit-appearance:none;flex:none;width:48px;height:28px;border-radius:14px;background:var(--stone-2);position:relative;cursor:pointer;transition:background .15s;margin-top:2px}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .15s}.switch:checked{background:var(--brown)}.switch:checked:after{transform:translate(20px)}.switch:disabled{opacity:.45;cursor:default}.invite-box{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border-radius:var(--radius-sm);background:var(--brown-soft);margin:6px 0 8px}.invite-code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:24px;letter-spacing:.08em;color:var(--brown-2);flex:1}.invite-inline{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:15px;letter-spacing:.06em;font-weight:700;color:var(--brown-2)}.friend-books{display:grid;gap:4px}.friend-book{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.friend-book:first-child{border-top:0}.search-input{width:100%}.mb{margin-bottom:12px}.radio-list{display:grid;gap:2px;margin-bottom:10px}.radio-row{display:flex;gap:10px;align-items:center;min-height:44px;cursor:pointer}.radio-row input{width:20px;height:20px;accent-color:var(--brown)}.bullets{padding-left:18px;margin:8px 0 14px;display:grid;gap:6px}.quote{border-left:3px solid var(--line);padding-left:10px;color:var(--text-2);white-space:pre-wrap}.badge-art{display:inline-block;flex:none;line-height:0}.badge-art svg{width:100%;height:100%;display:block}.score-pill{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--brown);text-decoration:none;font-weight:600;font-size:14px;font-variant-numeric:tabular-nums;flex:none}.score-pill:hover{background:var(--stone)}.score-pill.static{min-height:30px;padding:4px 10px;font-size:13px}.badge-score{display:grid;justify-items:end;line-height:1.1}.badge-score b{font-family:var(--serif);font-size:30px;color:var(--brown);font-variant-numeric:tabular-nums}.badge-section{margin:18px 0 10px}.badge-section-head{display:flex;justify-content:space-between;align-items:baseline;margin:0 2px 8px}.badge-section-head h2{font-size:17px}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}.badge-tile{display:grid;justify-items:center;align-content:start;gap:6px;text-align:center;padding:12px 10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;font:inherit;color:inherit}.badge-tile:hover{border-color:var(--warm-gray)}.badge-tile-name{font-size:13px;font-weight:600;line-height:1.25}.badge-tile-level{font-size:12px;color:var(--text-2)}.badge-tile.locked .badge-tile-name{color:var(--text-2)}.badge-tile.soon{opacity:.6}.badge-hint{margin:8px 2px}.progress{height:6px;width:100%;background:var(--stone);border-radius:99px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--bronze);border-radius:99px;transition:width .4s ease-out}.badge-goal{display:flex;align-items:center;gap:12px;width:100%;padding:10px 0;background:none;border:0;border-top:1px solid var(--line);text-align:left;font:inherit;color:inherit;cursor:pointer}.card-title+.badge-goal{border-top:0}.badge-goal-body{flex:1;min-width:0;display:grid;gap:5px}.badge-goal-name{font-weight:600;font-size:15px}.badge-preview{opacity:.55}.showcase{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:4px 0 8px}.showcase-slot{display:grid;justify-items:center;gap:6px;text-align:center;font:inherit;font-size:12.5px;line-height:1.25;color:inherit;background:none;border:0;padding:4px;cursor:pointer}.showcase-slot:disabled{cursor:default}.showcase-empty{width:64px;height:64px;border-radius:50%;border:2px dashed var(--line);display:grid;place-items:center;color:var(--warm-gray)}.showcase-mini{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-top:10px}.showcase-mini-item{display:grid;justify-items:center;gap:4px;width:72px;text-align:center;font-size:11.5px;line-height:1.2;color:var(--text-2)}.showcase-mini .score-pill{align-self:center}.badge-detail{text-align:center;display:grid;justify-items:center;gap:6px}.badge-detail p{margin:0}.badge-detail-status{color:var(--text-2);font-size:14px}.badge-detail-progress{width:100%;display:grid;gap:6px;margin-top:4px}.badge-levels{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;width:100%;margin:10px 0 4px}.badge-level{display:grid;justify-items:center;gap:2px;font-size:11.5px;color:var(--text-2);text-align:center}.badge-level b{color:var(--text);font-size:12px;font-weight:600}.badge-level.off .badge-art{opacity:.35;filter:grayscale(.6)}.badge-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin:10px 0}.pick{position:relative;display:grid;justify-items:center;align-content:start;gap:4px;padding:10px 6px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:12.5px;line-height:1.25;text-align:center;color:inherit;cursor:pointer}.pick.on{border-color:var(--brown);box-shadow:inset 0 0 0 1px var(--brown)}.pick:disabled{opacity:.45;cursor:default}.pick.static{cursor:default}.pick-check{position:absolute;top:6px;right:6px;width:20px;height:20px;border-radius:50%;background:var(--brown);color:var(--on-brown);display:grid;place-items:center}.celebrate{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:calc(20px + var(--safe-t)) 20px calc(20px + var(--safe-b));background:#1f1610f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade .25s ease-out;overflow-y:auto}.celebrate-card{width:min(380px,100%);text-align:center;color:#fff;display:grid;justify-items:center;gap:8px}.celebrate-card p{margin:0}.celebrate-art{position:relative;width:230px;height:230px;display:grid;place-items:center;margin-bottom:4px}.celebrate-art:before{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,#f1d9b56b,#f1d9b500 68%);animation:glow 2.4s ease-in-out infinite}.celebrate-art .badge-art{position:relative;animation:pop .6s cubic-bezier(.2,1.4,.4,1) both}.celebrate-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:#f1d9b5}.celebrate h2{font-family:var(--serif);font-size:30px;color:#fff;margin:0}.celebrate-level{font-size:16px;color:#f1d9b5}.celebrate-desc{color:#ffffffd6}.celebrate-meta{color:#ffffffa3;font-size:13px}.celebrate-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:14px}.celebrate .btn-ghost{color:#fff;border-color:#fff6}.celebrate .btn-ghost:hover{background:#ffffff1a}@keyframes pop{0%{transform:scale(.4) rotate(-12deg);opacity:0}}@keyframes glow{50%{transform:scale(1.08);opacity:.7}}@media(prefers-reduced-motion:reduce){.celebrate-art:before{animation:none}}.founder-note{display:flex;align-items:center;gap:12px;padding:10px 12px;margin:0 0 14px;border-radius:var(--radius-sm);background:var(--brown-soft);color:var(--brown-2);font-size:14px;line-height:1.4}.founder-note p{margin:0}.read-date{margin:-4px 0 14px;display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px}.read-date .input{flex:1 1 180px;max-width:240px}.read-date-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1 1 100%}.read-date-actions .push{margin-left:auto}.order-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-4px 0 12px}.order-row .small:first-child{color:var(--text-2);margin-right:auto}.list-row.ordering{cursor:default}.order-btns{display:flex;gap:4px}.order-btns .icon-btn{font-size:18px;font-weight:700}.order-btns .icon-btn:disabled{opacity:.3}.pw-wrap{position:relative}.pw-wrap .input{padding-right:46px}.pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:38px;height:38px;display:grid;place-items:center;border:0;background:transparent;color:var(--text-2);border-radius:10px;cursor:pointer}.pw-toggle:hover{color:var(--text)}.read-page{margin:-4px 0 14px;display:grid;gap:6px}.read-page-row{display:flex;align-items:center;gap:8px}.read-page-row .input{width:110px;flex:0 0 auto}.read-page-pct{margin-left:auto;font-weight:600}.read-ask{margin:-4px 0 14px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--brown-soft)}.read-ask p{margin:0 0 8px}.series-toggle{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;margin:0 0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}.series-toggle strong{display:block;font-weight:600}.series-status{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:10px 0;border-radius:var(--radius-sm);font-size:15px;background:var(--stone);color:var(--text);animation:fade .2s ease-out}.series-status .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.series-status.ok{background:var(--ok-bg);color:var(--ok)}.series-status.warn{background:var(--warn-bg);color:var(--warn)}.series-status.info{background:var(--brown-soft);color:var(--brown-2)}.later-icon{width:36px;height:48px;flex:none;display:grid;place-items:center;border-radius:6px;background:var(--stone);color:var(--warm-gray)}.series-count{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;background:#45633aeb;color:#fff;font-weight:700;font-size:14px;font-variant-numeric:tabular-nums}.peek .scan-view{aspect-ratio:16 / 9}.peek-isbn{margin-top:10px}.peek-card{margin-top:12px}.peek-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:10px}.peek-title{font-family:var(--serif);font-size:20px;line-height:1.25;margin:0 0 4px}.peek-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--stone);color:var(--text-2);font-size:15px}.peek-row.yes{background:var(--ok-bg);color:var(--ok)}.peek-row.yes strong{color:var(--ok)}.peek-sub{font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);margin:16px 0 4px}.peek-none{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:6px 0}.peek-none p{margin:0}.peek-buy{text-decoration:none;color:var(--text);display:inline-flex;align-items:center;gap:4px}.peek-add{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.peek-recent{width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}.peek-link{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:-6px 0 12px;border-radius:var(--radius-sm);background:var(--brown-soft);color:var(--brown-2);text-decoration:none;font-size:14px;line-height:1.35}.peek-link .grow{flex:1;min-width:0}.share-stage{position:relative;display:grid;place-items:center;margin:4px 0 14px}.share-preview{display:block;width:min(62vw,240px);aspect-ratio:9 / 16;border-radius:16px;box-shadow:var(--shadow);background:var(--stone);transition:opacity .2s}.share-preview.dim{opacity:.55}.share-busy{position:absolute;inset:0;display:grid;place-items:center}.share-options{margin:0 0 14px}.share-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}.share-actions .btn{flex:1 1 160px;justify-content:center}.share-kinds{margin:0 0 12px}.share-pick{width:100%;margin:0 0 12px}.share-empty{position:absolute;inset:auto 16px}.overlap-line{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}.overlap-line .link-btn{padding:2px 9px;border-radius:11px}.overlap-line .link-btn.active{color:var(--on-brown);background:var(--brown);text-decoration:none}.head-actions{display:flex;align-items:center;gap:6px;flex:none}.sahaf-products{display:grid;gap:12px;margin-bottom:14px}.sahaf-product{margin:0}.sahaf-product.special{border-color:var(--ai);box-shadow:inset 0 0 0 1px var(--ai-bg)}.sahaf-product-head{display:flex;gap:12px;align-items:flex-start}.sahaf-product-head p{margin:4px 0 0}.sahaf-icon{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--brown-soft);color:var(--brown)}.sahaf-product.special .sahaf-icon{background:var(--ai-bg);color:var(--ai)}.sahaf-product-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px}.sahaf-next{margin:12px 0 0}.sahaf-free{border-color:var(--bronze, var(--line))}.note-seal{border-radius:50%}.sahaf-price{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--brown)}.sahaf-working{display:flex;align-items:center;gap:8px}.sahaf-past{text-decoration:none;color:inherit}.sahaf-kicker{margin:0 0 4px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--bronze)}.sahaf-pick{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line)}.card-title+.sahaf-pick{border-top:0}.sahaf-pick.big{padding:4px 0 14px;border-top:0}.sahaf-pick-title{font-family:var(--serif);font-size:19px;line-height:1.25;margin:0 0 4px}.sahaf-pick.big .sahaf-pick-title{font-size:24px}.sahaf-reason{margin:8px 0;font-size:15px}.sahaf-owners{display:grid;gap:6px;margin:8px 0;padding:8px 10px;border-radius:var(--radius-sm);background:var(--ok-bg);color:var(--ok)}.sahaf-actions{margin-top:8px}.sahaf-letter{position:relative;margin:6px 0 16px;padding:20px 22px 16px;background:#fbf6ea;border:1px solid #e6d9bd;border-radius:6px;box-shadow:0 1px #00000008,0 8px 20px #4a342614;font-family:var(--serif);font-size:17px;line-height:1.6;color:#3a2b20}.sahaf-letter p{margin:0 0 8px}.sahaf-sign{text-align:right;font-style:italic;color:var(--bronze)}.sahaf-reroll{display:grid;justify-items:center;gap:6px;margin:8px 0 20px}.consent ul{margin:6px 0 12px;padding-left:20px}.consent li{margin:2px 0}.sahaf-banner{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:0 0 12px;border-radius:var(--radius-sm);background:var(--ai-bg);color:var(--ai);text-decoration:none;font-size:14.5px;line-height:1.35}.sahaf-banner .grow{flex:1;min-width:0}.orn-art{display:inline-block;flex:none}.orn-art svg{width:100%;height:100%;display:block;overflow:visible}.orn-art.pop{animation:pop .6s cubic-bezier(.2,1.4,.4,1) both}.orn-shelf{display:flex;align-items:flex-end;gap:10px;margin:0 0 12px;padding:6px 12px 0;border-radius:var(--radius-sm) var(--radius-sm) 4px 4px;background:linear-gradient(to bottom,#ede3d68c,#ede3d600 70%);border-bottom:6px solid #9a6b43;box-shadow:0 3px 0 -1px #7a5232,0 6px 8px -4px #4a342659;color:inherit;text-decoration:none}.orn-shelf.link:hover{background:linear-gradient(to bottom,#ede3d6e6,#ede3d61a 80%)}.orn-row{display:flex;align-items:flex-end;gap:4px;flex:1;min-width:0;overflow:hidden}.orn-item{display:grid;justify-items:center;gap:2px;min-width:0}.orn-cap{max-width:76px;font-size:11px;line-height:1.2;color:var(--text-2);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-bottom:3px}.orn-shelf.caps{display:inline-flex;max-width:100%;margin-top:4px}.orn-shelf.caps .orn-row{gap:14px}.nowrap{white-space:nowrap}.orn-more{align-self:center;font-size:13px;font-weight:600;color:var(--bronze);padding:0 4px}.orn-label{flex:none;display:inline-flex;align-items:center;gap:2px;padding-bottom:6px;font-size:13px;font-weight:600;color:var(--bronze)}.orn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px;margin:6px 0 10px}.orn-card{display:grid;justify-items:center;gap:4px;padding:10px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);text-align:center;line-height:1.25}.orn-card.off .orn-art{opacity:.4}.orn-card .check{align-items:center;gap:6px;margin-top:2px}.orn-card .check input{width:18px;height:18px;margin:0}.founder-tea{display:flex;align-items:center;gap:12px;padding:10px 14px;margin:0 0 14px;border-radius:var(--radius-sm);background:#f6ead8;border:1px solid #ecd9bb}.founder-tea p{margin:0}.ism-to{display:grid;gap:6px;max-height:360px;overflow-y:auto}.ism-to-row{display:flex;align-items:center;gap:12px;width:100%;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font:inherit;color:inherit;text-align:left;cursor:pointer}.ism-to-row.on{border-color:var(--brown);box-shadow:0 0 0 2px #4a342626}.ism-to-row .avatar{width:34px;height:34px;font-size:16px}.ism-products{display:grid;gap:10px}.ism-product{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font:inherit;color:inherit;text-align:left;cursor:pointer}.ism-product.on{border-color:var(--brown);box-shadow:0 0 0 2px #4a342626}.ism-product.soon .orn-art{opacity:.55}.ism-product-main{flex:1;min-width:0;display:grid;gap:2px;line-height:1.3}.ism-product-top{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.ism-product-main strong{font-family:var(--serif);font-size:17px}.ism-price{flex:none;font-family:var(--serif);font-weight:600;color:var(--brown);text-align:right;font-size:15px;white-space:nowrap}.ism-product.soon .ism-price{font-family:var(--font);font-size:12px;font-weight:600;color:var(--warm-gray)}.ism-price s{color:var(--warm-gray);font-weight:400;font-size:13px}.ism-send{position:sticky;bottom:calc(var(--nav-h) + var(--safe-b));z-index:5;margin:0 -16px;padding:10px 16px 12px;background:var(--bg);border-top:1px solid var(--line);box-shadow:0 -6px 14px -10px #2a211b4d}.ism-send p{margin:0 0 8px;text-align:center;font-size:12.5px;line-height:1.35}@media(min-width:900px){.ism-send{bottom:0;margin:0 -28px;padding:10px 28px 12px}}.btn-block{width:100%}.center-row{justify-content:center}.ism-sent{display:grid;justify-items:center;text-align:center;gap:8px;padding:24px 4px}.ism-sent h1{margin:6px 0 0}.ism-sent p{margin:0;max-width:460px}.ism-code{width:100%;max-width:460px;justify-content:center;margin-top:10px}.ismarla-card .card-title{margin-bottom:2px}.gift-row .orn-art{align-self:flex-start}.gift-note{font-family:var(--serif);font-style:italic;color:var(--text-2);margin:2px 0}.gift-actions{display:grid;gap:6px;justify-items:end;flex:none}.thanked{color:var(--ok);font-weight:600}.sahaf-gift{border-color:#e6cfa6;background:#fdf8ef}.gift-box-art{display:inline-block}.gift-box-art svg{width:100%;height:100%;display:block;overflow:visible}.gift-box-art .gb-lid{transform-origin:80px 56px;transform-box:view-box;transition:transform .7s cubic-bezier(.3,1.2,.5,1),opacity .7s ease-in}.gift-box-art.wiggle{animation:wiggle 2.6s ease-in-out infinite;transform-origin:50% 100%}.gift-box-art.opening .gb-lid{transform:translate(18px,-70px) rotate(24deg);opacity:0}.gift-box-art.opening{animation:shake .35s ease-in-out 2}@keyframes wiggle{0%,70%,to{transform:rotate(0)}76%{transform:rotate(-3deg)}82%{transform:rotate(3deg)}88%{transform:rotate(-2deg)}94%{transform:rotate(1deg)}}@keyframes shake{50%{transform:translateY(-4px)}}.giftbox-btn{background:none;border:0;padding:0;cursor:pointer}.giftbox .celebrate-art:before{background:radial-gradient(circle,#f1d9b580,#f1d9b500 68%)}.gift-paper{position:relative;margin:6px 0 4px;padding:14px 18px 10px;max-width:320px;background:#fbf6ea;border-radius:4px;color:#3a2b20;font-family:var(--serif);font-size:18px;line-height:1.45;transform:rotate(-1.2deg);box-shadow:0 6px 16px #00000059}.gift-paper p{margin:0}.gift-paper-from{text-align:right;font-style:italic;font-size:15px;color:var(--bronze);margin-top:4px!important}.giftbox-report{color:#ffffff8c;margin-top:10px}.gift-link{display:grid;justify-items:center;text-align:center;gap:12px;max-width:480px;margin:0 auto;padding:16px 4px 24px}.gift-link p{margin:0}.gift-link-preview{display:grid;justify-items:center;gap:10px}.gift-link-preview h1{font-size:26px;margin:4px 0 0}.gift-public{min-height:100vh;padding:calc(24px + var(--safe-t)) 16px calc(24px + var(--safe-b));background:var(--bg)}.gift-brand{font-family:var(--serif);font-size:22px;color:var(--brown)}body:has(.celebrate) .toasts{z-index:310}@media(prefers-reduced-motion:reduce){.gift-box-art.wiggle,.gift-box-art.opening,.orn-art.pop{animation:none}}.plus-seal{flex:none;display:block}.plus-hero{display:grid;justify-items:center;text-align:center;gap:8px;margin:4px 0 18px}.plus-hero h1{margin:4px 0 0}.plus-hero p{margin:0;max-width:460px}.plus-status{text-align:center}.plus-status.on{border-color:#c9d6c2;background:var(--ok-bg)}.plus-status-line{display:flex;align-items:center;justify-content:center;gap:6px;margin:0 0 4px;font-weight:600;color:var(--brown-2)}.plus-status.on .plus-status-line{color:var(--ok)}.plus-status p{margin:0}.plus-features{display:grid;gap:8px;margin:0 0 14px}.plus-feature{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:inherit;text-decoration:none;line-height:1.3}.plus-feature:hover{background:var(--stone)}.plus-feature-icon{flex:none;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#e7ebf1;color:#1f3448}.plus-free{text-align:center;max-width:520px;margin:0 auto 20px}.plus-kicker{margin:0;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8a6a2a}.plus-lock{border-color:#d9dfe8;background:linear-gradient(180deg,#f6f8fb,var(--surface))}.plus-lock-head{display:flex;align-items:center;gap:10px;margin-bottom:6px;color:var(--warm-gray)}.plus-lock-head .card-title{margin:0;color:var(--text)}.plus-lock p{margin:0 0 10px}.plus-settings .card-title{margin:0}.plus-settings p{margin:2px 0 0}.plus-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:#1f3448;color:#f3dfae;font-size:11px;font-weight:700;letter-spacing:.04em}.sahaf-plus{border-color:#d9dfe8;background:#f6f8fb}.stats-year{width:auto;min-width:92px;flex:none}.stat-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 12px}.stat-tile{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);min-width:0}.stat-label{display:flex;align-items:flex-start;gap:4px;min-height:2.5em;font-size:12px;color:var(--text-2);line-height:1.25}.stat-label .icon{flex:none;margin-top:1px}.stat-value{font-size:26px;font-weight:600;line-height:1.1;color:var(--text)}.stat-unit{font-size:12px;color:var(--warm-gray)}.goal-card{display:grid;gap:8px}.goal-card.empty{display:flex;align-items:center;gap:12px;color:var(--bronze)}.goal-card.empty .card-title{color:var(--text);margin:0}.goal-card.empty p{margin:2px 0 0}.goal-head{display:flex;align-items:flex-start;gap:8px}.goal-head .card-title{margin:0 0 2px}.goal-num{margin:0;font-size:15px;color:var(--text-2)}.goal-num strong{font-size:28px;font-weight:600;color:var(--text)}.meter{position:relative;height:12px;border-radius:999px;background:var(--data-track);overflow:visible}.meter-fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--data);transition:width .6s ease}.meter-pace{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;border-radius:2px;background:var(--text-2)}.goal-line{margin:0;color:var(--text-2)}.mcols{display:grid;gap:6px}.mcols-plot{position:relative;height:170px;margin:22px 0 0 22px}.mcols-grid{position:absolute;inset:0}.mcols-tick{position:absolute;left:0;right:0;border-top:1px solid var(--grid)}.mcols-tick span{position:absolute;left:-22px;top:-8px;width:16px;text-align:right;font-size:11px;color:var(--warm-gray);font-variant-numeric:tabular-nums}.mcols-bars{position:absolute;inset:0;display:grid;grid-template-columns:repeat(12,1fr);align-items:end}.mcol{position:relative;height:100%;display:flex;align-items:flex-end;justify-content:center;padding:0;border:0;background:none;cursor:pointer}.mcol-bar{display:block;width:min(18px,64%);background:var(--data);border-radius:4px 4px 0 0;transition:height .4s ease}.mcol.on .mcol-bar,.mcol:focus-visible .mcol-bar{background:var(--data-strong)}.mcol-val{position:absolute;left:50%;transform:translate(-50%);font-size:12px;font-weight:600;color:var(--text);pointer-events:none}.mcols-x{display:grid;grid-template-columns:repeat(12,1fr);margin-left:22px;font-size:10.5px;color:var(--warm-gray);text-align:center}.mcols-x .now{color:var(--text);font-weight:700}.mcols-table summary{font-size:13px;color:var(--text-2);cursor:pointer}.mcols-table table{margin-top:6px;border-collapse:collapse;font-size:13px}.mcols-table th,.mcols-table td{padding:2px 12px 2px 0;text-align:left;font-weight:400}.mcols-table td{font-variant-numeric:tabular-nums}.hbars{display:grid;gap:8px}.hbar{display:grid;grid-template-columns:minmax(90px,44%) 1fr;align-items:center;gap:10px;font-size:14px}.hbar-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.hbar-track{display:flex;align-items:center;gap:6px;min-width:0}.hbar-fill{display:block;height:14px;min-width:3px;background:var(--data);border-radius:0 4px 4px 0}.hbar-val{font-size:13px;color:var(--text-2);font-variant-numeric:tabular-nums}.stats-list{margin:0;padding:0;list-style:none;counter-reset:s}.stats-list li{display:flex;align-items:baseline;gap:10px;padding:6px 0;border-top:1px solid var(--line);counter-increment:s}.stats-list li:first-child{border-top:0}.stats-list li:before{content:counter(s);width:18px;color:var(--warm-gray);font-size:13px}.stats-count{color:var(--text-2);font-size:13px;white-space:nowrap}.stats-facts ul{margin:0;padding-left:18px}.stats-facts li{margin:4px 0}.coll-bar{display:flex;align-items:center;gap:8px;overflow-x:auto;padding:2px 0 4px;margin:2px 0 6px;scrollbar-width:none}.coll-bar::-webkit-scrollbar{display:none}.coll-bar .chip{flex:none;white-space:nowrap}.coll-chip{position:relative}.coll-dot{display:inline-block;width:7px;height:7px;margin-left:6px;border-radius:50%;background:#e3b85c;vertical-align:middle}.coll-add{display:inline-flex;align-items:center;gap:4px;border-style:dashed;color:var(--text-2)}.coll-bar .link-btn{flex:none}.loan-late{color:var(--warn);font-weight:600}.loan-overdue{border-color:#ecd9bb;background:var(--warn-bg)}.loan-overdue .card-title{color:var(--warn)}.loan-overdue .loan-row{border-top-color:#ecd9bb}.loan-st.out{flex:none;font-size:12px;font-weight:600;color:var(--ok)}.loan-st.late{flex:none;font-size:12px;font-weight:600;color:var(--warn)}.loans .card-title+.loan-row{border-top:0}.check-list{display:grid;gap:10px;margin:6px 0 4px}.catalog-done{border-color:#c9d6c2;background:var(--ok-bg)}.catalog-done-line{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-weight:600;color:var(--ok)}.catalog-make{margin:4px 0 20px}.catalog .field{margin-bottom:12px}.catalog-label{margin:4px 0 0}.invite-link-title{font-size:24px;margin:0;line-height:1.25}.invite-reward-note{display:flex;align-items:center;gap:10px;text-align:left;padding:10px 12px;border-radius:var(--radius-sm);background:var(--brown-soft);color:var(--brown-2);max-width:420px}.invite-reward-note p{margin:0}.invite-reward-head{display:flex;align-items:flex-start;gap:12px}.invite-reward-head .card-title{margin:2px 0 4px}.invite-reward-head p{margin:0}.invite-steps{margin:12px 0 8px;padding-left:22px;display:grid;gap:6px;color:var(--text-2)}.invite-earned{margin:6px 0 0;font-weight:600}.invite-mine p{margin:4px 0 10px}.invite-meter{display:grid;gap:5px;margin:8px 0}.invite-meter-head{display:flex;justify-content:space-between;gap:8px}.invite-list{list-style:none;margin:0 0 8px;padding:0}.invite-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.invite-row:last-child{border-bottom:0}.invite-chip{flex:none;font-size:12px;padding:3px 9px;border-radius:99px;background:var(--stone);color:var(--text-2)}.invite-chip.active{background:var(--brown-soft);color:var(--brown-2)}.invite-chip.rewarded{background:var(--ok-bg);color:var(--ok)}.invite-link-row{display:flex;justify-content:flex-end;margin-top:2px}.plus-invite{margin:0 0 14px}.sheet .invite-reward-note{margin:4px 0 8px}:root[data-theme=gece]{color-scheme:dark;--bg: #17130f;--surface: #221c17;--stone: #2d2620;--stone-2: #383029;--line: #3b3229;--warm-gray: #9d9284;--text: #f0e8dc;--text-2: #c5b9aa;--brown: #e2c9a6;--brown-2: #f0dcc0;--brown-soft: #3a2e24;--bronze: #c9a36e;--warn: #f0c27a;--warn-bg: #3a2c18;--err: #f19a8a;--err-bg: #3d221d;--ok: #a8c79a;--ok-bg: #22301e;--ai: #c3b8e6;--ai-bg: #2c283b;--data: #c8743f;--data-strong: #e59a66;--data-track: #3d2a1e;--grid: #352d26;--on-brown: #1b1511;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 18px rgba(0, 0, 0, .35);--shadow-cover: 0 1px 1px rgba(0, 0, 0, .5), 0 4px 10px rgba(0, 0, 0, .45)}:root[data-theme=sahaf]{--bg: #ebe7d6;--surface: #fbf9f1;--stone: #e5e1cf;--stone-2: #dbd5c0;--line: #d4cdb6;--warm-gray: #7f7a68;--text: #24291f;--text-2: #4e5446;--brown: #34503f;--brown-2: #263c2f;--brown-soft: #e1e6d6;--bronze: #8a6a2a;--data: #2e8a5c;--data-strong: #1f6542;--data-track: #dbe8dc;--grid: #e3e0cf}:root[data-theme=lacivert]{--bg: #edf0f5;--surface: #fdfdfe;--stone: #e5e9ef;--stone-2: #d9dfe8;--line: #d3dae4;--warm-gray: #778196;--text: #1b2232;--text-2: #4a5468;--brown: #1f3448;--brown-2: #142436;--brown-soft: #e2e8f1;--bronze: #8a6a2a;--data: #2a64a8;--data-strong: #1f3448;--data-track: #dde6f2;--grid: #e3e8ef}:root[data-theme=gece] .btn-light{background:#f0e8dc;color:#1b1511}:root[data-theme=gece] .btn-primary .spinner{border-color:#00000040;border-top-color:#1b1511}:root[data-theme=gece] .toast{background:#f0e8dc;color:#1b1511}:root[data-theme=gece] .founder-tea,:root[data-theme=gece] .sahaf-gift{background:#2b2219;border-color:#4a3a28}:root[data-theme=gece] .plus-lock,:root[data-theme=gece] .sahaf-plus{background:#1f2430;border-color:#343c4d}:root[data-theme=gece] .plus-feature-icon{background:#283044;color:#c9d6ea}:root[data-theme=gece] .plus-status.on,:root[data-theme=gece] .catalog-done{border-color:#33452c}:root[data-theme=gece] .loan-overdue{border-color:#4f3b1f}:root[data-theme=gece] .orn-shelf{background:linear-gradient(to bottom,#46372880,#46372800 70%);border-bottom-color:#6e4c30;box-shadow:0 3px 0 -1px #4e3420,0 6px 8px -4px #00000080}:root[data-theme=gece] .orn-card,:root[data-theme=gece] .ism-product,:root[data-theme=gece] .ism-to-row{background:var(--surface)}:root[data-theme=gece] .sahaf-letter{background:#2b241c;border-color:#4a3d2c;color:#eadfcf}:root[data-theme=gece] .gift-paper{background:#f3ead9}:root[data-theme=gece] .plus-kicker{color:#d9b56a}:root[data-theme=gece] .mcols-tick span{color:var(--warm-gray)}:root[data-theme=gece] img{opacity:.94}.theme-picks{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.theme-pick{display:grid;justify-items:center;gap:6px;padding:8px 4px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font:inherit;font-size:13px;color:var(--text);cursor:pointer}.theme-pick.on{border-color:var(--brown);box-shadow:inset 0 0 0 1px var(--brown)}.theme-pick:disabled{cursor:default;opacity:.6}.theme-swatch{position:relative;width:52px;height:38px;border-radius:9px;overflow:hidden;border:1px solid rgba(0,0,0,.12)}.theme-swatch i{position:absolute;left:8px;right:8px;height:6px;border-radius:3px}.theme-lock{position:absolute;right:3px;top:3px;color:#8c8378}:root[data-theme=gece] .cover-blank{color:#3a2b20}:root[data-theme=gece] .cover-blank-author{color:#6b5d52}:root[data-theme=gece] .nav{background:#17130ff0}:root[data-theme=gece] .loc-card{border-color:var(--line);background:linear-gradient(180deg,#2a231d,#241e19)}:root[data-theme=gece] .bookcase-body{background:#2a231d;border-color:#5a3f2c}:root[data-theme=gece] .shelf-line{border-bottom-color:#5a3f2c}:root[data-theme=gece] .shelf-line:hover{background:#ffffff0a}:root[data-theme=sahaf] .nav{background:#ebe7d6f0}:root[data-theme=lacivert] .nav{background:#edf0f5f0}:root[data-theme=sahaf] .loc-card,:root[data-theme=lacivert] .loc-card{border-color:var(--line);background:var(--surface)}:root[data-theme=gece] .cover:not(.has-img){filter:brightness(.86) saturate(.9)}.wish-actions{margin:0 0 14px}.wish-list{display:grid;gap:10px}.wish-item{display:flex;gap:12px;align-items:flex-start;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.wish-item .grow{min-width:0;display:grid;gap:3px;justify-items:start}.wish-item strong{line-height:1.3}.wish-owned{opacity:.85}.wish-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:2px 9px;border-radius:99px;background:var(--stone);color:var(--text-2)}.wish-badge-ok{background:var(--ok-bg);color:var(--ok)}.wish-note{background:none;border:0;padding:0;font:inherit;font-size:13.5px;color:var(--text-2);font-style:italic;text-align:left;cursor:pointer}.wish-note-form{display:flex;gap:8px;width:100%;margin-top:4px}.wish-note-form .input{flex:1;min-width:0}.wish-results{display:grid;gap:8px;margin-top:12px}.wish-link{font-size:13px;overflow-wrap:anywhere;flex:1 1 200px}.wish-public{max-width:560px;margin:0 auto;display:grid;gap:16px}.wish-public-head{display:grid;justify-items:center;text-align:center;gap:8px}.wish-public-head h1{font-size:26px;margin:0}.wish-public-head p{margin:0}.wish-note-public{margin:4px 0 0;font-size:13.5px;color:var(--text-2);font-style:italic}.wish-mark{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px}.wish-taken{opacity:.7}.wish-buy{margin-top:4px;font-size:13.5px}.wish-buy summary{cursor:pointer;color:var(--brown);font-weight:600}.wish-buy .chips{margin-top:8px}.wish-owned-block,.wish-shelf{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:grid;gap:8px}.wish-owned-block h2,.wish-shelf h2{font-size:17px;margin:0}.wish-owned-block p,.wish-shelf p{margin:0}.wish-owned-list,.wish-shelf-res ul{margin:0;padding-left:18px;display:grid;gap:2px;font-size:14px}.wish-cta{text-align:center;display:grid;gap:10px;padding:8px 0 4px}.wish-cta p{margin:0}.stars{display:inline-flex;align-items:center;gap:1px;color:var(--bronze);line-height:0}.star path{fill:none;stroke:var(--warm-gray);stroke-width:1.6;stroke-linejoin:round}.star.on path{fill:currentColor;stroke:currentColor}.stars-input{gap:0;margin-left:-6px}.star-btn{display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:10px;background:none;color:var(--bronze);cursor:pointer}.star-btn:hover .star:not(.on) path{stroke:var(--bronze)}.star-btn:focus-visible{outline:2px solid var(--brown);outline-offset:-2px}.review-empty{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px}.review-body{display:grid;gap:4px;min-width:0}.review-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:16px}.review-meta:empty{display:none}.review-lang{font-size:11px;font-weight:600;letter-spacing:.03em;padding:1px 7px;border-radius:99px;background:var(--stone);color:var(--text-2)}.review-text{margin:0;font-family:var(--serif);font-size:15.5px;line-height:1.45;overflow-wrap:anywhere}.review-text.clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.review-spoiler{position:relative;display:block;width:100%;padding:6px 8px;margin:0;border:1px dashed var(--line);border-radius:var(--radius-sm);background:var(--stone);font:inherit;text-align:left;cursor:pointer;overflow:hidden}.review-spoiler-text{display:block;font-family:var(--serif);font-size:15px;color:var(--text);filter:blur(5px);-webkit-user-select:none;user-select:none;max-height:2.9em;overflow:hidden}.review-spoiler-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:600;color:var(--text)}.review-friends{margin-top:6px}.review-row{display:grid;gap:4px;padding:10px 0;border-top:1px solid var(--line)}.sub-title+.review-row{border-top:0;padding-top:4px}.review-who{display:flex;align-items:center;gap:8px;min-height:34px}.review-who .icon-btn{color:var(--warm-gray)}.review-form{display:grid;gap:10px}.review-prompt{margin:0;font-family:var(--serif);font-size:18px;color:var(--text)}.review-input{resize:none;min-height:64px;font-size:16px}.review-form-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.review-form-row .chips{margin:0}.chip-sm{min-height:32px;padding:0 12px;font-size:13px}.review-left-low{color:var(--warn)}.review-quote{margin:0 0 12px;padding:10px 12px;border-left:3px solid var(--line);background:var(--stone);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.friend-book .review-body,.person-row .review-body{margin-top:6px}.admin-review{margin:8px 0;padding:8px 10px;border-left:3px solid var(--line);background:var(--stone);border-radius:0 var(--radius-sm) var(--radius-sm) 0;display:grid;gap:4px}@media(forced-colors:active){.star.on path{fill:CanvasText;stroke:CanvasText}.review-spoiler-text{filter:none;visibility:hidden}}.plus-buy{display:grid;gap:12px}.plus-buy .card-title{text-align:center}.plus-plans{display:grid;gap:8px}.plus-plan{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;min-height:56px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer}.plus-plan.on{border-color:var(--brown);box-shadow:inset 0 0 0 1px var(--brown)}.plus-plan-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:600}.plus-save{font-size:12px;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--ok-bg);color:var(--ok)}.plus-plan-price{white-space:nowrap}.plus-terms{margin:0;line-height:1.45}.credit-note{display:flex;align-items:center;gap:10px}.android-banner{position:relative;margin:0 0 14px;padding:14px 44px 14px 16px;border-radius:var(--radius-sm);background:var(--brown-soft);color:var(--text)}.android-banner-title{font-family:var(--serif);font-weight:600;font-size:18px;color:var(--brown);margin:0 0 4px}.android-banner-text{font-size:15px;line-height:1.45;margin:0 0 10px}.android-banner .btn{display:inline-flex;align-items:center;gap:6px}.android-banner-close{position:absolute;top:6px;right:6px}.founder-note{display:flex;gap:12px;align-items:flex-start;margin:0 0 14px;padding:14px 16px;border-radius:var(--radius-sm);background:var(--brown-soft);color:var(--text)}.founder-note.compact{margin:4px 0 8px;padding:10px 12px}.founder-avatar{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--brown);color:var(--on-brown);font-family:var(--serif);font-size:20px;font-weight:600}.founder-note.compact .founder-avatar{width:32px;height:32px;font-size:16px}.founder-note-text{margin:0 0 6px;font-size:15px;line-height:1.45}.founder-promise{margin:0;display:flex;gap:6px;align-items:center;font-weight:600;color:var(--brown);font-size:15px}.founder-note.compact .founder-note-text,.founder-note.compact .founder-promise{font-size:14px}.pill-new{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;background:var(--bronze);color:var(--on-brown);font-size:12px;font-weight:600;vertical-align:middle}.founder-band{display:flex;gap:10px;align-items:center;margin:0 0 14px;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--text);font-size:14px;line-height:1.4}.founder-band .icon{flex:none;color:var(--brown)}.founder-band a{color:var(--brown);font-weight:600}.founder-band-reply{text-decoration:none;background:var(--brown-soft);border-color:transparent}.founder-band-reply strong{color:var(--brown)}.fb-tools{align-items:center;margin-top:6px}.fb-count{text-align:right}.fb-attach{position:relative;display:inline-block;margin-top:8px}.fb-attach img{max-width:160px;max-height:200px;border-radius:8px;border:1px solid var(--line);display:block}.fb-attach .icon-btn{position:absolute;top:-8px;right:-8px;background:var(--surface);border:1px solid var(--line)}.fb-row{width:100%;text-align:left;background:none;border-left:0;border-right:0;border-bottom:0;color:inherit;text-decoration:none;cursor:pointer;font:inherit}.card-title+.fb-row{border-top:0}.fb-admin-row:first-child{border-top:0}.fb-row .grow{display:flex;flex-direction:column;gap:2px}.fb-title{display:block}.fb-preview{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-wrap}.fb-kind{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--stone);color:var(--brown)}.fb-kind-bug,.fb-kind-complaint{background:var(--warn-bg);color:var(--warn)}.fb-kind-thanks{background:var(--ok-bg);color:var(--ok)}.fb-status{color:var(--text-2)}.fb-status-waiting{color:var(--bronze);font-weight:600}.fb-status-answered{color:var(--ok);font-weight:600}.fb-late,.fb-row-late .fb-status{color:var(--err)!important;font-weight:700}.fb-row-late .fb-kind{background:var(--err-bg);color:var(--err)}.fb-tiles{display:flex;flex-wrap:wrap;gap:8px 16px;margin:6px 0 10px;font-size:14px;color:var(--text-2)}.fb-tiles strong{color:var(--text);font-size:17px}.fb-thread{display:flex;flex-direction:column;gap:10px;margin-top:8px}.fb-msg{max-width:88%;padding:10px 12px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}.fb-mine{align-self:flex-end;background:var(--brown-soft);border-color:transparent;border-bottom-right-radius:4px}.fb-theirs{align-self:flex-start;border-bottom-left-radius:4px}.fb-founder .fb-who{color:var(--brown);font-weight:600}.fb-who{color:var(--text-2);margin-bottom:4px}.fb-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.45}.fb-img img{display:block;margin-top:8px;max-width:100%;max-height:260px;border-radius:8px;border:1px solid var(--line)}.fb-system{align-self:center;display:flex;gap:6px;align-items:center;color:var(--text-2);margin:2px 0 0;text-align:center}.notif-band{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px;padding:12px;border-radius:var(--radius-sm);background:var(--brown-soft);color:var(--text);font-size:14px;line-height:1.4}.notif-band>.icon{flex:none;color:var(--brown);margin-top:1px}.notif-band strong{color:var(--brown)}.notif-book{font-weight:600}.notif-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:8px}.notif-actions a{color:var(--brown);font-weight:600}.notif-actions .ok-text{display:inline-flex;align-items:center;gap:4px;font-weight:600}.notif-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.notif-item{display:flex;gap:12px;align-items:flex-start}.notif-item>.icon{flex:none;color:var(--brown);margin-top:2px}.notif-item.unread{border-color:var(--brown)}.notif-item p{margin:6px 0 0}.notif-keep{margin-top:6px}.notif-list .notif-item{margin:0}.notif-empty{text-align:center}.rt-intro{text-align:center;max-width:460px;margin:8px auto 0}.rt-intro h1{font-family:var(--serif);font-size:32px;margin:6px 0 10px}.rt-intro p{margin-bottom:22px}.rt-question{max-width:520px;margin:0 auto}.rt-progress{height:6px;border-radius:99px;background:var(--stone);overflow:hidden;margin:4px 0 10px}.rt-progress span{display:block;height:100%;background:var(--brown);border-radius:99px;transition:width .25s ease}.rt-count{margin:0 0 6px}.rt-q{font-family:var(--serif);font-size:27px;line-height:1.25;margin:0 0 18px}.rt-options{display:grid;gap:10px}.rt-option{text-align:left;padding:15px 16px;border-radius:14px;border:1px solid var(--line);background:var(--surface, #fffdf9);color:inherit;font:inherit;font-size:16px;line-height:1.35;cursor:pointer}.rt-option:active{transform:scale(.99);border-color:var(--brown)}@media(hover:hover){.rt-option:hover{border-color:var(--brown)}}.rt-hero{text-align:center;padding-top:18px}.rt-hero h1{font-family:var(--serif);font-size:32px;margin:2px 0 6px}.rt-kicker{margin:4px 0 0;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--bronze)}.rt-tagline{margin:0 0 6px}.rt-tip{margin-top:12px}.rt-books{list-style:none;margin:0 0 10px;padding:0}.rt-book{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.rt-book:first-child{border-top:0}.rt-share{display:grid;gap:10px;margin:6px 0 24px}.center-block{display:block;margin:0 auto}.email-hint{margin:-4px 0 12px}.email-hint p{margin:0 0 8px}.import-csv .import-help{margin:0 0 12px}.import-csv .import-help summary{cursor:pointer;font-size:14px;color:var(--brown-2)}.import-csv .import-help ul{margin:8px 0 0;padding-left:18px;display:grid;gap:6px}.import-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px 14px;margin:10px 0}.import-map-row{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:center;gap:8px;font-size:14px}.import-map-row .select{width:100%;min-width:0}.import-preview ol{margin:4px 0 0;padding-left:20px;display:grid;gap:4px}.import-result{margin:0 0 8px;padding-left:18px;display:grid;gap:6px}.import-wish .row label{align-items:center}.import-more{margin:4px 0 10px}.import-more summary{cursor:pointer;color:var(--brown-2)}.svc-dot.warn{background:#c8902a}.svc-stats{margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.svc-table{width:100%;border-collapse:collapse;margin-top:6px}.svc-table td{padding:4px 0;border-bottom:1px solid var(--line)}.svc-table td.num{text-align:right;width:64px;font-variant-numeric:tabular-nums}.avatar-art{background:none;overflow:hidden;padding:0}.avatar-art svg{width:100%;height:100%;display:block}.profile-head{display:flex;align-items:center;gap:16px;margin:4px 0 14px}.profile-hub{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px}.hub-card{display:flex;flex-direction:column;gap:4px;padding:12px 14px;color:var(--text);text-decoration:none}.hub-card>.icon{color:var(--bronze);margin-bottom:2px}.hub-card:hover{border-color:var(--brown)}.profile-head h1{margin:0 0 2px}.profile-pic-btn{position:relative;border:0;background:none;padding:0;border-radius:50%;cursor:pointer;flex:none}.profile-pic-edit{position:absolute;right:0;bottom:2px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--brown);border:1px solid var(--line);box-shadow:0 1px 3px #0000001f}.profile-tiles{margin-top:12px}.profile-tiles-note{grid-column:1 / -1;margin:0}.avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:10px;margin-top:10px}.avatar-choice{display:grid;justify-items:center;gap:6px;padding:10px 4px;border:2px solid transparent;border-radius:var(--radius-sm);background:none;color:inherit;font-size:12px;text-align:center;cursor:pointer}.avatar-choice.selected{border-color:var(--brown);background:var(--brown-soft)}.avatar-choice:disabled{opacity:.6}.month-pick-row{display:flex;gap:12px;align-items:flex-start}.page-head.profile-head{align-items:flex-start}.pick-note{margin:6px 0 4px;font-family:var(--serif);font-style:italic}.pick-list{display:grid;gap:4px;max-height:55vh;overflow:auto}.pick-list-item{display:flex;gap:10px;align-items:center;padding:6px;border:0;border-radius:var(--radius-sm);background:none;color:inherit;text-align:left;cursor:pointer}.pick-list-item:hover,.pick-list-item:focus-visible{background:var(--brown-soft)}.profile-link-card{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none}.profile-link-card:hover{border-color:var(--brown)}.quote-card .card-title .icon,.quote-link>.icon:first-child{color:var(--bronze)}.quote-row{display:flex;align-items:flex-start;gap:6px;padding:10px 0;border-top:1px solid var(--line)}.card-head+.quote-row,.quote-form+.quote-row{border-top:0;padding-top:2px}.quote-list .quote-row{padding:14px 12px 12px 16px;border-top:0}.quote-list{display:grid;gap:10px}.quote-item{flex:1;min-width:0;margin:0;display:grid;gap:4px}.quote-text{margin:0;padding-left:12px;border-left:3px solid var(--bronze);font-family:var(--serif);font-size:16px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere;color:var(--text)}.quote-item figcaption{padding-left:15px}.quote-actions{display:flex;gap:2px;flex-shrink:0}.quote-actions .icon-btn{color:var(--warm-gray)}.quote-empty{display:grid;justify-items:start;gap:8px}.quote-empty p{margin:0}.quote-form{display:grid;gap:10px;padding:4px 0 10px}.quote-input{resize:vertical;min-height:96px;font-family:var(--serif);font-size:16px;line-height:1.45}.quote-form-row{display:flex;align-items:center;gap:8px}.quote-page{width:110px;min-height:40px}.quote-link{display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none}.quote-link:hover{border-color:var(--brown)}.quote-link>.icon:last-child{color:var(--warm-gray)}.friend-book-cover{padding:0;border:0;background:none;cursor:pointer;align-self:flex-start;border-radius:4px}.friend-book-cover:focus-visible,.friend-book-title:focus-visible{outline:2px solid var(--brown);outline-offset:2px}.friend-book-title{display:block;padding:0;border:0;background:none;font:inherit;font-weight:600;color:var(--text);text-align:left;cursor:pointer}.friend-book-title:hover{text-decoration:underline;text-underline-offset:3px}.friend-book-detail{display:grid;gap:12px}.friend-book-detail .mb-0{margin-bottom:0}.friend-book-desc p{margin:4px 0 0;font-family:var(--serif);font-size:15.5px;line-height:1.5;white-space:pre-line;overflow-wrap:anywhere}.friend-book-desc .clamp-6{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}.friend-book-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin:0}.friend-book-facts div{min-width:0}.friend-book-facts dt{font-size:12px;color:var(--text-2)}.friend-book-facts dd{margin:0;font-size:15px;overflow-wrap:anywhere}.reading-bar{display:grid;gap:6px;padding:10px 12px;margin:-4px 0 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.reading-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:8px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.reading-bar .chips,.reading-row .chips{display:flex;flex-wrap:wrap;gap:6px}.peek-decide{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.bookstore-row{padding:12px}.bookstore-row+.bookstore-row{margin-top:10px}.raf-art{position:relative;border-radius:var(--radius-sm);overflow:hidden;background:var(--raf-wall, var(--stone));border:1px solid var(--line)}.raf-art svg{display:block;width:100%;height:auto}.raf-art .raf-book{cursor:pointer}.raf-art .raf-book:hover rect:first-child,.raf-art .raf-book:focus-visible rect:first-child{filter:brightness(1.08)}.raf-art .raf-book:focus-visible{outline:none}.raf-objects{position:absolute;left:7%;right:7%;display:flex;align-items:flex-end;gap:6px;pointer-events:none;transform:translateY(6%)}.raf-object{pointer-events:auto;border:0;background:transparent;padding:0;cursor:pointer;line-height:0;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}.raf-object:focus-visible{outline:2px solid var(--brown);outline-offset:2px;border-radius:8px}.raf-art.compact .raf-objects{gap:3px;left:8%}.raf-art.compact .raf-object{filter:none}.raf-hint{margin:6px 2px 10px}.shelf-line.visual{align-items:center}.shelf-art-mini{width:100%;min-width:0}.shelf-art-mini .raf-art{border-radius:8px}.raf-style-card{display:flex;align-items:center;gap:12px;padding:12px 14px;margin-bottom:12px;color:inherit;text-decoration:none}.raf-pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin:6px 0 12px}.raf-pick{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font:inherit;font-size:12px;color:var(--text);cursor:pointer;text-align:center}.raf-pick:hover{border-color:var(--brown)}.raf-obj-head{display:flex;align-items:center;gap:14px}.raf-style-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.raf-style-pick{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:8px;border:2px solid var(--line);border-radius:12px;background:var(--surface);font:inherit;color:var(--text);cursor:pointer;text-align:left}.raf-style-pick.on{border-color:var(--brown);box-shadow:0 0 0 2px color-mix(in srgb,var(--brown) 20%,transparent)}.raf-style-pick strong{font-size:14px;margin-top:4px}.raf-swatches{display:flex;flex-wrap:wrap;gap:10px}.raf-swatch{display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:transparent;font:inherit;font-size:12px;color:var(--text-2);cursor:pointer;padding:2px}.raf-swatch i{display:block;width:44px;height:44px;border-radius:12px;border:2px solid var(--line)}.raf-swatch.on i{border-color:var(--brown);box-shadow:0 0 0 2px color-mix(in srgb,var(--brown) 25%,transparent)}.raf-swatch.on{color:var(--text);font-weight:600}.shelf-btn.vitrin .shelf-btn-sub{color:var(--brown)}.ilk3-bar{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;margin-bottom:12px;border-radius:var(--radius-sm);background:var(--ok-bg);color:var(--text);border:1px solid color-mix(in srgb,var(--ok) 35%,transparent)}.ilk3-bar strong{color:var(--ok)}.ilk3-dots{display:inline-flex;gap:6px;margin-top:8px}.ilk3-dots i{width:22px;height:6px;border-radius:3px;background:color-mix(in srgb,var(--ok) 25%,transparent)}.ilk3-dots i.on{background:var(--ok)}.ilk3-celebrate{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:6px 0 4px}.ilk3-celebrate p{margin:0;max-width:34ch}.shelf-read{font-size:11px;color:var(--text-2);line-height:1}.read-pace{margin:6px 0 0}.stat-tiles.tight{margin-bottom:10px}.day-bars{display:flex;align-items:flex-end;gap:2px;height:64px;padding:4px 0 2px}.day-bar{flex:1 1 0;min-width:0;background:var(--data);border-radius:2px 2px 0 0}.day-bar.off{background:var(--line)}.reading-now{margin-top:10px}.share-all-note{margin:-4px 0 8px}.uprofil-head{margin-bottom:8px}.uprofil-head h1{font-size:24px;margin:0}.uprofil-shelf .card-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.uprofil-books{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}.uprofil-books li{display:flex;align-items:center;gap:10px;min-width:0}.uprofil-title{display:block;overflow-wrap:anywhere}.uprofil-link{color:var(--brown);overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.uprofil-settings{margin-top:10px;display:grid;gap:6px}.uprofil-shelves-title{margin:8px 0 0;font-weight:600}.uprofil-shelf-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}.uprofil-shelf .shelf-code,.uprofil-shelf-list .shelf-code{width:auto;white-space:nowrap}.quote-vis{display:inline-flex;align-items:center;gap:4px;color:var(--text-2);font-size:12px;margin:2px 0 0}.quote-vis-select{border:0;background:transparent;color:var(--text-2);font:inherit;font-size:12px;padding:2px 0}.quote-main{min-width:0;display:grid;gap:4px}.quote-main .quote-vis{padding-left:15px}.spine-btn .spine-dot{display:block;width:18px;height:18px;border-radius:50%;border:2px solid var(--line)}.spine-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}.spine-pick{display:flex;flex-direction:column;align-items:center;gap:4px;border:0;background:transparent;font:inherit;font-size:12px;color:var(--text-2);cursor:pointer;padding:2px}.spine-pick i{display:block;width:44px;height:44px;border-radius:12px;border:2px solid var(--line)}.spine-pick.on i{border-color:var(--brown);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--brown)}.raf-art.reorder svg,.raf-art.reorder .raf-object{touch-action:none}.raf-art.reorder .raf-book{cursor:grab}.raf-art.reorder .raf-book.dragging{cursor:grabbing;opacity:.85;filter:drop-shadow(0 4px 4px rgba(0,0,0,.3))}.raf-art.reorder .raf-object{cursor:grab}.raf-art.reorder .raf-object.dragging{cursor:grabbing;opacity:.85}.raf-art.reorder:after{content:"";position:absolute;inset:0;border:2px dashed var(--brown);border-radius:inherit;pointer-events:none;opacity:.35}.raf-art.reorder{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
