.fcrm-booking { --ink:#17324d; --line:#dbe3eb; font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--ink); box-sizing:border-box; text-transform:none; }
.fcrm-booking *, .fcrm-booking *::before, .fcrm-booking *::after { box-sizing:border-box; }
.fcrm-booking h1,.fcrm-booking h2,.fcrm-booking h3,.fcrm-booking p { color:inherit; text-transform:none; margin:0 0 16px; }
.fcrm-booking h1 { font-size:clamp(28px,5vw,38px); line-height:1.2; }
.fcrm-booking h2 { font-size:24px; line-height:1.3; }
.fcrm-booking h3 { font-size:19px; }
.fcrm-booking label { display:block; font-size:15px; font-weight:600; margin-bottom:16px; }
.fcrm-booking input:not([type=checkbox]):not([type=radio]),.fcrm-booking select { display:block; width:100%; min-width:0; margin-top:7px; padding:11px 12px; border:1px solid #aab9c8; border-radius:10px; font:inherit; color:var(--ink); background:#fff; min-height:46px; }
.fcrm-booking button,.fcrm-booking .booking-link { display:inline-flex; align-items:center; justify-content:center; padding:12px 17px; border:1px solid var(--line); border-radius:10px; font:600 15px/1.35 system-ui,sans-serif; color:var(--ink); background:#f4f7fa; text-decoration:none; text-transform:none; cursor:pointer; white-space:normal; word-break:normal; overflow-wrap:normal; box-shadow:none; transition:none; }
.fcrm-booking button:hover,.fcrm-booking .booking-link:hover { color:var(--ink); background:#f4f7fa; border-color:var(--line); box-shadow:none; transform:none; text-decoration:none; }
.fcrm-booking .booking-primary,.fcrm-booking .booking-primary:hover { background:#ffc928; border-color:#ffc928; color:#17324d; }
.fcrm-booking button:disabled { opacity:.55; cursor:wait; }
.fcrm-booking :focus-visible { outline:3px solid #246bb0; outline-offset:3px; }
.fcrm-booking .booking-grid { display:grid; gap:0 18px; grid-template-columns:1fr; }
.fcrm-booking .booking-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.fcrm-booking .booking-meet { background:#eef8f2; border:1px solid #bddaca; border-radius:12px; padding:14px; display:flex; align-items:flex-start; gap:10px; font-weight:500; }
.fcrm-booking input[type=checkbox],.fcrm-booking input[type=radio] { accent-color:#17324d; width:19px; height:19px; flex:0 0 19px; margin:3px 0 0; }
.fcrm-booking .booking-status { padding:12px 14px; border-radius:10px; background:#eef4fa; margin:16px 0; }
.fcrm-booking .booking-status[data-error=true] { background:#fff0ed; color:#853429; }
.fcrm-booking [hidden] { display:none!important; }
.fcrm-booking .booking-list { list-style:none; margin:0; padding:0; }
.fcrm-booking .booking-slot { border:1px solid var(--line); border-radius:12px; padding:16px; margin:12px 0; }
.fcrm-booking .booking-slot strong,.fcrm-booking .booking-slot small { display:block; }
.fcrm-booking .booking-slot small { font-size:14px; margin:4px 0 12px; }
.fcrm-booking .booking-choice { display:flex; gap:13px; align-items:flex-start; margin:0; cursor:pointer; font-weight:400; }
.fcrm-booking .booking-choice:has(input:checked) { font-weight:600; }
.fcrm-booking .booking-muted { color:#465d72; font-size:14px; }
.fcrm-booking .booking-divider { border:0; border-top:1px solid var(--line); margin:28px 0; }
.fcrm-booking .booking-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.fcrm-booking-admin { border:0; border-radius:20px; width:min(760px,calc(100% - 24px)); max-height:90dvh; padding:24px; margin:auto; background:white; box-shadow:0 24px 80px #17324d30; }
.fcrm-booking-admin::backdrop { background:#122a45a8; }
.fcrm-booking .booking-header { display:flex; align-items:flex-start; gap:16px; justify-content:space-between; }
.fcrm-booking .booking-header button { flex-shrink:0; }
body.fcrm-booking-public { margin:0; min-height:100vh; background:#f4f6f8; }
.fcrm-booking-public .booking-shell { width:min(760px,calc(100% - 32px)); margin:32px auto 60px; }
.fcrm-booking-public .booking-brand { display:block; width:200px; max-width:100%; margin:0 auto 32px; }
.fcrm-booking-public .booking-card { background:white; padding:24px; border:1px solid #dbe3eb; border-radius:20px; }
.fcrm-booking-public fieldset { padding:0; margin:24px 0; border:0; min-width:0; }
.fcrm-booking-public legend { font-weight:700; font-size:18px; margin-bottom:8px; }
.fcrm-booking-public footer { text-align:center; padding:32px 0; }
.fcrm-booking-public a:not(.booking-link) { color:#17324d; }
@media(min-width:620px) { .fcrm-booking .booking-grid { grid-template-columns:1fr 1fr; } .fcrm-booking-admin { padding:32px; } .fcrm-booking-public .booking-card { padding:40px; } }
@media(max-width:619px) { .fcrm-booking .booking-actions>* { flex:1 1 100%; } .fcrm-booking-admin { padding:20px; } .fcrm-booking .booking-header h2 { font-size:22px; } }
