:root{font-family:Arial,sans-serif;color:#153453;background:#f1f5fa;--navy:#092652;--blue:#1457c4;--green:#d7f3de;--line:#d0deed}*{box-sizing:border-box}body{margin:0}a{color:var(--blue);text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:6px;padding:9px 14px;background:white;color:var(--navy);font-weight:700}button:disabled{cursor:default;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #edb915;outline-offset:2px}header{background:var(--navy);color:white}.bar{max-width:1340px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:22px 26px;gap:18px}.bar a{color:white}.brand{font-weight:900;font-size:24px;letter-spacing:-.8px}.brand span{color:#ffda3f}.brand small{display:block;font-size:10px;letter-spacing:2px;margin-top:6px}main{max-width:1340px;margin:auto;padding:32px 26px}h1{font-size:36px;letter-spacing:-1px;margin:8px 0 14px}h2{font-size:21px;margin:0 0 12px}p{line-height:1.5;margin:10px 0}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:2px;font-weight:700;color:var(--blue)}.intro{margin-bottom:24px}.tabs{display:flex;flex-wrap:wrap;gap:6px;margin:20px 0 16px}.tabs button{padding:12px 23px}.tabs .active{background:var(--navy);border-color:var(--navy);color:white}.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:24px;margin-bottom:22px;box-shadow:0 3px 12px #112d4810}.weekbar,.week-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}.weekbar p{font-size:13px;color:#5b7189}.week-controls strong{font-size:14px;min-width:170px;text-align:center}.week-controls button{font-size:24px;padding:2px 14px}.calendar-scroll{overflow:auto;margin-top:10px}.grid{display:grid;grid-template-columns:75px repeat(5,minmax(110px,1fr));gap:3px;min-width:650px}.day-head{background:#e8eff9;padding:12px;text-align:center;font-size:13px;font-weight:bold;border-radius:4px}.day-head b{display:block;font-size:18px;margin-top:5px}.time{font-size:22px;font-weight:bold;display:flex;align-items:center;justify-content:center}.slot{min-height:34px;background:var(--green);border:1px solid #aed9b9;border-radius:3px;font-size:12px;padding:7px;overflow-wrap:anywhere}.slot:disabled{opacity:1;background:#e7edf4;color:#7a8c9d;border-color:#dae3ec}.slot.active{background:var(--blue);color:white;border-color:var(--blue)}.legend{display:flex;gap:18px;align-items:center;margin-top:16px;font-size:12px;flex-wrap:wrap}.legend span{display:flex;gap:6px;align-items:center}.legend i{width:12px;height:12px;border-radius:2px}.free{background:var(--green)}.busy{background:#e7edf4}.selected{background:var(--blue)}.text-button{border:0;background:none;padding:0;color:var(--blue);font-size:13px;font-weight:bold;cursor:pointer}.legend .text-button{margin-left:auto}.booking-columns{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.fields label{font-size:13px;font-weight:bold;display:block}.fields input,.fields textarea,.fields select{width:100%;margin-top:6px;border:1px solid #b9cadd;border-radius:5px;padding:10px;color:#153453;min-width:0}.wide{grid-column:1/-1}.selection{background:#eaf1fc;padding:12px;color:var(--navy);border-radius:6px;font-weight:bold;margin:16px 0 22px}.consent{display:flex;align-items:flex-start;gap:9px;font-size:13px;line-height:1.5;margin:20px 0 12px}.consent input{margin-top:3px}.small{font-size:12px;color:#5b7189}.primary{background:var(--blue);border-color:var(--blue);color:white;padding:13px 22px}.location img{width:100%;height:auto;border-radius:6px;margin:14px 0}.location{align-self:start}.location p{font-size:14px;color:#5b7189}#form-status,.error{color:#b42631;font-weight:bold}#calendar-status:empty,#form-status:empty{display:none}.receipt-info{font-size:20px;font-weight:bold}.record{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.record p{margin:4px 0;font-size:14px}footer{max-width:1340px;margin:auto;padding:15px 26px 35px;font-size:12px;color:#6a8198;display:flex;justify-content:space-between}dialog{border:1px solid var(--line);border-radius:10px;padding:28px;max-width:620px;width:calc(100% - 32px);color:#153453}dialog::backdrop{background:#09265288}dialog p{font-size:14px}.admin-grid .slot{min-height:40px}.admin-grid .occupied{background:#1a62b2;color:white;border-color:#1a62b2}.admin-grid .closed{background:#dce3eb;color:#61738a}.admin-grid .slot small{display:block;margin-top:3px}.admin-tools{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.connected{color:#19723a;font-weight:bold}.admin-grid .day-head button{display:block;margin:6px auto 0;font-size:11px;padding:4px 7px}.nowrap{white-space:nowrap}[hidden]{display:none!important}@media(max-width:800px){main{padding:22px 16px}.bar{padding:17px 16px}.brand{font-size:19px}.booking-columns{grid-template-columns:1fr}.location{display:none}.weekbar{flex-direction:column;align-items:flex-start}.week-controls{width:100%}.tabs button{flex:1;padding:10px}.panel{padding:17px}.fields{gap:12px}.calendar-scroll{margin-left:-8px;margin-right:-8px}h1{font-size:30px}.record{align-items:flex-start}.bar>a:last-child{font-size:12px}.time{font-size:22px}}@media(max-width:440px){.fields{grid-template-columns:1fr}.wide{grid-column:auto}.tabs button{font-size:13px;flex-basis:30%}}@media print{body,main,.panel,.slot,.occupied,.day-head{background:white!important;color:black!important;box-shadow:none!important}.tabs,.admin-tools,header,footer,.legend,button:not(.slot){display:none!important}.panel{padding:0;border:0}.calendar-scroll{overflow:visible}.grid{min-width:0;gap:0}.grid>div,.grid>.slot{border:1px solid black;border-radius:0;opacity:1}.grid{break-inside:auto}.slot{break-inside:avoid;font-size:10px}.intro{margin:0}h1{font-size:21px}#bridge-panel{display:none!important}@page{size:A4 landscape;margin:10mm}}
@media print{.admin-grid .slot button[data-id]{display:block!important;color:black!important;font-size:10px!important;font-weight:normal!important}.admin-grid .slot:has(button[data-time]:not([data-id])){min-height:25px}.day-head button,.admin-grid .slot button:not([data-id]){display:none!important}}
