:root{color-scheme:light;font-family:Inter,Pretendard,SF Pro Text,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;background:#e7dfd1;color:#15171b;--ink: #15171b;--muted: #69707a;--hairline: #d7d0c3;--paper: #fffdf7;--paper-soft: #faf6ec;--desk: #e7dfd1;--library: #151923;--library-2: #202634;--accent: #13705d;--accent-2: #b77b35;--blue: #355b7d;--danger: #a13a25}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;overflow:hidden;background:var(--desk)}button,input,select{font:inherit}button,label{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 48%,rgb(255 253 247 / .9),transparent 230px),linear-gradient(90deg,rgb(21 23 27 / .08),transparent 28px),linear-gradient(180deg,#f8f5ed,#e1d6c5)}.auth-card{width:min(100%,420px);position:relative;overflow:hidden;display:grid;gap:18px;padding:26px 24px 24px;color:#171a1f;background:#fffdf7f5;border:1px solid #d8d0c3;border-radius:8px;box-shadow:0 28px 70px #362a1833}.auth-card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--accent),#d3ad55)}.auth-brand{min-width:0;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:12px}.auth-brand strong{font-size:24px;line-height:1.15;letter-spacing:0}.auth-tabs{height:42px;display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:#f1eadf;border:1px solid #d8d0c3;border-radius:8px}.auth-tabs button{color:#39414b;background:transparent;border:0;border-radius:6px;font-weight:900}.auth-tabs button.is-active{color:#fffaf0;background:var(--library-2)}.auth-form{display:grid;gap:12px}.auth-form label{display:grid;gap:7px;color:#3f4751;font-size:13px;font-weight:900}.auth-form input{height:44px;width:100%;color:#171a1f;background:#fffdf7;border:1px solid #d8d0c3;border-radius:8px;padding:0 12px;outline:0;font-weight:800}.auth-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #13705d24}.auth-status{margin:0;color:var(--danger);font-size:13px;font-weight:800}.auth-submit{height:44px;color:#fffaf0;background:var(--accent);border:0;border-radius:8px;box-shadow:0 14px 28px #13705d3d;font-weight:950}.app-shell{height:100vh;min-height:0;display:grid;grid-template-columns:328px minmax(0,1fr);overflow:hidden;background:linear-gradient(90deg,rgb(21 23 27 / .08),transparent 26px),var(--desk);transition:grid-template-columns .22s cubic-bezier(.2,.8,.2,1)}.app-shell.is-library-collapsed{grid-template-columns:56px minmax(0,1fr)}.library-panel{min-height:0;display:flex;flex-direction:column;gap:9px;padding:14px;color:#f4f0e7;background:linear-gradient(180deg,rgb(255 255 255 / .035),transparent 180px),var(--library);border-right:1px solid rgb(0 0 0 / .35);box-shadow:inset -1px 0 #ffffff0f;overflow:hidden;transition:padding .2s ease,box-shadow .22s ease,border-color .22s ease}.library-panel.is-collapsed{grid-template-rows:1fr;gap:0;padding:12px 8px}.library-panel:not(.is-collapsed)>*{animation:shelfPanelIn .24s cubic-bezier(.2,.8,.2,1) both}.library-panel.is-collapsed .library-rail{animation:shelfRailIn .18s ease both}.library-brand{min-width:0;display:grid;grid-template-columns:38px minmax(0,1fr) 30px;gap:10px;align-items:center}.brand-mark{width:38px;height:38px;display:grid;place-items:center;color:#fff7e8;background:var(--accent);border:1px solid rgb(255 255 255 / .16);border-radius:8px;box-shadow:0 12px 26px #00000038}.library-brand span{display:block;color:#b6bdc9;font-size:12px;font-weight:800;letter-spacing:0}.library-brand strong{display:block;min-width:0;color:#fffaf0;font-size:17px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-toggle{color:#dbe2ec;background:#ffffff0e;border-color:#ffffff1a}.library-rail{min-height:0;display:grid;grid-template-rows:auto auto 1fr;justify-items:center;gap:14px}.rail-mark{width:38px;height:38px;display:grid;place-items:center;color:#fff7e8;background:var(--accent);border:1px solid rgb(255 255 255 / .14);border-radius:8px}.library-rail span{min-width:28px;height:28px;display:inline-grid;place-items:center;align-self:end;margin-bottom:4px;color:#f4f0e7;background:#ffffff14;border:1px solid rgb(255 255 255 / .12);border-radius:999px;font-size:12px;font-weight:900}.library-account{display:grid;grid-template-columns:minmax(0,1fr) 38px 38px;gap:8px}.account-card{min-width:0;height:38px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:0 10px;color:#dce2ea;background:#ffffff13;border:1px solid rgb(255 255 255 / .14);border-radius:8px}.account-card span{color:#aeb7c6;font-size:12px;font-weight:800}.account-card strong{min-width:0;overflow:hidden;color:#fffaf0;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.account-select{min-width:0;height:38px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;padding:0 10px;color:#dce2ea;background:#ffffff13;border:1px solid rgb(255 255 255 / .14);border-radius:8px}.account-select span{color:#aeb7c6;font-size:12px;font-weight:800}.account-select select{min-width:0;height:30px;color:#fffaf0;background:transparent;border:0;font-weight:850;outline:0}.account-select option{color:#171a1f}.icon-action,.icon-button{display:inline-grid;place-items:center;border-radius:8px;transition:background .16s ease,border-color .16s ease,transform .16s ease}.icon-action{width:38px;height:38px;color:#fffaf0;background:#ffffff14;border:1px solid rgb(255 255 255 / .14)}.icon-button{width:34px;height:34px;color:currentColor;background:transparent;border:1px solid transparent}.icon-action:hover,.icon-button:hover{transform:translateY(-1px)}.library-stats{display:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.library-stats div{min-width:0;padding:7px 6px;background:#fff1;border:1px solid rgb(255 255 255 / .11);border-radius:8px}.library-stats strong,.library-stats span{display:block;text-align:center}.library-stats strong{color:#fffaf0;font-size:15px;line-height:1.1}.library-stats span{margin-top:2px;color:#aeb7c6;font-size:11px;font-weight:800}.library-tools{display:grid;gap:7px;padding:0;background:transparent;border:0;border-radius:0}.library-tools .upload-button{width:100%;height:36px;box-shadow:0 12px 24px #13705d2e}.library-upload-primary{margin-bottom:2px}.library-segment{width:100%;height:39px;background:#ffffff13;border-color:#ffffff24}.library-segment .mode-button{color:#dce2ea}.library-segment .mode-button.is-active{color:#fffaf0;background:var(--accent)}.library-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px;padding-top:2px;color:#f4f0e7;font-weight:900}.library-head span{min-width:0;display:inline-flex;align-items:center;gap:8px}.archive-status{min-height:36px;display:flex;align-items:center;padding:9px 11px;color:#cbd3de;background:#ffffff0e;border:1px solid rgb(255 255 255 / .1);border-radius:8px;font-size:12px;line-height:1.35}.archive-status.is-empty{min-height:0;height:0;padding:0;border:0;overflow:hidden}.queue-panel{flex:0 0 auto;display:grid;gap:6px;padding:8px 9px;color:#dce2ea;background:linear-gradient(180deg,rgb(255 255 255 / .035),transparent),#202631;border:1px solid rgb(255 255 255 / .11);border-radius:8px}.queue-panel.is-idle{color:#aeb7c6;background:#ffffff0a}.queue-panel-head,.queue-summary-grid,.queue-item{display:flex;align-items:center}.queue-panel-head{justify-content:space-between;gap:10px;font-size:12px;font-weight:900}.queue-panel-head span{min-width:0;display:inline-flex;align-items:center;gap:7px}.queue-panel-head small{color:#8791a1;font-size:10px;font-weight:800;white-space:nowrap}.queue-summary-grid{gap:7px}.queue-summary-grid>div{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 7px;background:#0000001f;border-radius:7px;font-size:11px;font-weight:850}.queue-summary-grid b{color:#fffaf0;font-size:12px}.queue-list{display:grid;gap:4px;opacity:1;max-height:86px;overflow:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:rgb(126 222 203 / .46) rgb(0 0 0 / .1)}.queue-list::-webkit-scrollbar{width:8px;height:8px}.queue-list::-webkit-scrollbar-track{background:#0000001f;border-radius:999px}.queue-list::-webkit-scrollbar-thumb{min-height:26px;background:linear-gradient(180deg,#7fe2cfc7,#d3ad55b3);border:2px solid rgb(31 37 48);border-radius:999px}.queue-list::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#91f4e0eb,#e5be62db)}.queue-item{gap:7px;min-width:0;padding:5px 7px;background:#ffffff0b;border-radius:7px}.queue-item.is-active{background:#13705d38}.queue-item>div{min-width:0;display:grid;gap:2px}.queue-item strong,.queue-item span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-item strong{color:#fffaf0;font-size:11px;font-weight:900}.queue-item span,.queue-empty{color:#aeb7c6;font-size:11px;font-weight:780}.queue-empty{padding:3px 1px 1px}.archive-list{flex:1 1 auto;min-height:0;overflow:auto;padding-right:3px}.archive-list::-webkit-scrollbar,.pdf-stage::-webkit-scrollbar,.translation-stage::-webkit-scrollbar,.translation-reader::-webkit-scrollbar{width:10px;height:10px}.archive-list::-webkit-scrollbar-thumb,.pdf-stage::-webkit-scrollbar-thumb,.translation-stage::-webkit-scrollbar-thumb,.translation-reader::-webkit-scrollbar-thumb{background:#5c53444d;border:3px solid transparent;border-radius:999px;background-clip:padding-box}.archive-item{position:relative;display:grid;gap:8px;padding:10px 10px 10px 12px;color:#eef2f7;background:#ffffff0e;border:1px solid rgb(255 255 255 / .1);border-left:3px solid rgb(183 123 53 / .72);border-radius:8px;box-shadow:none;cursor:pointer;outline:0;transition:border-color .16s ease,background .16s ease,transform .16s ease}.archive-item:hover,.archive-item:focus-visible,.archive-item.is-details-open{background:#ffffff14;border-color:#fff3}.archive-item:hover,.archive-item:focus-visible{transform:translateY(-1px)}.archive-item.is-processing{border-left-color:#6aa8de}.archive-item.is-processing .archive-item-main svg{color:#8fbfe8}.archive-item.is-disabled{background:#1d222d;border-color:#ffffff13;border-left-color:#aeb7c65c;box-shadow:none;cursor:not-allowed}.archive-item.is-disabled:hover,.archive-item.is-disabled:focus-visible{background:#1d222d;border-color:#ffffff13;transform:none}.archive-item.is-disabled .archive-item-main{opacity:.56}.archive-item.is-disabled .archive-item-meta,.archive-item.is-disabled .archive-progress-stack{opacity:.94}.archive-item.is-selected{background:#3d5c7e38;border-color:#ffffff3d;border-left-color:var(--accent);box-shadow:inset 0 0 0 1px #ffffff0f}.archive-item.is-disabled.is-selected{background:#1d222d;border-color:#ffffff18;border-left-color:#aeb7c66b;box-shadow:none}.archive-item+.archive-item{margin-top:8px}.archive-item-main{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start}.archive-item-main svg{color:#d6a257;margin-top:1px}.archive-item-main strong,.archive-item-main span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-item-main strong{color:#fffaf0;font-size:12px;line-height:1.25}.archive-item-main span{margin-top:2px;color:#aeb7c6;font-size:11px}.archive-item-meta,.archive-links{display:flex;align-items:center;justify-content:space-between;gap:8px}.archive-item-meta>span{color:#aeb7c6;font-size:12px;font-weight:850}.archive-item-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:7px}.archive-item-actions>span{color:#aeb7c6;font-size:12px;font-weight:850}.archive-delete-button:hover:not(:disabled),.archive-delete-button:focus-visible:not(:disabled){color:#ffd0bf;background:#a13a2538;border-color:#ff805d57}.archive-delete-button:disabled{opacity:.58;cursor:default}.archive-badge{min-height:22px;display:inline-flex;align-items:center;padding:2px 8px;color:#f7e0b5;background:#b77b352e;border:1px solid rgb(183 123 53 / .28);border-radius:999px;font-size:11px;font-weight:900}.archive-badge.archive-ready{color:#bcebdc;background:#13705d40;border-color:#52b49a59}.archive-badge.archive-audio_generating{color:#d7ecff;background:#3874b438;border-color:#6fa6e057}.archive-badge.archive-error{color:#ffd0bf;background:#a13a2547;border-color:#ff805d52}.archive-progress{height:5px;overflow:hidden;background:#ffffff14;border-radius:999px}.archive-progress-stack{display:grid;gap:5px}.archive-stage-line{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#aeb7c6;font-size:11px;font-weight:850;line-height:1.1}.archive-stage-line span,.archive-stage-line b{min-width:0}.archive-stage-line b{color:#fffaf0;font-size:11px;font-weight:900}.archive-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#dfb36d);border-radius:inherit}.archive-progress-translation span{background:linear-gradient(90deg,var(--accent),#dfb36d)}.archive-progress-audio span{background:linear-gradient(90deg,#4c8fc8,#83cab9)}.archive-expand-button,.archive-delete-button{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;color:#d8e0ec;background:#fff1;border:1px solid rgb(255 255 255 / .11);border-radius:7px;cursor:pointer}.archive-expand-button svg{transition:transform .16s ease}.archive-item.is-details-open .archive-expand-button svg{transform:rotate(180deg)}.archive-card-generation{display:grid;gap:6px;padding:8px;background:#ffffff0b;border:1px solid rgb(255 255 255 / .085);border-radius:8px}.archive-generation-row{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:6px;align-items:stretch}.archive-card-audio-selects{min-width:0;display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:6px}.archive-card-select{min-width:0;height:32px;display:grid;grid-template-columns:auto minmax(34px,1fr);align-items:center;gap:5px;padding:0 7px;color:#dce2ea;background:#fffaf0f0;border:1px solid rgb(223 179 109 / .22);border-radius:7px}.archive-card-select span{color:#667084;font-size:9px;font-weight:900;white-space:nowrap}.archive-card-select select{min-width:0;width:100%;color:#121722;background:transparent;border:0;outline:0;font:inherit;font-size:12px;font-weight:950}.archive-card-select select:disabled{color:#7d8795}.archive-card-select option{color:#171a1f}.archive-card-checkbox{min-width:0;min-height:30px;display:inline-flex;align-items:center;gap:7px;padding:0 8px;color:#cdd6e4;background:#0000001a;border:1px solid rgb(255 255 255 / .075);border-radius:7px;font-size:11px;font-weight:850;cursor:pointer}.archive-card-checkbox input{width:13px;height:13px;accent-color:var(--accent)}.archive-card-checkbox span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-translation-button,.archive-audio-button{min-width:0;min-height:32px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;justify-content:center;gap:6px;padding:0 8px;color:#f7fbff;background:#4c8fc82e;border:1px solid rgb(131 202 185 / .22);border-radius:8px;font-size:12px;font-weight:920;cursor:pointer}.archive-translation-button{color:#fffaf0;background:#13705d2e;border-color:#dfb36d38}.archive-translation-button svg{color:#91d8c4}.archive-audio-button svg{color:#88d0c1}.archive-translation-button span,.archive-translation-button small,.archive-audio-button span,.archive-audio-button small{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-translation-button small,.archive-audio-button small{color:#b9c5d5;font-size:10px;font-weight:850}.archive-translation-button:hover:not(:disabled),.archive-translation-button:focus-visible:not(:disabled){background:#13705d47;border-color:#dfb36d61}.archive-audio-button:hover:not(:disabled),.archive-audio-button:focus-visible:not(:disabled){background:#4c8fc847;border-color:#83cab966}.archive-translation-button:disabled,.archive-audio-button:disabled{color:#8f99a8;background:#ffffff0e;border-color:#ffffff14;cursor:default}.archive-translation-button:disabled svg,.archive-translation-button:disabled small,.archive-audio-button:disabled svg,.archive-audio-button:disabled small{color:#8791a1}.archive-audio-variants{display:grid;gap:5px;padding:7px 8px;background:#0000001f;border:1px solid rgb(255 255 255 / .08);border-radius:8px}.archive-audio-variant{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;color:#b9c5d5;font-size:10px;font-weight:850}.archive-audio-variant svg{color:#7fbfb3}.archive-audio-variant.is-translation svg{color:#dfb36d}.archive-audio-variant span,.archive-audio-variant b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-audio-variant b{color:#eef6ff;font-weight:950}.archive-audio-variant.is-selected{color:#eef6ff}.archive-audio-variant.is-selected svg{color:#9be0d4}.archive-audio-variant-more{color:#8791a1;font-size:10px;font-weight:850}.archive-links a{min-height:28px;display:inline-flex;align-items:center;justify-content:center;flex:1 1 0;color:#fffaf0;background:#ffffff13;border:1px solid rgb(255 255 255 / .12);border-radius:8px;font-size:12px;font-weight:900;text-decoration:none}.archive-error-text{margin:0;color:#ffd0bf;font-size:12px;line-height:1.35}.archive-empty{min-height:170px;display:grid;place-items:center;color:#aeb7c6;text-align:center;border:1px dashed rgb(255 255 255 / .18);border-radius:8px;padding:18px;background:#ffffff0b}.archive-empty:empty{min-height:46px;border-style:solid;opacity:.62}.reader-shell{min-width:0;min-height:0;position:relative;display:grid;grid-template-rows:34px minmax(0,1fr);background:linear-gradient(180deg,#f4eee2,#e5dac8 180px,#cfc2ad);overflow:hidden}.reader-empty-state{grid-column:1 / -1;position:relative;z-index:2;align-self:center;justify-self:center;width:min(420px,calc(100% - 48px));min-height:220px;display:grid;place-items:center;align-content:center;gap:12px;color:#40392f;background:#fffdf7;border:1px solid rgb(110 98 80 / .16);border-radius:8px;box-shadow:0 24px 70px #362a1829}.reader-empty-state svg{color:var(--accent)}.reader-empty-state strong{font-size:15px;font-weight:950}.reader-empty-state button{min-width:118px;height:36px;color:#fffaf0;background:var(--accent);border:0;border-radius:8px;font-size:13px;font-weight:950;box-shadow:0 14px 28px #13705d38}.reader-shell>audio{display:none}.reader-topbar{height:34px;min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 7px 3px 10px;background:#fffdf7f5;border-bottom:1px solid rgb(110 98 80 / .18);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:relative;z-index:20}.book-identity{flex:1 1 260px;min-width:0;display:flex;align-items:center;gap:8px}.book-identity span{display:inline-flex;align-items:center;min-height:15px;padding:0 5px;color:var(--accent);background:#13705d14;border:1px solid rgb(19 112 93 / .12);border-radius:5px;font-size:9px;font-weight:950;letter-spacing:.04em}.book-identity h1{flex:1 1 auto;min-width:0;max-width:none;margin:0;color:#181a1f;font-size:12px;line-height:1.2;letter-spacing:0;font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-actions{flex:0 0 auto;min-width:0;display:inline-flex;align-items:center;justify-content:flex-end;gap:5px}.top-view-controls{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;height:26px}.segmented-control.top-segment{height:26px;display:inline-grid;grid-auto-columns:auto;padding:2px;color:#20252b;background:#fffaf0e6;border:1px solid rgb(110 98 80 / .18);border-radius:8px;box-shadow:0 8px 20px #362a1814}.segmented-control.top-segment.layout-switch{width:70px;grid-template-columns:repeat(2,1fr);gap:2px}.top-segment .mode-button{min-width:0;height:20px;padding:0 6px;color:#4b514f;border-radius:6px;font-size:11px;font-weight:900}.top-segment.layout-switch .mode-button{width:100%;padding:0}.top-segment.layout-switch .mode-button svg{display:block}.top-segment .mode-button.is-active{color:#fffaf0;background:var(--accent);box-shadow:none}.segmented-control.top-segment.pane-switch{grid-template-columns:repeat(2,minmax(34px,1fr))}.top-segment.pane-switch .mode-button{min-width:34px}.page-navigation-cluster{flex:0 0 auto;position:relative;display:inline-flex;align-items:center;gap:4px}.top-pagebar{flex:0 0 auto;height:26px;display:inline-flex;align-items:center;gap:3px;padding:2px;color:#20252b;background:#fffaf0e6;border:1px solid rgb(110 98 80 / .18);border-radius:8px;box-shadow:0 8px 20px #362a1814;transition:background-color .16s ease,border-color .16s ease,opacity .16s ease}.top-pagebar .icon-button{width:20px;height:20px;min-height:20px;padding:0;color:#26302e;background:transparent;border-color:transparent;line-height:0}.top-pagebar .icon-button:hover:not(:disabled),.top-pagebar .icon-button:focus-visible:not(:disabled){background:#13705d1a;border-color:#13705d2e}.top-pagebar.is-loading{color:#746b5d;background:#fffaf09e}.top-pagebar.is-transitioning{position:relative;color:#4a4439;background:#fffaf0c7;border-color:#a78e673d}.top-pagebar.is-transitioning:after{content:"";position:absolute;left:9px;right:9px;bottom:2px;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgb(19 112 93 / .42),transparent);animation:pagebarCommit .82s ease both}.top-pagebar.is-loading .page-jump{background:#ffffff59}.top-pagebar.is-loading input,.top-pagebar.is-loading span{color:#8a8174}.top-bookmark-popover{position:relative;flex:0 0 auto}.bookmark-nav-button{min-width:34px;height:26px;min-height:26px;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 7px;color:#29302e;background:#fffaf0e6;border:1px solid rgb(110 98 80 / .18);border-radius:8px;box-shadow:0 8px 20px #362a1814}.bookmark-nav-button span{min-width:10px;font-size:10px;font-weight:950;line-height:1}.bookmark-nav-button:hover:not(:disabled),.bookmark-nav-button:focus-visible:not(:disabled),.bookmark-nav-button.is-open{color:var(--accent);background:#13705d1a;border-color:#13705d38}.bookmark-nav-button.is-active{color:#fffaf0;background:linear-gradient(180deg,#b23b35,#7f2425);border-color:#0000001a}.bookmark-nav-button.is-active.is-open,.bookmark-nav-button.is-active:hover:not(:disabled),.bookmark-nav-button.is-active:focus-visible:not(:disabled){color:#fffaf0;background:linear-gradient(180deg,#0f7f67,#095b4d);border-color:#0000001a}.audiobook-controls{flex:0 0 auto;min-width:0;display:inline-flex;align-items:center;gap:5px;height:26px;padding:2px;color:#2b312f;background:#fffaf0e6;border:1px solid rgb(110 98 80 / .18);border-radius:8px;box-shadow:0 8px 20px #362a1814}.audiobook-controls .icon-button{width:20px;height:20px;min-height:20px;padding:0;color:#26302e;background:transparent;border-color:transparent;line-height:0}.audiobook-controls .icon-button svg{display:block}.audiobook-controls .icon-button:hover:not(:disabled),.audiobook-controls .icon-button:focus-visible:not(:disabled){background:#13705d1a;border-color:#13705d2e}.audiobook-controls .icon-button:disabled{color:#a8a198;opacity:.55;cursor:default}.audiobook-controls .audiobook-play{color:#fffaf0;background:var(--accent);border-color:#0000000f}.audiobook-controls .audiobook-play .play-symbol{transform:translate(-1px)}.audiobook-progress{width:78px;min-width:58px;display:inline-grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:5px;padding:0 5px;color:var(--accent)}.audiobook-progress>span{position:relative;height:4px;overflow:hidden;background:#362a1821;border-radius:999px}.audiobook-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#d7a65e);border-radius:inherit;transition:width .18s ease}.audiobook-progress.is-busy:not(.is-loading) i{width:45%!important;animation:audio-busy 1.1s ease-in-out infinite alternate}.audiobook-progress.is-loading i{animation:none}.audiobook-speed{height:20px;display:inline-flex;align-items:center}.audiobook-speed select{width:58px;height:20px;color:#20252b;background:#ffffff80;border:1px solid rgb(110 98 80 / .18);border-radius:6px;font-size:11px;font-weight:850;outline:0}.settings-shell{min-width:0;min-height:0;display:grid;grid-template-rows:38px minmax(0,1fr);background:linear-gradient(180deg,#f7f0e4,#e8decd);overflow:hidden}.settings-topbar{height:38px;min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 8px 4px 12px;background:#fffdf7f5;border-bottom:1px solid rgb(110 98 80 / .18)}.settings-back-button{height:28px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;color:#fffaf0;background:var(--accent);border:1px solid rgb(0 0 0 / .08);border-radius:8px;font-size:12px;font-weight:900}.settings-page{min-height:0;display:grid;grid-template-columns:minmax(320px,.9fr) minmax(360px,1.1fr);gap:16px;padding:18px;overflow:auto}.settings-panel{min-width:0;align-self:start;display:grid;gap:14px;padding:18px;background:#fff9ef;border:1px solid #d9cdbd;border-radius:8px;box-shadow:0 18px 38px #362a181f}.settings-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.settings-panel-head h2{margin:0;color:#1c1d20;font-size:15px;line-height:1.25}.settings-panel-head span{color:#7d7468;font-size:12px;font-weight:850}.voice-name-field{min-width:0;display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:10px;color:#5f564b;font-size:12px;font-weight:900}.voice-name-field input{min-width:0;height:38px;padding:0 11px;color:#1c1d20;background:#fffdf8;border:1px solid #d9cdbd;border-radius:8px;font-weight:850;outline:0}.reference-script{display:grid;gap:9px;padding:14px;color:#2a2117;background:#fffdf8;border:1px solid #d9cdbd;border-radius:8px}.reference-script span{color:var(--accent);font-size:12px;font-weight:950}.reference-script p{margin:0;font-family:Nanum Myeongjo,Iowan Old Style,Georgia,serif;font-size:20px;line-height:1.8;word-break:keep-all}.voice-record-actions{display:flex;align-items:center;gap:8px}.voice-record-button,.voice-save-button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border-radius:8px;font-size:13px;font-weight:900}.voice-record-button{color:#fffaf0;background:var(--accent);border:1px solid rgb(0 0 0 / .08)}.voice-record-button.is-recording{background:#b84a3a}.voice-save-button{color:#17221f;background:#e3c37d;border:1px solid rgb(92 69 31 / .18)}.voice-save-button:disabled{opacity:.48;cursor:default}.voice-preview{width:100%;height:34px}.voice-status{min-height:26px;display:flex;align-items:center;color:#62594e;font-size:12px;font-weight:850}.voice-reference-list{display:grid;gap:10px}.voice-reference-item{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,260px) 28px;align-items:center;gap:10px;padding:10px;background:#fffdf8;border:1px solid #d9cdbd;border-radius:8px}.voice-reference-item.is-selected{border-color:#13705d75;box-shadow:inset 0 0 0 1px #13705d2e}.voice-reference-main{min-width:0;display:grid;gap:3px;padding:0;color:#20252b;text-align:left;background:transparent;border:0}.voice-reference-main strong,.voice-reference-main span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voice-reference-main strong{font-size:13px;font-weight:950}.voice-reference-main span{color:#7d7468;font-size:11px;font-weight:850}.voice-reference-item audio{width:100%;height:32px}.voice-empty{min-height:70px;border:1px dashed #d9cdbd;border-radius:8px;opacity:.72}@keyframes audio-busy{0%{transform:translate(-30%)}to{transform:translate(130%)}}.upload-button{height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;color:#fffaf0;background:var(--accent);border:1px solid rgb(0 0 0 / .08);border-radius:8px;box-shadow:0 12px 24px #13705d40;font-weight:900;white-space:nowrap;cursor:pointer}.upload-button input{display:none}.select-field{min-width:0;height:42px;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;padding:0 12px;color:#4b535d;background:#fffdf7;border:1px solid #d8d0c3;border-radius:8px}.select-field span{color:#66707b;font-size:12px;font-weight:900}.select-field select{min-width:0;height:32px;color:#171a1f;background:transparent;border:0;outline:0;font-weight:850}.segmented-control{height:42px;display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(74px,1fr);gap:3px;padding:4px;background:#fffdf7;border:1px solid #d8d0c3;border-radius:8px}.mode-button{height:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;color:#39414b;background:transparent;border:0;border-radius:6px;font-size:13px;font-weight:900;white-space:nowrap}.mode-button.is-active{color:#fffaf0;background:var(--library-2);box-shadow:0 5px 14px #1519232e}.reading-status{flex:0 1 430px;min-width:140px;min-height:26px;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:0 9px;color:#59616b;background:#fffaf0b8;border:1px solid rgb(110 98 80 / .14);border-radius:999px;box-shadow:none;font-size:12px;font-weight:750;pointer-events:none;overflow:hidden}.reading-status.is-empty{display:none}.reading-status span{min-width:0;display:inline-flex;align-items:center;gap:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-progress-meter{flex:0 0 78px;width:78px;height:5px;overflow:hidden;display:inline-block;background:#362a1824;border-radius:999px}.status-progress-meter b{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#d7a65e);border-radius:inherit;transition:width .18s ease}.status-ready{color:#266653}.status-error{color:var(--danger)}.viewer{min-height:0;position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:18px;padding:18px 22px 20px;overflow:hidden;background:linear-gradient(90deg,rgb(58 43 25 / .12),transparent 5%,transparent 95%,rgb(58 43 25 / .12)),linear-gradient(180deg,#eadfcd,#d7c9b5 48%,#c7b89f);box-shadow:0 1px #ffffffa8 inset,0 24px 58px #3026182e inset;perspective:1400px;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.viewer:before{content:"";position:absolute;z-index:0;inset:18px calc(50% - 9px) 20px;width:18px;pointer-events:none;background:linear-gradient(90deg,#2d21143d,#ffffff2e 48%,#2d21143d),linear-gradient(180deg,rgb(255 255 255 / .12),transparent 42%,rgb(0 0 0 / .1));border-radius:999px;filter:blur(.2px)}.viewer *{-webkit-user-drag:none}.viewer.can-turn,.viewer.can-turn .translation-reader,.viewer.can-turn .translated-placeholder,.viewer.can-turn .empty-state,.viewer.can-turn .pdf-page{cursor:pointer}.viewer.is-page-turning .translated-placeholder,.viewer.is-page-turning .empty-state,.viewer.is-page-turning .pdf-page{cursor:default}.page-flip-overlay{position:absolute;z-index:5;top:18px;right:22px;bottom:20px;left:22px;pointer-events:none;overflow:hidden;border-radius:8px;animation:pageFlipOverlayHold .82s ease-out both}.page-flip-book{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.page-flip-paper-page{position:relative;overflow:hidden;color:transparent;background:linear-gradient(90deg,#48321b29,#fffdf7 18%,#fbf4e7 58%,#48321b29),linear-gradient(180deg,#fffef9,#f2e5d1);background-color:#fffdf7;border:1px solid rgb(114 98 72 / .22);border-radius:7px;box-shadow:0 16px 36px #362a182e,inset 0 1px #ffffffeb,inset 10px 0 22px #5d44260e,inset -10px 0 22px #5d442613;opacity:1}.page-flip-paper-page.--simple{opacity:0}.page-flip-paper-surface{width:100%;height:100%;background:repeating-linear-gradient(180deg,rgb(82 58 34 / .032) 0 1px,transparent 1px 32px),radial-gradient(circle at 68% 18%,rgb(255 255 255 / .72),transparent 30%),linear-gradient(90deg,rgb(255 255 255 / .4),transparent 18%,transparent 78%,rgb(108 83 48 / .1));background-color:#fffaf0}.viewer-single{grid-template-columns:repeat(2,minmax(0,1fr));justify-content:center}.viewer-solo{grid-template-columns:minmax(0,min(720px,100%));justify-content:center}.viewer-single:before{display:block}.viewer-solo:before{display:none}.pane.is-hidden{display:none}.pane{min-width:0;min-height:0;height:100%;display:block;overflow:hidden;position:relative;z-index:1}.pdf-stage,.translation-stage{min-height:0;height:100%;position:relative;overscroll-behavior:contain;border-radius:8px}.pdf-stage{display:grid;place-items:center;overflow:hidden;padding:18px;text-align:center}.translation-stage{overflow:hidden;padding:0}.translation-reader{width:100%;height:100%;margin:0;padding:38px 46px 42px;overflow:auto;color:#211b14;background:linear-gradient(90deg,rgb(87 61 33 / .055),transparent 34px),linear-gradient(180deg,rgb(255 255 255 / .86),transparent 26%),linear-gradient(90deg,transparent calc(100% - 1px),rgb(117 87 49 / .075) 100%),#fff9ee;border:1px solid #d3c0a0;border-radius:8px;box-shadow:0 22px 50px #2e221433,0 2px #ffffffe0 inset,-10px 0 20px #543f270f inset,10px 0 20px #543f270b inset;font-family:ui-serif,New York,"Noto Serif KR",Apple SD Gothic Neo,serif;font-size:17px;line-height:1.68;word-break:keep-all;overflow-wrap:break-word;white-space:pre-wrap;-webkit-user-select:none;user-select:none}.source-reader{color:#2a2119}.translation-reader p{margin:0 0 18px}.translation-reader p:last-child{margin-bottom:0}.translation-reader.ebook-reader p{margin-bottom:13px}.translation-reader.ebook-reader{padding:36px 42px;overflow:hidden;font-size:17px;line-height:1.66;white-space:normal}.ebook-measure-reader{position:fixed;left:-10000px;top:0;z-index:-1;pointer-events:none;visibility:hidden}.pdf-page{display:block;width:auto;height:100%;max-width:100%;max-height:100%;margin:0 auto;object-fit:contain;background:#fff;border:1px solid #d1c6b7;border-radius:4px;box-shadow:0 22px 52px #362a1838,8px 0 16px #46341e0b inset,0 1px #ffffffe6 inset;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.bookmark-dock{position:absolute;top:10px;right:28px;z-index:12;display:grid;justify-items:center;pointer-events:auto}.bookmark-ribbon{width:28px;height:44px;display:grid;place-items:start center;padding-top:8px;color:#fffaf0;background:linear-gradient(180deg,#b23b35,#7f2425);border:0;border-radius:0 0 4px 4px;clip-path:polygon(0 0,100% 0,100% 100%,50% 77%,0 100%);box-shadow:0 14px 20px #381f143d;cursor:pointer}.bookmark-ribbon.is-active{background:linear-gradient(180deg,#0f7f67,#095b4d)}.bookmark-count{min-width:20px;height:18px;display:inline-flex;align-items:center;justify-content:center;margin-top:-10px;padding:0 6px;color:#211b14;background:#fff7e9;border:1px solid #d7c7ad;border-radius:999px;box-shadow:0 8px 18px #362a182e;font-size:10px;font-weight:950;cursor:pointer}.bookmark-menu{position:absolute;top:58px;right:-10px;width:224px;display:grid;gap:4px;padding:8px;color:#211b14;background:linear-gradient(180deg,rgb(255 255 255 / .72),transparent 36%),#fff8ec;border:1px solid #d5c5ad;border-radius:8px;box-shadow:0 20px 46px #30261838}.bookmark-menu-top{top:34px;right:0;z-index:42;width:246px;max-height:min(360px,calc(100vh - 72px));overflow:auto}.bookmark-item{width:100%;min-width:0;height:34px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:0 9px;color:#2b251e;background:transparent;border:0;border-radius:6px;text-align:left;cursor:pointer}.bookmark-item:hover,.bookmark-item:focus-visible,.bookmark-item.is-current{background:#13705d1a;outline:0}.bookmark-item span{overflow:hidden;font-size:13px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.bookmark-item small{color:#776c5f;font-size:10px;font-weight:800}.bookmark-empty{min-height:42px;display:grid;place-items:center;color:#7b7063;font-size:12px;font-weight:850}.floating-zoom{position:sticky;top:0;left:100%;z-index:2;justify-self:end;width:max-content;height:38px;display:inline-flex;align-items:center;gap:5px;margin:0 0 -46px auto;padding:3px 5px;color:#20252b;background:#fffdf7eb;border:1px solid #d5ccbd;border-radius:8px;box-shadow:0 12px 28px #362a1829;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .16s ease,transform .16s ease}.pdf-stage:hover .floating-zoom,.pdf-stage:focus-within .floating-zoom{opacity:1;pointer-events:auto;transform:translateY(0)}.floating-zoom span{min-width:48px;text-align:center;font-size:13px;font-weight:900}.translated-placeholder,.empty-state{width:100%;height:100%;min-height:0;display:grid;place-items:center;align-content:center;gap:12px;margin:0 auto;padding:38px 46px 42px;color:#6c6459;text-align:center;background:linear-gradient(90deg,rgb(87 61 33 / .055),transparent 34px),linear-gradient(180deg,rgb(255 255 255 / .86),transparent 26%),linear-gradient(90deg,transparent calc(100% - 1px),rgb(117 87 49 / .075) 100%),#fff9ee;border:1px solid #d3c0a0;border-radius:8px;box-shadow:0 22px 50px #2e221433,0 2px #ffffffe0 inset,-10px 0 20px #543f270f inset,10px 0 20px #543f270b inset}.pdf-stage>.translated-placeholder,.pdf-stage>.empty-state{width:calc(100% + 36px);height:calc(100% + 36px);margin:-18px}.empty-state:empty{opacity:.72}.page-jump{height:22px;min-width:94px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 7px;color:#171a1f;background:#ffffff80;border:1px solid rgb(110 98 80 / .18);border-radius:6px;font-weight:900}.page-jump input{width:44px;height:18px;color:#171a1f;background:transparent;border:0;text-align:center;font-weight:900;outline:0}.page-jump span{color:#6c655d;font-size:11px;line-height:1;white-space:nowrap}.page-jump input::-webkit-outer-spin-button,.page-jump input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.page-jump-submit{color:#fffaf0!important;background:var(--accent)!important;border-color:#00000014!important}.spin{animation:spin .9s linear infinite}.inline-icon{flex:0 0 auto}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shelfPanelIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes shelfRailIn{0%{opacity:0;transform:translate(6px)}to{opacity:1;transform:translate(0)}}@keyframes pageFlipOverlayHold{0%{opacity:0}6%,58%{opacity:1}to{opacity:0}}@keyframes pagebarCommit{0%{transform:scaleX(0);opacity:.35}40%{opacity:1}to{transform:scaleX(1);opacity:0}}@media(prefers-reduced-motion:reduce){.app-shell,.library-panel,.top-pagebar,.status-progress span{transition:none}.library-panel:not(.is-collapsed)>*,.library-panel.is-collapsed .library-rail,.page-flip-overlay,.top-pagebar.is-transitioning:after{animation:none}}@media(max-width:1220px){.app-shell{grid-template-columns:280px minmax(0,1fr)}.app-shell.is-library-collapsed{grid-template-columns:56px minmax(0,1fr)}.reader-topbar{padding-left:12px;padding-right:12px}.viewer{gap:10px;padding:10px}.translation-reader{padding:28px 32px 32px}}@media(max-width:980px){body{overflow:auto}.app-shell{min-height:100vh;height:auto;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);overflow:visible}.library-panel{min-height:0;grid-template-rows:auto auto auto auto auto auto auto;padding:14px;border-right:0;border-bottom:1px solid rgb(0 0 0 / .35)}.library-panel.is-collapsed{min-height:58px}.library-rail{grid-template-columns:auto auto 1fr;grid-template-rows:auto;align-items:center;justify-items:start}.library-rail span{align-self:center;justify-self:end;margin-bottom:0}.archive-list{display:grid;gap:10px;max-height:48vh;overflow-x:hidden;overflow-y:auto;padding:0 2px 2px 0}.archive-item,.archive-item+.archive-item{min-width:0;margin-top:0}.reader-shell,.settings-shell{min-height:72vh;grid-template-rows:auto minmax(0,1fr)}.settings-page{grid-template-columns:1fr;padding:14px}.book-identity h1{max-width:calc(100vw - 40px)}.reader-topbar{flex-wrap:wrap;height:auto;min-height:40px}.book-identity{flex:1 1 420px}.reader-actions{flex:1 1 100%;justify-content:flex-end}.top-pagebar{flex:0 0 auto}.audiobook-controls{flex:0 1 260px;justify-content:flex-end}.segmented-control{width:100%}.top-segment{width:auto}.reading-status{flex:1 1 100%;max-width:none;min-width:0;align-items:center;flex-direction:row;gap:4px}.reading-status span{white-space:normal}.viewer{grid-template-columns:1fr;overflow:visible;gap:10px;padding:10px}.viewer:before{display:none}.pane{min-height:62vh}}@media(max-width:640px){.library-panel{gap:12px}.library-brand{grid-template-columns:38px minmax(0,1fr)}.brand-mark{width:38px;height:38px}.library-account{grid-template-columns:minmax(0,1fr) 38px 38px}.library-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.reader-topbar{padding-left:12px;padding-right:12px}.book-identity h1{font-size:12px}.audiobook-controls{width:auto;justify-content:space-between}.reader-actions{display:grid;grid-template-columns:1fr;justify-items:end}.top-view-controls{justify-content:flex-end;flex-wrap:wrap}.voice-reference-item{grid-template-columns:minmax(0,1fr) 28px}.voice-reference-item audio{grid-column:1 / -1}.top-pagebar,.audiobook-controls{max-width:100%}.audiobook-progress{flex:1 1 auto;width:auto}.upload-button{width:100%}.select-field{grid-template-columns:48px minmax(0,1fr)}.viewer{padding:8px}.bookmark-dock{right:14px}.bookmark-menu{right:-6px;width:min(224px,calc(100vw - 28px))}.translation-stage,.pdf-stage{padding:0}.translation-reader{padding:22px 18px 28px;font-size:16px;line-height:1.68}.translation-reader p{margin-bottom:16px}}
