@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap";:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors:active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--scale-factor));width:100%;min-width:calc(180px * var(--scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--scale-factor)) calc(5px * var(--scale-factor)) #888;border-radius:calc(2px * var(--scale-factor));padding:calc(6px * var(--scale-factor));margin-left:calc(5px * var(--scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--scale-factor));padding-top:calc(2px * var(--scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors:active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}:root{font-family:DM Sans,sans-serif;color:#20251f;background:#f7f7f4;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink:#20251f;--muted:#73786f;--paper:#f7f7f4;--line:#e6e7df;--green:#2f4a3b;--green-dark:#22392d;--sage:#dce5d9;--serif:"Playfair Display",Georgia,serif}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}::selection{background:#dce5d9;color:#203529}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{height:76px;padding:0 clamp(22px,6vw,92px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#f7f7f4f0;gap:24px}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:22px;letter-spacing:-1px;white-space:nowrap}.brand-mark{width:34px;height:34px;display:grid;place-items:center;background:var(--green);color:#fff;border-radius:10px}.brand-period,.title-period{color:#78916f}.main-nav{display:flex;align-items:center;gap:8px}.main-nav a{display:flex;align-items:center;gap:8px;padding:10px 13px;border-radius:8px;color:#6b7168;font-size:13px;font-weight:600;transition:.2s}.main-nav a:hover,.main-nav a.active{background:#e9ede6;color:var(--green)}.account-area{display:flex;align-items:center;gap:12px}.avatar{width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#e1e7dc;color:var(--green);font-size:13px;font-weight:700}.icon-button{border:0;background:transparent;color:#687067;width:36px;height:36px;display:inline-grid;place-items:center;border-radius:9px}.icon-button:hover{background:#e9ede6;color:var(--green)}.page-wrap{width:100%;max-width:1440px;margin:0 auto;flex:1;padding:0 clamp(22px,6vw,92px)}.footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:23px clamp(22px,6vw,92px);color:#888d84;font-size:11px;letter-spacing:.2px}.config-banner{background:#fff2d7;color:#6c4b0a;padding:10px 20px;text-align:center;font-size:12px}.config-banner code{font-size:11px}.hero{display:grid;grid-template-columns:1fr 1fr;gap:5%;align-items:center;min-height:580px;padding:65px 0 75px;border-bottom:1px solid var(--line)}.hero-copy{max-width:530px}.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:10px;letter-spacing:1.7px;font-weight:700;color:#71816e}.eyebrow-dot{width:6px;height:6px;background:#80977b;border-radius:50%}.hero h1,.art-copy h1{font-size:clamp(54px,6.2vw,82px);line-height:1.02;letter-spacing:-4.5px;font-weight:500;margin:24px 0 22px}.hero h1 em,.closing-cta h2 em,.art-copy h1 em{font-family:var(--serif);font-weight:500;color:#61785d}.hero-copy>p{font-size:15px;line-height:1.85;color:#777c73;max-width:415px;margin:0}.hero-actions{display:flex;gap:12px;align-items:center;margin-top:30px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:13px 18px;border:1px solid transparent;border-radius:8px;font-size:12px;font-weight:700;transition:transform .18s,background .18s,border .18s;white-space:nowrap}.button:hover{transform:translateY(-1px)}.button-primary{background:var(--green);color:#fff}.button-primary:hover{background:var(--green-dark)}.button-quiet{color:#3c493c;background:transparent}.button-quiet:hover{background:#ecefe8}.button-secondary{background:#fff;border-color:#dfe2d9;color:#374638}.button-secondary:hover{background:#f1f3ed}.button-light{background:#f7f7f4;color:#263b2d}.button-light:hover{background:#fff}.button-full{width:100%;justify-content:space-between;padding:15px 17px}.hero-note{display:flex;align-items:center;gap:8px;color:#899087;font-size:11px;margin-top:27px}.hero-note svg{color:#6e8a6b}.hero-visual{height:430px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-visual:before{content:"";position:absolute;width:345px;height:345px;border-radius:50%;background:#e8ece3}.hero-orbit{position:absolute;border:1px solid #d6ddd1;border-radius:50%;width:410px;height:410px}.orbit-two{width:470px;height:470px;border-color:#e3e6df}.hero-book{position:absolute;box-shadow:18px 24px 45px #1f30241c;display:flex;flex-direction:column}.book-back{width:180px;height:260px;background:#b7c5ad;transform:translate(65px,-5px) rotate(8deg);padding:23px 19px;color:#324a37;justify-content:space-between}.book-back span,.book-back small{font-size:8px;letter-spacing:1.5px}.book-back strong{font-family:var(--serif);font-size:28px;line-height:1.15}.book-front{width:190px;height:282px;background:#304c3a;color:#f4f2e8;padding:24px 22px;transform:translate(-30px,12px) rotate(-7deg);justify-content:flex-start}.book-front-top{font-size:8px;letter-spacing:2px}.book-front strong{font-family:var(--serif);font-size:40px;line-height:.98;font-weight:500;margin-top:24px}.book-front strong i{font-weight:500;color:#d0dcc8}.book-line{width:35px;height:1px;background:#a4b59b;margin-top:20px}.book-front small{font-size:6px;letter-spacing:1.2px;margin-top:12px;color:#d4dbce}.book-seal{position:absolute;right:19px;bottom:17px;border:1px solid #849b80;border-radius:50%;width:27px;height:27px;display:grid;place-items:center;font-family:var(--serif);font-size:12px;color:#dce5d9}.floating-note{position:absolute;display:flex;align-items:center;gap:9px;background:#fbfbf8;padding:12px 14px;box-shadow:0 9px 28px #2636290e;font-size:8px;letter-spacing:1.1px;color:#637060}.note-top{top:48px;right:8px}.note-bottom{bottom:44px;left:0}.note-dot{width:7px;height:7px;background:#92a68a;border-radius:50%}.home-intro{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding:70px 0 63px;align-items:end}.home-intro h2,.section-title-row h2{font-family:var(--serif);font-weight:500;letter-spacing:-1px;font-size:38px;line-height:1.2;margin:14px 0 0}.home-intro>p{font-size:13px;line-height:1.9;color:#777c73;max-width:480px;margin:0 0 5px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);margin-bottom:75px}.feature-card{padding:25px 26px 27px;min-height:255px}.feature-card+.feature-card{border-left:1px solid var(--line)}.feature-icon{display:grid;place-items:center;width:38px;height:38px;border:1px solid #e0e5dc;border-radius:10px;color:#526c50;margin-bottom:23px}.feature-number{display:block;color:#8a9086;font-size:9px;letter-spacing:1.4px}.feature-card h3{font-family:var(--serif);font-weight:500;font-size:20px;margin:10px 0}.feature-card p{font-size:12px;line-height:1.8;color:#777c73;min-height:43px}.feature-card>a,.text-link{display:inline-flex;align-items:center;gap:7px;color:#496247;font-size:11px;font-weight:700;margin-top:9px}.closing-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;background:#2b4333;color:#f7f7f1;padding:38px 42px;margin-bottom:72px;position:relative;overflow:hidden}.closing-cta:after{content:"";position:absolute;width:230px;height:230px;border:1px solid #ffffff13;border-radius:50%;right:16%;top:-115px;box-shadow:0 0 0 34px #ffffff07,0 0 0 68px #ffffff05}.light-eyebrow{color:#b5c7ac}.closing-cta h2{font-family:var(--serif);font-size:33px;line-height:1.2;font-weight:500;margin:12px 0 0;letter-spacing:-.7px}.closing-cta h2 em{color:#c8d7bf}.content-page{padding:54px 0 75px}.page-heading,.dashboard-welcome{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px}.page-heading h1,.dashboard-welcome h1,.detail-copy h1{font-size:42px;line-height:1.1;font-weight:500;letter-spacing:-2px;margin:12px 0}.page-heading p,.dashboard-welcome p{font-size:13px;color:#7a8076;margin:0}.count-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:50px;padding:9px 12px;color:#70766d;font-size:11px}.filter-bar{display:flex;gap:12px;margin:32px 0}.search-field,.select-wrap{display:flex;align-items:center;gap:11px;border:1px solid #e1e3dc;background:#fff;border-radius:8px;color:#8b9188;padding:0 14px;height:48px}.search-field{flex:1}.search-field input{width:100%;border:0;outline:0;background:transparent;font-size:12px;color:var(--ink)}.search-field input::placeholder{color:#a0a49c}.select-wrap select{border:0;outline:0;background:transparent;color:#535c52;font-size:12px;min-width:130px;cursor:pointer}.book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 22px}.book-card{min-width:0}.book-cover,.detail-cover{display:block;aspect-ratio:3/4;background:#e5e9e0;overflow:hidden;position:relative}.book-cover{transition:transform .2s}.book-cover:hover{transform:translateY(-3px)}.book-cover.has-image img,.detail-cover.has-image img{width:100%;height:100%;object-fit:cover}.cover-placeholder{height:100%;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;text-align:center;background:linear-gradient(150deg,#dbe3d6,#cbd7c4);color:#3e5841;gap:14px}.book-card:nth-child(4n+2) .cover-placeholder{background:linear-gradient(150deg,#e9dfcd,#d6c6aa);color:#5c4a33}.book-card:nth-child(4n+3) .cover-placeholder{background:linear-gradient(150deg,#d7e2e5,#b9cdd0);color:#36545a}.book-card:nth-child(4n+4) .cover-placeholder{background:linear-gradient(150deg,#e4dce6,#d1c1d6);color:#57435e}.cover-kicker{font-size:7px;letter-spacing:1.6px;text-transform:uppercase}.cover-title{font-family:var(--serif);font-size:22px;line-height:1.15;overflow-wrap:anywhere}.cover-author{font-size:9px;letter-spacing:.3px}.book-card-info{padding-top:13px}.book-category{font-size:9px;color:#8a9185;text-transform:uppercase;letter-spacing:1.2px;margin-bottom:7px}.book-title{font-family:var(--serif);font-size:17px;line-height:1.35;display:block;overflow-wrap:anywhere}.book-title:hover{color:#597452}.book-author{font-size:11px;color:#84897f;margin:6px 0}.empty-state{border:1px dashed #d9ddd3;padding:55px 20px;text-align:center;margin-top:20px}.empty-icon{width:50px;height:50px;display:grid;place-items:center;background:#e8ede5;border-radius:50%;color:#577151;margin:0 auto 17px}.empty-state h3{font-family:var(--serif);font-size:23px;font-weight:500;margin:0 0 8px}.empty-state p{font-size:12px;color:#858b81;margin:0 auto 19px;max-width:390px;line-height:1.7}.loading-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.skeleton-card{height:330px;background:linear-gradient(100deg,#eceee8 20%,#f4f5f1,#eceee8 60%);background-size:200% 100%;border-radius:2px;animation:shimmer 1.4s infinite}@keyframes shimmer{to{background-position:-200% 0}}.narrow-page{max-width:790px;margin:0 auto}.upload-form{border:1px solid var(--line);background:#fbfbf8}.form-section{padding:27px 30px;border-bottom:1px solid var(--line)}.section-heading{display:flex;align-items:flex-start;gap:14px;margin-bottom:24px}.section-index{font-family:var(--serif);font-size:17px;color:#85917e;padding-top:2px}.section-heading h2{font-family:var(--serif);font-size:22px;font-weight:500;margin:0 0 5px}.section-heading p{font-size:11px;color:#858b81;margin:0}.dropzone{width:100%;min-height:175px;border:1px dashed #cbd3c5;background:#f7f8f4;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:#697265}.dropzone:hover{border-color:#82957b;background:#f0f3ed}.upload-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#e4ebe0;color:#4d6a49;margin-bottom:2px}.dropzone strong{font-size:12px;color:#3d493b}.dropzone span:not(.upload-icon){font-size:11px}.dropzone small{font-size:9px;color:#a0a59b}.selected-file{display:flex;align-items:center;gap:13px;padding:14px;border:1px solid #dfe4da;background:#f6f8f3}.file-icon{display:grid;place-items:center;width:40px;height:44px;background:#e2e9dc;color:#54704d;border-radius:5px}.file-meta{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.file-meta strong{font-size:12px;overflow-wrap:anywhere}.file-meta span{font-size:10px;color:#858b81}.form-stack{display:flex;flex-direction:column;gap:17px}.form-stack label{display:flex;flex-direction:column;gap:8px;color:#444d42;font-size:11px;font-weight:700}.form-stack input,.form-stack textarea,.form-stack select{width:100%;border:1px solid #dfe2da;background:#fff;border-radius:7px;padding:12px 13px;outline:none;color:#293128;font-size:12px;font-weight:400}.form-stack input:focus,.form-stack textarea:focus,.form-stack select:focus{border-color:#91a48a;box-shadow:0 0 0 3px #e7eee3}.form-stack input::placeholder,.form-stack textarea::placeholder{color:#a4a89f}.form-stack textarea{resize:vertical;line-height:1.6}.optional-label{font-size:8px;color:#9a9f95;letter-spacing:1px;margin-left:5px}.permission-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid #eceee8}.permission-row span{display:flex;flex-direction:column;gap:5px}.permission-row strong{font-size:12px}.permission-row small{font-size:10px;color:#858b81}.permission-row input,.rights-check input{accent-color:var(--green);width:16px;height:16px;flex-shrink:0}.rights-check{display:flex;align-items:flex-start;gap:10px;margin-top:20px;font-size:10px;line-height:1.6;color:#747b70}.rights-check input{margin-top:1px}.upload-submit{padding:20px 30px;display:flex;align-items:center;justify-content:space-between;gap:15px}.upload-submit>span{display:flex;align-items:center;gap:7px;color:#858b81;font-size:10px}.alert{font-size:11px;padding:12px 13px;border-radius:7px;line-height:1.6}.alert.error{background:#fff0ed;color:#a43f2e;border:1px solid #f3d7d0}.alert.success{background:#edf5e9;color:#3e6937;border:1px solid #d8e7d0}.back-link{display:inline-flex;align-items:center;gap:8px;color:#6e776b;font-size:11px;margin-bottom:27px}.back-link:hover{color:var(--green)}.detail-layout{display:grid;grid-template-columns:minmax(220px,330px) 1fr;gap:clamp(35px,7vw,90px);align-items:start;padding:12px 0 45px}.detail-cover{box-shadow:0 18px 40px #1f302414}.detail-copy{padding-top:15px}.detail-copy h1{font-size:clamp(34px,4vw,52px);overflow-wrap:anywhere}.detail-author{display:flex;align-items:center;gap:8px;color:#777e73;font-size:12px}.detail-description{font-size:13px;line-height:1.9;color:#737a70;margin:26px 0}.detail-meta{display:flex;gap:18px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:10px;color:#858b81}.detail-meta span{display:flex;align-items:center;gap:7px}.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.detail-footnote{font-size:10px;color:#92978e;line-height:1.7;margin-top:17px}.owner-note{display:inline-block;font-size:10px;padding:8px 10px;background:#e8eee4;color:#4e6a47;border-radius:5px;margin-top:4px}.dashboard-welcome{align-items:center}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:32px 0 48px}.stat-card{border:1px solid var(--line);padding:18px;background:#fbfbf8;display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0}.stat-icon{color:#688061}.stat-label{font-size:9px;letter-spacing:1.2px;color:#92988e}.stat-card strong{font-family:var(--serif);font-size:29px;font-weight:500}.stat-card .stat-account{font-size:18px;overflow-wrap:anywhere}.stat-card small{font-size:10px;color:#888e84;overflow-wrap:anywhere}.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px}.section-title-row h2{font-size:27px}.section-title-row .eyebrow{font-size:9px}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:#fbfbf8}.auth-art{position:relative;min-height:100vh;padding:35px clamp(30px,6vw,85px);background:#2b4333;color:#f7f7f1;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.auth-art:before{content:"";position:absolute;width:600px;height:600px;border:1px solid #ffffff12;border-radius:50%;right:-240px;bottom:-160px;box-shadow:0 0 0 50px #ffffff06,0 0 0 100px #ffffff04}.brand-light{color:#f7f7f1;position:relative;z-index:1}.brand-light .brand-mark{background:#e7ede2;color:#304a38}.brand-light .brand-period{color:#b9d0ae}.art-copy{position:relative;z-index:1;max-width:470px;margin-top:-20px}.art-copy h1{font-size:clamp(50px,5.3vw,72px);letter-spacing:-3px;margin:22px 0}.art-copy h1 em{color:#c3d4ba}.art-copy p{max-width:340px;font-size:13px;line-height:1.9;color:#c0cbbd}.art-bottom{display:flex;justify-content:space-between;position:relative;z-index:1;color:#9eaf9a;font-size:8px;letter-spacing:1.6px}.auth-panel{display:flex;align-items:center;justify-content:center;padding:50px 30px}.auth-form-wrap{width:100%;max-width:365px}.auth-form-wrap h2{font-family:var(--serif);font-size:33px;font-weight:500;letter-spacing:-.8px;margin:13px 0 8px}.muted{color:#858b81;font-size:12px;margin:0 0 30px}.auth-form-wrap .form-stack{gap:19px}.auth-form-wrap .form-stack label{gap:9px}.auth-form-wrap .form-stack input{padding:13px 14px}.password-wrap{position:relative;display:block}.password-wrap input{padding-right:45px!important}.password-toggle{position:absolute;right:5px;top:4px;width:35px;height:35px;border:0;background:transparent;color:#8b9287;display:grid;place-items:center}.auth-switch{text-align:center;color:#858b81;font-size:11px;margin-top:24px}.auth-switch a{color:#476442;font-weight:700}.auth-legal{font-size:9px;line-height:1.7;color:#a0a59b;text-align:center;margin-top:50px}.mobile-brand{display:none;color:#344b37;font-weight:700;font-size:20px;align-items:center;gap:8px;margin-bottom:30px}.reader-page{height:100vh;display:flex;flex-direction:column;background:#e9ebe6}.reader-toolbar{height:64px;flex-shrink:0;background:#fbfbf8;border-bottom:1px solid #e1e4dc;display:flex;align-items:center;justify-content:space-between;padding:0 22px;gap:20px}.reader-back{display:flex;align-items:center;gap:8px;color:#667063;font-size:11px;white-space:nowrap}.reader-title{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-controls{display:flex;align-items:center;gap:4px}.zoom-value{font-size:10px;color:#757c72;min-width:36px;text-align:center}.pdf-stage{flex:1;overflow:auto;padding:25px;display:flex;justify-content:center;align-items:flex-start}.pdf-frame{height:100%;min-width:320px;max-width:1000px;transition:width .15s;box-shadow:0 4px 22px #202b2018}.pdf-frame iframe{width:100%;height:calc(100vh - 114px);border:0;background:#fff}.screen-center{min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#82887e;font-size:12px;gap:13px}.spinner{width:25px;height:25px;border:2px solid #dfe5da;border-top-color:#597452;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1000px){.hero{min-height:500px}.hero-visual{transform:scale(.88)}.book-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.main-nav a{padding:9px}.main-nav{gap:1px}.detail-layout{gap:35px}.auth-art{padding:30px}.art-copy h1{font-size:55px}}@media(max-width:720px){.topbar{height:65px;padding:0 18px;gap:8px}.brand{font-size:20px}.brand-mark{width:31px;height:31px}.main-nav a{font-size:0;padding:10px}.main-nav a svg{width:19px;height:19px}.main-nav{margin-left:auto}.account-area{gap:5px}.page-wrap{padding:0 20px}.hero{grid-template-columns:1fr;gap:0;padding:55px 0 38px;min-height:0}.hero h1{font-size:62px;letter-spacing:-3.5px}.hero-copy>p{font-size:13px}.hero-visual{height:365px;transform:none;margin-top:14px}.hero-visual:before{width:275px;height:275px}.hero-orbit{width:330px;height:330px}.orbit-two{width:380px;height:380px}.book-back{width:150px;height:225px;transform:translate(50px,-2px) rotate(8deg)}.book-back strong{font-size:23px}.book-front{width:160px;height:240px;transform:translate(-22px,12px) rotate(-7deg);padding:20px}.book-front strong{font-size:34px}.note-top{right:0;top:25px}.note-bottom{left:0;bottom:20px}.home-intro{grid-template-columns:1fr;gap:18px;padding:47px 0}.home-intro h2{font-size:32px}.feature-grid{grid-template-columns:1fr;margin-bottom:45px}.feature-card{min-height:0;padding:23px}.feature-card+.feature-card{border-left:0;border-top:1px solid var(--line)}.feature-card p{min-height:0}.closing-cta{padding:28px 24px;align-items:flex-start;flex-direction:column;margin-bottom:45px}.closing-cta h2{font-size:29px}.footer{padding:20px;font-size:10px}.content-page{padding:38px 0 55px}.page-heading h1,.dashboard-welcome h1{font-size:35px}.page-heading{align-items:flex-start}.count-pill{margin-top:22px}.filter-bar{gap:8px}.search-field,.select-wrap{height:44px;padding:0 10px}.select-wrap select{min-width:0;width:95px;font-size:10px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 14px}.book-title{font-size:16px}.book-cover{aspect-ratio:3/4}.cover-title{font-size:19px}.loading-grid{grid-template-columns:repeat(2,1fr);gap:14px}.skeleton-card{height:260px}.form-section{padding:22px 17px}.upload-submit{padding:17px;align-items:flex-start;flex-direction:column}.upload-submit .button{width:100%}.detail-layout{grid-template-columns:1fr;gap:25px;padding-top:0}.detail-cover{max-width:280px;width:100%;margin:0 auto}.detail-copy{padding-top:0}.detail-copy h1{font-size:38px}.stats-row{grid-template-columns:1fr;gap:9px;margin:24px 0 35px}.stat-card{display:grid;grid-template-columns:35px 1fr;gap:4px 10px;padding:14px}.stat-icon{grid-row:1/4;align-self:center}.stat-label{grid-column:2}.stat-card strong{grid-column:2;font-size:23px}.stat-card small{grid-column:2}.dashboard-welcome{align-items:flex-start;flex-direction:column}.section-title-row h2{font-size:23px}.section-title-row{align-items:flex-end;gap:10px}.text-link{white-space:nowrap}.auth-layout{grid-template-columns:1fr;min-height:100vh}.auth-art{display:none}.auth-panel{padding:36px 24px;min-height:100vh}.mobile-brand{display:flex}.auth-form-wrap h2{font-size:30px}.auth-legal{margin-top:38px}.reader-toolbar{padding:0 10px;gap:8px;height:58px}.reader-back span{display:none}.reader-title{flex:1;text-align:center}.reader-controls{gap:0}.reader-controls .icon-button{width:31px;height:31px}.pdf-stage{padding:10px}.pdf-frame iframe{height:calc(100vh - 78px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.admin-list{display:grid;gap:10px;margin-top:18px}.admin-row{display:flex;align-items:center;gap:16px;justify-content:space-between;padding:16px 18px;border:1px solid var(--line, #e8e4de);border-radius:14px;background:var(--surface, #fff)}.admin-row-main{min-width:0;display:grid;gap:5px;flex:1}.admin-row-main strong{overflow-wrap:anywhere}.admin-row-main small,.admin-row time{color:var(--muted, #777);font-size:12px;overflow-wrap:anywhere}.status-pill{padding:5px 9px;border-radius:999px;font-size:11px;text-transform:capitalize;background:#e7f5eb;color:#216b3b}.status-pill.deactivated{background:#fbe9e7;color:#9b2f25}.admin-activity-heading{margin-top:44px}.account-danger-zone{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:48px;padding:20px;border:1px solid #e7b9b4;border-radius:14px}.account-danger-zone p{margin:5px 0 0;color:var(--muted, #777);font-size:13px}.button-danger{display:inline-flex;align-items:center;gap:8px;border:1px solid #c94a3f;color:#a12f26;background:transparent}.button-danger:disabled{opacity:.6}@media(max-width:680px){.admin-row{align-items:flex-start;flex-wrap:wrap}.admin-row-main{flex-basis:100%}.account-danger-zone{align-items:flex-start;flex-direction:column}}.inline-button{border:0;background:none;color:inherit;text-decoration:underline;cursor:pointer;padding:0;font:inherit}.pdf-navigation{display:flex;align-items:center;justify-content:center;gap:16px;padding:10px 12px;background:var(--surface, #fff);border-bottom:1px solid var(--border, #e5e7eb)}.pdf-navigation span{font-size:14px;white-space:nowrap}.pdf-navigation button:disabled{opacity:.4;cursor:not-allowed}.pdf-stage{flex:1;min-width:0;min-height:0;overflow:auto;padding:16px 0 32px;background:#e9eaed}.pdf-document{display:flex;justify-content:center;min-width:0}.pdf-document .react-pdf__Document{max-width:100%}.pdf-document .react-pdf__Page{margin:0 auto 20px;background:#fff;box-shadow:0 2px 12px #0000001f}.pdf-document .react-pdf__Page canvas{display:block;max-width:100%;height:auto!important}.pdf-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 16px;text-align:center}.pdf-loading p{margin:0}@media(max-width:600px){.reader-toolbar{gap:8px;padding:8px}.reader-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-controls{gap:4px}.pdf-stage{padding-top:10px}}.favour-root{position:fixed;right:24px;bottom:24px;z-index:1000;font-family:inherit}.favour-launcher{display:flex;align-items:center;justify-content:center;gap:9px;min-height:54px;padding:0 18px;border:0;border-radius:999px;background:#202c3b;color:#fff;box-shadow:0 8px 28px #0000002e;cursor:pointer;font:inherit;font-weight:600}.favour-launcher:hover{background:#304158}.favour-panel{display:flex;flex-direction:column;width:min(370px,calc(100vw - 32px));height:min(520px,calc(100dvh - 110px));margin-bottom:14px;overflow:hidden;border:1px solid var(--border, #e5e7eb);border-radius:18px;background:var(--surface, #fff);color:var(--text, #202938);box-shadow:0 16px 55px #00000029}.favour-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--border, #e5e7eb)}.favour-identity{display:flex;align-items:center;gap:11px;min-width:0}.favour-avatar{display:grid;width:42px;height:42px;flex-shrink:0;place-items:center;border-radius:14px;background:#e9eef6;color:#243b5a}.favour-identity strong,.favour-subtitle{display:block}.favour-subtitle{margin-top:3px;color:var(--muted, #6b7280);font-size:12px}.favour-icon-button{display:grid;width:36px;height:36px;flex-shrink:0;place-items:center;border:0;border-radius:9px;background:transparent;color:inherit;cursor:pointer}.favour-icon-button:hover{background:var(--surface-secondary, #f3f4f6)}.favour-messages{display:flex;flex:1;flex-direction:column;gap:14px;padding:16px;overflow-y:auto}.favour-message{max-width:92%;padding:12px;border-radius:14px;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.favour-message p{margin:0;white-space:pre-wrap}.favour-message-assistant{align-self:flex-start;background:var(--surface-secondary, #f3f5f8)}.favour-message-user{align-self:flex-end;background:#263b55;color:#fff}.favour-speak-button{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:5px 0 0;border:0;background:transparent;color:inherit;font:inherit;font-size:12px;cursor:pointer}.favour-notice{padding:8px 14px;color:var(--muted, #6b7280);font-size:11px;line-height:1.5}.favour-composer{display:flex;align-items:center;gap:8px;padding:12px;border-top:1px solid var(--border, #e5e7eb)}.favour-composer input{width:0;min-width:0;flex:1;padding:11px 12px;border:1px solid var(--border, #d1d5db);border-radius:11px;outline:none;background:var(--surface, #fff);color:inherit;font:inherit;font-size:13px}.favour-composer input:focus{border-color:#7187a5}.favour-composer>button{display:grid;width:42px;height:42px;flex-shrink:0;place-items:center;border:0;border-radius:11px;background:#263b55;color:#fff;cursor:pointer}.favour-composer>button:disabled{opacity:.45;cursor:not-allowed}.favour-footer-note{display:flex;align-items:center;justify-content:center;gap:5px;margin:0;padding:8px;color:var(--muted, #6b7280);font-size:10px}@media(max-width:480px){.favour-root{right:12px;bottom:12px}.favour-panel{width:calc(100vw - 24px);height:min(500px,calc(100dvh - 90px))}.favour-launcher{min-height:50px}}.favour-root{position:fixed!important;right:24px;bottom:24px;z-index:99999;display:block;visibility:visible;opacity:1;pointer-events:auto}.favour-launcher,.favour-panel{position:relative;z-index:99999}@media(max-width:480px){.favour-root{right:12px;bottom:12px}}.elibrary-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--background, #ffffff)}.elibrary-loader-ring{position:absolute;top:0;right:0;bottom:0;left:0;border:3px solid rgba(59,130,246,.15);border-top-color:#16a34a;border-right-color:#16a34a;border-radius:50%;animation:elibrary-spin 1s linear infinite}.elibrary-loader{width:110px;height:110px;position:relative;display:flex;align-items:center;justify-content:center}.elibrary-loader:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:3px solid rgba(22,163,74,.12);border-top-color:#16a34a;border-right-color:#16a34a;border-radius:50%;animation:elibrary-spin 1s linear infinite}.elibrary-loading-icon{width:85px;height:85px;object-fit:contain;border-radius:12px;display:block;position:relative;z-index:2}@keyframes elibrary-spin{to{transform:rotate(360deg)}}
