@font-face{font-family:"Pretendard Variable";src:url("./fonts/PretendardVariable.woff2") format("woff2");font-weight:45 920;font-style:normal;font-display:swap}
:root{color-scheme:light;font-family:"Pretendard Variable",-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Malgun Gothic",ui-sans-serif,sans-serif;background:#eaece7;color:#283b30;font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;padding:24px}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #87a698;outline-offset:2px}
button:disabled{cursor:not-allowed;opacity:.5}
[hidden]{display:none!important}
.prototype{--paper:#fdfcf9;--ink:#26392f;--muted:#899287;--green:#344c3f;--line:#e9eae4;--sage:#e9eee7;background:#ecece6;border:1px solid #dedfd6;border-radius:17px;overflow:hidden;max-width:1350px;margin:auto;color:var(--ink);font-size:13px}
.prototype-header{background:#f9f8f4;border-bottom:1px solid #e0e1d9;padding:8px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}

.viewport-switch{display:flex;gap:2px;padding:3px;background:#ecece6;border-radius:9px}.viewport-switch button{border:0;background:none;border-radius:7px;color:#777d77;padding:8px 12px;font-size:11px;font-weight:500}.viewport-switch button.active{background:#fff;box-shadow:0 1px 4px #0000000b;color:#283a30}
.prototype-workspace{display:grid;grid-template-columns:185px minmax(0,1fr);min-height:810px}.prototype-sidebar{border-right:1px solid #dfe0d9;background:#f2f2ec;padding:23px 12px;display:flex;flex-direction:column;gap:3px}.sidebar-title{font-size:10px;color:#929990;font-weight:600;letter-spacing:1px;margin:0 10px 12px;display:flex;justify-content:space-between}.screen-choice{width:100%;padding:12px 9px;border:0;background:none;text-align:left;color:#686e68;border-radius:8px;display:flex;align-items:center;gap:11px;white-space:nowrap;font-size:12px}.screen-choice>span{font-size:10px;color:#a5aba3;font-variant-numeric:tabular-nums}.screen-choice.active{background:#dfe8df;color:#284536;font-weight:600}.screen-choice.active>span{color:#597565}.sidebar-extra{margin-top:auto;border-top:1px solid #dedfd7;padding-top:18px;display:flex;flex-direction:column;gap:3px}.sidebar-extra button{border:0;background:none;color:#757d74;text-align:left;padding:9px 10px;font-size:11px;border-radius:6px}.sidebar-extra button:hover{background:#e3e6dd}
.prototype-stage{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:12px;padding:24px 12px 14px;min-width:0}.preview-device{position:relative;display:flex;flex-direction:column;flex-shrink:0;background:var(--paper);width:min(100%,380px);height:745px;border:7px solid #333d35;border-radius:25px;overflow:hidden;box-shadow:0 9px 28px #26392f18;transition:width .2s ease}.preview-device.desktop{width:min(100%,870px);border-width:5px;border-radius:14px}.device-status{height:24px;flex:none;background:var(--paper);display:flex;justify-content:space-between;align-items:center;padding:0 18px;font-size:10px;font-weight:600;color:#4a534b}.preview-device.desktop .device-status{display:none}.app-root{display:flex;flex-direction:column;flex:1;min-height:0}.stage-caption{font-size:10px;color:#92978e;line-height:1.8;text-align:center;margin:0}.stage-caption>span:last-child{color:#aaafa6}
.app-header{height:56px;flex:none;background:var(--paper);border-bottom:1px solid #eeede7;padding:0 19px;display:flex;align-items:center;justify-content:space-between;gap:10px}.wordmark{font-family:inherit;font-size:20px;letter-spacing:-1.1px;font-weight:500;white-space:nowrap}.header-actions{display:flex;align-items:center;gap:5px}.header-action{border:0;background:none;color:#405347;font-size:12px;font-weight:500;padding:8px;white-space:nowrap}.round-action{width:35px;height:35px;min-width:35px;border:1px solid #e9e9e2;background:#f8f8f3;border-radius:50%;font-size:19px;color:#324d3d}.desktop-nav{display:none;align-items:center;gap:9px}.desktop-nav button{border:0;border-bottom:2px solid transparent;background:none;padding:10px 14px;font-size:12px;color:#7b827a}.desktop-nav button.active{color:#243d2e;font-weight:600;border-color:#344b3e}.preview-device.desktop .desktop-nav{display:flex}
.app-scroll{flex:1;overflow:auto;min-height:0;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#dadcd2 transparent}.app-content{padding:23px 21px 32px;max-width:1020px;margin:0 auto}.preview-device.desktop .app-content{padding:30px 38px}.bottom-nav{height:65px;flex:none;background:var(--paper);border-top:1px solid #eeeae4;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.bottom-nav button{border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#a0a29b;font-size:10px}.bottom-nav button i{font-style:normal;font-size:21px;line-height:1}.bottom-nav button.active{color:#2e4a39;font-weight:600}.preview-device.desktop .bottom-nav{display:none}
.page-title{font-size:24px;font-weight:600;letter-spacing:-1.2px;line-height:1.32;margin:0}.page-sub{font-size:12px;line-height:1.7;color:#8a8f87;margin:8px 0 0}.page-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:31px 0 16px}.section-header h3{font-size:15px;letter-spacing:-.4px;margin:0}.section-header small{color:#929790;font-size:11px}.divider{height:1px;background:#edede6;margin:23px 0}
.btn-primary,.btn-secondary{border-radius:11px;min-height:43px;padding:11px 17px;font-size:12px;font-weight:600}.btn-primary{border:0;background:#354e40;color:white}.btn-primary:hover{background:#2b4435}.btn-secondary{background:#f5f5f0;border:1px solid #e2e6db;color:#34493b}.btn-text{background:none;border:0;padding:6px 1px;color:#6a806e;font-size:11px;font-weight:600}.btn-full{width:100%}.two-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px}.chip{display:inline-block;background:#edf1e9;color:#68806f;border-radius:100px;padding:5px 9px;font-size:10px;font-weight:600;white-space:nowrap}.chip.grey{background:#f1f1ee;color:#888f86}.chip.gold{background:#f5ecdc;color:#a27d4b}.progress{height:5px;background:#e8eae2;border-radius:9px;overflow:hidden}.progress>div{height:100%;background:#738f7e;border-radius:9px}.subtle-info{background:#f4f5ef;border-radius:10px;padding:13px;font-size:11px;line-height:1.7;color:#667767}.subtle-info.warm{background:#f8f1e8;color:#99785e}.back{border:0;background:none;color:#738275;font-size:11px;font-weight:600;padding:0;margin:0 0 20px}
.cover{position:relative;background:#c8c6bd;display:flex;flex-direction:column;justify-content:space-between;padding:12px;color:#fff;overflow:hidden;border-radius:3px 6px 6px 3px;isolation:isolate;box-shadow:2px 4px 8px #1c2c2512}.cover:before{content:'';position:absolute;inset:0 0 0 4px;border-left:1px solid #ffffff38;z-index:2}.cover:after{content:'';position:absolute;z-index:-1;width:95%;aspect-ratio:1;left:30%;top:25%;border-radius:50%;background:#ffffff24;box-shadow:-30px 56px 0 18px #ffffff10;transform:rotate(-25deg)}.cover>span{font-size:8px;letter-spacing:.7px;position:relative;z-index:1}.cover strong{font-family:inherit;font-size:clamp(16px,4.4vw,26px);letter-spacing:-1.3px;line-height:1.25;position:relative;z-index:1;word-break:keep-all}.cover.a{background:linear-gradient(155deg,#344f51,#869e8a 67%,#c4ba9f)}.cover.b{background:linear-gradient(150deg,#bca999,#dec8b5 54%,#8e8982);color:#493f3a}.cover.c{background:linear-gradient(154deg,#4b6554,#879978,#b3aa7f)}.cover.d{background:linear-gradient(145deg,#404554,#89818b,#cba79e)}.cover.e{background:linear-gradient(145deg,#8b8b78,#d3c8a9,#a67c69)}
.feature{margin-top:23px;background:#e9eee7;border-radius:15px;padding:18px;display:flex;justify-content:space-between;gap:15px;min-height:145px;overflow:hidden;cursor:pointer}.feature-copy{flex:1;min-width:0}.feature-label{color:#6b8772;font-size:10px;font-weight:600;letter-spacing:.5px}.feature h3{font-size:18px;letter-spacing:-.7px;margin:10px 0 4px}.feature p{font-size:11px;color:#647768;margin:0 0 15px}.feature .progress{margin:9px 0 7px}.feature-stats{display:flex;justify-content:space-between;font-size:10px;color:#718374}.feature .cover{width:82px;min-width:82px;height:120px;box-shadow:4px 6px 12px #00000019}.feature .cover strong{font-size:18px}
.book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 15px}.book-card{min-width:0;cursor:pointer}.book-card .cover{width:100%;height:auto;aspect-ratio:.73}.book-card h4{font-size:12px;margin:10px 0 5px;letter-spacing:-.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-card .metadata{color:#90958d;font-size:10px;margin-bottom:8px;line-height:1.5}.book-card .progress{height:3px;margin-top:10px}.book-card-footer{display:flex;gap:5px;align-items:center;justify-content:space-between;margin-top:7px;font-size:10px;color:#728278}.preview-device.desktop .book-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.preview-device.desktop .book-card h4{font-size:14px}.preview-device.desktop .cover strong{font-size:26px}
.search-row{display:flex;gap:8px;margin:14px 0 17px}.field{background:#fff;border:1px solid #e4e6dd;border-radius:9px;min-height:44px;padding:11px 12px;width:100%;color:#384d3f;font-size:12px;outline:none}.field:focus{border-color:#8aa697}.form{display:flex;flex-direction:column;gap:17px}.form label{display:block;font-size:11px;color:#56645a;font-weight:600;margin-bottom:8px}.form label em{color:#ae6f58;font-style:normal}.form textarea{resize:vertical;min-height:85px;line-height:1.7}.form .help{margin:6px 0 0;color:#989d94;font-size:10px;line-height:1.6}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.upload-zone{border:1px dashed #cdd7ca;background:#f8f9f4;border-radius:10px;padding:23px;display:grid;place-items:center;gap:8px;text-align:center;color:#8c9989;font-size:11px;cursor:pointer}.upload-zone span:first-child{font-size:24px}
.detail-hero{display:flex;gap:16px;align-items:flex-start}.detail-hero .cover{width:107px;height:151px;min-width:107px}.detail-info{min-width:0;flex:1;padding-top:6px}.detail-info h2{font-size:21px;letter-spacing:-1px;margin:10px 0 7px}.detail-info p{font-size:11px;color:#929890;line-height:1.9;margin:0}.reading-panel{border-top:1px solid #eaece5;border-bottom:1px solid #eaece5;padding:21px 0;margin:25px 0}.reading-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;gap:9px}.reading-top strong{font-size:14px}.big-number{font-family:inherit;font-size:34px;letter-spacing:-1px;margin:0 0 11px;color:#344e3f}.big-number span{font-size:14px;color:#9ba79d}.reading-panel .progress{margin-bottom:12px}.reading-panel .two-buttons{margin-top:17px}
.tabs{display:flex;border-bottom:1px solid #e9eae3;gap:22px;margin:18px 0}.tabs button{font-size:12px;padding:13px 0;background:none;border:0;border-bottom:2px solid transparent;color:#949c94}.tabs button.active{font-weight:600;border-color:#365442;color:#304739}.filters{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:3px 0 15px}.filters select{border:0;background:transparent;color:#697d70;font-size:11px;outline:none}.note{padding:19px 0;border-bottom:1px solid #eeeee8}.note:first-child{padding-top:5px}.note-head{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#879487;font-size:11px;margin-bottom:12px}.note-head strong{color:#526c59;font-weight:600}.note blockquote{display:block;background:#f6f5ef;border-left:2px solid #b4c1b1;padding:11px 12px;margin:0 0 11px;color:#596657;font-family:inherit;font-size:12px;line-height:1.7}.note p{font-size:12px;line-height:1.85;color:#4e5a52;margin:0 0 11px}.note-footer{display:flex;justify-content:space-between;align-items:center;gap:8px}.note-footer button{border:0;background:none;color:#8a998b;font-size:11px;padding:8px 0}.locked-note{border:1px solid #e8eae2;background:#f6f7f2;border-radius:11px;padding:18px;margin:7px 0 15px;display:flex;gap:12px;align-items:flex-start}.lock-symbol{font-size:17px;color:#8c9b8e}.locked-note strong{display:block;font-size:11px;color:#607465;margin-bottom:6px}.locked-note small{display:block;font-size:10px;color:#9aa399;line-height:1.65}.reply{border-left:2px solid #e2e8de;margin:9px 0 14px 5px;padding:5px 0 5px 12px;font-size:11px;line-height:1.7;color:#65746a}.reply strong{color:#344a3a;display:block;font-size:10px;margin-bottom:4px}.reply.locked{color:#99a399}
.member{padding:15px 0;border-bottom:1px solid #efefe9;display:grid;grid-template-columns:36px minmax(0,1fr);gap:11px}.avatar{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:#e4e9e0;color:#516a56;font-weight:600;font-size:12px}.member-title{display:flex;justify-content:space-between;gap:9px;align-items:center}.member-title strong{font-size:12px}.member .small{font-size:10px;color:#909990;line-height:1.8;margin:5px 0}.member .progress{margin:9px 0 8px}.member-footer{font-size:10px;color:#9aa099}
.list-row{display:flex;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid #efefe9;cursor:pointer}.list-row .cover{height:89px;width:63px;min-width:63px;padding:7px}.list-row .cover strong{font-size:13px!important}.list-text{flex:1;min-width:0}.list-text strong{font-size:13px;display:block;margin:8px 0 5px}.list-text p{font-size:11px;color:#959b93;margin:0 0 10px}.list-text .progress{margin-bottom:7px}.list-text small{font-size:10px;color:#8f9c90}.segments{display:flex;gap:5px;padding:4px;background:#f1f2ed;border-radius:10px;margin:22px 0}.segments button{border:0;background:transparent;flex:1;padding:10px 3px;border-radius:8px;color:#929a91;font-size:11px;white-space:nowrap}.segments button.active{background:white;color:#365341;font-weight:600;box-shadow:0 1px 4px #00000008}
.profile-hero{text-align:center;padding:20px 0}.profile-avatar{width:68px;height:68px;background:#e4e8dc;border-radius:50%;margin:0 auto 13px;display:grid;place-items:center;font-family:inherit;font-size:25px;color:#50715b}.profile-hero h2{font-size:21px;margin:0 0 6px}.profile-hero p{font-size:11px;color:#939b91}.profile-hero button{font-size:11px;color:#688b75;background:none;border:0;padding:9px}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#ebece5;border:1px solid #ebece5;border-radius:12px;overflow:hidden}.stat{background:#fbfaf7;padding:18px 15px}.stat b{display:block;font-size:22px;font-family:inherit;color:#314938;margin-bottom:5px}.stat span{display:block;color:#8d968d;font-size:10px}.setting{width:100%;display:flex;align-items:center;justify-content:space-between;padding:16px 0;border:0;background:transparent;border-bottom:1px solid #eceee7;text-align:left;color:#344c3c;font-weight:500;font-size:12px}.setting span:last-child{color:#a3aaa0}
.invite-link{background:#f2f4ee;padding:13px;border-radius:9px;font-size:11px;overflow-wrap:anywhere;color:#5a705e;margin-top:11px}.admin-member{display:flex;gap:10px;align-items:center;border-bottom:1px solid #edefe9;padding:12px 0}.admin-member>div:nth-child(2){flex:1}.admin-member strong{font-size:11px}.admin-member small{font-size:10px;color:#929a90;display:block;margin-top:4px}.admin-member button{background:none;border:0;color:#a17d75;font-size:11px;padding:8px}
.invite-screen{background:linear-gradient(165deg,#edf0e7 0,#faf9f4 51%);height:100%;min-height:100%;padding:33px 27px;display:flex;flex-direction:column;align-items:stretch;justify-content:center;text-align:center;overflow:auto}.invite-inner{max-width:380px;width:100%;margin:auto}.invite-screen h1{font-size:27px;font-weight:600;letter-spacing:-1px;font-family:inherit;line-height:1.4;margin:8px 0 12px}.invite-screen p{color:#7a8d7c;font-size:12px;line-height:1.85;margin:0}.invite-box{background:#fff;border:1px solid #e6e9df;border-radius:14px;padding:19px 17px;text-align:left;margin:27px 0 12px;box-shadow:0 5px 20px #293d2d09}.invite-box label{font-size:11px;font-weight:600;color:#516e57;display:block;margin-bottom:10px}.invite-box .btn-primary{margin-top:10px}.invite-footer{font-size:10px!important;color:#a4aaa0!important;line-height:1.8!important;margin-top:13px!important}
.modal-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;background:#1b2923a1;z-index:40;padding:0}.modal-sheet{background:#fffefa;width:100%;border-radius:19px 19px 0 0;padding:22px;max-height:89%;overflow:auto;box-shadow:0 -14px 55px #00000016}.modal-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:12px}.modal-top h3{font-size:18px;margin:0;letter-spacing:-.6px}.close-modal{border:0;background:#f1f2ec;border-radius:50%;width:30px;height:30px;color:#718074;font-size:17px}.modal-description{font-size:12px;line-height:1.75;color:#8a948a;margin:0 0 20px}.modal-sheet .form{gap:12px}.modal-sheet .btn-primary{margin-top:12px}.toggle-row{display:flex;align-items:center;gap:10px;padding:12px 0;color:#4a6652;font-size:12px;font-weight:500}.toggle-row input{accent-color:#476b54}.toast{position:absolute;bottom:79px;left:18px;right:18px;z-index:50;background:#304a3a;color:white;padding:12px 15px;border-radius:10px;text-align:center;font-size:11px;box-shadow:0 5px 16px #0002}
.preview-device.desktop .detail-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:44px}.preview-device.desktop .detail-layout .reading-panel{margin-top:35px}.preview-device.desktop .profile-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:50px;align-items:start}.preview-device.desktop .profile-layout .profile-hero{padding:50px 15px}.preview-device.desktop .register-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:32px}.preview-device.desktop .modal-overlay{align-items:center;padding:25px}.preview-device.desktop .modal-sheet{max-width:470px;border-radius:17px;max-height:85%;margin:auto}
@media(max-width:760px){body{padding:0}.prototype{border-radius:0;border:0;min-height:100vh}.prototype-workspace{display:block;min-height:0}.prototype-header{padding:8px 12px}.prototype-sidebar{padding:9px;display:flex;flex-direction:row;flex-wrap:nowrap;gap:4px;overflow-x:auto;border:0;border-bottom:1px solid #ddd;scrollbar-width:thin}.prototype-sidebar .sidebar-title,.sidebar-extra{display:none}.screen-choice{width:auto;flex:none;padding:9px 11px;font-size:11px}.prototype-stage{padding:14px 8px}.preview-device{height:700px}.preview-device.desktop .app-content{padding:20px}.preview-device.desktop .book-grid{grid-template-columns:repeat(2,1fr)}.preview-device.desktop .detail-layout,.preview-device.desktop .profile-layout,.preview-device.desktop .register-layout{display:block}.preview-device.desktop .desktop-nav{display:none}.preview-device.desktop .bottom-nav{display:grid}.preview-device.desktop .modal-overlay{align-items:flex-end;padding:0}.preview-device.desktop .modal-sheet{border-radius:19px 19px 0 0}.preview-device.desktop .device-status{display:flex}.preview-device.desktop .book-card .cover strong{font-size:clamp(16px,4.4vw,26px)}}
@media(max-width:390px){.app-content{padding:20px 15px 28px}.feature{padding:13px}.feature .cover{width:76px;min-width:76px}.detail-hero{gap:11px}.detail-hero .cover{width:88px;min-width:88px;height:133px}.detail-info h2{font-size:18px}.wordmark{font-size:18px}.header-action{font-size:10px}}

.cover.uploaded{padding:0;background:#e9eee7}.cover.uploaded img{width:100%;height:100%;object-fit:cover}.profile-avatar{overflow:hidden}.profile-avatar img{width:100%;height:100%;object-fit:cover}

/* Deleted headings no longer reserve space; layout and responsive rules remain intact. */
.prototype-header{justify-content:flex-end}.invite-box{margin:18px 0 12px}.invite-screen h1{margin:0}

/* One SVG icon system; existing control sizes and navigation layout are preserved. */
.ui-icon{display:inline-block;width:16px;height:16px;vertical-align:-3px;flex-shrink:0;pointer-events:none}.round-action,.close-modal{display:inline-grid;place-items:center}.round-action .ui-icon{width:19px;height:19px}.close-modal .ui-icon{width:17px;height:17px}.bottom-nav i{display:flex;align-items:center;justify-content:center}.bottom-nav .ui-icon{width:22px;height:22px}.upload-zone .ui-icon{width:24px;height:24px}.lock-symbol .ui-icon{width:18px;height:18px}.setting>span:first-child{display:inline-flex;align-items:center;gap:8px}.feature-label .ui-icon{width:13px;height:13px;vertical-align:-2px}

/* Service shell: the app uses the browser viewport, with the same internal layouts. */
body.service-app{padding:0;background:var(--paper,#fdfcf9)}.service-app .prototype{border:0;border-radius:0;max-width:none;min-height:100dvh}.service-app .prototype-workspace{display:block;min-height:100dvh}.service-app .prototype-stage{display:block;padding:0}.service-app .preview-device,.service-app .preview-device.desktop{width:100%;max-width:none;height:100dvh;border:0;border-radius:0;box-shadow:none;transition:none}.service-app .app-header{padding-inline:max(19px,calc((100vw - 1020px)/2 + 38px))}.service-app .app-content{width:100%}.service-app .bottom-nav{padding-bottom:env(safe-area-inset-bottom);height:calc(65px + env(safe-area-inset-bottom))}.service-app .toast{position:fixed;max-width:500px;margin:auto}.auth-link{display:block;text-align:center;text-decoration:none;margin-top:12px}.service-app .modal-overlay{position:fixed}.service-app .invite-screen{min-height:100dvh}.service-app [aria-busy="true"]{cursor:progress}
@media(max-width:760px){.service-app .app-header{padding:0 19px}}

/* Keep each authentication field label with its input. */
.invite-box label{margin-bottom:8px}.invite-box .field+label,.invite-box .help+label{margin-top:24px}.invite-box .help{margin:8px 0 0;font-size:11px;line-height:1.5}.invite-box .field+button[type="submit"]{margin-top:24px}

/* Typography hierarchy: body 400, controls 500, headings 600. */
:root{font-weight:400}.field,textarea,.help,.page-sub,.metadata,.modal-description,.note p,.note blockquote,.reply{font-weight:400}h1,h2,h3,h4,.wordmark,.stat b,.big-number{font-weight:600}.form label,.invite-box label,.btn-primary,.btn-secondary,.btn-text,.header-action,.setting,.note-head strong,.chip,.back,.cover strong{font-weight:500}.desktop-nav button.active,.bottom-nav button.active{font-weight:600}.book-admin-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.text-danger{color:#a44840}.btn-danger{background:#a44840}.btn-danger:hover{background:#893c35}

.startup-state{flex:1;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;color:#667767;font-size:13px;font-weight:400}.startup-state p{margin:0;line-height:1.7}.startup-spinner{width:22px;height:22px;border:2px solid #dbe2d8;border-top-color:#526e5a;border-radius:50%;animation:startup-spin .8s linear infinite}@keyframes startup-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.startup-spinner{animation:none}}

/* Shared collection headings and aligned navigation. */
.service-app .app-header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
.service-app .desktop-nav{grid-column:2;justify-content:center}
.service-app .header-actions{grid-column:3;justify-self:end}
.collection-toolbar{display:flex;align-items:center;gap:16px;min-height:44px;margin-bottom:24px}
.collection-toolbar .page-title{flex:none;white-space:nowrap}
.shelf-search{display:flex;align-items:center;gap:8px;flex:1;min-width:0;max-width:320px;margin:0 0 0 auto}
.shelf-search .field{min-width:0}
.collection-toolbar .book-count{font-size:12px;color:#929790;white-space:nowrap;margin-left:0}
.collection-toolbar>.btn-text{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;flex:none}
.mine-toolbar .segments{margin:0;flex:none;min-height:44px}
.mine-toolbar .segments button{flex:none;padding-inline:16px}
.collection-content>.feature{margin-top:0;margin-bottom:24px}
.collection-content .list-row:first-child{padding-top:0}
.cover-preview:empty{display:none}
.cover-preview{width:100%;display:flex;justify-content:center}
.cover-preview img{display:block;max-width:100%;width:auto;max-height:260px;object-fit:contain;border-radius:5px}
@media(max-width:760px){
 .service-app .app-header{display:flex;justify-content:flex-end}
 .collection-toolbar{display:grid;grid-template-columns:auto 1fr auto;gap:12px;min-height:44px}
 .collection-toolbar .page-title{grid-column:1;grid-row:1}
 .collection-toolbar .book-count{grid-column:2;grid-row:1;justify-self:end}
 .collection-toolbar>.btn-text{grid-column:3;grid-row:1}
 .shelf-search{grid-column:1/-1;grid-row:2;max-width:none;width:100%;margin:0}
 .mine-toolbar .segments{grid-column:1/-1;grid-row:2;display:flex;width:100%}
 .mine-toolbar .segments button{flex:1;padding-inline:8px}
}

.delete-book-buttons>button{height:44px;min-height:44px;margin:0;border:1px solid transparent}.delete-book-buttons>.btn-secondary{border-color:#e2e6db}.modal-sheet .delete-book-buttons>.btn-primary{margin-top:0}
button:disabled{cursor:wait;opacity:.65}
