@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&family=Inter:wght@400;500;600&display=swap";:root{--paper: #f7f4ed;--surface: #ffffff;--ink: #1f1d1a;--ink-soft: #726b5c;--line: #e3ddcc;--accent: #6e2732;--accent-hover: #5a1f28;--accent-tint: #f1e1e0;--success: #3f6b4a;--success-tint: #e6ede7;--danger: #a33636;--font-display: "Fraunces", Georgia, serif;--font-ui: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius: 4px;--sidebar-width: 236px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.15;margin:0 0 .4em;letter-spacing:-.01em}h1{font-size:1.9rem}h2{font-size:1.3rem}h3{font-size:1.05rem}p{margin:0 0 1em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--ink-soft);font-size:.875rem}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);flex-shrink:0;background:var(--surface);border-right:1px solid var(--line);padding:28px 20px;display:flex;flex-direction:column}.sidebar-logo{display:block;width:100%;max-width:168px;margin:0 auto 32px}.sidebar-nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.sidebar-nav a{display:block;color:var(--ink);text-decoration:none;font-size:.92rem;padding:9px 12px;border-radius:var(--radius);border-left:3px solid transparent}.sidebar-nav a:hover{background:var(--paper)}.sidebar-nav a.active{border-left-color:var(--accent);background:var(--accent-tint);color:var(--accent);font-weight:500}.sidebar-footer{margin-top:auto;padding-top:20px;border-top:1px solid var(--line)}.sidebar-footer button{width:100%}.content{flex:1;padding:40px 48px;max-width:1040px}.page-header{margin-bottom:28px}.page-header .muted{margin-top:-6px}.section-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:28px}.section-tabs a{color:var(--ink-soft);text-decoration:none;padding:10px 4px;margin-right:20px;font-size:.92rem;border-bottom:2px solid transparent;margin-bottom:-1px}.section-tabs a:hover{color:var(--ink)}.section-tabs a.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:500}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:24px;overflow-x:auto}.card+.card{margin-top:0}form{display:flex;flex-direction:column;gap:16px}label{display:flex;flex-direction:column;gap:6px;font-size:.875rem;color:var(--ink-soft)}input[type=text],input[type=email],input[type=password],input[type=datetime-local],input:not([type]),select,textarea{font-family:var(--font-ui);font-size:.95rem;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:9px 11px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}textarea{resize:vertical;font-family:var(--font-ui)}.form-row{display:flex;gap:16px}.form-row>*{flex:1}.list-checkboxes{display:flex;flex-wrap:wrap;gap:8px 20px}.list-checkboxes label{flex-direction:row;align-items:center;color:var(--ink);font-size:.9rem}.list-checkboxes input{width:auto}button,.button{font-family:var(--font-ui);font-size:.9rem;font-weight:500;border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent);color:#fff;padding:9px 16px;cursor:pointer;align-self:flex-start}button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button:disabled{background:var(--line);border-color:var(--line);color:var(--ink-soft);cursor:not-allowed}button.secondary,.button.secondary{background:transparent;color:var(--ink);border-color:var(--line)}button.secondary:hover,.button.secondary:hover{background:var(--paper);border-color:var(--ink-soft)}button.danger,.button.danger{background:transparent;color:var(--danger);border-color:var(--danger)}button.danger:hover,.button.danger:hover{background:#fbeeee}button.small,.button.small{padding:5px 10px;font-size:.8rem}table{width:100%;border-collapse:collapse;font-size:.9rem}th{text-align:left;font-weight:500;color:var(--ink-soft);font-size:.8rem;padding:8px 10px;border-bottom:1px solid var(--line)}td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}tr:last-child td{border-bottom:none}.badge{display:inline-block;font-size:.78rem;padding:3px 9px;border-radius:999px;background:var(--paper);color:var(--ink-soft)}.badge.success{background:var(--success-tint);color:var(--success)}.member-shell{min-height:100vh;background:var(--paper)}.member-topbar{display:flex;align-items:center;gap:24px;padding:14px 24px;background:var(--surface);border-bottom:1px solid var(--line)}.member-topbar img{height:34px;width:auto}.member-nav{display:flex;gap:18px;flex:1}.member-nav a{color:var(--ink-soft);text-decoration:none;font-size:.9rem;padding:4px 0;border-bottom:2px solid transparent}.member-nav a:hover{color:var(--ink)}.member-nav a.active{color:var(--ink);border-bottom-color:var(--accent);font-weight:500}.member-topbar-actions{display:flex;align-items:center;gap:16px}.member-content{max-width:760px;margin:0 auto;padding:32px 24px}.cal-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}.cal-nav{display:flex;align-items:center;gap:8px}.cal-label{margin:0 0 0 8px}.cal-view-switch{display:flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.cal-view-switch button{background:var(--surface);color:var(--ink-soft);border:none;border-radius:0;border-right:1px solid var(--line);padding:6px 14px;font-size:.85rem}.cal-view-switch button:last-child{border-right:none}.cal-view-switch button.active,.cal-chip-rehearsal{background:var(--accent-tint);color:var(--accent)}.cal-chip-event{background:var(--success-tint);color:var(--success)}.cal-month-weekdays{display:grid;grid-template-columns:repeat(7,1fr);font-size:.78rem;color:var(--ink-soft);padding:0 2px 6px}.cal-month-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(6,minmax(90px,1fr));border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.cal-month-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px;cursor:pointer;background:var(--surface);display:flex;flex-direction:column;gap:4px;overflow:hidden}.cal-month-cell:hover{background:var(--paper)}.cal-outside{background:var(--paper);color:var(--ink-soft)}.cal-today .cal-month-date{background:var(--accent);color:#fff;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px}.cal-month-date{font-size:.82rem;font-weight:500}.cal-month-events{display:flex;flex-direction:column;gap:3px}.cal-chip{border:none;text-align:left;font-size:.72rem;padding:2px 6px;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-more{font-size:.7rem;color:var(--ink-soft)}.cal-timegrid{overflow-x:auto}.cal-timegrid-scroll{width:100%}.cal-timegrid-header{display:grid;grid-template-columns:56px repeat(var(--cal-days, 7),1fr)}.cal-day-header{text-align:center;padding:6px 0;border-bottom:1px solid var(--line)}.cal-day-header.cal-today .cal-day-num{color:var(--accent);font-weight:600}.cal-day-name{font-size:.72rem;color:var(--ink-soft)}.cal-day-num{font-size:.95rem}.cal-timegrid-body{display:grid;grid-template-columns:56px repeat(7,1fr);border:1px solid var(--line);border-radius:var(--radius);position:relative;overflow:hidden}.cal-time-col{border-right:1px solid var(--line)}.cal-time-label{font-size:.68rem;color:var(--ink-soft);text-align:right;padding-right:6px;transform:translateY(-6px)}.cal-day-col{position:relative;border-right:1px solid var(--line);cursor:pointer}.cal-day-col:last-child{border-right:none}.cal-hour-line{border-bottom:1px solid var(--line)}.cal-event{position:absolute;left:3px;right:3px;border:none;border-radius:3px;padding:3px 6px;font-size:.72rem;text-align:left;overflow:hidden;z-index:1}.cal-timegrid:has(.cal-day-col:only-of-type) .cal-timegrid-header,.cal-timegrid:has(.cal-day-col:only-of-type) .cal-timegrid-body{grid-template-columns:56px 1fr}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f1d1a73;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modal{background:var(--surface);border-radius:var(--radius);padding:28px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.attendance-grid{border-collapse:separate;border-spacing:0;white-space:nowrap}.attendance-grid th,.attendance-grid td{white-space:nowrap}.attendance-grid select{font-size:.78rem;padding:4px 6px}.attendance-grid-sticky{position:sticky;left:0;background:var(--surface);z-index:1;min-width:180px}.rte{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.rte-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:4px;padding:6px;background:var(--paper);border-bottom:1px solid var(--line)}.rte-btn{background:transparent;border:1px solid transparent;color:var(--ink);padding:5px 9px;font-size:.82rem;border-radius:var(--radius)}.rte-btn:hover{background:var(--surface);border-color:var(--line)}.rte-sep{width:1px;height:20px;background:var(--line);margin:0 2px}.rte-editor{padding:14px 16px;background:var(--surface);font-size:.95rem;line-height:1.5;overflow-y:auto}.rte-editor:focus{outline:none}.rte-editor:empty:before{content:attr(data-placeholder);color:var(--ink-soft)}.rte-editor h2{font-size:1.15rem;margin:.5em 0 .3em}.rte-editor p{margin:0 0 .7em}.rte-editor ul,.rte-editor ol{margin:0 0 .7em;padding-left:1.4em}.signature-panel{margin-top:8px}.signature-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.signature-panel-header .actions{display:flex;gap:8px}.rehearsal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.rehearsal-card{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 20px}.error{color:var(--danger);font-size:.875rem}.result{font-size:.9rem;padding:10px 14px;background:var(--paper);border-radius:var(--radius)}.auth-page{max-width:360px;margin:12vh auto;padding:0 20px}.auth-page h1{text-align:center;margin-bottom:28px}.tabs{display:flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:24px}.tabs button{flex:1;background:var(--surface);color:var(--ink-soft);border:none;border-radius:0}.tabs button.active{background:var(--accent-tint);color:var(--accent)}@media (max-width: 780px){.app-shell{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid var(--line);padding:16px 20px}.sidebar-logo{max-width:120px;margin-bottom:16px}.sidebar-nav{flex-direction:row;flex-wrap:wrap}.content{padding:20px 16px}.member-topbar{flex-wrap:wrap;padding:12px 16px;gap:10px}.member-nav{order:3;flex:1 0 100%;justify-content:space-between;gap:12px}.member-topbar-actions{flex-wrap:wrap;gap:8px}.member-content{padding:20px 16px}.section-tabs{overflow-x:auto;white-space:nowrap;flex-wrap:nowrap}.section-tabs a{margin-right:14px}.form-row{flex-direction:column}.cal-toolbar{flex-direction:column;align-items:stretch}.cal-nav{justify-content:space-between}.cal-label{font-size:1.05rem}.cal-view-switch{align-self:flex-start}.modal{padding:20px;max-width:100%}.rte-toolbar{gap:2px}}.install-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;background:var(--accent-tint);color:var(--ink);padding:12px 20px;border-bottom:1px solid var(--line);font-size:.88rem}.install-banner p{margin:0;flex:1;min-width:200px}.install-banner-actions{display:flex;gap:8px;flex-shrink:0}
