/* Web fonts (merged from the GIANTS press site) */
@font-face{font-family:'Nunito Sans';font-style:normal;font-weight:300;font-display:swap;src:url('fonts/NunitoSans-Light.woff2') format('woff2'),url('fonts/NunitoSans-Light.woff') format('woff'),url('fonts/NunitoSans-Light.ttf') format('truetype')}
@font-face{font-family:'Nunito Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/NunitoSans-Regular.woff2') format('woff2'),url('fonts/NunitoSans-Regular.woff') format('woff'),url('fonts/NunitoSans-Regular.ttf') format('truetype')}
@font-face{font-family:'Nunito Sans';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/NunitoSans-Medium.woff2') format('woff2'),url('fonts/NunitoSans-Medium.woff') format('woff'),url('fonts/NunitoSans-Medium.ttf') format('truetype')}
@font-face{font-family:'Nunito Sans';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/NunitoSans-Bold.woff2') format('woff2'),url('fonts/NunitoSans-Bold.woff') format('woff'),url('fonts/NunitoSans-Bold.ttf') format('truetype')}
@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/OpenSans-Regular-webfont.woff2') format('woff2'),url('fonts/OpenSans-Regular-webfont.woff') format('woff'),url('fonts/OpenSans-Regular-webfont.ttf') format('truetype')}

:root{
  --black:#000000;
  --body:#0d0d0d;
  --header:#191919;
  --panel:#1a1a1a;
  --panel-2:#262626;
  --panel-3:#080808;
  --line:#525252;
  --line-soft:#333333;
  --text:#ffffff;
  --muted:#969595;
  --muted-2:#6f6e6e;
  --red:#df140e;
  --red-dark:#af0a04;
  --red-soft:#c70a04;
  --focus:#ffffff;
  --shadow:0 18px 50px rgba(0,0,0,.45);
}

*{box-sizing:border-box}
*:before,*:after{box-sizing:border-box}
html{font-family:'Nunito Sans','Open Sans',Arial,sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--body);color:var(--text);line-height:1.5;display:flex;flex-direction:column;min-height:100vh}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,#000 0,#0d0d0d 38%,#000 100%);z-index:-2}
a{background-color:transparent;color:var(--text);text-decoration:none;transition:color .25s ease,background-color .25s ease,border-color .25s ease}
a:hover{color:var(--red)}
button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button[disabled]{cursor:not-allowed}
img{border:0;max-width:100%;vertical-align:bottom}
h1{font-size:clamp(2.35rem,5vw,4.5rem);line-height:1;margin:0 0 1.25rem;font-weight:300;color:var(--text);letter-spacing:-.04em}
h2{font-size:clamp(1.8rem,3.3vw,2.6rem);line-height:1.1;margin:0 0 1rem;font-weight:300;color:var(--text)}
h3{font-size:1.75rem;font-weight:400;margin:0 0 1rem;color:var(--text)}
p,.p{width:100%;font-family:'Open Sans',Arial,sans-serif;color:var(--muted)}
strong,b{font-weight:700;color:var(--text)}
code{background:#000;border:1px solid var(--line-soft);border-radius:.25rem;padding:.1rem .25rem;color:#fff}

.skip-link{position:absolute;left:-999px;top:0;background:#fff;color:#000;padding:.75rem 1rem;z-index:99}.skip-link:focus{left:1rem;top:1rem;outline:3px solid var(--red)}

.site-header{position:sticky;top:0;z-index:9;width:100%;background-color:var(--header);border-bottom:1px solid var(--line-soft);box-shadow:0 16px 40px rgba(0,0,0,.35)}
.site-header-inner{width:1190px;max-width:100%;margin:0 auto;padding:0 50px;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:110px}
.brand{display:flex;align-items:center;justify-content:flex-start;gap:14px;color:#fff;text-decoration:none;min-width:0;margin-right:auto}.brand:hover{color:#fff}.brand-logo{display:block;height:54px;width:auto;max-width:100%;object-fit:contain;object-position:left center}.brand-label{font-family:'Nunito Sans',Arial,sans-serif;font-weight:700;font-size:26px;line-height:1;letter-spacing:.02em;text-transform:uppercase;color:#fff;white-space:nowrap}
.header-actions{display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:1rem;min-width:0;margin-left:auto}.header-username{color:var(--muted);font-size:12px;line-height:1.2;text-transform:none;letter-spacing:.02em;text-align:right;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.site-header nav{display:flex;align-items:center;justify-content:flex-end;gap:0;flex-wrap:nowrap;text-transform:uppercase;font-weight:500}.site-header nav a,.inline-form button{display:block;color:#fff;background:transparent;border:0;border-bottom:3px solid var(--header);font-size:15px;line-height:107px;padding:0 16px;text-decoration:none;text-transform:uppercase}.site-header nav a:hover,.inline-form button:hover,.site-header nav a[aria-current="page"]{color:var(--red);background:#000;border-bottom-color:var(--red)}.inline-form{display:inline;margin:0}

.site-header{flex:0 0 auto}
main{flex:1 0 auto}
.content,.section,.card-grid,.slot-list,.messages,.stat-grid,.data-table,.notice,.page-hero{max-width:1190px;width:calc(100% - 52px);margin-left:auto;margin-right:auto}.content-grid{max-width:1250px;width:100%;margin:auto;padding:0 26px}.section{padding:58px 0}.page-hero{padding:62px 0 42px}.page-hero p{font-size:18px;color:var(--muted);max-width:760px}.eyebrow,.content-title{font-size:14px;font-weight:700;color:var(--red-soft);margin:0 0 16px;text-transform:uppercase;letter-spacing:.12em}.page-hero .eyebrow{font-size:14px;font-weight:700;color:var(--red-soft);margin:0 0 16px;text-transform:uppercase;letter-spacing:.12em}.muted{color:var(--muted)}


.compact-headline{font-size:clamp(1.175rem,2.5vw,2.25rem);line-height:1.05;margin-bottom:1rem;font-weight:300;letter-spacing:-.025em}

.user-info-section{padding-top:0;}
.section-heading-row{width:min(1190px,100%);display:flex;align-items:center;justify-content:flex-start;gap:1rem;margin:0 0 1rem;}
.section-heading-row .compact-headline{margin:0;}
.form-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;}
.button-ghost{background:transparent;border-color:#555;color:#fff;}
.button-ghost:hover{background:#262626;border-color:#777;}
@media(max-width:700px){.section-heading-row{display:grid;align-items:start;}.section-heading-row .button{justify-self:start;}}
.user-info-card{max-width:1190px;width:100%;background:#191919;border:1px solid #0d0d0d;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;}
.user-info-card div{background:#1a1a1a;padding:1rem 1.2rem;}
.user-info-card span{display:block;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.35rem;}
.user-info-card strong{display:block;font-size:1.05rem;font-weight:400;word-break:break-word;}
@media(max-width:850px){.user-info-card{grid-template-columns:1fr;}}

.button,.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 26px;border:1px solid var(--red-soft);background:var(--red-soft);color:#fff;font-family:'Nunito Sans',Arial,sans-serif;font-size:18px;font-weight:400;text-transform:uppercase;text-align:center;text-decoration:none;transition:all .25s ease}.button:hover,.btn:hover{background:transparent;border-color:var(--line);color:#fff}.button-small{min-height:40px;font-size:14px;padding:0 18px}.button.ghost{background:transparent;border-color:var(--line);color:#fff}.button.ghost:hover{background:var(--red-soft);border-color:var(--red-soft)}.button:disabled{opacity:.45}

input,textarea,select{width:100%;background:#080808;border:1px solid var(--line);border-radius:0;color:#fff;padding:.85rem}input:focus,textarea:focus,select:focus,button:focus,a:focus{outline:3px solid var(--focus);outline-offset:3px}label{display:grid;gap:.35rem;color:#fff;font-weight:700}.checkbox{display:flex;align-items:center;gap:.7rem}.checkbox input{width:auto}.form-shell{width:min(1190px,calc(100% - 52px));margin:58px auto}.form-card,.card,.slot,.message,.stat{background:var(--panel);border:1px solid #0d0d0d;border-radius:0;padding:clamp(1.1rem,3vw,1.6rem);box-shadow:none}.form-card{display:grid;gap:1rem}.form-shell > .form-card:not(.registration-form){width:min(760px,100%)}.form-card.compact{width:min(1190px,calc(100% - 52px));margin:0 auto 2px;grid-template-columns:repeat(4,1fr);align-items:end;background:var(--panel)}

.notice{margin-top:1rem;padding:1rem;background:var(--panel);border:1px solid var(--line)}.notice.success{border-color:#267a3d}.notice.error{border-color:var(--red)}

.playtest-home{min-height:calc(100vh - 230px);display:block;padding:64px 26px;background:#000}.homepage-hero-eyebrow{padding:0 0 16px;width:min(1190px,100%);}.homepage-hero-eyebrow .eyebrow{color:var(--muted);font-size:16px}.playtest-panel{max-width:1190px;width:100%;margin:0 auto;background:#191919;border:1px solid #0d0d0d;padding:clamp(1.7rem,5vw,4rem);position:relative;box-shadow:var(--shadow)}.playtest-panel:before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--red)}.playtest-panel h1{font-size:clamp(2.25rem,5vw,4.75rem);line-height:1;margin:0 0 1.5rem;font-weight:300;letter-spacing:-.05em}.event-list{display:grid;gap:2px;margin:-50px auto 0;width:min(1190px,100%);max-width:1190px}.event-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:1rem;background:#0d0d0d;border:1px solid #191919;padding:1.25rem 1.4rem}.event-row:hover{border-bottom-color:var(--red)}.event-row time{display:block;color:var(--red);font-weight:700;text-transform:uppercase;font-size:14px;letter-spacing:.06em;margin-bottom:.35rem}.event-row h2{font-size:1.45rem;font-weight:300;margin:0}.empty-state{font-size:clamp(1.25rem,3vw,2.2rem);font-weight:300;color:#fff;padding:2.2rem;border:1px dashed var(--line);text-align:center;background:#0d0d0d;margin:0}.minimal-footer{margin-top:0}

.card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}.card{background:#191919}.card:hover{border-bottom:3px solid var(--red)}.card h2,.card h3{margin-top:0}.date-badge{font-size:14px;font-weight:700;color:var(--red);margin:0 0 14px;text-transform:uppercase}.text-link{font-weight:700;color:#fff}.text-link:hover{color:var(--red)}

.slot-list{display:grid;gap:2px}.slot{display:grid;grid-template-columns:1fr auto;align-items:center;gap:1rem;background:#191919}.slot span{display:block;color:var(--muted)}.slot form{display:flex;gap:.5rem;align-items:center}.messages{display:grid;gap:2px;margin-bottom:1rem}.message{max-width:760px;margin-left:0;margin-right:auto;text-align:left}.message.admin-msg{border-left:3px solid var(--red)}.message.tester-msg{border-left:3px solid #525252}.message time{display:block;color:var(--muted);font-size:.9rem}

.data-table{border-collapse:collapse;margin-top:1rem;background:#191919;overflow:hidden}.data-table th,.data-table td{padding:1rem;border-bottom:2px solid #0d0d0d;text-align:left;vertical-align:middle}.data-table th{color:#fff;background:#0d0d0d;text-transform:uppercase;font-size:13px;letter-spacing:.08em}.data-table a{color:#fff}.data-table a:hover{color:var(--red)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.stat{text-decoration:none;color:#fff;background:#191919}.stat strong{display:block;font-size:2.4rem;color:var(--red);font-weight:300}.stat span{color:var(--muted);text-transform:uppercase;font-size:13px;letter-spacing:.08em}.prose{color:var(--muted)}.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}

.site-footer{background:#080808;border-top:1px solid var(--line-soft);padding:28px 0;color:var(--muted);font-family:'Open Sans',Arial,sans-serif}.site-footer-inner{width:1190px;max-width:100%;margin:0 auto;padding:0 50px;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.site-footer p{margin:.25rem 0;color:var(--muted);width:auto}.site-footer a{color:#fff}.site-footer a:hover{color:var(--red)}
.giants-footer{background:#b70b05;border-top:0;padding:0;height:140px;min-height:140px;color:#fff}.giants-footer-inner{width:1190px;max-width:100%;height:140px;margin:0 auto;padding:0 38px;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;text-align:left;gap:52px}.giants-footer-logo{display:block;width:132px;max-width:34vw;height:auto}.giants-footer-logo-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;flex:0 0 auto}.giants-footer-text{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;line-height:1.35}.giants-footer-copy{margin:0 0 3px;color:#fff;font-size:14px;font-weight:400;letter-spacing:0}.giants-footer-legal{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:6px;color:#fff;font-size:14px;font-weight:400}.giants-footer-legal a{color:#fff;text-decoration:none;font-weight:400}.giants-footer-legal a:hover,.giants-footer-legal a:focus-visible{color:#fff;text-decoration:underline}


/* Homepage layout width alignment */
.playtest-home .playtest-panel{max-width:1190px;width:100%;}
.playtest-home .event-list{max-width:1190px;width:100%;}
.playtest-home .homepage-hero-eyebrow{max-width:1190px;width:100%;margin-left:auto;margin-right:auto;}
@media(max-width:1060px){.site-header{position:relative}.site-header-inner{flex-direction:column;align-items:stretch;justify-content:flex-start;min-height:0;padding-top:18px;padding-bottom:0;gap:0;flex-wrap:wrap}.brand{justify-content:center;margin:0 0 14px}.brand-logo{height:34px}.header-actions{flex-direction:column;align-items:stretch;width:100%;margin:0;gap:0;border-top:1px solid var(--line)}.header-username{text-align:center;padding:14px 0 14px;max-width:100%}.site-header nav{width:100%;justify-content:center;flex-wrap:wrap}.site-header nav a,.inline-form button{line-height:52px}}
@media(max-width:850px){.card-grid,.stat-grid{grid-template-columns:1fr}.slot,.slot form,.event-row{display:grid;align-items:stretch}.form-card.compact{grid-template-columns:1fr}.page-hero,.section,.card-grid,.slot-list,.messages,.stat-grid,.data-table,.notice,.content{width:calc(100% - 32px)}}
@media(max-width:560px){.site-header-inner{padding-left:18px;padding-right:18px}.brand{flex-direction:row;align-items:center;justify-content:center}.brand-logo{height:30px}.brand-label{font-size:18px}.site-header nav{display:grid;grid-template-columns:1fr;width:100%;text-align:center}.site-header nav a,.inline-form button{width:100%;line-height:44px;padding:0 12px}.inline-form,.inline-form button{width:100%}.header-username{text-align:center;padding:12px 0 12px}.playtest-home{padding:38px 16px}.site-footer{padding:24px 0}.site-footer-inner{padding:0 18px}.giants-footer-inner{padding:0 18px;gap:22px}.giants-footer-logo{width:118px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Outlook-inspired admin calendar controls */
.calendar-form-shell{width:min(1190px,calc(100% - 52px));}
.calendar-form{gap:2px;background:transparent;border:0;padding:0;box-shadow:none;}
.calendar-section{border:1px solid #0d0d0d;background:#191919;margin:0;padding:1.4rem;display:grid;gap:1rem;}
.calendar-section legend{padding:0 .45rem;color:#fff;text-transform:uppercase;font-size:13px;font-weight:700;letter-spacing:.08em;}
.outlook-card{background:#161616;border-left:0;}
.calendar-grid{display:grid;gap:1rem;}
.calendar-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr));}
.outlook-checkbox{margin-top:.25rem;padding:.85rem 1rem;background:#0d0d0d;border:1px solid #333;}
.form-card.compact.slot-calendar-form{display:flex;flex-wrap:wrap;align-items:end;gap:1rem;background:#191919;border-left:3px solid var(--red);}
.slot-calendar-form label{min-width:0;flex:1 1 150px;}
.slot-calendar-form label[hidden]{display:none;}
.slot-calendar-form .slot-multiday-toggle{flex:0 1 auto;align-self:end;min-height:48px;}
.slot-calendar-form button{flex:0 0 auto;}
input[type="date"],select{min-height:48px;background:#080808;border-color:#525252;}
input[type="date"]::-webkit-calendar-picker-indicator{filter:invert(1);opacity:.85;cursor:pointer;}
@media(max-width:850px){.calendar-grid.two-columns,.slot-calendar-form{grid-template-columns:1fr;}.calendar-form-shell{width:calc(100% - 32px);}}

.ability-control{display:flex;align-items:center;gap:.75rem;}
.ability-control strong{min-width:2.5rem;text-align:center;font-size:1.15rem;color:#fff;}
.ability-control form{margin:0;}
.ability-active-bookings{margin-top:.55rem;font-size:14px;line-height:1.35;}
.ability-button{min-width:58px;padding:0 12px;}
@media(max-width:850px){.ability-control{justify-content:flex-start;}}


.inline-admin-form{margin:0;display:inline-block;}
.button-danger{background:var(--red-soft);border-color:var(--red-soft);color:#fff;}
.button-danger:hover{background:var(--red-dark);border-color:var(--red-dark);color:#fff;}
.booked-user-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid #0d0d0d;}
.booked-user-row:last-child{border-bottom:0;}
@media(max-width:850px){.booked-user-row{display:grid;justify-content:stretch;}.booked-user-row .button{width:100%;}}

/* Messenger form/edit window aligned with global 1190px layout */
.form-card.messenger-edit-form{
  box-sizing:border-box;
  max-width:1190px;
  width:min(1190px,calc(100% - 52px));
  margin:0 auto 58px;
}
.form-card.messenger-edit-form textarea{
  box-sizing:border-box;
  width:100%;
  max-width:100%;
}
@media(max-width:850px){
  .form-card.messenger-edit-form{width:calc(100% - 32px);}
}

/* Keep long messenger content inside the visible message boxes */
.message{
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:normal;
}
.message p{
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:pre-wrap;
}
.message.admin-msg,.message.tester-msg{
  max-width:1190px;
}

.booking-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;}
.booking-actions form{margin:0;}
@media(max-width:850px){.booking-actions{display:grid;align-items:stretch;}.booking-actions .button{width:100%;}}

/* Dashboard bookings alignment */
.bookings-section{max-width:1190px;width:calc(100% - 52px);margin-left:auto;margin-right:auto;}
.bookings-table-wrap{max-width:1190px;width:100%;margin:0 auto;overflow-x:auto;}
.dashboard-bookings-table{max-width:1190px;width:100%;margin-left:auto;margin-right:auto;}
.dashboard-bookings-table th,.dashboard-bookings-table td{vertical-align:middle;}
.dashboard-bookings-table td:last-child{text-align:right;}
.dashboard-bookings-table .booking-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem;width:100%;}
.dashboard-bookings-table .booking-actions a{margin-right:auto;text-align:left;}
.dashboard-bookings-table .booking-actions form{margin:0;}
.dashboard-bookings-table .booking-actions .button-danger{margin-left:auto;}

/* Booking approval status colors */
.booking-status-cell{font-weight:700;}
.booking-status-pending{color:#c46a17;}
.booking-status-approved{color:#267a3d;}
.booking-status-accomplished{color:#267a3d;}
.booking-status-cancelled_by_user{color:#af0a04;}
.booking-status-cancelled_by_admin{color:#af0a04;}
@media(max-width:850px){.bookings-section{width:calc(100% - 32px);}.dashboard-bookings-table .booking-actions{display:grid;justify-content:stretch;text-align:left;}.dashboard-bookings-table .booking-actions a,.dashboard-bookings-table .booking-actions .button-danger{margin-left:0;margin-right:0;width:100%;}.dashboard-bookings-table td:last-child{text-align:left;}}

.cancelled-booking-row td{color:var(--muted);}
.cancelled-booking-row td:nth-child(4){color:var(--red-soft);font-weight:700;}

.auth-tabs{max-width:1190px;width:100%;display:flex;flex-wrap:wrap;gap:2px;margin:0 0 26px;background:#0d0d0d;}
.auth-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 24px;background:#262626;border-bottom:3px solid #262626;color:#fff;text-transform:uppercase;font-size:14px;font-weight:700;letter-spacing:.08em;}
.auth-tabs a:hover,.auth-tabs a.active{background:#000;border-bottom-color:var(--red-soft);color:var(--red-soft);}
@media(max-width:640px){.auth-tabs{display:grid;}.auth-tabs a{width:100%;}}


/* Registration questionnaire */
.registration-shell{width:min(1190px,calc(100% - 52px));}
.registration-form{max-width:1190px;width:100%;}
.registration-fieldset{border:1px solid #0d0d0d;background:#191919;margin:0 0 2px;padding:1.4rem;display:grid;gap:1rem;}
.registration-fieldset legend{padding:0 .45rem;color:#fff;text-transform:uppercase;font-size:13px;font-weight:700;letter-spacing:.08em;}
.form-grid{display:grid;gap:1rem;}
.form-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr));}
.choice-block{display:grid;gap:.75rem;}
.choice-title{display:block;color:#fff;font-weight:700;}
.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1rem;}
.check-choice{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:start;column-gap:.75rem;background:#0d0d0d;border:1px solid #333;padding:.75rem .9rem;color:#fff;text-align:left;}
.check-choice input{grid-column:1;margin:.15rem 0 0;justify-self:start;min-width:16px;}
.check-choice span{grid-column:2;display:block;line-height:1.35;text-align:left;}
.admin-user-profile{min-width:320px;max-width:520px;overflow-wrap:anywhere;}
@media(max-width:850px){.registration-shell{width:calc(100% - 32px);}.form-grid.two-columns,.checkbox-grid{grid-template-columns:1fr;}}

.phone-field .field-label-line{display:inline-flex;align-items:baseline;gap:.35rem;white-space:nowrap;}

/* Dashboard eyebrow now matches the Available Events eyebrow style. */
.dashboard-hero .eyebrow{color:var(--muted);font-size:16px}

/* Homepage event panel */
.playtest-home .playtest-panel{
  padding:5px 0 2px;
}
.playtest-home .playtest-panel .event-list{
  margin:0;
}


/* Event detail hero heading: 50% of the default page hero h1 size */
.event-detail-hero h1{font-size:clamp(1.175rem,2.5vw,2.25rem);line-height:1.05;}

/* Event detail h2: match the reduced event detail hero h1 size */
.event-detail-hero + .section h2,
.event-detail-hero ~ .section h2{
  font-size:clamp(1.175rem,2.5vw,2.25rem);
  line-height:1.05;
}

/* Event detail: keep the slot list flush with the Available time slots section */
.section > .slot-list{
  width:100%;
  max-width:100%;
  margin-left:0;
  margin-right:0;
}

/* Admin panel menu now uses the same eyebrow/headline treatment as Dashboard. */
.admin-hero .eyebrow{color:var(--muted);font-size:16px}
.admin-hero h1{font-size:clamp(1.175rem,2.5vw,2.25rem);line-height:1.05;margin:0 0 1rem;font-weight:300;letter-spacing:-.025em}

/* Admin bookings table vertical alignment */
.admin-bookings-table.data-table td, .admin-bookings-table.data-table th { vertical-align: middle; }

.location-label {
    color: #ffffff;
}

.admin-users-table .selection-column{width:44px;text-align:center;vertical-align:middle;}
.admin-users-table .selection-column input[type="checkbox"]{width:18px;height:18px;accent-color:var(--red);}
.role-select-form{margin:0;}
.role-select-form select{min-width:150px;margin:0;background:#0d0d0d;border:1px solid #525252;color:#fff;padding:.6rem .8rem;}
.admin-users-table td{vertical-align:middle;}

/* Admin user filters */
.admin-filter-panel{max-width:1190px;width:calc(100% - 52px);margin:0 auto 1rem;background:#191919;border:1px solid #0d0d0d;}
.admin-filter-panel summary{list-style:none;}
.admin-filter-panel summary::-webkit-details-marker{display:none;}
.admin-filter-toggle{margin:1rem;}
.admin-filter-form{max-width:none;width:100%;margin:0;border-top:2px solid #0d0d0d;}
.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;}
.filter-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:start;}
.filter-group{border:1px solid var(--line);padding:1rem;margin:0;min-width:0;}
.filter-group legend{padding:0 .35rem;color:#fff;font-weight:700;text-transform:uppercase;font-size:13px;letter-spacing:.08em;}
.filter-group .choice-row{display:grid;grid-template-columns:24px 1fr;align-items:center;gap:.65rem;margin:.65rem 0;color:var(--muted);font-weight:400;}
.filter-group .choice-row input{width:18px;height:18px;accent-color:var(--red);justify-self:start;}
.filter-actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;}
@media(max-width:850px){.admin-filter-panel{width:calc(100% - 32px);}.filter-grid,.filter-columns{grid-template-columns:1fr;}.filter-actions{display:grid;}.filter-actions .button{width:100%;}}

/* Bulk user actions and invite templates */
.admin-bulk-actions{
  max-width:1190px;
  width:calc(100% - 52px);
  margin:0 auto 1rem;
  background:#191919;
  border:1px solid #0d0d0d;
  padding:1rem;
}
.bulk-action-row{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  align-items:center;
}
.bulk-template-select{
  margin:0;
  flex:1 1 260px;
  display:flex;
  align-items:center;
  height:48.19px;
}
.bulk-template-select select{width:100%;height:48.19px;}
.admin-bulk-actions .button,
.admin-bulk-actions button{height:48.19px;display:inline-flex;align-items:center;justify-content:center;}
.danger-button{
  background:#af0a04;
  border-color:#af0a04;
  color:#fff;
}
.danger-button:hover{
  background:#df140e;
  border-color:#df140e;
  color:#fff;
}
.template-form textarea{min-height:260px;}
.template-help{margin:0;}
.table-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;}
@media(max-width:850px){
  .admin-bulk-actions{width:calc(100% - 32px);}
  .bulk-action-row{display:grid;grid-template-columns:1fr;}
}

/* Admin slot status badges */
.status-badge{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 12px;border:1px solid var(--line-soft);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;}
.status-active{color:#ffffff;background:#262626;border-color:#525252;}
.status-outdated{color:#969595;background:#080808;border-color:#333333;}
.status-booked{color:#ffffff;background:#267a3d;border-color:#267a3d;}

/* Event detail admin slot status buttons */
.slot-status-button{pointer-events:none;opacity:1;min-width:165px;}
.slot-status-empty{background:var(--red-soft);border-color:var(--red-soft);color:#fff;}
.slot-status-full{background:#267a3d;border-color:#267a3d;color:#fff;}
.slot-status-partial{background:#c46a17;border-color:#c46a17;color:#fff;}

/* Messenger eyebrow matches the grey Dashboard eyebrow style. */
.messenger-booking-summary .eyebrow{
    color: var(--muted);
    font-size: 16px;
}

.event-delete-form {
    margin-top: 16px;
}

/* Admin event edit/create heading now matches Dashboard heading/eyebrow styling */
.calendar-form-shell > .eyebrow{
  color:var(--muted);
  font-size:16px;
}
.calendar-form-shell > h1{
  font-size:clamp(1.175rem,2.5vw,2.25rem);
  line-height:1.05;
  margin:0 0 1rem;
  font-weight:300;
  letter-spacing:-.025em;
}

.preserve-lines {
    white-space: normal;
}

/* Remove padding from event prose sections */
.event-detail .section.prose,
.section.prose {
    padding: 0 !important;
}

/* Dashboard index spacing only: keep event/admin eyebrow positions unchanged. */
.dashboard-user-hero{padding-bottom:20px;}

/* Admin history */
.admin-history-tabs,
.history-filter-card,
.history-table,
.admin-action-log {
    max-width: 1190px;
    width: min(1190px, 100%);
    margin-left: auto;
    margin-right: auto;
}

.admin-history-tabs {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

.history-filter-card {
    margin-bottom: 24px;
}

.admin-action-log {
    max-height: 520px;
    overflow-y: auto;
    background: #191919;
    border: 1px solid #2a2a2a;
    padding: 22px;
}

.admin-action-log-entry {
    padding: 14px 0;
    border-bottom: 1px solid #2a2a2a;
}

.admin-action-log-entry:last-child {
    border-bottom: 0;
}

.admin-action-log-entry span {
    display: inline-block;
    margin-left: 12px;
    color: #969595;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: 12px;
}

.admin-action-log-entry p {
    margin: 8px 0 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* Simple admin deletion log */
.simple-admin-log {
    font-family: Consolas, "Courier New", monospace;
    background: #0d0d0d;
    border: 1px solid #2a2a2a;
    padding: 18px 22px;
    color: #969595;
    line-height: 1.7;
}

.simple-admin-log-line {
    display: flex;
    align-items: baseline;
    gap: 10px;
    white-space: nowrap;
    overflow: hidden;
    border: 0;
    padding: 0;
}

.simple-admin-log-date {
    color: #ffffff;
    flex: 0 0 auto;
}

.simple-admin-log-message {
    color: #969595;
    flex: 0 0 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.simple-admin-log-dots {
    color: #606060;
    flex: 1 1 auto;
    overflow: hidden;
}

.status-history {
    background: #333;
    color: #fff;
}

.block-text {
    display: block;
    margin-top: 6px;
}

.history-event-list {
    width: min(1190px, 100%);
    max-width: 1190px;
    margin: 0 auto 60px;
}

.history-event-card {
    margin-bottom: 26px;
}

.history-event-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 20px;
}

.history-kpi-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 2px;
    margin: 20px 0;
}

.history-kpi {
    background: #191919;
    border: 1px solid #2b2b2b;
    padding: 20px;
}

.history-kpi strong {
    display: block;
    font-size: 32px;
    line-height: 1;
}

.history-kpi span {
    color: #969595;
    font-size: 14px;
}

.history-slot-card {
    background: #111;
    border: 1px solid #292929;
    margin-top: 18px;
}

.history-slot-head {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 16px 20px;
    border-bottom: 1px solid #292929;
}

.history-slot-table {
    margin: 0;
}

@media (max-width: 760px) {
    .history-event-head,
    .history-slot-head {
        display: block;
    }
    .history-kpi-grid {
        grid-template-columns: 1fr;
    }
}

.admin-events-section {
    width: min(1190px, 100%);
    margin: 0 auto 34px;
}

.admin-events-history-section {
    margin-top: 54px;
}

.history-row {
    opacity: 0.82;
}

/* Event role visibility controls */
.add-group-menu {
    margin-top: 18px;
}
.add-group-menu > summary {
    list-style: none;
    display: inline-block;
}
.add-group-menu > summary::-webkit-details-marker {
    display: none;
}
.visibility-role-options {
    display: grid;
    gap: 10px;
    margin-top: 0;
}
.visibility-role-options .choice-row {
    display: grid;
    grid-template-columns: 24px 1fr;
    align-items: center;
    gap: 12px;
    margin: 0;
}
.role-visibility-list {
    display: block;
    margin-top: 4px;
}

/* Admin users search bar */
.admin-user-search{
  max-width:1190px;
  width:calc(100% - 52px);
  margin:0 auto 1rem;
  background:#191919;
  border:1px solid #0d0d0d;
  padding:1rem;
  display:grid;
  grid-template-columns:minmax(240px,1fr) minmax(180px,240px) minmax(210px,260px) auto auto;
  gap:.65rem;
  align-items:center;
}
 .admin-user-search label{margin:0;display:flex;align-items:center;height:48.19px;}
.admin-user-search input,
.admin-user-search select{width:100%;height:48.19px;}
.admin-user-search .button,
.admin-user-search button{height:48.19px;display:inline-flex;align-items:center;justify-content:center;}
.user-search-field{height:48.19px;}
.user-search-field input{height:48.19px;}
@media(max-width:960px){
  .admin-user-search{width:calc(100% - 32px);grid-template-columns:1fr;}
  .admin-user-search .button{width:100%;}
}

/* Keep text area boxes consistently sized. */
textarea {
  min-height: 180px;
  resize: vertical;
}
.calendar-form textarea,
.form-card textarea {
  min-height: 180px;
}
.template-form textarea {
  min-height: 180px;
}

/* Admin booking completed action */
.button-success{background:#2f8f46;border-color:#2f8f46;color:#fff;}
.button-success:hover{background:#39a856;border-color:#39a856;color:#fff;}
.admin-booking-actions{display:flex;align-items:center;gap:.35rem;justify-content:flex-start;flex-wrap:nowrap;}
.admin-bookings-table td:last-child{text-align:left;white-space:nowrap;}
.admin-booking-actions form{margin:0;display:inline-flex;}
.admin-booking-actions .button{min-height:34px;height:34px;padding:0 .65rem;font-size:12px;letter-spacing:.08em;line-height:1;white-space:nowrap;}
.admin-booking-actions .button-success,.admin-booking-actions .button-danger{min-width:0;}
@media(max-width:850px){.admin-booking-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;}.admin-booking-actions .button{width:auto;}}

/* Consistent header category eyebrow-to-headline spacing */
.page-hero .eyebrow{
    margin-bottom:16px;
}
.page-hero h1{
    margin-top:0;
}
.dashboard-hero h1,
.events-hero h1,
.admin-hero h1{
    font-size:clamp(1.175rem,2.5vw,2.25rem);
    line-height:1.05;
    margin-bottom:0;
    font-weight:300;
    letter-spacing:-.025em;
}
.hero-heading-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    width:100%;
}
.dashboard-user-hero,
.events-hero,
.admin-hero{
    padding-bottom:20px;
}
.user-info-section,
.bookings-section{
    padding-top:0;
}
@media(max-width:700px){
    .hero-heading-row{display:grid;align-items:start;}
    .hero-heading-row .button{justify-self:start;}
}

/* Admin downloads */
.admin-download-list{
    max-width:1190px;
    width:calc(100% - 52px);
    margin:0 auto 3rem;
    display:grid;
    gap:1rem;
}
.admin-download-item{
    background:#191919;
    border:1px solid #0d0d0d;
    padding:1rem;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:1rem;
    align-items:center;
}
.admin-download-item h2{
    margin:0 0 .35rem;
    font-size:1.1rem;
    line-height:1.2;
}
.admin-download-item p{
    margin:0 0 .35rem;
}
.download-actions{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:.6rem;
}
.download-actions form{margin:0;}
@media(max-width:760px){
    .admin-download-list{width:calc(100% - 32px);}
    .admin-download-item{grid-template-columns:1fr;}
    .download-actions{display:grid;align-items:stretch;}
    .download-actions .button{width:100%;}
}

/* Smaller, lighter form field descriptions across forms */
label,
.form-card label,
.form-grid label,
.registration-form label,
.profile-form label,
.admin-form label,
.slot-calendar-form label,
.admin-filter-panel label,
.admin-user-search label,
.admin-bulk-actions label {
    font-size: 13px;
    font-weight: 400;
}

label input,
label textarea,
label select,
.form-card input,
.form-card textarea,
.form-card select {
    font-size: 16px;
    font-weight: 400;
}

.check-choice,
.choice-row,
.checkbox {
    font-size: 13px;
    font-weight: 400;
}

/* Smaller, lighter questionnaire section question labels */
.choice-title,
.registration-form .choice-title,
.profile-edit-shell .choice-title,
.admin-user-profile .choice-title,
.admin-form .choice-title {
    font-size: 13px;
    font-weight: 400;
}
.choice-title .muted {
    font-weight: 400;
}


/* Smaller regular text inside form controls and dropdown menus */
input,
select,
textarea,
option,
.form-card input,
.form-card select,
.form-card textarea,
.registration-form input,
.registration-form select,
.registration-form textarea,
.profile-form input,
.profile-form select,
.profile-form textarea,
.admin-form input,
.admin-form select,
.admin-form textarea {
    font-size: 13px;
    font-weight: 400;
}

.event-form-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    margin-top: 22px;
}

.hidden-delete-form {
    display: none;
}

.event-visibility-section .event-form-actions {
    width: min(1190px, 100%);
}
.event-visibility-section .event-form-actions .button {
    width: min(1190px, 100%);
}

/* Visibility rows: only the checkbox input is clickable, not the text row */
.checkbox-line {
    display: flex;
    align-items: center;
    gap: .7rem;
}
.checkbox-line input[type="checkbox"] {
    width: auto;
    cursor: pointer;
}
.checkbox-line span {
    cursor: default;
}

.message-action-link{
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    min-height:34px;
    padding:.45rem .7rem;
    border:1px solid #3f3f3f;
    background:#343434;
    color:#f2f2f2;
    text-decoration:none;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:12px;
}
.message-action-link:hover,
.message-action-link:focus{
    background:#444;
    color:#fff;
}

.button-message-read{
    border-color:#555 !important;
    background:#343434 !important;
    color:#f2f2f2 !important;
}
.button-message-read:hover,
.button-message-read:focus{
    background:#444 !important;
    border-color:#777 !important;
    color:#fff !important;
}

.message-action-link-unread,
.button-message-unread,
.stat-has-unread{
    border-color:var(--red-soft, #d92b2b) !important;
    background:var(--red-soft, #d92b2b) !important;
    color:#fff !important;
}
.message-unread-badge{
    color:inherit;
    font-weight:700;
    white-space:nowrap;
}
.admin-unread-badge{
    color:var(--red-soft, #d92b2b);
    margin-left:.35rem;
}
.stat-has-unread .admin-unread-badge,
.message-action-link-unread .admin-unread-badge,
.button-message-unread .admin-unread-badge{
    color:#fff;
}

/* User bookings action alignment */
.dashboard-bookings-table .booking-actions {
    align-items: center;
}
.dashboard-bookings-table .message-action-link,
.dashboard-bookings-table .inline-admin-form {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    margin-top: 0;
    margin-bottom: 0;
}
.dashboard-bookings-table .inline-admin-form button {
    align-self: center;
}

/* Match /bookings message button height to cancel button height */
.dashboard-bookings-table .message-action-link {
    height: 40px;
    min-height: 40px;
    box-sizing: border-box;
    padding-top: 0;
    padding-bottom: 0;
}

@media(max-width:450px){
  .bookings-table-wrap{overflow-x:visible;}
  .dashboard-bookings-table,
  .dashboard-bookings-table tbody,
  .dashboard-bookings-table tr,
  .dashboard-bookings-table td{display:block;width:100%;}
  .dashboard-bookings-table thead{display:none;}
  .dashboard-bookings-table tr{border-bottom:2px solid #0d0d0d;padding:.45rem 0 .9rem;}
  .dashboard-bookings-table td{border-bottom:0;padding:.35rem 1rem;text-align:left;}
  .dashboard-bookings-table td:first-child{padding-top:.9rem;}
  .dashboard-bookings-table .booking-actions{display:grid;gap:.6rem;width:100%;margin-top:.35rem;}
  .dashboard-bookings-table .booking-actions a,
  .dashboard-bookings-table .booking-actions .button,
  .dashboard-bookings-table .booking-actions .message-action-link{width:100%;min-width:0;margin:0;justify-content:center;}
}

/* Footer copyright color override */
.giants-footer .giants-footer-copy {
    color: #ffffff;
}

.site-footer{flex:0 0 auto;}
.giants-footer{font-family:'Open Sans',Arial,sans-serif;}
.giants-footer-inner{flex-wrap:wrap;}
.social-menu-wrap{margin-left:auto;flex:0 0 auto;}
.social-menu{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:18px;}
.social-menu li{margin:0;}
.social-menu a{display:block;overflow:hidden;text-indent:-9999px;font-size:0;line-height:0;background-image:url("/img/icons/social-icons.png");background-repeat:no-repeat;opacity:.9;transition:opacity .25s ease;}
.social-menu a:hover{opacity:1;}
.social-menu__twitter a{background-position:0 0;width:25px;height:23px;}
.social-menu__facebook a{background-position:-37px 0;width:15px;height:23px;}
.social-menu__youtube a{background-position:-64px 0;width:30px;height:23px;}
.social-menu__discord a{background-position:-105px 0;width:28px;height:23px;}
.social-menu__twitch a{background-position:-145px 0;width:23px;height:23px;}
.social-menu__linkedin a{background-position:-179px 0;width:22px;height:23px;}
@media(max-width:850px){
  .giants-footer{height:auto;min-height:0;padding:30px 0;}
  .giants-footer-inner{height:auto;flex-direction:column;align-items:flex-start;gap:22px;}
  .social-menu-wrap{margin-left:0;}
}

/* Full-width header bar, with content constrained to the centered inner container */
@media(max-width:1060px) {
    .site-header-inner {
        padding-left: 26px;
        padding-right: 26px;
    }
}

/* Legal privacy policy page */
.legal-policy{
    width:min(920px, calc(100% - 36px));
    margin:0 auto 56px;
    padding:34px !important;
    background:#151515;
    border:1px solid #2a2a2a;
    color:#d8d8d8;
    line-height:1.7;
}
.legal-policy h2{
    margin:2rem 0 .65rem;
    color:#fff;
    font-size:1.25rem;
    font-weight:600;
}
.legal-policy p,
.legal-policy li{
    color:#d8d8d8;
}
.legal-policy ul{
    margin:.5rem 0 1rem 1.35rem;
}
.legal-policy strong{
    color:#fff;
}
.legal-policy .legal-warning,
.legal-policy .legal-warning strong{
    color:#ff1f1f;
    font-weight:800;
}

/* User booking category notification dot */
.booking-nav-dot{
    color:var(--red-soft, #d92b2b);
    font-size:22px;
    font-weight:700;
    line-height:1;
    margin-left:.35rem;
    vertical-align:middle;
}
.site-header nav a[aria-current="page"] .booking-nav-dot,
.site-header nav a:hover .booking-nav-dot{
    color:var(--red-soft, #d92b2b);
}

/* Remove the browser focus/click frame across the site. */
*:focus,
*:focus-visible,
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus,
summary:focus {
  outline: none !important;
  box-shadow: none !important;
}

.user-info-card{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
}
.user-info-card>div{
  min-width:0;
  background:#151515;
  border:1px solid #0d0d0d;
  padding:1rem;
}
.user-info-card span{
  display:block;
  color:var(--muted);
  font-size:14px;
  margin-bottom:.35rem;
}
.user-info-card strong{
  display:block;
  overflow-wrap:anywhere;
  white-space:pre-wrap;
}
.form-hint{margin:.25rem 0 1rem;color:var(--muted);font-size:14px;line-height:1.45;}
.admin-users-section{overflow-x:auto;}
.admin-users-toolbar{
  display:flex;
  align-items:flex-end;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:1rem;
}
.admin-user-search{min-width:260px;}
.admin-user-filter-menu{position:relative;}
.admin-user-filter-menu summary{list-style:none;cursor:pointer;}
.admin-user-filter-menu summary::-webkit-details-marker{display:none;}
.admin-user-filter-panel{
  position:absolute;
  z-index:5;
  top:calc(100% + .5rem);
  left:0;
  width:min(720px,calc(100vw - 64px));
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  padding:1rem;
  background:#191919;
  border:1px solid #333;
  box-shadow:0 12px 32px rgba(0,0,0,.35);
}
.admin-user-filter-panel .button{align-self:end;}
#adminUserSelectToggle.is-active{background:var(--red-soft);border-color:var(--red-soft);color:#fff;}
.admin-user-row.is-selected td{background:#221616;}
.admin-user-data-cell{min-width:260px;}
.admin-user-data-cell span{display:block;color:var(--muted);font-size:13px;line-height:1.35;}
.admin-user-slot-control{min-width:170px;}
.admin-users-table th:first-child,.admin-users-table td:first-child{text-align:center;width:72px;}
@media(max-width:850px){
  .user-info-card{grid-template-columns:1fr;}
  .admin-users-toolbar{display:grid;align-items:stretch;}
  .admin-user-search{min-width:0;}
  .admin-user-filter-panel{position:static;width:100%;grid-template-columns:1fr;margin-top:.75rem;}
}

/* Admin category notification dot */
.admin-nav-dot{
    color:var(--red-soft, #d92b2b);
    font-size:22px;
    font-weight:700;
    line-height:1;
    margin-left:.35rem;
    vertical-align:middle;
}
.site-header nav a[aria-current="page"] .admin-nav-dot,
.site-header nav a:hover .admin-nav-dot{
    color:var(--red-soft, #d92b2b);
}

/* Keep dashboard eyebrow-to-headline spacing consistent with Booking. */
.dashboard-user-hero .hero-heading-row{
    margin-top:0;
}

.admin-users-bulk-form{margin-bottom:0;}
.admin-user-template-select{min-width:220px;}
.admin-user-template-select select{min-height:42px;}
.admin-slot-hint{align-self:center;}
.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;
}
.consent-choice{align-items:flex-start;}


/* Admin users toolbar refinements */
.admin-users-toolbar{
  margin-left:0;
  margin-right:0;
}
.admin-user-search{
  max-width:none;
  width:100%;
  margin:0 0 1rem 0;
}
.data-table.admin-users-table{
  margin-left:0;
  margin-right:0;
}
.admin-user-template-select{
  display:inline-flex;
  align-items:center;
  height:40px;
  min-width:220px;
}
.admin-user-template-select select{
  height:40px;
  min-height:40px;
  font-size:13px;
  line-height:1.15;
  padding-top:0;
  padding-bottom:0;
}
.admin-users-toolbar .button,
.admin-users-toolbar button{
  min-height:40px;
}
@media(max-width:960px){
  .admin-user-search{width:100%;}
  .admin-user-template-select,
  .admin-user-template-select select{width:100%;}
}


/* Admin events and templates table refinements */
.admin-events-section .data-table,
.admin-templates-section .data-table{
  max-width:none;
  width:100%;
  margin-left:0;
  margin-right:0;
}
.admin-templates-section{
  padding-top:58px;
}
.admin-templates-table .table-actions{
  display:flex;
  gap:.6rem;
  align-items:center;
  flex-wrap:wrap;
}
.admin-templates-table .inline-form{
  margin:0;
}
.template-form-shell .form-actions{
  display:flex;
  gap:.75rem;
  align-items:center;
  flex-wrap:wrap;
}


/* Admin templates/users/history layout refinements */
.admin-templates-actions{
  margin:0 0 1rem 0;
  display:flex;
  justify-content:flex-start;
}
.admin-user-search{
  max-width:none;
  width:100%;
  margin-left:0;
  margin-right:0;
}
.admin-user-search input#adminUserSearch{
  height:40px;
  min-height:40px;
  font-size:13px;
  line-height:1.15;
  padding-top:0;
  padding-bottom:0;
}
#events-history .data-table,
#completed-playtests .data-table{
  max-width:none;
  width:100%;
  margin-left:0;
  margin-right:0;
}


/* Admin audit page refinements */
.admin-audit-section .section-heading-row{
  margin-bottom:1rem;
}
.admin-audit-count{
  margin:0;
  color:var(--muted);
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.admin-audit-section .data-table{
  max-width:none;
  width:100%;
  margin-left:0;
  margin-right:0;
}
.admin-audit-details{
  color:var(--muted);
  line-height:1.45;
  min-width:280px;
}
.admin-audit-table td:first-child{
  white-space:nowrap;
}
@media(max-width:850px){
  .admin-audit-table td:first-child{white-space:normal;}
}


/* Admin audit search and table layout */
.admin-audit-section{
  max-width:1190px;
  width:calc(100% - 52px);
  margin:0 auto 58px;
}
.admin-audit-search{
  width:100%;
  max-width:none;
  margin:0 0 1rem 0;
  grid-template-columns:1fr;
}
.admin-audit-search input#adminAuditSearch{
  height:40px;
  min-height:40px;
  font-size:13px;
  line-height:1.15;
  padding-top:0;
  padding-bottom:0;
}
.admin-audit-heading-row{
  margin-bottom:1rem;
}
@media(max-width:850px){
  .admin-audit-section{
    width:calc(100% - 32px);
  }
}

/* Compact admin audit rows */
.admin-audit-table .admin-audit-row td{
  padding-top:.45rem;
  padding-bottom:.45rem;
  font-size:13px;
  line-height:1.2;
}
.admin-audit-table .admin-audit-row td strong{
  font-size:13px;
  line-height:1.2;
}
.admin-audit-table .admin-audit-row .admin-audit-details{
  line-height:1.2;
}

/* Admin dashboard booking approval subline */
.stat .stat-subline{display:block;margin-top:.35rem;line-height:1.15;}
.stat .stat-subline-alert{color:var(--red);}
.stat .stat-subline-muted{color:var(--muted);}
.booking-hidden-name{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;color:#d8d8d8;background:#111;padding:.22rem .4rem;border-radius:3px;white-space:nowrap;}

.field-hint-inline{color:var(--muted);font-size:.9em;font-weight:400;}
input::placeholder, textarea::placeholder{color:var(--muted);opacity:1;}
.check-choice{cursor:default;}
.check-choice input{cursor:pointer;}
.check-choice span{cursor:default;}


/* Admin downloads upload form */
.admin-downloads-section .data-table{
  max-width:none;
  width:100%;
  margin-left:0;
  margin-right:0;
}
.admin-upload-form{
  margin:0 auto 1rem auto;
  width:100%;
}
.admin-upload-grid{
  display:grid;
  grid-template-columns:minmax(180px,1fr) minmax(260px,1.4fr) auto auto;
  gap:.75rem;
  align-items:end;
  justify-content:center;
  width:100%;
}
.admin-upload-grid label,
.admin-upload-file-field{
  display:grid;
  grid-template-rows:auto 40px;
  gap:.35rem;
  margin:0;
  align-items:center;
}
.admin-upload-grid input[type="text"],
.admin-upload-grid textarea{
  min-height:40px;
  height:40px;
  font-size:14px;
  line-height:1.25;
}
.admin-upload-grid textarea{
  resize:vertical;
  padding-top:.65rem;
  padding-bottom:.5rem;
}
.admin-upload-field-title{
  font-size:13px;
  font-weight:400;
}
.admin-upload-file-field input[type="file"].visually-hidden{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
  pointer-events:none;
}
.admin-upload-select{
  width:max-content;
  min-height:40px;
  height:40px;
  padding-top:0;
  padding-bottom:0;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
}
.admin-upload-meta{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:.75rem;
  margin:.45rem 0 0;
}
.admin-upload-file-name{
  font-size:12px;
  color:#b7b7b7;
  line-height:1.25;
  max-width:320px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-upload-limit{
  color:#b7b7b7;
  font-size:12px;
  line-height:1.25;
  margin:0;
  white-space:nowrap;
}
.admin-upload-action{
  display:grid;
  align-items:center;
  align-self:center;
  padding-top:calc(13px + .35rem);
}
.admin-upload-action .button{
  min-height:40px;
  height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  font-size:13px;
}
.admin-upload-spinner{
  display:none;
  width:14px;
  height:14px;
  border:2px solid rgba(255,255,255,.45);
  border-top-color:#fff;
  border-radius:50%;
  animation:admin-upload-spin .8s linear infinite;
}
.admin-upload-form.is-uploading .admin-upload-spinner{display:inline-block;}
.admin-upload-form.is-uploading .admin-upload-submit{cursor:progress;opacity:.85;}
@keyframes admin-upload-spin{to{transform:rotate(360deg);}}
.admin-downloads-table .table-actions{
  display:flex;
  gap:.6rem;
  align-items:center;
  flex-wrap:wrap;
}
@media(max-width:960px){
  .admin-upload-grid{grid-template-columns:1fr;}
  .admin-upload-action{padding-top:0;}
  .admin-upload-action .button{width:100%;}
  .admin-upload-meta{align-items:flex-start;flex-direction:column;gap:.25rem;}
  .admin-upload-file-name{max-width:100%;}
}

/* Refined admin downloads alignment and single-line table cells */
.admin-downloads-table{
  table-layout:fixed;
  width:100%;
}
.admin-downloads-table th,
.admin-downloads-table td{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  vertical-align:middle;
}
.admin-downloads-table td > br,
.admin-downloads-table td .muted{
  display:none;
}
.admin-downloads-table .table-actions{
  flex-wrap:nowrap;
  white-space:nowrap;
}
.admin-downloads-table td:last-child{
  overflow:visible;
  text-overflow:clip;
}
.admin-upload-action{
  align-self:end;
  padding-top:0;
}
.admin-upload-submit,
.admin-upload-select{
  min-height:40px;
  height:40px;
}
.admin-upload-meta{
  justify-content:flex-end;
  text-align:right;
}
