:root{color-scheme:light;--bg: #f5f7f8;--panel: #ffffff;--panel-soft: #f0f6f4;--ink: #1e2428;--muted: #68747b;--line: #dce5e8;--teal: #0f8b80;--teal-soft: #dff4f1;--coral: #d85d4b;--coral-soft: #fde9e5;--amber: #b97a10;--amber-soft: #fff1cc;--violet: #7457c9;--violet-soft: #eee9ff;--blue: #2f67c8;--blue-soft: #e6efff;--shadow: 0 18px 40px rgba(18, 34, 41, .08);--shadow-soft: 0 10px 24px rgba(18, 34, 41, .06)}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:linear-gradient(135deg,rgba(15,139,128,.08),transparent 34%),linear-gradient(220deg,rgba(216,93,75,.08),transparent 36%),var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}.app-fallback{max-width:520px;margin:80px auto;padding:28px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow-soft)}.app-fallback h1{margin:0 0 10px;font-size:24px}.app-fallback p{margin:0 0 18px;color:var(--muted);line-height:1.6}.app-fallback-actions{display:flex;flex-wrap:wrap;gap:10px}.app-fallback button{border:0;border-radius:8px;background:var(--teal);color:#fff;padding:10px 16px;font-weight:700}.app-fallback button.secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}button,input{font:inherit}button{border:0}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible,.detail-panel:focus-visible{outline:3px solid rgba(15,139,128,.24);outline-offset:2px}button:active,.book-card:active,.shelf-card:active,.method-card:active,.nearby-shelf-card:active,.shelf-book-row:active{transform:translateY(1px)}.app-shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.side-nav{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:24px 16px;border-right:1px solid var(--line);background:linear-gradient(180deg,#fffffff0,#f4faf8db),#ffffffc7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand-mark{display:flex;align-items:center;gap:10px;margin-bottom:28px;border-radius:8px;padding:8px 10px;font-size:18px;font-weight:800}.brand-mark svg{color:var(--teal)}.side-nav nav{display:grid;gap:6px}.nav-item,.bottom-item,.chip,.book-card,.shelf-card,.method-card,.secondary-command,.primary-command,.points-button,.register-shortcut,.icon-command,.back-button,.signout-button,.bulk-actions button,.small-icon-command,.small-text-command,.danger-command,.quiet-command,.location-mini-command,.topbar-user-pill,.shelf-select{cursor:pointer;touch-action:manipulation}.nav-item{position:relative;display:flex;align-items:center;gap:10px;min-height:42px;border-radius:8px;padding:0 12px;color:var(--muted);background:transparent;text-align:left;transition:background .14s ease,color .14s ease,transform .14s ease}.nav-item:hover{color:var(--ink);background:#0f8b8014}.nav-item.active{color:var(--teal);background:var(--teal-soft);font-weight:750;transform:translate(2px)}.nav-badge,.bottom-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;padding:0 6px;color:#fff;background:var(--coral);font-size:11px;font-weight:850;line-height:1;box-shadow:0 6px 14px #f76f6047}.nav-badge{margin-left:auto}.side-nav-footer{display:grid;gap:10px;margin-top:auto}.sidebar-user-card,.sidebar-guest-card{display:grid;gap:10px;border:1px solid rgba(15,139,128,.14);border-radius:8px;padding:12px;background:#ffffffc2;box-shadow:var(--shadow-soft)}.sidebar-user-card{grid-template-columns:44px minmax(0,1fr);align-items:center}.sidebar-user-card .avatar{width:44px;height:44px;font-size:18px}.sidebar-user-card div,.sidebar-guest-card div{min-width:0}.sidebar-user-card strong,.sidebar-user-card span,.sidebar-user-card small,.sidebar-guest-card strong,.sidebar-guest-card span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-card span,.sidebar-user-card small,.sidebar-guest-card span{color:var(--muted);font-size:12px}.sidebar-user-card b{grid-column:1 / -1;width:fit-content;border-radius:999px;padding:4px 9px;color:var(--teal);background:var(--teal-soft);font-size:12px}.sidebar-guest-card .secondary-command{width:100%;min-height:36px}.sidebar-auth-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sidebar-auth-actions .secondary-command,.sidebar-auth-actions .primary-command{width:100%;min-height:36px}.workspace{position:relative;width:min(1180px,100%);margin:0 auto;padding:22px 28px 44px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px;border-bottom:1px solid rgba(220,229,232,.72);padding-bottom:18px}.eyebrow{margin:0 0 5px;color:var(--teal);font-size:13px;font-weight:750}h1,h2,p{margin-top:0}.topbar h1{margin:0;font-size:30px;line-height:1.15}.topbar-meta{margin:7px 0 0;color:var(--muted);font-size:14px}.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.top-auth-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.top-auth-actions .secondary-command,.top-auth-actions .register-shortcut{min-height:38px}.data-sync-badge{display:inline-flex;align-items:center;justify-content:center;min-height:32px;min-width:88px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--muted);background:#ffffffd1;font-size:12px;font-weight:800;white-space:nowrap}.data-sync-badge.ok{border-color:#0f8b8033;color:var(--teal);background:var(--teal-soft)}.data-sync-badge.syncing{border-color:#b97a1038;color:var(--amber);background:var(--amber-soft)}.data-sync-badge.pending{border-color:#346fb233;color:var(--blue);background:#346fb21a}.data-sync-badge.offline{border-color:#b97a103d;color:var(--amber);background:var(--amber-soft)}.cloud-deploy-gate{min-height:100dvh;display:grid;place-items:center;padding:28px;background:linear-gradient(135deg,rgba(15,139,128,.12),transparent 42%),var(--page)}.cloud-deploy-gate section{width:min(720px,100%);border:1px solid rgba(15,139,128,.18);border-radius:8px;padding:28px;background:#ffffffeb;box-shadow:var(--shadow)}.cloud-deploy-gate h1{margin:0 0 12px;font-size:30px;line-height:1.18}.cloud-deploy-gate p{margin:0 0 18px;color:var(--text);line-height:1.75}.cloud-deploy-gate small{display:block;margin-top:16px;color:var(--muted);line-height:1.6}.gate-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:8px;color:var(--teal);background:var(--teal-soft);margin-bottom:18px}.deploy-check-list{display:flex;flex-wrap:wrap;gap:10px}.deploy-check-list a{min-height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(15,139,128,.22);border-radius:8px;padding:0 14px;color:var(--teal);background:var(--teal-soft);font-weight:850;text-decoration:none}.topbar-user-pill{display:inline-flex;align-items:center;gap:9px;min-height:42px;max-width:260px;border:1px solid var(--line);border-radius:8px;padding:5px 10px 5px 6px;color:var(--ink);background:#ffffffe0;box-shadow:var(--shadow-soft)}.topbar-user-pill .avatar{width:30px;height:30px;border-radius:8px;font-size:14px}.topbar-user-pill span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-user-pill strong{flex:0 0 auto;color:var(--teal);font-size:13px}.system-notice{display:flex;align-items:center;gap:8px;margin:-8px 0 18px;border:1px solid rgba(15,139,128,.22);border-radius:8px;padding:10px 12px;color:var(--teal);background:var(--teal-soft);font-size:13px;font-weight:800}.system-notice.maintenance{border-color:#b97a103d;color:var(--amber);background:var(--amber-soft)}.system-notice svg{flex:0 0 auto}.points-button,.register-shortcut,.secondary-command,.primary-command,.back-button,.icon-command,.signout-button,.bulk-actions button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border-radius:8px;padding:0 13px;font-weight:750}.points-button{color:var(--ink);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow)}.register-shortcut{color:#fff;background:var(--teal);box-shadow:var(--shadow)}.screen{display:grid;gap:18px}.control-band{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.search-box{display:flex;align-items:center;gap:10px;height:44px;border:1px solid var(--line);border-radius:8px;padding:0 13px;background:var(--panel)}.search-box svg{color:var(--muted)}.search-box input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink)}.icon-command{color:var(--teal);background:var(--teal-soft)}.location-mini-command{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:78px;min-height:44px;border-radius:8px;padding:0 12px;color:var(--teal);background:var(--teal-soft);font-weight:800;white-space:nowrap}.location-mini-command:disabled{color:var(--muted);background:#eef2f4;cursor:wait}.map-strip,.nearby-shelf-detail,.bulk-band,.add-intro,.register-panel,.wallet-panel,.profile-head{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.nearby-map-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.85fr);gap:14px;align-items:start}.nearby-detail-anchor{scroll-margin-top:18px}.map-strip{display:grid;gap:12px;overflow:hidden;padding:14px}.map-strip-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.map-strip-head span{color:var(--teal);font-size:13px;font-weight:800;white-space:nowrap}.location-command{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid rgba(15,139,128,.24);border-radius:8px;padding:0 11px;color:var(--teal);background:var(--teal-soft);font-weight:800;white-space:nowrap;cursor:pointer}.location-command:disabled{color:var(--muted);background:#eef2f4;cursor:wait}.map-location-status{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:8px;padding:8px 10px;color:var(--muted);background:#f5f8f8;font-size:13px}.map-location-status.ok{color:var(--teal);background:var(--teal-soft)}.map-location-status.error{color:var(--coral);background:var(--coral-soft)}.map-location-status strong{font-size:13px;white-space:nowrap}.map-strip p,.nearby-shelf-detail p,.nearby-shelf-detail.empty span,.nearby-shelf-card small,.shelf-book-row small,.empty-map-state span,.bulk-band p,.add-intro p,.wallet-panel p,.method-card p,.timeline-row p,.profile-head p,.setting-row span,.book-card-body p,.shelf-card p,.recognized-card p,.detail-cover-row p,.detail-note{color:var(--muted)}.map-strip p{margin-bottom:8px}.map-strip strong{font-size:24px}.osm-map{position:relative;overflow:hidden;min-height:320px;border:1px solid var(--line);border-radius:8px;background:#dfeae6;isolation:isolate}.osm-tile-grid{position:absolute;inset:-16%;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);opacity:.9;filter:saturate(.88) contrast(.96)}.osm-tile-grid img{width:100%;height:100%;object-fit:cover}.map-zoom-controls{position:absolute;top:12px;right:12px;z-index:6;display:grid;grid-template-rows:36px 28px 36px;overflow:hidden;border:1px solid rgba(15,139,128,.22);border-radius:8px;background:#fffffff0;box-shadow:0 12px 22px #12222929;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-zoom-controls button,.map-zoom-controls span{display:inline-flex;align-items:center;justify-content:center;width:38px;min-width:38px;border:0}.map-zoom-controls button{color:var(--teal);background:transparent;cursor:pointer}.map-zoom-controls button:hover:not(:disabled){background:var(--teal-soft)}.map-zoom-controls button:disabled{color:#b7c3c6;cursor:not-allowed}.map-zoom-controls span{color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;font-weight:850}.map-soft-overlay{position:absolute;inset:0;background:linear-gradient(180deg,#ffffff24,#ffffff57),radial-gradient(circle at 52% 52%,transparent 0 25%,rgba(255,255,255,.5) 66%);pointer-events:none;z-index:1}.map-radius-ring{position:absolute;left:50%;top:52%;width:min(94%,310px);aspect-ratio:1;border:1px dashed rgba(15,139,128,.46);border-radius:50%;transform:translate(-50%,-50%);z-index:2;pointer-events:none}.map-user-dot,.map-shelf-marker{position:absolute;z-index:4;display:inline-flex;align-items:center;justify-content:center}.map-user-dot{left:50%;top:52%;width:34px;height:34px;border:2px solid white;border-radius:50%;color:#fff;background:var(--teal);box-shadow:0 10px 20px #0f8b8047;transform:translate(-50%,-50%)}.map-shelf-marker{gap:3px;min-width:42px;height:34px;border:2px solid white;border-radius:999px;padding:0 9px;color:#fff;background:var(--coral);box-shadow:0 12px 22px #12222933;transform:translate(-50%,-100%);cursor:pointer}.map-shelf-marker:nth-of-type(2n){background:var(--blue)}.map-shelf-marker:nth-of-type(3n){background:var(--amber)}.map-shelf-marker.active{background:var(--teal);box-shadow:0 12px 22px #0f8b8042,0 0 0 6px #0f8b802e}.map-shelf-marker.real{background:var(--violet)}.map-shelf-marker.real.active{background:var(--violet);box-shadow:0 12px 22px #7457c940,0 0 0 6px #7457c92b}.map-shelf-marker.locked{opacity:.82}.map-shelf-marker span{font-size:12px;font-weight:900}.nearby-shelf-detail{display:grid;gap:13px;padding:14px}.nearby-shelf-detail.empty,.empty-map-state{place-items:center;min-height:180px;text-align:center}.shelf-detail-head{display:flex;gap:12px;align-items:start}.shelf-detail-head h2{margin:4px 0 5px;font-size:22px;line-height:1.18}.shelf-detail-head>div>span{color:var(--teal);font-size:12px;font-weight:800}.shelf-pin-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:34px;height:34px;border-radius:8px;color:var(--teal);background:var(--teal-soft)}.shelf-pin-icon.large{width:42px;height:42px}.shelf-detail-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.shelf-detail-stats div{border-radius:8px;padding:9px;background:#f5f8f8}.shelf-detail-stats span,.shelf-book-row small{display:block}.shelf-detail-stats span{color:var(--muted);font-size:12px}.shelf-detail-stats strong{margin-top:3px;font-size:15px}.nearby-shelf-list,.shelf-book-list{display:grid;gap:9px}.section-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.section-title-row span{color:var(--muted);font-size:13px}.nearby-shelf-card,.shelf-book-row{display:grid;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;padding:10px;color:inherit;background:var(--panel);text-align:left;cursor:pointer}.nearby-shelf-card{grid-template-columns:34px minmax(0,1fr) 22px}.nearby-shelf-card.active{border-color:#0f8b8066;background:var(--teal-soft)}.nearby-shelf-card.real{border-color:#7457c947}.nearby-shelf-card.real .shelf-pin-icon,.nearby-shelf-detail.real .shelf-pin-icon{color:var(--violet);background:var(--violet-soft)}.nearby-shelf-card.real.active{background:var(--violet-soft)}.nearby-shelf-card.locked{background:#fbfcfc}.nearby-shelf-card.locked:hover{border-color:#0f8b8047}.guest-overview{background:linear-gradient(135deg,rgba(15,139,128,.07),transparent 54%),var(--panel)}.nearby-shelf-card strong,.shelf-book-row strong{display:block;overflow-wrap:anywhere}.shelf-book-row{grid-template-columns:58px minmax(0,1fr) auto}.shelf-book-row.locked{background:#fbfcfc}.shelf-book-row .listing-pill{justify-self:end}.empty-map-state{border:1px dashed var(--line);border-radius:8px;padding:20px;background:#fbfcfc}.filter-row,.bulk-actions,.tag-row,.card-line,.owner-row{display:flex;align-items:center}.filter-row,.bulk-actions{gap:8px;overflow-x:auto;padding-bottom:2px}.filter-row{scroll-snap-type:x proximity;scrollbar-width:none}.filter-row::-webkit-scrollbar{display:none}.bulk-actions{flex-wrap:wrap;overflow-x:visible}.shelf-screen>.bulk-actions.active{border:1px solid rgba(15,139,128,.2);border-radius:8px;padding:10px;background:#fbfcfc}.chip,.bulk-actions button,.bulk-actions select{min-height:36px;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--muted);background:var(--panel);white-space:nowrap}.chip{scroll-snap-align:start}.bulk-actions select{min-width:190px}.chip.active{color:var(--teal);border-color:#0f8b8059;background:var(--teal-soft);font-weight:750}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.book-card,.shelf-card,.recognized-card,.method-card,.timeline-row,.ledger-row,.setting-row{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.book-card{display:grid;grid-template-columns:88px minmax(0,1fr);gap:14px;min-height:170px;padding:14px;color:inherit;text-align:left;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.book-card:hover,.shelf-card:hover,.method-card:hover{transform:translateY(-2px);border-color:#0f8b806b;box-shadow:var(--shadow)}.book-card.locked{cursor:pointer;background:linear-gradient(135deg,rgba(15,139,128,.06),transparent 55%),var(--panel)}.book-card.locked .book-cover{box-shadow:inset 7px 0 #ffffff2e,inset 0 0 0 999px #ffffff14}.book-card.locked h2{color:var(--ink)}.book-card.locked p{color:var(--muted)}.book-cover{position:relative;display:grid;place-items:end center;align-self:start;flex:0 0 auto;width:88px;aspect-ratio:2 / 3;min-height:0;overflow:hidden;border-radius:8px;padding:10px;color:#fff;background:linear-gradient(160deg,rgba(255,255,255,.2),transparent 32%),linear-gradient(135deg,var(--cover-a),var(--cover-b));box-shadow:inset 7px 0 #ffffff2e}.book-cover.compact{width:58px;min-height:0;padding:6px}.book-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#f8fafc}.book-cover span{position:relative;z-index:1;display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:13px;font-weight:800;line-height:1.25;text-align:center;text-shadow:0 1px 7px rgba(0,0,0,.35)}.book-cover.compact span{font-size:10px}.book-card-body{min-width:0}.card-line{justify-content:space-between;gap:8px}.book-card h2,.shelf-card h2,.recognized-card h2,.method-card h2{margin:10px 0 3px;font-size:18px;line-height:1.25;overflow-wrap:anywhere}.recognized-card p{overflow-wrap:anywhere}.distance,.small-label{color:var(--muted);font-size:12px}.listing-pill{display:inline-flex;align-items:center;gap:5px;min-height:25px;border-radius:999px;padding:0 8px;font-size:12px;font-weight:750}.reading-status-pill{display:inline-flex;align-items:center;justify-content:center;min-height:25px;border-radius:999px;padding:0 8px;font-size:12px;font-weight:800;white-space:nowrap}.listing-pill.coral,.primary-command.coral{color:var(--coral);background:var(--coral-soft)}.listing-pill.teal,.primary-command.teal{color:var(--teal);background:var(--teal-soft)}.listing-pill.amber,.primary-command.amber{color:var(--amber);background:var(--amber-soft)}.listing-pill.violet,.primary-command.violet{color:var(--violet);background:var(--violet-soft)}.listing-pill.blue,.primary-command.blue{color:var(--blue);background:var(--blue-soft)}.reading-status-pill.teal{color:var(--teal);background:var(--teal-soft)}.reading-status-pill.blue{color:var(--blue);background:var(--blue-soft)}.reading-status-pill.violet{color:var(--violet);background:var(--violet-soft)}.reading-status-pill.amber{color:var(--amber);background:var(--amber-soft)}.usage-pill{display:inline-flex;align-items:center;min-height:25px;border-radius:999px;padding:0 8px;color:#33524e;background:#e8f4f1;font-size:12px;font-weight:850;white-space:nowrap}.card-reading-progress,.reading-progress-track{width:100%;height:8px;overflow:hidden;border-radius:999px;background:#e8edef}.card-reading-progress{margin-top:8px}.card-reading-progress span,.reading-progress-track span{display:block;height:100%;min-width:0;border-radius:inherit;background:linear-gradient(90deg,var(--teal),#78b7aa)}.reading-progress-section{gap:12px}.reading-progress-meta{display:flex;flex-wrap:wrap;gap:7px}.reading-progress-meta span{border-radius:999px;padding:5px 8px;color:var(--muted);background:#eef2f4;font-size:12px;font-weight:750}.owner-row{gap:5px;margin-top:10px;color:var(--muted);font-size:13px}.tag-row{flex-wrap:wrap;gap:6px;margin-top:12px}.tag-row span,.small-label{border-radius:999px;padding:4px 7px;background:#eef2f4}.guest-summary,.auth-gate{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.guest-summary{display:flex;gap:10px;align-items:flex-start;padding:12px 14px}.guest-summary svg,.auth-gate-icon{color:var(--teal)}.guest-summary strong,.guest-summary span{display:block}.guest-summary span{margin-top:3px;color:var(--muted);font-size:13px;line-height:1.45}.wishlist-discovery,.wishlist-panel,.household-panel{display:grid;gap:14px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:16px;background:var(--panel);box-shadow:var(--shadow-soft)}.household-panel>.section-title-row:first-child{align-items:flex-start;padding-bottom:4px}.household-panel>.section-title-row:first-child strong{font-size:18px}.wishlist-discovery-grid,.wishlist-list,.household-actions,.household-member-list,.household-requests{display:grid;gap:10px}.household-empty-copy,.household-pending-self,.household-status-card,.household-code-card,.household-member-row,.household-request-row{display:grid;align-items:center;gap:10px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:11px;background:#fbfcfc}.household-empty-copy{grid-template-columns:auto minmax(0,1fr);align-items:flex-start;color:var(--muted);font-size:13px;line-height:1.5}.household-pending-self{display:grid;gap:4px;color:var(--amber);background:var(--amber-soft);border-color:#b67c093d;font-size:13px}.household-pending-self span{color:var(--muted)}.household-status-card{grid-template-columns:auto minmax(0,1fr) auto;align-items:flex-start;gap:12px;padding:14px;background:linear-gradient(135deg,#0f8b801a,#fffffff5);border-color:#0f8b802e}.household-status-card.pending{background:linear-gradient(135deg,#b67c0921,#fffffffa);border-color:#b67c093d}.household-status-card.empty{background:#fbfcfc}.household-status-icon{display:grid;place-items:center;width:42px;aspect-ratio:1;border-radius:8px;background:var(--teal-soft);color:var(--teal)}.household-status-icon svg{color:currentColor}.household-status-card.pending .household-status-icon{background:var(--amber-soft);color:var(--amber)}.household-status-copy{display:grid;gap:4px;min-width:0}.household-status-copy small{color:var(--teal);font-size:12px;font-weight:800}.household-status-card.pending .household-status-copy small{color:var(--amber)}.household-status-copy strong{font-size:18px;line-height:1.25}.household-status-copy span,.household-pending-row span{color:var(--muted);font-size:13px;line-height:1.45}.household-status-pill{justify-self:end;display:inline-flex;align-items:center;min-height:28px;border:1px solid rgba(15,139,128,.22);border-radius:999px;padding:4px 10px;background:var(--teal-soft);color:var(--teal);font-size:12px;font-weight:800;white-space:nowrap}.household-status-card.pending .household-status-pill{border-color:#b67c0938;background:var(--amber-soft);color:var(--amber)}.household-status-metrics,.household-pending-list{grid-column:2 / -1;display:grid;gap:8px;min-width:0}.household-status-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.household-status-metrics div,.household-pending-row{display:grid;gap:2px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:9px 10px;background:#ffffffb8}.household-status-metrics strong{font-size:18px;line-height:1}.household-status-metrics span{color:var(--muted);font-size:12px}.household-empty-copy svg,.household-code-card svg{flex:0 0 auto;color:var(--teal)}.household-form-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;min-width:0}.household-form-row input{width:100%;min-width:0}.household-code-card{grid-template-columns:minmax(0,1fr) auto;gap:12px;background:linear-gradient(135deg,#0f8b8014,#fffffff5)}.household-code-card small{color:var(--muted);font-size:12px}.household-invite-qr{display:grid;place-items:center;width:var(--qr-size, 96px);min-width:var(--qr-size, 96px);aspect-ratio:1;border-radius:8px;padding:6px;background:#fff;border:1px solid #dbe8e6}.household-invite-qr svg{display:block;width:100%;height:100%}.household-code-card>div:first-child,.household-member-info,.household-request-info{display:grid;gap:3px;min-width:0}.household-member-row{grid-template-columns:48px minmax(0,1fr) minmax(220px,auto);padding:12px}.household-member-row .avatar,.household-request-row .avatar{width:48px;height:48px;font-size:20px}.household-member-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:7px;min-width:0}.household-member-actions select{width:auto;min-width:96px;height:34px;border-radius:8px;font-size:13px}.household-owner-badge{display:inline-flex;align-items:center;min-height:28px;border:1px solid rgba(15,139,128,.22);border-radius:999px;padding:4px 9px;background:var(--teal-soft);color:var(--teal);font-size:12px;font-weight:700;white-space:nowrap}.household-owner-badge.muted{border-color:var(--line);background:#f5f7f7;color:var(--muted)}.household-code-card span,.household-member-row span,.household-request-row span,.household-muted{color:var(--muted);font-size:13px;line-height:1.45}.household-code-card strong,.household-member-row strong,.household-request-row strong,.household-member-row span,.household-request-row span{min-width:0;overflow-wrap:anywhere}.household-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.household-summary-grid div{display:grid;gap:2px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfcfc}.household-summary-grid strong{font-size:20px;line-height:1}.household-summary-grid span{color:var(--muted);font-size:12px}.household-request-row{grid-template-columns:48px minmax(0,1fr) auto;align-items:center;padding:12px}.household-request-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.household-request-actions .primary-command,.household-request-actions .secondary-command{min-height:36px;padding:0 14px}.household-footer-actions{display:flex;justify-content:flex-end}.household-muted{margin:0}@media(max-width:640px){.household-form-row,.household-request-row,.household-code-card,.household-status-card,.household-member-row{grid-template-columns:1fr}.household-status-icon,.household-status-pill{justify-self:start}.household-status-metrics,.household-pending-list{grid-column:auto}.household-status-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.household-member-row,.household-request-row{grid-template-columns:44px minmax(0,1fr)}.household-member-actions,.household-request-actions{grid-column:1 / -1}.household-code-card{justify-items:stretch}.household-invite-qr{width:min(100%,180px);justify-self:center}.household-form-row .primary-command,.household-form-row .secondary-command,.household-request-actions,.household-request-actions .primary-command,.household-request-actions .secondary-command{width:100%}.household-member-row{align-items:flex-start}.household-member-actions{width:100%;justify-content:stretch}.household-request-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.household-member-actions select,.household-member-actions .quiet-command,.household-member-actions .danger-command,.household-footer-actions .quiet-command{width:100%}.household-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.wishlist-card,.wishlist-row{display:grid;gap:10px;align-items:center;min-width:0;border:1px solid var(--line);border-radius:8px;padding:11px;background:#fbfcfc}.wishlist-card{grid-template-columns:minmax(0,1fr) auto}.wishlist-row{grid-template-columns:minmax(0,1fr) auto auto}.wishlist-card div,.wishlist-row div{display:grid;gap:4px;min-width:0}.wishlist-card strong,.wishlist-card span,.wishlist-card small,.wishlist-row strong,.wishlist-row span,.wishlist-row small{min-width:0;overflow-wrap:anywhere}.wishlist-card span,.wishlist-card small,.wishlist-row span,.wishlist-row small{color:var(--muted);font-size:13px}.wishlist-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;min-width:0}.wishlist-form input,.wishlist-form select{min-width:0;min-height:40px;border:1px solid var(--line);border-radius:8px;padding:0 11px;color:var(--ink);background:#fbfcfc;outline:0}.wishlist-form .wishlist-note-input{grid-column:1 / -1}.wishlist-form .primary-command{grid-column:1 / -1;min-height:40px}.auth-gate{display:grid;justify-items:start;gap:16px;max-width:560px;padding:22px}.auth-gate-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:8px;background:var(--teal-soft)}.auth-gate h2{margin:0 0 6px;font-size:24px;line-height:1.2}.auth-gate p{margin:0;color:var(--muted);line-height:1.65}.detail-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px 24px 20px 256px;background:#10181c2e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.detail-panel{position:relative;z-index:1;display:grid;align-content:start;gap:18px;width:min(1040px,100%);max-height:calc(100vh - 40px);overflow-y:auto;padding:22px;box-sizing:border-box;border:1px solid var(--line);border-radius:8px;background:#fffffff5;box-shadow:0 24px 70px #0f1b1f29;overscroll-behavior:contain;scrollbar-gutter:stable;outline:none}@media(prefers-reduced-motion:no-preference){.detail-overlay{animation:detailOverlayIn .15s ease-out}.detail-panel{animation:detailPanelIn .18s ease-out}}@keyframes detailOverlayIn{0%{opacity:0}}@keyframes detailPanelIn{0%{opacity:0;transform:translateY(10px) scale(.985)}}.detail-panel-header{position:sticky;top:-22px;z-index:5;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin:-22px -22px 0;border-bottom:1px solid rgba(220,229,232,.8);padding:14px 22px;background:#fffffff7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.detail-panel-title{display:grid;justify-items:center;min-width:0;line-height:1.2}.detail-panel-title strong,.detail-panel-title span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-panel-title strong{font-size:15px}.detail-panel-title span{color:var(--muted);font-size:12px;font-weight:750}.detail-close-button{flex:0 0 auto;width:38px;min-height:38px;padding:0}.back-button{width:fit-content;color:var(--ink);background:#eef2f4}.detail-back-button{min-height:38px;padding:0 12px}.back-button.inline{margin-bottom:-6px}.detail-cover-row{display:grid;grid-template-columns:132px minmax(0,1fr);gap:18px;align-items:start;border-radius:8px;padding:6px;background:linear-gradient(135deg,rgba(15,139,128,.06),transparent 50%),#fbfcfc}.detail-cover-row .book-cover{width:132px;min-height:0}.detail-cover-row h2{margin:16px 0 4px;font-size:28px;line-height:1.14;overflow-wrap:anywhere}.detail-source-line{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:9px;color:var(--muted);font-size:13px;font-weight:750}.detail-source-line span{min-width:0;overflow-wrap:anywhere}.detail-facts,.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.detail-facts div,.stats-row div{border:1px solid var(--line);border-radius:8px;padding:13px;background:var(--panel)}.detail-facts span,.stats-row span,.wallet-panel span{display:block;margin-bottom:7px;color:var(--muted);font-size:13px}.detail-facts strong,.stats-row strong{font-size:18px;overflow-wrap:anywhere}.isbn-value{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.detail-note{margin:0;line-height:1.7}.detail-section{display:grid;gap:10px;min-width:0;border-top:1px solid var(--line);padding-top:16px}.detail-section h3{margin:0;font-size:15px}.own-book-tools{border-top:0;padding-top:0}.own-book-action-grid,.own-book-media-tools,.own-book-edit-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.own-book-action-grid button,.own-book-media-tools label,.own-book-edit-actions button{flex:1 1 132px;min-height:38px}.own-book-edit-form{display:grid;gap:10px;min-width:0}.own-note-field>div{align-items:flex-start;height:auto;padding:10px 12px}.own-note-field textarea{width:100%;min-width:0;border:0;resize:vertical;color:var(--ink);background:transparent;outline:0;font:inherit;line-height:1.45}.own-book-delete-confirm{margin-top:2px}.travel-hero,.travel-discovery-panel,.travel-map-panel,.travel-passport,.travel-section,.travel-card{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.travel-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px}.travel-hero h2{margin:0 0 8px;font-size:24px;line-height:1.2}.travel-hero p{margin:0;color:var(--muted);line-height:1.7}.travel-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(78px,1fr));gap:8px}.travel-hero-stats div{border:1px solid var(--line);border-radius:8px;padding:11px;background:#fbfcfc}.travel-hero-stats span{display:block;margin-bottom:5px;color:var(--muted);font-size:12px;font-weight:750}.travel-hero-stats strong{font-size:22px}.travel-discovery-panel{display:grid;gap:12px;padding:16px}.travel-discovery-panel>div:first-child span{display:block;margin-top:4px;color:var(--muted);font-size:13px}.travel-code-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.travel-code-input-row input,.travel-discovery-panel textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;padding:11px 12px;outline:0;background:#fbfcfc;color:var(--ink)}.travel-discovery-panel textarea{resize:vertical}.travel-scanner{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfcfc}.travel-scanner.error{border-color:#d85d4b47;background:var(--coral-soft)}.travel-scanner.recognized{border-color:#0f8b8042;background:var(--teal-soft)}.travel-scanner-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.travel-scanner-head div{min-width:0}.travel-scanner-head span{display:block;margin-top:4px;color:var(--muted);font-size:13px;line-height:1.45}.travel-scanner video{display:none;width:100%;max-height:260px;border-radius:8px;background:#101820;object-fit:cover}.travel-scanner.scanning video,.travel-scanner.starting video{display:block}.travel-login-note,.travel-match-card,.travel-card-book{display:flex;align-items:center;gap:10px;min-width:0}.travel-login-note{flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--muted);background:#fbfcfc}.travel-login-note span{flex:1 1 220px}.travel-match-card{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfcfc}.travel-match-card>div,.travel-card-book>div{min-width:0}.travel-match-card strong,.travel-match-card span,.travel-card-book strong,.travel-card-book span,.travel-card-book small{display:block;min-width:0;overflow-wrap:anywhere}.travel-match-card span,.travel-card-book span,.travel-card-book small{margin-top:3px;color:var(--muted);font-size:13px}.travel-section{display:grid;gap:12px;padding:16px}.travel-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.travel-card{display:grid;gap:12px;padding:12px;box-shadow:none}.travel-card.own{background:linear-gradient(180deg,#fff,#f8fcfb)}.travel-card-actions{display:flex;flex-wrap:wrap;gap:8px}.travel-card-actions button{flex:1 1 128px}.travel-card-actions.compact .secondary-command{min-height:34px;flex:1 1 118px}.travel-proof-note{margin:-4px 0 0;border-radius:8px;padding:8px 10px;color:var(--muted);background:#f5f8f8;font-size:12px;font-weight:750;line-height:1.45}.travel-proof-note.ok{color:var(--teal);background:var(--teal-soft)}.travel-passport{display:grid;gap:14px;padding:16px}.travel-passport-head{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center}.travel-passport-head>div{min-width:0}.travel-passport-head span,.travel-passport-head p{color:var(--muted)}.travel-passport-head h3{margin:3px 0;font-size:21px;line-height:1.25;overflow-wrap:anywhere}.travel-passport-head p{margin:0;line-height:1.5}.travel-passport-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.travel-passport-stats div{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfcfc}.travel-passport-stats span{display:block;margin-bottom:4px;color:var(--muted);font-size:12px;font-weight:750}.travel-passport-stats strong{font-size:20px}.travel-action-panel{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfcfc}.travel-action-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.travel-action-grid select,.travel-action-panel textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px 11px;outline:0;background:#fff;color:var(--ink)}.travel-action-panel textarea{resize:vertical}.travel-owner-actions{display:flex;flex-wrap:wrap;gap:8px}.travel-owner-actions button{flex:1 1 150px}.travel-map-panel{display:grid;gap:12px;padding:16px}.travel-map{min-height:260px}.travel-map-route{position:absolute;inset:0;z-index:3;width:100%;height:100%;pointer-events:none}.travel-map-route polyline{fill:none;stroke:var(--teal);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8 2.2;vector-effect:non-scaling-stroke}.travel-map-marker{position:absolute;z-index:5;display:grid;place-items:center;width:30px;height:30px;border:2px solid white;border-radius:50%;color:#fff;background:var(--teal);box-shadow:0 10px 20px #12222933;font-size:12px;font-weight:900;transform:translate(-50%,-50%)}.travel-map-marker.released,.travel-map-marker.found{background:var(--violet)}.travel-map-marker.returned{background:var(--amber)}.travel-map-list{display:flex;flex-wrap:wrap;gap:8px}.travel-map-list span{border-radius:999px;padding:6px 9px;color:var(--muted);background:#eef2f4;font-size:12px;font-weight:750}.travel-map-list strong{color:var(--ink)}.travel-status{display:inline-flex;align-items:center;justify-content:center;min-height:28px;border-radius:999px;padding:0 9px;color:var(--teal);background:var(--teal-soft);font-size:12px;font-weight:850;white-space:nowrap}.travel-status.released,.travel-status.found{color:var(--violet);background:var(--violet-soft)}.travel-status.returned{color:var(--amber);background:var(--amber-soft)}.travel-status.reading{color:var(--blue);background:var(--blue-soft)}.travel-status.lost,.travel-status.paused{color:var(--coral);background:var(--coral-soft)}.travel-label{display:grid;grid-template-columns:74px minmax(0,1fr);gap:12px;align-items:center;border:1px dashed var(--teal);border-radius:8px;padding:11px;background:var(--teal-soft)}.travel-label.compact{grid-template-columns:58px minmax(0,1fr);padding:9px}.travel-qr{display:grid;place-items:center;width:var(--qr-size, 62px);min-width:var(--qr-size, 62px);aspect-ratio:1;border-radius:6px;padding:5px;background:#fff}.travel-qr svg{display:block;width:100%;height:100%}.travel-qr span{color:var(--muted);font-size:11px;text-align:center}.travel-label-main{min-width:0}.travel-label-main span,.travel-label-main small{display:block;color:var(--muted);font-size:12px;font-weight:750}.travel-label-main strong{display:block;margin:3px 0;font-size:21px;letter-spacing:0;overflow-wrap:anywhere}.travel-label-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.travel-label-actions .small-text-command{min-height:28px;padding:0 8px;font-size:12px}.travel-label-status{margin-top:6px;color:var(--teal)!important}.travel-detail-meta{margin-top:2px}.journey-timeline{display:grid;gap:10px}.journey-entry{position:relative;display:grid;grid-template-columns:14px minmax(0,1fr);gap:8px;align-items:start}.journey-dot{width:10px;height:10px;margin-top:5px;border-radius:999px;background:var(--teal)}.journey-entry strong,.journey-entry small,.journey-entry p{display:block;min-width:0;overflow-wrap:anywhere}.journey-entry small{margin-top:2px;color:var(--muted);font-size:12px}.journey-entry p{margin:4px 0 0;color:var(--muted);line-height:1.5}.journey-more{color:var(--muted);font-weight:750}.detail-owner-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:start;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfcfc}.detail-owner-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;color:var(--teal);background:var(--teal-soft)}.detail-owner-card strong,.detail-owner-card span{display:block;min-width:0;overflow-wrap:anywhere}.detail-owner-card span{margin-top:4px;color:var(--muted);font-size:13px;line-height:1.45}.detail-handoff-preference{grid-template-columns:42px minmax(0,1fr)}.detail-handoff-preference .detail-owner-icon{color:var(--teal);background:#ffffffb8}.detail-handoff-empty{color:inherit}.book-real-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:9px;min-width:0}.book-real-photo-grid.detail{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}.book-real-photo-item,.book-real-photo-thumb,.book-real-photo-upload{min-width:0;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fbfcfc}.book-real-photo-item{margin:0}.book-real-photo-item img,.book-real-photo-thumb img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:#eef2f4}.book-real-photo-item figcaption{padding:6px 8px;color:var(--muted);font-size:12px}.book-real-photo-editor{display:grid;gap:8px;margin-top:10px;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfcfc}.book-real-photo-editor.compact{margin-top:8px;padding:8px}.book-real-photo-grid.editable{grid-template-columns:repeat(auto-fill,minmax(92px,1fr))}.book-real-photo-thumb{position:relative}.book-real-photo-thumb .small-icon-command{position:absolute;top:6px;right:6px;width:28px;height:28px;color:var(--coral);background:#ffffffe6}.book-real-photo-upload{display:grid;place-items:center;gap:6px;min-height:92px;padding:10px;color:var(--teal);background:var(--teal-soft);font-size:13px;font-weight:800;text-align:center;cursor:pointer}.book-real-photo-upload input[type=file]{display:none}.field-help{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.detail-meta-list{display:grid;gap:7px}.detail-meta-list div{display:flex;align-items:baseline;justify-content:space-between;gap:14px;min-width:0;border-bottom:1px solid #eef2f4;padding-bottom:7px}.detail-meta-list span{flex:0 0 auto;color:var(--muted);font-size:13px}.detail-meta-list strong{min-width:0;overflow-wrap:anywhere;text-align:right}.public-detail-meta-list div:nth-child(6),.public-detail-meta-list div:nth-child(7){display:none}.detail-flow-card{display:flex;gap:9px;border-radius:8px;padding:11px;color:#48606a;background:#f4f7f8;line-height:1.55}.detail-tag-row{display:flex;flex-wrap:wrap;gap:7px}.detail-tag-row span{border-radius:999px;padding:6px 9px;color:var(--teal);background:var(--teal-soft);font-size:12px;font-weight:800;overflow-wrap:anywhere}.section-title-row.compact{align-items:center;margin:0}.intent-section{gap:12px}.intent-composer,.intent-reply-box{display:grid;gap:9px;min-width:0}.intent-composer textarea,.intent-reply-box textarea{width:100%;min-width:0;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:10px;color:var(--ink);background:#fbfcfc;font:inherit;line-height:1.45;outline:0}.intent-actions,.intent-reply-actions{display:flex;flex-wrap:wrap;gap:8px}.intent-actions .primary-command{flex:1 1 128px;min-height:42px}.intent-list{display:grid;gap:10px;min-width:0}.intent-card{display:grid;gap:10px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfcfc}.intent-card.unread,.timeline-row.public-intent.unread{border-color:#f76f606b;background:linear-gradient(135deg,rgba(247,111,96,.08),transparent 58%),#fffdfb}.intent-card.owner-action,.timeline-row.public-intent.owner-action{box-shadow:inset 3px 0 #f76f6094}.intent-card.agreed{border-color:#0f8b805c;background:var(--teal-soft)}.intent-card-head{display:flex;align-items:start;justify-content:space-between;gap:12px;min-width:0}.intent-card-head strong,.intent-card-head span,.intent-card p,.empty-intent-copy{overflow-wrap:anywhere}.intent-card-head span,.intent-card p,.empty-intent-copy{color:var(--muted);line-height:1.5}.intent-card-head b{flex:0 0 auto;border-radius:999px;padding:4px 8px;color:var(--teal);background:#fff;font-size:12px}.intent-card p,.empty-intent-copy{margin:0}.intent-replies{display:grid;gap:7px}.intent-reply{display:grid;gap:3px;border-left:3px solid rgba(15,139,128,.22);padding-left:9px}.intent-reply strong,.intent-reply span,.intent-reply small{overflow-wrap:anywhere}.intent-reply span,.intent-reply small{color:var(--muted);font-size:13px}.intent-next-step,.own-book-intent-note{display:flex;gap:9px;border-radius:8px;padding:11px;color:var(--teal);background:var(--teal-soft);line-height:1.5}.intent-message-list{display:grid;gap:10px;margin-bottom:18px}.message-list-group{display:grid;gap:8px;min-width:0}.message-list-group-title{display:inline-flex;align-items:center;gap:6px;width:fit-content;border-radius:999px;padding:4px 9px;color:var(--teal);background:var(--teal-soft);font-size:12px;font-weight:800}.message-empty-dashboard{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-width:0;border:1px solid rgba(15,139,128,.16);border-radius:8px;padding:18px;background:linear-gradient(135deg,#0f8b8012,#fffffff5);box-shadow:var(--shadow-soft)}.message-empty-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:8px;color:#fff;background:var(--teal)}.message-empty-dashboard>div:nth-child(2){display:grid;gap:4px;min-width:0}.message-empty-dashboard strong{font-size:18px}.message-empty-dashboard span{color:var(--muted);line-height:1.5}.message-empty-metrics{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.message-empty-metrics span{border:1px solid var(--line);border-radius:999px;padding:5px 9px;background:#fff;color:var(--muted);font-size:12px;white-space:nowrap}.message-workspace{display:grid;grid-template-columns:minmax(0,.95fr) minmax(280px,1.05fr);gap:12px;align-items:start;margin-bottom:18px;min-width:0}.message-section-heading{margin-top:4px}.message-transaction-list{margin-bottom:0}.timeline-row.clickable{width:100%;color:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.timeline-row.clickable:hover,.timeline-row.clickable.active{border-color:#0f8b806b;box-shadow:0 12px 24px #0b222614}.timeline-row.clickable:hover{transform:translateY(-1px)}.timeline-row.clickable.active .timeline-icon{color:#fff;background:var(--teal)}.timeline-row.public-intent{border-color:#0f8b8033}.timeline-row.household-request-message{border-color:#0f8b803d;background:linear-gradient(135deg,#0f8b8014,#fff)}.timeline-row.household-request-message.owner-action{border-color:#f76f6047;background:linear-gradient(135deg,#f76f601f,#fff)}.timeline-row.public-intent.agreed{background:var(--teal-soft)}.timeline-preview{display:block;margin-top:5px;color:var(--muted);font-size:12px;line-height:1.45;overflow-wrap:anywhere}.message-detail-panel{display:grid;gap:12px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--panel)}.message-detail-panel.empty{place-items:start;color:var(--muted)}.message-detail-panel.agreed{border-color:#0f8b8057;background:var(--teal-soft)}.message-detail-panel.household-message-detail.owner-action{border-color:#f76f6047;background:linear-gradient(135deg,rgba(247,111,96,.1),var(--panel) 58%)}.message-detail-head{display:flex;justify-content:space-between;gap:12px;min-width:0}.message-detail-head h2{margin:2px 0 4px;font-size:19px;overflow-wrap:anywhere}.message-detail-head span,.message-detail-head p,.message-detail-copy{color:var(--muted)}.message-detail-head p,.message-detail-copy{margin:0;line-height:1.5;overflow-wrap:anywhere}.message-detail-head b{flex:0 0 auto;align-self:start;border-radius:999px;padding:5px 9px;color:var(--teal);background:var(--teal-soft);font-size:12px}.message-detail-meta{display:flex;flex-wrap:wrap;gap:6px}.message-detail-meta span{border:1px solid var(--line);border-radius:999px;padding:4px 8px;color:var(--muted);background:#fbfcfc;font-size:12px;overflow-wrap:anywhere}.message-detail-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.intent-routing-note{display:flex;align-items:flex-start;gap:8px;border:1px solid rgba(15,139,128,.16);border-radius:8px;padding:9px 10px;color:var(--muted);background:#fbfcfc;line-height:1.5}.intent-routing-note.owner{border-color:#f76f603d;color:#9f3c34;background:var(--coral-soft)}.intent-routing-note svg{flex:0 0 auto;margin-top:2px}.transaction-detail{margin-top:12px}.handoff-panel{display:grid;gap:10px;min-width:0;border:1px solid rgba(15,139,128,.18);border-radius:8px;padding:12px;background:#fbfcfc}.handoff-help{margin:0;color:var(--muted);line-height:1.5}.handoff-selected{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(15,139,128,.24);border-radius:8px;padding:10px;color:var(--teal);background:var(--teal-soft)}.handoff-selected.confirmed{border-color:#0f8b8061;background:#eef8f5}.handoff-selected strong,.handoff-selected span,.handoff-selected small{display:block;overflow-wrap:anywhere}.handoff-selected span,.handoff-selected small{color:var(--muted);line-height:1.45}.handoff-place-list{display:grid;gap:8px;min-width:0}.handoff-place-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px;color:inherit;background:#fff;text-align:left}.handoff-place-card:hover,.handoff-place-card.active{border-color:#0f8b8066;background:var(--teal-soft)}.handoff-place-card:disabled{cursor:default;opacity:.78}.handoff-place-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;color:var(--teal);background:var(--teal-soft)}.handoff-place-card strong,.handoff-place-card small{display:block;overflow-wrap:anywhere}.handoff-place-card small{color:var(--muted);line-height:1.45}.profile-handoff-panel{background:var(--panel);box-shadow:var(--shadow)}.profile-handoff-panel.collapsed{padding:10px 12px}.profile-handoff-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0}.profile-handoff-summary-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;color:var(--teal);background:var(--teal-soft)}.profile-handoff-summary>div:nth-child(2){display:grid;gap:2px;min-width:0}.profile-handoff-summary span,.profile-handoff-summary small{color:var(--muted);font-size:12px;line-height:1.35}.profile-handoff-summary strong{min-width:0;overflow-wrap:anywhere;font-size:15px}.profile-handoff-summary-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.profile-handoff-summary-actions .quiet-command,.profile-handoff-summary-actions .secondary-command{min-height:34px;padding:0 11px}.handoff-selected.profile-choice{background:#fff}.custom-handoff-form{display:grid;gap:10px;min-width:0;border-top:1px solid var(--line);padding-top:10px}.custom-handoff-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(120px,.7fr);gap:8px;min-width:0}.custom-handoff-grid input,.custom-handoff-grid select{width:100%;min-width:0;min-height:38px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--ink);background:#fff;outline:0}.custom-handoff-form .primary-command{width:fit-content}.safety-note{display:flex;gap:9px;border-radius:8px;padding:12px;color:var(--teal);background:var(--teal-soft);line-height:1.5}.primary-command{width:100%;min-height:48px}.detail-action-bar{display:grid;gap:10px}.detail-request-button{min-height:52px;font-size:15px}.bulk-band{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px}.shelf-screen>.stats-row{order:1;display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.shelf-screen>.stats-row div{flex:0 0 auto;min-width:92px;padding:8px 10px}.shelf-screen>.stats-row span{margin-bottom:3px;font-size:11px}.shelf-screen>.stats-row strong{font-size:15px}.shelf-screen>.user-shelf-preview-panel{order:2}.shelf-screen>.physical-shelf-browser{order:3}.shelf-screen>.shelf-add-panel{order:3}.shelf-screen>.physical-shelf-panel{order:4}.shelf-screen>.shelf-control-panel{order:5}.shelf-screen>.shelf-list-head{order:7}.shelf-screen>.bulk-band{order:8}.shelf-screen>.bulk-actions{order:9}.shelf-screen>.shelf-list{order:10}.bulk-band h2,.add-intro h2,.wallet-panel p{margin-bottom:5px}.bulk-count{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border-radius:999px;padding:0 11px;color:var(--muted);background:#eef2f4;font-size:13px;font-weight:800;white-space:nowrap}.bulk-count.active{color:var(--teal);background:var(--teal-soft)}.bulk-band.idle{border-style:dashed;box-shadow:none}.bulk-band.active{border-color:#0f8b8047;background:linear-gradient(135deg,#0f8b8014,#ffffffe0),var(--panel)}.secondary-command{color:var(--teal);background:var(--teal-soft)}.user-shelf-preview-panel{display:grid;gap:12px;min-width:0;border:1px solid rgba(108,72,38,.22);border-radius:8px;padding:12px;background:linear-gradient(135deg,#7a4f2c1a,#0f8b800f),var(--panel);box-shadow:var(--shadow)}.user-shelf-preview-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.user-shelf-preview-head div{min-width:0}.user-shelf-preview-head strong,.user-shelf-preview-head span{display:block}.user-shelf-preview-head>span{flex:0 0 auto;border-radius:999px;padding:4px 8px;color:var(--teal);background:var(--teal-soft);font-size:12px;font-weight:850;white-space:nowrap}.user-shelf-preview-head div span{margin-top:2px;color:var(--muted);font-size:13px}.user-shelf-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;min-width:0}.user-shelf-preview-item{display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:10px;align-items:start;justify-items:stretch;min-height:168px;min-width:0;border:1px solid rgba(108,72,38,.18);border-radius:8px;padding:12px;color:inherit;text-align:left;background:#ffffffb8;box-shadow:var(--shadow-soft)}.user-shelf-preview-item .physical-shelf-mini{justify-self:center;width:min(100%,148px);height:auto;min-height:0;aspect-ratio:var(--mini-shelf-ratio, 1.62 / 1)}.user-shelf-preview-item .physical-shelf-mini-rows{inset:7px 7px 6px;gap:5px}.user-shelf-preview-item .physical-shelf-mini-rows span{gap:1px;overflow:hidden;border-bottom-width:5px;padding:0 3px 3px}.user-shelf-preview-item .physical-shelf-mini-rows i{flex:1 1 1px;min-width:.5px}.user-shelf-preview-item.active{border-color:#0f8b807a;background:var(--teal-soft)}.user-shelf-preview-item>span{display:grid;justify-items:center;gap:3px;min-width:0;text-align:center}.user-shelf-preview-item strong,.user-shelf-preview-item small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-shelf-preview-item small{color:var(--muted)}.shelf-control-panel,.physical-shelf-panel{display:grid;gap:8px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px;background:var(--panel)}.shelf-add-panel{display:flex;justify-content:flex-end;min-width:0}.shelf-add-panel .primary-command{width:auto;min-height:36px;padding:0 12px}.shelf-screen>.physical-shelf-panel{background:linear-gradient(135deg,#68747b0f,#ffffffdb),var(--panel);box-shadow:var(--shadow-soft)}.shelf-search-box{background:#fbfcfc}.reading-filter-row{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.reading-filter-row button{display:inline-flex;align-items:center;gap:6px;min-height:34px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--muted);background:#fbfcfc;font-weight:800;cursor:pointer}.reading-filter-row button.active{color:var(--teal);border-color:#0f8b8057;background:var(--teal-soft)}.reading-filter-row button span{color:inherit;opacity:.74;font-size:12px}.section-kicker{display:block;margin-bottom:4px;color:var(--teal);font-size:12px;font-weight:850}.shelf-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(15,139,128,.16);border-radius:8px;padding:12px;background:linear-gradient(135deg,#0f8b8014,#2f67c80d)}.shelf-toolbar div{min-width:0}.shelf-toolbar strong,.shelf-toolbar span{display:block}.shelf-toolbar span{color:var(--muted);font-size:13px}.shelf-toolbar .primary-command{width:auto;min-height:40px;flex:0 0 auto;padding:0 13px}.shelf-toolbar.compact{justify-content:flex-end;padding:10px;background:#fbfcfc}.shelf-discover-toggle{border:0;padding:0;background:transparent}.physical-create-row,.physical-shelf-filter-row,.physical-photo-row,.physical-shelf-head,.physical-layer-row,.physical-edit-actions{display:flex;align-items:center;gap:8px;min-width:0}.physical-shelf-filter-row,.physical-shelf-head{flex-wrap:wrap}.physical-shelf-head input{flex:1 1 160px}.physical-shelf-head input[aria-label=书架宽度厘米],.physical-shelf-head input[aria-label=书架高度厘米]{flex:0 1 140px}.physical-shelf-filter-row button{min-height:38px;border:1px solid var(--line);border-radius:8px;padding:0 12px;color:var(--muted);background:#fbfcfc}.physical-shelf-filter-row button.active{color:var(--teal);border-color:#277c7057;background:var(--teal-soft)}.physical-shelf-filter-row button span{min-width:22px;border-radius:999px;padding:2px 7px;color:var(--ink);background:#ffffffc7}.physical-create-row input,.physical-shelf-head input,.physical-note-input,.physical-layer-row input{width:100%;min-width:0;min-height:36px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--ink);background:#fbfcfc;outline:0}.physical-shelf-list,.physical-layer-list{display:grid;gap:8px;min-width:0}.physical-shelf-card{display:grid;gap:8px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfcfc}.physical-shelf-card:not(.editing){cursor:pointer}.physical-shelf-card.active{border-color:#277c706b;box-shadow:0 0 0 2px #277c7014}.physical-shelf-card.editing{background:#fff}.physical-shelf-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-width:0}.physical-shelf-summary-button{display:grid;grid-template-columns:112px minmax(0,1fr);gap:10px;align-items:center;min-width:0;border:0;padding:0;text-align:left;color:inherit;background:transparent}.physical-shelf-summary-text{display:grid;gap:3px;min-width:0}.physical-shelf-summary-text strong,.physical-shelf-summary-text small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.physical-shelf-summary-text small{color:var(--muted)}.physical-shelf-summary-actions,.physical-edit-actions{justify-content:flex-end;flex-wrap:wrap}.physical-edit-actions .small-text-command,.physical-edit-actions .primary-command{min-height:32px;padding:0 10px;font-size:13px}.physical-layer-preview{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.physical-layer-preview span{border:1px solid var(--line);border-radius:999px;padding:4px 8px;color:var(--muted);background:#fff}.physical-shelf-head input{font-weight:800}.physical-shelf-card .small-text-command,.physical-shelf-card .primary-command{width:fit-content}.physical-photo-row{flex-wrap:wrap}.physical-shelf-photo{display:grid;place-items:center;width:92px;aspect-ratio:4 / 3;overflow:hidden;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:#eef2f4}.physical-shelf-photo img{width:100%;height:100%;object-fit:cover}.physical-shelf-mini{position:relative;width:122px;height:var(--mini-shelf-height, 98px);overflow:hidden;border:1px solid rgba(148,163,184,.34);border-radius:8px;background:linear-gradient(180deg,#fffffff5,#eff4f7eb),linear-gradient(90deg,#f8fafc,#fff 45%,#e7edf1);box-shadow:inset 0 0 0 1px #ffffffdb,0 8px 18px #1f293714}.physical-shelf-mini img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.physical-shelf-mini.has-photo:after,.real-shelf-stage.photo-backed:after{position:absolute;inset:0;content:"";background:linear-gradient(180deg,#0d131608,#0d13161f),linear-gradient(90deg,rgba(255,255,255,.08),transparent 40%,rgba(0,0,0,.08));pointer-events:none}.physical-shelf-mini-rows{position:absolute;inset:7px;display:grid;grid-template-rows:repeat(var(--mini-layer-count, 1),minmax(0,1fr));gap:6px;z-index:1}.physical-shelf-mini-rows span{display:flex;align-items:end;gap:2px;border-bottom:5px solid rgba(148,163,184,.72);padding:0 3px 3px}.physical-shelf-mini-rows i{display:block;width:clamp(.5px,var(--spine-w, 1px),1.25px);height:var(--spine-h, 70%);max-height:calc(100% - 2px);min-height:12px;border-radius:2px 2px 0 0;background:linear-gradient(90deg,var(--spine-a),var(--spine-b))}.physical-shelf-browser{scroll-margin-top:96px}.physical-shelf-browser.active{margin-top:4px;margin-bottom:12px}.physical-shelf-browser-card{display:grid;grid-template-columns:104px minmax(0,1fr) auto;gap:14px;align-items:start;min-width:0;border:1px solid rgba(39,124,112,.28);border-radius:8px;padding:14px;background:linear-gradient(135deg,#0f8b8014,#ffffffdb 58%),var(--panel);box-shadow:var(--shadow)}.real-shelf-browser-card{grid-template-columns:1fr;gap:12px;padding:12px}.real-shelf-browser-head{display:flex;align-items:start;justify-content:space-between;gap:14px;min-width:0}.real-shelf-head-actions{display:flex;flex:0 0 auto;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px}.real-shelf-head-actions .secondary-command,.real-shelf-head-actions .primary-command,.real-shelf-head-actions .quiet-command{min-height:32px;padding:0 10px;font-size:13px;white-space:nowrap}.real-shelf-view-toggle{display:inline-flex;align-items:center;gap:3px;min-height:32px;padding:3px;border:1px solid rgba(15,139,128,.2);border-radius:8px;background:#f0fdfac2}.real-shelf-view-toggle button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:26px;border:0;border-radius:6px;padding:0 9px;color:var(--muted);background:transparent;font-size:13px;font-weight:800;white-space:nowrap;cursor:pointer}.real-shelf-view-toggle button.active{color:var(--teal-strong);background:#fff;box-shadow:0 4px 10px #0f8b8024}.physical-shelf-editor-card{display:grid;gap:10px;min-width:0;border:1px solid rgba(15,139,128,.18);border-radius:8px;padding:12px;background:#ffffffc7}.physical-photo-ratio-panel{display:grid;gap:10px;min-width:0;border:1px solid rgba(15,139,128,.16);border-radius:8px;padding:10px;background:#ffffffc2}.physical-photo-ratio-panel.physical-simple-panel{gap:8px}.physical-quick-ratio-panel{padding:9px 10px;background:#f7fcfbd1}.physical-quick-ratio-panel.editing{gap:12px;background:#fff}.physical-quick-ratio-panel .physical-photo-ratio-actions{justify-content:flex-end}.physical-quick-ratio-panel.editing .physical-photo-ratio-actions{justify-content:flex-start}.physical-quick-ratio-panel .secondary-command,.physical-quick-ratio-panel .quiet-command{min-height:30px;padding:0 10px;font-size:12px}.physical-photo-ratio-panel>div{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;min-width:0}.physical-photo-ratio-panel strong,.physical-photo-ratio-panel span{min-width:0}.physical-photo-ratio-panel>div span{color:var(--muted);font-size:12px;font-weight:800}.physical-photo-ratio-panel label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;color:var(--muted);font-size:12px;font-weight:850}.physical-dimension-quick{display:grid;grid-template-columns:repeat(2,minmax(96px,.5fr)) auto auto;gap:8px;align-items:end;min-width:0}.physical-dimension-quick label{display:grid;grid-template-columns:1fr;gap:5px}.physical-dimension-quick label span{color:var(--muted);font-size:12px;font-weight:850}.physical-dimension-quick input{width:100%;min-width:0;min-height:34px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--ink);background:#fbfcfc;outline:0}.physical-photo-ratio-panel .photo-layer-weight-list{display:grid;gap:8px;min-width:0}.photo-layer-tune-row{display:grid;gap:8px;min-width:0;border:1px solid rgba(15,139,128,.12);border-radius:8px;padding:8px;background:#f5faf9c7}.photo-layer-tune-row>div:first-child{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;min-width:0}.photo-layer-tune-row strong,.photo-layer-tune-row span{min-width:0}.photo-layer-tune-row>div:first-child span{color:var(--muted);font-size:11px;font-weight:800}.photo-layer-tune-actions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;min-width:0}.photo-layer-tune-actions button{min-width:0;min-height:30px;border:1px solid rgba(15,139,128,.18);border-radius:8px;color:var(--teal);background:var(--teal-soft);font-size:12px;font-weight:900}.physical-photo-ratio-panel .photo-layer-weight-row{display:grid;grid-template-columns:minmax(64px,.8fr) minmax(0,1.4fr) auto;gap:10px;align-items:center;min-width:0;color:var(--muted);font-size:12px;font-weight:850}.photo-layer-weight-row>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.photo-layer-weight-stepper{display:inline-grid;grid-template-columns:28px minmax(36px,auto) 28px;gap:4px;align-items:center}.photo-layer-weight-stepper button{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(15,139,128,.18);border-radius:8px;color:var(--teal);background:var(--teal-soft);font-size:15px;font-weight:900}.photo-layer-weight-stepper span{min-width:36px;text-align:center}.physical-photo-ratio-panel input[type=range]{width:100%;min-width:0;accent-color:var(--teal)}.physical-photo-ratio-actions{display:flex;flex-wrap:wrap;gap:8px}.physical-photo-ratio-actions .secondary-command,.physical-photo-ratio-actions .quiet-command{min-height:34px;padding:0 12px}.physical-layer-calibration-panel summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none}.physical-layer-calibration-panel summary::-webkit-details-marker{display:none}.physical-layer-calibration-panel summary span{color:var(--teal);font-size:13px;font-weight:850}.physical-layer-calibration-panel summary b{color:var(--muted);font-size:12px;font-weight:750}.physical-layer-calibration-panel[open]>div{margin-top:8px}.real-shelf-stage{position:relative;--shelf-frame-thickness: 3px;--shelf-layer-thickness: 4px;width:min(100%,var(--shelf-stage-max-width, 520px));height:var(--shelf-stage-height, auto);aspect-ratio:var(--shelf-stage-ratio, 4 / 3);min-height:0;margin-inline:auto;overflow:hidden;border:1px solid rgba(148,163,184,.38);border-radius:8px;background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.82),transparent 24%),linear-gradient(90deg,rgba(148,163,184,.24),transparent 12%,transparent 88%,rgba(148,163,184,.24)),linear-gradient(180deg,#f8fafc,#fff 50%,#e6edf2);box-shadow:inset 0 0 0 1px #ffffffdb,inset 0 18px 46px #47556914}.real-shelf-stage:before{position:absolute;inset:0;z-index:2;content:"";border-radius:inherit;box-shadow:inset var(--shelf-frame-thickness) 0 0 #94a3b82e,inset calc(-1 * var(--shelf-frame-thickness)) 0 0 #94a3b82e,inset 0 var(--shelf-frame-thickness) 0 #ffffffb3,inset 0 calc(-1 * var(--shelf-frame-thickness)) 0 #64748b1a;pointer-events:none}.real-shelf-stage.photo-backed:before{box-shadow:inset var(--shelf-frame-thickness) 0 0 #140e0a1f,inset calc(-1 * var(--shelf-frame-thickness)) 0 0 #140e0a1f,inset 0 var(--shelf-frame-thickness) 0 #ffffff14,inset 0 calc(-1 * var(--shelf-frame-thickness)) 0 #140e0a1a}.real-shelf-stage.calibrating:before{box-shadow:inset 0 0 0 2px #148b808c,inset 8px 0 #148b8029,inset -8px 0 #148b8029}.real-shelf-photo-bg{position:absolute;top:0;right:calc(-1 * var(--shelf-photo-crop-right, 0px));bottom:0;left:calc(-1 * var(--shelf-photo-crop-left, 0px));width:calc(100% + var(--shelf-photo-crop-left, 0px) + var(--shelf-photo-crop-right, 0px));height:100%;object-fit:cover}.real-shelf-overlay{position:absolute;top:var(--shelf-overlay-top, 0);right:var(--shelf-overlay-right, 0);bottom:var(--shelf-overlay-bottom, 0);left:var(--shelf-overlay-left, 0);z-index:1;display:grid;grid-template-rows:var(--shelf-layer-rows, repeat(var(--shelf-layer-count, 1), minmax(0, 1fr)));gap:9px;min-height:0;padding:8px 5px}.real-shelf-stage.calibrating .real-shelf-overlay{outline:1px dashed rgba(20,139,128,.72);outline-offset:-1px;background:linear-gradient(#148b8029,#148b8029) left var(--shelf-overlay-top, 0) top / 100% 1px no-repeat,linear-gradient(#148b8029,#148b8029) left bottom var(--shelf-overlay-bottom, 0) / 100% 1px no-repeat}.real-shelf-layer{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:0;align-items:end;min-height:0;border-bottom:var(--shelf-layer-thickness) solid rgba(148,163,184,.82);border-radius:4px;padding:5px 2px 0;background:linear-gradient(180deg,rgba(255,255,255,.84),transparent 62%),#e2e8f08a;box-shadow:inset 0 -3px #ffffff9e,0 12px 20px #4755691f}.real-shelf-layer:after{position:absolute;right:0;bottom:calc(-1 * var(--shelf-layer-thickness));left:0;height:var(--shelf-layer-thickness);content:"";background:linear-gradient(90deg,rgba(255,255,255,.52),transparent 18%,transparent 82%,rgba(100,116,139,.14)),linear-gradient(180deg,#ffffff85,#94a3b833);pointer-events:none}.photo-backed .real-shelf-layer{grid-template-columns:minmax(0,1fr);gap:0;min-height:0;margin-left:var(--layer-left, 0);margin-right:var(--layer-right, 0);overflow:hidden;border-bottom-width:var(--shelf-layer-thickness);border-color:#26190f80;border-radius:3px;padding:2px 2px 0;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 56%,rgba(38,24,14,.18));box-shadow:inset 0 -1px #ffffff1f,0 8px 16px #100c091f;-webkit-backdrop-filter:none;backdrop-filter:none}.photo-backed.calibrating .real-shelf-layer{border-color:#148b808c;background:#e2f4f129}.photo-backed.calibrating .real-shelf-layer:before{position:absolute;inset:0;content:"";border:1px dashed rgba(20,139,128,.66);border-bottom:0;pointer-events:none}.photo-backed .real-shelf-layer:after{bottom:calc(-1 * var(--shelf-layer-thickness));height:var(--shelf-layer-thickness);background:linear-gradient(90deg,rgba(255,255,255,.14),transparent 24%,transparent 76%,rgba(0,0,0,.18)),linear-gradient(180deg,#4c321e2e,#140d0852)}.photo-backed .real-shelf-row{height:100%;min-height:0;gap:1px;padding:0 1px 2px}.photo-backed .real-book-spine{width:clamp(.5px,var(--spine-w),1.5px);flex-basis:clamp(.5px,var(--spine-w),1.5px);height:var(--spine-h);max-height:calc(100% - 8px);min-height:24px;border-radius:2px 2px 0 0;padding:2px 0 1px}.photo-backed .real-book-spine span{font-size:var(--spine-font-size, 1.6px);letter-spacing:0}.photo-backed .real-book-travel-mark{top:1px;width:5px;height:5px}.photo-backed .real-book-travel-mark svg{width:3px;height:3px}.real-shelf-row{display:flex;align-items:end;gap:1px;min-width:0;height:100%;min-height:0;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:rgba(80,54,32,.42) transparent;scroll-padding-inline:2px;padding:0 0 0 1px}.real-shelf-row::-webkit-scrollbar{height:5px}.real-shelf-row::-webkit-scrollbar-track{background:transparent}.real-shelf-row::-webkit-scrollbar-thumb{border-radius:999px;background:#5036205c}.real-book-spine{position:relative;display:inline-flex;flex:0 0 var(--spine-w);align-self:end;align-items:center;justify-content:flex-end;width:var(--spine-w);height:var(--spine-h);max-height:calc(100% - 6px);min-height:24px;border:0;border-radius:2px 2px 0 0;padding:2px 0;color:#fff;background:linear-gradient(90deg,rgba(255,255,255,.18),transparent 28%,rgba(0,0,0,.15) 92%),linear-gradient(180deg,var(--spine-a),var(--spine-b));box-shadow:inset 1px 0 #ffffff29,0 6px 9px #1f181224;cursor:pointer;writing-mode:vertical-rl;text-orientation:mixed;text-align:left;line-height:1.05;transform:skew(-8deg);transform-origin:bottom center;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;scroll-snap-align:start}.real-book-spine:hover,.real-book-spine:focus-visible{transform:skew(-8deg) translateY(-3px)}.real-book-spine:focus-visible{outline:2px solid rgba(255,221,134,.78);outline-offset:2px}.real-book-spine.has-travel{border-color:#ffdd86e6;box-shadow:inset 1px 0 #ffffff29,0 6px 9px #1f181224,inset 0 0 0 1px #ffdd8642}.real-book-travel-mark{position:absolute;top:2px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;justify-content:center;width:6px;height:6px;border:1px solid rgba(82,55,16,.2);border-radius:50%;color:#5b3e10;background:#ffdd86eb;box-shadow:0 2px 5px #1c140c38;writing-mode:horizontal-tb;pointer-events:none}.real-book-travel-mark svg{display:block;width:4px;height:4px}.real-book-spine span{display:block;max-width:100%;max-height:calc(100% - 6px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.real-book-spine span{font-size:var(--spine-font-size, 1.8px);font-weight:850;line-height:1;writing-mode:vertical-rl;text-orientation:mixed}.real-book-spine.has-travel span{max-height:calc(100% - 9px);margin-top:8px}.real-shelf-visual-wrap{display:grid;grid-template-columns:minmax(0,max-content) minmax(190px,250px);column-gap:6px;row-gap:8px;align-items:center;justify-items:center;justify-content:center;width:fit-content;max-width:100%;margin-inline:auto;min-width:0}.real-shelf-visual-wrap.has-preview{grid-template-columns:minmax(0,max-content) minmax(190px,250px)}.real-book-title-bubble{position:relative;z-index:1;grid-column:2;display:grid;grid-template-columns:74px minmax(0,1fr);gap:7px 10px;align-items:center;justify-self:stretch;width:100%;max-width:100%;padding:10px;border:1px solid rgba(255,255,255,.58);border-radius:8px;color:#172126;text-align:left;background:#fffffff0;box-shadow:0 14px 32px #0f172a2e;pointer-events:none;writing-mode:horizontal-tb}.real-book-title-bubble-cover{grid-row:1 / span 2;display:inline-flex;align-items:center;justify-content:center;width:74px;height:100px;overflow:hidden;border:1px solid rgba(148,163,184,.24);border-radius:7px;color:var(--teal-strong);background:linear-gradient(180deg,#fffffff5,#eff6f7e0);box-shadow:0 8px 16px #0f172a1a}.real-book-title-bubble-cover img{width:100%;height:100%;object-fit:cover}.real-book-title-bubble:after{position:absolute;top:50%;left:-6px;width:10px;height:10px;content:"";background:inherit;border-bottom:1px solid rgba(255,255,255,.58);border-left:1px solid rgba(255,255,255,.58);transform:translateY(-50%) rotate(45deg)}.real-book-title-bubble>strong{grid-column:2;overflow-wrap:anywhere;font-size:15px;line-height:1.25}.real-book-title-bubble>span:not(.real-book-title-bubble-cover){grid-column:2;overflow-wrap:anywhere;color:var(--muted);font-size:12px;line-height:1.3}.photo-backed .real-book-title-bubble{border-color:#ffffff4d;color:#fff;background:#141a1ed1;box-shadow:0 16px 34px #0000004d}.photo-backed .real-book-title-bubble>span:not(.real-book-title-bubble-cover){color:#ffffffc7}.real-shelf-book-list-mode{display:grid;gap:10px;min-width:0}.real-shelf-layer-list{display:grid;gap:8px;min-width:0;border-top:1px solid rgba(15,139,128,.14);padding-top:10px}.real-shelf-layer-list:first-child{border-top:0;padding-top:0}.real-shelf-layer-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.real-shelf-layer-list-head strong{min-width:0;overflow:hidden;color:var(--text);text-overflow:ellipsis;white-space:nowrap}.real-shelf-layer-list-head span{flex:0 0 auto;border-radius:999px;padding:3px 8px;color:var(--teal-strong);background:var(--teal-soft);font-size:12px;font-weight:850}.real-shelf-layer-list-books{display:grid;gap:6px;min-width:0}.real-shelf-layer-book{min-width:0}.real-shelf-layer-book-main{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;min-width:0;border:1px solid rgba(148,163,184,.22);border-radius:8px;padding:8px;color:inherit;text-align:left;background:#ffffffb3;cursor:pointer}.real-shelf-layer-book-main:hover,.real-shelf-layer-book-main:focus-visible{border-color:#0f8b805c;background:#f0fdfad1}.real-shelf-layer-book-cover{display:inline-flex;align-items:center;justify-content:center;width:42px;height:56px;overflow:hidden;border:1px solid rgba(148,163,184,.24);border-radius:6px;color:var(--teal-strong);background:linear-gradient(180deg,#fff,#eef5f6)}.real-shelf-layer-book-cover img{width:100%;height:100%;object-fit:cover}.real-shelf-layer-book-text{display:grid;gap:3px;min-width:0}.real-shelf-layer-book-text strong,.real-shelf-layer-book-text small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.real-shelf-layer-book-text strong{color:var(--text);font-size:14px}.real-shelf-layer-book-text small{color:var(--muted);font-size:12px}.real-shelf-layer-travel{flex:0 0 auto;border-radius:999px;padding:4px 7px;color:#6b4a0d;background:#ffdd86b8;font-size:11px}.real-shelf-layer-empty{margin:0;border:1px dashed rgba(148,163,184,.34);border-radius:8px;padding:10px 12px;color:var(--muted);background:#f8fafca3;font-size:13px}.real-shelf-empty-slot{align-self:center;border:1px dashed rgba(255,255,255,.48);border-radius:8px;padding:9px 12px;color:#ffffffdb;background:#1e242833;font-size:13px;font-weight:750}.photo-backed .real-shelf-empty-slot{opacity:0;max-width:1px;max-height:1px;padding:0;border:0;overflow:hidden}.photo-backed.calibrating .real-shelf-empty-slot{opacity:1;max-width:none;max-height:none;border:1px dashed rgba(20,139,128,.55);padding:5px 8px;color:#0b5b54eb;background:#ecfbf8b3;font-size:11px}.physical-shelf-photo.large{width:104px}.physical-shelf-browser-main{display:grid;gap:6px;min-width:0}.physical-shelf-browser-main span{color:var(--teal);font-size:12px;font-weight:800}.physical-shelf-browser-main h2{margin:0;overflow-wrap:anywhere}.physical-shelf-browser-main p{margin:0;color:var(--muted)}.shelf-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--panel);box-shadow:var(--shadow-soft)}.shelf-list-head h2{margin:0 0 4px;font-size:18px}.shelf-list-head p{margin:0;color:var(--muted)}.shelf-list-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.shelf-list-actions .primary-command,.shelf-add-inline{width:auto;min-height:38px;padding:0 12px}.shelf-list,.recognized-list,.timeline,.ledger-list,.settings-list{display:grid;gap:10px}.recognized-list,.recognition-layout{min-width:0}.shelf-card,.recognized-card{position:relative;display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px;align-items:center;padding:12px;color:inherit;text-align:left}.recognized-card{min-width:0;overflow:hidden}.recognized-card>div{min-width:0}.shelf-card{grid-template-columns:34px 58px minmax(0,1fr) auto;align-items:start}.shelf-card-main{min-width:0}.shelf-card-detail-button{display:block;width:100%;border:0;padding:0;color:inherit;background:transparent;text-align:left;cursor:pointer}.shelf-card-detail-button:hover h2{color:var(--teal)}.shelf-card-title-row{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;min-width:0}.shelf-card-title-row h2{flex:1 1 160px;min-width:0}.shelf-travel-badge{display:inline-flex;flex:0 0 auto;align-items:center;gap:4px;max-width:100%;border:1px solid rgba(180,126,0,.2);border-radius:999px;margin-top:8px;padding:4px 8px;color:#6d4700;background:#fff0bd;font-size:12px;font-weight:900;line-height:1}.shelf-travel-badge.paused,.shelf-travel-badge.lost{color:#69747b;background:#eef2f4}.shelf-travel-badge svg{flex:0 0 auto}.shelf-select,.small-icon-command,.small-text-command,.danger-command,.quiet-command{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-weight:800}.shelf-select{width:28px;height:28px;margin-top:3px;color:transparent;border:1px solid var(--line);background:#edf2f4}.shelf-card.selected .shelf-select{color:#fff;border-color:var(--teal);background:var(--teal)}.shelf-card-actions{display:flex;gap:6px;align-items:start}.small-icon-command{width:30px;height:30px;color:var(--teal);background:var(--teal-soft)}.small-text-command{min-height:30px;padding:0 9px;color:var(--teal);background:var(--teal-soft);white-space:nowrap}.cover-upload-command{position:relative;overflow:hidden}.cover-upload-command input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.cover-adjust-card{display:grid;grid-template-columns:minmax(96px,148px) minmax(0,1fr);gap:12px;align-items:center;flex:1 1 100%;width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfcfc}.cover-adjust-preview{position:relative;width:min(100%,148px);aspect-ratio:2 / 3;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#edf2f2;box-shadow:inset 0 0 0 1px #ffffffb8}.cover-adjust-preview img{width:100%;height:100%;object-fit:cover;transform-origin:center}.cover-adjust-controls{display:grid;gap:9px;min-width:0}.cover-adjust-controls label{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;color:var(--muted);font-size:12px;font-weight:800}.cover-adjust-controls input[type=range]{width:100%;min-width:0;accent-color:var(--teal)}.cover-adjust-actions{display:flex;flex-wrap:wrap;gap:8px;grid-column:2}.small-text-command:disabled,.secondary-command:disabled,.bulk-actions button:disabled,.bulk-actions select:disabled{color:var(--muted);background:#eef2f4;cursor:not-allowed;opacity:.72}.shelf-meta-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.shelf-meta-row span{border-radius:999px;padding:4px 7px;color:var(--muted);background:#eef2f4;font-size:12px;font-weight:750}.shelf-meta-row .shelf-meta-travel{color:#6d4700;background:#fff0bd}.shelf-edit-form{min-width:0}.shelf-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.shelf-checkbox-field{display:flex!important;align-items:center;gap:8px!important;min-height:36px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:#fbfcfc}.shelf-checkbox-field input{width:auto;min-height:auto;accent-color:var(--teal)}.wide-field{grid-column:1 / -1}.form-actions,.confirm-row,.profile-actions{display:flex;align-items:center;gap:8px}.form-actions{justify-content:flex-end;margin-top:10px}.inline-status{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.form-actions .primary-command,.form-actions .secondary-command{width:auto;min-height:38px;padding:0 12px}.confirm-row{grid-column:3 / -1;justify-content:flex-end;flex-wrap:wrap;border-radius:8px;padding:10px;background:var(--coral-soft)}.confirm-row span{color:var(--coral);font-size:13px;font-weight:800}.danger-command,.quiet-command{min-height:32px;padding:0 10px}.danger-command{color:#fff;background:var(--coral)}.quiet-command{color:var(--muted);background:#fff}.secondary-command.active{color:#fff;background:var(--teal)}.shelf-card.selected{border-color:#0f8b809e;background:var(--teal-soft)}.check-dot{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;color:transparent;background:#edf2f4}.shelf-card.selected .check-dot{color:#fff;background:var(--teal)}.add-intro{display:flex;gap:12px;padding:16px}.add-intro svg{flex:0 0 auto;color:var(--coral)}.add-workflow-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid rgba(15,139,128,.24);border-radius:8px;padding:14px;background:linear-gradient(135deg,var(--teal-soft),#fff);box-shadow:var(--shadow-soft)}.add-workflow-card div{display:grid;gap:4px;min-width:0}.add-workflow-card strong{color:var(--teal)}.add-workflow-card span{color:var(--muted);font-size:13px;line-height:1.45}.add-workflow-card button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;gap:8px;min-height:40px;border-radius:8px;padding:0 14px;color:#fff;background:var(--teal);font-weight:850;cursor:pointer}.method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.method-card{min-height:176px;padding:18px;color:inherit;text-align:left}.method-card svg{color:var(--teal)}.method-card.recommended{border-color:#0f8b8061;background:var(--teal-soft)}.method-card p{line-height:1.55}.recognition-layout{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr);gap:18px;align-items:start}.shelf-scan{border:1px solid var(--line);border-radius:8px;padding:16px;background:var(--panel);box-shadow:var(--shadow)}.capture-header h2{margin-bottom:6px}.capture-header p,.capture-note,.capture-meta,.empty-recognition span{color:var(--muted)}.capture-header p{margin-bottom:14px;line-height:1.6}.scan-frame{display:flex;align-items:flex-end;justify-content:center;gap:7px;min-height:280px;border-radius:8px;padding:24px;background:linear-gradient(180deg,#1e24280a,#1e24281c),#eef2f4}.scan-frame span{width:25px;border-radius:5px 5px 2px 2px;background:linear-gradient(90deg,rgba(255,255,255,.24),transparent),var(--spine);box-shadow:inset 3px 0 #ffffff2e}.scanner-panel{display:grid;gap:10px;scroll-margin:96px 0}.scanner-viewport{position:relative;overflow:hidden;min-height:280px;border-radius:8px;background:#101820}.scanner-video{display:block;width:100%;height:280px;object-fit:cover;background:#101820}.scanner-overlay{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.scanner-overlay:before{position:absolute;inset:0;content:"";background:#1018202e}.scanner-overlay span{position:relative;width:min(76%,340px);height:92px;border:2px solid rgba(255,255,255,.88);border-radius:8px;box-shadow:0 0 0 999px #10182042}.scanner-overlay span:after{position:absolute;right:8px;left:8px;height:2px;border-radius:999px;background:var(--teal);box-shadow:0 0 16px #0f8b808c;content:"";animation:isbn-scan-line 1.5s ease-in-out infinite}.scanner-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.scanner-status{display:flex;align-items:center;min-height:38px;border-radius:8px;padding:8px 10px;color:var(--muted);background:#eef2f4;font-size:13px;font-weight:750;line-height:1.35}.scanner-status.scanning,.scanner-status.recognized{color:var(--teal);background:var(--teal-soft)}.scanner-status.starting{color:var(--amber);background:var(--amber-soft)}.scanner-status.error{color:var(--coral);background:var(--coral-soft)}.scanner-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;border-radius:8px;padding:0 12px;color:#fff;background:var(--teal);font-weight:850;cursor:pointer}.isbn-batch-panel{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(15,139,128,.22);border-radius:8px;padding:10px;background:var(--teal-soft)}.isbn-batch-panel div{display:grid;gap:3px;min-width:0}.isbn-batch-panel strong,.isbn-batch-panel span{overflow-wrap:anywhere}.isbn-batch-panel strong{color:var(--teal);font-size:14px}.isbn-batch-panel span{color:var(--muted);font-size:12px;font-weight:750}.isbn-batch-panel button{flex:0 0 auto;min-height:34px;border-radius:8px;padding:0 10px;color:var(--teal);background:#fff;font-weight:850;cursor:pointer}.capture-preview{overflow:hidden;min-height:280px;border-radius:8px;background:#101820}.capture-preview img{display:block;width:100%;height:280px;object-fit:cover}.capture-button{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:44px;margin-top:12px;border-radius:8px;color:#fff;background:var(--teal);font-weight:800;cursor:pointer;overflow:hidden}.capture-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.capture-meta{display:flex;justify-content:space-between;gap:10px;margin-top:10px;font-size:13px}.isbn-lookup{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:12px}.isbn-lookup label{display:grid;gap:6px}.isbn-lookup label span,.recognition-endpoint label span,.candidate-fields span,.candidate-more-grid span{color:var(--muted);font-size:12px;font-weight:750}.isbn-lookup input,.recognition-endpoint input,.candidate-fields input,.candidate-fields select,.candidate-more-grid input,.candidate-more-grid select{width:100%;min-width:0;min-height:36px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--ink);background:#fbfcfc;outline:0}.candidate-fields input[aria-invalid=true]{border-color:#b97a1094;background:#fffaf0;box-shadow:0 0 0 3px #b97a101a}.recognition-endpoint{display:grid;gap:7px;margin-top:12px;border:1px solid var(--line);border-radius:8px;padding:11px;background:#fbfcfc}.recognition-endpoint label{display:grid;gap:6px}.recognition-endpoint p{margin:0;color:var(--muted);font-size:12px;line-height:1.45}.api-status{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:8px;padding:9px 10px;font-size:12px;font-weight:800}.api-status.idle,.api-status.checking{color:var(--muted);background:#eef2f4}.api-status.ok{color:var(--teal);background:var(--teal-soft)}.api-status.error{color:var(--coral);background:var(--coral-soft)}.api-status.isbn-service{margin-top:10px}.api-status button{flex:0 0 auto;min-height:28px;border-radius:8px;padding:0 9px;color:inherit;background:#ffffffad;font-weight:850;cursor:pointer}.isbn-lookup button,.review-toolbar button{align-self:end;min-height:36px;border-radius:8px;padding:0 12px;color:var(--teal);background:var(--teal-soft);font-weight:800;cursor:pointer}.scan-caption{display:flex;align-items:center;gap:8px;margin-top:12px;color:var(--teal);font-weight:750}.recognition-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.recognition-steps span{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:#fbfcfc;font-size:12px;font-weight:750}.recognition-steps span.active{color:var(--amber);border-color:#b97a1066;background:var(--amber-soft)}.recognition-steps span.done{color:var(--teal);border-color:#0f8b8052;background:var(--teal-soft)}.quality-box{display:grid;gap:5px;margin-top:12px;border-radius:8px;padding:11px 12px;font-size:13px;line-height:1.45}.quality-box.ok{color:var(--teal);background:var(--teal-soft)}.quality-box.warn{color:var(--amber);background:var(--amber-soft)}.capture-note{margin:10px 0 0;font-size:13px;line-height:1.55}.empty-recognition{display:grid;place-items:center;gap:8px;min-height:220px;border:1px dashed var(--line);border-radius:8px;padding:20px;background:#ffffffb8;text-align:center}.empty-recognition svg{color:var(--teal)}.empty-recognition button{min-height:36px;border-radius:8px;padding:0 12px;color:var(--teal);background:var(--teal-soft);font-weight:800;cursor:pointer}.empty-recognition.recognizing svg{animation:pulse-scan 1s ease-in-out infinite}@keyframes pulse-scan{0%,to{transform:scale(1);opacity:.62}50%{transform:scale(1.12);opacity:1}}@keyframes isbn-scan-line{0%,to{top:12px}50%{top:calc(100% - 14px)}}.primary-command:disabled{color:var(--muted);background:#eef2f4;cursor:not-allowed}.review-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;min-width:0}.review-toolbar-main{display:grid;gap:4px;min-width:0}.review-toolbar strong{min-width:0;overflow-wrap:anywhere}.review-toolbar-main span{color:var(--muted);font-size:12px;font-weight:750;line-height:1.4}.review-toolbar-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:0}.review-toolbar button:disabled{color:var(--muted);background:#eef2f4;cursor:not-allowed}.review-toolbar .primary-inline-command{display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#fff;background:var(--teal)}.recognized-card.editable{grid-template-columns:58px minmax(0,1fr);align-items:start}.recognized-card.editable.selected{border-color:#0f8b8061;background:linear-gradient(90deg,#dff4f1b3,#fff)}.recognized-card.editable.candidate-missing-title{border-color:#b97a106b;background:linear-gradient(90deg,#fff5deb8,#fff 62%),var(--panel)}.candidate-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;margin-bottom:10px}.candidate-check{display:inline-flex;align-items:center;flex:0 1 auto;gap:5px;white-space:nowrap;font-size:13px;font-weight:800}.candidate-head .small-label{min-width:0;overflow-wrap:anywhere}.lookup-badge{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:0 8px;color:var(--muted);background:#eef2f4;font-size:12px;font-weight:850;white-space:nowrap}.lookup-badge.matched{color:var(--teal);background:var(--teal-soft)}.lookup-badge.looking,.lookup-badge.manual{color:var(--amber);background:var(--amber-soft)}.lookup-badge.failed{color:var(--coral);background:var(--coral-soft)}.lookup-message{margin:-4px 0 9px;color:var(--muted);font-size:12px;line-height:1.45;overflow-wrap:anywhere}.candidate-check input{accent-color:var(--teal)}.delete-candidate{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;margin-left:auto;border-radius:8px;color:var(--coral);background:var(--coral-soft);cursor:pointer}.candidate-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;align-items:end;min-width:0}.candidate-fields label{display:grid;gap:5px;min-width:0}.candidate-inline-warning{margin:8px 0 0;border-radius:8px;padding:8px 10px;color:var(--amber);background:var(--amber-soft);font-size:12px;font-weight:800;line-height:1.45}.candidate-more-settings{display:grid;gap:9px;margin-top:10px;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfcfc}.candidate-more-settings summary{display:flex;align-items:center;justify-content:space-between;min-width:0;gap:10px;color:var(--ink);cursor:pointer;list-style:none}.candidate-more-settings summary::-webkit-details-marker{display:none}.candidate-more-settings summary span{min-width:0;color:var(--teal);font-size:13px;font-weight:850}.candidate-more-settings summary b{min-width:0;color:var(--muted);font-size:12px;font-weight:750;overflow-wrap:anywhere;text-align:right}.candidate-more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px;align-items:end;min-width:0}.candidate-more-grid label{display:grid;gap:5px;min-width:0}.match-options{display:grid;gap:9px;min-width:0;overflow:hidden;margin-top:10px;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfcfc}.match-options-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;min-width:0}.match-options-head span{color:var(--muted);font-size:13px}.match-option-list{display:grid;gap:8px}.match-option{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;min-width:0;border:1px solid var(--line);border-radius:8px;padding:8px;color:inherit;background:#fff;text-align:left;cursor:pointer}.match-option:hover{border-color:#0f8b8075;background:var(--teal-soft)}.match-option .book-cover{width:48px;min-height:0}.match-option strong,.match-option span,.match-option small{display:block}.match-option strong{overflow-wrap:anywhere}.match-option span,.match-option small{margin-top:3px;color:var(--muted)}.match-option b{color:var(--teal);font-size:13px}.cover-option-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(94px,100%),1fr));gap:8px;min-width:0}.cover-option{display:grid;gap:7px;justify-items:center;min-width:0;border:1px solid var(--line);border-radius:8px;padding:8px;color:inherit;background:#fff;cursor:pointer}.cover-option:hover{border-color:#0f8b8075;background:var(--teal-soft)}.cover-option .book-cover{width:58px;min-height:0}.cover-option span{max-width:100%;color:var(--muted);font-size:12px;overflow-wrap:anywhere;text-align:center}.timeline-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;padding:14px}.timeline-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;color:var(--teal);background:var(--teal-soft)}.timeline-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.timeline-title span{border-radius:999px;padding:4px 8px;color:var(--blue);background:var(--blue-soft);font-size:12px;font-weight:750;white-space:nowrap}.wallet-panel{padding:24px}.wallet-panel strong{display:block;font-size:52px;line-height:1}.ledger-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px}.ledger-row strong,.ledger-row span{display:block}.ledger-row span{margin-top:5px;color:var(--muted);font-size:13px}.ledger-row b{font-size:20px}.positive{color:var(--teal)}.negative{color:var(--coral)}.profile-head{display:flex;align-items:center;gap:14px;padding:16px}.profile-head>div:nth-child(2){min-width:0;flex:1}.profile-head h2{margin-bottom:4px}.profile-actions{flex-wrap:wrap;justify-content:flex-end}.profile-actions .secondary-command,.profile-actions .signout-button{min-height:38px}.profile-points-section{display:grid;gap:8px}.profile-points-section .wallet-panel{padding:14px 16px}.profile-points-section .wallet-panel strong{font-size:36px}.profile-points-section .wallet-panel p{margin-top:4px;font-size:13px}.profile-points-section .ledger-list{gap:6px;max-height:188px;overflow-y:auto;padding-right:2px;overscroll-behavior:contain}.profile-points-section .ledger-row{gap:10px;min-height:0;padding:8px 10px}.profile-points-section .ledger-row strong{font-size:13px;line-height:1.25}.profile-points-section .ledger-row span{margin-top:2px;font-size:12px;line-height:1.2}.profile-points-section .ledger-row b{min-width:42px;font-size:15px;line-height:1;text-align:right}.profile-edit-panel{gap:14px}.profile-summary-list{gap:12px}.profile-info-grid,.profile-preference-grid{display:grid;gap:10px;min-width:0}.profile-info-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-preference-grid{grid-template-columns:minmax(0,.9fr) minmax(280px,1.3fr) minmax(0,1fr)}.profile-info-card,.profile-preference-card{display:grid;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow-soft)}.profile-info-card{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:12px}.profile-preference-card{align-content:space-between;gap:12px;min-height:106px;padding:13px}.profile-preference-copy{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;min-width:0}.profile-info-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;color:var(--teal);background:var(--teal-soft)}.profile-info-icon.teal{color:#fff;background:var(--teal)}.profile-info-card div,.profile-preference-copy div{display:grid;gap:4px;min-width:0}.profile-info-card strong,.profile-preference-card strong,.profile-info-card span,.profile-preference-card span{min-width:0;overflow-wrap:anywhere}.profile-info-card strong,.profile-preference-card strong{font-size:14px}.profile-info-card span,.profile-preference-card span{color:var(--muted);font-size:13px;line-height:1.42}.profile-preference-card input[type=checkbox]{justify-self:end;width:22px;height:22px;accent-color:var(--teal)}.profile-preference-card input[type=range]{width:100%;accent-color:var(--teal)}@media(max-width:980px){.profile-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-preference-grid{grid-template-columns:1fr}}.avatar{display:grid;place-items:center;width:58px;height:58px;overflow:hidden;border-radius:8px;color:#fff;background:linear-gradient(135deg,var(--teal),var(--blue));font-size:24px;font-weight:850}.avatar.large{width:72px;height:72px;font-size:28px}.avatar img{width:100%;height:100%;object-fit:cover;transform-origin:center}.avatar span{line-height:1}.avatar-upload{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:8px;padding:14px;background:#fbfcfc}.avatar-upload.editing{align-items:flex-start}.avatar-adjust-preview{display:grid;gap:8px;justify-items:center}.avatar-adjust-preview span{color:var(--muted);font-size:12px;font-weight:750;text-align:center}.avatar-upload-main{display:grid;flex:1;gap:10px;min-width:0}.avatar-adjust-controls{display:grid;gap:8px;min-width:0}.avatar-adjust-controls label{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center;color:var(--muted);font-size:12px;font-weight:800}.avatar-adjust-controls input[type=range]{width:100%;min-width:0;accent-color:var(--teal)}.avatar-upload-actions{display:flex;flex-wrap:wrap;gap:8px}.avatar-upload .secondary-command{position:relative;overflow:hidden;white-space:nowrap}.avatar-upload input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.signout-button{color:var(--muted);background:#eef2f4}.register-panel{display:grid;gap:16px;padding:20px}.auth-switch{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;border:1px solid var(--line);border-radius:8px;padding:6px;background:#eef2f4}.auth-switch button{min-height:38px;border-radius:7px;color:var(--muted);background:transparent;font-weight:850;cursor:pointer}.auth-switch button.active{color:var(--teal);background:var(--panel);box-shadow:0 8px 18px #12222914}.login-panel{gap:14px}.empty-map-state.compact{min-height:130px}.register-copy{display:flex;gap:12px}.register-copy svg{flex:0 0 auto;color:var(--teal)}.register-copy h2{margin-bottom:5px}.register-copy p{margin-bottom:0;color:var(--muted);line-height:1.6}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field-row{display:grid;gap:7px}.field-row span{color:var(--muted);font-size:13px;font-weight:700}.field-row div{display:flex;align-items:center;gap:9px;min-height:44px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:#fbfcfc}.field-row svg{flex:0 0 auto;color:var(--teal)}.field-row input,.field-row select{width:100%;min-width:0;border:0;outline:0;color:var(--ink);background:transparent}.admin-screen{align-items:start}.admin-hub-grid,.admin-management-grid{display:grid;gap:14px}.admin-hub-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-hub-card{display:grid;gap:7px;min-width:0;border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--panel);box-shadow:var(--shadow-soft)}.admin-hub-card span,.admin-hub-card small{color:var(--muted);font-size:12px;font-weight:800}.admin-hub-card strong{font-size:26px;line-height:1}.admin-management-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:start}.admin-role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.admin-role-card,.admin-panel,.admin-row{border:1px solid var(--line);border-radius:8px;background:var(--panel)}.admin-role-card{display:grid;align-content:space-between;gap:12px;min-height:186px;padding:14px}.admin-role-card.active{border-color:#0f8b806b;background:var(--teal-soft)}.admin-role-card span,.admin-row small{color:var(--muted);font-size:12px;font-weight:750}.admin-role-card h2{margin:5px 0 7px;font-size:18px}.admin-role-card p{margin:0;color:var(--muted);line-height:1.55}.admin-workspace{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);gap:14px;align-items:start}.admin-panel{display:grid;gap:12px;padding:14px;box-shadow:var(--shadow-soft)}.admin-assignment-form{position:sticky;top:18px}.admin-list{display:grid;gap:10px}.admin-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.admin-search-box{height:40px;background:#fbfcfc}.admin-toolbar select{min-width:132px;min-height:40px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--ink);background:#fbfcfc;outline:0}.admin-user-list,.system-setting-list{display:grid;gap:10px}.admin-backup-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid rgba(15,139,128,.24);border-radius:8px;padding:14px;background:var(--teal-soft)}.admin-backup-card>div:first-child{display:grid;gap:5px;min-width:0}.admin-backup-card strong,.admin-backup-card span{display:block}.admin-backup-card span{color:var(--muted);font-size:13px;line-height:1.45}.admin-backup-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.admin-backup-actions .secondary-command,.admin-backup-actions .quiet-command{min-height:34px;padding:0 12px}.admin-user-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--panel)}.admin-user-row.suspended{opacity:.72}.admin-user-row .avatar{width:46px;height:46px;font-size:18px}.admin-user-main{display:grid;gap:6px;min-width:0}.admin-user-main>div{display:flex;align-items:baseline;gap:8px;min-width:0}.admin-user-main strong,.admin-user-main span,.admin-user-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-main span,.admin-user-main small{color:var(--muted);font-size:13px}.admin-user-tags,.admin-user-actions{display:flex;flex-wrap:wrap;gap:7px}.admin-user-tags span{border-radius:999px;padding:4px 8px;color:var(--muted);background:#eef2f4;font-size:12px;font-weight:800}.admin-user-actions{justify-content:flex-end}.admin-user-actions .small-text-command,.admin-user-actions .secondary-command,.admin-user-actions .quiet-command,.admin-user-actions .danger-command{min-height:32px;padding:0 10px}.admin-notice-field>div{align-items:flex-start;height:auto;padding:10px 12px}.admin-notice-field textarea{width:100%;min-width:0;border:0;resize:vertical;color:var(--ink);background:transparent;outline:0;font:inherit;line-height:1.45}.admin-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px}.admin-row.disabled{opacity:.68}.admin-row .avatar{width:46px;height:46px;font-size:18px}.admin-row-main{display:grid;gap:3px;min-width:0}.admin-row-main strong,.admin-row-main span,.admin-row-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-row-main span{color:var(--muted);font-size:13px}.admin-badge{border-radius:999px;padding:5px 9px;color:var(--teal);background:var(--teal-soft);font-size:12px;font-weight:850;white-space:nowrap}.admin-badge.role-super_admin{color:var(--violet);background:var(--violet-soft)}.admin-badge.role-operation_admin{color:var(--blue);background:var(--blue-soft)}.admin-badge.role-regional_admin{color:var(--teal);background:var(--teal-soft)}.admin-badge.role-content_admin{color:var(--amber);background:var(--amber-soft)}.admin-badge.role-service_admin{color:var(--teal);background:var(--teal-soft)}.admin-row-actions{grid-column:2 / -1;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.admin-row-actions .danger-command,.admin-row-actions .small-text-command{min-height:32px}.admin-region-picker{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;padding:12px;background:#fbfcfc}.admin-region-picker.required{border-color:#0f8b8047}.admin-region-options{display:flex;flex-wrap:wrap;gap:8px}.admin-region-option{display:inline-flex;align-items:center;gap:6px;min-height:32px;border:1px solid var(--line);border-radius:999px;padding:0 10px;color:var(--muted);background:var(--panel);font-size:13px;font-weight:800;cursor:pointer}.admin-region-option.selected{color:var(--teal);border-color:#0f8b805c;background:var(--teal-soft)}.admin-region-option input{width:auto;accent-color:var(--teal)}.admin-region-custom{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.admin-region-custom input{min-width:0;min-height:38px;border:1px solid var(--line);border-radius:8px;padding:0 11px;outline:0;background:var(--panel)}.admin-region-custom .secondary-command{min-height:38px;padding:0 12px}.region-admin-panel{gap:12px}.region-admin-summary{display:flex;flex-wrap:wrap;gap:8px}.region-admin-summary span{border-radius:999px;padding:5px 9px;color:var(--muted);background:#eef2f4;font-size:12px;font-weight:800}.region-resource-list{display:grid;gap:10px}.region-resource-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--panel)}.region-resource-row .avatar{width:46px;height:46px;font-size:18px}.region-resource-main{display:grid;gap:3px;min-width:0}.region-resource-main strong,.region-resource-main span,.region-resource-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.region-resource-main span,.region-resource-main small{color:var(--muted);font-size:13px}.region-resource-row .secondary-command,.region-resource-row .quiet-command{min-height:34px;padding:0 12px}.setting-row.compact{padding:14px;background:#fbfcfc}.register-location-row{flex-wrap:wrap}.register-location-row>div{min-width:min(100%,260px)}.form-error{margin:-4px 0 0;border-radius:8px;padding:10px 12px;color:var(--coral);background:var(--coral-soft);font-weight:700}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px}.setting-row>div{display:grid;gap:4px;min-width:0}.setting-row strong,.setting-row span{display:block}.setting-row.vertical{display:grid;gap:14px}.setting-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--teal)}.setting-row input[type=range]{width:100%;accent-color:var(--teal)}.toast{position:fixed;right:24px;bottom:24px;z-index:60;display:flex;align-items:center;gap:8px;min-height:44px;border-radius:8px;padding:0 14px;color:#fff;background:#1f2933;box-shadow:0 20px 40px #0f1b1f38}.modal-backdrop{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:20px;background:#10181c52;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.duplicate-dialog{display:grid;gap:14px;width:min(760px,100%);max-height:min(720px,calc(100vh - 40px));overflow:auto;border:1px solid var(--line);border-radius:8px;padding:18px;background:#fff;box-shadow:0 24px 64px #12222938}.duplicate-dialog-head,.duplicate-item{display:flex;gap:12px}.duplicate-dialog-head{align-items:start;justify-content:space-between}.duplicate-dialog-head h2{margin-bottom:6px}.duplicate-dialog-head p,.duplicate-summary,.duplicate-item span,.duplicate-item small{color:var(--muted)}.duplicate-summary{border-radius:8px;padding:10px 12px;background:var(--teal-soft);font-weight:700}.duplicate-list{display:grid;gap:10px}.duplicate-item{align-items:center;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fbfcfc}.duplicate-item .book-cover{width:54px;min-height:0}.duplicate-item>div:nth-child(2){min-width:0;flex:1}.duplicate-item strong,.duplicate-item span,.duplicate-item small{display:block}.duplicate-item strong{overflow-wrap:anywhere}.duplicate-item span,.duplicate-item small{margin-top:4px}.duplicate-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.duplicate-actions .secondary-command,.duplicate-actions .quiet-command{min-height:36px}.duplicate-footer{border-top:1px solid var(--line);padding-top:12px}.bottom-nav{display:none}@media(max-width:840px){.app-shell{display:block}.side-nav{display:none}.workspace{min-height:100vh;padding:14px 14px calc(96px + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:20;align-items:flex-start;gap:10px;margin:-14px -14px 14px;padding:13px 14px 12px;border-bottom:1px solid var(--line);background:#f5f7f8e6;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.topbar>div:first-child{min-width:0}.top-actions{max-width:45%;gap:6px}.top-auth-actions{display:grid;gap:6px;width:100%}.top-auth-actions .secondary-command,.top-auth-actions .register-shortcut{width:100%;min-height:32px;padding:0 9px;font-size:12px}.data-sync-badge{min-height:28px;min-width:76px;max-width:100%;overflow:hidden;padding:0 8px;text-overflow:ellipsis;font-size:11px}.eyebrow{margin-bottom:3px;font-size:12px}.topbar h1{font-size:25px;line-height:1.08}.topbar-meta{margin-top:5px;font-size:12px}.topbar-user-pill{max-width:128px;min-height:36px;padding-right:8px}.topbar-user-pill .avatar{width:28px;height:28px}.topbar-user-pill span{max-width:76px}.topbar-user-pill strong{display:none}.points-button{min-width:86px}.register-shortcut{min-width:44px;padding:0 10px}.nearby-map-grid{grid-template-columns:1fr;gap:12px}.filter-row{margin-right:-14px;padding-right:14px}.map-strip,.nearby-shelf-detail,.shelf-control-panel,.physical-shelf-panel,.bulk-band,.register-panel,.wallet-panel,.profile-head{box-shadow:var(--shadow-soft)}.map-strip{padding:12px}.profile-points-section .wallet-panel{padding:12px 14px}.profile-points-section .wallet-panel strong{font-size:32px}.profile-points-section .ledger-list{max-height:150px}.map-strip-head{align-items:flex-start}.map-location-status{display:grid;gap:4px}.map-location-status strong{justify-self:start}.map-zoom-controls{top:10px;right:10px;grid-template-rows:34px 24px 34px}.map-zoom-controls button,.map-zoom-controls span{width:34px;min-width:34px}.travel-hero,.travel-code-input-row{grid-template-columns:1fr}.travel-hero-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.travel-code-input-row .primary-command,.travel-card-actions button{width:100%}.travel-scanner-head{display:grid}.travel-scanner-head .secondary-command{width:100%}.travel-passport-head,.travel-action-grid{grid-template-columns:1fr}.travel-passport-head>.book-cover{width:74px}.travel-passport-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.travel-owner-actions button{width:100%}.travel-map{min-height:230px}.osm-map{min-height:260px}.book-grid,.method-grid,.form-grid,.recognition-layout{grid-template-columns:1fr}.add-workflow-card{display:grid}.add-workflow-card button{width:100%}.recognition-steps,.candidate-fields,.candidate-more-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recognized-card.editable{grid-template-columns:54px minmax(0,1fr);gap:10px;padding:10px}.candidate-head{align-items:stretch}.candidate-head .small-text-command,.candidate-head .cover-upload-command,.review-toolbar button{flex:1 1 118px;min-width:0}.review-toolbar-main,.review-toolbar-actions{width:100%}.review-toolbar .primary-inline-command{flex-basis:100%}.scanner-actions,.isbn-batch-panel{grid-template-columns:1fr;display:grid}.scanner-actions button,.isbn-batch-panel button{width:100%}.review-toolbar-actions{width:100%;justify-content:stretch}.candidate-head .delete-candidate{margin-left:0}.match-options-head{display:grid;align-items:start}.match-option{grid-template-columns:44px minmax(0,1fr)}.match-option b{grid-column:2}.book-card{grid-template-columns:78px minmax(0,1fr);min-height:150px}.book-cover{width:78px;min-height:0}.detail-overlay{place-items:stretch;padding:0;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.detail-panel{width:100vw;height:100dvh;max-height:none;border:0;border-radius:0;gap:14px;padding:calc(14px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom))}.detail-panel-header{top:calc(-14px - env(safe-area-inset-top));grid-template-columns:auto minmax(0,1fr) 38px;gap:8px;margin:calc(-14px - env(safe-area-inset-top)) -16px 0;padding:calc(10px + env(safe-area-inset-top)) 16px 10px}.detail-panel-title{justify-items:start}.detail-panel-title strong{font-size:14px}.detail-panel-title span{font-size:11px}.detail-cover-row{grid-template-columns:104px minmax(0,1fr);gap:12px;padding:0;background:transparent}.detail-cover-row .book-cover{width:104px;min-height:0}.detail-action-bar{position:sticky;bottom:-16px;z-index:2;margin:2px -16px calc(-16px - env(safe-area-inset-bottom));border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:#fffffff5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.detail-request-button{min-height:48px;white-space:nowrap}.message-workspace{grid-template-columns:1fr;gap:10px}.message-empty-dashboard{grid-template-columns:1fr;justify-items:start;padding:15px}.message-empty-metrics{justify-content:flex-start}.message-detail-panel{padding:13px}.message-detail-actions{display:grid;grid-template-columns:1fr}.message-detail-actions .primary-command,.message-detail-actions .secondary-command{width:100%}.admin-workspace,.admin-hub-grid,.admin-management-grid,.admin-toolbar{grid-template-columns:1fr}.admin-toolbar select{width:100%}.wishlist-form,.wishlist-row{grid-template-columns:1fr}.wishlist-row .secondary-command,.wishlist-row .quiet-command,.wishlist-row .delete-candidate{width:100%}.admin-backup-card{grid-template-columns:1fr}.admin-backup-actions{justify-content:stretch}.admin-backup-actions .secondary-command,.admin-backup-actions .quiet-command{flex:1 1 130px}.admin-user-row{grid-template-columns:42px minmax(0,1fr)}.admin-user-actions{grid-column:1 / -1;justify-content:stretch}.admin-user-actions .small-text-command,.admin-user-actions .secondary-command,.admin-user-actions .quiet-command,.admin-user-actions .danger-command{flex:1 1 120px}.admin-assignment-form{position:static}.admin-role-grid{grid-template-columns:1fr}.admin-role-card{min-height:0}.admin-row{grid-template-columns:42px minmax(0,1fr)}.admin-badge{grid-column:2;width:fit-content}.admin-row-actions{justify-content:stretch}.admin-row-actions .danger-command,.admin-row-actions .small-text-command{flex:1 1 120px}.admin-region-custom{grid-template-columns:1fr}.admin-region-custom .secondary-command{width:100%}.region-resource-row{grid-template-columns:42px minmax(0,1fr)}.region-resource-row .secondary-command,.region-resource-row .quiet-command{grid-column:1 / -1;width:100%}.message-detail-head{display:grid}.message-detail-head b{width:fit-content}.handoff-selected{grid-template-columns:auto minmax(0,1fr)}.profile-handoff-summary{grid-template-columns:38px minmax(0,1fr)}.profile-handoff-summary-actions{grid-column:1 / -1;justify-content:stretch}.profile-handoff-summary-actions .quiet-command,.profile-handoff-summary-actions .secondary-command{flex:1 1 110px}.handoff-selected .primary-command{grid-column:1 / -1;width:100%}.custom-handoff-grid{grid-template-columns:1fr}.custom-handoff-form .primary-command{width:100%}.bulk-band{align-items:start;display:grid}.bulk-count{width:fit-content}.bulk-actions{flex-wrap:wrap;overflow-x:visible}.bulk-actions button,.bulk-actions select{flex:1 1 108px}.user-shelf-preview-head{display:grid}.user-shelf-preview-head>span{width:fit-content}.user-shelf-preview-grid{grid-template-columns:1fr}.user-shelf-preview-item{grid-template-columns:1fr;min-height:150px;gap:9px;padding:10px}.user-shelf-preview-item .physical-shelf-mini{width:min(100%,132px)}.physical-create-row,.shelf-toolbar,.physical-shelf-filter-row,.physical-photo-row,.physical-shelf-head,.physical-layer-row,.physical-edit-actions{display:grid}.shelf-toolbar .primary-command{width:100%}.physical-shelf-filter-row button{justify-content:center}.physical-shelf-summary{grid-template-columns:1fr}.physical-shelf-summary-button{grid-template-columns:88px minmax(0,1fr)}.physical-shelf-mini{width:98px}.physical-shelf-summary-actions{justify-content:stretch}.physical-shelf-summary-actions .secondary-command,.physical-shelf-summary-actions .small-icon-command{width:100%}.physical-edit-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.physical-edit-actions .small-text-command,.physical-edit-actions .primary-command{width:100%;min-height:36px;padding:0 8px;font-size:13px}.physical-edit-actions .shelf-layer-add-button{order:1}.physical-edit-actions .shelf-editor-done-button{order:2}.shelf-list-head{align-items:stretch;display:grid}.shelf-list-actions{display:grid;justify-content:stretch}.shelf-list-actions .primary-command,.shelf-list-actions .quiet-command,.shelf-add-inline{width:100%}.shelf-add-panel{justify-content:stretch}.isbn-lookup,.scanner-actions{grid-template-columns:1fr}.scanner-actions button,.isbn-lookup button{width:100%}.profile-head{display:grid;grid-template-columns:58px minmax(0,1fr)}.profile-actions{grid-column:1 / -1;justify-content:stretch}.profile-actions .secondary-command,.profile-actions .signout-button{flex:1 1 140px}.profile-info-grid,.profile-preference-grid{grid-template-columns:1fr}.profile-preference-card{min-height:0}.physical-shelf-browser{scroll-margin-top:86px}.physical-shelf-browser-card{grid-template-columns:76px minmax(0,1fr)}.real-shelf-browser-card{grid-template-columns:1fr}.real-shelf-browser-head{display:grid;gap:10px}.real-shelf-head-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);justify-content:stretch;gap:8px}.real-shelf-view-toggle{grid-column:1 / -1;width:100%}.real-shelf-view-toggle button{flex:1 1 0;min-width:0}.real-shelf-head-actions .secondary-command,.real-shelf-head-actions .primary-command,.real-shelf-head-actions .quiet-command{width:100%;min-height:36px;padding:0 8px;font-size:13px}.real-shelf-head-actions .shelf-return-button{order:1}.real-shelf-head-actions .shelf-edit-toggle{order:2}.real-shelf-visual-wrap,.real-shelf-visual-wrap.has-preview{grid-template-columns:minmax(0,1fr);width:100%}.real-book-title-bubble{position:fixed;grid-column:auto;right:10px;bottom:calc(env(safe-area-inset-bottom,0px) + 82px);z-index:40;grid-template-columns:52px minmax(0,1fr);gap:6px 8px;width:min(72vw,260px);max-width:calc(100vw - 20px);padding:8px 10px}.real-book-title-bubble-cover{width:52px;height:72px;border-radius:6px}.real-book-title-bubble>strong{font-size:13px}.real-book-title-bubble>span:not(.real-book-title-bubble-cover){font-size:11px}.real-book-title-bubble:after{top:50%;right:-6px;left:auto;border:0;border-top:1px solid rgba(255,255,255,.58);border-right:1px solid rgba(255,255,255,.58);transform:translateY(-50%) rotate(45deg)}.real-shelf-stage{min-height:0}.real-shelf-overlay{grid-template-rows:var(--shelf-layer-rows, repeat(var(--shelf-layer-count, 1), minmax(0, 1fr)));min-height:0;padding:8px 4px}.real-shelf-layer{grid-template-columns:1fr;gap:0;min-height:0;padding:5px 1px 0}.photo-backed .real-shelf-layer{gap:0;padding:2px 1px 0}.real-shelf-row{height:100%;min-height:0;padding-left:0}.photo-backed .real-shelf-row{min-height:0;padding:0 0 2px}.real-shelf-layer-book-main{grid-template-columns:36px minmax(0,1fr);gap:8px}.real-shelf-layer-book-cover{width:36px;height:50px}.real-shelf-layer-travel{grid-column:2;width:fit-content}.physical-photo-ratio-actions .secondary-command,.physical-photo-ratio-actions .quiet-command{flex:1 1 88px;width:100%}.physical-dimension-quick{grid-template-columns:repeat(2,minmax(0,1fr))}.physical-dimension-quick .secondary-command,.physical-dimension-quick .quiet-command{width:100%}.photo-layer-tune-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.physical-shelf-photo.large{width:76px}.physical-shelf-browser-card .quiet-command{grid-column:1 / -1;width:100%}.modal-backdrop{align-items:end;padding:12px}.duplicate-dialog{max-height:calc(100vh - 24px);padding:14px}.duplicate-dialog-head,.duplicate-item{display:grid}.duplicate-actions{justify-content:stretch}.duplicate-actions .secondary-command,.duplicate-actions .quiet-command,.duplicate-footer .secondary-command,.duplicate-footer .primary-command{width:100%}.avatar-upload{align-items:flex-start}.avatar-upload-actions{flex:1}.avatar-upload-main{width:100%}.avatar-upload-actions .secondary-command,.avatar-upload-actions .primary-command,.avatar-upload-actions .quiet-command{flex:1 1 130px}.cover-adjust-card{grid-template-columns:minmax(82px,112px) minmax(0,1fr);gap:10px;padding:10px}.cover-adjust-actions{grid-column:1 / -1}.cover-adjust-actions .primary-command,.cover-adjust-actions .quiet-command{flex:1 1 128px}.signout-button{width:100%}.shelf-card{grid-template-columns:28px 58px minmax(0,1fr);gap:10px;padding:11px}.shelf-card-actions{grid-column:2 / -1;justify-content:flex-end}.shelf-edit-form,.confirm-row{grid-column:2 / -1}.shelf-fields{grid-template-columns:1fr}.bottom-nav{position:fixed;right:0;bottom:0;left:0;z-index:25;display:grid;grid-template-columns:repeat(auto-fit,minmax(54px,1fr));border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);background:#fffffff0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 -10px 30px #12222914}.bottom-item{position:relative;display:grid;place-items:center;gap:3px;min-height:60px;padding:6px 0;color:var(--muted);background:transparent;font-size:11px}.bottom-item svg{border-radius:999px;padding:5px;width:30px;height:30px;transition:background .14s ease,color .14s ease}.bottom-item.active{color:var(--teal);font-weight:750}.bottom-item.active svg{background:var(--teal-soft)}.bottom-badge{position:absolute;top:5px;right:max(15%,8px);min-width:18px;height:18px;padding:0 5px;font-size:10px}.toast{right:14px;bottom:76px;left:14px;justify-content:center}}@media(max-width:430px){.control-band{grid-template-columns:minmax(0,1fr) 78px}.location-mini-command{width:auto;min-width:78px}.search-box,.location-mini-command{min-height:42px}.chip{min-height:34px;padding:0 11px}.recognized-card.editable{grid-template-columns:1fr}.recognized-card.editable>.book-cover{width:72px}.recognized-card .candidate-fields,.candidate-more-grid{grid-template-columns:1fr}.recognition-steps{grid-template-columns:1fr 1fr}.candidate-head .candidate-check{flex-basis:100%}.cover-adjust-card{grid-template-columns:86px minmax(0,1fr)}.candidate-more-settings summary{display:grid;align-items:start}.candidate-more-settings summary b{text-align:left}.cover-adjust-controls label{grid-template-columns:36px minmax(0,1fr);gap:8px}.detail-facts,.stats-row{grid-template-columns:1fr 1fr}.detail-cover-row h2{font-size:23px}.detail-meta-list div{display:grid;gap:3px}.detail-meta-list strong{text-align:left}.intent-card-head,.intent-reply-actions{display:grid}.intent-card-head b{width:fit-content}.timeline-title{display:grid}}
