:root{--river-deep:#103b4c;--river-mid:#286579;--reed:#6f7f3f;--sand:#f0ead9;--foam:#fbf9f2;--ink:#15282d;--line:#c7d2c4;--focus:#c8592f;--page-max:70rem;--surface:#fbf9f2;--surface-raised:#fff;--surface-muted:#e8efea;--text:#15282d;--text-muted:#49666d;--success:#315d2a;--success-surface:#e2efdc;--warning:#765400;--warning-surface:#f8e6a7;--danger:#8a2118;--danger-surface:#f4d6cf;--border:#bdc9bf;--radius-sm:.35rem;--radius-md:.55rem;--shadow-raised:0 .45rem 1.25rem #103b4c1f;--control-height:2.75rem}.import-workspace,.report-workspace{width:min(100%, var(--page-max));gap:1rem;margin:0 auto;padding:clamp(1rem,3vw,2rem);display:grid}.import-upload,.import-preview,.report-section{border:1px solid var(--line);background:var(--foam);border-radius:.6rem;gap:.85rem;padding:1rem;display:grid}.import-upload label,.report-actions label{color:var(--river-deep);gap:.35rem;font-weight:700;display:grid}.import-row{align-items:center}.status-chip{background:var(--sand);color:var(--river-deep);border-radius:999px;padding:.3rem .55rem;font-size:.78rem;font-weight:700}.button-link{background:var(--river-deep);min-height:2.75rem;color:var(--foam);border-radius:.35rem;justify-content:center;align-items:center;padding:.65rem 1rem;text-decoration:none;display:inline-flex}.report-heading{justify-content:space-between;align-items:end;gap:1rem;display:flex}.report-heading h1,.report-heading p,.report-section h2{margin:0}.report-actions{flex-wrap:wrap;align-items:end;gap:.6rem;display:flex}.report-table-scroll{border:1px solid var(--line);border-radius:.4rem;overflow-x:auto}.report-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:70rem}.report-table th,.report-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top;text-align:left;padding:.45rem}.report-table thead th{color:var(--river-deep);background:#e8f0ef;font-size:.75rem}.report-table tbody th{background:var(--foam);width:9rem}.report-table tbody th small,.report-booking,.report-booking small{display:block}.report-state{text-transform:uppercase;margin-bottom:.25rem;font-size:.68rem;font-weight:700;display:block}.report-booking{overflow-wrap:anywhere;font-size:.75rem}.report-free{background:#edf7ea}.report-active{background:#f5c7c2}.report-planned{background:#f8e6a7}.report-unavailable{background:#e8e9e7}.report-conflict{outline:2px solid var(--focus);outline-offset:-2px}@media (max-width:48rem){.report-heading{flex-direction:column;align-items:stretch}.report-actions>*{flex:10rem}}@media print{.report-workspace{max-width:none;padding:0;display:block}.report-actions,.admin-header,.admin-nav{display:none!important}.report-section{break-inside:avoid;border:0;padding:0}.report-table-scroll{border-color:#777;overflow:visible}.report-table{min-width:0;font-size:7pt}.report-table th,.report-table td{background:0 0;padding:.2rem}@page{size:A4 landscape;margin:8mm}}*{box-sizing:border-box}html{scrollbar-color:var(--river-mid) var(--sand);scrollbar-width:thin}::-webkit-scrollbar{width:.75rem;height:.75rem}::-webkit-scrollbar-track{background:var(--sand)}::-webkit-scrollbar-thumb{background:var(--river-mid);border:.2rem solid var(--sand);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--river-deep)}body{background:var(--sand);min-width:20rem;color:var(--ink);margin:0;font-family:Arial,Helvetica,sans-serif}.landing-shell{isolation:isolate;min-height:100dvh;padding:clamp(1.5rem,5vw,4.5rem);display:grid;position:relative;overflow:hidden}.landing-content{width:min(100%, var(--page-max));align-self:center;margin:0 auto}.eyebrow,footer{color:var(--river-mid);letter-spacing:.12em;text-transform:uppercase;font-family:Courier New,Courier,monospace;font-size:.75rem;font-weight:700;line-height:1.4}h1{max-width:13ch;color:var(--river-deep);letter-spacing:-.075em;margin:.6rem 0 1.5rem;font-family:Georgia,Times New Roman,serif;font-size:clamp(3.4rem,11vw,8.5rem);font-weight:400;line-height:.88}.intro{max-width:37rem;margin:0;font-size:clamp(1rem,2vw,1.25rem);line-height:1.65}.status{border:1px solid var(--line);background:color-mix(in srgb, var(--foam) 85%, transparent);color:var(--river-deep);border-radius:.35rem;align-items:center;gap:.65rem;margin-top:2.4rem;padding:.7rem 1rem;font-size:.9rem;font-weight:700;display:inline-flex}.status-marker{background:var(--reed);border-radius:50%;width:.6rem;height:.6rem}.water-lines{z-index:-1;aspect-ratio:1;border:1px solid color-mix(in srgb, var(--river-mid) 26%, transparent);width:min(60rem,88vw);box-shadow:0 0 0 2.4rem color-mix(in srgb, var(--river-mid) 7%, transparent), 0 0 0 5.5rem color-mix(in srgb, var(--river-mid) 5%, transparent), 0 0 0 9.2rem color-mix(in srgb, var(--river-mid) 4%, transparent), 0 0 0 13.5rem color-mix(in srgb, var(--river-mid) 3%, transparent);border-radius:49% 51% 50% 50%;position:absolute;bottom:-19rem;right:-17rem;transform:rotate(-12deg)}footer{width:min(100%, var(--page-max));align-self:end;margin:0 auto}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}@media (max-width:38rem){h1{letter-spacing:-.06em}}button,input,select,textarea,.button-link{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:not(:disabled),select:not(:disabled),input[type=checkbox]:not(:disabled),input[type=radio]:not(:disabled){cursor:pointer}input:not([type=checkbox]):not([type=radio]):not([type=file]),select,button,.button-link{min-height:var(--control-height)}input,select,textarea{font-size:max(1rem,16px)}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed}.workspace-header{justify-content:space-between;align-items:flex-start;gap:1.25rem;display:flex}.workspace-header h1,.clients-header h1,.report-heading h1{max-width:22ch;margin:.35rem 0 .75rem;font-size:clamp(2rem,6vw,3.75rem);line-height:1}.workspace-header p:not(.eyebrow),.clients-header p:not(.eyebrow),.report-heading p:not(.eyebrow){max-width:46rem;color:var(--text-muted);margin:0;line-height:1.55}.workspace-header nav,.booking-nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem .9rem;display:flex}.quiet-link,.app-link{min-height:var(--control-height);text-underline-offset:.25rem;align-items:center;padding:.45rem .15rem;display:inline-flex}.client-panel,.resource-create-card,.resource-admin-card,.schedule-booking-panel,.import-upload,.import-preview,.report-section,.admin-card,.admin-stats article{border-color:var(--border);border-radius:var(--radius-md)}.client-panel,.schedule-booking-panel,.import-upload,.import-preview,.report-section{box-shadow:0 1px #103b4c0a}.primary-button,.quiet-button,.danger-button,.admin-shell button,.login-form button,.button-link{min-height:var(--control-height);border-radius:var(--radius-sm);transition:background-color .12s,border-color .12s,color .12s}.quiet-button:hover:not(:disabled),.admin-shell button.secondary:hover:not(:disabled),.admin-shell button.danger-secondary:hover:not(:disabled){background:color-mix(in srgb, var(--river-mid) 9%, transparent)}.client-id,.selected-client code,.client-result span:first-of-type,.booking-card span:nth-of-type(2){font-variant-numeric:tabular-nums;font-family:Courier New,Courier,monospace}.admin-error,.login-message{color:var(--danger)}.password-control{grid-template-columns:minmax(0,1fr) auto;display:grid}.password-control input{border-radius:var(--radius-sm) 0 0 var(--radius-sm);min-width:0}.password-control .password-toggle{border:1px solid var(--river-mid);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-muted);min-width:6rem;color:var(--river-deep);border-left:0;padding-inline:.75rem;font-weight:700}.password-control .password-toggle:hover:not(:disabled){background:var(--surface-raised)}.status-chip,.visit-status,.resource-state,.festival-chip{line-height:1.3}.app-home{align-content:start;width:min(100%,76rem);min-height:100dvh;margin:0 auto}.app-home-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.app-home-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-height:8.5rem;color:var(--text);align-content:center;gap:.45rem;padding:1rem;text-decoration:none;display:grid}.app-home-card:hover,.app-home-card:focus-visible{border-color:var(--river-mid);background:var(--surface-raised);box-shadow:var(--shadow-raised)}.app-home-card span{color:var(--text-muted);line-height:1.45}.app-home-card.is-primary{border-color:var(--river-deep);background:var(--river-deep)}.app-home-card.is-primary strong,.app-home-card.is-primary span{color:var(--foam)}.import-steps{counter-reset:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.import-steps li{border-bottom:3px solid var(--border);min-width:0;color:var(--text-muted);padding:.6rem;font-size:.82rem;font-weight:700}.import-steps li.is-current{border-color:var(--river-deep);color:var(--river-deep)}.import-steps li.is-complete{border-color:var(--success);color:var(--success)}.import-upload input[type=file]{min-height:var(--control-height);border:1px dashed var(--river-mid);border-radius:var(--radius-sm);background:var(--surface-raised);padding:.5rem}.weekly-grid-scroll,.report-table-scroll{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;width:100%;min-width:0;max-width:100%}.weekly-grid tbody tr:hover .resource-column,.weekly-grid tbody tr:hover td{filter:brightness(.98)}.schedule-allocation,.free-cell{min-height:4.9rem}.report-section>p,.empty-list,.empty-detail,.schedule-state{color:var(--text-muted)}@media (max-width:64rem){.app-home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:48rem){.workspace-header,.clients-header{display:grid}.workspace-header nav,.booking-nav{justify-content:flex-start}.admin-shell,.clients-shell,.booking-shell,.app-shell,.import-workspace,.report-workspace{padding-right:max(1rem, env(safe-area-inset-right));padding-left:max(1rem, env(safe-area-inset-left))}.admin-nav{margin-inline:-1rem;padding-inline:1rem;scroll-padding-inline:1rem}}@media (max-width:32rem){.app-home-grid,.import-steps{grid-template-columns:1fr}.app-home-card{min-height:6.5rem}.import-steps li{border-bottom:0;border-left:3px solid var(--border)}}@media (prefers-reduced-motion:reduce){.primary-button,.quiet-button,.danger-button,.admin-shell button,.login-form button,.button-link{transition:none}}@media print{body{background:#fff}.report-heading p,.schedule-heading p,.eyebrow{color:#222}.report-section,.report-table,.weekly-grid{break-inside:avoid-page}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}@media (forced-colors:active){html{scrollbar-color:auto}}.admin-shell{width:min(100%,76rem);min-height:100dvh;margin:0 auto;padding:clamp(1rem,3vw,2.5rem)}.admin-header{background:var(--river-deep);color:#fff;border-radius:.6rem;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.admin-header h1{color:#fff;letter-spacing:-.03em;max-width:none;margin:.2rem 0 0;font-family:Arial,Helvetica,sans-serif;font-size:clamp(1.7rem,5vw,2.4rem);font-weight:700;line-height:1}.admin-header .eyebrow,.admin-header a{color:#fff}.admin-nav{gap:.35rem;margin:.75rem 0 1.5rem;padding-bottom:.35rem;display:flex;overflow-x:auto}.admin-nav a{border:1px solid var(--line);background:var(--foam);color:var(--river-deep);border-radius:.45rem;flex:none;padding:.7rem .85rem;font-weight:700;text-decoration:none}.admin-shell section>h2{color:var(--river-deep);margin-bottom:.35rem;font-size:clamp(1.5rem,4vw,2rem)}.admin-section-head{justify-content:space-between;align-items:end;gap:1rem;display:flex}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem;display:grid}.admin-stats article,.admin-card{border:1px solid var(--line);background:var(--foam);border-radius:.55rem}.admin-stats article{gap:.25rem;padding:1rem;display:grid}.admin-stats strong{color:var(--river-deep);font-size:2rem}.admin-inline-form{border:1px solid var(--line);background:color-mix(in srgb, var(--foam) 75%, white);border-radius:.55rem;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.65rem;margin:1rem 0;padding:.85rem;display:grid}.admin-filter-bar{border-block:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.55rem;margin:1rem 0 .65rem;padding:.7rem;display:grid}.admin-filter-bar label{color:var(--river-mid);gap:.25rem;font-size:.78rem;font-weight:700;display:grid}.admin-inline-form label{gap:.25rem;font-size:.8rem;font-weight:700;display:grid}.admin-inline-form input,.admin-inline-form select,.admin-filter-bar input,.admin-filter-bar select,.admin-section-head input,.admin-actions select,.admin-confirm input{border:1px solid var(--river-mid);width:100%;min-height:2.75rem;color:var(--ink);font:inherit;background:#fff;border-radius:.4rem;padding:.55rem .65rem}.admin-shell button{border:1px solid var(--river-deep);background:var(--river-deep);color:#fff;min-height:2.75rem;font:inherit;cursor:pointer;border-radius:.4rem;padding:.55rem .85rem;font-weight:700}.admin-shell button:disabled{cursor:wait;opacity:.55}.admin-shell button.secondary,.admin-shell button.danger-secondary{color:var(--river-deep);background:0 0}.admin-shell button.danger-secondary{border-color:var(--focus);color:#8b2f14}.admin-list{gap:.55rem;display:grid}.admin-card{justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.admin-card>div:first-child{gap:.25rem;min-width:0;display:grid}.admin-card small{color:var(--river-mid);overflow-wrap:anywhere}.admin-card code{overflow-wrap:anywhere;max-width:45%;font-size:.72rem}.admin-actions,.admin-confirm,.admin-pagination{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.admin-confirm{border:1px solid var(--focus);background:#fff;border-radius:.4rem;padding:.5rem}.admin-confirm label{gap:.25rem;display:grid}.admin-message,.admin-error{border-left:.25rem solid var(--focus);background:var(--foam);padding:.7rem .85rem}.admin-pagination{justify-content:center;margin-top:1rem}.admin-selector-pagination{color:var(--river-mid);justify-content:flex-end;align-items:center;gap:.45rem;margin:-.55rem 0 1rem;font-size:.8rem;display:flex}@media (max-width:44rem){.admin-header{align-items:flex-start}.admin-section-head,.admin-card{flex-direction:column;align-items:stretch}.admin-actions,.admin-confirm{grid-template-columns:1fr;display:grid}.admin-card code{max-width:100%}}.login-shell,.app-shell{min-height:100dvh;padding:clamp(1.5rem,6vw,5rem);display:grid}.login-card{border:1px solid var(--line);background:var(--foam);border-radius:.35rem;align-self:center;width:min(100%,28rem);margin-inline:auto;padding:clamp(1.5rem,5vw,2.5rem)}.login-card h1,.app-shell h1{margin-block:.7rem 1rem;font-size:clamp(2.25rem,10vw,4rem);line-height:.95}.login-copy,.app-shell p:not(.eyebrow){line-height:1.55}.login-form{gap:1.15rem;margin-top:2rem;display:grid}.telegram-shell{padding-top:max(clamp(1.5rem, 6vw, 5rem), env(safe-area-inset-top));padding-right:max(clamp(1rem, 6vw, 5rem), env(safe-area-inset-right));padding-bottom:max(clamp(1.5rem, 6vw, 5rem), env(safe-area-inset-bottom));padding-left:max(clamp(1rem, 6vw, 5rem), env(safe-area-inset-left))}.telegram-fallback{gap:1rem;display:grid}.telegram-fallback p{margin:0}.field{gap:.45rem;display:grid}.field label{font-weight:700}.field input{border:1px solid var(--river-mid);width:100%;min-height:2.8rem;color:var(--ink);font:inherit;background:#fff;border-radius:.35rem;padding:.65rem .75rem}.login-form button{border:1px solid var(--river-deep);background:var(--river-deep);min-height:2.8rem;color:var(--foam);cursor:pointer;font:inherit;border-radius:.35rem;font-weight:700}.login-form button:hover:not(:disabled){background:var(--river-mid)}.login-form button:disabled,.field input:disabled{cursor:not-allowed;opacity:.65}.login-message{color:#9f2c1d;min-height:1.5rem;font-size:.9rem}.login-message p{margin:0}.app-link,.quiet-link{color:var(--river-deep);font-weight:700}.clients-shell{width:min(100%,76rem);margin:0 auto;padding:clamp(1.25rem,4vw,3.5rem)}.clients-header{justify-content:space-between;align-items:start;gap:1.5rem;margin-bottom:1.5rem;display:flex}.clients-header h1{max-width:15ch;font-size:clamp(2.3rem,8vw,5rem)}.clients-header p:not(.eyebrow){max-width:42rem;line-height:1.55}.client-layout{grid-template-columns:minmax(18rem,.85fr) minmax(0,1.35fr);align-items:start;gap:1rem;display:grid}.client-panel{border:1px solid var(--line);background:var(--foam);border-radius:.35rem;min-width:0;padding:clamp(1rem,3vw,1.6rem)}.client-panel h2,.client-panel h3{color:var(--river-deep);margin:0 0 1rem;font-family:Georgia,Times New Roman,serif}.search-control{align-items:center;gap:.4rem;display:flex}.field input,.field select,.field textarea{border:1px solid var(--river-mid);width:100%;min-height:2.75rem;color:var(--ink);font:inherit;background:#fff;border-radius:.35rem;padding:.6rem .7rem}.field textarea{resize:none;min-height:6rem}.field-help,.client-id{color:var(--river-mid);margin:.45rem 0;font-size:.85rem;line-height:1.45}.clear-button,.client-toast button{border:1px solid var(--river-mid);width:2.5rem;min-height:2.5rem;color:var(--river-deep);cursor:pointer;font:inherit;background:0 0;border-radius:.35rem;font-size:1.35rem}.result-list{gap:.5rem;min-height:4rem;margin:1rem 0 1.75rem;display:grid}.result-list p{color:var(--river-mid);margin:0;line-height:1.5}.client-result{border:1px solid var(--line);width:100%;color:var(--ink);text-align:left;cursor:pointer;background:#fff;border-radius:.35rem;gap:.2rem;padding:.75rem;display:grid}.client-result:hover{border-color:var(--river-mid);background:color-mix(in srgb, var(--sand) 35%, white)}.client-result span{color:var(--river-mid);font-size:.8rem}.client-form{border-top:1px solid var(--line);gap:.9rem;padding-top:1.25rem;display:grid}.primary-button,.danger-button,.quiet-button{border:1px solid var(--river-deep);cursor:pointer;min-height:2.8rem;font:inherit;border-radius:.35rem;padding:.65rem .9rem;font-weight:700}.primary-button{background:var(--river-deep);color:var(--foam)}.primary-button:hover:not(:disabled){background:var(--river-mid)}.primary-button:disabled,.quiet-button:disabled{cursor:not-allowed;opacity:.55}.quiet-button{color:var(--river-deep);background:0 0}.danger-button{color:#fff;background:#9f2c1d;border-color:#9f2c1d}.danger-button:disabled{cursor:not-allowed;opacity:.55}.detail-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.detail-heading h2{margin-bottom:.35rem}.loyalty-badge{border:1px solid var(--line);max-width:13rem;color:var(--river-mid);text-align:center;border-radius:999px;padding:.45rem .6rem;font-size:.82rem;font-weight:700}.loyalty-badge.is-eligible{border-color:var(--reed);background:color-mix(in srgb, var(--reed) 16%, var(--foam));color:#3b4a1e}.client-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;margin:1.3rem 0;display:grid}.client-stats div{border-left:3px solid var(--river-mid);background:color-mix(in srgb, var(--sand) 55%, var(--foam));padding:.75rem}.client-stats dt{color:var(--river-mid);text-transform:uppercase;letter-spacing:.06em;font-size:.76rem;font-weight:700}.client-stats dd{margin:.4rem 0 0;font-weight:700;line-height:1.35}.history{border-top:1px solid var(--line);padding:1.2rem 0}.history ol{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.history li{border:1px solid var(--line);background:#fff;border-radius:.35rem;padding:.75rem}.history li>div{justify-content:space-between;align-items:center;gap:.7rem;display:flex}.history li p{white-space:pre-wrap;margin:.55rem 0 0;line-height:1.45}.visit-status{background:var(--sand);color:var(--river-deep);border-radius:999px;padding:.2rem .4rem;font-family:Courier New,monospace;font-size:.72rem;font-weight:700}.status-cancelled,.status-no_show{color:#762217;background:#f4d6cf}.date-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.merge-zone{border-top:1px solid var(--line);gap:.75rem;margin-top:1.4rem;padding-top:1.2rem;display:grid}.merge-zone p{margin:0;line-height:1.45}.merge-results{max-height:15rem;margin:0;overflow-y:auto}.merge-preview,.merge-direction{align-items:center;gap:.75rem;display:grid}.merge-preview{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.merge-preview .danger-button{grid-column:1/-1}.merge-arrow,.merge-direction>strong{color:var(--river-deep);text-align:center;font-size:1.8rem}.client-preview{border:1px solid var(--line);background:#fff;border-radius:.35rem;gap:.3rem;min-width:0;padding:.75rem;display:grid}.client-preview code{overflow-wrap:anywhere;color:var(--river-mid);font-size:.78rem}.client-preview>span:last-child{color:var(--river-mid);font-size:.82rem}.duplicate-list{gap:.7rem;max-height:45vh;display:grid;overflow-y:auto}.duplicate-card{gap:.45rem;display:grid}.merge-direction{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.empty-detail{align-content:center;min-height:22rem;display:grid}.client-toast{z-index:3;border:1px solid var(--river-deep);background:var(--foam);border-radius:.35rem;align-items:center;gap:.75rem;max-width:min(32rem,100vw - 2rem);padding:.75rem .8rem;display:flex;position:fixed;bottom:1rem;right:1rem;box-shadow:0 .4rem 1rem #103b4c33}.dialog-backdrop{z-index:4;background:#15282d8a;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.merge-dialog{border:1px solid var(--line);background:var(--foam);border-radius:.35rem;width:min(100%,33rem);max-height:calc(100dvh - 2rem);padding:1.35rem;overflow-y:auto}.merge-dialog h2{color:var(--river-deep);margin-top:.3rem;font-family:Georgia,serif}.merge-dialog p{line-height:1.55}.merge-dialog code{overflow-wrap:anywhere}.dialog-actions{justify-content:end;gap:.75rem;margin-top:1.25rem;display:flex}@media (max-width:52rem){.client-layout{grid-template-columns:1fr}.clients-header{display:grid}}@media (max-width:32rem){.detail-heading,.history li>div{display:grid}.client-stats,.date-grid,.merge-preview,.merge-direction{grid-template-columns:1fr}.merge-arrow,.merge-direction>strong{transform:rotate(90deg)}.dialog-actions{display:grid}}.booking-shell{width:min(100%,90rem);margin:0 auto;padding:clamp(1.25rem,4vw,3.5rem)}.booking-nav{flex-wrap:wrap;gap:1rem;display:flex}.booking-grid{grid-template-columns:minmax(20rem,.95fr) minmax(20rem,1.05fr);align-items:start;gap:1rem;display:grid}.booking-create,.booking-list{min-width:0}.booking-form{gap:1rem;display:grid}.booking-form fieldset{border:1px solid var(--line);border-radius:.35rem;gap:.85rem;min-width:0;margin:0;padding:1rem;display:grid}.booking-form fieldset:disabled{opacity:.72}.booking-form legend{color:var(--river-deep);padding:0 .45rem;font-family:Georgia,Times New Roman,serif;font-weight:700}.compact-results{scrollbar-gutter:stable;max-height:15rem;margin:.2rem 0;overflow-y:auto}.selected-client{border-left:4px solid var(--reed);background:color-mix(in srgb, var(--sand) 55%, white);gap:.3rem;padding:.8rem;display:grid}.selected-client p{margin:0}.selected-client code{overflow-wrap:anywhere;color:var(--river-mid)}.selected-client span{line-height:1.4}.guest-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;display:grid}.choice-row{flex-wrap:wrap;gap:1rem;display:flex}.choice-row label{cursor:pointer;align-items:center;gap:.5rem;min-height:2.75rem;display:inline-flex}.choice-row input{width:1.25rem;height:1.25rem;accent-color:var(--river-deep)}.festival-result{border:1px solid var(--line);color:var(--river-mid);background:#fff;margin:0;padding:.65rem .75rem;font-weight:700}.festival-result.is-festival{border-color:var(--focus);background:color-mix(in srgb, var(--focus) 10%, white);color:#7c3218}.booking-review{border:1px dashed var(--river-mid);background:color-mix(in srgb, var(--sand) 45%, white);padding:1rem}.booking-review p{margin:.35rem 0;line-height:1.45}.inline-notice{border-left:3px solid var(--river-mid);background:var(--sand);padding:.7rem;line-height:1.45}.list-toolbar{justify-content:space-between;align-items:end;gap:1rem;display:flex}.list-toolbar .field{min-width:10rem}.booking-cards{gap:.6rem;min-height:12rem;display:grid}.booking-card{border:1px solid var(--line);width:100%;min-width:0;color:var(--ink);cursor:pointer;text-align:left;background:#fff;border-radius:.35rem;gap:.25rem;padding:.85rem;display:grid;position:relative}.booking-card:hover{border-color:var(--river-mid);background:color-mix(in srgb, var(--sand) 32%, white)}.booking-card span{overflow-wrap:anywhere;color:var(--river-mid);font-size:.83rem}.booking-card .booking-card-date{color:var(--river-deep);font-family:Courier New,monospace;font-weight:700}.booking-card .festival-chip{background:color-mix(in srgb, var(--focus) 12%, white);color:#7c3218;border-radius:999px;padding:.2rem .45rem;font-weight:700;position:absolute;top:.7rem;right:.7rem}.empty-list{min-height:12rem;color:var(--river-mid);text-align:center;align-content:center;gap:.35rem;display:grid}.pagination{justify-content:center;align-items:center;gap:.8rem;margin-top:1rem;display:flex}.booking-detail-wrap{margin-top:1rem}.booking-detail{width:min(100%,56rem);margin-inline:auto}.edit-booking{margin-top:1rem}.allocation-editor{border-top:1px solid var(--line);gap:1rem;margin-top:1.4rem;padding-top:1.25rem;display:grid}.allocation-editor h3{color:var(--river-deep);margin:.15rem 0 .35rem;font-family:Georgia,Times New Roman,serif}.allocation-list{gap:.55rem;display:grid}.allocation-segment{border:1px solid var(--line);background:color-mix(in srgb, var(--sand) 36%, white);justify-content:space-between;align-items:center;gap:1rem;padding:.75rem;display:flex}.allocation-segment div{gap:.2rem;min-width:0;display:grid}.allocation-segment span{overflow-wrap:anywhere;color:var(--river-mid);font-size:.83rem}.allocation-add{border:1px dashed var(--river-mid);grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:.65rem;padding:.85rem;display:grid}.resource-type-tabs,.resource-choice-grid{border:0;grid-column:1/-1;min-width:0;margin:0;padding:0}.resource-type-tabs{flex-wrap:wrap;gap:.35rem;display:flex}.resource-type-tabs legend,.resource-choice-grid legend{width:100%;margin-bottom:.45rem;font-weight:700}.resource-type-tabs button{border:1px solid var(--line);min-height:2.75rem;color:var(--river-deep);font:inherit;background:#fff;border-radius:999px;padding:.55rem .9rem;font-weight:700}.resource-type-tabs button.active{border-color:var(--river-deep);background:var(--river-deep);color:#fff}.resource-choice-grid{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.55rem;display:grid}.resource-choice{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:.45rem;grid-template-columns:auto 1fr;gap:.2rem .55rem;min-width:0;padding:.75rem;display:grid}.resource-choice input{grid-row:1/4;align-self:center}.resource-choice span{color:var(--river-mid);overflow-wrap:anywhere;font-size:.8rem}.resource-choice.unavailable{background:color-mix(in srgb, var(--sand) 55%, white);cursor:not-allowed;opacity:.72}.allocation-add .quiet-button{min-height:2.75rem}.allocation-state{min-height:3rem;color:var(--river-mid);margin:0;padding:.75rem}.allocation-history p{color:var(--river-mid);margin:.35rem 0 0 1rem;font-size:.85rem}@media (max-width:62rem){.booking-grid{grid-template-columns:1fr}.allocation-add{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:36rem){.guest-grid,.date-grid{grid-template-columns:1fr}.list-toolbar{align-items:stretch;display:grid}.allocation-add{grid-template-columns:1fr}.allocation-segment{flex-direction:column;align-items:stretch}.booking-card .festival-chip{justify-self:start;position:static}}.resource-workspace{gap:1.5rem}.resource-create-card{border:1px solid var(--line);background:var(--foam);border-radius:.6rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;padding:clamp(1rem,3vw,1.5rem);display:grid}.resource-create-card h2,.resource-create-card .resource-type-tabs,.resource-create-card .resource-notes,.resource-create-card .primary-button{grid-column:1/-1}.resource-create-card textarea{resize:none;min-height:5rem}.resource-groups{gap:1.4rem;display:grid}.resource-list-heading{justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem;display:flex}.resource-list-heading h2,.resource-list-heading p{margin:0}.resource-list-heading p{color:var(--river-mid);font-size:.86rem}.resource-filters{align-items:end;gap:.65rem;display:flex}.resource-filters .field{min-width:11rem}.search-field{align-items:center;gap:.35rem;display:flex}.search-field input{min-width:0}.search-field .quiet-button{min-width:2.8rem;min-height:2.8rem;padding:.35rem}.resource-groups h3{color:var(--river-deep);margin-bottom:.55rem}.resource-admin-grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.65rem;display:grid}.resource-admin-card{border:1px solid var(--line);background:#fff;border-radius:.5rem;gap:.55rem;min-width:0;padding:.9rem;display:grid}.resource-admin-card>div:first-child{justify-content:space-between;gap:.5rem;display:flex}.resource-card-actions,.resource-edit-actions{flex-wrap:wrap;gap:.5rem;display:flex}.resource-edit-panel{border-top:1px solid var(--line);background:var(--foam);gap:.7rem;margin:.2rem -.9rem -.9rem;padding:.9rem;display:grid}.resource-edit-panel h4{color:var(--river-deep);margin:0}.resource-edit-panel textarea{resize:vertical;min-height:4.5rem}.resource-edit-capacity{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.resource-edit-actions .primary-button,.resource-edit-actions .quiet-button{min-height:2.75rem}.resource-admin-card span{color:var(--river-mid);overflow-wrap:anywhere}.resource-admin-card p{margin:0}.resource-state{border-radius:999px;justify-self:start;padding:.2rem .45rem;font-size:.78rem;font-weight:700}.resource-state.active{color:#315d2a;background:#e2efdc}.resource-state.inactive{color:#695f50;background:#eee9df}@media (max-width:36rem){.resource-create-card{grid-template-columns:1fr}.resource-edit-actions>*{flex:8rem}}@media (max-width:42rem){.resource-list-heading,.resource-filters{align-items:stretch;display:grid}.resource-filters .field{min-width:0}}.schedule-workspace{align-content:start;gap:1rem;max-width:96rem;margin-inline:auto}.schedule-heading h1{max-width:18ch}.schedule-type-tabs{border:1px solid var(--line);background:color-mix(in srgb, var(--foam) 88%, white);border-radius:.6rem;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;padding:.35rem;display:grid}.schedule-type-tabs button{min-height:2.8rem;color:var(--river-deep);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:.4rem;font-weight:700}.schedule-type-tabs button:hover{background:color-mix(in srgb, var(--river-mid) 10%, transparent)}.schedule-type-tabs button.active{border-color:var(--river-deep);background:var(--river-deep);color:var(--foam)}.week-toolbar{border:1px solid var(--line);background:var(--foam);border-radius:.6rem;grid-template-columns:auto minmax(14rem,1fr) auto auto minmax(10rem,auto);align-items:end;gap:.65rem;padding:.85rem;display:grid}.week-period{text-align:center;gap:.2rem;display:grid}.week-period span,.schedule-date-jump span{color:var(--river-mid);font-size:.78rem}.schedule-date-jump{gap:.3rem;display:grid}.schedule-date-jump input{border:1px solid var(--river-mid);min-height:2.8rem;color:var(--ink);font:inherit;background:#fff;border-radius:.35rem;padding:.45rem .55rem}.schedule-legend{color:var(--river-deep);flex-wrap:wrap;align-items:center;gap:.65rem 1rem;font-size:.82rem;display:flex}.schedule-legend span{align-items:center;gap:.35rem;display:inline-flex}.legend-swatch{border:1px solid;border-radius:.2rem;width:.85rem;height:.85rem}.legend-swatch.free{color:#315d2a;background:#dcefd8}.legend-swatch.active{color:#8a2118;background:#f5c7c2}.legend-swatch.planned{color:#765400;background:#f8e6a7}.legend-swatch.conflict{color:#7c3f0b;background:#f0d5b6}.schedule-state{border:1px solid var(--line);background:var(--foam);min-height:4rem;margin:0;padding:1rem}.weekly-grid-scroll{border:1px solid var(--line);scrollbar-gutter:stable;background:#fff;border-radius:.6rem;overflow:auto}.weekly-grid{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;min-width:64rem}.weekly-grid th,.weekly-grid td{border-bottom:1px solid #d7ddd2;border-right:1px solid #d7ddd2}.weekly-grid thead th{z-index:3;height:3.8rem;color:var(--river-deep);text-align:center;background:#eef4f3;padding:.55rem .35rem;font-size:.78rem;position:sticky;top:0}.weekly-grid thead th small{color:var(--focus);margin-top:.15rem;font-size:.67rem;display:block}.weekly-grid .resource-column{z-index:2;background:var(--foam);text-align:left;width:10.5rem;padding:.65rem;position:sticky;left:0}.weekly-grid thead .resource-column{z-index:4;background:var(--river-deep);color:var(--foam)}.weekly-grid tbody .resource-column strong,.weekly-grid tbody .resource-column span,.weekly-grid tbody .resource-column em{overflow-wrap:anywhere;display:block}.weekly-grid tbody .resource-column span{color:var(--river-mid);margin-top:.15rem;font-size:.72rem;font-weight:400}.weekly-grid tbody .resource-column em{color:#8a2118;margin-top:.3rem;font-size:.7rem;font-style:normal}.weekly-grid td{vertical-align:top;height:5.7rem;padding:.22rem}.weekly-grid td.free{background:#edf7ea}.weekly-grid th.today,.weekly-grid td.today{box-shadow:inset 3px 0 0 var(--focus)}.free-cell{color:#315d2a;place-items:center;min-height:4.9rem;font-size:.72rem;font-weight:700;display:grid}.schedule-allocation{cursor:pointer;width:100%;min-height:4.9rem;font:inherit;text-align:left;border:1px solid #0000;border-radius:.3rem;align-content:center;gap:.1rem;padding:.35rem;display:grid}.schedule-allocation:hover{border-color:var(--river-deep);filter:saturate(1.08)}.schedule-allocation.active{color:#6f1913;background:#f5c7c2}.schedule-allocation.planned{color:#5d4300;background:#f8e6a7;border-style:dashed;border-color:#b58416}.schedule-allocation strong,.schedule-allocation span,.schedule-allocation small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.schedule-allocation span,.schedule-allocation small{font-size:.68rem}.cell-conflict{outline:2px solid var(--focus);outline-offset:-2px;background:#fff4e8;gap:.2rem;padding:.2rem;display:grid}.cell-conflict .schedule-allocation{min-height:3.6rem}.conflict-label{color:#7c3f0b;font-size:.68rem}.schedule-booking-panel{border:1px solid var(--river-mid);background:var(--foam);border-radius:.6rem;gap:.85rem;padding:clamp(1rem,3vw,1.5rem);display:grid}.schedule-booking-panel-heading{justify-content:space-between;align-items:start;gap:1rem;display:flex}.schedule-booking-panel-heading h2,.schedule-booking-panel-heading p{margin:0}.schedule-booking-facts{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.65rem;margin:0;display:grid}.schedule-booking-facts div{border-top:1px solid var(--line);padding-top:.45rem}.schedule-booking-facts dt{color:var(--river-mid);font-size:.75rem}.schedule-booking-facts dd{margin:.2rem 0 0;font-weight:700}.schedule-booking-comment{margin:0}.schedule-edit-link{justify-self:start;text-decoration:none}@media (max-width:52rem){.week-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.week-period{grid-area:1/1/auto/-1}.schedule-date-jump{grid-column:1/-1}.weekly-grid{min-width:56rem}.weekly-grid .resource-column{width:8.5rem}}@media print{.schedule-workspace{max-width:none;min-height:0;padding:0;display:block}.schedule-heading nav,.schedule-type-tabs,.week-toolbar button,.schedule-date-jump,.schedule-booking-panel{display:none!important}.weekly-grid-scroll{border-color:#777;overflow:visible}.weekly-grid{min-width:0;font-size:8pt}.weekly-grid thead th,.weekly-grid .resource-column{position:static}.schedule-allocation.active,.schedule-allocation.planned,.weekly-grid td.free{color:#000;background:0 0}}body{background:#e8edf3}.mobile-app-frame{color:#102a43;background:#f7f9fb;width:min(100%,430px);min-height:100dvh;margin-inline:auto;position:relative}.mobile-app-content{min-height:100dvh;padding-bottom:calc(5rem + env(safe-area-inset-bottom))}.mobile-bottom-nav{z-index:100;width:min(100%,430px);min-height:4.4rem;padding:.35rem max(.35rem, env(safe-area-inset-right)) max(.35rem, env(safe-area-inset-bottom)) max(.35rem, env(safe-area-inset-left));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff5;border-top:1px solid #d9e2ec;grid-template-columns:repeat(5,minmax(0,1fr));margin-inline:auto;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -.5rem 1.5rem #102a4314}.mobile-bottom-nav a{color:#627d98;border-radius:.7rem;align-content:center;place-items:center;gap:.15rem;min-width:0;min-height:3.65rem;font-size:.66rem;font-weight:700;line-height:1.05;text-decoration:none;display:grid}.mobile-bottom-nav a svg{display:block}.mobile-bottom-nav a.is-active{color:#0867d1;background:#eaf3ff}.mobile-bottom-nav a:focus-visible{outline-offset:-2px;outline:2px solid #0867d1}.admin-shell,.clients-shell,.booking-shell,.app-shell,.import-workspace,.report-workspace,.schedule-workspace{width:100%;max-width:430px;margin-inline:auto;padding:1rem}.app-home{width:100%;min-height:0}.workspace-header,.clients-header,.schedule-heading,.report-heading{gap:.7rem;margin-bottom:1rem;display:grid}.workspace-header h1,.clients-header h1,.schedule-heading h1,.report-heading h1,.app-shell h1{color:#102a43;letter-spacing:-.035em;max-width:none;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:1.65rem;font-weight:800;line-height:1.08}.eyebrow{color:#486581;letter-spacing:.04em;font-family:Arial,Helvetica,sans-serif;font-size:.72rem}.app-home-grid{grid-template-columns:1fr;gap:.65rem}.app-home-card{background:#fff;border-color:#d9e2ec;border-radius:.9rem;align-content:start;gap:.3rem;min-height:0;padding:1rem;box-shadow:0 .2rem .8rem #102a430f}.app-home-card strong{color:#102a43;font-size:1rem}.app-home-card span{color:#627d98;font-size:.84rem}.app-home-card.is-primary{background:linear-gradient(135deg,#0867d1,#2186eb);border-color:#0867d1}.login-shell{width:min(100%,430px);min-height:100dvh;padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));background:#f7f9fb;margin-inline:auto}.login-card{background:#fff;border-color:#d9e2ec;border-radius:1rem;width:100%;padding:1.15rem;box-shadow:0 .6rem 2rem #102a431a}.login-card h1{color:#102a43;letter-spacing:-.04em;margin:.5rem 0 .65rem;font-family:Arial,Helvetica,sans-serif;font-size:1.85rem;font-weight:800;line-height:1.05}.login-form button,.primary-button,.button-link,.admin-shell button{border-radius:.7rem}.field input,.admin-inline-form input,.admin-inline-form select,.admin-filter-bar input,.admin-filter-bar select,.schedule-date-jump input{border-color:#bcccdc;border-radius:.65rem}.admin-header{padding:max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) 1rem max(1rem, env(safe-area-inset-left));background:linear-gradient(135deg,#075eac,#1578cf);border-radius:0;margin:-1rem -1rem 1rem}.admin-nav{margin-inline:-1rem;padding-inline:1rem}.admin-card,.admin-stats article,.client-panel,.resource-create-card,.resource-admin-card,.schedule-booking-panel,.import-upload,.import-preview,.report-section{background:#fff;border-color:#d9e2ec;border-radius:.9rem;box-shadow:0 .2rem .8rem #102a430d}.week-toolbar{background:#fff;border-color:#d9e2ec;border-radius:.9rem;grid-template-columns:1fr 1fr}.week-period,.schedule-date-jump{grid-column:1/-1}.weekly-grid-scroll,.report-table-scroll{border-color:#d9e2ec;border-radius:.9rem;margin-inline:0}@media (min-width:431px){.mobile-app-frame,.login-shell{box-shadow:0 0 0 1px #102a4314,0 1.25rem 4rem #102a4324}}@media (max-width:430px){body{background:#f7f9fb}.admin-shell,.clients-shell,.booking-shell,.app-shell,.import-workspace,.report-workspace,.schedule-workspace{padding-right:max(1rem, env(safe-area-inset-right));padding-left:max(1rem, env(safe-area-inset-left))}.workspace-header nav,.booking-nav,.resource-filters,.resource-list-heading{justify-content:stretch;display:grid}.app-home-card{min-height:5.4rem}}@media print{.mobile-app-frame{width:auto;max-width:none;box-shadow:none}.mobile-app-content{padding-bottom:0}.mobile-bottom-nav{display:none!important}}
