.stb-app{--ink:#14241f;--muted:#68776e;--accent:#d7f34a;--forest:#123d30;--line:#dfe6de;--paper:#f5f7f2;--white:#fff;color:var(--ink);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;box-sizing:border-box}.stb-app *{box-sizing:border-box}.stb-app button,.stb-app input,.stb-app select,.stb-app textarea{font:inherit}.stb-app button,.stb-app a{touch-action:manipulation}.stb-app button{cursor:pointer}.stb-app button:disabled{cursor:not-allowed;opacity:.48}.stb-app button:focus-visible,.stb-app input:focus-visible,.stb-app select:focus-visible,.stb-app a:focus-visible{outline:3px solid #829a05;outline-offset:3px}.stb-app h1,.stb-app h2,.stb-app h3{font-weight:650;letter-spacing:-.035em;line-height:1.15;color:var(--ink);margin:0 0 16px}.stb-app h1{font-size:clamp(30px,4vw,48px)}.stb-app h2{font-size:26px}.stb-app h3{font-size:19px}.stb-app p{margin:0 0 16px}.stb-app .muted,.stb-app small{color:var(--muted)}.stb-app .eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:#54735d}.stb-app .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border:1px solid transparent;border-radius:9px;background:var(--forest);color:#fff;text-decoration:none;font-weight:650;min-height:46px}.stb-app .btn.lime{background:var(--accent);color:var(--ink)}.stb-app .btn.secondary{background:#fff;color:var(--ink);border-color:var(--line)}.stb-app .btn.danger{background:#fff2ee;color:#a13925;border-color:#ecc3b9}.stb-app .btn.small{min-height:34px;padding:6px 12px;font-size:12px}.stb-app .pill{display:inline-block;padding:4px 10px;border-radius:20px;background:#e9eee7;font-size:11px;font-weight:750;letter-spacing:.03em}.stb-app .pill.green{background:#e0efde;color:#205838}.stb-app .pill.orange{background:#fff0d6;color:#85560f}.stb-app .pill.red{background:#fce4df;color:#9b3120}.stb-app .row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.stb-app .between{justify-content:space-between}.stb-app .grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stb-app .grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.stb-app .card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:22px}.stb-app .field{display:flex;flex-direction:column;gap:7px;margin-bottom:15px;font-size:12px;font-weight:650}.stb-app input:not([type=checkbox]),.stb-app select,.stb-app textarea{background:#fff;border:1px solid #ccd7cd;border-radius:8px;padding:11px 12px;min-height:44px;width:100%;color:var(--ink);box-shadow:none;max-width:100%}.stb-app textarea{min-height:90px}.stb-app label.check{display:flex;gap:10px;align-items:flex-start;margin:12px 0;font-size:13px}.stb-app input[type=checkbox]{accent-color:var(--forest);margin-top:4px;min-width:17px;min-height:17px}.stb-app .notice{padding:14px 18px;border-radius:9px;background:#edf3e8;border:1px solid #d8e5d2;margin:14px 0}.stb-app .notice.warn{background:#fff5df;border-color:#f0d59b}.stb-app .notice.error{background:#fff0eb;color:#9b3120;border-color:#e4b4a5}.stb-app .notice:empty{display:none}.stb-app .divider{height:1px;background:var(--line);margin:20px 0}.stb-app .table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.stb-app table{width:100%;border-collapse:collapse;background:#fff;text-align:left;font-size:13px}.stb-app th{padding:12px 15px;background:#f0f3ed;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#637266}.stb-app td{padding:15px;border-top:1px solid var(--line);vertical-align:top}.stb-app tr[data-booking],.stb-app tr[data-customer]{cursor:pointer}.stb-app tr[data-booking]:hover,.stb-app tr[data-customer]:hover{background:#f6f9ed}.stb-app td small{display:block}.stb-app .empty{padding:48px;text-align:center;background:#f4f7f0;border-radius:14px}.stb-app .modal-backdrop{position:fixed;inset:0;background:#10271fc4;z-index:100100;display:flex;align-items:center;justify-content:center;padding:24px}.stb-app .modal{max-width:960px;width:100%;max-height:90vh;overflow:auto;background:var(--paper);padding:28px;border-radius:18px;box-shadow:0 24px 70px #0004}.stb-app .modal .close{float:right;border:1px solid var(--line);background:#fff;border-radius:50%;width:36px;height:36px;font-size:22px}.stb-app pre{white-space:pre-wrap;word-break:break-word;font-size:12px;background:#eef1eb;padding:12px;border-radius:8px}.stb-app .space{margin-top:24px}.stb-app .spaced{margin:24px 0}.stb-app .step-nav{display:flex;gap:12px;border-bottom:1px solid var(--line);padding:0 0 20px;margin-bottom:32px;overflow:auto}.stb-app .step-nav span{white-space:nowrap;font-size:12px;color:#859087}.stb-app .step-nav span.active{color:var(--forest);font-weight:750}.stb-app .step-nav b{display:inline-flex;width:25px;height:25px;border:1px solid var(--line);border-radius:50%;align-items:center;justify-content:center;margin-right:7px}.stb-app .step-nav .active b{background:var(--forest);color:white}.stb-app .booking-shell{max-width:1240px;margin:auto;padding:36px 24px 64px}.stb-app .booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px}.stb-app .summary{position:sticky;top:20px;align-self:start;background:#eaf0e4;border-radius:16px;padding:24px}.stb-app .summary .total{font-size:35px;font-weight:700;letter-spacing:-.05em}.stb-app .summary p{font-size:13px}.stb-app .summary-line{display:flex;justify-content:space-between;gap:14px;font-size:12px;margin:10px 0}.stb-app .choice{width:100%;text-align:left;border:1px solid var(--line);border-radius:14px;padding:20px;background:white;color:var(--ink)}.stb-app .choice.selected{border:2px solid var(--forest);padding:19px;background:#f2f7eb}.stb-app .choice strong{display:block;font-size:19px}.stb-app .choice small{display:block}.stb-app .car-art{height:118px;background:linear-gradient(130deg,#e9ede3,#f8faf6);border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:15px}.stb-app .car-art img{width:100%;height:100%;object-fit:cover}.stb-app .car-art svg{width:90%;height:95px}.stb-app .periods{display:flex;gap:7px;margin-top:14px}.stb-app .periods button{flex:1;border:1px solid #b4ceaf;background:#e8f4e5;color:#2b6134;border-radius:7px;padding:9px 5px;font-size:12px}.stb-app .periods button.unavailable{background:#f8e9e6;color:#a44a3e;border-color:#e5c5be}.stb-app .periods button.selected{background:var(--forest);color:white}.stb-app .ticket-head{display:flex;justify-content:space-between;align-items:center;margin:20px 0 12px}.stb-app .event-choice{display:grid;grid-template-columns:65px 1fr auto;gap:18px;align-items:center;margin-bottom:12px}.stb-app .date-square{text-align:center;padding:10px;background:#edf2e6;border-radius:9px}.stb-app .date-square strong{font-size:27px;display:block;line-height:1.1}.stb-app .date-square span{font-size:10px;text-transform:uppercase}.stb-app .event-choice h3{margin:0 0 4px}.stb-app .allocation{background:#eef3e7;border-left:3px solid #bad347;padding:14px;margin-top:12px}.stb-app .success-mark{display:flex;width:70px;height:70px;border-radius:50%;background:#dbf1bf;color:#315a24;align-items:center;justify-content:center;font-size:40px;margin-bottom:22px}.stb-app .booking-mode{display:flex;gap:6px;background:#e9eee4;padding:5px;border-radius:11px;margin-bottom:28px}.stb-app .booking-mode button{flex:1;border:0;background:none;border-radius:7px;padding:12px;color:var(--ink)}.stb-app .booking-mode button.active{background:white;box-shadow:0 2px 5px #13261b12;font-weight:700}.stb-admin{display:grid;grid-template-columns:210px minmax(0,1fr);background:var(--paper);min-height:calc(100vh - 55px);margin:18px 18px 0 0;border-radius:18px;overflow:hidden}.stb-admin .sidebar{background:#163d30;color:white;padding:30px 18px}.stb-admin .brand{font-size:21px;letter-spacing:-.04em;font-weight:700;padding:0 12px 28px}.stb-admin .brand small{display:block;font-size:10px;color:#b9cbb7;letter-spacing:.16em;margin-top:5px}.stb-admin .sidebar button{display:block;border:0;background:none;color:#c9d6c6;text-align:left;width:100%;padding:12px;border-radius:8px;margin:4px 0}.stb-admin .sidebar button.active{background:#d8f24d;color:#193b2c;font-weight:700}.stb-admin .main{padding:32px;min-width:0}.stb-admin .topbar{margin-bottom:28px}.stb-admin .stat strong{display:block;font-size:36px;letter-spacing:-.05em}.stb-admin .stat span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.stb-admin .calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--line);border-top:1px solid var(--line);border-radius:12px;overflow:hidden}.stb-admin .weekday{background:#edf1e7;padding:10px;text-align:center;font-size:11px}.stb-admin .day{min-height:138px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px;background:white}.stb-admin .day.blank{background:#f0f3ed}.stb-admin .day-number{background:none;border:0;padding:2px 6px;color:var(--ink);font-size:12px;font-weight:700}.stb-admin .session{display:block;width:100%;text-align:left;margin:4px 0;padding:6px;border-radius:5px;background:#e8f0dc;border:0;border-left:3px solid #8da969;font-size:10px;color:#284c31}.stb-admin .session.junior{background:#e4edf4;border-left-color:#7b9fbe;color:#34556d}.stb-admin .session.full{background:#f8e8dd;border-left-color:#cd9272;color:#8b4d2d}.stb-admin .toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:16px 0}.stb-admin .toolbar input{max-width:300px}.stb-admin .toolbar select{max-width:220px}.stb-admin .avatar{width:58px;height:58px;border-radius:50%;background:#dce7cf;display:flex;align-items:center;justify-content:center;font-size:23px;color:#3b5c33}.stb-admin .customer-header{margin-bottom:25px}.stb-admin .timeline-item{padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.stb-admin .calendar .session small{color:inherit}.stb-app .sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:1050px){.stb-admin{grid-template-columns:155px 1fr}.stb-admin .main{padding:20px}.stb-app .grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.stb-app .booking-layout{grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:760px){.stb-app .booking-layout{grid-template-columns:1fr}.stb-app .summary{position:static;order:2}.stb-app .grid,.stb-app .grid.three{grid-template-columns:1fr}.stb-app .booking-shell{padding:24px 14px}.stb-admin{display:block;margin:10px 10px 0 0}.stb-admin .sidebar{padding:14px;display:flex;gap:6px;overflow:auto;align-items:center}.stb-admin .sidebar .brand{display:none}.stb-admin .sidebar button{width:auto;white-space:nowrap;margin:0;padding:9px}.stb-admin .main{padding:16px}.stb-admin .calendar{min-width:700px}.stb-admin .calendar-scroll{overflow:auto}.stb-app .modal{padding:20px}.stb-app .modal-backdrop{padding:10px}.stb-app .event-choice{grid-template-columns:55px 1fr}.stb-app .event-choice>.btn{grid-column:2}.stb-app .step-nav{gap:8px}.stb-app .step-nav span{font-size:10px}.stb-app .step-nav b{width:20px;height:20px;margin-right:3px}}

.stb-app .entry-layout{display:block;max-width:760px;margin:0 auto}.stb-app details>summary{cursor:pointer;color:var(--forest);font-weight:650;padding:12px 0}.stb-app details[open]>summary{margin-bottom:12px}

/* Customer-facing booking styling; staff colours stay independent. */
.stb-app:not(.stb-admin){--accent:#ffe500;--forest:#151515;--paper:#f7f7f7;--ink:#202124;--muted:#666;--line:#e2e2e2}
.stb-app:not(.stb-admin) .card,.stb-app:not(.stb-admin) .choice{border-radius:5px}.stb-app:not(.stb-admin) .btn{border-radius:3px;font-weight:800}.stb-app:not(.stb-admin) .choice.selected{background:#fffdf0}.stb-app:not(.stb-admin) .allocation{background:#f7f7f7;border-left-color:#ffe500}.stb-app:not(.stb-admin) .car-art{background:#f2f2f2}.stb-app:not(.stb-admin) .date-square{background:#f2f2f2}.stb-app .address-fields{border:0;padding:0;margin:22px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 18px;min-width:0}.stb-app .address-fields legend{font-size:17px;font-weight:750;margin-bottom:12px}.stb-app .address-fields .field:first-of-type,.stb-app .address-fields .field:nth-of-type(2){grid-column:1/-1}
@media(max-width:600px){.stb-app .address-fields{grid-template-columns:1fr}.stb-app .address-fields .field{grid-column:auto}}

.stb-media-picker{display:block;padding:14px;border:1px solid #cbd5d0;border-radius:12px;margin:12px 0}.stb-media-preview{display:flex;align-items:center;justify-content:center;background:#eef2ed;border:1px dashed #bdc7bc;min-height:130px;max-height:230px;margin:10px 0;border-radius:9px;overflow:hidden}.stb-media-preview img{max-width:100%;max-height:230px;object-fit:contain}.stb-media-picker .row{display:flex;gap:10px;flex-wrap:wrap}

.stb-addon-choice{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #dae3db;border-radius:10px;margin:10px 0}.stb-addon-photo{width:110px;height:76px;object-fit:cover;border-radius:7px;flex:none}@media(max-width:540px){.stb-addon-photo{width:78px;height:64px}}

/* Group event-day sessions beneath expandable venue and experience headings. */
.stb-admin .stb-cal-venue,.stb-admin .stb-cal-type{margin:5px 0;border:1px solid #dfe6de;border-radius:7px;background:#fff;overflow:hidden}.stb-admin .stb-cal-venue>summary,.stb-admin .stb-cal-type>summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:4px;padding:7px 5px;font-size:11px;font-weight:700;overflow-wrap:anywhere}.stb-admin .stb-cal-venue>summary{background:#eaf0e4}.stb-admin .stb-cal-type>summary{background:#f5f7f2;font-size:10px}.stb-admin .stb-cal-venue-body,.stb-admin .stb-cal-type>div{padding:3px}.stb-admin .stb-cal-venue .pill{font-size:9px;white-space:nowrap;padding:2px 4px}.stb-admin .session.available{border-left-color:#4b9c60}.stb-admin .session.limited{background:#fff0d6;border-left-color:#c18b31}.stb-admin .session.full{background:#fce4df;border-left-color:#cc524a}.stb-admin .calendar-scroll{overflow-x:auto}.stb-admin .calendar{min-width:900px}.stb-admin .stb-cal-venue .session{overflow-wrap:anywhere}

/* v0.5.6: compact WP administration and explicit calendar navigation */
.stb-admin{display:block!important;max-width:none!important;margin:0 14px 0 0!important;grid-template-columns:none!important}
.stb-admin .sidebar{display:none!important}
.stb-admin .stb-compact-main{padding:14px 18px!important;min-width:0;width:100%}
.stb-admin .stb-compact-header{padding:0!important;margin-bottom:12px!important;min-height:36px!important;align-items:center!important}
.stb-admin .stb-compact-header h1{font-size:23px!important;line-height:1.2!important;margin:0!important}
.stb-admin .toolbar{gap:8px!important;margin-bottom:10px!important}
.stb-admin .stb-calendar-toolbar .btn{min-height:38px;padding:5px 12px;font-size:18px}
.stb-admin .stb-cal-venue summary,.stb-admin .stb-cal-type summary{list-style:none}
.stb-admin .stb-cal-venue summary::-webkit-details-marker,.stb-admin .stb-cal-type summary::-webkit-details-marker{display:none}
.stb-admin .stb-expand-label{display:inline-flex;gap:6px;align-items:center}
.stb-admin .stb-chevron{display:inline-block;transition:transform .15s;font-size:15px;width:14px}
.stb-admin details[open]>summary .stb-chevron{transform:rotate(90deg)}
.stb-admin .stb-edit-event{margin:6px 6px 8px 0}
.stb-admin .stb-cal-venue-body{padding:7px!important}
@media(max-width:760px){.stb-admin .stb-compact-main{padding:10px!important}}
