: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{--color-bg: #faf7f1;--color-surface: #ffffff;--color-surface-hover: #f1ebe0;--color-border: #e2d9c8;--color-text: #292420;--color-muted: #756c60;--color-muted-strong: #5c544a;--color-accent: #8f1d35;--color-accent-hover: #75152b;--color-accent-muted: color-mix(in srgb, var(--color-accent) 12%, transparent);--color-on-accent: #fff;--color-error: #dc2626;--color-error-muted: color-mix(in srgb, var(--color-error) 12%, transparent);--color-success: #15803d;--color-warning: #b45309;--color-info: #1d4ed8;--color-gold: #a16207;--color-gold-muted: color-mix(in srgb, var(--color-gold) 14%, transparent);--color-purple: #7e22ce;--color-purple-muted: color-mix(in srgb, var(--color-purple) 12%, transparent);--tint-1: rgba(60, 48, 30, .05);--tint-2: rgba(60, 48, 30, .08);--tint-3: rgba(60, 48, 30, .11);--tint-border-faint: rgba(60, 48, 30, .12);--tint-border: rgba(60, 48, 30, .2);--scrim: rgba(30, 24, 16, .45);--shadow-page: 0 1px 2px rgba(41, 36, 32, .08), 0 8px 20px rgba(41, 36, 32, .1);--shadow-pop: 0 10px 30px rgba(41, 36, 32, .16);--shadow-dock: 0 -6px 24px rgba(41, 36, 32, .12);--viewer-bg: #e7e1d4;--viewer-header-bg: linear-gradient(160deg, rgba(250, 247, 241, .97) 0%, rgba(250, 247, 241, .86) 100%);--editor-scrim: rgba(250, 247, 241, .97);--fg-bright: #292420;--fg-strong: rgba(41, 36, 32, .85);--fg-medium: rgba(41, 36, 32, .62);--fg-muted: rgba(41, 36, 32, .5);--fg-faint: rgba(41, 36, 32, .38);--voice-soprano: #a21caf;--voice-alto: #be123c;--voice-tenor: #1d4ed8;--voice-bass: #047857;--status-active: var(--color-success);--status-paused: var(--color-warning);--status-leave: var(--color-info);--status-left: var(--color-muted-strong);--event-rehearsal: var(--color-info);--event-concert: #b45309;--event-other: #6d28d9;--job-queued: var(--color-warning);--job-processing: var(--color-info);--job-done: var(--color-success);--job-failed: var(--color-error);--job-cancelled: var(--color-muted-strong);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 14px;--radius-pill: 999px;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.75rem;--transition: .15s;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color-scheme:light}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);min-height:100dvh}.app-layout{display:flex;flex-direction:column;min-height:100dvh}.main-content{flex:1;padding:var(--space-6) var(--space-4);max-width:900px;margin:0 auto;width:100%}.page{display:flex;flex-direction:column;gap:var(--space-6)}.page h2{font-size:var(--text-xl);font-weight:700}.page h3{font-size:var(--text-base);font-weight:600;color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em}.page-header{display:flex;justify-content:space-between;align-items:center}.navbar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.navbar-brand{display:flex;align-items:center;gap:.4rem;font-weight:700;font-size:1.1rem;color:var(--color-accent);margin-right:auto}.nav-links{display:flex;gap:.25rem}.nav-link{display:flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:6px;color:var(--color-muted);text-decoration:none;font-size:.875rem;transition:color .15s,background .15s}.nav-link:hover{color:var(--color-text);background:var(--tint-2)}.nav-link.active{color:var(--color-accent);background:var(--color-accent-muted)}.public-layout{display:flex;flex-direction:column;min-height:100dvh}.public-header{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.public-header .navbar-brand{text-decoration:none}.public-nav-links{display:flex;gap:var(--space-1);margin-left:auto;margin-right:var(--space-2)}.public-main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:var(--space-8) var(--space-4)}.public-footer{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);color:var(--color-muted);font-size:var(--text-sm)}.public-footer a{color:var(--color-muted);text-decoration:none}.public-footer a:hover{color:var(--color-text)}.hero{display:flex;flex-direction:column;gap:var(--space-5);padding:var(--space-8) 0}.hero h1{font-size:var(--text-2xl);font-weight:800}.hero-lead{color:var(--color-muted);font-size:var(--text-lg);line-height:1.6;max-width:48ch}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}.prose{display:flex;flex-direction:column;gap:var(--space-4);line-height:1.7}.prose h1{font-size:var(--text-xl);font-weight:700}.prose p{color:var(--color-muted)}.prose a{color:var(--color-accent)}.btn-primary,.btn-secondary,.btn-ghost{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);border:none;cursor:pointer;font-size:var(--text-sm);font-weight:500;transition:opacity var(--transition),background var(--transition);text-decoration:none}.btn-primary{background:var(--color-accent);color:var(--color-on-accent)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover)}.btn-primary:disabled,.btn-secondary:disabled,.btn-ghost:disabled{opacity:.5;cursor:default}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-hover)}.btn-ghost{background:transparent;color:var(--color-muted)}.btn-ghost:hover:not(:disabled){color:var(--color-text);background:var(--tint-2)}.btn-sm{padding:var(--space-1) .65rem;font-size:.8rem}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex-shrink:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--fg-medium);cursor:pointer;transition:background var(--transition),color var(--transition)}.icon-btn:hover:not(:disabled){background:var(--tint-2);color:var(--fg-bright)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.sm{width:30px;height:30px;border-radius:var(--radius-sm)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.pulse{animation:pulse 1.1s ease-in-out infinite}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--space-4)}.modal-box{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-6);width:480px;max-width:95vw;max-height:90vh;display:flex;flex-direction:column;gap:var(--space-5);overflow:auto}.modal-header{display:flex;align-items:center;justify-content:space-between}.modal-header h3{margin:0}.input{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);border-radius:7px;padding:.6rem .9rem;font-size:.9rem;width:100%;outline:none}.input:focus{border-color:var(--color-accent)}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:2rem;width:100%;max-width:380px;display:flex;flex-direction:column;gap:1.25rem}.login-card h1{font-size:1.75rem;font-weight:800;color:var(--color-accent);text-align:center}.login-card .subtitle{text-align:center;color:var(--color-muted);font-size:.9rem;margin-top:-.5rem}.tab-row{display:flex;gap:.5rem}.tab-btn{flex:1;padding:.5rem;border-radius:7px;border:1px solid var(--color-border);background:transparent;color:var(--color-muted);cursor:pointer;font-size:.875rem}.tab-btn.active{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.filter-row{display:flex;flex-wrap:wrap;gap:.5rem}.filter-btn{padding:.3rem .75rem;border-radius:20px;border:1px solid var(--color-border);background:transparent;color:var(--color-muted);cursor:pointer;font-size:.8rem}.filter-btn.active{background:var(--color-accent);color:var(--color-on-accent);border-color:var(--color-accent)}.member-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem}.member-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:.85rem;display:flex;gap:.75rem;align-items:flex-start}.member-avatar{width:38px;height:38px;border-radius:50%;background:var(--color-accent);color:var(--color-on-accent);font-weight:700;font-size:.8rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.member-name{font-weight:600;font-size:.9rem}.member-meta{font-size:.78rem;color:var(--color-muted);margin-top:.15rem}.badge-you{font-size:.65rem;background:var(--color-accent);color:var(--color-on-accent);padding:.1rem .4rem;border-radius:10px;margin-left:.4rem;vertical-align:middle}.event-list{display:flex;flex-direction:column;gap:.75rem}.event-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;display:flex;overflow:hidden}.event-type-bar{width:4px;flex-shrink:0}.event-content{padding:.85rem 1rem;display:flex;flex-direction:column;gap:.35rem;flex:1}.event-content h3{font-size:1rem;font-weight:600}.event-meta{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--color-muted)}.event-description{font-size:.85rem;color:var(--color-muted)}.calendar-header{display:flex;justify-content:space-between;align-items:center}.calendar-title{font-size:var(--text-lg);font-weight:700}.calendar-nav{display:flex;gap:var(--space-1)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;gap:1px;background:var(--color-border)}.calendar-grid>*{background:var(--color-surface)}.calendar-weekday{padding:var(--space-2) 0;text-align:center;font-size:var(--text-xs);font-weight:600;color:var(--color-muted);text-transform:uppercase;letter-spacing:.05em}.calendar-day{border:none;cursor:pointer;font:inherit;color:inherit;text-align:left;min-height:5.5rem;padding:var(--space-1);display:flex;flex-direction:column;gap:var(--space-1);transition:background var(--transition)}.calendar-day:hover{background:var(--color-surface-hover)}.calendar-day.outside .calendar-day-num{color:var(--color-muted);opacity:.5}.calendar-day.selected{background:var(--color-accent-muted)}.calendar-day-num{font-size:var(--text-xs);font-weight:600;width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.calendar-day.today .calendar-day-num{background:var(--color-accent);color:var(--color-on-accent)}.calendar-day-events{display:flex;flex-direction:column;gap:2px;min-width:0}.calendar-chip{display:flex;align-items:center;gap:.3rem;padding:.1rem .3rem;border-radius:4px;font-size:.7rem;min-width:0}.calendar-chip-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.calendar-chip-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-empty{color:var(--color-muted);font-size:var(--text-sm)}@media (max-width: 600px){.calendar-day{min-height:3.25rem;align-items:center}.calendar-day-events{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:3px}.calendar-chip{padding:0;background:none!important}.calendar-chip-title{display:none}}.wiki-list{display:flex;flex-direction:column;gap:.5rem}.wiki-list-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;text-decoration:none;color:var(--color-text);transition:border-color .15s}.wiki-list-item:hover{border-color:var(--color-accent)}.wiki-date{font-size:.78rem;color:var(--color-muted)}.wiki-detail .wiki-toolbar{display:flex;justify-content:space-between;align-items:center}.wiki-content{line-height:1.7}.wiki-content h1,.wiki-content h2,.wiki-content h3{margin:1rem 0 .5rem}.wiki-content p{margin-bottom:.75rem;color:var(--color-muted)}.wiki-content code{background:var(--tint-3);padding:.1em .4em;border-radius:3px;font-size:.85em}.wiki-content pre{background:var(--tint-2);padding:1rem;border-radius:8px;overflow-x:auto}.wiki-editor{width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);padding:1rem;font-family:monospace;font-size:.9rem;line-height:1.6;resize:vertical;outline:none}.wiki-editor:focus{border-color:var(--color-accent)}.wiki-actions{display:flex;gap:.5rem;margin-top:.75rem}.file-list{display:flex;flex-direction:column;gap:.5rem}.file-card{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px}.file-name{flex:1;font-size:.9rem}.popover{position:relative;display:inline-flex}.popover-panel{position:absolute;top:calc(100% + 8px);z-index:60;min-width:250px;max-width:min(340px,calc(100vw - 1.5rem));padding:var(--space-2);display:flex;flex-direction:column;gap:2px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);animation:pop-in .14s ease-out}.popover-panel.align-right{right:0}.popover-panel.align-left{left:0}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.menu-item{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .6rem;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text);font:inherit;font-size:.85rem;text-align:left;cursor:pointer;transition:background var(--transition)}.menu-item:hover:not(:disabled){background:var(--tint-2)}.menu-item:disabled{opacity:.4;cursor:default}.menu-item.accent{color:var(--color-purple)}.menu-item.danger{color:var(--color-error)}.menu-item svg{flex-shrink:0}.menu-hint{margin-left:auto;font-size:.72rem;color:var(--color-muted)}.menu-label{padding:.45rem .6rem .2rem;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}.menu-sep{height:1px;background:var(--color-border);margin:.35rem 0}.menu-engines{display:flex;align-items:center;gap:.4rem;padding:0 .6rem .3rem 2.15rem;font-size:.72rem;color:var(--color-muted)}.menu-engines button{padding:.1rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:transparent;color:var(--color-muted);font:inherit;font-size:.72rem;cursor:pointer}.menu-engines button:hover{color:var(--color-purple);border-color:color-mix(in srgb,var(--color-purple) 40%,transparent)}.menu-note{padding:.3rem .6rem .4rem;font-size:.72rem;line-height:1.5;color:var(--color-muted)}.menu-note.danger{color:var(--color-error)}.sheet-viewer{height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--viewer-bg)}.sv-topbar{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0;padding:var(--space-2) var(--space-4);min-height:62px;background:var(--viewer-header-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--tint-border-faint);z-index:30}.sv-heading{flex:1;min-width:0}.sv-title{font-size:1rem;font-weight:650;color:var(--fg-bright);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sv-sub{display:flex;align-items:center;gap:var(--space-2);margin-top:1px;font-size:var(--text-xs);color:var(--fg-muted);min-width:0}.sv-composer{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sv-key{flex-shrink:0;padding:.05rem .45rem;border-radius:var(--radius-pill);background:var(--color-gold-muted);color:var(--color-gold);font-weight:600}.sv-pagecount{flex-shrink:0;color:var(--fg-faint)}.sv-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.pitch-btn{display:flex;align-items:stretch;border-radius:var(--radius-pill);background:var(--color-gold-muted);color:var(--color-gold);overflow:hidden}.pitch-btn button{display:flex;align-items:center;gap:.4rem;height:38px;padding:0 .85rem;border:none;background:transparent;color:inherit;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:background var(--transition)}.pitch-btn button:hover:not(:disabled){background:color-mix(in srgb,var(--color-gold) 14%,transparent)}.pitch-btn .pitch-caret{padding:0 .45rem;border-left:1px solid color-mix(in srgb,var(--color-gold) 25%,transparent)}.pitch-btn.sounding{background:color-mix(in srgb,var(--color-gold) 24%,transparent)}.pitch-btn.is-disabled{opacity:.45}.pitch-btn.is-disabled button{cursor:default}.pitch-list{display:flex;flex-direction:column;gap:.3rem}.pitch-row{--chip: var(--color-muted-strong);display:flex;align-items:center;gap:.55rem;width:100%;padding:.4rem .55rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:.85rem;cursor:pointer;transition:background var(--transition),border-color var(--transition)}.pitch-row:hover{background:var(--color-surface-hover)}.pitch-row.sounding{border-color:var(--chip);background:color-mix(in srgb,var(--chip) 10%,transparent)}.pitch-row.mine{border-color:color-mix(in srgb,var(--chip) 45%,transparent)}.pitch-dot{width:9px;height:9px;border-radius:50%;background:var(--chip);flex-shrink:0}.pitch-name{display:flex;align-items:center;gap:.35rem;min-width:0}.pitch-mine{padding:0 .3rem;border-radius:var(--radius-pill);background:var(--tint-2);color:var(--color-muted);font-size:.62rem;text-transform:uppercase;letter-spacing:.04em}.pitch-hint{color:var(--color-muted);font-size:.7rem}.pitch-note{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums}.sv-menu-btn{display:flex;align-items:center;gap:.4rem;height:38px;padding:0 .7rem 0 .8rem;border:1px solid var(--tint-border-faint);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--fg-strong);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;transition:background var(--transition),border-color var(--transition)}.sv-menu-btn:hover,.sv-menu-btn.open{background:var(--color-surface-hover);border-color:var(--tint-border)}.sv-body{position:relative;flex:1;min-height:0}.sv-stage{position:relative;height:100%;overflow:auto;overscroll-behavior:contain}.sv-canvas{display:flex;justify-content:center;min-width:max-content;padding:var(--space-4) var(--space-4) 6rem}.sv-pages{display:flex;flex-direction:column;gap:var(--space-4)}.sv-page{position:relative;background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-page);overflow:hidden}.sv-page canvas{display:block}.sv-page-num{position:absolute;right:.5rem;bottom:.4rem;padding:0 .35rem;border-radius:4px;background:#fffc;color:var(--fg-faint);font-size:.7rem;font-variant-numeric:tabular-nums;pointer-events:none}.sv-placeholder{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:240px;padding:var(--space-6);border-radius:var(--radius-md);background:var(--tint-1);color:var(--fg-muted);font-size:var(--text-sm);text-align:center}.sv-placeholder.error{color:var(--color-error);background:var(--color-error-muted)}.sv-floatbar{position:absolute;left:50%;bottom:var(--space-4);transform:translate(-50%);z-index:25;display:flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);box-shadow:var(--shadow-pop);opacity:.75;transition:opacity var(--transition)}.sv-floatbar:hover,.sv-floatbar:focus-within{opacity:1}.sv-pageno{padding:0 .4rem;font-size:.78rem;font-variant-numeric:tabular-nums;color:var(--color-muted);min-width:3.5rem;text-align:center}.sv-floatbar-sep{width:1px;align-self:stretch;margin:.25rem .2rem;background:var(--color-border)}.sv-zoom{padding:0 .3rem;border:none;background:transparent;color:var(--color-muted);font:inherit;font-size:.75rem;font-variant-numeric:tabular-nums;min-width:2.9rem;cursor:pointer}.sv-zoom:hover{color:var(--color-text)}.sv-dock{flex-shrink:0;z-index:28;background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:var(--shadow-dock);animation:dock-in .22s cubic-bezier(.4,0,.2,1)}@keyframes dock-in{0%{transform:translateY(100%)}to{transform:none}}.sv-dock-head{display:flex;align-items:center;justify-content:space-between;max-width:900px;margin:0 auto;padding:var(--space-2) var(--space-4) 0;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-muted)}.mp{display:flex;flex-direction:column;gap:var(--space-3);width:100%;max-width:900px;margin:0 auto;padding:var(--space-2) var(--space-4) var(--space-4)}.mp-voices{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.voice-chip{--chip: var(--color-muted-strong);display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-muted);font:inherit;font-size:.8rem;cursor:pointer;transition:background var(--transition),border-color var(--transition),color var(--transition)}.voice-chip:hover{border-color:color-mix(in srgb,var(--chip) 40%,transparent)}.voice-chip.active{background:color-mix(in srgb,var(--chip) 12%,transparent);border-color:color-mix(in srgb,var(--chip) 50%,transparent);color:var(--chip);font-weight:600}.voice-key{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;background:var(--chip);color:#fff;font-size:.62rem;font-weight:700}.voice-guess{color:var(--color-muted);font-size:.7rem}.voice-mine{padding:0 .3rem;border-radius:var(--radius-pill);background:var(--tint-2);color:var(--color-muted);font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.mp-toggle{display:inline-flex;align-items:center;gap:.35rem;margin-left:auto;color:var(--color-muted);font-size:.78rem;cursor:pointer}.mp-toggle input{accent-color:var(--color-accent);cursor:pointer}.mp-transport{display:flex;align-items:center;gap:var(--space-3)}.mp-scrub{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}.mp-play{display:flex;align-items:center;justify-content:center;width:46px;height:46px;flex-shrink:0;border:none;border-radius:50%;background:var(--color-accent);color:var(--color-on-accent);cursor:pointer;transition:background var(--transition),transform .1s}.mp-play:hover:not(:disabled){background:var(--color-accent-hover)}.mp-play:active:not(:disabled){transform:scale(.94)}.mp-play:disabled{opacity:.4;cursor:default}.mp-time{font-size:.75rem;color:var(--color-muted);font-variant-numeric:tabular-nums}.mp-seek{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;min-width:60px;height:6px;border-radius:3px;background:linear-gradient(to right,var(--color-accent) var(--pct, 0%),var(--tint-3) var(--pct, 0%));cursor:pointer;outline:none}.mp-seek::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;border:2px solid var(--color-surface);background:var(--color-accent);box-shadow:0 1px 3px #2924204d;cursor:pointer}.mp-seek::-moz-range-thumb{width:13px;height:13px;border-radius:50%;border:2px solid var(--color-surface);background:var(--color-accent);cursor:pointer}.mp-rate{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--color-muted)}.mp-rate select{padding:.2rem .3rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:.75rem;cursor:pointer}.mp-caption{font-size:.75rem;color:var(--color-muted)}.mp-caption strong{color:var(--color-text);font-weight:600}.ne{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;flex-direction:column;background:var(--editor-scrim)}.ne-bar{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;padding:var(--space-2) var(--space-3);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.ne-title{display:flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:600}.ne-dirty{padding:0 .35rem;border-radius:var(--radius-pill);background:var(--color-gold-muted);color:var(--color-gold);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.ne-select{padding:.3rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:.8rem;cursor:pointer}.ne-spacer{flex:1}.ne-tools{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);flex-shrink:0;padding:var(--space-2) var(--space-3);background:var(--color-bg);border-bottom:1px solid var(--color-border)}.ne-group{display:flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.ne-tool{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;min-width:32px;height:30px;padding:0 .4rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font:inherit;font-size:.85rem;cursor:pointer;transition:background var(--transition),color var(--transition)}.ne-tool:hover:not(:disabled){background:var(--tint-2)}.ne-tool.active{background:var(--color-accent);color:var(--color-on-accent)}.ne-tool:disabled{opacity:.35;cursor:default}.ne-tool.wide{padding:0 .55rem;font-size:.78rem}.ne-tool.danger{color:var(--color-error)}.ne-glyph{font-size:1.05rem;line-height:1}.ne-zoom{min-width:3rem;text-align:center;font-size:.75rem;color:var(--color-muted);font-variant-numeric:tabular-nums}.ne-body{display:flex;flex:1;min-height:0}.ne-original{position:relative;flex:0 0 auto;width:42%;min-width:220px;max-width:70%;resize:horizontal;overflow:auto;border-right:1px solid var(--color-border);background:var(--viewer-bg)}.ne-original-label{position:sticky;top:0;z-index:2;padding:.25rem .6rem;background:color-mix(in srgb,var(--viewer-bg) 88%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:.65rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted)}.pdf-pane{padding:0 var(--space-2) var(--space-2)}.pdf-pane-page{margin-bottom:var(--space-2);background:#fff;border-radius:var(--radius-sm);box-shadow:var(--shadow-page);overflow:hidden}.pdf-pane-page canvas{display:block}.pdf-pane-state{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:var(--space-6) var(--space-2);color:var(--fg-muted);font-size:var(--text-sm)}.icon-btn.on{background:var(--color-accent-muted);color:var(--color-accent)}.ne-stage{position:relative;flex:1;min-width:0;overflow:auto;padding:var(--space-4)}.ne-flags{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ne-flag{position:absolute;width:3px;border-radius:2px;background:color-mix(in srgb,var(--color-error) 85%,transparent);pointer-events:auto}.ne-problems{color:var(--color-warning);font-weight:600}@media (max-width: 760px){.ne-body{flex-direction:column}.ne-original{width:auto;max-width:none;height:38%;min-height:140px;resize:none;border-right:none;border-bottom:1px solid var(--color-border)}}.ne-paper{position:relative;max-width:1100px;min-height:220px;margin:0 auto;padding:var(--space-4) var(--space-2);background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-page);touch-action:pan-y;cursor:pointer}.ne-state{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:var(--space-6);color:var(--color-muted);font-size:var(--text-sm)}.ne-state.error{color:var(--color-error)}.ne-status{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0;padding:var(--space-2) var(--space-3);background:var(--color-surface);border-top:1px solid var(--color-border);font-size:.78rem;color:var(--color-muted)}.ne-status strong{color:var(--color-text)}.ne-notice{color:var(--color-warning)}.ne-hint{color:var(--fg-faint);font-size:.72rem}@media (max-width: 760px){.ne-hint{display:none}}.loading-screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;color:var(--color-muted)}@media (max-width: 600px){.nav-links{gap:0}.nav-link span{display:none}.nav-link{padding:.4rem .5rem}.member-grid{grid-template-columns:1fr 1fr}.sv-topbar{gap:var(--space-2);padding:var(--space-2);min-height:56px}.sv-title{font-size:.92rem}.sv-pagecount,.pitch-btn-label,.sv-menu-label{display:none}.pitch-btn button{padding:0 .6rem}.sv-menu-btn{padding:0 .5rem}.sv-canvas{padding:var(--space-2) var(--space-2) 5rem}.sv-floatbar{bottom:var(--space-2)}.mp-transport{flex-wrap:wrap}.mp-scrub{order:-1;flex-basis:100%}.mp-rate{margin-left:auto}}
