.app-header{border-bottom:1px solid var(--border);justify-content:center;align-items:center;padding:.75rem 1rem;display:flex;position:relative}.app-header-title{color:var(--heading-color);text-align:center;letter-spacing:0;margin:0;font-size:1.1rem;font-weight:600}.app-header-menu,.app-header-logout{box-sizing:border-box;cursor:pointer;border-radius:.25rem;justify-content:center;align-items:center;height:1.9rem;font-family:inherit;font-size:.8rem;font-weight:500;line-height:1;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.app-header-menu{border:1px solid var(--border-strong);width:2.25rem;color:var(--text);background:0 0;padding:0;font-size:1.25rem;left:.75rem}.app-header-logout{border:1px solid var(--accent);background:var(--accent);color:#fff;padding:0 .6rem;right:.75rem}.app-header-menu:hover,.app-header-menu:focus-visible,.app-header-logout:hover,.app-header-logout:focus-visible{opacity:.9;outline:none}@media (width>=40rem){.app-header{padding:1rem 1.5rem}.app-header-title{font-size:1.25rem}.app-header-menu{left:1.5rem}.app-header-logout{font-size:.85rem;right:1.5rem}}@media (width>=48rem){.app-header-menu{display:none}}.admin-shell{gap:1rem;min-height:100%;display:flex}.admin-shell-sidebar{border-right:1px solid var(--border);flex-direction:column;flex:none;gap:.5rem;width:12rem;padding:.75rem .5rem;transition:width .15s;display:flex}.admin-shell[data-collapsed=true] .admin-shell-sidebar{width:3rem;padding:.75rem .25rem}.admin-shell-collapse{border:1px solid var(--border-strong);cursor:pointer;background:0 0;border-radius:.25rem;justify-content:center;align-self:flex-end;align-items:center;width:1.75rem;height:1.75rem;font-size:1rem;line-height:1;display:inline-flex}.admin-shell[data-collapsed=true] .admin-shell-collapse{align-self:center}.admin-shell-collapse:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.admin-shell-sidebar nav ul{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.admin-shell-sidebar nav a{color:inherit;white-space:nowrap;border-radius:.25rem;align-items:center;gap:.6rem;padding:.45rem .55rem;text-decoration:none;display:flex}.admin-shell-sidebar nav a:hover,.admin-shell-sidebar nav a:focus-visible{background:#2d8a4e1a;outline:none}.admin-shell-sidebar nav a.active{background:#2d8a4e2e;font-weight:600}.admin-shell-icon{flex:none;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;display:inline-flex}.admin-shell-label{text-overflow:ellipsis;flex:auto;overflow:hidden}.admin-shell[data-collapsed=true] .admin-shell-label{display:none}.admin-shell[data-collapsed=true] nav a{justify-content:center;padding:.45rem 0}.admin-shell-content{flex:auto;min-width:0;padding:.75rem .5rem}.admin-shell-content>section>h1{margin-top:0}.admin-breadcrumbs{margin-bottom:0;font-size:.9rem}.admin-breadcrumbs ol{flex-wrap:wrap;align-items:baseline;row-gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.admin-breadcrumbs li{align-items:baseline;display:inline-flex}.admin-breadcrumbs li+li:before{content:"/";color:var(--text);margin:0 .4rem}.admin-breadcrumbs a,.admin-breadcrumbs span{color:inherit;font:inherit;padding:.25rem 0;text-decoration:none}.admin-breadcrumbs a:hover,.admin-breadcrumbs a:focus-visible{outline:none;text-decoration:underline}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.admin-shell-backdrop{cursor:pointer;z-index:5;background:#00000059;border:0;padding:0;position:fixed;inset:0}@media (width>=48rem){.admin-shell-backdrop{display:none}}@media (width<=47.99rem){.admin-shell{gap:0}.admin-shell-sidebar{background:var(--bg);width:16rem;height:100dvh;box-shadow:var(--shadow);z-index:10;transition:transform .18s;position:fixed;top:0;left:0;transform:translate(-100%)}.admin-shell[data-collapsed=true] .admin-shell-sidebar{width:16rem;padding:.75rem .5rem}.admin-shell[data-collapsed=true] .admin-shell-label{display:inline}.admin-shell[data-collapsed=true] nav a{justify-content:flex-start;padding:.45rem .55rem}.admin-shell[data-drawer-open=true] .admin-shell-sidebar{transform:translate(0)}.admin-shell-collapse{display:none}}.login-form{flex-direction:column;display:flex}.login-field{flex-direction:column;gap:.25rem;margin-bottom:1rem;display:flex}.login-field input{border:1px solid var(--border-strong);background:var(--bg);width:100%;color:var(--text-h);box-sizing:border-box;border-radius:4px;padding:.5rem;font-size:1rem}.login-field input:focus{outline:2px solid var(--accent);outline-offset:1px}.login-error{color:#dc2626;margin-bottom:1rem;font-size:.875rem}.login-submit{cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:4px;width:100%;padding:.625rem;font-size:1rem;font-weight:500}.login-submit:hover{opacity:.9}.login-submit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-forgot{text-align:center;margin:.75rem 0 0;font-size:.875rem}.oauth-placeholder{margin-top:1rem}.landing-anon{flex:1;grid-template-columns:1fr;gap:2rem;padding:2rem 1rem;display:grid}.landing-login{width:100%;max-width:320px;margin:0 auto}.landing-info{display:none}.landing-info p+p{margin-top:1rem}.landing-info-mobile{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1rem}.landing-info-mobile summary{cursor:pointer;color:var(--heading-color);padding:.25rem 0;font-weight:500}.landing-info-mobile summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.landing-info-mobile p,.landing-info-mobile p+p{margin-top:.75rem}@media (width>=48rem){.landing-anon{grid-template-columns:1fr 1fr;align-items:start;gap:2rem 6rem;padding:4rem 2rem}.landing-login{justify-self:end;margin:0}.landing-login .login-form{margin-top:1rem}.landing-info{background:linear-gradient(135deg,#f4faf5,#e9f3eb);border:1px solid #2f7d3a59;border-radius:12px;justify-self:start;max-width:32rem;padding:1.5rem 2rem;display:block}.landing-info h2{margin-top:0}.landing-info-mobile{display:none}}.booking-page{flex-direction:column;gap:1rem;padding:1rem .5rem;display:flex}.booking-page h1{text-align:center;margin:0 0 .5rem}.booking-rules{color:var(--text);margin-top:.5rem;font-size:.85rem}.booking-rules summary{cursor:pointer;color:var(--text);opacity:.75;padding:.25rem 0}.booking-rules summary:hover,.booking-rules summary:focus-visible{opacity:1}.booking-rules summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.booking-rules ul{margin:.25rem 0 0;padding-left:1.25rem}.booking-rules li{margin:.2rem 0}.booking-status-details{background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:.375rem;padding:.5rem .75rem;font-size:.9rem}.week-navigator{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:.25rem;display:grid}.week-navigator button{border:1px solid var(--border-strong);color:var(--text-h);cursor:pointer;background:#2f7d3a14;border-radius:.375rem;min-height:2.75rem;padding:.5rem .75rem;font-family:inherit;font-size:.95rem}@media (hover:hover) and (pointer:fine){.week-navigator button:hover,.week-navigator button:focus-visible{background:#2f7d3a29;border-color:#2f7d3ab3;outline:none}}.week-navigator-info{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:0 .75rem;line-height:1.1;display:flex}.week-navigator-month{color:#2f7d3a;font-size:1rem;font-weight:600}.week-navigator-week{color:var(--text);font-variant-numeric:tabular-nums;font-size:.85rem}.booking-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem;display:grid}.booking-grid-col{flex-direction:column;gap:.25rem;min-width:0;display:flex}.booking-day-head--today{outline:2px solid #2f7d3a}.booking-day-head{background:var(--code-bg);border-radius:.25rem;flex-direction:column;align-items:center;gap:.1rem;padding:.4rem 0;font-weight:600;line-height:1.1;display:flex}.booking-day-abbrev{color:var(--text);font-size:.75rem}.booking-day-num{font-variant-numeric:tabular-nums;color:var(--text-h);font-size:1rem}.booking-day-slots{flex-direction:column;gap:.2rem;display:flex}.booking-cell{border:1px solid var(--border-strong);background:var(--bg);width:100%;color:var(--text-h);cursor:pointer;text-align:center;border-radius:.25rem;flex-direction:column;justify-content:center;align-items:center;gap:.1rem;padding:.35rem .1rem;font-family:inherit;line-height:1.05;display:flex}.booking-cell-time{font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:600}.booking-cell-status{opacity:.95;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.7rem;line-height:1.3;overflow:hidden}@media (hover:hover) and (pointer:fine){.booking-cell:hover:not(:disabled){border-color:#2f7d3ab3}.booking-cell:focus-visible:not(:disabled){outline-offset:2px;outline:2px solid #000}}.booking-cell:disabled{cursor:not-allowed}.booking-cell--free{background:var(--bg)}.booking-cell--free:disabled{background:var(--social-bg)}.booking-cell--bookedbyother{background:var(--social-bg);color:var(--text);border-style:dashed}.booking-cell--bookedbycurrentuser{color:#fff;background:#2f7d3a;border-color:#2f7d3a;font-weight:600}.booking-confirmation{z-index:100;color:#fff;text-align:center;box-shadow:var(--shadow);pointer-events:none;border-radius:.5rem;padding:.75rem 1rem;font-size:1rem;font-weight:500;animation:3s ease-out forwards booking-confirmation-flash;position:fixed;top:1rem;left:1rem;right:1rem}.booking-confirmation--book{background:#2f7d3af2}.booking-confirmation--cancel{background:#c2410cf2}@keyframes booking-confirmation-flash{0%{opacity:0}8%{opacity:1}92%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.booking-confirmation{animation:none}}@media (width>=40rem){.booking-confirmation{width:max-content;max-width:28rem;left:50%;right:auto;transform:translate(-50%)}}.booking-confirm-dialog{background:var(--bg);color:var(--text-h);border:none;width:100vw;max-width:100vw;height:100vh;max-height:100vh;margin:0;padding:0;font-family:inherit}.booking-confirm-dialog::backdrop{background:#00000080}.booking-confirm-dialog-header{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.booking-confirm-dialog-back{cursor:pointer;color:var(--text-h);background:0 0;border:none;padding:.25rem .5rem;font-family:inherit;font-size:1.5rem;line-height:1}.booking-confirm-dialog-back:hover,.booking-confirm-dialog-back:focus-visible{color:#2f7d3a;outline:none}.booking-confirm-dialog-title{color:var(--heading-color);margin:0;font-size:1.1rem;font-weight:600}.booking-confirm-dialog-when{text-align:center;font-variant-numeric:tabular-nums;margin:0;padding:1.5rem 1rem;font-size:1.1rem}.booking-confirm-dialog-error{color:#b91c1c;text-align:center;background:#dc262614;border:1px solid #dc262680;border-radius:.375rem;margin:0 1rem 1rem;padding:.5rem .75rem;font-size:.95rem}.booking-confirm-dialog-explanation{background:var(--accent-bg);border:1px solid var(--accent-border);text-align:center;border-radius:.375rem;margin:0 1rem 1rem;padding:.5rem .75rem;font-size:.95rem}.booking-confirm-dialog-actions{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;margin-top:auto;padding:1rem;display:flex}.booking-confirm-dialog-actions button{border:1px solid var(--border-strong);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:.375rem;min-height:2.75rem;padding:.75rem 1rem;font-family:inherit;font-size:1rem}.booking-confirm-dialog-primary{font-weight:600;color:#fff!important}.booking-confirm-dialog-primary--book{background:#2f7d3a!important;border-color:#2f7d3a!important}.booking-confirm-dialog-primary--cancel{background:#b91c1c!important;border-color:#b91c1c!important}.booking-confirm-dialog-actions button:disabled{cursor:not-allowed;opacity:.7}@media (width>=40rem){.booking-confirm-dialog{width:auto;max-width:28rem;height:fit-content;max-height:min(90vh,26rem);box-shadow:var(--shadow);border-radius:.75rem;margin:auto}.booking-confirm-dialog-back{display:none}.booking-confirm-dialog-actions{flex-direction:row;justify-content:flex-end}.booking-confirm-dialog-actions button{min-width:7rem}.booking-page{padding:1rem}.booking-grid{gap:.5rem}.booking-day-head{padding:.6rem 0}.booking-day-abbrev{font-size:.95rem}.booking-day-num{font-size:1.25rem}.booking-cell{padding:.5rem .25rem}.booking-cell-time{font-size:1rem}.booking-cell-status{font-size:.8rem}.week-navigator button{width:100%;max-width:5rem}.week-navigator button:first-child{justify-self:start}.week-navigator button:last-child{justify-self:end}.week-navigator-month{font-size:1.1rem}}.auth-page{max-width:24rem;margin:2rem auto;padding:0 1rem}.auth-form{flex-direction:column;display:flex}.auth-field{flex-direction:column;gap:.25rem;margin-bottom:1rem;display:flex}.auth-field input{border:1px solid var(--border-strong);background:var(--bg);width:100%;color:var(--text-h);box-sizing:border-box;border-radius:4px;padding:.5rem;font-size:1rem}.auth-field input:focus{outline:2px solid var(--accent);outline-offset:1px}.auth-submit{cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:4px;width:100%;padding:.625rem;font-size:1rem;font-weight:500}.auth-submit:hover{opacity:.9}.auth-submit:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:#dc2626;margin-bottom:1rem;font-size:.875rem}.auth-confirmation{margin-bottom:1rem}.auth-back-link{margin-top:1rem;font-size:.875rem}.sort-header{min-height:1.5rem;font:inherit;cursor:pointer;color:inherit;text-align:left;vertical-align:middle;white-space:nowrap;background:0 0;border:0;align-items:center;margin-left:-.25rem;padding:.125rem .25rem;font-weight:600;display:inline-flex}.sort-header:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sort-header-indicator{min-width:1ch;display:inline-block}.admin-users-actions{margin:0 0 .75rem}.admin-users-create{background:var(--heading-color);color:#fff;border-radius:.25rem;padding:.4rem .7rem;font-size:.9rem;text-decoration:none;display:inline-block}.admin-users-create:hover,.admin-users-create:focus-visible{opacity:.9;outline:none}.admin-users-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-bottom:.75rem;display:flex}.admin-users-filter{align-items:center;gap:.5rem;display:inline-flex}.admin-users-filter input{border:1px solid var(--border-strong);font:inherit;border-radius:.25rem;padding:.3rem .5rem}.admin-users-inactive{align-items:center;gap:.4rem;display:inline-flex}.admin-users-table{border-collapse:collapse;width:100%;font-size:.95rem}.admin-users-table th,.admin-users-table td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .6rem}.admin-users-table th{background:#2d8a4e0f;font-weight:600}.admin-users-empty{text-align:center;color:var(--text);font-style:italic}.admin-users-error{color:#b00020;margin-top:.5rem}.admin-users-pagination{align-items:center;gap:.75rem;margin-top:.75rem;font-size:.9rem;display:flex}.admin-users-pagination button{border:1px solid var(--border-strong);background:var(--bg);font:inherit;cursor:pointer;border-radius:.25rem;padding:.25rem .6rem}.admin-users-pagination button:disabled{cursor:default;opacity:.5}.admin-user-form fieldset{border:1px solid var(--border);border-radius:.25rem;margin:0 0 1rem;padding:.75rem 1rem 1rem}.admin-user-form legend{padding:0 .4rem;font-size:.95rem;font-weight:600}.admin-user-form-row{flex-direction:column;max-width:24rem;margin-bottom:.5rem;display:flex}.admin-user-form-row label{margin-bottom:.2rem;font-size:.9rem}.admin-user-form-row input[type=text],.admin-user-form-row input[type=email],.admin-user-form-row input[type=tel],.admin-user-form-row input[type=password],.admin-user-form-row input[type=number],.admin-user-form-row input[type=date],.admin-user-form-row input[type=datetime-local],.admin-user-form-row input[type=time],.admin-user-form-row input[type=search],.admin-user-form-row select{box-sizing:border-box;border:1px solid var(--border-strong);font:inherit;background:var(--bg);min-height:2.6rem;color:inherit;border-radius:.25rem;padding:.35rem .5rem}.admin-user-form-row input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.admin-user-form-row input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.admin-user-form-row input[type=number]{appearance:textfield}.admin-user-form-row-inline{flex-direction:row;align-items:center}.admin-user-form-row-inline label{align-items:center;gap:.4rem;margin:0;display:inline-flex}.admin-user-form button[type=submit]{background:var(--heading-color);color:#fff;border:1px solid var(--heading-color);font:inherit;cursor:pointer;border-radius:.25rem;padding:.4rem .9rem}.admin-user-form button[type=submit]:disabled{opacity:.6;cursor:default}.admin-user-form-error{color:#b00020;margin:0 0 .75rem}.admin-user-form-row input[readonly]{background:var(--code-bg);color:var(--text);cursor:not-allowed}.admin-user-form-hint{color:var(--text);margin-top:.2rem;font-size:.8rem}.admin-user-form-back{margin-top:1rem;font-size:.9rem}.admin-user-form-success{color:#2d8a4e;margin:0 0 .75rem}.admin-user-form-actions{margin:1rem 0 0}.admin-user-form-secondary{background:var(--bg);color:var(--heading-color);border:1px solid var(--heading-color);font:inherit;cursor:pointer;border-radius:.25rem;padding:.4rem .9rem}.admin-user-form-secondary:hover,.admin-user-form-secondary:focus-visible{background:#2d8a4e0f;outline:none}.admin-user-form-success-card{border:1px solid var(--border);background:#2d8a4e0a;border-left:3px solid #2d8a4e;border-radius:.25rem;margin:0 0 1rem;padding:1rem 1.25rem}.admin-user-form-success-card p{margin:0 0 .5rem}.admin-user-form-success-card p:last-child{margin-bottom:0}.admin-user-form-success-actions{margin-top:.75rem;font-size:.95rem}.confirm-dialog{background:var(--bg);color:var(--text-h);border:none;width:100vw;max-width:100vw;height:100vh;max-height:100vh;margin:0;padding:0;font-family:inherit}.confirm-dialog::backdrop{background:#00000080}.confirm-dialog-header{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.confirm-dialog-back{cursor:pointer;color:var(--text-h);background:0 0;border:none;padding:.25rem .5rem;font-family:inherit;font-size:1.5rem;line-height:1}.confirm-dialog-back:hover,.confirm-dialog-back:focus-visible{color:#2f7d3a;outline:none}.confirm-dialog-title{color:var(--heading-color);margin:0;font-size:1.1rem;font-weight:600}.confirm-dialog-body{font-variant-numeric:tabular-nums;margin:0;padding:1.25rem 1rem;font-size:1.05rem}.confirm-dialog-error{color:#b91c1c;text-align:center;background:#dc262614;border:1px solid #dc262680;border-radius:.375rem;margin:0 1rem 1rem;padding:.5rem .75rem;font-size:.95rem}.confirm-dialog-actions{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;margin-top:auto;padding:1rem;display:flex}.confirm-dialog-actions button{border:1px solid var(--border-strong);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:.375rem;min-height:2.75rem;padding:.75rem 1rem;font-family:inherit;font-size:1rem}.confirm-dialog-primary{font-weight:600;color:#fff!important}.confirm-dialog-primary--primary{background:#2f7d3a!important;border-color:#2f7d3a!important}.confirm-dialog-primary--danger{background:#b91c1c!important;border-color:#b91c1c!important}.confirm-dialog-actions button:disabled{cursor:not-allowed;opacity:.7}@media (width>=40rem){.confirm-dialog{width:auto;max-width:28rem;height:fit-content;max-height:min(90vh,26rem);box-shadow:var(--shadow);border-radius:.75rem;margin:auto}.confirm-dialog-back{display:none}.confirm-dialog-actions{flex-direction:row;justify-content:flex-end}.confirm-dialog-actions button{min-width:7rem}}.admin-fees-actions{margin:0 0 .75rem}.admin-fees-create{background:var(--heading-color);color:#fff;border-radius:.25rem;padding:.4rem .7rem;font-size:.9rem;text-decoration:none;display:inline-block}.admin-fees-create:hover,.admin-fees-create:focus-visible{opacity:.9;outline:none}.admin-fees-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.admin-fees-table{border-collapse:collapse;width:100%;font-size:.95rem}.admin-fees-table th,.admin-fees-table td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .6rem}.admin-fees-table th:first-child,.admin-fees-table td:first-child{white-space:normal}.admin-fees-table th:not(:first-child),.admin-fees-table td:not(:first-child){white-space:nowrap}.admin-fees-table th{background:#2d8a4e0f;font-weight:600}.admin-fees-row-link{color:inherit;text-decoration:none}.admin-fees-row-link:hover,.admin-fees-row-link:focus-visible{text-decoration:underline}@media (width<=39.99rem){.admin-fees-col-secondary{display:none}.admin-fees-row-link{margin:-.5rem 0;padding:.5rem 0;display:block}}@media (width>=40rem){.admin-fees-table{min-width:36rem}}.admin-fees-empty{text-align:center;color:var(--text);font-style:italic}.admin-fees-error{color:#b00020;margin-top:.5rem}.admin-fee-detail-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;margin:0 0 1rem;display:grid}.admin-fee-detail-meta>div{flex-direction:column;display:flex}.admin-fee-detail-meta dt{color:var(--text);margin:0;font-size:.85rem}.admin-fee-detail-meta dd{margin:0;font-weight:500}.admin-fee-detail-actions{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.admin-fee-detail-link{background:var(--heading-color);color:#fff;border-radius:.25rem;padding:.4rem .7rem;font-size:.9rem;text-decoration:none}.admin-fee-detail-link:hover,.admin-fee-detail-link:focus-visible{opacity:.9;outline:none}.admin-fee-detail-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.admin-fee-detail-table{border-collapse:collapse;width:100%;font-size:.95rem}.admin-fee-detail-table th,.admin-fee-detail-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.5rem .6rem}.admin-fee-detail-table th:first-child,.admin-fee-detail-table td:first-child{white-space:normal}@media (width<=39.99rem){.admin-fee-detail-col-secondary{display:none}}@media (width>=40rem){.admin-fee-detail-table{min-width:36rem}}.admin-fee-detail-table th{background:#2d8a4e0f;font-weight:600}.admin-fee-detail-table td button{border:1px solid var(--border-strong);background:var(--bg);font:inherit;cursor:pointer;border-radius:.25rem;min-height:2.2rem;padding:.35rem .7rem}.admin-fee-detail-table td button:disabled{opacity:.5;cursor:default}.admin-fee-detail-empty{text-align:center;color:var(--text);font-style:italic}@media (width>=40rem){.admin-fee-detail-meta{grid-template-columns:repeat(4,minmax(0,1fr))}}.admin-fee-assign-fee{color:var(--text);margin:0 0 1rem;font-weight:500}.admin-fee-assign-toolbar{flex-direction:column;gap:.75rem;margin-bottom:.75rem;display:flex}.admin-fee-assign-filter{flex-direction:column;gap:.25rem;display:flex}.admin-fee-assign-filter input{border:1px solid var(--border-strong);font:inherit;border-radius:.25rem;min-height:2.4rem;padding:.4rem .5rem}.admin-fee-assign-bulk{flex-wrap:wrap;gap:.5rem;display:flex}.admin-fee-assign-bulk button{border:1px solid var(--border-strong);background:var(--bg);font:inherit;cursor:pointer;border-radius:.25rem;min-height:2.4rem;padding:.4rem .7rem}.admin-fee-assign-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.admin-fee-assign-table{border-collapse:collapse;width:100%;min-width:30rem;font-size:.95rem}.admin-fee-assign-table th,.admin-fee-assign-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.4rem .6rem}.admin-fee-assign-table th{background:#2d8a4e0f;font-weight:600}.admin-fee-assign-empty{text-align:center;color:var(--text);font-style:italic}.admin-fee-assign-actions{margin-top:1rem}.admin-fee-assign-actions button{background:var(--heading-color);color:#fff;border:1px solid var(--heading-color);font:inherit;cursor:pointer;border-radius:.25rem;min-height:2.6rem;padding:.6rem 1rem;font-weight:500}.admin-fee-assign-actions button:disabled{opacity:.5;cursor:default}@media (width>=40rem){.admin-fee-assign-toolbar{flex-direction:row;align-items:end;gap:1rem}}.admin-courts-actions{margin:0 0 .75rem}.admin-courts-create{background:var(--heading-color);color:#fff;border-radius:.25rem;padding:.4rem .7rem;font-size:.9rem;text-decoration:none;display:inline-block}.admin-courts-create:hover,.admin-courts-create:focus-visible{opacity:.9;outline:none}.admin-courts-table{border-collapse:collapse;width:100%;font-size:.95rem}.admin-courts-table th,.admin-courts-table td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .6rem}.admin-courts-table th{background:#2d8a4e0f;font-weight:600}.admin-courts-row-link{color:inherit;text-decoration:none}.admin-courts-row-link:hover,.admin-courts-row-link:focus-visible{text-decoration:underline}.admin-courts-empty{text-align:center;color:var(--text);font-style:italic}.admin-courts-error{color:#b00020;margin-top:.5rem}.admin-court-detail-description{color:var(--text);margin:0 0 1rem}.admin-court-detail-rangepicker{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.admin-court-detail-rangepicker label{flex-direction:column;gap:.2rem;font-size:.9rem;display:flex}.admin-court-detail-rangepicker input{box-sizing:border-box;font:inherit;border:1px solid var(--border-strong);border-radius:.25rem;min-height:2.5rem;padding:.45rem .5rem}.admin-court-detail-panel{border:1px solid var(--border);border-radius:.25rem;margin-bottom:.75rem;padding:.5rem .75rem}.admin-court-detail-panel>summary{cursor:pointer;padding:.25rem 0;font-weight:600}.admin-court-detail-form{flex-direction:column;gap:.75rem;margin-top:.75rem;display:flex}.admin-court-detail-form label{flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}.admin-court-detail-form input{font:inherit;border:1px solid var(--border-strong);box-sizing:border-box;border-radius:.25rem;width:100%;min-height:2.6rem;padding:.5rem .55rem}.admin-court-detail-form button{background:var(--heading-color);color:#fff;border:1px solid var(--heading-color);font:inherit;cursor:pointer;border-radius:.25rem;align-self:flex-start;min-height:2.6rem;padding:.6rem 1rem;font-weight:500}.admin-court-detail-form button:disabled{opacity:.5;cursor:default}.admin-court-detail-count{color:var(--text);margin:0;font-size:.9rem}.admin-court-detail-slots-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.admin-court-detail-slots{border-collapse:collapse;width:100%;font-size:.95rem}.admin-court-detail-slots th,.admin-court-detail-slots td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.5rem .55rem}.admin-court-detail-slots th{background:#2d8a4e0f;font-weight:600}@media (width<=39.99rem){.admin-court-detail-col-secondary{display:none}}@media (width>=40rem){.admin-court-detail-slots{min-width:36rem}}.admin-court-detail-slots input{box-sizing:border-box;font:inherit;border:1px solid var(--border-strong);border-radius:.25rem;min-height:2.4rem;padding:.35rem .4rem}.admin-court-detail-row-actions{align-items:center;gap:.4rem;display:flex}.admin-court-detail-row-button{border:1px solid var(--border-strong);background:var(--bg);color:inherit;font:inherit;cursor:pointer;border-radius:.25rem;align-items:center;min-height:2.2rem;padding:.35rem .7rem;text-decoration:none;display:inline-flex}.admin-court-detail-row-button:hover,.admin-court-detail-row-button:focus-visible{background:#2d8a4e0f;outline:none}.admin-court-detail-row-button:disabled{opacity:.5;cursor:default}@media (width>=40rem){.admin-court-detail-rangepicker{flex-direction:row;align-items:end;gap:1rem}.admin-court-detail-rangepicker label,.admin-court-detail-form label{flex:0 auto}.admin-court-detail-rangepicker input{width:auto}.admin-court-detail-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:.75rem 1rem;display:grid}.admin-court-detail-form button{grid-column:1/-1;justify-self:start}.admin-court-detail-form input{width:100%}.admin-court-detail-count{grid-column:1/-1}}@media (width>=60rem){.admin-court-detail-form{grid-template-columns:repeat(4,minmax(0,1fr))}}.admin-keys-actions{margin:0 0 .75rem}.admin-keys-create{background:var(--heading-color);color:#fff;border-radius:.25rem;padding:.4rem .7rem;font-size:.9rem;text-decoration:none;display:inline-block}.admin-keys-create:hover,.admin-keys-create:focus-visible{opacity:.9;outline:none}.admin-keys-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.admin-keys-table{border-collapse:collapse;width:100%;font-size:.95rem}.admin-keys-table th,.admin-keys-table td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .6rem}.admin-keys-table th:first-child,.admin-keys-table td:first-child{white-space:normal}.admin-keys-table th:not(:first-child),.admin-keys-table td:not(:first-child){white-space:nowrap}.admin-keys-table th{background:#2d8a4e0f;font-weight:600}.admin-keys-row-link{color:inherit;text-decoration:none}.admin-keys-row-link:hover,.admin-keys-row-link:focus-visible{text-decoration:underline}.admin-keys-empty{text-align:center;color:var(--text);font-style:italic}.admin-keys-error{color:#b00020;margin-top:.5rem}@media (width<=39.99rem){.admin-keys-col-secondary{display:none}.admin-keys-row-link{margin:-.5rem 0;padding:.5rem 0;display:block}}@media (width>=40rem){.admin-keys-table{min-width:36rem}}.admin-key-detail-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;margin:0 0 1rem;display:grid}.admin-key-detail-meta>div{flex-direction:column;display:flex}.admin-key-detail-meta dt{color:var(--text);margin:0;font-size:.85rem}.admin-key-detail-meta dd{margin:0;font-weight:500}.admin-key-detail-actions{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.admin-key-detail-link{background:var(--heading-color);color:#fff;border-radius:.25rem;padding:.4rem .7rem;font-size:.9rem;text-decoration:none}.admin-key-detail-link:hover,.admin-key-detail-link:focus-visible{opacity:.9;outline:none}.admin-key-detail-secondary,.admin-key-detail-danger{font:inherit;cursor:pointer;border:1px solid var(--border-strong);background:var(--bg);color:var(--text-h);border-radius:.25rem;padding:.4rem .7rem;font-size:.9rem}.admin-key-detail-danger{color:#fff;background:#b91c1c;border-color:#b91c1c}.admin-key-detail-danger:disabled{opacity:.4;cursor:not-allowed}@media (width>=40rem){.admin-key-detail-meta{grid-template-columns:repeat(4,minmax(0,1fr))}}.admin-reports-list{gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.admin-reports-card{border:1px solid var(--border);background:var(--bg);border-radius:.5rem}.admin-reports-card-link{color:inherit;padding:.75rem 1rem;text-decoration:none;display:block}.admin-reports-card-link:hover,.admin-reports-card-link:focus-visible{background:#2d8a4e0f;outline:none}.admin-reports-card-title{margin:0 0 .25rem;font-size:1.05rem}.admin-reports-card-description{color:var(--text);margin:0;font-size:.95rem}@media (width>=40rem){.admin-reports-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.admin-report-monthly-toolbar{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.admin-report-monthly-month{flex-direction:column;gap:.25rem;display:inline-flex}.admin-report-monthly-month input{box-sizing:border-box;border:1px solid var(--border-strong);font:inherit;border-radius:.25rem;min-height:2.6rem;padding:.45rem .55rem}.admin-report-monthly-summary{color:var(--text);margin:0;font-size:.95rem}.admin-report-monthly-export,.admin-report-monthly-print{background:var(--heading-color);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:.25rem;align-self:flex-start;padding:.4rem .7rem;font-size:.9rem;text-decoration:none;display:inline-block}.admin-report-monthly-export:hover,.admin-report-monthly-export:focus-visible,.admin-report-monthly-print:hover,.admin-report-monthly-print:focus-visible{opacity:.9;outline:none}.admin-report-monthly-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.admin-report-monthly-table{border-collapse:collapse;width:100%;font-size:.95rem}.admin-report-monthly-table th,.admin-report-monthly-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.5rem .6rem}.admin-report-monthly-table th{background:#2d8a4e0f;font-weight:600}.admin-report-monthly-table td:nth-child(3),.admin-report-monthly-table td:nth-child(4){white-space:normal}.admin-report-monthly-missing{color:var(--text);font-style:italic}.admin-report-monthly-empty{text-align:center;color:var(--text);font-style:italic}@media (width>=40rem){.admin-report-monthly-toolbar{flex-direction:row;align-items:end;gap:1.25rem}.admin-report-monthly-export{margin-left:auto}}@media print{.admin-report-monthly-month,.admin-report-monthly-export,.admin-report-monthly-print{display:none}.admin-report-monthly-table th .sort-header{pointer-events:none;color:inherit;font:inherit;background:0 0;border:0;padding:0}.admin-report-monthly-table th .sort-header-indicator{display:none}.admin-report-monthly-scroll{overflow:visible}.admin-report-monthly-table th,.admin-report-monthly-table td{white-space:normal}}.admin-report-stats-toolbar{flex-direction:column;gap:.75rem;margin-bottom:1rem;display:flex}.admin-report-stats-field{flex-direction:column;gap:.25rem;display:inline-flex}.admin-report-stats-field input,.admin-report-stats-field select{box-sizing:border-box;border:1px solid var(--border-strong);font:inherit;background:#fff;border-radius:.25rem;min-height:2.6rem;padding:.45rem .55rem}.admin-report-stats-summary{color:var(--text);margin:0;font-size:.95rem}.admin-report-stats-export,.admin-report-stats-print{background:var(--heading-color);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:.25rem;align-self:flex-start;padding:.4rem .7rem;font-size:.9rem;text-decoration:none;display:inline-block}.admin-report-stats-export:hover,.admin-report-stats-export:focus-visible,.admin-report-stats-print:hover,.admin-report-stats-print:focus-visible{opacity:.9;outline:none}.admin-report-stats-scroll{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.admin-report-stats-table{border-collapse:collapse;width:100%;font-size:.95rem}.admin-report-stats-table th,.admin-report-stats-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.5rem .6rem}.admin-report-stats-table th{background:#2d8a4e0f;font-weight:600}.admin-report-stats-table td:nth-child(2){text-align:right;font-variant-numeric:tabular-nums}.admin-report-stats-empty{text-align:center;color:var(--text);font-style:italic}@media (width>=40rem){.admin-report-stats-toolbar{flex-flow:wrap;align-items:end;gap:1.25rem}.admin-report-stats-summary{margin-left:auto}}@media print{.admin-report-stats-field,.admin-report-stats-export,.admin-report-stats-print{display:none}.admin-report-stats-table th .sort-header{pointer-events:none;color:inherit;font:inherit;background:0 0;border:0;padding:0}.admin-report-stats-table th .sort-header-indicator{display:none}.admin-report-stats-scroll{overflow:visible}}:root{--text:#6b6375;--text-h:#08060d;--heading-color:#587678;--bg:#fff;--border:#e5e4e7;--border-strong:#95919c;--code-bg:#f4f3ec;--accent:#3b77ff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:1.125rem/1.45 var(--sans);letter-spacing:.01em;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (width<=64rem){:root{font-size:1rem}}#root{box-sizing:border-box;flex-direction:column;max-width:70rem;min-height:100svh;margin:0 auto;display:flex}body{margin:0}.skip-link{z-index:100;background:var(--accent);color:#fff;border-radius:0 0 .25rem;padding:.5rem 1rem;font-weight:500;text-decoration:none;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}h1,h2{font-family:var(--heading);color:var(--heading-color);font-weight:500}h1{letter-spacing:-.03em;margin:2rem 0;font-size:clamp(2.25rem,4vw,3.5rem)}h2{letter-spacing:-.01em;margin:0 0 .5rem;font-size:clamp(1.25rem,2vw,1.5rem);line-height:1.18}p{margin:0}:where(a:link,a:visited){color:var(--accent)}code{font-family:var(--mono);color:var(--text-h);background:var(--code-bg);border-radius:.25rem;padding:.25rem .5rem;font-size:.875rem;line-height:1.35;display:inline-flex}@media print{.app-header,.admin-shell-sidebar,.admin-shell-backdrop,.admin-shell-collapse,.admin-breadcrumbs,.admin-user-form-back,.skip-link{display:none!important}#root{max-width:none;margin:0}.admin-shell{display:block}body{color:#000;background:#fff}}
