:root{color-scheme:dark;font-family:system-ui,sans-serif;--color-bg:#1a1a1a;--color-surface:#202224;--color-surface-raised:#292c2f;--color-border:#4a4f54;--color-text:#f4f4f2;--color-muted:#b8bdc2;--color-section-marker:#73787d;--color-brand:#bd2633;--color-brand-hover:#d63240;--color-brand-dark:#901923;--color-focus:#ed5964}body{margin:0;padding:2.5rem 1.25rem 3.5rem;background:var(--color-bg);color:var(--color-text)}main{max-width:42rem;margin:auto}main:has(.calendar-shell),main:has(.admin-page){max-width:76rem}h1,h2,h3,h4{color:var(--color-text)}h1{margin:0;font-size:clamp(2.35rem,5vw,3.25rem);font-weight:850;letter-spacing:-.045em;line-height:.98}h2,h3,h4{letter-spacing:-.018em}p{line-height:1.6}.page-title{position:relative;margin:0 0 2.25rem;padding:0 0 1.05rem;border-bottom:1px solid var(--color-border)}.page-title:after{position:absolute;bottom:-1px;left:0;width:4rem;height:4px;background:var(--color-brand);content:''}.status{margin-top:2rem;font-weight:600}a{color:var(--color-text);font-weight:650;text-decoration-color:#858b91;text-decoration-thickness:.1em;text-underline-offset:.16em}a:visited{color:var(--color-text)}a:hover{color:#fff;text-decoration-color:var(--color-brand)}a:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}form{margin:1rem 0 2rem}label{display:block;margin:.75rem 0;color:var(--color-text);font-size:.94rem;font-weight:750}input:not([type=checkbox]),select,textarea{display:block;box-sizing:border-box;width:100%;max-width:34rem;min-height:2.7rem;padding:.62rem .75rem;border:1px solid var(--color-border);border-radius:.5rem;background:#191b1d;color:var(--color-text);font:inherit}option{background:#191b1d;color:var(--color-text)}textarea{min-height:6rem;resize:vertical}input[type=file]{padding:.42rem}input::placeholder,textarea::placeholder{color:#949ba2}input:not([type=checkbox]):hover,select:hover,textarea:hover{border-color:#777e85}input:not([type=checkbox]):focus,select:focus,textarea:focus{outline:3px solid color-mix(in srgb,var(--color-focus) 70%,transparent);outline-offset:2px;border-color:var(--color-focus)}.band-url span{display:block;margin-bottom:.35rem;overflow-wrap:anywhere}button:not(.availability-button),.button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:2.7rem;padding:.55rem .95rem;margin:.25rem .4rem .25rem 0;border:1px solid #676e74;border-radius:.5rem;background:var(--color-surface-raised);color:var(--color-text);font:inherit;font-weight:800;cursor:pointer;text-decoration:none;transition:background-color .14s,border-color .14s,color .14s}button:not(.availability-button):hover,.button:hover{border-color:#92999f;background:#35393d;color:#fff}button:not(.availability-button):focus-visible,.button:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}button:not(.availability-button):disabled{cursor:not-allowed;opacity:.55}.button-primary{border-color:var(--color-brand);background:var(--color-brand);color:#fff}.button-primary:hover{border-color:var(--color-brand-hover);background:var(--color-brand-hover);color:#fff}.button-secondary{border-color:#6b7278;background:var(--color-surface-raised)}.button-danger{border-color:#c9505b;background:#351d20;color:#ffdfe2}.button-danger:hover{border-color:#e76773;background:#8d1f2b;color:#fff}.button-quiet{border-color:transparent;background:transparent;color:var(--color-muted);text-decoration:underline;text-underline-offset:.16em}.button-quiet:hover{border-color:#555b60;background:#292c2f;color:#fff}fieldset{margin:1rem 0;border:1px solid var(--color-border);border-radius:.55rem}legend{padding:0 .35rem;font-weight:800}.choice{display:flex;align-items:center;gap:.4rem}.choice input,.legal-choice input{width:1.1rem;height:1.1rem;accent-color:var(--color-brand)}

.admin-enhanced .preference-save{display:none}

/* Header floats directly on the canvas: deliberately no bottom divider. */
.main-nav{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem 1rem;margin-bottom:2.5rem}.main-nav .brand{display:inline-flex;align-items:center;flex:0 1 10.5rem;margin-right:auto}.main-nav .brand img{display:block;width:min(100%,10.5rem);height:auto}.main-nav .brand:focus-visible,.main-nav a:focus-visible,.main-nav button:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.main-nav>a:not(.brand){display:inline-flex;align-items:center;min-height:40px;padding:0 .6rem;border:1px solid transparent;border-radius:.35rem;font-weight:800;text-decoration:none}.main-nav>a:not(.brand):hover{background:#292c2f}.main-nav>a[aria-current=page]{border-color:#82323a;background:#3b2024;color:#fff}.notice{padding:.85rem .95rem;border:1px solid #96732e;border-left-width:4px;border-radius:.35rem;background:#30291b;color:#fff4d5;overflow-wrap:anywhere}.inline-success{color:#82d7a3;font-weight:650}.inline-error{margin:.6rem 0;padding:.65rem .75rem;border-left:4px solid #dc4b58;background:#351d20;color:#ffdfe2;font-weight:650;overflow-wrap:anywhere}.hint,.band-meta,.member-summary{color:var(--color-muted)}.site-legal{max-width:42rem;margin:3rem auto 0;color:var(--color-muted);font-size:.9rem}.legal-choice{display:flex;align-items:flex-start;gap:.55rem}.legal-choice input{flex:0 0 auto;margin-top:.25rem}.legal-document{overflow-wrap:anywhere}.legal-document h2{margin-top:2rem}.legal-dialog{width:min(92vw,54rem);height:min(88vh,52rem);padding:1rem;border:1px solid #747b81;border-radius:.7rem;background:var(--color-surface);color:var(--color-text)}.legal-dialog::backdrop{background:#080909cc}.legal-dialog iframe{display:block;width:100%;height:calc(100% - 3.4rem);margin-top:.6rem;border:0;background:#fff}

.calendar-shell{margin-top:-.25rem}.calendar-kind-navigation{display:flex;gap:.3rem;margin:0 0 1.25rem}.calendar-kind-navigation a{padding:.4rem .65rem;border:1px solid transparent;border-radius:.35rem;color:var(--color-muted);font-size:.95rem;font-weight:800;text-decoration:none}.calendar-kind-navigation a:hover{background:#292c2f;color:#fff}.calendar-kind-navigation a[aria-current=page]{border-color:#82323a;background:#3b2024;color:#fff}.calendar-kind-navigation a:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.band-switcher{max-width:22rem;margin-bottom:.9rem;color:var(--color-muted);font-weight:800}.band-switcher select{margin-top:.35rem;font-weight:700}.month-navigation{display:grid;grid-template-columns:3rem 1fr 3rem;align-items:center;gap:.5rem;margin:1.5rem 0 1rem}.month-navigation h2{margin:0;text-align:center;font-size:1.8rem;font-weight:850;letter-spacing:-.035em}.month-navigation a{display:grid;place-items:center;min-height:44px;border:1px solid #676e74;border-radius:.55rem;background:var(--color-surface);font-size:1.4rem;text-decoration:none}.month-navigation a:hover{border-color:var(--color-brand);background:#3b2024;color:#fff}.calendar-headings,.calendar-week{display:grid;grid-template-columns:repeat(var(--gig-columns),minmax(0,1fr));gap:.65rem}.calendar-headings{padding:.55rem .25rem;color:var(--color-muted);font-size:.75rem;font-weight:850;letter-spacing:.08em;text-align:center;text-transform:uppercase}.calendar-week{margin-bottom:.65rem}.calendar-card{position:relative;box-sizing:border-box;min-width:0;min-height:10.5rem;padding:.85rem;border:2px solid #596066;border-radius:.8rem;background:#292c2f;color:var(--color-text);overflow-wrap:anywhere}.calendar-card:has(.calendar-lock-control) header{padding-right:6.9rem}.calendar-card header{display:flex;align-items:baseline;gap:.5rem}.calendar-card time{font-size:1.7rem;font-weight:900;letter-spacing:-.04em}.card-weekday{display:none;font-weight:750}.calendar-card.is-today{outline:3px solid #aab0b5;outline-offset:2px}/* Calendar colors remain domain semantics, never decorative brand red. */.state-incomplete{border-color:#cc616a;background-color:#f3eeee;background-image:repeating-linear-gradient(135deg,rgba(177,25,36,.34) 0,rgba(177,25,36,.34) 12px,#f3eeee 12px,#f3eeee 24px);color:#24191a}.state-all-in{border-color:#3bb570;background:#157044;color:#fff}.state-blocked{border-color:#e25d68;background:#9e202b;color:#fff}.state-past{border-color:#3f4448;background:#202224;color:#90969c}.state-past time{color:#a8aeb4}.availability-status{min-height:2.7rem;margin:.55rem 0;font-weight:750;line-height:1.35}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.participant-avatars{display:flex;flex-wrap:wrap;gap:.35rem;margin:.7rem 0}.participant-avatar{--avatar-size:36px;isolation:isolate;position:relative;box-sizing:border-box;display:inline-grid;width:var(--avatar-size);height:var(--avatar-size);flex:0 0 var(--avatar-size);place-items:center;overflow:visible;border:3px solid #899097;border-radius:50%;background:#c7d0d8;color:#17212b;font-size:.72rem;font-weight:900}.participant-avatar img,.participant-avatar .avatar-initials{display:grid;width:100%;height:100%;place-items:center;border-radius:inherit;object-fit:cover}.participant-avatar.status-in{background:#5bc583;border-color:#075c31;color:#071d10}.participant-avatar.status-out{background:#e36c75;border-color:#941923;color:#2a080d}.participant-avatar.status-none{background:#c7d0d8;border-color:#64717c;color:#17212b}.participant-avatar.status-in img{filter:sepia(.45) saturate(1.45) hue-rotate(82deg)}.participant-avatar.status-out img{filter:sepia(.5) saturate(1.5) hue-rotate(305deg)}.participant-avatar.status-none img{filter:grayscale(1)}.participant-avatar:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.avatar-tooltip{position:absolute;z-index:2;bottom:calc(100% + .45rem);left:50%;width:max-content;max-width:14rem;padding:.3rem .45rem;border-radius:.35rem;background:#080909;color:#fff;font-size:.7rem;font-weight:700;line-height:1.2;opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition:opacity .12s,transform .12s}.participant-avatar:hover .avatar-tooltip,.participant-avatar:focus-visible .avatar-tooltip{opacity:1;transform:translate(-50%,0)}.availability-controls{display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin:.6rem 0 0}.availability-button{min-height:48px;margin:0;border:2px solid currentColor;border-radius:.7rem;background:rgba(255,255,255,.94);color:#263442;font-weight:850}.availability-button svg{width:1.5rem;height:1.5rem;fill:currentColor;vertical-align:middle}.availability-button:focus-visible{outline:3px solid #f4f4f2;outline-offset:2px}.availability-button.availability-in.selected{border-color:#064525;background:#075c31;color:#fff;box-shadow:inset 0 0 0 2px #fff}.availability-button.availability-out.selected{border-color:#70101a;background:#941923;color:#fff;box-shadow:inset 0 0 0 2px #fff}.availability-button:disabled{cursor:wait;opacity:.6}.availability-error{grid-column:1/-1;color:#ffdfe2;font-size:.85rem;font-weight:700}.state-incomplete .availability-error{color:#70101a}

.band-heading{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem}.band-heading>span:first-child{min-width:0;overflow-wrap:anywhere}.admin-page{display:grid;gap:clamp(1.4rem,3vw,2rem)}.admin-surface,.editorial-section{min-width:0;padding:clamp(1rem,2vw,1.5rem);border:1px solid var(--color-border);border-radius:.75rem;background:var(--color-surface)}.section-heading{position:relative;margin-bottom:1.5rem;padding:0 0 .85rem 1rem;border-bottom:1px solid var(--color-border)}.section-heading:before{position:absolute;top:.1rem;bottom:.9rem;left:0;width:4px;border-radius:4px;background:var(--color-section-marker);content:''}.section-heading h2,.admin-surface>h2{margin:0;font-size:1.65rem;font-weight:875;letter-spacing:-.035em}.section-heading p{margin:.3rem 0 0;color:var(--color-muted)}.profile-card{display:flex;align-items:center;gap:1.5rem}.profile-identity{min-width:0}.profile-identity h3{margin:0;font-size:1.25rem}.profile-identity form{margin-bottom:.4rem}.profile-identity .hint{margin:.2rem 0}.profile-photo-actions,.profile-invitation-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.4rem}.profile-photo-actions form,.profile-invitation-actions form,.profile-invitation-actions .button{margin:0}.profile-avatar{display:grid;width:128px;height:128px;flex:0 0 128px;place-items:center;border:2px solid #737a80;border-radius:50%;background:#35393d;color:#fff;object-fit:cover;font-size:2rem;font-weight:850}.quick-start{border-color:#765158;background:#292326}.quick-start-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.quick-start-header form{flex:0 0 auto;margin:-.35rem -.45rem 0 0}.quick-start-header .button-quiet{min-height:44px}.quick-start-eyebrow{margin:0 0 .25rem;color:#e15b66;font-size:.73rem;font-weight:850;letter-spacing:.12em}.quick-start h2{margin:0;font-size:clamp(1.7rem,3vw,2.15rem);line-height:1.05}.quick-start-intro{margin:.38rem 0 0;color:var(--color-muted);font-weight:650}.quick-start-steps{display:grid;max-width:58rem;gap:.65rem;margin:0;padding:0;list-style:none}.quick-start-steps li{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.7rem;align-items:start;padding:.72rem .8rem;border:1px solid #51474a;border-radius:.65rem;background:#242628}.quick-start-number{display:grid;width:1.75rem;height:1.75rem;place-items:center;border-radius:50%;background:var(--color-brand);color:#fff;font-size:.82rem;font-weight:850;line-height:1}.quick-start-steps h3{margin:.02rem 0 0;font-size:1rem}.quick-start-steps p{margin:.15rem 0 0;color:var(--color-muted)}.quick-start-steps .quick-start-green{border-color:#417052;background:#202b24}.quick-start-green .quick-start-number{background:#147542}.getting-started-restore{margin-top:-.35rem}.getting-started-restore form{margin:0}.getting-started-restore .button-quiet{min-height:32px;padding:.2rem .4rem;font-size:.85rem;font-weight:650}.band-list,.members,.invitation-list{margin:.75rem 0;padding:0;list-style:none}.band-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-top:1px solid #454a4f}.band-row>div{min-width:0}.band-row a{font-size:1.08rem;font-weight:800}.band-row form{flex:0 0 auto;margin:0}.band-meta{margin:.15rem 0 0;font-size:.92rem}.account-section form{margin:0}.account-closure,.band-status{margin-top:1.75rem;padding:1.15rem 1.2rem 1.25rem;border:1px solid #91434c;border-left:5px solid #c23b47;border-radius:.5rem;background:#2d2022}.account-closure form,.band-status form{max-width:32rem;margin-bottom:0}.settings-grid,.invitation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem 2rem}.settings-grid>div,.invitation-grid>section{min-width:0}.settings-grid h3,.invitation-grid h3{margin-top:0}.setting-value{margin-top:.25rem;font-weight:700;overflow-wrap:anywhere}.scheduling-group,.invitation-grid>section,.member-actions{padding:1rem;border:1px solid #4e5358;border-radius:.55rem;background:var(--color-surface-raised)}.weekday-grid,.role-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.2rem 1rem}.weekday-options,.role-options{padding:.6rem .9rem .8rem;background:#202224}.weekday-options .choice,.role-options .choice{margin:.35rem 0}.members{display:grid;gap:.65rem}.member-card{overflow:hidden;border:1px solid #4d5358;border-radius:.55rem;background:#25282a}.member-card[open]{border-color:#777f85}.member-card-you{border-color:#657078;background:#2a2d30}.member-card summary{display:grid;gap:.25rem;padding:.85rem 1rem;cursor:pointer}.member-card summary:hover{background:#303336}.member-card summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px}.member-name{font-weight:850}.you-badge{display:inline-block;margin-left:.35rem;padding:.1rem .4rem;border:1px solid #778087;border-radius:999px;background:#35393d;color:#fff;font-size:.75rem;font-weight:800;line-height:1.2;vertical-align:middle}.member-detail{padding:.9rem 1rem 1rem;border-top:1px solid #4a4f54}.member-detail>p:first-child{margin-top:0}.member-detail form{margin-bottom:1rem}.member-actions h4{margin:0 0 .35rem;font-size:1rem}.member-actions form{margin:0}.last-manager-helper{margin-top:.75rem}.invitation-list li{padding:.75rem 0;border-top:1px solid #454a4f;overflow-wrap:anywhere}.invitation-list form{display:inline;margin:0 0 0 .35rem}

.calendar-mobile-empty-state{display:none;margin:2rem 0;color:var(--color-muted);text-align:center}
@media (max-width: 80rem) { .weekday-count-7 .calendar-headings { display: none; } .weekday-count-7 .calendar-week { display: block; margin: 0; } .weekday-count-7 .calendar-card { min-height: 0; margin-bottom: .75rem; } .calendar-current-month.weekday-count-7 .calendar-card.state-past { display: none; } .calendar-current-month.weekday-count-7 .calendar-mobile-empty-state { display: block; } .weekday-count-7 .calendar-blank { display: none; } .weekday-count-7 .card-weekday { display: inline; } }
@media (max-width: 72rem) { .weekday-count-6 .calendar-headings { display: none; } .weekday-count-6 .calendar-week { display: block; margin: 0; } .weekday-count-6 .calendar-card { min-height: 0; margin-bottom: .75rem; } .calendar-current-month.weekday-count-6 .calendar-card.state-past { display: none; } .calendar-current-month.weekday-count-6 .calendar-mobile-empty-state { display: block; } .weekday-count-6 .calendar-blank { display: none; } .weekday-count-6 .card-weekday { display: inline; } }
@media (max-width: 64rem) { .weekday-count-5 .calendar-headings { display: none; } .weekday-count-5 .calendar-week { display: block; margin: 0; } .weekday-count-5 .calendar-card { min-height: 0; margin-bottom: .75rem; } .calendar-current-month.weekday-count-5 .calendar-card.state-past { display: none; } .calendar-current-month.weekday-count-5 .calendar-mobile-empty-state { display: block; } .weekday-count-5 .calendar-blank { display: none; } .weekday-count-5 .card-weekday { display: inline; } }
@media (max-width: 54rem) { .weekday-count-4 .calendar-headings { display: none; } .weekday-count-4 .calendar-week { display: block; margin: 0; } .weekday-count-4 .calendar-card { min-height: 0; margin-bottom: .75rem; } .calendar-current-month.weekday-count-4 .calendar-card.state-past { display: none; } .calendar-current-month.weekday-count-4 .calendar-mobile-empty-state { display: block; } .weekday-count-4 .calendar-blank { display: none; } .weekday-count-4 .card-weekday { display: inline; } }
@media (max-width: 44rem) { .weekday-count-3 .calendar-headings { display: none; } .weekday-count-3 .calendar-week { display: block; margin: 0; } .weekday-count-3 .calendar-card { min-height: 0; margin-bottom: .75rem; } .calendar-current-month.weekday-count-3 .calendar-card.state-past { display: none; } .calendar-current-month.weekday-count-3 .calendar-mobile-empty-state { display: block; } .weekday-count-3 .calendar-blank { display: none; } .weekday-count-3 .card-weekday { display: inline; } }
@media (max-width: 35rem) { body { padding: 1.5rem 1rem; } h1 { font-size: 2.2rem; } button { min-height: 44px; } .main-nav { gap: .5rem .8rem; } .main-nav .brand { flex-basis: 100%; margin-right: 0; } .main-nav .brand img { width: 9.5rem; } .band-heading { align-items: flex-start; } .profile-card { flex-direction: column; } .admin-surface, .editorial-section { padding: 1rem; } .settings-grid, .invitation-grid { grid-template-columns: 1fr; gap: 1rem; } .weekday-grid, .role-grid { grid-template-columns: 1fr; } .band-row { align-items: flex-start; flex-direction: column; gap: .35rem; } .member-card summary { padding-right: .75rem; } .calendar-shell .calendar-headings { display: none; } .calendar-shell .calendar-week { display: block; margin: 0; } .calendar-shell .calendar-card { min-height: 0; margin-bottom: .75rem; } .calendar-current-month .calendar-card.state-past { display: none; } .calendar-current-month .calendar-mobile-empty-state { display: block; } .calendar-shell .calendar-blank { display: none; } .calendar-shell .card-weekday { display: inline; } }

.band-manager-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.15rem}.band-manager-actions form{display:flex;align-items:center;margin:0;padding:0;line-height:1}.band-manager-actions :is(a,button).band-manager-action{display:inline-flex;align-items:center;justify-content:flex-start;box-sizing:border-box;min-height:44px;margin:0;gap:.5rem;padding:0 .55rem;border:1px solid transparent;border-radius:.6rem;background:transparent;color:var(--color-text);font-family:system-ui,sans-serif;font-size:1rem;font-weight:800;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;text-decoration:none;cursor:pointer;appearance:none;transition:background-color .14s,border-color .14s,color .14s}.manager-action-icon{width:1.25rem;height:1.25rem;flex:0 0 auto;fill:currentColor}.band-manager-actions :is(a,button).band-manager-action:hover{border-color:#82323a;background:#3b2024;color:#fff}.band-manager-actions :is(a,button).band-manager-action:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.band-manager-feedback{margin:.35rem 0 0;color:var(--color-muted);font-family:system-ui,sans-serif;font-size:.9rem;font-weight:650;line-height:1.45;letter-spacing:normal;word-spacing:normal;text-transform:none;white-space:normal}
main:has(.calendar-shell), main:has(.admin-page) { max-width: 76rem; }
/* Game info keeps compact metadata controls intentionally unfilled on desktop. */
.game-info-grid,.game-details-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem 2rem}.game-info-grid>div,.game-details-grid>div{min-width:0}.game-name-field{grid-column:1/span 2}.game-timezone-field{grid-column:3/span 2}.game-details-panel{grid-column:1/-1}.game-info-grid h3{margin:0}.game-info-grid form>label{margin:.35rem 0 .75rem}.game-details-panel form{margin:0}.game-details-grid{gap:.85rem 2rem;margin-top:0}.game-system-field{grid-column:1/span 2}.game-system-custom{grid-column:3/span 2}.game-system-custom[hidden]{display:none!important}.game-description{grid-column:1/-1}.game-description textarea{max-width:none}.game-player-min{grid-column:1/span 2}.game-details-actions{grid-column:1/-1}.game-details-grid .hint{margin:.35rem 0 0}
@media (max-width:35rem){.game-info-grid,.game-details-grid{grid-template-columns:1fr;gap:1rem}.game-name-field,.game-timezone-field,.game-details-panel,.game-system-field,.game-system-custom,.game-description,.game-player-min,.game-details-actions{grid-column:auto}}
/* Daypart availability uses semantic tints without fading card contents. */
.state-full-overlap{border-color:#3bb570;background-color:rgba(21,112,68,.12)}
.state-limited-overlap{border-color:#d59a32;border-style:dashed;background-color:rgba(213,154,50,.11)}
.state-no-overlap{border-color:var(--color-brand);background-color:rgba(189,38,51,.11)}
.state-unanswered,.state-no-lineup{border-color:#596066;background-color:#292c2f}
.state-past{opacity:.78}
.common-availability-icons{display:inline-flex;align-items:center;gap:.18rem;white-space:nowrap}
.daypart-icon{display:inline-flex;color:#7f878e}
.daypart-icon svg,.daypart-choice svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.daypart-icon.icon-available{color:#52c77d}
.daypart-icon.icon-no-overlap{color:#e25d68}
.participant-avatar.status-full{background:#5bc583;border-color:#075c31;color:#071d10}
.participant-avatar.status-limited{background:#d9a23f;border-color:#8b5c0d;color:#241805}
.participant-avatar.status-unavailable{background:#e36c75;border-color:#941923;color:#2a080d}
.participant-avatar.status-full img{filter:sepia(.45) saturate(1.45) hue-rotate(82deg)}
.participant-avatar.status-limited img{filter:sepia(.65) saturate(1.4) hue-rotate(350deg)}
.participant-avatar.status-unavailable img{filter:sepia(.5) saturate(1.5) hue-rotate(305deg)}
.availability-controls{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-items:start}
.calendar-card:has(.limited-editor[data-open]){position:relative;z-index:1}
.availability-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;align-items:start}
.availability-actions>.availability-action-control{min-width:0}
.calendar-lock-control,.gig-day-list-badge{display:inline-flex;align-items:center;gap:.25rem;font-size:.7rem;font-weight:900;letter-spacing:.04em;white-space:nowrap}.gig-day-chrome{position:absolute;top:.7rem;right:.7rem}.calendar-lock-control[data-gig-day-lock-state=open]{color:var(--color-text)}.calendar-lock-control[data-gig-day-lock-state=closed]{color:#52c77d}.gig-day-control{margin:0}.gig-day-control.calendar-lock-control button{display:inline-flex;align-items:center;gap:.25rem;min-height:0;padding:.28rem .38rem;border:1px solid currentColor;border-radius:.35rem;background:transparent;color:inherit;font:inherit}.state-incomplete .calendar-lock-control{color:#fff}.state-incomplete .calendar-lock-control[data-gig-day-lock-state=closed]{color:#52c77d}.state-incomplete .gig-day-control.calendar-lock-control button,.state-incomplete .gig-day-badge.calendar-lock-control{padding:.28rem .38rem;border:1px solid currentColor;border-radius:.35rem;background:var(--color-surface)}.gig-day-control.calendar-lock-control button:hover{background:rgba(255,255,255,.14)}.state-incomplete .gig-day-control.calendar-lock-control button:hover{background:var(--color-surface-raised)}.gig-day-control.calendar-lock-control button:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.calendar-lock-control svg,.gig-day-list-badge svg{width:.9rem;height:.9rem;fill:currentColor}.gig-day-list-badge{color:#d7dde1}.available-days li .gig-day-list-badge{color:#d7dde1}.gig-day-dialog{width:min(92vw,30rem);padding:1.25rem;border:1px solid var(--color-border);border-radius:.75rem;background:var(--color-surface);color:var(--color-text);box-shadow:0 1.25rem 3rem rgba(0,0,0,.45)}.gig-day-dialog::backdrop{background:rgba(8,9,9,.78)}.gig-day-dialog form{margin:0}.gig-day-dialog h2{margin:0;font-size:1.4rem}.gig-day-dialog p{margin:.7rem 0 1.1rem;color:var(--color-muted)}.gig-day-dialog-actions{display:flex;flex-wrap:wrap;gap:.4rem}.gig-day-dialog-actions button{margin:0}
.availability-action-control{display:grid;box-sizing:border-box;width:100%;height:48px;min-height:48px;place-items:center;margin:0;padding:0 .35rem;border:2px solid currentColor;border-radius:.7rem;transition:background-color .15s ease-out,border-color .15s ease-out,color .15s ease-out,box-shadow .18s ease-out}
.availability-action-icon{display:block;width:1.5rem;height:1.5rem;flex:none}
.availability-action-icon>svg,.availability-action-control>svg{display:block;width:100%;height:100%}
.availability-limited{border-color:#697177;background:#26292c;color:var(--color-text)}
.availability-button.availability-full.selected{border-color:#064525;background:#075c31;color:#fff;box-shadow:inset 0 0 0 2px #fff}
.availability-button.availability-limited.selected{border-color:#d59a32;background:rgba(213,154,50,.14);color:var(--color-text)}
.availability-button.availability-unavailable.selected{border-color:#70101a;background:#941923;color:#fff;box-shadow:inset 0 0 0 2px #fff}
.availability-action-control:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}.daypart-choice:has(input:focus-visible){outline:3px solid #f4f4f2;outline-offset:2px}
.availability-limited>svg{fill:currentColor}
.limited-editor{position:absolute;z-index:1;top:calc(48px + .45rem);left:50%;width:max-content;max-width:100%;transform:translateX(-50%)}
html.js .limited-editor:not([data-open]){display:none}
.limited-editor fieldset{display:flex;box-sizing:border-box;max-width:100%;align-items:center;flex-wrap:wrap;gap:.2rem;margin:0;padding:.3rem;border:0;border-radius:.45rem;background:rgba(0,0,0,.8);color:var(--color-text)}
.daypart-choice{position:relative;display:inline-flex;align-items:center;gap:.3rem;min-height:40px;margin:0;padding:.3rem .45rem;border:0;border-radius:.4rem;background:transparent;color:#aeb4b9;font-size:.8rem;font-weight:800;cursor:pointer;transition:background-color .15s ease-out,color .15s ease-out,box-shadow .18s ease-out,outline-color .18s ease-out}
.daypart-choice input{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}
.daypart-choice:hover{background:rgba(82,199,125,.08);color:#82d7a3}
.daypart-choice:has(input:checked){background:rgba(82,199,125,.14);box-shadow:inset 0 -2px #52c77d;color:#82d7a3}
.daypart-choice.daypart-tap-additive,.daypart-choice.daypart-tap-additive:has(input:focus-visible){outline:3px solid #52c77d;outline-offset:2px;box-shadow:inset 0 0 0 2px #52c77d;color:#52c77d}
.daypart-choice.daypart-tap-subtractive,.daypart-choice.daypart-tap-subtractive:has(input:focus-visible){outline:3px solid #e25d68;outline-offset:2px;box-shadow:inset 0 0 0 2px #e25d68;color:#e25d68}
.limited-save{min-height:40px!important;margin:0!important;padding:.35rem .7rem!important;font-size:.8rem}
html.js .limited-save{display:none}@media (prefers-reduced-motion:reduce){.availability-action-control,.daypart-choice{transition:none}}
@media (max-width:35rem){.availability-actions{gap:.3rem}.limited-editor{position:static;width:100%;max-width:none;margin-top:.45rem;transform:none}.limited-editor fieldset{width:100%;justify-content:center}.common-availability-icons{gap:.12rem}.daypart-icon svg{width:.95rem;height:.95rem}}
@media (hover:hover){.availability-full:not(.selected):not(:disabled):hover{border-color:#075c31;color:#075c31}.availability-unavailable:not(.selected):not(:disabled):hover{border-color:#941923;color:#941923}}
@media (hover: hover) { .availability-button.availability-in:not(.selected):not(:disabled):hover { border-color: #075c31; background: #e5f9ec; color: #075c31; } .availability-button.availability-out:not(.selected):not(:disabled):hover { border-color: #941923; background: #ffeaec; color: #941923; } }

 .form-control{box-sizing:border-box;min-height:2.7rem;padding:.62rem .75rem;border:1px solid var(--color-border);border-radius:.5rem;font:inherit;line-height:1.2}.reminder-preference-group{margin-bottom:1.5rem}.reminder-preference{padding:1rem;border:1px solid #4e5358;border-radius:.55rem;background:var(--color-surface-raised)}.preference-control-area{display:flex;align-items:center;justify-content:space-between;gap:1.25rem}.reminder-preference h3{margin:0}.reminder-preference .hint{margin:.25rem 0 0}.reminder-preference form{display:flex;align-items:center;gap:.65rem}.preference-toggle{display:flex;align-items:center;gap:.45rem;font-weight:800}.preference-toggle input{width:1.25rem;height:1.25rem}.preference-save{min-height:36px;padding:.35rem .65rem}.preference-feedback{margin:.45rem 0 0;font-size:.85rem;line-height:1.4}.preference-feedback:empty{display:none}.calendar-reminder{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.75rem;margin:.75rem 0}.calendar-reminder form,.calendar-reminder .notice{margin:0}.calendar-controls{display:flex;align-items:flex-start;flex-wrap:wrap;gap:1.5rem;margin:0 0 1.25rem}.calendar-kind-navigation{margin:0}.calendar-view-toggle{margin:0}.calendar-view-toggle label{display:flex;align-items:center;gap:.45rem;margin:0;padding:.4rem 0;color:var(--color-text);font-size:.9rem;white-space:nowrap}.calendar-view-toggle input{width:1.1rem;height:1.1rem;accent-color:var(--color-brand)}.available-days{max-width:42rem}.available-days>h2{margin:1.5rem 0 1.25rem;font-size:1.5rem;font-weight:850;letter-spacing:-.025em}.available-days-month{margin:0 0 2rem}.available-days-month h3{margin:0 0 .65rem;padding-bottom:.55rem;border-bottom:1px solid var(--color-border);font-size:1rem;letter-spacing:.06em}.available-days ol{margin:0;padding:0;list-style:none}.available-days li{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.8rem .9rem;border:1px solid #4e5358;border-radius:.55rem;background:var(--color-surface-raised)}.available-days li+li{margin-top:.5rem}.available-days time{font-weight:850}.available-days li span{color:#9bd8af;font-size:.92rem;font-weight:700;text-align:right}.available-days-empty{margin-top:1.5rem;padding:1rem;border:1px solid var(--color-border);border-radius:.65rem;background:var(--color-surface)}.available-days-empty h2{margin-top:0}.available-days-empty p{max-width:36rem}@media (max-width:35rem){.calendar-controls{display:block}.calendar-view-toggle{margin-top:.65rem}.calendar-view-toggle label{white-space:normal}}
/* Lock-notification confirmation control and async feedback. */
.gig-day-notify{display:flex;align-items:center;gap:.45rem;margin:0 0 1rem;color:var(--color-text);font-weight:650}.gig-day-notify[hidden]{display:none}.gig-day-notify input{margin:0}.lock-notification-feedback{margin:.55rem 0 0;color:var(--color-muted);font-size:.8rem;font-weight:650}

/* Preserve the established compact app navigation on small screens. */
@media (max-width:35rem){.main-nav{flex-wrap:nowrap;gap:.2rem;margin-bottom:2rem}.main-nav .brand{width:7rem;flex:0 1 7rem;margin-right:auto}.main-nav .brand img{width:7rem}.main-nav>a:not(.brand){min-height:40px;padding:0 .35rem;font-size:.78rem;white-space:nowrap}}
/* Match GigDaze's header logo height while allowing DiceDaze's wider artwork its natural width. */
.main-nav .brand{flex:0 1 12.5rem;max-width:100%;margin-right:auto}.main-nav .brand img{width:auto;height:3.4335rem;max-width:100%}
@media (max-width:35rem){.main-nav .brand{width:8.33rem;flex:0 1 8.33rem;margin-right:auto}.main-nav .brand img{width:auto;height:2.289rem;max-width:100%}}

/* Unclassed stacked field labels directly wrapping a standard control need a small visual gap. */
label:not([class]):has(>input:not([type=checkbox]):not([type=radio]):not([type=hidden]),>select,>textarea){display:flex;flex-direction:column;gap:.125rem}.field-helper{display:block;margin:.125rem 0 .35rem;font-size:.85rem;font-weight:500;line-height:1.4}
.invite-game-context{margin:0 0 1rem}.invite-game-metadata+.invite-game-metadata{margin-top:.75rem}.invite-game-label{margin:0 0 .125rem;color:var(--color-text);font-size:.94rem;font-weight:750}.invite-game-system,.invite-game-description{margin:0}.invite-game-description{white-space:pre-wrap}
