@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=Fraunces:opsz,wght@9..144,500;9..144,600&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 24px 60px #1c243014;--radius:18px;--font-body:"DM Sans", system-ui, sans-serif;--font-display:"Fraunces", Georgia, 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:24px}.auth-shell{grid-template-columns:minmax(280px,1.1fr) minmax(320px,.9fr);gap:24px;max-width:1120px;min-height:calc(100vh - 48px);margin:0 auto;display:grid}.auth-aside{border-radius:calc(var(--radius) + 8px);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:32px;display:flex}.brand{font-family:var(--font-display);color:#fff;letter-spacing:-.03em;font-size:1.5rem}.auth-aside-content h1{font-family:var(--font-display);letter-spacing:-.03em;margin:12px 0 16px;font-size:clamp(2rem,4vw,3.2rem);line-height:1.05}.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:42rem;line-height:1.6}.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:calc(var(--radius) + 4px);width:100%;box-shadow:var(--shadow);padding:32px}.auth-card-header h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 8px;font-size:2rem}.auth-card-header p,.auth-card-footer p{color:var(--ink-soft);margin:0;line-height:1.5}.auth-card-footer{margin-top:20px}.auth-form{gap:16px;margin-top:28px;display:grid}.field{gap:8px;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:12px;padding:14px 16px;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 4px 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:14px 18px;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:10px 16px;font-weight:600}.button-ghost:hover{background:var(--paper)}.button-dark{background:var(--ink);color:#fff;border:1px solid var(--ink);padding:10px 16px;font-weight:600}.button-dark:hover{color:#fff;background:#111820}.form-error{background:var(--danger-soft);color:var(--danger);border-radius:12px;padding:12px 14px;font-size:.95rem}.page-loading{min-height:100vh;color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;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:12px;padding:12px 14px;font-size:.95rem}.event-locked-banner{color:#7a5c1e;background:#fff8eb;border:1px solid #d4c4a8;border-radius:12px;padding:12px 14px;font-size:.95rem}.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:#ffffffb8;justify-content:space-between;align-items:center;gap:16px;padding:20px 32px;display:flex;position:sticky;top:0}.app-header-start,.app-header-end{align-items:center;gap:16px;display:flex}.app-nav{gap:8px;display:flex}.nav-link{color:var(--ink-soft);border-radius:999px;padding:8px 14px;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{max-width:920px;margin:0 auto;padding:32px 24px 48px}.page-stack{gap:20px;display:grid}.page-header h1{font-family:var(--font-display);letter-spacing:-.03em;margin:8px 0 12px;font-size:clamp(2rem,4vw,2.8rem)}.page-copy,.muted-copy{color:var(--ink-soft);max-width:42rem;line-height:1.6}.hero-panel{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.content-card{background:var(--paper-elevated);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow);padding:28px}.section-heading{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:20px;display:flex}.section-heading h2{font-family:var(--font-display);margin:0;font-size:1.5rem}.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.5rem}.bulk-rsvp-actions{flex-shrink:0;align-items:flex-end;gap:10px;display:flex}.bulk-rsvp-field{min-width:150px;margin:0}.bulk-rsvp-select{border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;background:#fff;border-radius:12px;padding:10px 12px}.bulk-rsvp-button{white-space:nowrap}.attendee-groups{gap:28px;display:grid}.attendee-group-section{gap:12px;display:grid}.attendee-group-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.attendee-group-heading h3{font-family:var(--font-display);margin:0;font-size:1.15rem}.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:12px;margin:0;padding:16px}.stack-form{gap:16px;display:grid}.field textarea{border:1px solid var(--line);width:100%;color:var(--ink);resize:vertical;background:#fff;border-radius:12px;min-height:120px;padding:14px 16px}.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:none}.field-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.field-group{gap:16px;padding-top:8px;display:grid}.field-group-label{margin:0;font-weight:700}.form-actions{justify-content:flex-end;gap:12px;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:14px;gap:8px;padding:24px;display:grid}.event-list{gap:16px;margin:0;padding:0;list-style:none;display:grid}.event-card{border:1px solid var(--line);background:var(--paper);border-radius:16px;gap:16px;padding:20px;display:grid}.event-card-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.event-card-action{white-space:nowrap;flex-shrink:0}.event-card-main h3{margin:0 0 8px;font-size:1.2rem}.event-card-main p{color:var(--ink-soft);margin:0;line-height:1.5}.event-meta{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:0;display:grid}.event-meta div{border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px}.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 16px;font-size:1.35rem}.subheading{margin:0 0 12px;font-size:.95rem;font-weight:700}.entity-list,.list-collection{gap:12px;margin:0;padding:0;list-style:none;display:grid}.entity-row,.list-card{border:1px solid var(--line);background:var(--paper);border-radius:16px;padding:16px}.entity-row{justify-content:space-between;align-items:flex-start;gap:16px;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:16px;display:flex}.list-card h3{margin:0 0 6px}.list-card p{color:var(--ink-soft);margin:0}.member-toolbar{gap:8px;margin-top:16px;display:flex}.member-toolbar select{border:1px solid var(--line);background:#fff;border-radius:12px;flex:1;padding:12px 14px}.chip-list{flex-wrap:wrap;gap:8px;margin:12px 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:8px;padding:8px 12px;font-size:.92rem;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:20px;display:grid}.picker-section{border:1px solid var(--line);background:var(--paper);border-radius:14px;padding:16px}.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:8px;margin:16px 0 0;padding:0;list-style:none;display:grid}.picker-item{cursor:pointer;align-items:flex-start;gap:12px;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:8px 0 0;font-size:.9rem}.autocomplete-list{z-index:10;border:1px solid var(--line);background:#fff;border-radius:12px;max-height:280px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 4px);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:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;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:20px}.list-collection.compact .list-card.compact{padding:14px}.spaced-top{margin-top:20px}.app-main:has(.page-stack-wide){width:100%;max-width:min(1680px,100vw - 48px)}.page-stack-wide{width:100%}.event-page-body{align-items:start;gap:20px;width:100%;display:grid}@media (width>=1080px){.event-page-body{grid-template-columns:minmax(300px,360px) 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:16px}.table-card{padding:20px}.table-banner{margin-bottom:16px}.table-scroll{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:auto}.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:10px 12px;font-size:.78rem;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:10px 12px}.cell-input:focus{outline:2px solid var(--accent-soft);outline-offset:-2px;background:#fff}.data-table .actions-col{width:480px;min-width:480px}.data-table .name-col{padding-left:18px}.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:10px 12px}.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:10px 12px}.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:8px;padding:6px 8px;display:flex}.row-status{color:var(--ink-soft);font-size:.78rem}.row-status.muted{color:var(--accent-dark)}.table-action{padding:6px 10px;font-size:.82rem}.table-hint{margin-top:12px}.public-page{min-height:100vh;padding:24px}.public-page-shell{max-width:960px;margin:0 auto}.public-page-header{margin-bottom:24px}.brand-dark{color:var(--ink)}.brand-dark:hover{color:var(--accent-dark)}.portal-heading{flex-direction:column;align-items:flex-start;gap:8px}.portal-heading h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(1.75rem,4vw,2.4rem)}.portal-heading-copy{color:var(--ink-soft);max-width:42rem;margin:0;line-height:1.5}.data-table tbody td.portal-event-cell{vertical-align:middle;padding:18px 12px 18px 18px}.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{padding:16px 14px 28px}.portal-page .public-page-shell{max-width:640px}.portal-page .content-card,.portal-page .portal-card{padding:14px 14px 12px}.portal-page .public-page-header{margin-bottom:10px}.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:10px 12px 10px 14px}.portal-page .data-table .rsvp-col{width:132px;min-width:132px}.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}@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:8px;padding:6px 12px;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:16px 0 0;line-height:1.6}.public-event-capacity{margin:12px 0 0}.public-event-summary{padding:20px}.public-share-block{border-top:1px solid var(--line);padding-top:20px}.public-share-block h3{margin:0;font-size:1rem}.public-share-actions{gap:12px;display:grid}.public-share-url{border:1px solid var(--line);white-space:nowrap;background:#f8f6f2;border-radius:10px;padding:12px 14px;font-size:.85rem;display:block;overflow-x:auto}.public-share-buttons{justify-content:flex-end;gap:10px;display:flex}.hero-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.teams-page.page-stack{gap:12px}.teams-page .page-header h1{margin:4px 0;font-size:clamp(1.65rem,3vw,2.2rem)}.teams-page .page-copy{margin:0;font-size:.92rem;line-height:1.45}.teams-page .content-card{padding:14px 16px}.teams-page .section-heading{margin-bottom:10px}.teams-page .section-heading h2{font-size:1.15rem}.teams-page-unassigned-grid,.team-boards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.team-board{border-radius:calc(var(--radius) + 2px);border:1px solid var(--line);box-shadow:var(--shadow);padding:14px 16px}.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:10px;display:flex}.team-board-header h2{font-family:var(--font-display);margin:0 0 2px;font-size:1.2rem}.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:12px;margin-bottom:10px;padding:8px 10px}.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:12px;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;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}@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{grid-template-columns:1fr}}
