:root{--primary:#082f63;--primary-2:#0b4f93;--primary-3:#1677c9;--primary-light:#e8f3ff;--primary-soft:#f1f8ff;--bg:#eef4fb;--card:#fff;--text:#102033;--muted:#68778b;--success:#16803a;--warning:#b77905;--danger:#c02634;--line:#dbe7f3;--soft-line:#edf3f9;--blue:#2563eb;--cyan:#0ea5e9;--gold:#f7b731;--shadow:0 18px 45px #082f631a;--shadow-soft:0 10px 28px #0f234114;--shadow-strong:0 24px 62px #082f632e;--radius:22px;--radius-sm:16px;--nav-height:76px}.exchange-tabs,.exchange-actions{flex-wrap:wrap;gap:10px;margin:16px 0;display:flex}.exchange-tabs button,.exchange-actions button{white-space:normal;border-radius:12px;min-height:44px;padding:10px 16px}.exchange-tabs button{border:1px solid var(--line);background:var(--card);color:var(--text);flex:1}.exchange-tabs button[aria-pressed=true]{background:var(--forest,#173f32);color:#fff}.secondary-btn{border:1px solid var(--line);background:var(--card);color:var(--text)}.exchange-card{overflow-wrap:anywhere;min-width:0}.exchange-card .request-card-heading{flex-wrap:wrap;gap:12px}.exchange-card .owner-book-summary{flex:210px;min-width:0}.exchange-card .owner-book-summary>div:last-child{min-width:0}.exchange-card .book-thumb{flex-shrink:0}.exchange-note{color:#204b34;background:#edf5ee;border-radius:12px;padding:12px 16px;line-height:1.6}.exchange-timeline{border-left:2px solid #c5d8c8;margin:18px 0;padding:0 0 0 18px;list-style:none}.exchange-timeline li{flex-wrap:wrap;gap:6px 14px;margin:12px 0;font-size:13px;display:flex}.exchange-timeline time{color:var(--muted)}.status-pill.completed,.status-pill.given{color:#22542d;background:#e0f0df}.status-pill.cancelled{color:#625b50;background:#f1eee7}.exchange-dialog{width:min(480px,100% - 32px);max-height:calc(100dvh - 40px);color:var(--text);box-shadow:var(--shadow);background:#fffdf8;border:1px solid #ddd9ce;border-radius:24px;padding:28px;overflow:auto}.exchange-dialog::backdrop{background:#0c1d148c}.exchange-dialog h2{font-size:clamp(22px,4vw,28px);line-height:1.2}.second-spin{color:#22542d;background:#e0f0df;border-radius:20px;place-items:center;width:64px;height:64px;font-size:30px;display:grid}.second-spin.complete{animation:.65s ease-out both second-spin}@keyframes second-spin{0%{opacity:.3;transform:perspective(300px)rotateY(-70deg)}to{opacity:1;transform:perspective(300px)rotateY(0)}}.exchange-chat-context{border-bottom:1px solid var(--line);overflow-wrap:anywhere;background:#edf5ee;gap:12px;padding:12px 18px;display:flex}.exchange-chat-context>div:last-child{min-width:0}.exchange-chat-context .book-thumb{flex-shrink:0;width:42px;height:54px}.exchange-chat-context p{margin:5px 0;font-size:13px}@media (width<=430px){.exchange-card{padding:16px}.exchange-actions button{flex:120px}.exchange-dialog{padding:20px}}@media (prefers-reduced-motion:reduce){.second-spin.complete{animation:none}}*{box-sizing:border-box}html{background:var(--bg)}body{color:var(--text);background:radial-gradient(circle at top left, #2563eb1f, transparent 28rem), linear-gradient(180deg, #f7fbff 0%, var(--bg) 45%, #e9f0f8 100%);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif}::selection{color:#fff;background:var(--primary)}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #2563eb4d}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{min-height:100vh;padding-bottom:var(--nav-height)}.app-topbar{color:#fff;background:linear-gradient(120deg,#061f45,#0b4f93 62%,#1677c9);justify-content:space-between;align-items:center;gap:16px;width:min(100%,1120px);min-height:66px;margin:0 auto;padding:12px 18px;display:flex;box-shadow:0 12px 32px #082f632e}.brand-lockup{color:#fff;cursor:pointer;letter-spacing:-.04em;background:0 0;border:0;align-items:center;gap:10px;padding:0;font-size:21px;font-weight:900;display:inline-flex}.brand-mark{color:#082f63;background:#fff;border-radius:11px;place-items:center;width:34px;height:34px;font-size:17px;display:grid}.app-status{color:#dbeafe;align-items:center;gap:7px;font-size:12px;font-weight:750;display:inline-flex}.app-status svg{color:#75e6a6;font-size:9px}.page-content{isolation:isolate;background:#f7faff;width:min(100%,1120px);min-height:100vh;margin:0 auto;overflow:hidden;box-shadow:0 0 0 1px #dbe7f3cc,0 28px 90px #082f6329}.page{min-height:calc(100vh - var(--nav-height));padding:max(20px, env(safe-area-inset-top)) 18px 24px;background:linear-gradient(#e8f3ffbf,#f7faff00 220px),#f7faff;animation:.18s ease-out page-enter}.loading-label{color:var(--primary);margin:0 0 12px;font-size:12px;font-weight:900}.page h1,.page h2,.page h3,.page p{letter-spacing:0}.page h1{color:var(--primary);margin:0;font-size:28px;line-height:1.05}.page-heading{z-index:4;background:linear-gradient(#f7faff 70%,#f7faff00);justify-content:space-between;align-items:center;gap:14px;margin-bottom:8px;padding:8px 0 18px;display:flex;position:sticky;top:0}.page-heading p{margin:0}.page-heading .eyebrow,.profile-header .eyebrow,.daily-quote-card .eyebrow{color:var(--muted);letter-spacing:0;text-transform:uppercase;margin-bottom:5px;font-size:11px;font-weight:850}.page-heading>svg{width:46px;height:46px;color:var(--primary);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-soft);border-radius:16px;padding:12px}.bottom-nav{z-index:20;width:min(100%,480px);height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding:10px 10px calc(9px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffeb;border-top:1px solid #dbe7f3f2;grid-template-columns:repeat(5,1fr);align-items:start;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -20px 48px #082f631f}.bottom-nav button{min-width:0;min-height:58px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:20px;place-items:center;gap:4px;padding:8px 4px;font-size:11px;font-weight:800;transition:color .18s,background-color .18s,transform .18s,box-shadow .18s;display:grid}.bottom-nav button svg{font-size:21px}.bottom-nav button:active,.primary-btn:active,.quick-action-grid button:active,.profile-links button:active,.book-card:active,.compact-book-card:active,.conversation-card:active{transform:scale(.985)}.nav-icon-wrap{place-items:center;display:grid;position:relative}.nav-badge,.inline-badge,.unread-badge{color:#fff;background:var(--danger);border-radius:999px;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:10px;font-weight:900;display:inline-grid}.nav-badge{border:2px solid #fff;min-width:18px;height:18px;font-size:8px;position:absolute;top:-9px;right:-14px}.inline-badge{vertical-align:middle;margin-left:5px}.auth-page{background:radial-gradient(circle at 28% 12%,#93c5fd80,#0000 17rem),radial-gradient(circle at 82% 18%,#0ea5e938,#0000 13rem),linear-gradient(#062553 0%,#0b3b75 42%,#eef6ff 42%,#f7faff 100%);place-items:center;min-height:100vh;padding:22px;display:grid}.auth-card{text-align:center;background:#fffffff7;border:1px solid #dbe7f3f5;border-radius:30px;width:min(100%,410px);padding:30px 22px 24px;animation:.26s ease-out auth-card-enter;box-shadow:0 28px 70px #0315313d}.auth-kicker{width:fit-content;color:var(--primary);background:var(--primary-light);text-transform:uppercase;border:1px solid #cfe5ff;border-radius:999px;align-items:center;gap:7px;margin:0 auto 14px;padding:8px 11px;font-size:11px;font-weight:900;display:inline-flex}.logo-circle{color:#fff;background:linear-gradient(145deg, var(--primary), var(--primary-3));border:6px solid #eff7ff;border-radius:24px;place-items:center;width:82px;height:82px;margin:0 auto 16px;font-size:34px;display:grid;box-shadow:0 18px 32px #082f6338}.auth-card h1{color:var(--primary);margin:0;font-size:31px;line-height:1.05}.auth-card h2{color:var(--text);margin:6px 0 10px;font-size:22px}.auth-subtitle,.switch-text{color:var(--muted);font-size:14px;line-height:1.45}.notice-box,.page-message,.status-card,.empty-state{border-radius:20px;line-height:1.45}.notice-box{color:var(--primary);background:var(--primary-light);border:1px solid #cfe5ff;margin:18px 0;padding:12px;font-size:13px}.notice-box p{justify-content:center;align-items:center;gap:7px;margin:6px 0;display:flex}.auth-card input,.form-card input,.form-card select,.form-card textarea,.search-field,.filter-row input,.filter-row select,.message-composer input,.ai-composer input{width:100%;color:var(--text);border:1px solid var(--line);background:#fbfdff;border-radius:17px;box-shadow:inset 0 1px #ffffffbf}.auth-card input,.form-card input,.form-card select,.form-card textarea{margin-bottom:12px;padding:15px 14px;font-size:15px}.form-card textarea{resize:vertical;min-height:112px}.primary-btn,.demo-entry-btn,.back-link,.danger-outline-btn,.approve-btn,.reject-btn,.suggestion-row button{cursor:pointer;border-radius:17px;justify-content:center;align-items:center;gap:8px;font-weight:850;transition:transform .16s,box-shadow .16s,filter .16s,background-color .16s;display:inline-flex}.primary-btn{color:#fff;background:linear-gradient(135deg, var(--primary), var(--primary-2) 55%, var(--primary-3));border:0;width:100%;min-height:50px;padding:14px 16px;font-size:16px;box-shadow:0 14px 28px #082f6338}.primary-btn:not(:disabled):hover,.demo-entry-btn:hover,.back-link:hover,.danger-outline-btn:hover,.approve-btn:hover,.reject-btn:hover,.suggestion-row button:hover{filter:brightness(.98);transform:translateY(-1px)}.primary-btn:disabled,.message-composer button:disabled,.ai-composer button:disabled{cursor:not-allowed;opacity:.58;box-shadow:none}.demo-entry-btn{width:100%;min-height:46px;color:var(--primary);background:#f1f7ff;border:1px solid #cfe5ff;margin-top:10px}.switch-text button{color:var(--primary);cursor:pointer;background:0 0;border:0;font-weight:850}.form-message,.page-message{color:var(--primary);background:var(--primary-light);border:1px solid #cfe5ff;margin:14px 0;padding:12px 14px;font-size:13px;font-weight:750;box-shadow:0 10px 22px #2563eb12}.error{color:var(--danger)}.success{color:var(--success)}.form-message.error,.page-message.error{color:var(--danger);background:#fff7f8;border-color:#ffd5db}.form-message.success,.page-message.success{color:var(--success);background:#f2fbf5;border-color:#b9efca}.terms-row{color:#334155;text-align:left;align-items:center;gap:10px;margin:10px 0 16px;font-size:13px;display:flex}.terms-row input{width:18px;height:18px;accent-color:var(--primary);margin:0}.profile-page{background:linear-gradient(#eaf5ff 0,#f7faff 310px),#f7faff}.profile-header{color:#fff;background:linear-gradient(135deg,#082f63fa,#0b4f93fa 58%,#1677c9f5),#0b3b75;border-radius:28px;align-items:center;gap:16px;padding:24px 22px;display:flex;position:relative;overflow:hidden;box-shadow:0 22px 48px #082f6340}.profile-header:after{content:"";background:#ffffff1a;border-radius:50%;width:170px;height:170px;position:absolute;bottom:-70px;right:-54px}.profile-header:before{content:"";background:linear-gradient(135deg,#ffffff2e,#ffffff08);border-radius:26px;width:78px;height:78px;position:absolute;inset:12px 12px auto auto;transform:rotate(12deg)}.profile-avatar{z-index:1;color:#dbeafe;background:#ffffff21;border-radius:24px;flex:none;padding:6px;font-size:58px}.profile-header div{z-index:1;min-width:0}.profile-header h1,.profile-header p{color:#fff;overflow-wrap:anywhere;margin:0}.profile-header h1{font-size:25px;line-height:1.1}.profile-header .eyebrow,.profile-header div>p:last-child{color:#cfe5ff}.profile-hero-chip{color:#fff;background:#ffffff29;border:1px solid #ffffff38;border-radius:999px;align-items:center;min-height:28px;margin-top:10px;padding:6px 10px;font-size:11px;font-weight:900;display:inline-flex}.daily-quote-card,.profile-details div,.stat-card,.analytics-card,.profile-links button,.quick-action-grid button,.form-card,.book-card,.compact-book-card,.request-card,.owner-book-card,.notification-card,.leaderboard-card,.terms-card,.admin-stat-card,.status-card,.empty-state{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-soft)}.daily-quote-card{border-left:5px solid var(--cyan);border-radius:22px;margin-top:16px;padding:17px 18px}.daily-quote-card blockquote{color:#26364a;margin:0;font-size:15px;font-weight:850;line-height:1.45}.demo-toggle{width:100%;color:var(--text);background:linear-gradient(135deg, white, var(--primary-soft));border:1px solid var(--line);box-shadow:var(--shadow-soft);text-align:left;cursor:pointer;border-radius:20px;grid-template-columns:46px 1fr;align-items:center;gap:12px;margin-top:16px;padding:13px 14px;display:grid}.demo-toggle.enabled{color:#14532d;background:#f2fbf5;border-color:#b9efca}.demo-toggle>svg{font-size:34px}.demo-toggle span,.demo-toggle strong,.demo-toggle small{display:block}.demo-toggle small{color:var(--muted);margin-top:3px;font-size:11px}.profile-details{grid-template-columns:1fr 1fr;gap:12px;margin:18px 0;display:grid}.profile-details div,.stat-card{border-radius:20px;min-width:0;padding:16px}.profile-details span,.stat-card span,.admin-stat-card span{color:var(--muted);font-size:12px;display:block}.profile-details strong,.stat-card strong,.admin-stat-card strong{color:var(--primary);font-size:23px;line-height:1;display:block}.safety-actions{border-bottom:1px solid var(--line);background:#f7f8f3;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 16px;display:flex}.safety-actions>span{width:100%;color:var(--muted);font-size:12px}.safety-link{color:#3c5946;min-height:38px;font:inherit;cursor:pointer;background:#fffdf8;border:1px solid #cdd8d0;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:12px;font-weight:700;display:inline-flex}.safety-link:hover{background:#edf4ef}.safety-dialog{width:min(440px,100vw - 28px);max-height:88dvh;color:var(--text);box-shadow:var(--shadow);border:0;border-radius:22px;padding:24px}.safety-dialog::backdrop{background:#0c1e16a6}.safety-dialog form{gap:12px;display:grid}.safety-dialog h2{color:var(--primary);margin:0}.safety-dialog p{color:var(--muted);margin:0;line-height:1.45}.safety-dialog label{gap:6px;font-weight:700;display:grid}.safety-dialog select,.safety-dialog textarea{box-sizing:border-box;border:1px solid var(--line);width:100%;font:inherit;border-radius:10px;padding:10px}.safety-dialog textarea{resize:vertical;min-height:82px}.exchange-safety-note{color:#496154;border-bottom:1px solid var(--line);background:#f3f7f1;margin:0;padding:10px 16px;font-size:12px;line-height:1.4}.moderation-queue{margin-top:24px}.moderation-queue h2{color:var(--primary)}.moderation-card{background:#fffdf8;border:1px solid #dce5dc;border-radius:16px;justify-content:space-between;gap:16px;margin:12px 0;padding:16px;display:flex}.moderation-card p{margin:6px 0}.moderation-card small{color:var(--muted)}.moderation-note{overflow-wrap:anywhere}.moderation-controls{flex-wrap:wrap;flex:none;align-content:flex-start;gap:7px;max-width:240px;display:flex}.moderation-controls button{color:#314b3a;min-height:36px;font:inherit;cursor:pointer;background:#f5f8f4;border:1px solid #cdd8d0;border-radius:9px;padding:7px 9px;font-size:12px;font-weight:700}@media (width<=600px){.moderation-card{flex-direction:column}.moderation-controls{max-width:none}.moderation-controls button{flex:130px}}.profile-details strong{margin-top:6px}.profile-edit-button,.profile-edit-actions button{width:auto;color:var(--primary);font:inherit;cursor:pointer;background:#fff;border:1px solid #082f6333;border-radius:10px;margin-top:10px;padding:7px 10px;font-size:13px;font-weight:700}.profile-edit-button{background:var(--primary);color:#fff;width:100%;margin:-6px 0 10px;padding:11px 14px}.profile-message{margin:8px 0 0;font-size:12px;line-height:1.35}.profile-message.success{color:#0b6b3a}.profile-message.error{color:#b42318}.profile-edit-backdrop{z-index:30;background:#082f637a;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.profile-edit-dialog{background:#fff;border-radius:20px;width:min(100%,440px);padding:22px;box-shadow:0 20px 60px #082f6340}.profile-edit-dialog h2{color:var(--primary);margin:0}.profile-edit-dialog p{color:var(--muted);margin:7px 0 18px;font-size:14px}.profile-edit-dialog label{color:var(--ink);margin:14px 0 6px;font-size:13px;font-weight:800;display:block}.profile-edit-dialog select,.profile-edit-dialog input{box-sizing:border-box;width:100%;color:var(--ink);font:inherit;background:#fff;border:1px solid #082f6340;border-radius:10px;padding:11px}.profile-edit-actions{justify-content:flex-end;gap:9px;margin-top:20px;display:flex}.profile-edit-actions button:last-child{background:var(--primary);color:#fff}.stats-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.stat-card{text-align:left;background:linear-gradient(135deg, #fffffffa, #f1f8ffe6), var(--card)}.stat-card svg,.admin-stat-card svg{color:var(--blue);font-size:22px}.stat-card strong{margin:10px 0 5px}.analytics-card{border-radius:22px;margin-top:14px;padding:18px}.analytics-card h2,.profile-links h2{color:var(--primary);align-items:center;gap:8px;margin:0 0 14px;font-size:16px;display:flex}.chart-row{color:var(--muted);grid-template-columns:70px 1fr 26px;align-items:center;gap:10px;margin-top:11px;font-size:11px;font-weight:750;display:grid}.chart-track{background:#e7eef6;border-radius:999px;height:9px;overflow:hidden}.chart-track span{background:linear-gradient(90deg, var(--primary), #3b82f6);border-radius:inherit;height:100%;display:block}.chart-row strong{color:var(--primary)}.quick-action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 22px;display:grid}.quick-action-grid button{min-height:94px;color:var(--primary);cursor:pointer;border-radius:20px;align-content:center;justify-items:center;gap:9px;padding:12px 7px;transition:transform .16s,box-shadow .16s,border-color .16s;display:grid}.quick-action-grid button:hover,.profile-links button:hover,.book-card:hover,.compact-book-card:hover,.request-card:hover,.owner-book-card:hover,.notification-card:hover,.leaderboard-card:hover,.conversation-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.quick-action-grid svg{font-size:23px}.quick-action-grid span{color:var(--text);text-align:center;font-size:11px;font-weight:850;line-height:1.2}.profile-links{margin-top:24px}.profile-links button{width:100%;color:var(--text);text-align:left;cursor:pointer;border-radius:20px;grid-template-columns:48px 1fr;align-items:center;gap:13px;margin-bottom:11px;padding:14px;display:grid}.profile-links button>svg{width:48px;height:48px;color:var(--primary);background:var(--primary-light);border-radius:16px;padding:13px}.profile-links button span,.profile-links button strong,.profile-links button small{display:block}.profile-links button small{color:var(--muted);margin-top:4px;font-size:11px}.logout-btn{width:100%;min-height:50px;color:var(--danger);cursor:pointer;background:#fff7f8;border:1px solid #ffd7dc;border-radius:18px;justify-content:center;align-items:center;gap:9px;margin-top:24px;font-weight:850;display:flex}.book-list,.compact-book-list,.request-list,.owner-book-list,.notification-list,.leaderboard-list,.conversation-list{flex-direction:column;gap:14px;display:flex}.book-card{border-radius:24px;padding:14px;transition:transform .18s,box-shadow .18s;position:relative;overflow:hidden}.book-image-placeholder,.book-thumb,.image-preview-frame{color:var(--primary);background:linear-gradient(145deg,#e8f3fff2,#ffffffc7),#edf6ff;place-items:center;display:grid;overflow:hidden}.book-image-placeholder{border-radius:22px;height:270px;margin-bottom:15px;font-size:58px;position:relative;box-shadow:inset 0 0 0 1px #cfe5ffd9}.book-image-placeholder:after{content:"";pointer-events:none;background:linear-gradient(#ffffff57,#fff0);border-radius:999px;height:38px;position:absolute;inset:auto 12px 12px}.cover-status{min-height:30px;color:var(--success);text-transform:capitalize;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffed;border:1px solid #c7f1d4e6;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:10px;font-weight:900;display:inline-flex;position:absolute;top:12px;right:12px;box-shadow:0 10px 22px #082f631f}.cover-status.reserved,.cover-status.given{color:#1e40af;border-color:#c8dcff}.cover-status.rejected{color:var(--danger);border-color:#ffd2d8}.book-image-placeholder img,.book-thumb img,.image-preview-frame img{object-fit:cover;width:100%;height:100%}.book-card h2,.compact-book-card h2,.request-card h2,.owner-book-card h2,.ai-result-card h2{color:var(--primary);margin:0;font-size:18px;line-height:1.22}.book-card-copy{gap:4px;margin-bottom:10px;display:grid}.book-meta-line{color:var(--muted);align-items:center;gap:6px;margin:0;font-size:12px;font-weight:800;display:inline-flex}.book-card p{color:#3d4c5f;margin:8px 0;font-size:14px;line-height:1.42}.book-card p strong{color:var(--text)}.book-card .primary-btn{margin-top:12px}.request-book-btn{position:relative;overflow:hidden}.request-book-btn:after{content:"";background:linear-gradient(90deg,#0000,#ffffff38,#0000);transition:transform .42s;position:absolute;inset:0;transform:translate(-110%)}.request-book-btn:hover:after{transform:translate(110%)}.compact-book-card{border-radius:22px;grid-template-columns:76px 1fr;gap:13px;padding:14px;transition:transform .16s,box-shadow .16s;display:grid}.book-thumb{aspect-ratio:3/4;border-radius:17px;width:76px;font-size:25px;position:relative}.mini-status{width:23px;height:23px;color:var(--success);background:#fff;border:1px solid #c7f1d4;border-radius:999px;place-items:center;font-size:10px;display:grid;position:absolute;bottom:-5px;right:-5px;box-shadow:0 8px 16px #082f631f}.mini-status.reserved,.mini-status.given{color:#1e40af;border-color:#c8dcff}.book-thumb.small{border-radius:14px;width:50px}.compact-book-card p{color:var(--muted);margin:6px 0 10px;font-size:12px}.tag-row{flex-wrap:wrap;gap:6px;display:flex}.tag-row span,.status-pill,.points-badge{color:#4b5f76;text-transform:capitalize;background:#f1f6fb;border:1px solid #e5eef7;border-radius:999px;justify-content:center;align-items:center;min-height:24px;padding:5px 9px;font-size:10px;font-weight:850;display:inline-flex}.tag-row span svg{margin-right:5px;font-size:10px}.tag-row .available,.status-pill.available,.status-pill.approved{color:var(--success);background:#ebfbf0;border-color:#c7f1d4}.status-pill.pending{color:#9a5b07;background:#fff7df;border-color:#fde7a7}.status-pill.reserved,.status-pill.given{color:#1e40af;background:#e8f1ff;border-color:#c8dcff}.status-pill.rejected{color:var(--danger);background:#fff1f3;border-color:#ffd2d8}.form-card{border-radius:24px;padding:18px}.image-upload-field{color:#334155;cursor:pointer;background:linear-gradient(135deg,#f8fbff,#eff7ff);border:1px dashed #9cc8ff;border-radius:22px;grid-template-columns:90px 1fr;align-items:center;gap:14px;margin-bottom:15px;padding:13px;display:grid}.image-upload-field input{opacity:0;width:1px;height:1px;position:absolute}.image-upload-field strong,.image-upload-field small{display:block}.image-upload-field strong{color:var(--primary);align-items:center;gap:7px;display:flex}.image-upload-field small{color:var(--muted);margin-top:5px;font-size:11px}.image-preview-frame{aspect-ratio:3/4;border-radius:18px;width:90px;font-size:28px;box-shadow:inset 0 0 0 1px #dbeafe}.filter-panel{background:linear-gradient(135deg, white, var(--primary-soft)), white;border:1px solid var(--line);box-shadow:var(--shadow-soft);border-radius:24px;margin-bottom:18px;padding:15px}.search-field{align-items:center;gap:10px;padding:0 14px;display:flex}.search-field svg{color:var(--muted)}.search-field input{background:0 0;border:0;outline:0;padding:14px 0}.filter-row{grid-template-columns:1fr;gap:10px;margin-top:12px;display:grid}.filter-row label{color:var(--muted);flex-direction:column;gap:6px;font-size:11px;font-weight:850;display:flex}.filter-row input,.filter-row select{padding:12px}.result-count{color:var(--muted);align-items:center;gap:7px;margin:13px 2px 0;font-size:12px;font-weight:750;display:flex}.status-card,.empty-state{color:var(--muted);text-align:center;padding:24px 18px}.status-card svg{margin-right:6px;animation:1s linear infinite spin}.status-card.error{color:var(--danger);background:#fff7f8;border-color:#ffd5db}.empty-state{background:linear-gradient(135deg,#fffffff2,#e8f3ffcc),#fff;border-style:dashed}.skeleton-header,.skeleton-card{background:#e5eef7;border-radius:22px;position:relative;overflow:hidden}.skeleton-header{grid-template-columns:58px 1fr;gap:14px;height:104px;margin-bottom:18px;padding:18px;display:grid}.skeleton-header>span,.skeleton-header div span{background:#d3e0ec;border-radius:999px;display:block}.skeleton-header>span{width:58px;height:58px}.skeleton-header div{align-content:center;gap:10px;display:grid}.skeleton-header div span:first-child{width:72%;height:18px}.skeleton-header div span:last-child{width:52%;height:12px}.skeleton-card{height:150px;margin-bottom:14px}.skeleton-card.short{height:82px}.skeleton-header:after,.skeleton-card:after{content:"";background:linear-gradient(90deg,#0000,#ffffffb3,#0000);animation:1.2s infinite skeleton-shimmer;position:absolute;inset:0;transform:translate(-100%)}.request-card,.owner-book-card,.notification-card{border-radius:22px;padding:15px;transition:transform .16s,box-shadow .16s}.request-card-heading{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.request-card p,.owner-book-card p{color:var(--muted);margin:8px 0;font-size:12px}.danger-outline-btn{width:100%;min-height:42px;color:var(--danger);background:#fff7f8;border:1px solid #ffd4da;margin-top:9px;font-size:12px}.owner-book-card h3{color:#334155;margin:18px 0 9px;font-size:13px}.owner-book-summary{grid-template-columns:60px 1fr;align-items:center;gap:12px;min-width:0;display:grid}.owner-book-summary .book-thumb{width:60px}.incoming-request{border:1px solid var(--soft-line);background:#f7fbff;border-radius:17px;grid-template-columns:1fr auto;gap:8px;margin-top:8px;padding:12px;display:grid}.incoming-request>div:first-child{flex-direction:column;gap:4px;display:inline-flex}.incoming-request>div:first-child strong{font-size:12px}.incoming-request>div:first-child span,.muted-text{color:var(--muted);font-size:10px}.request-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:8px;margin-top:2px;display:grid}.approve-btn,.reject-btn{min-height:38px;font-size:11px}.approve-btn{color:#fff;background:var(--success);border:1px solid var(--success)}.reject-btn{color:var(--danger);background:#fff;border:1px solid #ffd4da}.notification-card{grid-template-columns:46px 1fr;gap:12px;display:grid;position:relative}.notification-icon{width:46px;height:46px;color:var(--primary);background:var(--primary-light);border-radius:16px;place-items:center;display:grid}.notification-card.book_approved .notification-icon{color:var(--success);background:#ebfbf0}.notification-card.book_rejected .notification-icon{color:var(--danger);background:#fff1f3}.notification-card strong{color:var(--primary);font-size:13px}.notification-card p{color:#405166;margin:5px 0;font-size:12px;line-height:1.42}.notification-card time{color:#8a99ab;font-size:10px}.notification-dot{background:var(--blue);border-radius:50%;width:8px;height:8px;position:absolute;top:14px;right:14px}.conversation-card{width:100%;color:inherit;background:linear-gradient(135deg, white, var(--primary-soft));border:1px solid var(--line);box-shadow:var(--shadow-soft);text-align:left;cursor:pointer;border-radius:22px;grid-template-columns:54px 1fr auto;align-items:center;gap:12px;padding:14px;transition:transform .16s,box-shadow .16s;display:grid}.conversation-avatar{color:#94a3b8;background:#f2f7fc;border-radius:19px;width:54px;height:54px;padding:4px}.conversation-copy{min-width:0}.conversation-copy>div{justify-content:space-between;gap:10px;display:flex}.conversation-copy time{color:#8a99ab;font-size:11px}.conversation-copy p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:5px 0 0;font-size:13px;overflow:hidden}.conversation-copy p.unread{color:var(--text);font-weight:850}.chat-page,.ai-page{min-height:calc(100vh - var(--nav-height));background:linear-gradient(#eaf5ff 0,#f7faff 210px),#f7faff;flex-direction:column;display:flex}.chat-header,.ai-header{z-index:5;padding:max(14px, env(safe-area-inset-top)) 16px 14px;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;align-items:center;gap:12px;display:flex;position:sticky;top:0;box-shadow:0 10px 24px #082f630f}.chat-header button,.ai-header>button{width:40px;height:40px;color:var(--primary);background:var(--primary-light);cursor:pointer;border:0;border-radius:15px;place-items:center;display:grid}.chat-header>svg{color:#94a3b8;width:42px;height:42px}.chat-header div,.ai-header div:last-child{flex-direction:column;min-width:0;display:flex}.chat-header strong,.ai-header strong{color:var(--primary)}.chat-header span,.ai-header span{color:var(--muted);margin-top:2px;font-size:11px}.message-thread,.ai-thread{flex:1;padding:16px;overflow-y:auto}.message-row{margin:9px 0;display:flex}.message-row.mine{justify-content:flex-end}.message-bubble{border:1px solid var(--line);background:#fff;border-radius:20px 20px 20px 7px;max-width:78%;padding:10px 13px 7px;box-shadow:0 8px 22px #0f23410f}.message-row.mine .message-bubble{color:#fff;background:linear-gradient(135deg, var(--primary), var(--blue));border-color:#0000;border-radius:20px 20px 7px}.message-bubble p{overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.4}.message-bubble span{color:#8a99ab;text-align:right;margin-top:4px;font-size:9px;display:block}.message-row.mine .message-bubble span{color:#dbeafe}.message-composer,.ai-composer{bottom:var(--nav-height);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;grid-template-columns:1fr 46px;gap:9px;padding:12px;display:grid;position:sticky}.message-composer input,.ai-composer input{border-radius:999px;padding:13px 15px}.message-composer button,.ai-composer button{color:#fff;background:linear-gradient(135deg, var(--primary), var(--blue));cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid}.ai-header{color:#fff;background:linear-gradient(135deg, var(--primary), var(--primary-2) 55%, var(--primary-3));border-bottom:0}.ai-header strong,.ai-header span{color:#fff}.ai-header span{opacity:.78;align-items:center;gap:5px;display:inline-flex}.ai-header>button{color:#fff;background:#ffffff29;margin-left:auto}.ai-avatar{color:#fff;background:#ffffff29;border:1px solid #ffffff38;border-radius:17px;place-items:center;width:46px;height:46px;font-size:21px;display:grid;box-shadow:inset 0 1px #fff3}.assistant-message,.user-message{border-radius:20px;max-width:87%;margin-bottom:12px;padding:12px 14px;font-size:13px;line-height:1.48}.assistant-message{border:1px solid var(--line);background:linear-gradient(135deg,#fff,#f8fbff);border-radius:20px 20px 20px 7px;box-shadow:0 8px 22px #0f23410f}.ai-bubble-with-icon{grid-template-columns:34px 1fr;align-items:start;gap:10px;display:grid}.assistant-badge{color:#fff;background:linear-gradient(135deg, var(--primary), var(--primary-3));border-radius:13px;place-items:center;width:34px;height:34px;display:grid}.user-message{color:#fff;background:linear-gradient(135deg, var(--primary), var(--blue));border-radius:20px 20px 7px;margin-left:auto}.ai-result-card{box-shadow:var(--shadow-soft);background:#fff;border:1px solid #cfe5ff;border-radius:22px;grid-template-columns:66px 1fr;gap:13px;margin-bottom:11px;padding:14px;display:grid}.ai-result-card p,.ai-result-card span{color:var(--muted);margin:5px 0;font-size:11px;display:block}.ai-result-card strong{color:var(--text);align-items:center;gap:5px;font-size:11px;display:inline-flex}.ai-result-card .book-thumb.small{border-radius:17px;width:66px}.ai-loading{align-items:center;gap:7px;display:flex}.ai-loading span{background:var(--primary-3);border-radius:999px;width:6px;height:6px;animation:.9s ease-in-out infinite typing-dot;display:inline-block}.ai-loading span:nth-child(2){animation-delay:.11s}.ai-loading span:nth-child(3){animation-delay:.22s}.suggestion-row{flex-wrap:wrap;gap:8px;margin:-2px 0 18px;display:flex}.suggestion-row button,.back-link{color:var(--primary);background:var(--primary-light);border:1px solid #cfe5ff}.suggestion-row button{padding:8px 11px;font-size:11px}.utility-page{padding-top:max(18px, env(safe-area-inset-top))}.back-link{border-radius:999px;min-height:38px;margin-bottom:16px;padding:8px 13px;font-size:12px}.admin-stats-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.admin-stat-card{text-align:left;background:linear-gradient(135deg, white, var(--primary-soft));border-radius:22px;min-width:0;padding:18px 12px}.admin-stat-card strong{margin:9px 0 5px}.leaderboard-card{border-radius:22px;grid-template-columns:46px 1fr auto;align-items:center;gap:12px;padding:15px;transition:transform .16s,box-shadow .16s;display:grid}.rank-badge{width:46px;height:46px;color:var(--muted);background:#f1f6fb;border-radius:16px;place-items:center;font-weight:900;display:grid}.rank-1 .rank-badge{color:#a16207;background:linear-gradient(135deg,#fff8df,#ffeaa0)}.rank-2 .rank-badge{color:#475569;background:#e9eef5}.rank-3 .rank-badge{color:#9a3412;background:#fff0df}.leaderboard-copy{min-width:0}.leaderboard-copy strong,.leaderboard-copy span{display:block}.leaderboard-copy strong{color:var(--primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.leaderboard-copy span{color:var(--muted);margin-top:4px;font-size:10px}.points-badge{color:#a16207;background:#fff6d9;border-color:#fde7a7;gap:4px}.terms-card{background:linear-gradient(135deg, white, var(--primary-soft));border-radius:24px;padding:18px}.terms-card>p{color:#405166;margin:0 0 18px;font-size:13px;line-height:1.55}.rules-list{flex-direction:column;gap:10px;display:flex}.rule-row{color:#334155;border:1px solid var(--soft-line);background:#ffffffb8;border-radius:17px;grid-template-columns:24px 1fr;gap:10px;padding:13px;font-size:12px;line-height:1.45;display:grid}.rule-row svg{color:var(--success);margin-top:2px}@media (width<=430px){.page-content{width:100%;box-shadow:none}.page{padding-left:16px;padding-right:16px}.auth-card{border-radius:26px}}@media (width<=380px){.bottom-nav{padding-left:6px;padding-right:6px}.bottom-nav button{font-size:10px}.profile-header{padding:18px}.profile-avatar{font-size:50px}.profile-header h1{font-size:21px}.quick-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-stats-grid,.stats-grid,.profile-details{grid-template-columns:1fr}.leaderboard-card{grid-template-columns:42px 1fr}.points-badge{grid-column:2;justify-self:start}.conversation-card{grid-template-columns:50px 1fr auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.image-viewer-trigger{cursor:zoom-in;width:100%;text-align:inherit;border:0;padding:0}.expand-image{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#082f63c7;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:11px;font-weight:850;display:inline-flex;position:absolute;bottom:12px;right:12px}.image-dialog-backdrop{z-index:50;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#031023b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.image-dialog{background:#fff;border-radius:28px;width:min(100%,620px);max-height:min(780px,90vh);position:relative;overflow:auto;box-shadow:0 32px 90px #00000059}.dialog-close{z-index:1;width:42px;height:42px;color:var(--primary);border:1px solid var(--line);cursor:pointer;background:#ffffffeb;border-radius:50%;font-size:17px;position:absolute;top:13px;right:13px}.dialog-image{min-height:280px;color:var(--primary);background:var(--primary-light);place-items:center;font-size:72px;display:grid;overflow:hidden}.dialog-image img{object-fit:contain;background:#eef4fb;width:100%;max-height:520px}.dialog-copy{padding:18px 20px 22px}.dialog-copy h2{color:var(--primary);margin:0;font-size:22px}.dialog-copy p{color:var(--muted);margin:8px 0 0;line-height:1.5}.upload-section{margin-bottom:18px}.field-heading{color:var(--text);justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:9px;font-size:14px;font-weight:850;display:flex}.field-heading small{color:var(--muted);text-align:right;font-size:11px;font-weight:650}.image-upload-field{background:linear-gradient(135deg,#f7fbff,#e9f5ff);border:2px dashed #b8d5f3;border-radius:22px;place-items:center;min-height:174px;transition:all .16s;display:grid;position:relative;overflow:hidden}.image-upload-field.is-dragging{border-color:var(--primary-3);background:#e2f1ff;transform:scale(1.01)}.image-upload-field>input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.empty-upload-copy{width:100%;min-height:174px;color:var(--primary);text-align:center;cursor:pointer;align-content:center;justify-items:center;gap:7px;padding:18px;display:grid}.empty-upload-copy small{color:var(--muted);font-size:12px}.empty-upload-copy em{color:#60758e;font-size:11px;font-style:normal;font-weight:750}.upload-icon{color:#fff;background:linear-gradient(135deg, var(--primary), var(--primary-3));border-radius:16px;place-items:center;width:46px;height:46px;font-size:22px;display:grid;box-shadow:0 10px 20px #082f6333}.image-upload-field.has-image{border-style:solid;border-color:var(--line);background:#fff;grid-template-columns:92px 1fr;gap:13px;min-height:112px;padding:10px}.image-upload-field.has-image .image-preview-frame{border-radius:15px;width:92px;height:92px}.upload-copy{min-width:0;color:var(--primary);gap:5px;display:grid}.upload-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.upload-copy small{color:var(--muted);font-size:11px}.image-actions{grid-column:2;gap:8px;display:flex}.image-actions label,.image-actions button{color:var(--primary);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;font-weight:850}.image-actions button{color:var(--danger)}@media (width>=720px){.app{padding-bottom:88px}.app-topbar{border-radius:20px 20px 0 0;margin-top:16px}.page-content{min-height:calc(100vh - 170px)}.page{padding:34px}.bottom-nav{border:1px solid #dbe7f3f2;border-radius:24px;width:min(720px,100% - 32px);bottom:16px}.book-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.quick-action-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.form-card.give-form{max-width:720px;margin:0 auto}}:root{--ink:#15251d;--forest:#153c31;--moss:#287457;--mint:#dff3e8;--paper:#fffdf8;--clay:#f1ede4;--coral:#ef7c5c;--radius-lg:30px}body{color:var(--ink);background:#f4f2ec}.app{background:radial-gradient(circle at 0 0,#e2f2e8 0,#0000 26rem),#f4f2ec}.app-topbar{width:min(100%,1240px);color:var(--forest);box-shadow:none;background:0 0;padding:18px 22px}.brand-lockup{color:var(--forest);letter-spacing:-.055em}.brand-mark{color:#fff;background:var(--forest);border-radius:12px;transform:rotate(-4deg)}.topbar-actions{align-items:center;gap:14px;display:flex}.app-status{color:#648072;font-weight:750}.topbar-icon{width:40px;height:40px;color:var(--forest);background:var(--paper);cursor:pointer;border:1px solid #dedbd1;border-radius:50%;position:relative}.topbar-icon b{color:#fff;background:var(--coral);border:2px solid #f4f2ec;border-radius:50%;place-items:center;min-width:17px;height:17px;font-size:9px;display:grid;position:absolute;top:-5px;right:-5px}.page-content{background:var(--paper);width:min(100%,1240px);box-shadow:0 1px #e0ddd3,0 24px 80px #1f30261a}.page{background:var(--paper)}.page h1,.page h2,.page h3{color:var(--ink)}.bottom-nav{width:min(100%,560px);height:calc(76px + env(safe-area-inset-bottom));border-top:1px solid #dfddd4;box-shadow:0 -12px 38px #1e2b221a}.bottom-nav button{color:#708176;border-radius:17px}.bottom-nav button.active{color:var(--forest);background:var(--mint);box-shadow:none}.bottom-nav button:nth-child(3){color:#fff;background:var(--coral);transform:translateY(-18px);box-shadow:0 12px 24px #b9553a4d}.bottom-nav button:nth-child(3).active{color:#fff;background:var(--forest)}.home-page{padding-top:10px}.home-hero{color:#fff;background:var(--forest);border-radius:var(--radius-lg);padding:31px 27px;position:relative;overflow:hidden;box-shadow:0 22px 46px #153c3138}.home-hero:before{content:"";border:1px solid #ffffff38;border-radius:50%;width:250px;height:250px;position:absolute;inset:auto -60px -100px auto;box-shadow:0 0 0 28px #ffffff0f,0 0 0 58px #ffffff0b}.home-hero .eyebrow{color:#bfe4cf;letter-spacing:.11em;align-items:center;gap:7px;margin:0 0 14px;font-size:10px;font-weight:900;display:inline-flex}.home-hero h1{color:#fff;letter-spacing:-.06em;max-width:500px;margin:0;font-size:clamp(32px,5vw,49px)}.home-hero>p:not(.eyebrow){z-index:1;color:#d6e8de;margin:10px 0 23px;font-size:16px;position:relative}.hero-actions{z-index:1;flex-wrap:wrap;gap:10px;display:flex;position:relative}.hero-actions button{cursor:pointer;border:0;border-radius:14px;align-items:center;gap:8px;min-height:46px;padding:0 16px;font-weight:850;display:inline-flex}.hero-primary{color:var(--forest);background:#fffdf8}.hero-secondary{color:#fff;background:#ffffff1f;border:1px solid #ffffff40!important}.hero-orbit{z-index:0;width:76px;height:76px;color:var(--forest);background:#c9e8d5;border-radius:24px;place-items:center;font-size:31px;animation:7s ease-in-out infinite bookspin;display:grid;position:absolute;top:28px;right:29px;transform:rotate(9deg)}.ai-feature-card{width:100%;color:var(--ink);cursor:pointer;text-align:left;background:#ffede6;border:1px solid #f5d7cb;border-radius:22px;grid-template-columns:50px 1fr;align-items:center;gap:14px;margin:18px 0 31px;padding:17px;display:grid}.ai-feature-card:hover{transform:translateY(-2px)}.ai-feature-card span:last-child{gap:3px;display:grid}.ai-feature-card small{color:#ac553e;letter-spacing:.1em;font-size:10px;font-weight:900}.ai-feature-card strong{font-size:15px}.ai-feature-card em{color:#805f55;font-size:12px;font-style:normal}.ai-feature-icon{color:#fff;background:var(--coral);border-radius:17px;place-items:center;width:50px;height:50px;font-size:21px;display:grid}.home-section{margin:0 0 34px}.section-heading{justify-content:space-between;align-items:end;gap:14px;margin-bottom:15px;display:flex}.section-heading .eyebrow{color:#75887c;letter-spacing:.1em;margin:0 0 5px;font-size:10px;font-weight:900}.section-heading h2{letter-spacing:-.045em;margin:0;font-size:23px}.section-heading button{color:var(--moss);cursor:pointer;background:0 0;border:0;gap:7px;padding:7px 0;font-size:12px;font-weight:850;display:inline-flex}.home-book-row{scrollbar-width:none;grid-auto-columns:minmax(126px,160px);grid-auto-flow:column;gap:14px;padding-bottom:8px;display:grid;overflow-x:auto}.home-book{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.home-cover{aspect-ratio:.71;color:#8aa095;background:#e6e3db;border-radius:15px;place-items:center;width:100%;margin-bottom:9px;font-size:28px;transition:transform .18s,box-shadow .18s;display:grid;overflow:hidden;box-shadow:0 10px 20px #1422191f}.home-book:hover .home-cover{transform:translateY(-4px)rotate(-1deg);box-shadow:0 16px 25px #1422192e}.home-cover img{object-fit:cover;width:100%;height:100%}.home-book strong,.home-book small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.home-book strong{font-size:13px}.home-book small{color:#708176;margin-top:4px;font-size:10px}.home-empty{color:#6d7d73;background:#f6f4ee;border:1px dashed #d7d3c8;border-radius:17px;padding:19px;font-size:13px}.skeleton-row span{background:linear-gradient(110deg,#e7e4dd 30%,#f4f2ec 45%,#e7e4dd 60%) 0 0/200% 100%;border-radius:15px;height:205px;animation:1.2s infinite skeleton-shimmer;display:block}.filter-panel{box-shadow:none;background:#f5f3ed;border-color:#e0ddd4}.result-count button,.empty-state button{color:var(--moss);cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:12px;font-weight:850}.empty-state strong{color:var(--ink)}.empty-state p{margin:7px 0 13px}@media (width>=720px){.app{padding-bottom:0}.app-topbar{border-radius:0;margin-top:0}.page-content{min-height:calc(100vh - 78px)}.bottom-nav{width:420px;height:52px;box-shadow:none;background:#f5f3ed;border:1px solid #e0ddd4;border-radius:16px;padding:4px;top:13px;bottom:auto;left:50%}.bottom-nav button{gap:7px;min-height:42px;font-size:11px;display:flex}.bottom-nav button svg{font-size:15px}.bottom-nav button:nth-child(3){color:var(--forest);box-shadow:none;background:0 0;transform:none}.bottom-nav button:nth-child(3).active{color:var(--forest);background:var(--mint)}.bottom-nav .nav-badge{top:-7px;right:-8px}.home-page{max-width:1120px;padding:32px 48px 64px}.home-hero{padding:53px}.home-hero>p:not(.eyebrow){font-size:18px}.hero-orbit{width:104px;height:104px;font-size:40px;top:56px;right:100px}.home-book-row{grid-auto-flow:initial;grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible}.skeleton-row span{height:210px}.page{padding:42px 48px}}@keyframes bookspin{0%,85%,to{transform:rotate(9deg)}92%{transform:rotate(369deg)}}.give-heading h1{font-size:clamp(29px,6vw,42px)}.give-form{background:#fffdf8!important;border-color:#e0ddd4!important;padding:22px!important;box-shadow:0 16px 42px #14221914!important}.form-step{border-top:1px solid #e9e5da;padding:20px 0 5px}.form-step .eyebrow{color:var(--moss);letter-spacing:.1em;margin:0 0 12px;font-size:10px;font-weight:900}.form-step label{color:#405147;margin-bottom:7px;font-size:13px;font-weight:800;display:block}.form-step input,.form-step select,.form-step textarea{margin-top:7px}.form-split{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-split select{width:100%;color:var(--text);border:1px solid var(--line);background:#fbfdff;border-radius:17px;padding:15px 14px}.spin-success{color:#214537;background:#e7f5eb;border:1px solid #c8e7d2;border-radius:28px;grid-template-columns:68px 1fr;gap:18px;padding:30px;display:grid}.spin-success>span{color:#fff;background:var(--moss);border-radius:23px;place-items:center;width:68px;height:68px;font-size:30px;animation:.7s ease-out bookspin;display:grid}.spin-success .eyebrow{color:var(--moss);margin:2px 0 7px;font-size:10px;font-weight:900}.spin-success h2{margin:0;font-size:25px}.spin-success p{color:#557064}.spin-success button{color:var(--forest);cursor:pointer;background:#fff;border:1px solid #bddcc8;border-radius:12px;margin:4px 8px 0 0;padding:10px 13px;font-weight:800}.book-card,.compact-book-card{border-color:#e0ddd4;transition:transform .18s,box-shadow .18s;box-shadow:0 11px 28px #14221912}.book-card:hover,.compact-book-card:hover{transform:translateY(-4px);box-shadow:0 18px 34px #14221924}.book-image-placeholder{background:#eae7df}.book-image-placeholder img,.book-thumb img{loading:lazy}.cover-status{background:var(--forest)!important}.tag-row span{color:#476254;background:#edf4ef;border-color:#d5e6da}.status-pill.available{color:#176b47!important;background:#e2f5e9!important}.dialog-copy.book-detail-copy{padding:27px}.book-detail-copy .eyebrow{color:var(--moss);letter-spacing:.1em;font-size:10px;font-weight:900}.detail-chips{flex-wrap:wrap;gap:7px;margin:13px 0;display:flex}.detail-chips span{color:#476254;background:#edf4ef;border-radius:999px;padding:7px 9px;font-size:11px;font-weight:800}.detail-owner{background:#e7f5eb;border-radius:14px;padding:13px;font-weight:800;color:var(--moss)!important}.request-card,.owner-book-card,.notification-card,.conversation-card{border-color:#e0ddd4;box-shadow:0 10px 27px #1422190f}.request-card-heading h2{margin:0;font-size:17px}.status-pill{text-transform:capitalize}.request-card:before{content:"";background:var(--moss);border-radius:999px;width:28px;height:3px;margin-bottom:14px;display:block}.incoming-request{background:#f7f8f3;border-color:#e7e4dc}.approve-btn{background:var(--moss);border-color:var(--moss)}.notification-card{background:#fffdf8}.notification-card.unread{background:#f2faf4;border-color:#c7e6d0}.notification-icon{color:var(--forest);background:#e3f3e8}.conversation-card{background:#fffdf8}.conversation-avatar{color:var(--moss);background:#e7f3ea}.message-row.mine .message-bubble,.message-composer button{background:var(--forest)}.message-composer,.ai-composer{border-color:#e0ddd4}.chat-header{background:#fffdf8;border-color:#e0ddd4}.chat-header button{color:var(--forest);background:#e7f3ea}.profile-header{background:var(--forest)}.profile-hero-chip{color:#d7efdf;background:#ffffff1f}.profile-stats .stat-card:nth-child(4){color:#8d5b08;background:#fff8e4;border-color:#f2dfaa}.profile-stats .stat-card:nth-child(4):after{content:"Trust Points reflect your positive activity on BookSpins.";color:#8b733a;margin-top:6px;font-size:10px;line-height:1.35;display:block}.auth-page{background:radial-gradient(circle at 18% 12%,#cfead8 0,#0000 19rem),linear-gradient(#173d32 0% 42%,#f4f2ec 42%)}.auth-card{border-color:#e0ddd4}.auth-kicker{color:var(--moss);background:#e7f5eb;border-color:#c9e6d2}.logo-circle{background:var(--forest)}.password-field{position:relative}.password-field input{padding-right:50px}.password-field button{width:38px;height:38px;color:var(--moss);cursor:pointer;background:0 0;border:0;position:absolute;top:7px;right:8px}.auth-subtitle{color:#5b7365;font-weight:750}@media (width>=720px){.dialog-image{min-height:530px}.image-dialog{grid-template-columns:1.05fr .95fr;width:min(100%,900px);display:grid;overflow:visible}.dialog-copy.book-detail-copy{align-self:center}.dialog-image img{max-height:620px}.spin-success{max-width:700px;margin:30px auto}.form-split{max-width:520px}}@keyframes page-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-card-enter{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skeleton-shimmer{to{transform:translate(100%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes typing-dot{0%,80%,to{opacity:.45;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}.discovery-book{min-width:0;position:relative}.home-book.discovery-book{white-space:normal;flex:0 0 180px}.discovery-copy{overflow-wrap:anywhere;min-width:0}.discovery-copy p{margin:6px 0;font-size:.8rem}.book-open{cursor:pointer;border:0;padding:0}.book-title{color:inherit;text-align:left;font:inherit;overflow-wrap:anywhere;background:0 0;border:0;min-height:44px;padding:0;font-weight:750}.save-button{color:#24583d;cursor:pointer;background:#fff;border:1px solid #c9d5cd;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-width:88px;min-height:44px;padding:9px 12px;display:inline-flex}.save-button[aria-pressed=true]{background:#e6f2e9}.save-button:disabled{opacity:.6;cursor:wait}.save-feedback{margin-top:4px;font-size:.75rem;display:block}.recommendation-reason{color:#345740;line-height:1.45}.discovery-dialog{color:#19382b;overflow-wrap:anywhere;border:0;border-radius:24px;width:min(720px,100vw - 28px);max-width:calc(100vw - 28px);max-height:88dvh;padding:28px;overflow-y:auto}.discovery-dialog::backdrop{background:#0c1e16a6}.discovery-dialog .dialog-image{max-height:280px}.discovery-dialog .dialog-image img{object-fit:contain;max-height:280px}.discovery-dialog .dialog-close{z-index:1;min-width:44px;min-height:44px;font-size:26px;position:absolute;top:8px;right:8px}.discovery-dialog .book-detail-copy{padding-top:16px}.discovery-dialog .request-book-btn{margin-top:12px}.discovery-book .back-link{min-height:44px;margin:0}.discovery-book .status-pill{display:table}.ai-thread .discovery-book{box-sizing:border-box;width:100%}button:focus-visible{outline-offset:3px;outline:3px solid #34704d}@media (width<=430px){.discovery-dialog{padding:20px}.home-book.discovery-book{flex-basis:160px}}@media (width>=1024px){.compact-book-list:has(.discovery-book){grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}}.discovery-dialog .dialog-image{min-height:180px}@media (width<=430px){.home-hero .hero-orbit{display:none}}@media (width>=720px) and (width<=1023px){.home-book-row{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:24px}}.request-card:focus,.owner-book-card:focus{outline-offset:3px;outline:3px solid #34704d}.discovery-dialog .dialog-image{color:var(--moss);background:#eae7df;border-radius:16px}.discovery-dialog .primary-btn{background:var(--forest)}@media (width>=768px){.find-page .filter-row{grid-template-columns:repeat(4,minmax(0,1fr))}}.smart-finder>p{color:#53655c;line-height:1.6}.smart-search{gap:12px;margin:20px 0;display:grid}.smart-search textarea,.smart-assist textarea{box-sizing:border-box;resize:vertical;width:100%;min-height:90px;font:inherit}.smart-search small,.smart-image-note{color:#58675e;line-height:1.5}.smart-results{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px;display:grid}.smart-general,.smart-assist{background:#f4f7ef;border:1px solid #cfddd0;border-radius:18px;min-width:0;margin:16px 0;padding:18px}.smart-assist h2{margin:0 0 8px;font-size:1.2rem}.smart-assist h2 small{color:#58675e;font-size:.75rem;font-weight:500}.smart-assist summary{cursor:pointer;min-height:24px;font-weight:700}.smart-assist summary small{margin:6px 0 0 18px;font-weight:400;display:block}.smart-assist p,.smart-general p{overflow-wrap:anywhere;line-height:1.5}.smart-actions{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.smart-actions button{color:#234d36;font:inherit;cursor:pointer;background:#fff;border:1px solid #b9cebe;border-radius:12px;min-height:44px;padding:10px 14px}.smart-actions button:disabled{opacity:.55;cursor:wait}.smart-suggestion{overflow-wrap:anywhere;background:#fff;border-left:3px solid #60824d;border-radius:8px;margin:12px 0;padding:12px}.smart-suggestion strong{text-transform:capitalize}.smart-suggestion small{color:#58675e;display:block}.smart-finder .suggestion-row{flex-wrap:wrap}.smart-finder .suggestion-row button{white-space:normal;text-align:left}.smart-search .primary-btn{background:var(--forest,#173f32)}@media (width<=430px){.smart-assist{padding:12px}.smart-actions button{flex:140px}}
