/*
 * Middleby Experience Center 4.3.0 — Phase 3 operational layer.
 *
 * This file intentionally focuses on calendars, booking/check-in workflows,
 * operational QR cards and the seller VIP request workspace. It does not
 * change business rules, permissions, room ownership or integration logic.
 */

:root{
  --p3-navy:#062f47;
  --p3-blue:#0b5276;
  --p3-red:#e51b3e;
  --p3-green:#18794e;
  --p3-amber:#9a6200;
  --p3-surface:#fff;
  --p3-soft:#f4f8fa;
  --p3-line:#d6e2e8;
  --p3-muted:#557080;
  --p3-shadow:0 14px 34px rgba(6,47,71,.10);
  --p3-radius:16px;
}

.mb-phase3-public main,.mb-phase3-app main{min-width:0}
.mb-phase3-public :where(a,button,input,select,textarea):focus-visible,
.mb-phase3-app :where(a,button,input,select,textarea):focus-visible{
  outline:3px solid rgba(11,82,118,.28);
  outline-offset:2px;
}

/* Calendar toolbar and horizontal context */
.phase3-calendar-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 0 16px}
.phase3-calendar-intro h2{margin:0 0 5px;color:var(--p3-navy)}
.phase3-calendar-intro p{margin:0;color:var(--p3-muted)}
.phase3-calendar-hint{display:none;margin:8px 0 0;color:var(--p3-muted);font-size:.82rem}
.phase3-calendar-toolbar{position:sticky;top:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--p3-line);border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 6px 18px rgba(6,47,71,.06);backdrop-filter:blur(9px)}
.mb-phase3-app .phase3-calendar-toolbar{top:82px}
.phase3-calendar-toolbar .room-legend{margin:0}
.phase3-calendar-toolbar .button-row{margin:0}
.phase3-week-frame{position:relative}
.phase3-week{scrollbar-width:thin;scrollbar-color:#9bb6c4 transparent;scroll-snap-type:x proximity;overscroll-behavior-inline:contain}
.phase3-week .calendar-day{scroll-snap-align:start;position:relative}
.phase3-week .calendar-day[aria-current="date"]{background:linear-gradient(180deg,#fff9fa 0,#fafcfd 96px)}
.phase3-week .calendar-day[aria-current="date"]::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--p3-red);z-index:1}
.phase3-week .calendar-day>header{position:sticky;top:0;z-index:2}
.phase3-week .calendar-event{position:relative;min-height:118px;padding:11px 10px 10px;box-shadow:0 2px 7px rgba(6,47,71,.06);text-decoration:none}
.phase3-week .calendar-event:hover{transform:translateY(-1px);box-shadow:0 7px 16px rgba(6,47,71,.11)}
.phase3-week .calendar-event em{margin-top:auto;font-style:normal;font-weight:760;color:#385969}
.phase3-session-state{display:inline-flex;align-items:center;align-self:flex-start;gap:5px;max-width:100%;padding:4px 8px;border-radius:999px;background:#e7f4ed;color:var(--p3-green);font-size:.69rem;font-style:normal;font-weight:850;line-height:1.2;text-decoration:none}
.phase3-session-state.is-full{background:#fde9e7;color:#8e211b}
.phase3-session-state.is-waitlist{background:#e8f0ff;color:#234f8b}
.phase3-session-state.is-past{background:#e8edf0;color:#526671}
.phase3-session-state.is-postponed{background:#fff2d3;color:#7e5200}
.phase3-calendar-list .event-card{border-top:4px solid var(--room-color,var(--p3-blue))}
.phase3-capacity-inline{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0;color:var(--p3-muted);font-size:.82rem}
.phase3-capacity-track{height:7px;overflow:hidden;border-radius:999px;background:#dfe9ee}
.phase3-capacity-track>span{display:block;width:var(--capacity-percent,0%);height:100%;border-radius:inherit;background:var(--p3-green)}
.phase3-capacity-track.is-near>span{background:var(--p3-amber)}
.phase3-capacity-track.is-full>span{background:var(--p3-red)}

/* Event/session selection */
.phase3-event-aside{position:sticky;top:104px;align-self:start}
.phase3-session-list{display:grid;gap:12px}
.phase3-session-card{position:relative;display:grid;gap:8px;padding:15px;border:1px solid var(--p3-line);border-left:7px solid var(--room-color,var(--p3-blue));border-radius:13px;background:var(--p3-surface);box-shadow:0 5px 15px rgba(6,47,71,.06)}
.phase3-session-card.is-selected{box-shadow:0 0 0 3px rgba(11,82,118,.14),0 8px 20px rgba(6,47,71,.10)}
.phase3-session-card h3{margin:0;color:var(--p3-navy);font-size:1rem}
.phase3-session-card p{margin:0;color:var(--p3-muted);font-size:.86rem}
.phase3-session-card .btn{width:100%}
.phase3-session-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.phase3-session-capacity{display:grid;gap:6px}

/* Multi-step booking and seller workspaces */
.phase3-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(285px,360px);gap:22px;align-items:start}
.phase3-workspace-main{display:grid;gap:16px;min-width:0}
.phase3-step{margin:0!important;padding:0!important;overflow:hidden;border:1px solid var(--p3-line)!important;border-radius:var(--p3-radius)!important;background:var(--p3-surface);box-shadow:0 8px 22px rgba(6,47,71,.07)!important}
.phase3-step>legend{float:left;width:100%;margin:0!important;padding:0!important}
.phase3-step>legend+*{clear:both}
.phase3-step-head{display:flex;align-items:center;gap:12px;padding:16px 19px;border-bottom:1px solid var(--p3-line);background:linear-gradient(135deg,#f6fafc,#fff)}
.phase3-step-number{display:grid;width:32px;height:32px;flex:0 0 32px;place-items:center;border-radius:50%;background:var(--p3-navy);color:#fff;font-weight:850}
.phase3-step-head strong{color:var(--p3-navy);font-size:1.02rem}
.phase3-step-body{padding:19px}
.phase3-step .form-grid{margin:0}
.phase3-summary{position:sticky;top:104px;display:grid;gap:14px;padding:20px;border:1px solid var(--p3-line);border-radius:var(--p3-radius);background:var(--p3-surface);box-shadow:var(--p3-shadow)}
.mb-phase3-app .phase3-summary{top:98px}
.phase3-summary h2{margin:0;color:var(--p3-navy);font-size:1.18rem}
.phase3-summary>p{margin:0;color:var(--p3-muted);font-size:.88rem}
.phase3-summary-list{display:grid;grid-template-columns:minmax(96px,.8fr) minmax(0,1.2fr);gap:9px 12px;margin:0;padding:14px 0;border-block:1px solid var(--p3-line)}
.phase3-summary-list dt{color:var(--p3-muted);font-size:.76rem;font-weight:760;text-transform:uppercase;letter-spacing:.03em}
.phase3-summary-list dd{margin:0;overflow-wrap:anywhere;color:var(--p3-navy);font-weight:760;text-align:right}
.phase3-summary-note{display:flex;gap:9px;padding:11px;border-radius:11px;background:#eef6f9;color:#365b70;font-size:.8rem;line-height:1.45}
.phase3-summary-actions{display:grid;gap:9px}
.phase3-summary-actions .btn{width:100%}
.phase3-form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 19px;border:1px solid var(--p3-line);border-radius:14px;background:#fff;box-shadow:0 5px 15px rgba(6,47,71,.06)}
.phase3-form-actions .button-row{margin:0}
.phase3-readonly-banner{display:flex;align-items:flex-start;gap:10px;margin:0 0 16px;padding:13px 15px;border:1px solid #ead59c;border-radius:12px;background:#fff8df;color:#725000}

/* Check-in workbench */
.phase3-checkin-grid{display:grid;grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);gap:22px;align-items:start}
.phase3-scanner-card{position:sticky;top:100px}
.phase3-scanner-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px}
.phase3-scanner-head h2{margin:0;color:var(--p3-navy)}
.phase3-scanner-head p{margin:5px 0 0;color:var(--p3-muted)}
.phase3-scanner-frame{overflow:hidden;border:1px solid var(--p3-line);border-radius:14px;background:#031923;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04)}
.phase3-scanner-frame .scanner-video{display:block;width:100%;min-height:235px;max-height:340px;object-fit:cover;background:linear-gradient(135deg,#082d40,#020d13)}
.phase3-scanner-status{min-height:44px;margin:0;padding:10px 12px;border:1px solid var(--p3-line);border-top:0;border-radius:0 0 12px 12px;background:#f5f9fb;color:var(--p3-muted)}
.phase3-session-table td:first-child{min-width:250px}
.phase3-attendance-pass{width:min(100%,680px);margin:0 auto;padding:clamp(20px,4vw,34px);border:1px solid var(--p3-line);border-top:6px solid var(--room-color,var(--p3-blue));border-radius:20px;background:#fff;box-shadow:var(--p3-shadow);text-align:left}
.phase3-attendance-pass .pass-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:20px}
.phase3-attendance-pass h1{margin:0;color:var(--p3-navy)}
.phase3-attendance-pass .pass-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 20px}
.phase3-attendance-pass .pass-meta>div{padding:12px;border:1px solid var(--p3-line);border-radius:11px;background:var(--p3-soft)}
.phase3-attendance-pass .pass-meta small{display:block;color:var(--p3-muted);font-weight:700}
.phase3-attendance-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.phase3-attendance-actions .btn{white-space:normal}

/* Operational QR / coupon / attendee cards */
.phase3-qr-card{width:min(100%,760px);margin:0 auto;overflow:hidden;border:1px solid var(--p3-line);border-radius:20px;background:#fff;box-shadow:var(--p3-shadow)}
.phase3-qr-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:20px 22px;border-bottom:1px solid var(--p3-line);background:linear-gradient(135deg,#f5fafc,#fff)}
.phase3-qr-head h1{margin:5px 0 0;color:var(--p3-navy)}
.phase3-qr-body{display:grid;grid-template-columns:minmax(230px,.72fr) minmax(0,1.28fr);gap:22px;padding:22px}
.phase3-qr-visual{display:grid;place-items:center;align-content:start;gap:10px;padding:16px;border:1px solid var(--p3-line);border-radius:15px;background:var(--p3-soft)}
.phase3-qr-visual .qr-box{margin:0;background:#fff;border-radius:10px;padding:10px}
.phase3-qr-details{display:grid;align-content:start;gap:12px}
.phase3-qr-details dl{display:grid;grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr);gap:9px 12px;margin:0;padding:0}
.phase3-qr-details dt{color:var(--p3-muted);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.phase3-qr-details dd{margin:0;color:var(--p3-navy);font-weight:750;overflow-wrap:anywhere}
.phase3-qr-reference{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;font-size:1.05rem;letter-spacing:.04em}
.phase3-qr-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 22px;border-top:1px solid var(--p3-line);background:#fbfdfe}
.phase3-qr-footer .button-row{margin:0}
.phase3-attendee-qr{display:grid;grid-template-columns:105px minmax(0,1fr);gap:14px;align-items:center;min-width:270px}
.phase3-attendee-qr .qr-box{margin:0}

/* Seller VIP operational view */
.phase3-seller-list{display:grid;gap:12px}
.phase3-seller-item{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(190px,1.2fr) minmax(150px,.75fr) auto;gap:14px;align-items:center;padding:16px;border:1px solid var(--p3-line);border-radius:14px;background:#fff;box-shadow:0 5px 15px rgba(6,47,71,.06)}
.phase3-seller-item strong{color:var(--p3-navy)}
.phase3-seller-item small{display:block;color:var(--p3-muted)}
.phase3-seller-item .button-row{justify-content:flex-end;margin:0}
.phase3-seller-identity{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid #c6dce7;border-radius:13px;background:#eef7fb;color:#214f68}
.phase3-seller-identity p{margin:0}
.phase3-seller-identity small{display:block;margin-top:3px;color:#527384}

/* Protected CRM contract viewer */
.phase3-contract-shell{display:grid;grid-template-columns:minmax(210px,280px) minmax(0,1fr);gap:20px;align-items:start}
.phase3-contract-nav{position:sticky;top:98px;display:grid;gap:8px;padding:14px;border:1px solid var(--p3-line);border-radius:14px;background:#fff;box-shadow:0 5px 15px rgba(6,47,71,.06)}
.phase3-contract-nav a{padding:10px 11px;border-radius:9px;color:var(--p3-blue);font-weight:750;text-decoration:none}
.phase3-contract-nav a:hover,.phase3-contract-nav a[aria-current="page"]{background:#eaf3f7;color:var(--p3-navy)}
.phase3-contract-document{min-width:0;overflow:hidden;border:1px solid var(--p3-line);border-radius:14px;background:#fff;box-shadow:var(--p3-shadow)}
.phase3-contract-document header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--p3-line);background:#f7fafc}
.phase3-contract-document pre{max-height:70vh;margin:0;overflow:auto;padding:20px;background:#071d29;color:#e6f2f7;font:13px/1.58 ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;white-space:pre-wrap;overflow-wrap:anywhere}

/* Public booking management */
.phase3-manage-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(285px,.65fr);gap:22px;align-items:start}
.phase3-manage-card{padding:22px;border:1px solid var(--p3-line);border-radius:var(--p3-radius);background:#fff;box-shadow:0 7px 20px rgba(6,47,71,.07)}
.phase3-manage-card h2,.phase3-manage-card h3{color:var(--p3-navy)}
.phase3-request-timeline{display:grid;gap:10px}
.phase3-request-entry{padding:12px;border-left:4px solid var(--p3-blue);border-radius:0 10px 10px 0;background:var(--p3-soft)}

@media(max-width:1100px){
  .phase3-workspace,.phase3-manage-grid{grid-template-columns:minmax(0,1fr) minmax(260px,320px)}
  .phase3-checkin-grid{grid-template-columns:minmax(285px,.8fr) minmax(0,1.2fr)}
  .phase3-seller-item{grid-template-columns:repeat(2,minmax(0,1fr))}
  .phase3-seller-item .button-row{justify-content:flex-start}
}

@media(max-width:860px){
  .phase3-workspace,.phase3-checkin-grid,.phase3-manage-grid,.phase3-contract-shell{grid-template-columns:1fr}
  .phase3-summary,.phase3-scanner-card,.phase3-event-aside,.phase3-contract-nav{position:static}
  .phase3-summary{order:-1}
  .phase3-qr-body{grid-template-columns:1fr}
  .phase3-qr-visual{justify-items:center}
  .phase3-calendar-hint{display:block}
  .phase3-calendar-toolbar{position:static}
  .phase3-seller-item{grid-template-columns:1fr 1fr}
}

@media(max-width:640px){
  .phase3-calendar-intro,.phase3-calendar-toolbar,.phase3-form-actions,.phase3-seller-identity,.phase3-qr-head,.phase3-qr-footer{align-items:stretch;flex-direction:column}
  .phase3-calendar-toolbar .button-row,.phase3-form-actions .button-row,.phase3-qr-footer .button-row{width:100%}
  .phase3-calendar-toolbar .btn,.phase3-form-actions .btn,.phase3-qr-footer .btn{flex:1 1 auto}
  .phase3-workspace{gap:14px}
  .phase3-step-head,.phase3-step-body{padding:14px}
  .phase3-summary-list,.phase3-qr-details dl{grid-template-columns:1fr}
  .phase3-summary-list dd{text-align:left}
  .phase3-attendance-pass .pass-meta{grid-template-columns:1fr}
  .phase3-attendance-actions{grid-template-columns:1fr}
  .phase3-qr-body{padding:14px}
  .phase3-qr-head,.phase3-qr-footer{padding:14px}
  .phase3-seller-item{grid-template-columns:1fr}
  .phase3-seller-item .button-row{display:grid;width:100%}
  .phase3-attendee-qr{grid-template-columns:90px minmax(0,1fr)}
}

@media(prefers-reduced-motion:reduce){
  .phase3-week{scroll-behavior:auto!important}
  .phase3-week .calendar-event{transition:none!important}
}

@media print{
  .phase3-calendar-toolbar,.phase3-summary-actions,.phase3-form-actions,.phase3-attendance-actions,.phase3-qr-footer .button-row,.phase3-contract-nav{display:none!important}
  .phase3-summary,.phase3-attendance-pass,.phase3-qr-card,.phase3-contract-document{box-shadow:none}
  .phase3-qr-card{width:100%}
}

/* Multiday calendar continuity and over-capacity visibility. */
.phase3-continuation-note{display:block;margin:-1px 0 2px;color:var(--p3-muted);font-size:.68rem;font-weight:760;line-height:1.25}
.phase3-week .calendar-event.is-overbooked{box-shadow:inset 0 0 0 2px rgba(229,27,62,.34),0 2px 7px rgba(6,47,71,.06)}
