.ccb-guest-portal{--ccb-primary:#0f766e;--ccb-dark:#0f172a;--ccb-muted:#64748b;--ccb-border:#dbe4ea;--ccb-bg:#f7fafc;max-width:980px;margin:32px auto;font-family:inherit;color:var(--ccb-dark)}
.ccb-guest-portal *{box-sizing:border-box}.ccb-guest-header{text-align:center;margin-bottom:24px}.ccb-guest-kicker{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ccb-primary);margin-bottom:8px}.ccb-guest-header h2{margin:0 0 8px;font-size:clamp(28px,4vw,42px);line-height:1.15}.ccb-guest-header p{margin:0;color:var(--ccb-muted)}
.ccb-guest-shell{display:grid;gap:18px}.ccb-guest-card{background:#fff;border:1px solid var(--ccb-border);border-radius:16px;padding:24px;box-shadow:0 10px 30px rgba(15,23,42,.06)}.ccb-guest-card h3{margin:0 0 10px;font-size:22px}.ccb-guest-card>p{color:var(--ccb-muted)}
.ccb-guest-summary-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid var(--ccb-border)}.ccb-guest-summary-heading span:first-child{font-size:13px;color:var(--ccb-muted)}.ccb-guest-summary-heading h3{margin:4px 0 0;font-size:25px}.ccb-guest-status{display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;background:#e0f2fe;color:#075985;font-size:13px;font-weight:700}.ccb-guest-status--cancelled{background:#fee2e2;color:#991b1b}.ccb-guest-status--completed{background:#dcfce7;color:#166534}.ccb-guest-status--rescheduled{background:#fef3c7;color:#92400e}
.ccb-guest-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;margin-top:12px}.ccb-guest-detail{padding:14px 0;border-bottom:1px solid #edf2f7}.ccb-guest-detail span{display:block;font-size:12px;color:var(--ccb-muted);margin-bottom:4px}.ccb-guest-detail strong{font-size:15px;overflow-wrap:anywhere}.ccb-guest-notes{margin-top:18px;padding:15px;background:var(--ccb-bg);border-radius:10px}.ccb-guest-notes p{margin:6px 0 0}
.ccb-guest-action-buttons,.ccb-guest-inline-actions,.ccb-guest-code-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.ccb-guest-button{appearance:none;border:1px solid transparent;border-radius:9px;padding:11px 17px;font:inherit;font-weight:700;cursor:pointer;transition:.18s ease;text-decoration:none}.ccb-guest-button:hover{transform:translateY(-1px)}.ccb-guest-button:disabled{opacity:.55;cursor:not-allowed;transform:none}.ccb-guest-button--primary{background:var(--ccb-primary);color:#fff}.ccb-guest-button--secondary{background:#fff;border-color:var(--ccb-border);color:var(--ccb-dark)}.ccb-guest-button--danger{background:#b91c1c;color:#fff}.ccb-guest-button--danger-outline{background:#fff;border-color:#fecaca;color:#b91c1c}.ccb-guest-small{font-size:13px;color:var(--ccb-muted);margin:12px 0 0}
.ccb-guest-action-panel{border-left:4px solid var(--ccb-primary)}.ccb-guest-panel-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:16px}.ccb-guest-panel-heading h3{margin:0}.ccb-guest-close{border:0;background:transparent;font-size:28px;line-height:1;cursor:pointer;color:var(--ccb-muted)}.ccb-guest-field{display:block;margin-bottom:16px}.ccb-guest-field span{display:block;font-size:13px;font-weight:700;margin-bottom:7px}.ccb-guest-field input,.ccb-guest-field select,.ccb-guest-field textarea{width:100%;border:1px solid #cbd5e1;border-radius:9px;padding:11px 12px;background:#fff;color:var(--ccb-dark);font:inherit}.ccb-guest-field input:focus,.ccb-guest-field select:focus,.ccb-guest-field textarea:focus{outline:2px solid rgba(15,118,110,.18);border-color:var(--ccb-primary)}
.ccb-guest-code-row{margin-top:14px}.ccb-guest-code-row label{flex:1;min-width:220px}.ccb-guest-code-row label span{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.ccb-guest-code-row input{width:100%;max-width:260px;border:1px solid #cbd5e1;border-radius:9px;padding:11px 12px;letter-spacing:.2em;font-size:18px}.ccb-guest-help--success{color:#166534}.ccb-guest-help--error,.ccb-guest-error-text{color:#b91c1c}
.ccb-guest-slots{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0 18px}.ccb-guest-slot{border:1px solid var(--ccb-border);background:#fff;border-radius:9px;padding:10px 13px;cursor:pointer}.ccb-guest-slot.is-selected{background:var(--ccb-primary);border-color:var(--ccb-primary);color:#fff}.ccb-guest-loading{color:var(--ccb-muted)}
.ccb-guest-message,.ccb-guest-alert{border-radius:10px;padding:13px 15px;margin-bottom:16px}.ccb-guest-message--success,.ccb-guest-alert--success{background:#dcfce7;color:#166534}.ccb-guest-message--error,.ccb-guest-alert--error{background:#fee2e2;color:#991b1b}.ccb-guest-message--info{background:#e0f2fe;color:#075985}.ccb-guest-alert--warning{background:#fff7ed;color:#9a3412}.ccb-guest-recovery{max-width:620px;margin:0 auto}.ccb-guest-recovery form{margin-top:18px}
.ccb-guest-timeline{margin-top:18px}.ccb-guest-timeline-item{display:grid;grid-template-columns:18px 1fr;gap:10px;position:relative;padding-bottom:18px}.ccb-guest-timeline-item>span{width:10px;height:10px;border-radius:50%;background:var(--ccb-primary);margin-top:5px}.ccb-guest-timeline-item:not(:last-child):before{content:"";position:absolute;left:4px;top:15px;bottom:0;width:2px;background:#dbe4ea}.ccb-guest-timeline-item strong{display:block}.ccb-guest-timeline-item small{display:block;color:var(--ccb-muted);margin-top:3px}
@media(max-width:700px){.ccb-guest-portal{margin:20px 12px}.ccb-guest-card{padding:18px}.ccb-guest-detail-grid{grid-template-columns:1fr}.ccb-guest-summary-heading{flex-direction:column}.ccb-guest-action-buttons,.ccb-guest-code-row{align-items:stretch;flex-direction:column}.ccb-guest-button{width:100%}.ccb-guest-code-row label,.ccb-guest-code-row input{max-width:none;width:100%}}

.ccb-guest-photos{margin-top:18px}.ccb-guest-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px;margin-top:10px}.ccb-guest-photo-grid a{display:block;aspect-ratio:1;border-radius:10px;overflow:hidden;border:1px solid #e3e7ec;background:#f3f5f7}.ccb-guest-photo-grid img{width:100%;height:100%;object-fit:cover;display:block}

.ccb-guest-photo-uploader{margin-top:18px;padding:14px;border:1px dashed #e2a37f;border-radius:12px;background:#fff9f5}.ccb-guest-photo-uploader p{margin:5px 0 10px}.ccb-guest-photo-uploader input{display:block;margin-bottom:10px;max-width:100%}.ccb-guest-photo-uploader small{display:block;margin-top:8px;color:#6b7280}
