:root{color:#f6efe2;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#f7f0e4;--muted:#b9b0a2;--faint:#847c70;--page:#080c0b;--surface:#111817;--surface-2:#151f1d;--surface-3:#1b2825;--line:#f6efe21f;--line-strong:#f6efe233;--shadow:0 22px 70px #00000061;--teal:#21a89a;--blue:#6ea8ff;--red:#f06b78;--gold:#d8a84b;--green:#61d394;background:#080c0b;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;min-width:320px;min-height:100%}body{min-width:320px;min-height:100vh;color:var(--ink);background:linear-gradient(#070a09 0%,#111712 48%,#070b0a 100%);margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1{max-width:100%;color:var(--ink);letter-spacing:0;margin-bottom:0;font-size:3rem;line-height:1}h2{color:var(--ink);letter-spacing:0;margin-bottom:0;font-size:1.28rem;line-height:1.15}h3{letter-spacing:0}::selection{color:#07100f;background:var(--theme,var(--teal))}:focus-visible{outline:3px solid color-mix(in srgb, var(--theme,var(--teal)) 54%, transparent);outline-offset:3px}.app-shell{--theme:#21a89a;--theme-secondary:#d8a84b;--theme-soft:#21a89a24;--theme-ink:#f7f0e4;width:min(1480px,100%);min-height:100vh;margin:0 auto;padding:18px}.app-header{grid-template-columns:minmax(0,1fr) 330px;align-items:stretch;gap:12px;margin-bottom:12px;display:grid}.brand-lockup,.header-rail,.catalog-panel,.insight-panel,.admin-login-panel,.admin-add-panel,.admin-side-panel,.empty-shelf{border:1px solid var(--line);background:linear-gradient(180deg, #ffffff09, #fff0), var(--surface);min-width:0;box-shadow:var(--shadow);border-radius:8px}.brand-lockup{grid-template-columns:64px minmax(0,1fr);align-items:center;gap:18px;min-height:128px;padding:22px;display:grid;position:relative;overflow:hidden}.brand-lockup:before{content:"";background:linear-gradient(90deg, var(--teal), var(--gold), var(--red), var(--blue));height:4px;position:absolute;inset:auto 0 0}.brand-mark{color:#07100f;background:linear-gradient(135deg, var(--theme,var(--teal)), var(--theme-secondary,var(--gold)));letter-spacing:0;border:1px solid #f6efe229;border-radius:8px;place-items:center;width:64px;height:64px;font-size:1rem;font-weight:950;display:grid;box-shadow:inset 0 -10px #00000021}.brand-copy{min-width:0}.brand-tags{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.brand-tags span{min-height:30px;color:var(--muted);background:#ffffff0b;border:1px solid #f6efe221;border-radius:999px;align-items:center;padding:5px 10px;font-size:.82rem;font-weight:800;display:inline-flex}.eyebrow{color:color-mix(in srgb, var(--theme,var(--teal)) 72%, #fff);letter-spacing:0;text-transform:uppercase;margin:0 0 7px;font-size:.72rem;font-weight:950}.header-rail{grid-template-columns:78px minmax(0,1fr);align-items:center;gap:14px;padding:18px;display:grid}.header-rail strong,.header-rail span{display:block}.header-rail strong{color:var(--ink);margin-bottom:3px;font-size:1.05rem}.header-rail span{color:var(--muted);line-height:1.35}.goal-ring{border-radius:50%;place-items:center;width:76px;height:76px;display:grid;position:relative;box-shadow:inset 0 0 0 1px #f6efe217}.goal-ring:after{content:"";background:var(--surface);border:1px solid #f6efe21a;border-radius:50%;width:56px;height:56px;position:absolute}.goal-ring span{z-index:1;color:var(--ink);font-weight:950;position:relative}.topbar{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.app-tabs{z-index:20;border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0a0f0edb;border-radius:8px;gap:4px;width:max-content;max-width:100%;margin:0;padding:5px;display:flex;position:sticky;top:8px;box-shadow:0 14px 34px #00000052}.app-tabs button,.mode-tabs button,.primary-action,.capture-action,.ghost-action,.fallback-photo,.admin-actions button,.result-actions button,.book-actions button,.manage-row button,.genre-row button,.session-actions button,.role-tabs button,.icon-action,.modal-danger button,.danger-action{min-height:44px;color:var(--ink);touch-action:manipulation;background:#ffffff0f;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 13px;font-weight:900;transition:transform .18s,border-color .18s,background .18s,color .18s;display:inline-flex}.app-tabs button:hover,.mode-tabs button:hover,.ghost-action:hover,.admin-actions button:hover,.result-actions button:hover,.book-actions button:hover,.manage-row button:hover,.genre-row button:hover,.session-actions button:hover,.role-tabs button:hover,.icon-action:hover,.modal-danger button:hover,.danger-action:hover{background:#ffffff1a;border-color:#f6efe23d;transform:translateY(-1px)}.app-tabs button.is-active,.mode-tabs button.is-active,.genre-row button.is-active,.role-tabs button.is-active{color:#07100f;background:var(--theme,var(--teal))}.session-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.session-actions span{border:1px solid var(--line);min-height:44px;color:var(--muted);background:#ffffff0e;border-radius:999px;align-items:center;padding:8px 12px;font-weight:900;display:inline-flex}.notice{border:1px solid var(--line);color:var(--ink);background:var(--surface-2);border-radius:8px;align-items:center;gap:9px;padding:12px 14px;display:flex}.global-notice{margin-bottom:14px}.notice.is-success{background:#1356366b;border-color:#61d3946b}.notice.is-error{background:#61171e6b;border-color:#f06b786b}.books-view{grid-template-columns:minmax(0,1fr) 370px;align-items:start;gap:14px;display:grid}.catalog-panel,.insight-panel,.admin-login-panel,.admin-add-panel,.admin-side-panel{padding:18px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.panel-heading svg{color:color-mix(in srgb, var(--theme,var(--teal)) 76%, #fff);flex:none}.library-toolbar{grid-template-columns:minmax(260px,1fr) 170px 160px;gap:9px;margin-bottom:12px;display:grid}.shelf-search,.library-toolbar label,.lookup-bar,.admin-login-form label,.manual-form label{border:1px solid var(--line);min-width:0;color:var(--muted);background:#ffffff0e;border-radius:8px;align-items:center;gap:10px;display:flex}.shelf-search,.library-toolbar label,.lookup-bar{min-height:48px;padding:0 12px}input,select,textarea{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0}input::placeholder,textarea::placeholder{color:#8f877a}select{min-height:44px;color:var(--ink)}select option{color:#111817;background:#f7f0e4}textarea{resize:vertical;min-height:112px}.genre-row{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.genre-row button{min-height:40px;color:var(--muted);background:#ffffff0e;padding:8px 10px}.genre-row button strong{min-width:26px;height:26px;color:var(--ink);background:#ffffff1a;border-radius:999px;place-items:center;font-size:.82rem;display:grid}.genre-row button.is-active strong{color:#07100f;background:#ffffff80}.genre-empty,.quiet-copy{color:var(--muted);line-height:1.55}.book-grid{grid-template-columns:1fr;gap:10px;display:grid}.book-card,.lookup-result,.manage-row,.recent-row,.book-skeleton,.lookup-empty,.lookup-confirmation,.draft-cover-preview{border:1px solid var(--line);background:#ffffff0e;border-radius:8px}.book-card{grid-template-columns:76px minmax(0,1fr);gap:14px;min-height:126px;padding:12px;display:grid;position:relative;overflow:hidden}.book-card:before{content:"";background:var(--book-accent,var(--theme,var(--teal)));width:4px;position:absolute;inset:0 auto 0 0}.book-card.is-clickable{cursor:pointer}.book-card.is-clickable:hover{border-color:color-mix(in srgb, var(--book-accent,var(--theme,var(--teal))) 62%, transparent);background:#ffffff13;transform:translateY(-1px)}.cover{aspect-ratio:2/3;background:#ffffff14;border:1px solid #f6efe221;border-radius:7px;width:76px;overflow:hidden}.cover img{object-fit:cover;width:100%;height:100%}.cover-fallback{color:#07100f;background:linear-gradient(135deg, color-mix(in srgb, var(--book-accent,var(--theme,var(--teal))) 78%, #fff), var(--theme-secondary,var(--gold)));place-items:center;display:grid}.cover-fallback span{font-size:1.45rem;font-weight:950}.book-body{gap:7px;min-width:0;display:grid}.book-kicker,.book-meta{flex-wrap:wrap;gap:6px;display:flex}.book-kicker span,.book-meta span{border-radius:999px;align-items:center;min-height:24px;padding:3px 8px;font-size:.76rem;font-weight:900;display:inline-flex}.book-kicker span{color:color-mix(in srgb, var(--book-accent,var(--theme,var(--teal))) 74%, #fff);background:#fff1}.book-card h3{color:var(--ink);margin:6px 0 3px;font-size:1.05rem;line-height:1.25}.book-card p{color:var(--muted);margin-bottom:0;line-height:1.42}.book-meta span{color:#07100f;background:color-mix(in srgb, var(--book-accent,var(--theme,var(--teal))) 72%, #fff)}.book-notes{border-left:2px solid var(--line-strong);padding-left:8px}.book-actions{gap:8px;display:flex}.book-actions button,.manage-row button{width:44px;padding:0}.loading-shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.loading-copy{min-height:44px;color:var(--muted);grid-column:1/-1;align-items:center;gap:9px;display:flex}.loading-copy svg{animation:1s linear infinite spin}.book-skeleton{grid-template-columns:58px minmax(0,1fr);gap:12px;min-height:108px;padding:12px;display:grid;overflow:hidden}.book-skeleton span,.book-skeleton b,.book-skeleton small{background:linear-gradient(90deg,#ffffff0f,#ffffff26,#ffffff0f) 0 0/220% 100%;border-radius:7px;animation:1.25s ease-in-out infinite shimmer;display:block}.book-skeleton span{height:84px}.book-skeleton div{align-content:center;gap:9px;display:grid}.book-skeleton b{height:16px}.book-skeleton b:nth-child(2){width:72%}.book-skeleton small{width:46%;height:14px}.empty-shelf{text-align:center;place-items:center;min-height:245px;padding:28px;display:grid}.empty-shelf svg{color:var(--muted);margin:0 auto 12px}.empty-shelf p{color:var(--muted);margin-bottom:0}.insight-panel{color:var(--ink);background:linear-gradient(#21a89a14,#d8a84b0a),#111817;position:sticky;top:84px}.collection-focus{gap:4px;margin-top:12px;display:grid}.collection-focus strong{color:var(--ink);font-size:1.05rem}.collection-focus span{color:var(--muted);line-height:1.45}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0;display:grid}.metric-grid div{background:#ffffff0e;border:1px solid #f6efe221;border-radius:8px;align-content:center;gap:6px;min-height:84px;padding:12px;display:grid}.metric-grid strong{color:var(--ink);font-size:1.45rem;line-height:1}.metric-grid span,.recent-row span,.manage-row span,.lookup-result span,.lookup-result small,.draft-cover-preview span,.photo-preview p{color:var(--muted)}.metric-grid span{text-transform:uppercase;font-size:.74rem;font-weight:950}.recent-stack{gap:10px;display:grid}.recent-row{grid-template-columns:46px minmax(0,1fr);align-items:center;gap:10px;padding:9px;display:grid}.recent-row .cover{width:46px}.recent-row strong,.manage-row strong,.lookup-result strong{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;line-height:1.25;display:block;overflow:hidden}.admin-login-panel{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:20px;max-width:900px;display:grid}.login-copy{min-width:0}.login-copy svg{color:var(--theme,var(--teal));margin-bottom:14px}.login-copy p:last-child{color:var(--muted);margin-bottom:0;line-height:1.55}.admin-login-form,.add-flow,.manual-form,.photo-flow,.manage-list{gap:12px;display:grid}.admin-login-form label,.manual-form label{flex-direction:column;align-items:stretch;gap:6px;min-height:70px;padding:10px 12px}.admin-login-form label span,.manual-form label span{color:var(--muted);font-size:.78rem;font-weight:900}.admin-workspace{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:14px;display:grid}.mode-tabs{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.lookup-bar{grid-template-columns:22px minmax(0,1fr) auto;padding-right:4px;display:grid}.primary-action,.capture-action{color:#07100f;background:var(--theme,var(--teal));border-color:#21a89a5c}.primary-action:hover,.capture-action:hover{background:color-mix(in srgb, var(--theme,var(--teal)) 82%, #fff);transform:translateY(-1px)}.ghost-action{color:var(--muted)}.lookup-confirmation,.lookup-empty{align-items:center;gap:9px;min-height:48px;padding:10px 12px;display:flex}.lookup-confirmation{background:#13563666;border-color:#61d3946b}.lookup-confirmation svg,.lookup-empty svg{color:var(--green)}.lookup-confirmation strong{color:var(--ink)}.lookup-confirmation span{color:var(--muted)}.lookup-results{gap:9px;display:grid}.lookup-result{grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;display:grid}.lookup-result .cover{width:58px}.lookup-result small{margin-top:4px;line-height:1.35;display:block}.result-actions{gap:6px;display:flex}.result-actions button:last-child{width:44px;padding:0}.photo-flow{grid-template-columns:minmax(0,1fr) 220px;align-items:start}.camera-stage{gap:10px;display:grid}.camera-frame{border:1px solid var(--line);background:#070a09;border-radius:8px;place-items:center;min-height:360px;display:grid;overflow:hidden}.camera-frame video{object-fit:cover;width:100%;height:100%;min-height:360px}.camera-frame:not(.is-live) video{display:none}.camera-placeholder{color:var(--muted);text-align:center;justify-items:center;gap:8px;padding:28px;display:grid}.camera-placeholder strong{color:var(--ink)}.camera-actions,.form-actions,.admin-actions{flex-wrap:wrap;gap:8px;display:flex}.photo-preview{border:1px solid var(--line);background:#ffffff0e;border-radius:8px;justify-items:start;gap:12px;padding:12px;display:grid}.photo-preview img{object-fit:cover;border-radius:7px;width:100%;max-height:300px}.photo-preview p{margin-bottom:0;line-height:1.45}.fallback-photo{position:relative;overflow:hidden}.fallback-photo input{opacity:0;position:absolute;inset:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.span-2{grid-column:1/-1}.draft-cover-preview{grid-template-columns:56px minmax(0,1fr);align-items:center;gap:10px;padding:10px;display:grid}.draft-cover-preview img{aspect-ratio:2/3;object-fit:cover;border-radius:7px;width:56px}.draft-cover-preview .cover{width:56px}.draft-cover-preview strong,.draft-cover-preview span{display:block}.book-modal textarea{min-height:84px}.admin-side-panel{position:sticky;top:84px}.admin-actions{margin-bottom:18px}.admin-actions button{flex:105px}.manage-list{gap:10px}.manage-row{grid-template-columns:46px minmax(0,1fr) 44px 44px;align-items:center;gap:8px;padding:8px;display:grid}.manage-row .cover{width:46px}.login-shell{place-items:center;min-height:100vh;padding:18px;display:grid}.login-card{border:1px solid var(--line);background:linear-gradient(180deg, #ffffff0b, #fff0), var(--surface);width:min(560px,100%);box-shadow:var(--shadow);border-radius:8px;padding:28px}.login-card .brand-mark{margin-bottom:24px}.login-card h1{margin-bottom:22px}.role-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px;display:grid}.gate-form{gap:12px;display:grid}.gate-form label{border:1px solid var(--line);min-width:0;min-height:74px;color:var(--muted);background:#ffffff0e;border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.gate-form label span{font-size:.78rem;font-weight:900}.gate-form .primary-action svg,.loading-copy svg{flex:none}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#030606bd;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.book-modal{border:1px solid var(--line-strong);background:linear-gradient(180deg, #ffffff0e, #fff0), var(--surface);border-radius:8px;width:min(860px,100%);max-height:min(94vh,980px);padding:18px;overflow:auto;box-shadow:0 32px 100px #00000094}.modal-heading{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.icon-action{flex:0 0 44px;width:44px;padding:0}.modal-danger{border-top:1px solid var(--line);justify-content:flex-end;margin-top:12px;padding-top:12px;display:flex}.danger-action{color:#ffd8dc;background:#7b1c266b;border-color:#f06b785c}.delete-confirmation{background:#7b1c263d;border:1px solid #f06b7852;border-radius:8px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;width:100%;padding:10px;display:grid}.delete-confirmation strong,.delete-confirmation span{display:block}.delete-confirmation span{color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-220% 0}}@media (width<=1120px){.app-header,.books-view,.admin-workspace{grid-template-columns:1fr}.insight-panel,.admin-side-panel{position:static}.library-toolbar{grid-template-columns:1fr 1fr}.shelf-search{grid-column:1/-1}}@media (width<=760px){.app-shell{padding:12px}.brand-lockup{grid-template-columns:52px minmax(0,1fr);gap:12px;padding:16px}.brand-mark{width:52px;height:52px}h1{font-size:2.2rem;line-height:1.02}.header-rail{grid-template-columns:66px minmax(0,1fr)}.goal-ring{width:64px;height:64px}.goal-ring:after{width:46px;height:46px}.app-tabs{width:100%}.app-tabs button{flex:1}.topbar{flex-direction:column}.session-actions,.session-actions button{width:100%}.session-actions span{flex:1;justify-content:center}.catalog-panel,.insight-panel,.admin-login-panel,.admin-add-panel,.admin-side-panel{padding:14px}.library-toolbar,.admin-login-panel,.photo-flow,.form-grid{grid-template-columns:1fr}.shelf-search{grid-column:auto}.mode-tabs{justify-content:stretch;width:100%}.mode-tabs button{flex:1 1 0}.lookup-bar{grid-template-columns:22px minmax(0,1fr);padding:0 12px 12px}.lookup-bar .primary-action{grid-column:1/-1}.lookup-result{grid-template-columns:56px minmax(0,1fr)}.result-actions{grid-column:1/-1}.result-actions button:first-child{flex:1}.book-card{grid-template-columns:64px minmax(0,1fr);gap:12px}.cover{width:64px}.loading-shelf{grid-template-columns:1fr}.span-2{grid-column:auto}.manage-row{grid-template-columns:46px minmax(0,1fr) 44px 44px}}@media (width<=430px){.brand-lockup{grid-template-columns:1fr}.brand-mark{width:48px;height:48px}h1{font-size:2rem}.panel-heading{align-items:flex-start}.book-card{grid-template-columns:1fr}.book-card .cover{width:84px}.camera-actions .primary-action,.camera-actions .capture-action,.camera-actions .ghost-action,.form-actions .primary-action,.form-actions .ghost-action,.modal-danger button{width:100%}.delete-confirmation{grid-template-columns:1fr}.login-card,.book-modal{padding:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
