/* Gasten: opaque surfaces, consistent controls and quiet feedback. */
:root{--g-focus:#466335;--g-control-radius:12px;--g-control-height:44px;--g-feedback:#f0f4e9;--g-error:#a13228}
.btn,.form-control,.form-select{min-height:var(--g-control-height);border-radius:var(--g-control-radius)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.4;transition:background-color 120ms ease-out,border-color 120ms ease-out,box-shadow 120ms ease-out}
.btn:active:not(:disabled):not(.disabled){box-shadow:inset 0 2px 4px #25382024}
.btn[aria-disabled=true]{cursor:wait;opacity:.75}
.form-label,.control-label{font-weight:600}.form-control,.form-select{line-height:1.5}
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--g-focus)!important;outline-offset:3px!important}
.form-control:focus,.form-select:focus{border-color:var(--g-focus);box-shadow:0 0 0 3px #e4ebdb}
.g-settings-tile{transition:border-color 120ms ease-out,box-shadow 120ms ease-out}
.g-settings a:hover .g-settings-tile,.g-settings a:focus-visible .g-settings-tile{border-color:#aab99d;box-shadow:0 3px 12px #2638200a}
.g-settings a:active .g-settings-tile{background:#f7f9f3}
.g-settings-tile h3{line-height:1.4}.g-settings-tile p{line-height:1.5}
.nav-tabs,.g-team .g-team-tabs{gap:8px;border-bottom:1px solid #dce2d5;scrollbar-width:thin;padding:4px 0}
.nav-tabs .nav-link,.g-team .g-team-tabs a{padding:11px 16px;min-height:44px;border:0;border-radius:10px;font-size:14px;white-space:nowrap;color:#58634f;line-height:1.5}
.nav-tabs .nav-link.active,.g-team .g-team-tabs a[aria-current=page]{color:#293a23;background:#edf2e3;border:0;font-weight:650}
.nav-tabs .nav-link:hover,.g-team .g-team-tabs a:hover{background:#f3f5ee}
.g-team .g-team-tabs{display:flex;flex-wrap:wrap;overflow:visible}
.g-team-status{background:#f0f3eb;border-radius:8px;padding:4px 8px;align-self:start;white-space:nowrap}
.g-team-record time,.table time,.table input[type=number]{font-variant-numeric:tabular-nums}
.g-field-error{display:block;color:var(--g-error);font-size:14px;line-height:1.5;margin-top:6px}
[aria-invalid=true]{border-color:var(--g-error)!important}
.g-form-feedback{font-size:14px;padding:10px 14px;background:var(--g-feedback);border-radius:10px;line-height:1.5;margin:10px 0}
.g-form-feedback:empty{display:none}.g-form-feedback.is-error{background:#fff0ed;color:#8c2c23}
.g-reservation-panel{position:fixed;inset:16px 16px 16px auto;margin:0;width:min(760px,calc(100vw - 32px));height:calc(100dvh - 32px);max-width:none;max-height:none;border:1px solid #d9dfd2;border-radius:22px;padding:0;background:#fff;color:#263322;box-shadow:0 16px 60px #1c271b30;overflow:hidden}
.g-reservation-panel[open]{display:flex;flex-direction:column;animation:g-panel-in 160ms ease-out}
.g-reservation-panel::backdrop{background:#19231540;backdrop-filter:none}
.g-reservation-panel header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid #e4e8de;background:#fff;flex-shrink:0}
.g-reservation-panel h2{font-size:21px;margin:0;font-weight:600;letter-spacing:-.5px}
.g-reservation-panel iframe{border:0;width:100%;flex:1;min-height:0;background:#fff}
.g-panel-state{padding:16px 24px;margin:0;line-height:1.5}.g-panel-state[hidden],.g-panel-discard[hidden]{display:none}
.g-panel-discard{padding:16px 24px;background:#fff5eb;border-top:1px solid #ebd9c4}
.g-panel-discard p{margin-bottom:12px}.g-panel-discard .btn{margin:0 8px 4px 0}
.g-reservation-frame .navbar-top,.g-reservation-frame .sidebar,.g-reservation-frame .page-header{display:none!important}
.g-reservation-frame .page-wrapper{margin:0!important;border-radius:0!important;background:#fff!important;width:100%!important;max-width:none!important}
.g-reservation-frame .page-content{padding:0!important;background:#fff!important;overflow:visible!important}
.g-reservation-frame #edit-form{margin:0;background:#fff;padding-bottom:24px}
.g-reservation-frame #edit-form>#toolbar,.g-reservation-frame #edit-form>.border-bottom{position:sticky;top:0;z-index:1020;background:#fff}
.g-reservation-frame .toolbar-action{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 24px!important}
.g-reservation-frame [data-control=form-save-actions]>.dropdown-toggle,.g-reservation-frame [data-control=form-save-actions]>.dropdown-menu{display:none!important}
.g-reservation-frame .form-fields .form-group{margin-bottom:20px}
.g-reservation-frame .g-form-feedback{margin:0 0 0 12px}
.g-reservation-frame .form-fields .row>[class*=col-]{min-width:0}
.g-reservation-frame .nav-tabs:has(>.nav-item:only-child){display:none}
@keyframes g-panel-in{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:600px){.g-reservation-panel{inset:0;width:100%;height:100dvh;border:0;border-radius:0}.g-reservation-panel header{padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top))}.g-reservation-panel h2{font-size:19px}.g-reservation-frame .toolbar-action{padding:12px 16px!important}.g-reservation-frame .g-form-feedback{flex-basis:100%;margin:0}.g-reservation-frame .form-control,.g-reservation-frame .form-select{font-size:16px}.g-team .g-team-tabs{gap:4px}.g-team .g-team-tabs a{flex:1 0 calc(50% - 4px);text-align:center;padding:10px 8px}.g-panel-discard{padding:16px}}
@media(prefers-reduced-motion:reduce){.g-reservation-panel[open]{animation:none}.btn,.g-settings-tile,.nav-link{transition:none!important}html:focus-within{scroll-behavior:auto}}
.g-reservation-frame .page-content>.d-flex:has(>.page-title){display:none!important}
.g-reservation-frame .btn-group>[data-request=onSave]{border-radius:12px!important}
.g-reservation-frame .select2-selection{border-radius:12px!important;min-height:44px!important}
.form-nav.nav-tabs{background:#fff!important;padding:8px 16px;gap:6px}
.form-nav.nav-tabs>.nav-item>.nav-link{color:#58634f!important;background:#fff;border:0!important;border-radius:10px!important;min-height:44px;padding:11px 16px!important}
.form-nav.nav-tabs>.nav-item>.nav-link.active{color:#293a23!important;background:#edf2e3!important;font-weight:650}
.form-nav.nav-tabs>.nav-item>.nav-link:hover{background:#f3f5ee!important}
.g-reservation-frame .choices__inner{background:#fff;border-radius:12px;min-height:44px}
.g-reservation-frame .choices.is-disabled .choices__inner{background:#f3f5ef}

/* Native navigation remains intact; supported browsers animate only the content. */
@media(prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 .page-content{view-transition-name:g-content}
 ::view-transition-group(*){animation-duration:180ms}
 ::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
 ::view-transition-old(g-content){animation:g-content-out 110ms ease-in both}
 ::view-transition-new(g-content){animation:g-content-in 180ms cubic-bezier(.2,.7,.2,1) both}
 .btn,.g-settings-tile,.sidebar .nav-link,.fp-template,.fp-tabs button,.g-team-tabs a{transition:background-color 140ms ease,border-color 140ms ease,box-shadow 140ms ease,translate 140ms ease}
 .btn:active:not(:disabled),.g-settings a:active .g-settings-tile,.fp-template:active:not(:disabled){translate:0 1px}
 .tab-pane.active.show{animation:g-tab-in 150ms ease-out}
}
@keyframes g-content-out{to{opacity:0}}
@keyframes g-content-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes g-tab-in{from{opacity:.35;translate:0 3px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}::view-transition-group(*){animation:none!important}}
