@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Outfit:wght@500;600;700&display=swap";:root{--ink:#1c2430;--ink-soft:#5c6675;--paper:#f6f3ee;--paper-elevated:#fff;--line:#e2ddd4;--accent:#d95f45;--accent-dark:#b84a34;--accent-soft:#f8e8e2;--success:#2f6f5e;--danger:#b42318;--danger-soft:#fdecec;--shadow:0 1px 2px #1c24300f;--radius:8px;--font-body:"DM Sans", system-ui, sans-serif;--font-display:"Outfit", "DM Sans", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(circle at top left, #fff8f3 0%, transparent 35%), radial-gradient(circle at bottom right, #eef5f2 0%, transparent 30%), var(--paper);margin:0}a{color:var(--accent);font-weight:600;text-decoration:none}a:hover{color:var(--accent-dark)}button,input{font:inherit}.auth-page{min-height:100vh;padding:12px}.auth-shell{grid-template-columns:minmax(280px,1.1fr) minmax(320px,.9fr);gap:12px;max-width:none;min-height:calc(100vh - 24px);margin:0;display:grid}.auth-aside{border-radius:var(--radius);color:#f7f4ef;box-shadow:var(--shadow);background:linear-gradient(145deg,#ffffff1f,#0000),linear-gradient(160deg,#2f4858 0%,#1c2430 100%);flex-direction:column;justify-content:space-between;padding:20px;display:flex}.brand{font-family:var(--font-display);color:var(--ink);letter-spacing:-.03em;font-size:1.2rem}.brand:hover{color:var(--accent-dark)}.auth-aside .brand{color:#fff}.auth-aside .brand:hover{color:#ffffffe0}.auth-aside-content h1{font-family:var(--font-display);letter-spacing:-.03em;margin:8px 0 10px;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.1}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#f7f4efb8;font-size:.8rem;font-weight:600}.aside-copy,.welcome-copy{color:var(--ink-soft);max-width:none;line-height:1.45}.auth-aside .aside-copy{color:#f7f4efc7}.auth-main{align-items:center;display:flex}.auth-card{background:var(--paper-elevated);border:1px solid var(--line);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);padding:20px}.auth-card-header h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 4px;font-size:1.5rem}.auth-card-header p,.auth-card-footer p{color:var(--ink-soft);margin:0;line-height:1.5}.auth-card-footer{margin-top:12px}.auth-form{gap:10px;margin-top:16px;display:grid}.field{gap:4px;display:grid}.field span{font-size:.92rem;font-weight:600}.field input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;padding:8px 10px;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.button-primary,.button-ghost,.button-dark{cursor:pointer;border:none;border-radius:999px;transition:transform .15s,background .15s,color .15s}.button-primary{background:var(--accent);color:#fff;padding:8px 14px;font-weight:700}.button-primary:hover:not(:disabled){background:var(--accent-dark);transform:translateY(-1px)}.button-primary:disabled{opacity:.7;cursor:not-allowed}.button-ghost{color:var(--ink);border:1px solid var(--line);background:0 0;padding:6px 12px;font-weight:600}.button-ghost:hover{background:var(--paper)}.button-dark{background:var(--ink);color:#fff;border:1px solid var(--ink);padding:6px 12px;font-weight:600}.button-dark:hover{color:#fff;background:#111820}.form-error{background:var(--danger-soft);color:var(--danger);border-radius:8px;padding:8px 10px;font-size:.9rem}.page-loading{min-height:100vh;color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.eyebrow.ink{color:var(--ink-soft)}.form-success{color:var(--success);background:#e8f4ef;border-radius:8px;padding:8px 10px;font-size:.9rem}.event-locked-banner{color:#7a5c1e;background:#fff8eb;border:1px solid #d4c4a8;border-radius:8px;padding:8px 10px;font-size:.9rem}.stack-form-fieldset{border:0;min-width:0;margin:0;padding:0}.stack-form-fieldset:disabled{opacity:.72}.app-shell{min-height:100vh}.app-header{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#ffffffe0;justify-content:space-between;align-items:center;gap:10px;padding:6px 12px;display:flex;position:sticky;top:0}.app-header-start,.app-header-end{align-items:center;gap:10px;display:flex}.app-nav{gap:2px;display:flex}.nav-link{color:var(--ink-soft);border-radius:999px;padding:4px 10px;font-size:.9rem;font-weight:600}.nav-link:hover{color:var(--ink);background:var(--paper)}.nav-link.active{color:var(--accent-dark);background:var(--accent-soft)}.user-chip{color:var(--ink-soft);font-size:.92rem}.app-main{width:100%;max-width:none;margin:0;padding:10px 12px 16px}.page-stack{gap:10px;display:grid}.page-header h1{font-family:var(--font-display);letter-spacing:-.03em;margin:2px 0 4px;font-size:clamp(1.35rem,2.4vw,1.75rem)}.page-copy,.muted-copy{color:var(--ink-soft);max-width:none;margin:0;line-height:1.4}.hero-panel{justify-content:space-between;align-items:center;gap:12px;display:flex}.content-card{background:var(--paper-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;padding:12px}.section-heading{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.section-heading h2{font-family:var(--font-display);margin:0;font-size:1.15rem}.section-heading p{color:var(--ink-soft);margin:0}.attendees-heading{align-items:flex-end}.attendees-heading-main h2{font-family:var(--font-display);margin:0;font-size:1.15rem}.bulk-rsvp-actions{flex-shrink:0;align-items:flex-end;gap:8px;display:flex}.bulk-rsvp-field{min-width:132px;margin:0}.bulk-rsvp-select{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:6px 8px}.bulk-rsvp-button{white-space:nowrap}.attendee-groups{gap:14px;display:grid}.attendee-group-section{gap:6px;display:grid}.attendee-group-heading{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.attendee-group-heading h3{font-family:var(--font-display);margin:0;font-size:1rem}.attendee-group-heading p{color:var(--ink-soft);margin:0;font-size:.9rem}.attendee-group-empty{border:1px dashed var(--line);background:#faf8f5;border-radius:8px;margin:0;padding:8px 10px}.stack-form{gap:10px;display:grid}.field textarea{border:1px solid var(--line);width:100%;color:var(--ink);resize:vertical;background:#fff;border-radius:8px;min-height:72px;padding:8px 10px}.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.field-group{gap:10px;padding-top:4px;display:grid}.field-group-label{margin:0;font-weight:700}.form-actions{justify-content:flex-end;gap:8px;display:flex}.inline-button{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.inline-button.button-primary,.inline-button.button-dark,.inline-button.button-primary:hover,.inline-button.button-dark:hover{color:#fff}.empty-state{background:var(--paper);border:1px dashed var(--line);text-align:center;border-radius:8px;gap:4px;padding:12px;display:grid}.event-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.event-card{border:1px solid var(--line);background:var(--paper);border-radius:8px;gap:8px;padding:10px 12px;display:grid}.event-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.event-card-action{white-space:nowrap;flex-shrink:0}.event-card-main h3{margin:0 0 4px;font-size:1.05rem}.event-card-main p{color:var(--ink-soft);margin:0;line-height:1.4}.event-meta{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px;margin:0;display:grid}.event-meta div{border:1px solid var(--line);background:#fff;border-radius:8px;padding:6px 8px}.event-meta dt{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:4px;font-size:.75rem}.event-meta dd{margin:0;font-weight:600}.event-link{color:inherit;font-weight:700}.event-link:hover{color:var(--accent-dark)}.card-title{font-family:var(--font-display);margin:0 0 8px;font-size:1.15rem}.subheading{margin:0 0 8px;font-size:.9rem;font-weight:700}.entity-list,.list-collection{gap:8px;margin:0;padding:0;list-style:none;display:grid}.entity-row,.list-card{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:10px 12px}.entity-row{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.entity-subcopy{color:var(--ink-soft);margin:4px 0 0;font-size:.92rem}.list-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.list-card h3{margin:0 0 2px}.list-card p{color:var(--ink-soft);margin:0}.member-toolbar{gap:8px;margin-top:8px;display:flex}.member-toolbar select{border:1px solid var(--line);background:#fff;border-radius:8px;flex:1;padding:6px 8px}.chip-list{flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.chip-item{border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:6px;padding:4px 8px;font-size:.85rem;display:inline-flex}.chip-item.readonly{background:var(--paper)}.chip-remove{color:var(--ink-soft);cursor:pointer;background:0 0;border:none;padding:0;font-size:1.1rem;line-height:1}.chip-remove:hover,.danger-button{color:var(--danger)}.danger-button:hover{background:var(--danger-soft)}.picker-grid{gap:10px;display:grid}.picker-section{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:10px}.picker-heading h3{margin:0 0 4px;font-size:1rem}.picker-heading p{color:var(--ink-soft);margin:0;font-size:.92rem}.picker-list{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.picker-item{cursor:pointer;align-items:flex-start;gap:8px;display:flex}.picker-item span{gap:2px;display:grid}.picker-item strong{font-size:.95rem}.picker-item span span{color:var(--ink-soft);font-size:.85rem}.autocomplete{position:relative}.autocomplete-field{margin:0}.autocomplete-input{width:100%}.autocomplete-hint{margin:4px 0 0;font-size:.85rem}.autocomplete-list{z-index:10;border:1px solid var(--line);background:#fff;border-radius:8px;max-height:280px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow:auto;box-shadow:0 8px 24px #18141014}.autocomplete-item{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;display:flex}.autocomplete-item:hover:not(:disabled){background:#f3f1ec}.autocomplete-item:disabled{opacity:.6;cursor:not-allowed}.autocomplete-section{color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;padding:8px 12px 4px;font-size:.75rem;font-weight:600}.autocomplete-item-main{flex-direction:column;gap:2px;min-width:0;display:flex}.autocomplete-item-name{font-weight:600}.autocomplete-item-meta{color:var(--ink-soft);font-size:.82rem;font-weight:500}.autocomplete-item-status{color:var(--ink-soft);font-size:.82rem}.autocomplete-empty{color:var(--ink-soft);padding:10px 12px;font-size:.9rem}.attached-block+.attached-block{margin-top:10px}.list-collection.compact .list-card.compact{padding:8px 10px}.spaced-top{margin-top:10px}.app-main:has(.page-stack-wide){width:100%;max-width:none}.page-stack-wide{width:100%}.event-page-body{align-items:start;gap:10px;width:100%;display:grid}@media (width>=1080px){.event-page-body{grid-template-columns:minmax(260px,320px) minmax(0,1fr)}}.event-page .event-details-card{min-width:0}.event-page .event-details-card .field-row{grid-template-columns:1fr}.event-page .table-card{min-width:0}.event-page .table-scroll{width:100%}.event-page .attendees-heading{flex-wrap:wrap;gap:8px}.table-card{padding:8px}.table-banner{margin-bottom:8px}.table-scroll{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:auto}.attendees-page{padding-bottom:32px}.attendees-page .content-card.table-card,.attendees-table-scroll{overflow:visible}.attendees-page .data-table thead th{top:44px}.data-table{border-collapse:collapse;width:100%;font-size:.92rem}.data-table thead th{z-index:1;border-bottom:1px solid var(--line);text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;background:#f3f1ec;padding:6px 8px;font-size:.72rem;position:sticky;top:0}.data-table tbody td{border-bottom:1px solid var(--line);vertical-align:middle;background:#fff;padding:0}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover td{background:#faf8f5}.data-table tbody tr.row-dirty td{background:#fff9f4}.data-table tbody tr.new-row td{background:#f8f6f2}.cell-input{width:100%;min-width:0;color:var(--ink);font:inherit;background:0 0;border:none;padding:6px 8px}.cell-input:focus{outline:2px solid var(--accent-soft);outline-offset:-2px;background:#fff}.data-table .actions-col{white-space:nowrap;width:1%}.data-table .name-col{padding-left:10px}.data-table .queue-col{text-align:center;width:72px;min-width:72px}.data-table .pos-col{text-align:center;width:56px;min-width:56px}.data-table .rating-col{text-align:center;width:72px;min-width:72px}.rating-input{max-width:88px}.data-table .rsvp-col{text-align:right;width:150px;min-width:150px}.table-cell-text{vertical-align:middle;padding:6px 8px}.data-table tbody tr.rsvp-row-attending td{background:#e3f2ea}.data-table tbody tr.rsvp-row-pending td{background:#f0eeea}.data-table tbody tr.rsvp-row-declined td{background:var(--danger-soft)}.data-table tbody tr.rsvp-row-attending:hover td{background:#d4ebdf}.data-table tbody tr.rsvp-row-pending:hover td{background:#e8e5df}.data-table tbody tr.rsvp-row-declined:hover td{background:#f9d8d8}.cell-select{width:100%;min-width:0;color:var(--ink);font:inherit;cursor:pointer;text-align:right;background:0 0;border:none;padding:6px 8px}.cell-select:focus{outline:2px solid var(--accent-soft);outline-offset:-2px;background:#fff}.cell-select:disabled{opacity:.6;cursor:not-allowed}.rsvp-select.rsvp-attending{color:#145c32;font-weight:600}.rsvp-select.rsvp-pending{color:var(--ink-soft);font-weight:500}.rsvp-select.rsvp-declined{color:var(--danger);font-weight:600}.row-actions{align-items:center;gap:6px;padding:4px 6px;display:flex}.row-status{color:var(--ink-soft);font-size:.78rem}.row-status.muted{color:var(--accent-dark)}.table-action{padding:4px 8px;font-size:.78rem}.table-hint{margin-top:8px}.public-page{min-height:100vh;padding:10px 12px}.directory-page .public-page-shell{max-width:32rem;margin:0 auto}.directory-page h1{margin:0;font-size:1.2rem}.directory-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.directory-list a{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;padding:8px 10px;font-weight:600;text-decoration:none;display:block}.directory-list a:hover{border-color:var(--accent);color:var(--accent-dark)}.referee-page:not(.referee-event-page) .public-page-shell{max-width:32rem;margin:0 auto}.referee-page h1{margin:0;font-size:1.2rem}.referee-event-list a{gap:2px;display:grid}.referee-event-list a span:last-child{color:var(--ink-soft);font-size:.85rem;font-weight:400}.referee-event-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.referee-event-header h1{margin:4px 0 2px;font-size:1.4rem}.referee-event-nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.referee-event-select select{border:1px solid var(--line);min-width:220px;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:6px 8px}.public-page-shell{max-width:none;margin:0}.public-page-header{margin-bottom:10px}.brand-dark{color:var(--ink)}.brand-dark:hover{color:var(--accent-dark)}a.brand,a.brand-dark{color:var(--ink);text-decoration:none}a.brand:hover,a.brand-dark:hover{color:var(--accent-dark)}.auth-aside a.brand,.auth-aside a.brand:hover{color:#fff}.auth-aside a.brand:hover{color:#ffffffe0}.portal-push-bar{border:1px solid var(--line);background:color-mix(in srgb, var(--paper) 70%, #fff);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px;padding:8px 10px;display:flex}.portal-push-on{justify-content:space-between;align-items:center;gap:8px;width:100%;display:flex}.portal-push-copy{margin:0;font-size:.82rem}.portal-push-button{white-space:nowrap;padding:6px 10px;font-size:.82rem}.teams-push-card{margin-bottom:4px}.teams-push-list{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.teams-push-row{border:1px solid var(--line);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.teams-push-meta{color:var(--ink-soft);margin-top:2px;font-size:.8rem;display:block}.teams-push-actions{justify-content:flex-end;display:flex}.portal-heading{flex-direction:column;align-items:flex-start;gap:4px}.portal-heading h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(1.35rem,3vw,1.75rem)}.portal-heading-copy{color:var(--ink-soft);max-width:none;margin:0;line-height:1.4}.data-table tbody td.portal-event-cell{vertical-align:middle;padding:8px 8px 8px 10px}.portal-event-meta{color:var(--ink-soft);margin-top:4px;font-size:.85rem;font-weight:500;display:block}.portal-waitlist-label{color:var(--ink-soft);font-weight:600}.portal-page .public-page-shell{width:100%;max-width:40rem;margin:0 auto}.portal-page .content-card{padding:10px 12px}.portal-page .public-page-header{margin-bottom:8px}.portal-page .portal-heading{gap:0;margin-bottom:10px}.portal-page .portal-heading h1{font-size:clamp(1.25rem,5vw,1.65rem)}.portal-page .portal-heading-copy{display:none}.portal-event-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.portal-event-item{border:1px solid var(--line);background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:10px 12px;padding:10px 12px;display:flex}.portal-event-item.rsvp-row-attending{background:#e3f2ea}.portal-event-item.rsvp-row-pending{background:#f0eeea}.portal-event-item.rsvp-row-declined{background:var(--danger-soft)}.portal-event-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.portal-event-title-row{flex-wrap:wrap;align-items:baseline;gap:6px 8px;display:flex}.portal-event-title{letter-spacing:-.01em;font-size:.98rem;line-height:1.25}.portal-event-when{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:.82rem;line-height:1.3}.portal-waitlist-badge,.portal-locked-label{letter-spacing:.02em;text-transform:uppercase;color:var(--ink-soft);font-size:.68rem;font-weight:700}.portal-event-rsvp{flex-shrink:0}.portal-page .data-table tbody td.portal-event-cell{padding:6px 8px 6px 10px}.portal-page .data-table .rsvp-col{width:132px;min-width:132px}.data-table .devices-col{vertical-align:middle;min-width:180px}.data-table tbody td.devices-col{padding:6px 8px}.push-device-list{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.push-device-chip{color:var(--success);white-space:nowrap;background:#e3f2ea;border:1px solid #cfe6d8;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:.78rem;font-weight:600;display:inline-flex}.push-device-chip .chip-remove{color:var(--success)}.data-table thead th.push-col{text-align:center}.push-opt-in-badge{min-width:2rem;color:var(--success);font-variant-numeric:tabular-nums;background:#e3f2ea;border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:2px 8px;font-size:.78rem;font-weight:700;display:inline-flex}.push-opt-in-icon{font-size:.55rem;line-height:1}.push-opt-in-none{color:var(--ink-soft)}.portal-rsvp-control{justify-content:flex-end;align-items:center;gap:6px;padding:0;display:flex}.portal-rsvp-select{border:1px solid var(--line);text-align:left;background:#fff;border-radius:10px;width:7.25rem;min-width:0;padding:7px 8px;font-size:.88rem}.portal-rsvp-select:focus{outline:2px solid var(--accent-soft);outline-offset:0}.portal-rsvp-saving{white-space:nowrap;font-size:.72rem}.portal-rsvp-notify-failed{white-space:nowrap;color:var(--danger);font-size:.72rem}@media (width<=480px){.portal-page{padding:10px 10px 20px}.portal-page .content-card,.portal-page .portal-card{padding:10px}.portal-event-item{flex-wrap:wrap;gap:8px;padding:9px 10px}.portal-event-rsvp{width:100%}.portal-page .portal-rsvp-control{justify-content:stretch}.portal-rsvp-select{width:100%;min-height:40px}}.data-table .link-col{text-align:center;width:160px;min-width:160px}.data-table thead th.link-col{text-align:center}.public-link-actions{justify-content:center;align-items:center;gap:6px;padding:4px 8px;display:flex}.public-link{color:var(--accent-dark);font-size:.85rem;font-weight:600;text-decoration:none}.public-link:hover{text-decoration:underline}.public-event-description{white-space:pre-wrap;margin:8px 0 0;line-height:1.45}.public-event-capacity{margin:6px 0 0}.public-event-summary{padding:10px 12px}.public-share-block{border-top:1px solid var(--line);padding-top:10px}.public-share-block h3{margin:0;font-size:1rem}.public-share-actions{gap:8px;display:grid}.public-share-url{border:1px solid var(--line);white-space:nowrap;background:#f8f6f2;border-radius:8px;padding:6px 8px;font-size:.82rem;display:block;overflow-x:auto}.public-share-buttons{justify-content:flex-end;gap:8px;display:flex}.hero-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.teams-page.page-stack{gap:8px}.teams-page .page-header h1{margin:2px 0;font-size:clamp(1.35rem,2.4vw,1.75rem)}.teams-page .page-copy{margin:0;font-size:.92rem;line-height:1.45}.teams-page .content-card{padding:10px 12px}.teams-page .section-heading{margin-bottom:8px}.teams-page .section-heading h2{font-size:1.15rem}.teams-page-unassigned-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.game-stats-card{gap:10px;display:grid}.game-stats-heading{align-items:center}.game-stats-heading>div{gap:2px;display:grid}.game-stats-heading h2,.game-stats-heading p{margin:0}.game-stats-score{border:1px solid var(--line);background:var(--paper);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.game-stats-score-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:.72rem;font-weight:700}.game-stats-score-fields{align-items:center;gap:10px;display:flex}.game-stats-score-team{align-items:center;gap:8px;font-weight:700;display:flex}.game-stats-score-team input{border:1px solid var(--line);width:3.2rem;color:var(--ink);font:inherit;text-align:center;background:#fff;border-radius:8px;padding:6px 8px;font-size:1.15rem;font-weight:700}.game-stats-score-team input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:none}.game-stats-score-black span{color:#171717}.game-stats-score-white span{color:var(--ink-soft)}.game-stats-score-divider{color:var(--ink-soft);font-size:1.2rem;font-weight:700}.game-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.game-stats-team{border:1px solid var(--line);background:#fff;border-radius:8px;overflow:hidden}.game-stats-team-heading{padding:7px 10px}.game-stats-team-heading h3{font-family:var(--font-display);margin:0;font-size:1rem}.game-stats-team-black .game-stats-team-heading{color:#f5f5f5;background:#171717}.game-stats-team-white .game-stats-team-heading{color:var(--ink);background:#f3f1ec}.game-stats-table .game-stats-num-col{text-align:center;width:3.2rem}.game-stats-table .game-stats-name,.game-stats-table .game-stats-empty,.game-stats-table .game-stats-points,.game-stats-table tfoot td{padding:6px 8px}.game-stats-table .game-stats-empty{color:var(--ink-soft)}.game-stats-table tfoot td{border-top:1px solid var(--line);background:#f3f1ec;font-weight:700}.game-stats-table tbody td{padding:6px 8px}.game-stats-table tbody td.game-stats-num-col{padding:0}.game-stats-unassigned .game-stats-num-col{padding:6px 8px}.game-stats-count-input{text-align:center;appearance:textfield}.game-stats-count-input::-webkit-outer-spin-button{appearance:none;margin:0}.game-stats-count-input::-webkit-inner-spin-button{appearance:none;margin:0}.game-stats-add,.game-stats-add-hint{margin:0;padding:8px 10px}.game-stats-add select{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:6px 8px}.game-stats-unassigned{gap:6px;display:grid}.team-boards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.team-board{border-radius:var(--radius);border:1px solid var(--line);box-shadow:none;padding:10px 12px}.team-board-black{color:#f5f5f5;background:#171717;border-color:#2f2f2f}.team-board-black .muted-copy,.team-board-black .team-section-label,.team-board-black .goalie-slot-label{color:#f5f5f5b8}.team-board-black .goalie-slot{background:#ffffff0f;border-color:#ffffff1f}.team-board-black .button-ghost{color:#fff;background:#ffffff2e;border-color:#ffffff57}.team-board-black .button-ghost:hover{color:#fff;background:#ffffff47}.team-board-white{color:var(--ink);background:#fff}.team-board-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.team-board-header h2{font-family:var(--font-display);margin:0 0 2px;font-size:1.1rem}.team-total-rating{color:inherit;margin:0;font-size:.88rem}.team-section-label,.goalie-slot-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 6px;font-size:.72rem;font-weight:700}.goalie-slot{border:1px dashed var(--line);background:#00000005;border-radius:8px;margin-bottom:8px;padding:6px 8px}.goalie-slot-empty{margin:0;font-size:.88rem}.team-skaters{gap:6px;display:grid}.team-player-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.team-player-row{border:1px solid var(--line);background:var(--paper-elevated);color:#fff;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;transition:background .15s,border-color .15s,color .15s;display:flex}.team-player-meta{color:#ffffffc7;font-size:.8rem}.team-player-row .button-ghost{color:#fff;background:#ffffff29;border-color:#ffffff4d}.team-player-row .button-ghost:hover{color:#fff;background:#ffffff42}.team-player-main{gap:2px;min-width:0;display:grid}.team-player-name{font-size:.92rem;font-weight:600}.teams-page .team-player-row .table-action{padding:4px 8px;font-size:.76rem}.teams-page .row-actions{gap:6px}.team-player-list li{list-style:none}.app-header .brand{color:var(--ink)}.app-header .brand:hover{color:var(--accent-dark)}@media (width<=900px){.auth-shell{grid-template-columns:1fr}.auth-aside{min-height:auto}.app-header{flex-direction:column;align-items:stretch}.app-header-start{flex-direction:column;align-items:flex-start}.app-nav{flex-wrap:wrap}.hero-panel{flex-direction:column}.field-row,.team-boards-grid,.teams-page-unassigned-grid,.game-stats-grid{grid-template-columns:1fr}.game-stats-score{flex-direction:column;align-items:stretch}.game-stats-score-fields{justify-content:space-between}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.summary-page-header{justify-content:space-between;align-items:flex-end;gap:10px;display:flex}.summary-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.summary-page-header h1{margin:0;font-size:1.2rem}.summary-page-header .page-copy{font-size:.8rem}.summary-filter input{border:1px solid var(--line);background:#fff;border-radius:6px;width:180px;padding:4px 8px}.summary-card{padding:6px}.summary-scroll{max-height:calc(100vh - 140px)}.summary-table{--summary-head-primary:62px;border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:.72rem}.summary-table thead th{z-index:3;text-align:center;letter-spacing:.04em;border-bottom:1px solid var(--line);border-right:1px solid var(--line);background:#ece8e1;padding:3px 4px;font-size:.62rem;position:sticky}.summary-table thead tr:first-child th{vertical-align:bottom;top:0}.summary-table thead tr:first-child th.summary-event{height:var(--summary-head-primary)}.summary-table thead tr:last-child th{top:var(--summary-head-primary);z-index:2;text-transform:uppercase}.summary-table .summary-event{white-space:normal;min-width:100px}.summary-event-head{flex-direction:column;justify-content:flex-end;align-items:center;gap:3px;display:flex}.summary-event-filter{width:100%}.summary-event-filter select{border:1px solid var(--line);width:100%;max-width:118px;color:var(--ink);background:#fff;border-radius:4px;padding:1px 2px;font-size:.58rem;font-weight:600}.summary-table thead th.summary-event-filtered{background:#dce8dc}.summary-table .summary-event a{color:var(--ink);letter-spacing:0;text-transform:none;white-space:nowrap;flex-direction:column;justify-content:flex-end;align-items:center;gap:1px;font-size:.7rem;font-weight:700;line-height:1.15;display:flex}.summary-event-week{letter-spacing:.03em;color:var(--ink-soft);font-size:.58rem;font-weight:700}.summary-table .summary-name{z-index:4;text-align:left;text-transform:none;letter-spacing:0;box-sizing:border-box;background:#fff;width:148px;min-width:148px;max-width:148px;padding:2px 8px;font-size:.74rem;font-weight:600;position:sticky;left:0}.summary-table .summary-col-name{width:148px}.summary-table .summary-col-attended{width:36px}.summary-name-text{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.summary-table .summary-attended{z-index:5;text-align:center;text-transform:none;letter-spacing:0;width:36px;min-width:36px;max-width:36px;color:var(--ink);box-sizing:border-box;background:#fff;border-right:2px solid #b9b3a8;padding:2px 4px;font-size:.78rem;font-weight:700;position:sticky;left:148px}.summary-table thead .summary-name,.summary-table thead .summary-attended{z-index:6;vertical-align:middle;background:#ece8e1;top:0}.summary-table tbody .summary-name{z-index:1;border-bottom:1px solid var(--line)}.summary-table tbody td.summary-attended{z-index:5;border-bottom:1px solid var(--line);color:var(--ink);background:#fff;padding:2px 4px}.summary-table .summary-event,.summary-table .summary-group-start{border-left:1px solid #cfc9bf}.summary-table .summary-event a:hover{color:var(--accent-dark)}.summary-table .summary-sub{width:36px;min-width:36px}.summary-table tbody td.summary-cell{text-align:center;border-bottom:1px solid var(--line);border-right:1px solid var(--line);height:20px;padding:1px 2px;font-size:.68rem;font-weight:700;line-height:1.2}.summary-table tbody td.summary-team{font-weight:700}.summary-table tbody tr:hover .summary-name,.summary-table tbody tr:hover .summary-attended{background:#eef5fb}.summary-table.data-table tbody td.summary-yes{color:#143018;background:#73c56f}.summary-table.data-table tbody td.summary-no{color:#6b1d24;background:#f0b8be}.summary-table.data-table tbody td.summary-pend{color:#6a5410;background:#f6e59b}.summary-table.data-table tbody td.summary-team-black{color:#f4f4f4;background:#2b2b2b}.summary-table.data-table tbody td.summary-team-white{color:#1c2430;background:#f3f1ea}.summary-table.data-table tbody tr:hover td.summary-yes{background:#67bb63}.summary-table.data-table tbody tr:hover td.summary-no{background:#e9aeb4}.summary-table.data-table tbody tr:hover td.summary-pend{background:#eed984}.summary-table.data-table tbody tr:hover td.summary-team-black{background:#1f1f1f}.summary-table.data-table tbody tr:hover td.summary-team-white{background:#e7e4db}.summary-table tfoot .summary-name,.summary-table tfoot .summary-attended,.summary-table tfoot td{color:var(--ink);background:#ece8e1;border-top:1px solid #b9b3a8;border-bottom:none;font-weight:700;position:sticky;bottom:0}.summary-table tfoot .summary-name{z-index:6;text-transform:none;letter-spacing:0;left:0}.summary-table tfoot .summary-attended{z-index:6;left:148px}.summary-table tfoot td{z-index:4;text-align:center;padding:2px 4px;font-size:.78rem}.summary-table tfoot td.summary-total-count{font-variant-numeric:tabular-nums}.summary-table tbody td.summary-empty{text-align:left;color:var(--ink-soft);background:#fff;padding:16px 8px;font-weight:500}.ledger-page .summary-filter input{width:min(260px,100%)}.ledger-table-scroll{max-height:calc(100vh - 160px)}.ledger-table tbody td{padding:6px 8px;font-size:.88rem}.ledger-table tbody tr.ledger-row-editing td{background:#fff9f4}.ledger-table tbody tr.ledger-edit-row td{background:#fff9f4;padding:0}.ledger-table .ledger-date-col{white-space:nowrap;color:var(--ink-soft)}.ledger-table .ledger-money-col,.ledger-table .ledger-balance-col{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.ledger-table tbody td.ledger-empty-cell{color:var(--ink-soft);text-align:center;padding:14px 8px}.ledger-type{letter-spacing:.02em;border-radius:999px;padding:1px 6px;font-size:.72rem;font-weight:600;display:inline-block}.ledger-type-asset{color:#2a4a73;background:#e7eef8}.ledger-type-expense{color:#8a3b2a;background:#f8e8e2}.ledger-type-revenue{color:#215c3a;background:#e5f3ea}.ledger-table .ledger-type-select{text-align:left}.ledger-table .ledger-money-input{text-align:right}.ledger-table tfoot tr.new-row td{z-index:3;border-top:1px solid var(--line);background:#f8f6f2;padding:0;position:sticky;bottom:0}.attendees-table tbody td{padding:6px 8px;font-size:.88rem}.attendees-table tbody tr.attendee-row-editing td,.attendees-table tbody tr.attendee-edit-row td{background:#fff9f4}.attendees-table tbody tr.attendee-edit-row td{padding:0}.attendees-table tbody tr.attendee-edit-row td.devices-col,.attendees-table tbody tr.attendee-edit-row td.actions-col{padding:6px 8px}.attendees-table tbody td.attendees-empty-cell{color:var(--ink-soft);text-align:center;padding:14px 8px}.attendees-table .cell-select{text-align:left}.attendees-table tfoot tr.new-row td{z-index:3;border-top:1px solid var(--line);background:#f8f6f2;padding:0;position:sticky;bottom:0}.attendees-table tfoot tr.new-row td.devices-col,.attendees-table tfoot tr.new-row td.actions-col{padding:6px 8px}@media (width<=900px){.summary-page-header,.summary-filters{flex-direction:column;align-items:stretch}.summary-filter input{width:100%}}.finance-kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.finance-kpi{background:var(--paper-elevated);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.finance-kpi-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:.72rem;font-weight:600}.finance-kpi-value{font-family:var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin:6px 0 2px;font-size:1.45rem}.finance-kpi-hint{color:var(--ink-soft);margin:0;font-size:.8rem}.finance-account-table tfoot .ledger-totals-row td{position:static}.finance-account-table tbody tr.finance-heat-row td,.finance-account-table tfoot tr.finance-heat-row td{background:var(--heat);color:var(--ink)}.finance-account-table tbody tr.finance-heat-row:hover td{background:var(--heat);box-shadow:inset 0 0 0 999px #1c24300d}@media (width<=900px){.finance-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.bulk-attendee-card{padding:8px 12px}.bulk-attendee-card.is-open{padding:12px}.bulk-attendee-toggle{width:100%;color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;margin:0;padding:2px 0;display:flex}.bulk-attendee-card.is-open .bulk-attendee-toggle{margin-bottom:10px}.bulk-attendee-toggle:hover .bulk-attendee-toggle-title,.bulk-attendee-toggle:hover .bulk-attendee-toggle-label{color:var(--accent-dark)}.bulk-attendee-toggle-copy{gap:2px;min-width:0;display:grid}.bulk-attendee-toggle-title{font-family:var(--font-display);font-size:1.15rem;font-weight:700;line-height:1.2}.bulk-attendee-toggle-hint{color:var(--ink-soft);font-size:.9rem}.bulk-attendee-toggle-label{color:var(--ink-soft);flex-shrink:0;font-size:.85rem;font-weight:600}.bulk-attendee-form{gap:12px;display:grid}.bulk-attendee-notice{margin:0 0 10px}.bulk-attendee-selected{border:1px solid var(--line);background:var(--paper);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.bulk-event-picker{gap:6px;display:grid}.bulk-event-picker-heading{justify-content:space-between;align-items:center;gap:8px;font-size:.92rem;font-weight:600;display:flex}.bulk-event-picker-actions{gap:4px;display:flex}.bulk-event-check-list{border:1px solid var(--line);background:var(--paper);border-radius:8px;gap:2px;max-height:280px;margin:0;padding:6px;list-style:none;display:grid;overflow:auto}.bulk-event-check{cursor:pointer;border-radius:6px;align-items:flex-start;gap:8px;padding:6px 8px;display:flex}.bulk-event-check:hover{background:#fff}.bulk-event-check span{gap:2px;display:grid}.bulk-event-check span span{color:var(--ink-soft);font-size:.85rem;font-weight:400}.bulk-event-check input{margin-top:3px}.bulk-event-check-locked{cursor:not-allowed;opacity:.65}.bulk-event-check-locked:hover{background:0 0}.teams-print-page{color:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;min-height:100vh;padding:16px}.teams-print-toolbar{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.teams-print-sheet{color:#000;background:#fff;max-width:8.5in;margin:0 auto}.teams-print-heading{border-bottom:2px solid #000;margin-bottom:16px;padding-bottom:10px}.teams-print-kicker{letter-spacing:.12em;text-transform:uppercase;margin:0 0 4px;font-size:.72rem;font-weight:700}.teams-print-heading h1{font-family:var(--font-display);color:#000;margin:0 0 4px;font-size:1.7rem}.teams-print-meta{margin:0;font-size:.95rem}.teams-print-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.teams-print-team{break-inside:avoid;border:2px solid #000}.teams-print-team-header{border-bottom:2px solid #000;justify-content:space-between;align-items:baseline;gap:8px;padding:8px 10px;display:flex}.teams-print-team-header h2{font-family:var(--font-display);margin:0;font-size:1.2rem}.teams-print-team-header p{margin:0;font-size:.85rem}.teams-print-team-black .teams-print-team-header{color:#fff;background:#000}.teams-print-team-white .teams-print-team-header{color:#000;background:#fff}.teams-print-empty{margin:0;padding:12px 10px}.teams-print-table{border-collapse:collapse;width:100%}.teams-print-table th,.teams-print-table td{text-align:left;color:#000;background:#fff;border-bottom:1px solid #000;padding:6px 8px;font-size:.92rem}.teams-print-table th{letter-spacing:.08em;text-transform:uppercase;font-size:.72rem}.teams-print-table tbody tr:last-child td{border-bottom:0}.teams-print-mark-col{text-align:center;width:28px}.teams-print-num-col{width:32px;font-weight:700}.teams-print-name-col{font-weight:600}.teams-print-mark{vertical-align:middle;border:1.5px solid #000;width:14px;height:14px;display:inline-block}@media (width<=720px){.teams-print-grid{grid-template-columns:1fr}}@media print{body{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff!important}.teams-print-page{padding:0}.teams-print-toolbar,.form-error{display:none!important}.teams-print-sheet{max-width:none}.teams-print-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.teams-print-team,.teams-print-table tr{break-inside:avoid}@page{margin:.5in;size:letter portrait}}.teams-stats-sheet{color:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}.teams-stats-sheet .teams-print-grid{gap:12px}.teams-stats-sheet .teams-print-team-header{flex-wrap:wrap;align-items:center;gap:10px}.teams-stats-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.teams-stats-meta label{letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;font-size:.72rem;font-weight:700;display:flex}.teams-stats-meta input{color:#000;width:3.4rem;font:inherit;text-align:center;background:#fff;border:1.5px solid;padding:4px 6px;font-size:.95rem;font-weight:700}.teams-stats-meta input:focus{outline-offset:1px;outline:2px solid #000}.teams-print-team-black .teams-stats-meta input{border-color:#000}.teams-stats-table .teams-stats-num-col,.teams-stats-table .teams-stats-penalty-col,.teams-stats-table .teams-stats-pts{text-align:center;width:3.1rem}.teams-stats-table .teams-stats-penalty-col{width:4.4rem}.teams-stats-table tbody td.teams-stats-num-col,.teams-stats-table tbody td.teams-stats-penalty-col{padding:0}.teams-stats-table .teams-stats-pts{font-weight:700}.teams-stats-table tfoot td{background:#fff;border-top:2px solid #000;border-bottom:0;font-weight:700}
