: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(--total-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(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--total-scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-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}*{margin:0;padding:0;box-sizing:border-box}:root{--leather-base: #2a1a12;--leather-highlight: #3d2518;--leather-shadow: #1a0f0a;--leather-stitch: #8b6914;--leather-emboss: #221510;--mahogany-base: #4a1c1c;--mahogany-dark: #2d1010;--mahogany-light: #6b2a2a;--mahogany-grain: #3a1515;--brass-light: #d4a84b;--brass-base: #b8860b;--brass-dark: #8b6914;--brass-shadow: #5c4a0f;--brass-highlight: #f0d88a;--text-light: #f4e8d3;--text-gold: #d4a84b;--text-muted: #9a8b7a;--font-display: "Playfair Display", Georgia, serif;--font-body: "Cormorant Garamond", "Crimson Text", Georgia, serif}body{font-family:var(--font-body);background:var(--mahogany-dark);color:var(--text-light);min-height:100vh;font-size:16px}.app{display:flex;min-height:100vh}.sidebar{width:260px;padding:20px 0;display:flex;flex-direction:column;position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(0,0,0,.1) 0%,transparent 50%,rgba(255,255,255,.02) 100%),url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.08'/%3E%3C/svg%3E"),repeating-linear-gradient(90deg,transparent 0,rgba(0,0,0,.03) 1px,transparent 2px,transparent 5px),linear-gradient(180deg,var(--leather-highlight) 0%,var(--leather-base) 10%,var(--leather-base) 90%,var(--leather-shadow) 100%);background-color:var(--leather-base);border-right:5px solid;border-image:linear-gradient(180deg,var(--brass-highlight) 0%,var(--brass-base) 20%,var(--brass-dark) 80%,var(--brass-shadow) 100%) 1;box-shadow:inset -12px 0 20px #0006,inset 3px 0 8px #ffffff08,inset 8px 8px 15px #0003,inset -2px -2px 8px #ffffff05}.sidebar:before{content:"";position:absolute;right:8px;top:15px;bottom:15px;width:3px;background:repeating-linear-gradient(180deg,var(--leather-stitch) 0,var(--leather-stitch) 5px,transparent 5px,transparent 9px);opacity:.3;border-radius:2px}.sidebar:after{content:"";position:absolute;bottom:10px;left:10px;width:60px;height:60px;background:url(/corner-flourish.svg) no-repeat;background-size:contain;opacity:.4;transform:rotate(180deg)}.sidebar-brand{display:flex;align-items:center;justify-content:center;padding:15px 10px 20px;margin:0 10px 15px}.sidebar-logo{width:100%;max-width:220px;height:auto;filter:drop-shadow(2px 2px 4px rgba(0,0,0,.5))}.shelf-list{flex:1;display:flex;flex-direction:column;gap:4px;padding:0 15px}.shelf-item{display:flex;align-items:center;padding:12px 14px;border-radius:6px;cursor:pointer;background:transparent;border:1px solid transparent;color:var(--text-light);font-family:var(--font-body);font-size:1.05rem;text-align:left;width:100%;transition:all .25s ease}.shelf-item:hover{background:#ffffff0f;border-color:#8b691426;box-shadow:inset 1px 1px 3px #0003}.shelf-item.active{background:linear-gradient(135deg,#d4a84b1f,#d4a84b14);border-color:#d4a84b4d;border-left:3px solid var(--brass-base);box-shadow:inset 2px 2px 4px #0003,0 0 10px #d4a84b1a}.shelf-button{flex:1;display:flex;align-items:center;gap:10px;background:none;border:none;color:inherit;font:inherit;cursor:pointer;text-align:left}.shelf-icon{font-size:1.3rem;color:var(--brass-light);text-shadow:0 0 8px rgba(212,168,75,.3)}.shelf-actions{display:none;gap:4px}.shelf-item:hover .shelf-actions{display:flex}.shelf-action-btn{background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:4px;font-size:.85rem;opacity:.7;transition:all .2s}.shelf-action-btn:hover{background:#ffffff1a;opacity:1}.shelf-edit-input{flex:1;background:#0006;border:1px solid var(--brass-dark);color:var(--text-light);padding:6px 10px;border-radius:4px;font:inherit;box-shadow:inset 1px 1px 3px #0000004d}.shelf-divider{height:30px;margin:15px 0;background:url(/lyre-divider.svg) center center no-repeat;background-size:contain;opacity:.5}.shelf-heading{font-family:var(--font-display);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:3px;color:var(--brass-light);padding:0 14px;margin-bottom:10px;opacity:.8}.add-shelf-btn{margin-top:auto;padding:14px;background:linear-gradient(135deg,#0003,#0000001a);border:1px dashed rgba(212,168,75,.35);color:var(--text-muted);border-radius:6px;cursor:pointer;font:inherit;font-size:.95rem;transition:all .25s ease}.add-shelf-btn:hover{background:#d4a84b1a;color:var(--text-gold);border-color:var(--brass-base);border-style:solid;box-shadow:0 0 15px #d4a84b26}.main-content{flex:1;overflow-y:auto;padding:40px;position:relative;background:url(/treble-clef.svg) 85% 20% no-repeat,url(/treble-clef.svg) 10% 70% no-repeat,repeating-linear-gradient(0deg,transparent 0,transparent 30px,rgba(74,28,28,.15) 30px,rgba(74,28,28,.15) 31px,transparent 31px,transparent 38px,rgba(74,28,28,.15) 38px,rgba(74,28,28,.15) 39px,transparent 39px,transparent 46px,rgba(74,28,28,.15) 46px,rgba(74,28,28,.15) 47px,transparent 47px,transparent 54px,rgba(74,28,28,.15) 54px,rgba(74,28,28,.15) 55px,transparent 55px,transparent 62px,rgba(74,28,28,.15) 62px,rgba(74,28,28,.15) 63px,transparent 63px,transparent 200px),repeating-linear-gradient(92deg,transparent 0,transparent 2px,rgba(0,0,0,.08) 2px,rgba(0,0,0,.08) 3px,transparent 3px,transparent 40px),repeating-linear-gradient(87deg,transparent 0,transparent 1px,rgba(60,20,20,.25) 1px,rgba(60,20,20,.25) 2px,transparent 2px,transparent 60px),radial-gradient(ellipse 150px 100px at 15% 25%,rgba(90,35,35,.25) 0%,transparent 50%),radial-gradient(ellipse 120px 80px at 80% 55%,rgba(90,35,35,.2) 0%,transparent 50%),radial-gradient(ellipse 180px 100px at 45% 85%,rgba(90,35,35,.18) 0%,transparent 50%),linear-gradient(180deg,var(--mahogany-light) 0%,var(--mahogany-base) 15%,var(--mahogany-base) 85%,var(--mahogany-dark) 100%);background-color:var(--mahogany-base);background-size:200px 400px,200px 400px,auto,auto,auto,auto,auto,auto,auto}.main-content:before{content:"";position:fixed;top:20px;right:20px;width:80px;height:80px;background:url(/corner-flourish.svg) no-repeat;background-size:contain;opacity:.35;transform:rotate(-90deg);pointer-events:none}.main-content:after{content:"";position:fixed;bottom:20px;right:20px;width:80px;height:80px;background:url(/corner-flourish.svg) no-repeat;background-size:contain;opacity:.35;pointer-events:none}.bookshelf{max-width:1200px;margin:0 auto;position:relative}.shelf-row{margin-bottom:50px;position:relative}.shelf-row:before{content:"";position:absolute;top:-10px;left:20px;right:20px;height:2px;background:linear-gradient(90deg,transparent 0%,var(--brass-dark) 20%,var(--brass-light) 50%,var(--brass-dark) 80%,transparent 100%);opacity:.3;border-radius:50%}.books-container{display:flex;flex-wrap:wrap;gap:30px;padding:25px 35px;min-height:200px;align-items:flex-end}.shelf-wood{height:28px;position:relative;border-radius:3px;background:repeating-linear-gradient(90deg,transparent 0,rgba(255,255,255,.03) 1px,transparent 2px,transparent 4px),linear-gradient(180deg,var(--brass-highlight) 0%,var(--brass-light) 8%,var(--brass-base) 25%,var(--brass-dark) 75%,var(--brass-shadow) 92%,var(--brass-dark) 100%);box-shadow:inset 0 2px #ffffff80,inset 0 -2px #0000004d,0 6px 15px #00000080,0 3px 6px #0000004d}.shelf-wood:before{content:"";position:absolute;top:3px;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.6) 10%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.6) 90%,transparent 100%)}.shelf-wood:after{content:"";position:absolute;bottom:5px;left:15px;right:15px;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.4) 20%,rgba(0,0,0,.2) 50%,rgba(0,0,0,.4) 80%,transparent 100%)}.empty-shelf{text-align:center;padding:50px;color:var(--text-muted);width:100%;font-style:italic}.empty-hint{font-size:.9rem;margin-top:12px;opacity:.7}.bookshelf-list-view{max-width:900px}.list-container{display:flex;flex-direction:column;gap:4px;padding:15px;background:#00000026;border-radius:8px;border:1px solid rgba(212,168,75,.15)}.list-item{display:flex;align-items:center;gap:14px;padding:14px 18px;background:#ffffff08;border-radius:6px;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.list-item:hover{background:#d4a84b1a;border-color:#d4a84b33;padding-left:22px}.list-item-regalpaket{border-left:3px solid rgba(74,124,89,.4)}.list-item-regalpaket:hover{border-left-color:#4a7c59}.list-item-icon{font-size:1.5rem;opacity:.7;flex-shrink:0}.list-item-title{flex:1;font-family:var(--font-display);font-size:1rem;color:var(--text-light);word-break:break-word}.list-item-badges{display:flex;gap:8px;flex-shrink:0}.list-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;font-size:.85rem;font-weight:700}.list-badge-favorite{background:linear-gradient(135deg,gold,#daa520,#b8860b);color:#5c4a0f;border:1px solid #8b6914;box-shadow:0 1px 3px #0000004d}.list-badge-regal{background:linear-gradient(135deg,#4a7c59,#2d5a3a,#1e4028);color:#c8e6c9;border:1px solid #1a3020;font-family:var(--font-display)}.list-badge-annotation{background:linear-gradient(135deg,var(--brass-highlight) 0%,var(--brass-base) 50%,var(--brass-dark) 100%);color:#1a0f0a;border:1px solid var(--brass-shadow)}.view-toggle{display:flex;background:#0003;border-radius:6px;padding:2px;border:1px solid rgba(212,168,75,.15)}.view-toggle-btn{padding:8px 12px;background:transparent;border:none;color:var(--text-muted);font-size:1.1rem;cursor:pointer;border-radius:4px;transition:all .2s ease}.view-toggle-btn:hover{color:var(--text-light);background:#ffffff0d}.view-toggle-btn.active{background:#d4a84b33;color:var(--text-gold)}.shelf-item-favorites.active{background:linear-gradient(135deg,#ffd7001f,#daa52014);border-color:#ffd7004d;border-left:3px solid #daa520}.book{display:flex;flex-direction:column;align-items:center;cursor:pointer;transition:transform .3s ease,filter .3s ease}.book:hover{transform:translateY(-12px) scale(1.02);filter:brightness(1.05)}.book-cover{width:95px;height:130px;border-radius:0 5px 5px 0;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:-4px 0 0 var(--book-spine-color, #4a3728),-6px 0 0 var(--book-spine-dark, #3a2a1e),3px 5px 12px #00000080;background:repeating-linear-gradient(135deg,transparent 0,rgba(0,0,0,.02) 1px,transparent 2px,transparent 4px),linear-gradient(135deg,#c9a86c,#a07d4a 40%,#8b6b3d)}.book:nth-child(5n+1) .book-cover{background:linear-gradient(135deg,#8b4513,#6b3410 40%,#5a2d0e);--book-spine-color: #4a2508;--book-spine-dark: #3a1a05}.book:nth-child(5n+2) .book-cover{background:linear-gradient(135deg,#2d4a3a,#1e3a2a 40%,#152a1e);--book-spine-color: #0f2015;--book-spine-dark: #0a150f}.book:nth-child(5n+3) .book-cover{background:linear-gradient(135deg,#4a3a5a,#3a2a4a 40%,#2a1a3a);--book-spine-color: #1f1530;--book-spine-dark: #150f25}.book:nth-child(5n+4) .book-cover{background:linear-gradient(135deg,#8b0000,#6b0000 40%,#4a0000);--book-spine-color: #350000;--book-spine-dark: #250000}.book:nth-child(5n+5) .book-cover{background:linear-gradient(135deg,#c9a86c,#a07d4a 40%,#8b6b3d);--book-spine-color: #4a3728;--book-spine-dark: #3a2a1e}.book-spine{position:absolute;left:0;top:0;bottom:0;width:10px;background:linear-gradient(90deg,var(--book-spine-dark, #3a2a1e) 0%,var(--book-spine-color, #4a3728) 50%,color-mix(in srgb,var(--book-spine-color, #4a3728) 80%,white) 100%);border-radius:3px 0 0 3px}.book-cover:before{content:"";position:absolute;top:15px;left:15px;right:10px;height:2px;background:linear-gradient(90deg,var(--brass-light),var(--brass-dark));opacity:.4;border-radius:1px}.book-cover:after{content:"";position:absolute;bottom:15px;left:15px;right:10px;height:2px;background:linear-gradient(90deg,var(--brass-light),var(--brass-dark));opacity:.4;border-radius:1px}.book-icon{font-size:2.2rem;color:var(--brass-light);text-shadow:1px 1px 2px rgba(0,0,0,.4);opacity:.8}.book-title{margin-top:12px;font-family:var(--font-display);font-size:.85rem;font-weight:500;text-align:center;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-light);text-shadow:1px 1px 3px rgba(0,0,0,.6)}.context-menu{position:fixed;background:linear-gradient(135deg,rgba(0,0,0,.1) 0%,transparent 50%),var(--leather-base);border:2px solid var(--brass-dark);border-radius:8px;padding:10px 0;min-width:200px;box-shadow:0 8px 30px #0009,inset 0 1px #ffffff0d;z-index:1000}.context-menu-header{padding:8px 18px 12px;font-family:var(--font-display);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:2px;color:var(--brass-light);border-bottom:1px solid rgba(212,168,75,.2);margin-bottom:8px}.context-menu-item{display:block;width:100%;padding:12px 18px;background:none;border:none;color:var(--text-light);font:inherit;font-size:.95rem;text-align:left;cursor:pointer;transition:all .2s}.context-menu-item:hover{background:#d4a84b1f;padding-left:22px}.context-menu-remove{color:#cc6b5a}.context-menu-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(212,168,75,.25),transparent);margin:10px 0}.rename-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000}.rename-modal{background:linear-gradient(135deg,rgba(0,0,0,.1) 0%,transparent 50%),var(--leather-base);border:3px solid var(--brass-dark);border-radius:12px;padding:24px 28px;min-width:320px;max-width:90vw;box-shadow:0 4px 20px #00000080,inset 0 1px #ffffff0d}.rename-modal h3{font-family:var(--font-display);font-size:1.2rem;color:var(--text-gold);margin-bottom:16px;text-align:center}.rename-input{width:100%;padding:12px 16px;border:2px solid var(--brass-dark);border-radius:8px;font-family:var(--font-body);font-size:1rem;background:linear-gradient(180deg,#0003,#0000001a),var(--mahogany-light);color:var(--text-light);box-shadow:inset 0 2px 4px #0000004d;margin-bottom:12px}.rename-input:focus{outline:none;border-color:var(--brass-base);box-shadow:inset 0 2px 4px #0000004d,0 0 0 3px #d4a84b33}.rename-error{color:#cc6b5a;font-size:.9rem;margin-bottom:12px;text-align:center}.rename-buttons{display:flex;gap:12px;justify-content:flex-end}.rename-cancel,.rename-submit{padding:10px 20px;border:none;border-radius:6px;font-family:var(--font-display);font-size:.95rem;cursor:pointer;transition:all .2s ease}.rename-cancel{background:#ffffff1a;color:var(--text-muted)}.rename-cancel:hover{background:#ffffff26;color:var(--text-light)}.rename-submit{background:linear-gradient(180deg,var(--brass-light) 0%,var(--brass-base) 50%,var(--brass-dark) 100%);color:#1a0f0a;text-shadow:0 1px 0 rgba(255,255,255,.3);box-shadow:inset 0 1px #fff6,0 2px 8px #0000004d}.rename-submit:hover{background:linear-gradient(180deg,var(--brass-highlight) 0%,var(--brass-light) 50%,var(--brass-base) 100%);transform:translateY(-1px);box-shadow:inset 0 1px #ffffff80,0 4px 12px #0006}.pdf-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .25s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.pdf-container{width:95%;height:95%;max-width:1200px;background:#1a1a1a;border-radius:12px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 100px #000000b3,0 0 0 1px #d4a84b1a;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.pdf-header{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;background:linear-gradient(180deg,#2d2520,#1f1a18);border-bottom:1px solid rgba(212,168,75,.15);flex-shrink:0}.pdf-title{font-family:var(--font-display);font-size:1.15rem;font-weight:500;color:var(--text-gold);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:20px;letter-spacing:.5px}.pdf-controls{display:flex;align-items:center;gap:10px;background:#0000004d;padding:8px 14px;border-radius:8px;border:1px solid rgba(212,168,75,.1)}.pdf-control-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:var(--text-light);width:36px;height:36px;border-radius:6px;cursor:pointer;font-size:1.3rem;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.pdf-control-btn:hover:not(:disabled){background:#d4a84b33;border-color:var(--brass-dark);color:var(--text-gold)}.pdf-control-btn:disabled{opacity:.3;cursor:not-allowed}.pdf-zoom-level{color:var(--text-muted);font-family:var(--font-display);font-size:.85rem;min-width:55px;text-align:center;background:transparent;border:1px solid transparent;border-radius:6px;padding:6px 10px;cursor:pointer;transition:all .2s ease}.pdf-zoom-level:hover{background:#ffffff14;color:var(--text-light)}.pdf-fit-active{color:var(--brass-light);border-color:#d4a84b40;background:#d4a84b1a}.pdf-page-info{color:var(--text-muted);font-family:var(--font-display);font-size:.85rem;min-width:60px;text-align:center}.pdf-divider{color:#ffffff26;margin:0 6px}.pdf-close{background:none;border:none;color:var(--text-muted);font-size:2rem;cursor:pointer;line-height:1;padding:6px 10px;margin-left:15px;border-radius:6px;transition:all .2s ease}.pdf-close:hover{color:var(--text-light);background:#ffffff1a}.pdf-scroll-container{flex:1;overflow:auto;display:flex;justify-content:center;padding:35px;background:radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.3) 100%),url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='paper'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.04' numOctaves='5' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23paper)' opacity='0.03'/%3E%3C/svg%3E"),linear-gradient(180deg,#3d3530,#2d2825,#252220)}.pdf-scroll-container .react-pdf__Document{display:flex;flex-direction:column;align-items:center}.pdf-scroll-container .react-pdf__Page{box-shadow:0 0 0 1px #0000001a,0 8px 30px #00000080,-2px 0 5px #0003;border-radius:2px;position:relative}.pdf-scroll-container .react-pdf__Page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(135deg,rgba(245,235,220,.03) 0%,transparent 50%,rgba(210,190,160,.05) 100%),radial-gradient(ellipse at center,transparent 60%,rgba(139,105,20,.05) 100%);border-radius:2px;z-index:1}.pdf-scroll-container .react-pdf__Page canvas{display:block;border-radius:2px}.pdf-loading,.pdf-error{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--text-muted);font-family:var(--font-display);font-size:1.1rem;font-style:italic}.pdf-error{color:#cc6b5a}.pdf-fullscreen{width:100%!important;height:100%!important;max-width:none!important;border-radius:0!important}.pdf-fullscreen .pdf-scroll-container{background:#1a1815;overflow:auto;overflow-x:hidden}.pdf-container:fullscreen{width:100vw;height:100vh}.main-toolbar{display:flex;gap:20px;margin-bottom:25px;align-items:center}.search-bar{flex:1;max-width:400px;position:relative}.search-input{width:100%;padding:12px 40px 12px 16px;border:2px solid var(--brass-dark);border-radius:8px;font-family:var(--font-body);font-size:1rem;background:linear-gradient(180deg,#0003,#0000001a),var(--mahogany-light);color:var(--text-light);box-shadow:inset 0 2px 4px #0000004d,0 1px #ffffff0d;transition:all .2s ease}.search-input::placeholder{color:var(--text-muted);font-style:italic}.search-input:focus{outline:none;border-color:var(--brass-base);box-shadow:inset 0 2px 4px #0000004d,0 0 0 3px #d4a84b33,0 1px #ffffff0d}.search-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);font-size:1.4rem;cursor:pointer;padding:4px 8px;line-height:1;transition:color .2s ease}.search-clear:hover{color:var(--text-light)}.sort-select-wrapper{flex-shrink:0}.sort-select{padding:12px 36px 12px 16px;border:2px solid var(--brass-dark);border-radius:8px;font-family:var(--font-body);font-size:.95rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%239a8b7a' d='M6 8L2 4h8z'/%3E%3C/svg%3E") calc(100% - 12px) center no-repeat,linear-gradient(180deg,#0003,#0000001a),var(--mahogany-light);color:var(--text-light);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-shadow:inset 0 2px 4px #0000004d,0 1px #ffffff0d;transition:all .2s ease}.sort-select:hover{border-color:var(--brass-base)}.sort-select:focus{outline:none;border-color:var(--brass-base);box-shadow:inset 0 2px 4px #0000004d,0 0 0 3px #d4a84b33,0 1px #ffffff0d}.sort-select option{background:var(--mahogany-base);color:var(--text-light);padding:8px}.upload-container{flex-shrink:0}.upload-btn{padding:14px 28px;border:none;border-radius:8px;cursor:pointer;font-family:var(--font-display);font-size:1rem;font-weight:500;letter-spacing:1px;transition:all .3s ease;position:relative;overflow:hidden;background:repeating-linear-gradient(90deg,transparent 0,rgba(255,255,255,.02) 1px,transparent 2px,transparent 3px),linear-gradient(180deg,var(--brass-highlight) 0%,var(--brass-light) 12%,var(--brass-base) 45%,var(--brass-dark) 88%,var(--brass-shadow) 100%);color:#1a0f0a;text-shadow:0 1px 0 rgba(255,255,255,.35);box-shadow:inset 0 2px #ffffff73,inset 0 -2px #00000040,0 4px 12px #00000059,0 0 0 1px var(--brass-dark)}.upload-btn:hover{background:repeating-linear-gradient(90deg,transparent 0,rgba(255,255,255,.03) 1px,transparent 2px,transparent 3px),linear-gradient(180deg,var(--brass-highlight) 0%,var(--brass-highlight) 15%,var(--brass-light) 50%,var(--brass-base) 88%,var(--brass-dark) 100%);box-shadow:inset 0 2px #ffffff80,inset 0 -2px #0003,0 6px 20px #0006,0 0 20px #d4a84b33,0 0 0 1px var(--brass-base);transform:translateY(-1px)}.upload-btn:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #0003,0 2px 6px #0000004d,0 0 0 1px var(--brass-dark)}.upload-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.upload-btn:before,.upload-btn:after{content:"";position:absolute;width:12px;height:12px;border:2px solid rgba(0,0,0,.2)}.upload-btn:before{top:4px;left:4px;border-right:none;border-bottom:none}.upload-btn:after{bottom:4px;right:4px;border-left:none;border-top:none}@media (max-width: 768px){.sidebar{width:220px}.main-content{padding:20px}.main-content:before,.main-content:after{width:50px;height:50px}.books-container{gap:20px;padding:15px 20px}.book-cover{width:80px;height:110px}}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--mahogany-dark)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--brass-light) 0%,var(--brass-base) 50%,var(--brass-dark) 100%);border-radius:6px;border:2px solid var(--mahogany-dark)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--brass-highlight) 0%,var(--brass-light) 50%,var(--brass-base) 100%)}::-webkit-scrollbar-corner{background:var(--mahogany-dark)}.book-annotation-badge{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--brass-highlight) 0%,var(--brass-base) 50%,var(--brass-dark) 100%);display:flex;align-items:center;justify-content:center;z-index:5;box-shadow:0 2px 4px #0006,inset 0 1px #ffffff4d;border:1px solid var(--brass-shadow)}.annotation-badge-icon{font-size:.7rem;filter:brightness(.3)}.book-favorite-badge{position:absolute;top:8px;left:8px;width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,gold,#daa520,#b8860b);display:flex;align-items:center;justify-content:center;z-index:5;box-shadow:0 2px 4px #0006,inset 0 1px #fff6;border:1px solid #8b6914}.favorite-badge-icon{font-size:.75rem;color:#5c4a0f;text-shadow:0 1px 0 rgba(255,255,255,.3)}.annotation-toolbar-floating{position:fixed;z-index:2500;display:flex;align-items:center;gap:8px;padding:8px 12px;background:linear-gradient(180deg,#2d2518,#1f1a14);border:1px solid rgba(212,168,75,.3);border-radius:10px;box-shadow:0 8px 32px #00000080,0 2px 8px #0000004d,inset 0 1px #ffffff0d;cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.annotation-toolbar-floating.dragging{opacity:.9;box-shadow:0 12px 48px #0009,0 4px 12px #0006,inset 0 1px #ffffff0d}.annotation-toolbar-handle{display:flex;align-items:center;justify-content:center;width:20px;height:36px;color:#d4a84b80;font-size:14px;letter-spacing:-2px;cursor:grab;border-right:1px solid rgba(255,255,255,.1);margin-right:4px;padding-right:8px}.annotation-toolbar-floating.dragging .annotation-toolbar-handle{cursor:grabbing}.annotation-tools{display:flex;align-items:center;gap:6px}@keyframes toolsSlideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.annotation-tool-group{display:flex;align-items:center;gap:4px;background:#00000040;padding:4px;border-radius:8px;border:1px solid rgba(255,255,255,.05)}.annotation-divider{width:1px;height:28px;background:#ffffff1a;margin:0 4px}.annotation-tool-btn{width:36px;height:36px;border:none;border-radius:6px;background:transparent;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:all .15s ease;color:var(--text-light)}.annotation-tool-btn:hover{background:#ffffff1a}.annotation-tool-btn.active{background:#d4a84b33;box-shadow:inset 0 1px 3px #0000004d}.annotation-color-btn{width:32px;height:32px;border:2px solid transparent;border-radius:50%;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease;padding:3px}.annotation-color-btn:hover{transform:scale(1.1)}.annotation-color-btn.active{border-color:var(--brass-light);box-shadow:0 0 8px #d4a84b66}.color-swatch{width:100%;height:100%;border-radius:50%;background:var(--swatch-color);border:2px solid var(--swatch-border);box-shadow:inset 0 1px 2px #ffffff4d}.annotation-width-btn{width:32px;height:32px;border:none;border-radius:6px;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.annotation-width-btn:hover{background:#ffffff1a}.annotation-width-btn.active{background:#d4a84b33}.width-indicator{width:20px;background:var(--text-light);border-radius:2px}.annotation-stamps{display:flex;flex-wrap:wrap;max-width:160px;gap:2px}.annotation-stamp-btn{width:32px;height:32px;border:none;border-radius:6px;background:transparent;color:var(--text-light);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.1rem;transition:all .15s ease}.annotation-stamp-btn:hover{background:#ffffff1a;transform:scale(1.1)}.annotation-stamp-btn.active{background:#d4a84b33;box-shadow:0 0 6px #d4a84b4d}.annotation-action-btn{width:32px;height:32px;border:none;border-radius:6px;background:#ffffff14;color:var(--text-light);cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.annotation-action-btn:hover:not(:disabled){background:#ffffff26}.annotation-action-btn:disabled{opacity:.3;cursor:not-allowed}.annotation-clear-btn:hover:not(:disabled){background:#b450504d;color:#e88}.annotation-canvas{border-radius:2px}.annotation-canvas-active{box-shadow:0 0 0 2px #d4a84b66}.pdf-container.annotation-active .pdf-scroll-container{background:radial-gradient(ellipse at center,transparent 50%,rgba(212,168,75,.05) 100%),url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='paper'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.04' numOctaves='5' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23paper)' opacity='0.03'/%3E%3C/svg%3E"),linear-gradient(180deg,#3d3530,#2d2825,#252220)}.pdf-container.annotation-active .react-pdf__Page__textContent,.pdf-container.annotation-active .react-pdf__Page__annotations{pointer-events:none;opacity:0}.pdf-page-wrapper{position:relative;display:inline-block}.pdf-page-wrapper .annotation-canvas{position:absolute;top:0;left:0;will-change:contents}.pdf-scroll-container{scroll-behavior:auto;overflow-anchor:none}.pdf-control-active{background:#d4a84b33!important;border-color:var(--brass-dark)!important;color:var(--text-gold)!important}@media (max-width: 768px){.annotation-toolbar-floating{padding:6px 10px;gap:6px}.annotation-tool-group{padding:2px}.annotation-tool-btn,.annotation-color-btn,.annotation-width-btn,.annotation-action-btn{width:40px;height:40px}.annotation-divider{display:none}.annotation-tools{flex-wrap:wrap;gap:4px}.annotation-toolbar-handle{width:16px;padding-right:6px;margin-right:2px}}@media (pointer: coarse){.annotation-tool-btn,.annotation-color-btn,.annotation-width-btn,.annotation-action-btn{min-width:44px;min-height:44px}}.shelf-item-regal .regal-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;background:linear-gradient(135deg,#4a7c59,#2d5a3a,#1e4028);color:#c8e6c9;font-size:.85rem;font-weight:700;font-family:var(--font-display);text-shadow:0 1px 1px rgba(0,0,0,.4);box-shadow:0 2px 4px #0000004d,inset 0 1px #fff3;border:1px solid #1a3020}.shelf-item-regal.active{background:linear-gradient(135deg,#4a7c5926,#2d5a3a1a);border-color:#4a7c5959;border-left:3px solid #4a7c59}.shelf-item-regal:hover{background:#4a7c591a;border-color:#4a7c5933}.book-regal-badge{position:absolute;bottom:8px;right:8px;width:22px;height:22px;border-radius:4px;background:linear-gradient(135deg,#4a7c59,#2d5a3a,#1e4028);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0006,inset 0 1px #fff3;border:1px solid #1a3020;z-index:5}.regal-badge-icon{font-size:.75rem;font-weight:700;font-family:var(--font-display);color:#c8e6c9;text-shadow:0 1px 1px rgba(0,0,0,.4)}.book-regalpaket .book-cover{box-shadow:-4px 0 0 var(--book-spine-color, #4a3728),-6px 0 0 var(--book-spine-dark, #3a2a1e),3px 5px 12px #00000080,0 0 0 1px #2d5a3a4d}.regal-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;background:linear-gradient(135deg,#4a7c59,#2d5a3a,#1e4028);color:#c8e6c9;font-size:.85rem;font-weight:700;font-family:var(--font-display);margin-right:10px;box-shadow:0 2px 4px #0000004d,inset 0 1px #fff3;border:1px solid #1a3020;text-shadow:0 1px 1px rgba(0,0,0,.4)}.regal-page-image{box-shadow:0 0 0 1px #0000001a,0 8px 30px #00000080,-2px 0 5px #0003;border-radius:2px;background:#fff}.regal-convert-btn{width:auto!important;padding:0 14px!important;font-size:.85rem!important;font-family:var(--font-display);letter-spacing:.5px;white-space:nowrap}.regal-convert-btn:hover:not(:disabled){background:#2d5a3a4d!important;border-color:#4a7c59!important;color:#a8d5a9!important}.regal-convert-btn:disabled{opacity:.6}.regal-convert-btn:disabled{animation:regalPulse 1.5s ease-in-out infinite}@keyframes regalPulse{0%,to{opacity:.6}50%{opacity:.9}}.regal-scroll-container{background:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='paper'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.04' numOctaves='5' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23paper)' opacity='0.02'/%3E%3C/svg%3E"),radial-gradient(ellipse at center,#231e1cf2,#120f0e)}.regal-book-wrapper{display:flex;align-items:center;justify-content:center;position:relative;transform-style:preserve-3d}.regal-page-container{position:relative;transform-style:preserve-3d;transition:transform .1s ease-out}.regal-page{position:absolute;top:0;left:0;width:100%;height:100%;backface-visibility:hidden;transform-style:preserve-3d}.regal-page-underneath{position:relative;z-index:1}.regal-page-image{box-shadow:0 0 0 1px #00000026,0 4px 8px #0003,0 12px 40px #0006,inset 0 0 60px #fffcf508;border-radius:2px 4px 4px 2px;background:#fffef8}.regal-page-loading{background:linear-gradient(135deg,#f5f0e6,#e8e0d0);border-radius:2px 4px 4px 2px;display:flex;align-items:center;justify-content:center;color:#8a7a6a}.regal-page-edge{position:absolute;left:-8px;top:0;width:8px;background:repeating-linear-gradient(180deg,#e8e0d0,#f5f0e6,#d8d0c0 2px),linear-gradient(90deg,#c8baa8,#e0d8c8 30%,#f0e8d8 70%,#d8d0c0);border-radius:2px 0 0 2px;box-shadow:-2px 0 4px #0000004d,inset 1px 0 2px #ffffff4d}.regal-page-flip{position:absolute;top:0;left:0;width:100%;height:100%;transform-origin:left center;z-index:10;pointer-events:none}.regal-flip-next{transform-origin:left center;animation:flipPageNext .5s cubic-bezier(.4,0,.2,1) forwards}@keyframes flipPageNext{0%{transform:rotateY(0)}30%{transform:rotateY(-30deg)}60%{transform:rotateY(-90deg)}to{transform:rotateY(-180deg)}}.regal-flip-prev{transform-origin:left center;animation:flipPagePrev .5s cubic-bezier(.4,0,.2,1) forwards}@keyframes flipPagePrev{0%{transform:rotateY(-180deg)}40%{transform:rotateY(-90deg)}70%{transform:rotateY(-30deg)}to{transform:rotateY(0)}}.regal-page-shadow{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to right,rgba(0,0,0,.15) 0%,rgba(0,0,0,.05) 20%,transparent 40%);pointer-events:none;border-radius:2px 4px 4px 2px}.regal-flip-next .regal-page-shadow{animation:shadowFlipNext .5s cubic-bezier(.4,0,.2,1) forwards}@keyframes shadowFlipNext{0%{opacity:0}30%{opacity:1}70%{opacity:1}to{opacity:0}}.regal-page-shadow-prev{background:linear-gradient(to left,rgba(0,0,0,.15) 0%,rgba(0,0,0,.05) 20%,transparent 40%);animation:shadowFlipPrev .5s cubic-bezier(.4,0,.2,1) forwards}@keyframes shadowFlipPrev{0%{opacity:0}30%{opacity:1}70%{opacity:1}to{opacity:0}}.regal-animating .regal-page-underneath:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(to left,rgba(0,0,0,.06) 0%,transparent 25%);pointer-events:none;border-radius:2px 4px 4px 2px;animation:underlayGlow .5s ease-out forwards}@keyframes underlayGlow{0%,to{opacity:0}50%{opacity:1}}.regal-animating .regal-page-container{animation:pageLift .5s ease-out}@keyframes pageLift{0%,to{transform:translateZ(0)}50%{transform:translateZ(5px)}}.pdf-container:has(.regal-scroll-container) .pdf-header{background:linear-gradient(180deg,#2a2520,#1a1815);border-bottom:1px solid rgba(74,124,89,.2)}.pdf-container:has(.regal-scroll-container) .pdf-controls{border-color:#4a7c5926}.regal-animating{pointer-events:none}.regal-page-container:before{content:"";position:absolute;bottom:-30px;left:50%;transform:translate(-50%);width:60px;height:3px;background:linear-gradient(90deg,transparent,rgba(74,124,89,.3),transparent);border-radius:2px;opacity:0;transition:opacity .3s ease}.regal-animating .regal-page-container:before{opacity:1}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:url(/treble-clef.svg) 15% 20% no-repeat,url(/treble-clef.svg) 85% 75% no-repeat,repeating-linear-gradient(92deg,transparent 0,transparent 2px,rgba(0,0,0,.08) 2px,rgba(0,0,0,.08) 3px,transparent 3px,transparent 40px),linear-gradient(180deg,var(--mahogany-light) 0%,var(--mahogany-base) 30%,var(--mahogany-dark) 100%);background-color:var(--mahogany-base);background-size:150px 300px,150px 300px,auto,auto}.login-container{width:100%;max-width:400px;padding:40px;background:linear-gradient(135deg,rgba(0,0,0,.1) 0%,transparent 50%),var(--leather-base);border:3px solid var(--brass-dark);border-radius:16px;box-shadow:0 20px 60px #0009,0 8px 20px #0006,inset 0 1px #ffffff0d,inset 0 -1px #0003;position:relative}.login-container:before,.login-container:after{content:"";position:absolute;width:30px;height:30px;border:2px solid var(--brass-dark);opacity:.5}.login-container:before{top:12px;left:12px;border-right:none;border-bottom:none;border-radius:4px 0 0}.login-container:after{bottom:12px;right:12px;border-left:none;border-top:none;border-radius:0 0 4px}.login-header{text-align:center;margin-bottom:35px}.login-header h1{font-family:var(--font-display);font-size:2.2rem;font-weight:600;color:var(--text-gold);letter-spacing:2px;text-shadow:0 2px 4px rgba(0,0,0,.4);margin-bottom:8px}.login-header p{font-family:var(--font-body);font-size:1rem;color:var(--text-muted);font-style:italic;letter-spacing:1px}.setup-message{text-align:center;margin-bottom:20px;padding:15px;background:#d4a84b1a;border:1px solid rgba(212,168,75,.25);border-radius:8px}.setup-message p{color:var(--text-light);font-size:.95rem;line-height:1.5}.login-form{display:flex;flex-direction:column;gap:20px}.login-field{position:relative}.login-input{width:100%;padding:16px 20px;border:2px solid var(--brass-dark);border-radius:8px;font-family:var(--font-body);font-size:1.1rem;background:linear-gradient(180deg,#0003,#0000001a),var(--mahogany-light);color:var(--text-light);box-shadow:inset 0 2px 4px #0000004d;transition:all .2s ease}.login-input::placeholder{color:var(--text-muted);font-style:italic}.login-input:focus{outline:none;border-color:var(--brass-base);box-shadow:inset 0 2px 4px #0000004d,0 0 0 3px #d4a84b33}.login-input:disabled{opacity:.6;cursor:not-allowed}.login-error{color:#cc6b5a;font-size:.95rem;text-align:center;padding:10px;background:#b450501a;border-radius:6px;border:1px solid rgba(180,80,80,.2)}.login-button{padding:16px 28px;border:none;border-radius:8px;cursor:pointer;font-family:var(--font-display);font-size:1.1rem;font-weight:500;letter-spacing:1px;transition:all .3s ease;background:repeating-linear-gradient(90deg,transparent 0,rgba(255,255,255,.02) 1px,transparent 2px,transparent 3px),linear-gradient(180deg,var(--brass-highlight) 0%,var(--brass-light) 12%,var(--brass-base) 45%,var(--brass-dark) 88%,var(--brass-shadow) 100%);color:#1a0f0a;text-shadow:0 1px 0 rgba(255,255,255,.35);box-shadow:inset 0 2px #ffffff73,inset 0 -2px #00000040,0 4px 12px #00000059,0 0 0 1px var(--brass-dark)}.login-button:hover:not(:disabled){background:repeating-linear-gradient(90deg,transparent 0,rgba(255,255,255,.03) 1px,transparent 2px,transparent 3px),linear-gradient(180deg,var(--brass-highlight) 0%,var(--brass-highlight) 15%,var(--brass-light) 50%,var(--brass-base) 88%,var(--brass-dark) 100%);box-shadow:inset 0 2px #ffffff80,inset 0 -2px #0003,0 6px 20px #0006,0 0 20px #d4a84b33,0 0 0 1px var(--brass-base);transform:translateY(-1px)}.login-button:active:not(:disabled){transform:translateY(1px);box-shadow:inset 0 2px 4px #0003,0 2px 6px #0000004d,0 0 0 1px var(--brass-dark)}.login-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--mahogany-dark)}.app-loading-spinner{width:50px;height:50px;border:3px solid var(--brass-dark);border-top-color:var(--brass-light);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
