.month-controls button{display:inline-flex;align-items:center;justify-content:center;color:#EAF2F8}.month-controls button svg{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}.month-controls button:hover svg,.month-controls button:focus-visible svg{stroke:#fff}.booking-status-card{min-height:176px}.booking-status-card h3{font-size:26px}.meeting-row{grid-template-columns:minmax(180px,1fr) minmax(330px,.72fr);align-items:center;gap:22px;padding:16px 18px}.meeting-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;align-items:center}.meeting-action{height:42px;min-width:0;border:1px solid rgba(95,212,255,.28);border-radius:9px;background:rgba(7,17,29,.88);color:#EAF2F8;font:600 10px 'IBM Plex Mono',monospace;letter-spacing:.08em;display:inline-flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease}.meeting-action:hover,.meeting-action:focus-visible{border-color:var(--cyan);background:rgba(0,194,255,.1);color:#fff;box-shadow:0 0 14px rgba(0,194,255,.13);outline:none}.meeting-action.join{color:var(--cyan)}.meeting-action.reschedule-action{color:#5FD4FF;border-color:rgba(0,194,255,.48);background:rgba(0,194,255,.08);box-shadow:inset 0 0 0 1px rgba(0,194,255,.05)}.meeting-action.reschedule-action:hover,.meeting-action.reschedule-action:focus-visible{color:#07101A;border-color:#00C2FF;background:#00C2FF;box-shadow:0 0 18px rgba(0,194,255,.24)}.meeting-action.cancel{color:#ff9ca5;border-color:rgba(255,156,165,.25)}.meeting-action.cancel:hover,.meeting-action.cancel:focus-visible{border-color:#ff9ca5;background:rgba(255,156,165,.08)}.meeting-action:disabled{opacity:.42;cursor:not-allowed;box-shadow:none}.meeting-row.is-busy{opacity:.7}.booking-state.reschedule{color:var(--sky)}

.portal-modal[hidden]{display:none}.portal-modal{position:fixed;inset:0;z-index:999;display:grid;place-items:center;padding:24px}.portal-modal-backdrop{position:absolute;inset:0;background:rgba(2,8,16,.76);backdrop-filter:blur(8px)}.portal-modal-card{position:relative;width:min(520px,100%);border:1px solid rgba(0,194,255,.34);border-radius:18px;padding:28px;background:linear-gradient(180deg,#10233c,#081522);box-shadow:0 28px 80px rgba(0,0,0,.58),inset 0 1px rgba(255,255,255,.03)}.portal-modal-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:18px;border:1px solid rgba(255,156,165,.3);background:rgba(255,156,165,.08);color:#ff9ca5;font:500 28px/1 'IBM Plex Sans',sans-serif}.portal-modal-card h2{margin:0 0 10px;font:800 28px/1.1 'Plus Jakarta Sans',sans-serif;letter-spacing:-.03em;color:#EAF2F8}.portal-modal-copy{margin:0;color:#9fb4c6;font-size:14px;line-height:1.6}.portal-modal-meeting{margin:22px 0;padding:16px 18px;border:1px solid rgba(95,212,255,.18);border-radius:12px;background:rgba(5,15,27,.72)}.portal-modal-meeting strong{display:block;margin-bottom:5px;font:700 15px 'Plus Jakarta Sans',sans-serif;color:#EAF2F8}.portal-modal-meeting span{color:#91A6B8;font-size:13px}.portal-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.portal-modal-btn{height:48px;border-radius:10px;border:1px solid rgba(95,212,255,.28);cursor:pointer;font:700 12px 'IBM Plex Mono',monospace;letter-spacing:.04em}.portal-modal-btn.secondary{background:#091828;color:#EAF2F8}.portal-modal-btn.secondary:hover,.portal-modal-btn.secondary:focus-visible{border-color:#5FD4FF;outline:none}.portal-modal-btn.danger{background:rgba(255,156,165,.1);border-color:rgba(255,156,165,.42);color:#ffb0b7}.portal-modal-btn.danger:hover,.portal-modal-btn.danger:focus-visible{background:rgba(255,156,165,.16);border-color:#ff9ca5;outline:none;box-shadow:0 0 16px rgba(255,156,165,.12)}.portal-modal-btn:disabled{opacity:.45;cursor:not-allowed}body.modal-open{overflow:hidden}

.booking-feedback[hidden]{display:none}.booking-feedback{margin-top:18px;padding:22px 24px;border:1px solid rgba(36,226,154,.32);border-radius:14px;background:linear-gradient(180deg,rgba(10,34,42,.92),rgba(7,20,31,.98));display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;box-shadow:inset 0 1px rgba(255,255,255,.025),0 18px 42px rgba(0,0,0,.18)}.booking-feedback-mark{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:rgba(36,226,154,.1);border:1px solid rgba(36,226,154,.3);color:#66f0bc;font:700 22px 'Plus Jakarta Sans',sans-serif;box-shadow:0 0 18px rgba(36,226,154,.08)}.booking-feedback-copy h2{margin:0 0 7px;font:800 22px/1.15 'Plus Jakarta Sans',sans-serif;color:#EAF2F8;letter-spacing:-.025em}.booking-feedback-copy p:last-child{margin:0;color:#a9bfd0;font-size:14px;line-height:1.6}.booking-feedback-actions{display:grid;gap:10px;min-width:175px}.booking-feedback-action{min-width:175px;height:44px;padding:0 16px;border-radius:9px;border:1px solid rgba(0,194,255,.38);background:rgba(0,194,255,.09);color:#5FD4FF;font:700 10px 'IBM Plex Mono',monospace;letter-spacing:.06em;cursor:pointer}.booking-feedback-action:hover,.booking-feedback-action:focus-visible{border-color:#00C2FF;background:rgba(0,194,255,.14);color:#fff;outline:none}.booking-feedback-action[hidden]{display:none}.booking-feedback[data-kind="cancelled"]{border-color:rgba(255,156,165,.26);background:linear-gradient(180deg,rgba(39,24,31,.9),rgba(16,16,25,.98))}.booking-feedback[data-kind="cancelled"] .booking-feedback-mark{background:rgba(255,156,165,.08);border-color:rgba(255,156,165,.28);color:#ffb0b7}.booking-feedback[data-kind="cancelled"] .booking-feedback-mark::before{content:'×'}.booking-feedback[data-kind="cancelled"] .booking-feedback-mark{font-size:0}.booking-feedback[data-kind="cancelled"] .booking-feedback-mark::before{font:500 28px/1 'IBM Plex Sans',sans-serif}.booking-feedback[data-kind="rescheduled"]{border-color:rgba(95,212,255,.3)}.booking-feedback[data-kind="rescheduled"] .booking-feedback-mark{background:rgba(0,194,255,.08);border-color:rgba(0,194,255,.28);color:#5FD4FF}

@media(max-width:820px){.meeting-row{grid-template-columns:1fr}.meeting-actions{grid-template-columns:repeat(3,1fr)}.booking-feedback{grid-template-columns:auto 1fr}.booking-feedback-actions{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.booking-feedback-action{width:100%;min-width:0}}@media(max-width:520px){.meeting-actions{grid-template-columns:1fr}.meeting-action{width:100%}.portal-modal{padding:14px}.portal-modal-card{padding:22px}.portal-modal-actions{grid-template-columns:1fr}.portal-modal-card h2{font-size:24px}.booking-feedback{grid-template-columns:1fr;padding:20px}.booking-feedback-mark{width:42px;height:42px}.booking-feedback-copy h2{font-size:20px}.booking-feedback-actions{grid-template-columns:1fr}}