.landing-page{margin:0;padding:0}.landing-page,.sky{height:100vh;overflow:hidden;width:100vw}.sky{background-position:50%;background-repeat:no-repeat;background-size:cover;position:fixed;transition:transform .1s ease-out;will-change:transform}.background-overlay{background:linear-gradient(180deg,#0000001a 0,#0003 50%,#0000004d);height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.content-layer{height:100vh;left:0;pointer-events:none;position:fixed;top:0;width:100vw;z-index:10}.content-layer>*{pointer-events:auto}.landing-page-title{animation:fadeIn 1s ease-in;color:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:1.75rem;font-size:55px;font-weight:600;left:1.5rem;letter-spacing:.02em;margin:0;text-shadow:0 2px 4px #0003,0 4px 12px #00000040,0 6px 20px #0003,0 0 40px #ffffff26}.landing-cta-group,.landing-page-title{position:absolute;top:1.5rem;z-index:11}.landing-cta-group{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:flex-end;max-width:calc(100vw - 3rem);right:1.5rem}button.sign-in-button{border:none;cursor:pointer;font:inherit}.sign-in-button{animation:fadeIn 1s ease-in;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border-radius:2rem;box-shadow:0 4px 12px #00000026;color:#2563eb;flex-shrink:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:1rem;font-weight:600;padding:.75rem 2rem;text-decoration:none;transition:all .3s ease;z-index:11}.sign-in-button:hover{background:#fff;box-shadow:0 6px 20px #0003;transform:translateY(-2px)}.title-container{left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:11}.main-title{animation:fadeIn 1.5s ease-in;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:4rem;font-weight:300;letter-spacing:.1em;margin:0;text-shadow:2px 2px 8px #0003}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width:768px){.landing-page-title{font-size:1.35rem;left:1rem;top:1rem}.landing-cta-group{gap:.5rem;max-width:calc(100vw - 2rem);right:1rem;top:1rem}.sign-in-button{font-size:.9rem;padding:.6rem 1.5rem}.main-title{font-size:2.5rem}}:root{--react-pdf-annotation-layer:1;--annotation-unfocused-field-background:url('data:image/svg+xml;charset=utf-8,<svg width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" style="fill:rgba(0,54,255,.13)"/></svg>');--input-focus-border-color:Highlight;--input-focus-outline:1px solid Canvas;--input-unfocused-border-color:#0000;--input-disabled-border-color:#0000;--input-hover-border-color:#000;--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 .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .textWidgetAnnotation :is(input,textarea):required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{left:0;pointer-events:none;position:absolute;top:0;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translateX(-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{height:100%;position:absolute;width:100%}.annotationLayer section{box-sizing:border-box;margin:0;pointer-events:auto;position:absolute;text-align:left;text-align:initial;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:none;outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{font-size:1em;height:100%;left:0;position:absolute;top:0;width:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{background:#ff0;box-shadow:0 2px 10px #ff0;opacity:.2}.annotationLayer .textAnnotation img{cursor:pointer;height:100%;left:0;position:absolute;top:0;width:100%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input,.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .textWidgetAnnotation :is(input,textarea){background-image:url('data:image/svg+xml;charset=utf-8,<svg width="1" height="1" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" style="fill:rgba(0,54,255,.13)"/></svg>');background-image:var(--annotation-unfocused-field-background);border:2px solid #0000;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 .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .textWidgetAnnotation :is(input,textarea):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 .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled]{background:none;border:2px solid #0000;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .textWidgetAnnotation :is(input,textarea):hover{border:2px solid #000;border:2px solid var(--input-hover-border-color)}.annotationLayer .buttonWidgetAnnotation.checkBox input:hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .textWidgetAnnotation :is(input,textarea):hover{border-radius:2px}.annotationLayer .choiceWidgetAnnotation select:focus,.annotationLayer .textWidgetAnnotation :is(input,textarea):focus{background:none;border:2px solid Highlight;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:1px solid Canvas;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-color:initial;background-image:none}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid Highlight;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:1px solid Canvas;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid Highlight;border:2px solid var(--input-focus-border-color);outline:1px solid Canvas;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{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;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{font-size:calc(9px*var(--total-scale-factor));min-width:calc(180px*var(--total-scale-factor));pointer-events:none;position:absolute;width:100%}.annotationLayer .popup{word-wrap:break-word;background-color:#ff9;border-radius:calc(2px*var(--total-scale-factor));box-shadow:0 calc(2px*var(--total-scale-factor)) calc(5px*var(--total-scale-factor)) #888;cursor:pointer;font:message-box;margin-left:calc(5px*var(--total-scale-factor));max-width:calc(180px*var(--total-scale-factor));padding:calc(6px*var(--total-scale-factor));pointer-events:auto;position:absolute;white-space:normal}.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 #333;margin-top:calc(2px*var(--total-scale-factor));padding-top:calc(2px*var(--total-scale-factor))}.annotationLayer .richText>*{font-size:calc(9px*var(--total-scale-factor));white-space:pre-wrap}.annotationLayer .caretAnnotation,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .fileAttachmentAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .highlightAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .lineAnnotation svg line,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .squareAnnotation svg rect,.annotationLayer .squigglyAnnotation,.annotationLayer .stampAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .underlineAnnotation{cursor:pointer}.annotationLayer section svg{height:100%;left:0;position:absolute;top:0;width:100%}.annotationLayer .annotationTextContent{color:#0000;height:100%;opacity:0;pointer-events:none;position:absolute;-webkit-user-select:none;user-select:none;width:100%}.annotationLayer .annotationTextContent span{display:inline-block;width:100%}:root{--react-pdf-text-layer:1;--highlight-bg-color:#b400aa;--highlight-selected-bg-color:#006400}@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) translateX(-100%)}.textLayer{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;inset:0;line-height:1;overflow:hidden;position:absolute;text-align:left;text-align:initial;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:#0000;cursor:text;margin:0;position:absolute;transform-origin:0 0;white-space:pre}.textLayer span.markedContent{height:0;top:0}.textLayer .highlight{background-color:#b400aa;background-color:var(--highlight-bg-color);border-radius:4px;margin:-1px;padding:1px}.textLayer .highlight.appended{position:static}.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:#006400;background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:#0000}.textLayer .endOfContent{cursor:default;display:block;inset:100% 0 0;position:absolute;-webkit-user-select:none;user-select:none;z-index:-1}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{display:none;height:0;left:0;position:absolute;top:0;width:0}.patreon-modal-backdrop{align-items:center;animation:patreonModalFadeIn .2s ease-out;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;display:flex;inset:0;justify-content:center;padding:1rem;pointer-events:auto;position:fixed;z-index:100}@keyframes patreonModalFadeIn{0%{opacity:0}to{opacity:1}}.patreon-modal{background:#fafafa;border-radius:1rem;box-shadow:0 25px 50px -12px #00000059;color:#111827;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;max-height:min(92vh,900px);overflow:hidden;width:min(920px,100%)}.patreon-modal-header{align-items:center;background:#fff;border-bottom:1px solid #00000014;display:flex;gap:1rem;justify-content:space-between;padding:1rem 1.25rem}.patreon-modal-title{font-size:1.25rem;font-weight:600;margin:0}.patreon-modal-close{background:#0000;border:none;border-radius:.5rem;color:#6b7280;cursor:pointer;flex-shrink:0;font-size:1.75rem;height:2.25rem;line-height:1;transition:background .15s ease,color .15s ease;width:2.25rem}.patreon-modal-close:hover{background:#0000000f;color:#111827}.patreon-modal-lead{color:#4b5563;font-size:.95rem;line-height:1.5;margin:0;padding:.75rem 1.25rem 0}.patreon-modal-tabs{display:flex;gap:.5rem;padding:.75rem 1.25rem 0}.patreon-modal-tab{background:#fff;border:1px solid #0000001f;border-radius:.5rem;color:#374151;cursor:pointer;flex:1 1;font-size:.9rem;font-weight:600;padding:.6rem .75rem;transition:background .15s ease,border-color .15s ease,color .15s ease}.patreon-modal-tab:hover{border-color:#93c5fd;color:#1d4ed8}.patreon-modal-tab.is-active{background:#eff6ff;border-color:#2563eb;color:#1d4ed8}.patreon-modal-panel{flex:1 1;min-height:0;overflow:auto;padding:1rem 1.25rem}.patreon-modal-video-wrap{aspect-ratio:16/9;background:#000;border-radius:.5rem;overflow:hidden;position:relative;width:100%}.patreon-modal-video{border:0;height:100%;inset:0;position:absolute;width:100%}.patreon-modal-pdf{align-items:center;display:flex;flex-direction:column;gap:1rem}.patreon-modal-pdf-page{background:#525252;border-radius:.5rem;box-shadow:0 4px 24px #0000001f;max-width:100%;overflow:auto}.patreon-modal-pdf-page canvas{display:block;height:auto!important;max-width:100%}.patreon-modal-pdf-nav{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.patreon-modal-nav-btn{background:#fff;border:1px solid #00000026;border-radius:.5rem;cursor:pointer;font-size:.9rem;font-weight:600;padding:.5rem 1rem;transition:background .15s ease,border-color .15s ease}.patreon-modal-nav-btn:hover:not(:disabled){border-color:#2563eb;color:#1d4ed8}.patreon-modal-nav-btn:disabled{cursor:not-allowed;opacity:.45}.patreon-modal-pdf-counter{font-feature-settings:"tnum";color:#4b5563;font-size:.9rem;font-variant-numeric:tabular-nums}.patreon-modal-pdf-fallback,.patreon-modal-pdf-status{color:#4b5563;font-size:.95rem;line-height:1.5;margin:0;max-width:36rem;text-align:center}.patreon-modal-pdf-fallback a{color:#2563eb;font-weight:600}.patreon-modal-code{background:#0000000f;border-radius:.25rem;font-size:.85em;padding:.1em .35em}.patreon-modal-footer{background:#fff;border-top:1px solid #00000014;padding:1rem 1.25rem 1.25rem}.patreon-modal-primary{background:#2563eb;border-radius:.5rem;box-shadow:0 2px 8px #2563eb59;color:#fff;display:block;font-size:1rem;font-weight:600;padding:.85rem 1.25rem;text-align:center;text-decoration:none;transition:background .2s ease,transform .15s ease,box-shadow .2s ease;width:100%}.patreon-modal-primary:hover{background:#1d4ed8;box-shadow:0 4px 14px #2563eb73;transform:translateY(-1px)}@media (max-width:640px){.patreon-modal-title{font-size:1.1rem}.patreon-modal-tabs{flex-direction:column}}.auth-container{align-items:center;display:flex;justify-content:center;min-height:100vh;overflow-x:hidden;overflow-y:auto;padding:1.5rem 1rem;position:relative;width:100vw}.auth-background{background-position:50%;background-repeat:no-repeat;background-size:cover;height:110vh;left:-5%;overflow:hidden;position:fixed;top:-5%;transition:transform .1s ease-out;width:110vw;will-change:transform;z-index:0}.auth-container .background-overlay{background:linear-gradient(180deg,#0000004d 0,#0006 50%,#00000080);height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.auth-content-layer{max-width:500px;position:relative;width:100%;z-index:10}.auth-card{animation:slideUp .5s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:1rem;box-shadow:0 20px 40px #0000004d;padding:2rem;width:100%}.auth-header{margin-bottom:1.5rem;text-align:center}.auth-header h1{color:#1f2937;font-size:2rem;font-weight:700;margin:0 0 .5rem}.auth-header p{color:#6b7280;font-size:1rem;margin:0}.error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;color:#dc2626;font-size:.875rem;margin-bottom:1.25rem;padding:.75rem 1rem}.auth-form{display:flex;flex-direction:column;gap:1.25rem}.form-group input{background:#f9fafb;padding:.75rem 1rem}.form-group input:focus{background:#fff;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group input::placeholder{color:#9ca3af}.checkbox-group{gap:.75rem}.checkbox-label input[type=checkbox]{accent-color:#2563eb;height:1.25rem;width:1.25rem}.auth-button{background:#2563eb;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.25rem;padding:.875rem 1.5rem;transition:background-color .2s ease,transform .2s ease}.auth-button:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.auth-button:disabled{background:#9ca3af;cursor:not-allowed;transform:none}.auth-footer{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1.25rem;text-align:center}.auth-footer p{color:#6b7280;font-size:.875rem;margin:.5rem 0}.auth-link{color:#2563eb;font-weight:600;text-decoration:none;transition:color .2s ease}.auth-link:hover{color:#1d4ed8;text-decoration:underline}.oauth-divider{align-items:center;color:#6b7280;display:flex;font-size:.875rem;margin:1.25rem 0;text-align:center}.oauth-divider:after,.oauth-divider:before{border-bottom:1px solid #e5e7eb;content:"";flex:1 1}.oauth-divider span{padding:0 1rem}.patreon-oauth-button{align-items:center;background:#ff424d;border:none;border-radius:.5rem;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.75rem;justify-content:center;margin-top:.25rem;padding:.875rem 1.5rem;transition:background-color .2s ease,transform .2s ease;width:100%}.patreon-oauth-button:hover{background:#e63946;transform:translateY(-1px)}.patreon-oauth-button svg{flex-shrink:0}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.auth-container{align-items:flex-start;padding:2rem 1rem}.auth-card{padding:2rem 1.5rem}.auth-header h1{font-size:1.75rem}}.patreon-config{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:.75rem;box-shadow:var(--shadow-sm);margin-bottom:2rem;transition:background-color .3s ease,border-color .3s ease}.config-header{border-bottom:1px solid #e2e8f0;padding:1.5rem}.config-header h3{color:#1a202c;font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.config-header p{color:#4a5568;font-size:.875rem;margin:0}.config-form{padding:1.5rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block}.form-group input{box-sizing:border-box;width:100%}.help-text{color:#6b7280;display:block;font-size:.875rem;margin-top:.5rem}.help-text a{color:#3182ce;text-decoration:none}.help-text a:hover{text-decoration:underline}.btn-primary{border:none;border-radius:.5rem;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:background-color .2s ease}.campaign-info{padding:1.5rem}.campaign-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.campaign-header h4{color:#1a202c;font-size:1.125rem;font-weight:600;margin:0}.btn-secondary{border:none;border-radius:.375rem;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:background-color .2s ease}.campaign-details{grid-gap:1rem;display:grid;gap:1rem}.campaign-item{display:flex;flex-direction:column;gap:.25rem}.campaign-item label{color:#4a5568;font-size:.875rem;font-weight:600}.campaign-item span{color:#1a202c;font-size:1rem}.campaign-item a{color:#3182ce;font-size:1rem;text-decoration:none}.campaign-item a:hover{text-decoration:underline}.config-help{background:var(--bg-secondary);border-top:1px solid var(--border-primary);padding:1.5rem;transition:background-color .3s ease,border-color .3s ease}.loading-status{color:var(--text-secondary);padding:2rem;text-align:center}.loading-status p{font-size:1rem;margin:0}.config-help h4{color:#1a202c;font-size:1rem;font-weight:600;margin:0 0 1rem}.config-help ol{color:#4a5568;margin:0 0 1rem;padding-left:1.5rem}.config-help li{font-size:.875rem;margin-bottom:.5rem}.config-help a{color:#3182ce;text-decoration:none}.config-help a:hover{text-decoration:underline}.security-note{background:#e6fffa;border:1px solid #81e6d9;border-radius:.5rem;color:#234e52;font-size:.875rem;font-weight:500;margin:0;padding:.75rem}.error-banner,.success-banner{margin:1rem 1.5rem}@media (max-width:768px){.campaign-header{align-items:flex-start;flex-direction:column;gap:1rem}.config-help ol{padding-left:1rem}}.patreon-subscribers{background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem}.subscribers-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;padding:1.5rem}.subscribers-header h3{color:#1a202c;font-size:1.25rem;font-weight:600;margin:0}.header-controls{align-items:center;flex-wrap:wrap}.filter-controls,.header-controls{display:flex;gap:1rem}.filter-label{align-items:center;color:#4a5568;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem}.filter-label input[type=radio]{accent-color:#3182ce;cursor:pointer;margin:0}.btn-sync{background:#38a169;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .2s ease}.btn-sync:hover:not(:disabled){background:#2f855a}.btn-sync:disabled{background:#a0aec0;cursor:not-allowed}.subscribers-stats{background:#f7fafc;border-bottom:1px solid #e2e8f0;display:flex;gap:2rem;padding:1rem 1.5rem}.stat-item{display:flex;flex-direction:column;gap:.25rem}.stat-label{color:#4a5568;font-size:.875rem;font-weight:500}.stat-value{color:#1a202c;font-size:1.125rem;font-weight:600}.patrons-table-container{overflow-x:auto}.patrons-table{border-collapse:collapse;width:100%}.patrons-table td,.patrons-table th{border-bottom:1px solid #e2e8f0;padding:1rem;text-align:left}.patrons-table th{background:#f7fafc;color:#4a5568;font-size:.875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.patrons-table th.sortable{position:relative;transition:background-color .2s ease}.patrons-table th.sortable:hover{background:#edf2f7}.patrons-table th .sort-icon{display:inline-block;font-size:.875rem;margin-left:.5rem;opacity:.6;transition:opacity .2s ease}.patrons-table th.sortable:hover .sort-icon{opacity:1}.patrons-table td{color:#2d3748}.patron-name{align-items:center;display:flex;gap:.75rem}.patron-avatar{border-radius:50%;height:2rem;object-fit:cover;width:2rem}.status-badge.active{background:#c6f6d5;color:#2f855a}.tier-info{display:flex;flex-direction:column;gap:.25rem}.tier-badge{background:#bee3f8;color:#2b6cb0;display:inline-block;font-size:.75rem;padding:.25rem .5rem}.btn-view,.tier-badge{border-radius:.375rem;font-weight:500}.btn-view{background:#3182ce;color:#fff;font-size:.875rem;padding:.375rem .75rem;text-decoration:none;transition:background-color .2s ease}.btn-view:hover{background:#2c5282}.no-patrons{align-items:center;color:#4a5568;display:flex;font-size:1rem;height:200px;justify-content:center}@media (max-width:768px){.subscribers-header{align-items:flex-start;flex-direction:column}.header-controls{justify-content:space-between;width:100%}.subscribers-stats{flex-direction:column;gap:1rem}.patrons-table td,.patrons-table th{font-size:.875rem;padding:.75rem .5rem}.patron-name{align-items:flex-start;flex-direction:column;gap:.5rem}.patron-avatar{height:1.5rem;width:1.5rem}}.subscription-alerts{background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem}.alerts-header{align-items:center;background:#fef5e7;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:1.5rem}.alerts-header h3{color:#d69e2e;font-size:1.25rem;font-weight:600;margin:0}.btn-refresh{background:#d69e2e;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .2s ease}.btn-refresh:hover{background:#b7791f}.alerts-info{background:#f7fafc;border-bottom:1px solid #e2e8f0;padding:1rem 1.5rem}.alerts-info p{color:#4a5568;font-size:.875rem;line-height:1.5;margin:0}.no-alerts{color:#4a5568;padding:3rem 1.5rem;text-align:center}.no-alerts p{font-size:1rem;margin:.5rem 0}.alerts-summary{background:#f7fafc;border-bottom:1px solid #e2e8f0;display:flex;gap:2rem;padding:1rem 1.5rem}.summary-item{display:flex;flex-direction:column;gap:.25rem}.summary-label{color:#4a5568;font-size:.875rem;font-weight:500}.summary-value{color:#d69e2e;font-size:1.125rem;font-weight:600}.alerts-table-container{overflow-x:auto}.alerts-table{border-collapse:collapse;width:100%}.alerts-table td,.alerts-table th{border-bottom:1px solid #e2e8f0;padding:1rem;text-align:left}.alerts-table th{background:#f7fafc;color:#4a5568;font-size:.875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.alerts-table th.sortable{position:relative;transition:background-color .2s ease}.alerts-table th.sortable:hover{background:#edf2f7}.alerts-table th .sort-icon{display:inline-block;font-size:.875rem;margin-left:.5rem;opacity:.6;transition:opacity .2s ease}.alerts-table th.sortable:hover .sort-icon{opacity:1}.alerts-table td{color:#2d3748}.user-info{display:flex;flex-direction:column;gap:.25rem}.username{color:#1a202c;font-weight:500}.status-badge{border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:.25rem .75rem;text-transform:uppercase}.status-badge.declined{background:#fed7d7;color:#c53030}.status-badge.former{background:#e2e8f0;color:#4a5568}.status-badge.unknown{background:#fef5e7;color:#d69e2e}.btn-clear{background:#38a169;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.375rem .75rem;transition:background-color .2s ease}.btn-clear:hover{background:#2f855a}.error-banner{align-items:center;border-radius:.5rem;display:flex;font-weight:500;justify-content:space-between;margin:1rem 1.5rem;padding:1rem}@media (max-width:768px){.alerts-header{align-items:flex-start}.alerts-header,.alerts-summary{flex-direction:column;gap:1rem}.alerts-table td,.alerts-table th{font-size:.875rem;padding:.75rem .5rem}}.dashboard-container{background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh;transition:background-color .3s ease,color .3s ease}.dashboard-header{background:var(--bg-card);border-bottom:1px solid var(--border-primary);box-shadow:var(--shadow-sm);padding:1rem 0;transition:background-color .3s ease,border-color .3s ease}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:0 2rem}.dashboard-header h1{color:var(--text-primary);font-size:1.875rem;font-weight:700;margin:0}.dashboard-tabs{background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);display:flex;transition:background-color .3s ease,border-color .3s ease}.tab-button{background:none;border:none;border-bottom:2px solid #0000;color:var(--text-secondary);cursor:pointer;font-size:.875rem;font-weight:500;padding:1rem 1.5rem;transition:all .2s ease}.tab-button:hover{background:var(--bg-hover);color:var(--text-primary)}.tab-button.active{background:var(--bg-card);border-bottom-color:var(--accent-primary);color:var(--accent-primary)}.header-actions{align-items:center;display:flex;gap:1rem}.welcome-text{color:#4a5568;font-weight:500}.logout-btn{background:#e53e3e;border:none;border-radius:.375rem;color:#fff;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:background-color .2s ease}.logout-btn:hover{background:#c53030}.dashboard-main{margin:0 auto;max-width:1200px;padding:2rem}.error-banner,.success-banner{align-items:center;border-radius:.5rem;display:flex;font-weight:500;justify-content:space-between;margin-bottom:1.5rem;padding:1rem}.error-banner{background:#fed7d7;border:1px solid #feb2b2;color:#c53030}.success-banner{background:#c6f6d5;border:1px solid #9ae6b4;color:#2f855a}.close-btn{background:none;border:none;color:inherit;cursor:pointer;font-size:1.25rem;height:1.5rem;padding:0;width:1.5rem}.close-btn,.loading{align-items:center;display:flex;justify-content:center}.loading{color:#4a5568;font-size:1.125rem;height:200px}.stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.stat-card h3,.stat-card h4{color:#4a5568;font-size:.875rem;font-weight:600;letter-spacing:.05em;margin:0 0 .5rem;text-transform:uppercase}.stat-number{color:#1a202c;font-size:2rem;font-weight:700;margin:0}.stat-card p{color:#1a202c;font-weight:500;margin:0}.users-section{background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;overflow:hidden}.users-section h2{border-bottom:1px solid #e2e8f0;color:#1a202c;font-size:1.25rem;font-weight:600;margin:0;padding:1.5rem}.users-table-container{overflow-x:auto}.users-table{border-collapse:collapse;width:100%}.users-table td,.users-table th{border-bottom:1px solid #e2e8f0;padding:1rem;text-align:left}.users-table th{background:#f7fafc;color:#4a5568;font-size:.875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.users-table th.sortable{position:relative;transition:background-color .2s ease}.users-table th.sortable:hover{background:#edf2f7}.users-table th .sort-icon{display:inline-block;font-size:.875rem;margin-left:.5rem;opacity:.6;transition:opacity .2s ease}.users-table th.sortable:hover .sort-icon{opacity:1}.users-table td{color:#2d3748}.user-type{border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:.25rem .75rem;text-transform:uppercase}.user-type.free{background:#bee3f8;color:#2b6cb0}.user-type.premium{background:#c6f6d5;color:#2f855a}.admin-badge{border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:.25rem .75rem;text-transform:uppercase}.admin-badge.admin{background:#fbb6ce;color:#b83280}.admin-badge.user{background:#e2e8f0;color:#4a5568}.action-buttons{display:flex;gap:.5rem}.btn-delete,.btn-edit{border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;padding:.375rem .75rem;transition:all .2s ease}.btn-edit{background:#3182ce;color:#fff}.btn-edit:hover{background:#2c5282}.btn-delete{background:#e53e3e;color:#fff}.btn-delete:hover{background:#c53030}.profile-section{background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem}.profile-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:1.5rem}.profile-header h2{color:#1a202c;font-size:1.25rem;font-weight:600;margin:0}.profile-form{padding:1.5rem}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-bottom:1rem}.form-group{display:flex;flex-direction:column}.form-group label{color:#374151;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.form-group input{border:2px solid #e5e7eb;border-radius:.5rem;font-size:1rem;padding:.75rem;transition:border-color .2s ease,box-shadow .2s ease}.form-group input:focus{border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a;outline:none}.checkbox-group{align-items:center;flex-direction:row;gap:.5rem}.checkbox-label{align-items:center;color:#374151;cursor:pointer;display:flex;font-weight:500;gap:.5rem;margin-bottom:0!important}.checkbox-label input[type=checkbox]{accent-color:#3182ce;cursor:pointer;height:1rem;margin:0;width:1rem}.form-actions{border-top:1px solid #e2e8f0;display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.5rem}.btn-primary,.btn-secondary{border:none;border-radius:.5rem;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.btn-primary{background:#3182ce;color:#fff}.btn-primary:hover:not(:disabled){background:#2c5282}.btn-primary:disabled{background:#a0aec0;cursor:not-allowed}.btn-secondary{background:#e2e8f0;color:#4a5568}.btn-secondary:hover{background:#cbd5e0}.btn-link-patreon{align-items:center;background:#ff424d;border:none;border-radius:.375rem;color:#fff;cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .2s ease,transform .2s ease}.btn-link-patreon:hover{background:#e63946;transform:translateY(-1px)}.btn-link-patreon svg{flex-shrink:0}.profile-info{padding:1.5rem}.info-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.info-item{display:flex;flex-direction:column}.info-item label{color:#4a5568;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.info-item p{color:#1a202c;font-size:1rem;margin:0}.password-header{margin:10px;>button{margin:10px}}.status{border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:.25rem .75rem;text-transform:uppercase}.status.free{background:#bee3f8;color:#2b6cb0}.status.premium{background:#c6f6d5;color:#2f855a}.account-stats{background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.account-stats h3{color:#1a202c;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:.75rem;box-shadow:0 25px 50px #00000040;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:1.5rem}.modal-header h3{color:#1a202c;font-size:1.25rem;font-weight:600;margin:0}.modal-form{padding:1.5rem}.modal-actions{border-top:1px solid #e2e8f0;display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.5rem}.modal-actions button{border:none;border-radius:.5rem;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.modal-actions button:first-child{background:#e2e8f0;color:#4a5568}.modal-actions button:first-child:hover{background:#cbd5e0}.modal-actions .btn-primary{background:#3182ce;color:#fff}.modal-actions .btn-primary:hover{background:#2c5282}.patreon-section{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:.5rem;margin-top:2rem;padding:1.5rem;transition:background-color .3s ease,border-color .3s ease}.patreon-section h3{color:var(--text-primary);font-size:1.5rem;font-weight:600;margin:0 0 1rem}.rss-link-container{margin-bottom:1.5rem}.rss-link{align-items:center;background:#ff424d;border-radius:.375rem;color:#fff;display:inline-flex;font-weight:500;padding:.5rem 1rem;text-decoration:none;transition:background-color .2s ease,transform .2s ease}.rss-link:hover{background:#e63946;transform:translateY(-1px)}.rss-link svg{flex-shrink:0}.patreon-posts h4{color:var(--text-primary);font-size:1.125rem;font-weight:600;margin:0 0 1rem}.posts-list{display:flex;flex-direction:column;gap:1rem}.post-item{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:.375rem;padding:1rem;transition:background-color .3s ease,border-color .3s ease}.post-item h5{font-size:1rem;font-weight:600;margin:0 0 .5rem}.post-link{color:#3182ce;color:var(--accent-primary,#3182ce);text-decoration:none;transition:color .2s ease}.post-link:hover{color:#2c5282;color:var(--accent-hover,#2c5282);text-decoration:underline}.post-date{color:var(--text-secondary);font-size:.875rem;margin:.25rem 0}.post-description{margin:.5rem 0 0}.post-description,.posts-unavailable{color:var(--text-secondary);font-size:.875rem;line-height:1.5}.posts-unavailable{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:.375rem;margin:0;padding:1rem;text-align:center}@media (max-width:768px){.header-content{flex-direction:column;gap:1rem;padding:0 1rem;text-align:center}.dashboard-main{padding:1rem}.form-row,.info-grid,.stats-grid{grid-template-columns:1fr}.users-table-container{font-size:.875rem}.users-table td,.users-table th{padding:.75rem .5rem}.action-buttons,.form-actions{flex-direction:column}.modal{margin:1rem}}.App{background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;transition:background-color .3s ease,color .3s ease}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;padding:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}h1,h2,h3,h4,h5,h6,ol,p,ul{margin:0;padding:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}:root{--bg-primary:#fff;--bg-secondary:#f7fafc;--bg-tertiary:#edf2f7;--bg-card:#fff;--bg-hover:#f7fafc;--bg-input:#fff;--bg-button:#3182ce;--bg-button-hover:#2c5aa0;--bg-button-secondary:#e2e8f0;--bg-button-secondary-hover:#cbd5e0;--bg-success:#c6f6d5;--bg-error:#fed7d7;--bg-warning:#fef5e7;--bg-info:#bee3f8;--text-primary:#1a202c;--text-secondary:#4a5568;--text-tertiary:#718096;--text-inverse:#fff;--text-success:#22543d;--text-error:#c53030;--text-warning:#d69e2e;--text-info:#2b6cb0;--border-primary:#e2e8f0;--border-secondary:#cbd5e0;--border-focus:#3182ce;--border-error:#feb2b2;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;--accent-primary:#3182ce;--accent-secondary:#d69e2e;--accent-success:#38a169;--accent-error:#e53e3e;--accent-warning:#d69e2e;--accent-info:#3182ce;--status-free:#e2e8f0;--status-premium:#c6f6d5;--status-admin:#fbb6ce;--status-user:#e2e8f0}[data-theme=dark]{--bg-primary:#1a202c;--bg-secondary:#2d3748;--bg-tertiary:#4a5568;--bg-card:#2d3748;--bg-hover:#4a5568;--bg-input:#2d3748;--bg-button:#3182ce;--bg-button-hover:#2c5aa0;--bg-button-secondary:#4a5568;--bg-button-secondary-hover:#718096;--bg-success:#22543d;--bg-error:#742a2a;--bg-warning:#744210;--bg-info:#2a4365;--text-primary:#f7fafc;--text-secondary:#e2e8f0;--text-tertiary:#a0aec0;--text-inverse:#1a202c;--text-success:#9ae6b4;--text-error:#feb2b2;--text-warning:#fbd38d;--text-info:#90cdf4;--border-primary:#4a5568;--border-secondary:#718096;--border-focus:#3182ce;--border-error:#feb2b2;--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #0006,0 2px 4px -1px #0000004d;--shadow-lg:0 10px 15px -3px #0006,0 4px 6px -2px #0000004d;--shadow-xl:0 20px 25px -5px #0006,0 10px 10px -5px #0000004d;--accent-primary:#3182ce;--accent-secondary:#d69e2e;--accent-success:#38a169;--accent-error:#e53e3e;--accent-warning:#d69e2e;--accent-info:#3182ce;--status-free:#4a5568;--status-premium:#22543d;--status-admin:#b83280;--status-user:#4a5568}*{box-sizing:border-box}body{background-color:#fff;background-color:var(--bg-primary);transition:background-color .3s ease,color .3s ease}.theme-toggle,body{color:#1a202c;color:var(--text-primary)}.theme-toggle{align-items:center;background:#e2e8f0;background:var(--bg-button-secondary);border:1px solid #e2e8f0;border:1px solid var(--border-primary);border-radius:.375rem;cursor:pointer;display:flex;font-size:1.25rem;height:2.5rem;justify-content:center;padding:.5rem;transition:all .2s ease;width:2.5rem}.theme-toggle:hover{background:#cbd5e0;background:var(--bg-button-secondary-hover);transform:scale(1.05)}.theme-toggle:focus{box-shadow:0 0 0 3px #3182ce;box-shadow:0 0 0 3px var(--border-focus);outline:none}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease}
/*# sourceMappingURL=main.6d41d1bc.css.map*/