:root {
  --ink: #20202b;
  --muted: #6d6c7b;
  --line: #e8e7ee;
  --canvas: #f7f7fa;
  --surface: #fff;
  --soft-surface: #f8f7fa;
  --text: #20202b;
  --brand: #6657d9;
  --brand-dark: #5143bd;
  --sidebar: #181821;
  --shadow: 0 10px 30px rgb(31 26 72 / 8%);
  color-scheme: light;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }
html, body, #app { min-height: 100%; margin: 0; }
body { background: var(--canvas); color: var(--ink); }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p { margin-top: 0; }
button:focus-visible, a:focus-visible, input:focus-visible, [tabindex]:focus-visible { outline: 3px solid rgb(102 87 217 / 30%); outline-offset: 2px; }

.app-shell { display: grid; grid-template-columns: 244px 1fr; min-height: 100vh; }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 24px 16px 16px; background: var(--sidebar); color: #d8d7e0; overflow: hidden; }
.brand { display: flex; gap: 11px; align-items: center; padding: 0 9px 25px; color: white; }
.brand-mark, .public-brand span, .tv-brand span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: linear-gradient(145deg, #8578ef, #5646c5); color: white; font-weight: 800; box-shadow: inset 0 1px rgb(255 255 255 / 25%); }
.brand-copy, .event-mini > span:nth-child(2), .profile-mini > span:nth-child(2) { display: flex; flex-direction: column; }
.brand-copy strong { font-size: 15px; letter-spacing: -.02em; }
.brand-copy small { margin-top: 1px; color: #868491; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.primary-nav { display: flex; flex-direction: column; gap: 4px; }
.nav-label { margin: 19px 10px 7px; color: #706e7c; font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.primary-nav a { min-height: 39px; display: flex; align-items: center; gap: 11px; padding: 0 10px; border-radius: 8px; color: #aaa8b4; font-size: 13px; font-weight: 550; transition: .15s ease; }
.primary-nav a > span { width: 18px; color: #7f7c8c; font-size: 18px; text-align: center; }
.primary-nav a:hover { color: #f0eff6; background: rgb(255 255 255 / 5%); }
.primary-nav a.active { color: white; background: #30303d; box-shadow: inset 2px 0 #8b7ef0; }
.primary-nav a.active > span { color: #a79cf8; }
.primary-nav kbd { margin-left: auto; padding: 1px 5px; border: 1px solid #4c4a58; border-radius: 4px; color: #777583; background: #262630; font: 9px inherit; }
.primary-nav em { margin-left: auto; color: #787683; font-size: 11px; font-style: normal; }
.sidebar-footer { margin-top: auto; display: grid; gap: 10px; }
.sidebar-event-switcher { display: grid; gap: 5px; padding: 10px; border: 1px solid #32313c; border-radius: 10px; background: #21212b; }.sidebar-event-switcher > span { overflow: hidden; color: #8f8c9a; font-size: 8px; font-weight: 800; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }.sidebar-event-switcher select { width: 100%; min-height: 34px; padding: 6px 8px; border: 1px solid #3b3946; border-radius: 7px; color: #f2f1f5; background: #292833; font-size: 10px; font-weight: 700; cursor: pointer; }.sidebar-event-switcher small { overflow: hidden; color: #777582; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.event-mini, .profile-mini { display: grid; grid-template-columns: auto 1fr auto; gap: 9px; align-items: center; padding: 11px 9px; border: 1px solid #32313c; border-radius: 10px; background: #21212b; }
.event-dot { width: 9px; height: 9px; border-radius: 50%; background: #46c89a; box-shadow: 0 0 0 4px rgb(70 200 154 / 10%); }
.event-mini strong, .profile-mini strong { color: #e8e7ed; font-size: 11px; }
.event-mini small, .profile-mini small { margin-top: 2px; color: #777582; font-size: 9px; }
.event-mini button, .profile-mini button { border: 0; color: #777582; background: transparent; cursor: pointer; }
.profile-mini { border: 0; background: transparent; }
.avatar { width: 30px; height: 30px; display: inline-grid; place-items: center; flex: 0 0 auto; border: 2px solid white; border-radius: 50%; background: #e7e2ff; color: #5246a9; font-size: 10px; font-weight: 800; }
.avatar.small { width: 26px; height: 26px; margin-right: -7px; }
.main-surface { min-width: 0; }
.compact-event-switcher { display: none; }
.page { max-width: 1440px; margin: 0 auto; padding: 48px 48px 70px; }
.page-header { display: flex; justify-content: space-between; gap: 30px; align-items: flex-end; margin-bottom: 32px; }
.eyebrow { display: block; margin-bottom: 8px; color: var(--brand); font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.eyebrow.light { color: #b8b0ff; }
.page-header h1 { margin-bottom: 6px; font-size: clamp(28px, 3vw, 40px); line-height: 1.05; letter-spacing: -.04em; }
.page-header p, .panel-heading p, .public-title p { margin: 0; color: var(--muted); font-size: 13px; }
.header-actions, .builder-actions, .inspector-actions { display: flex; gap: 9px; align-items: center; }
.button { min-height: 39px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 16px; border: 1px solid transparent; border-radius: 8px; font-size: 12px; font-weight: 700; cursor: pointer; }
.button.primary { background: var(--brand); color: white; box-shadow: 0 4px 10px rgb(102 87 217 / 22%); }
.button.primary:hover { background: var(--brand-dark); }
.button.secondary { border-color: #dddae7; background: white; color: #484654; }
.button.light { min-height: 36px; background: white; color: #292735; }
.button.light b { min-width: 18px; padding: 2px 5px; border-radius: 9px; background: #ebe8ff; color: var(--brand); font-size: 10px; }
.button.compact { min-height: 34px; padding: 0 13px; font-size: 11px; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 16px; }
.metric-card { display: flex; gap: 14px; align-items: flex-start; min-height: 128px; padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: 0 2px 8px rgb(34 29 63 / 3%); }
.metric-icon, .task-icon { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 10px; font-size: 18px; }
.purple { color: #6657d9; background: #eeebff; }.green { color: #087f5b; background: #e6fcf5; }.amber { color: #c56b08; background: #fff4df; }.blue { color: #1971c2; background: #e7f5ff; }
.metric-card > div { display: flex; flex-direction: column; }
.metric-card small { color: var(--muted); font-size: 10px; }
.metric-card strong { margin: 8px 0 5px; font-size: 26px; letter-spacing: -.03em; }
.metric-card span:last-child { color: #8c8a96; font-size: 9px; }.metric-card span b { color: #14966d; }.metric-card span b.muted { color: #757380; }
.overview-grid { display: grid; grid-template-columns: 1.55fr 1fr; gap: 16px; margin-bottom: 16px; }
.panel { border: 1px solid var(--line); border-radius: 12px; background: white; box-shadow: 0 2px 8px rgb(34 29 63 / 3%); }
.panel-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 21px 22px 17px; }
.panel-heading h2 { margin-bottom: 5px; font-size: 15px; letter-spacing: -.01em; }.panel-heading a { color: var(--brand); font-size: 11px; font-weight: 700; }
.icon-button { border: 0; color: #8a8894; background: transparent; cursor: pointer; }
.task-row { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; min-height: 72px; padding: 12px 22px; border-top: 1px solid #efedf2; }
.task-icon { width: 34px; height: 34px; font-size: 15px; }.task-row div { display: flex; flex-direction: column; gap: 3px; }.task-row strong { font-size: 11px; }.task-row small { color: var(--muted); font-size: 9px; }
.task-row button { padding: 6px 10px; border: 1px solid #e0dfe6; border-radius: 7px; background: #fafafa; font-size: 9px; font-weight: 700; cursor: pointer; }
.readiness { color: var(--brand); font-size: 24px; }.progress-track { height: 6px; margin: 0 22px 15px; overflow: hidden; border-radius: 5px; background: #eceaf2; }.progress-track span { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, #7769e1, #9b8df3); }
.check-list { margin: 0; padding: 0 22px 17px; list-style: none; }.check-list li { display: grid; grid-template-columns: auto 1fr auto; gap: 9px; align-items: center; min-height: 38px; border-top: 1px solid #f1eff4; font-size: 10px; }.check-list li > span { width: 19px; height: 19px; display: grid; place-items: center; border: 1px solid #dcd9e5; border-radius: 50%; color: #8d8a98; font-size: 8px; }.check-list li.done > span { border-color: #bfeadb; color: #0c8b64; background: #e6fcf5; }.check-list b { color: #8a8794; font-size: 9px; font-weight: 600; }
.session-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid #efedf2; }.session-strip article { position: relative; display: flex; flex-direction: column; min-height: 145px; padding: 18px 20px; border-left: 1px solid #efedf2; }.session-strip article:first-child { border-left: 0; }.session-strip article::before { position: absolute; top: 0; right: 0; left: 0; height: 3px; background: var(--track); content: ""; }.session-strip time { color: var(--muted); font-size: 10px; }.track-pill { width: fit-content; display: inline-flex; align-items: center; margin: 8px 0; padding: 3px 7px; border-radius: 5px; font-size: 8px; font-weight: 800; text-transform: uppercase; }.session-strip strong { font-size: 11px; line-height: 1.4; }.session-strip small { margin-top: auto; color: var(--muted); font-size: 9px; }

/* Builder */
.builder-page { min-height: 100vh; display: flex; flex-direction: column; background: #f6f5f8; outline: none; }
.builder-header { height: 70px; display: flex; align-items: center; justify-content: space-between; padding: 0 22px; border-bottom: 1px solid #e4e2e8; background: white; }
.builder-title { display: flex; gap: 10px; align-items: center; }.live-dot { width: 9px; height: 9px; border-radius: 50%; background: #35b983; box-shadow: 0 0 0 4px #e2f8ef; }.builder-title div { display: flex; flex-direction: column; }.builder-title span:not(.live-dot) { color: #8e8b98; font-size: 8px; font-weight: 800; letter-spacing: .1em; }.builder-title h1 { margin: 2px 0 0; font-size: 16px; }.save-state { color: #6d9b88; font-size: 9px; }
.builder-toolbar { min-height: 52px; display: flex; align-items: center; gap: 5px; padding: 7px 14px; border-bottom: 1px solid #e3e1e7; background: #faf9fb; }
.segmented { display: flex; padding: 2px; border: 1px solid #dedce4; border-radius: 8px; background: white; }.segmented button { min-height: 31px; padding: 0 10px; border: 0; border-radius: 6px; color: #787582; background: transparent; font-size: 9px; cursor: pointer; }.segmented button small { margin-left: 4px; color: #aaa7b0; }.segmented button.active { color: #34313d; background: #efedf4; font-weight: 700; }.toolbar-separator { width: 1px; height: 25px; margin: 0 4px; background: #dddbe2; }.toolbar-spacer { flex: 1; }.tool-button { min-width: 30px; height: 30px; border: 1px solid transparent; border-radius: 6px; color: #666371; background: transparent; font-size: 16px; cursor: pointer; }.tool-button:hover { border-color: #e1dfe6; background: white; }.tool-button:disabled { opacity: .35; cursor: not-allowed; }.tool-button.text { width: auto; padding: 0 8px; font-size: 11px; }.tool-button span { margin-left: 5px; }.zoom-label { min-width: 32px; color: #888592; font-size: 8px; text-align: center; }
.builder-workspace { min-height: 0; display: grid; grid-template-columns: 1fr; flex: 1; }.builder-workspace.with-inspector { grid-template-columns: minmax(650px, 1fr) 275px; }.schedule-canvas { min-width: 0; overflow-x: auto; overflow-y: hidden; background: white; }.grid-header { width: max(100%, var(--schedule-min-width)); height: 58px; display: grid; grid-template-columns: 66px repeat(var(--room-count), minmax(180px, 1fr)); border-bottom: 1px solid #dddbe2; }.time-zone { display: grid; place-items: center; border-right: 1px solid #e5e3e8; color: #a4a1aa; font-size: 8px; }.room-heading { display: flex; flex-direction: column; justify-content: center; padding: 0 15px; border-right: 1px solid #e5e3e8; }.room-heading strong { font-size: 10px; }.room-heading small { margin-top: 4px; color: #96939e; font-size: 8px; }
.grid-scroll { width: max(100%, var(--schedule-min-width)); height: calc(100vh - 180px); display: grid; grid-template-columns: 66px repeat(var(--room-count), minmax(180px, 1fr)); overflow-x: visible; overflow-y: auto; }.time-column, .room-lane { position: relative; min-height: 800px; background-color: white; }.time-column { border-right: 1px solid #e6e4e9; }.time-column time { position: absolute; right: 12px; transform: translateY(-50%); color: #8e8b96; font-size: 8px; }.room-lane { border-right: 1px solid #e6e4e9; background-image: linear-gradient(90deg, color-mix(in srgb, var(--room-color, #6657d9) 5%, transparent), transparent); }.hour-line, .half-line { position: absolute; right: 0; left: 0; height: 1px; background: #e9e7ec; pointer-events: none; }.half-line { background: #f2f0f4; }
.room-heading { border-top: 3px solid var(--room-color, var(--brand)); }.room-heading strong i { display: inline-block; width: 7px; height: 7px; margin-right: 6px; border-radius: 50%; background: var(--room-color, var(--brand)); }
.calendar-session { position: absolute; z-index: 2; right: 5px; left: 5px; min-height: 40px; display: flex; overflow: visible; border: 1px solid color-mix(in srgb, var(--session-color) 20%, white); border-radius: 7px; background: var(--session-bg); box-shadow: 0 1px 3px rgb(40 31 75 / 8%); cursor: grab; user-select: none; transition: box-shadow .12s, opacity .12s; }.calendar-session:hover { z-index: 3; box-shadow: 0 5px 16px rgb(40 31 75 / 15%); }.calendar-session.selected { z-index: 4; box-shadow: 0 0 0 2px var(--session-color), 0 7px 20px rgb(40 31 75 / 18%); }.calendar-session.dragging { z-index: 8; opacity: .8; cursor: grabbing; transition: none; }.session-accent { width: 3px; flex: 0 0 auto; border-radius: 7px 0 0 7px; }.session-card-content { min-width: 0; display: flex; flex-direction: column; padding: 8px 10px; }.session-card-content > div { display: flex; align-items: center; gap: 6px; }.session-card-content time { color: color-mix(in srgb, var(--session-color) 80%, #222); font-size: 8px; font-weight: 700; }.session-card-content > div span { padding-left: 6px; border-left: 1px solid color-mix(in srgb, var(--session-color) 25%, white); color: var(--session-color); font-size: 7px; text-transform: uppercase; }.session-card-content strong { margin-top: 5px; overflow: hidden; color: #302d3a; font-size: 10px; line-height: 1.28; }.session-card-content small { margin-top: 3px; overflow: hidden; color: #77737f; font-size: 8px; white-space: nowrap; text-overflow: ellipsis; }.resize-handle { position: absolute; right: 18%; bottom: -4px; left: 18%; height: 8px; border-radius: 5px; cursor: ns-resize; }.resize-handle::after { position: absolute; bottom: 3px; left: 50%; width: 24px; height: 2px; transform: translateX(-50%); border-radius: 2px; background: rgb(57 51 77 / 22%); content: ""; }
.session-inspector { position: relative; z-index: 10; padding: 20px; border-left: 1px solid #dedce3; background: white; box-shadow: -8px 0 22px rgb(28 24 55 / 5%); }.inspector-heading { display: flex; justify-content: space-between; align-items: center; }.inspector-heading button { width: 28px; height: 28px; border: 0; border-radius: 6px; background: #f4f2f6; cursor: pointer; }.session-inspector h2 { margin: 12px 0 7px; font-size: 17px; line-height: 1.25; letter-spacing: -.02em; }.session-inspector > p { color: var(--muted); font-size: 10px; line-height: 1.6; }.session-inspector dl { margin: 22px 0; }.session-inspector dl div { padding: 11px 0; border-top: 1px solid #eeecf0; }.session-inspector dt { margin-bottom: 5px; color: #9a97a2; font-size: 8px; font-weight: 700; text-transform: uppercase; }.session-inspector dd { display: flex; justify-content: space-between; margin: 0; font-size: 10px; font-weight: 650; }.session-inspector dd small { color: #96939e; font-size: 8px; font-weight: 500; }.inspector-actions .button { flex: 1; padding: 0 9px; }.keyboard-note { display: flex; flex-direction: column; gap: 5px; margin-top: 20px; padding: 12px; border-radius: 8px; color: #73707d; background: #f5f3f8; font-size: 8px; }.keyboard-note strong { color: #4a4754; }
.toast { position: fixed; z-index: 100; right: 22px; bottom: 22px; min-width: 300px; display: grid; grid-template-columns: auto 1fr auto; gap: 10px; align-items: center; padding: 12px 14px; border: 1px solid #cbeada; border-radius: 10px; background: #f2fff9; box-shadow: var(--shadow); }.toast > span { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; color: white; background: #1b9c70; font-size: 11px; }.toast.error { border-color: #ffd7c2; background: #fff8f3; }.toast.error > span { background: #e8590c; }.toast div { display: flex; flex-direction: column; gap: 3px; }.toast strong { font-size: 10px; }.toast small { color: var(--muted); font-size: 8px; }.toast button { border: 0; background: transparent; cursor: pointer; }

/* Public schedule */
.public-surface { min-height: 100vh; }.public-page { min-height: 100vh; background: #fbfaf8; }.public-hero { min-height: 365px; padding: 0 clamp(24px, 7vw, 110px); color: white; background: radial-gradient(circle at 78% 5%, rgb(136 120 225 / 42%), transparent 30%), linear-gradient(140deg, #151520, #27243e 62%, #343051); overflow: hidden; }.public-hero nav { height: 76px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgb(255 255 255 / 10%); }.public-brand, .tv-brand { display: flex; gap: 10px; align-items: center; font-size: 14px; font-weight: 800; }.public-brand span, .tv-brand span { width: 31px; height: 31px; border-radius: 9px; }.public-hero nav > div { display: flex; gap: 25px; align-items: center; }.public-hero nav a:not(.public-brand) { padding: 27px 0 24px; color: #aaa7ba; font-size: 10px; font-weight: 600; }.public-hero nav a.active { color: white; border-bottom: 2px solid #8e82eb; }.public-icon { border: 0; color: #cbc8d6; background: transparent; cursor: pointer; }.hero-content { padding: 57px 0 64px; }.hero-content h1 { max-width: 700px; margin-bottom: 15px; font: 600 clamp(38px, 5vw, 62px)/.98 Georgia, serif; letter-spacing: -.045em; }.hero-content p { max-width: 570px; margin: 0; color: #aaa6ba; font-size: 13px; line-height: 1.6; }
.public-content { max-width: 1480px; margin: 0 auto; padding: 50px 30px 90px; }.public-title { display: flex; justify-content: space-between; align-items: flex-end; gap: 30px; }.public-title h2 { margin-bottom: 7px; font: 600 30px Georgia, serif; letter-spacing: -.02em; }.public-view-options { display: grid; justify-items: end; gap: 8px; }.view-switch { display: flex; padding: 3px; border: 1px solid #dfdce1; border-radius: 8px; background: white; }.view-switch button { min-height: 31px; padding: 0 12px; border: 0; border-radius: 6px; color: #7e7a83; background: transparent; font-size: 9px; cursor: pointer; }.view-switch button.active { color: #2c2932; background: #f0edf3; font-weight: 700; }.public-zoom-controls { display: flex; align-items: center; padding: 2px; border: 1px solid #dfdce1; border-radius: 8px; background: white; }.public-zoom-controls button { min-width: 29px; height: 27px; border: 0; border-radius: 6px; color: #6f6a75; background: transparent; font-size: 11px; cursor: pointer; }.public-zoom-controls button:disabled { opacity: .35; cursor: default; }.public-zoom-controls .zoom-fit { min-width: 78px; padding: 0 9px; font-size: 8px; font-weight: 800; }.public-zoom-controls .zoom-fit.active { color: #574ab9; background: #f0edff; }.public-day-switch { display: flex; gap: 8px; margin-top: 24px; overflow-x: auto; }.public-day-switch button { min-width: 125px; display: grid; gap: 3px; padding: 10px 13px; border: 1px solid #dedbe1; border-radius: 9px; color: #77727e; background: white; text-align: left; cursor: pointer; }.public-day-switch button span { font-size: 8px; font-weight: 800; text-transform: uppercase; }.public-day-switch button strong { color: #3d3942; font-size: 10px; }.public-day-switch button.active { border-color: #8174df; background: #f0edff; box-shadow: 0 0 0 2px rgb(102 87 217 / 8%); }.public-day-switch button.active strong { color: #574ab9; }.public-tools { display: grid; grid-template-columns: 1fr auto auto; gap: 9px; margin: 24px 0 30px; }.search-box { min-height: 42px; display: flex; align-items: center; gap: 10px; padding: 0 14px; border: 1px solid #ddd9df; border-radius: 8px; background: white; }.search-box span { color: #8b8790; font-size: 18px; }.search-box input { width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 11px; }.filter-button { min-width: 120px; display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 0 12px; border: 1px solid #ddd9df; border-radius: 8px; background: white; font-size: 10px; cursor: pointer; }.filter-button span { color: #98949c; }.mobile-only { display: none; }
.agenda-list { display: grid; gap: 33px; }.agenda-time-group { display: grid; grid-template-columns: 70px 1fr; gap: 22px; }.agenda-time { padding-top: 12px; display: flex; flex-direction: column; }.agenda-time strong { font: 600 17px Georgia, serif; }.agenda-time small { margin-top: 4px; color: #9b969e; font-size: 8px; }.agenda-cards { display: grid; gap: 10px; }.agenda-card { position: relative; display: grid; grid-template-columns: 4px 1fr auto; min-height: 150px; overflow: hidden; border: 1px solid #e5e1e2; border-radius: 10px; background: white; box-shadow: 0 3px 12px rgb(36 27 55 / 4%); }.agenda-card-body { padding: 18px 21px; }.agenda-meta { display: flex; align-items: center; gap: 7px; color: #8b8790; font-size: 8px; }.agenda-meta .track-pill { margin: 0; }.agenda-card h3 { margin: 10px 0 6px; font: 600 18px Georgia, serif; letter-spacing: -.015em; }.agenda-card p { max-width: 650px; margin-bottom: 17px; color: #736f78; font-size: 10px; line-height: 1.55; }.agenda-footer { display: flex; justify-content: space-between; align-items: center; color: #77727c; font-size: 9px; }.speaker-stack { display: flex; align-items: center; }.speaker-stack strong { margin-left: 12px; color: #4b4750; font-size: 9px; }.favorite { align-self: start; width: 32px; height: 32px; margin: 16px; border: 1px solid #dcd8de; border-radius: 50%; color: #6c6770; background: white; font-size: 16px; cursor: pointer; }.favorite.active { border-color: var(--brand); color: white; background: var(--brand); }
.public-schedule-grid { width: 100%; overflow-x: auto; border: 1px solid #dfdce2; border-radius: 12px; background: white; box-shadow: 0 7px 25px rgb(36 27 55 / 5%); }.public-grid-header, .public-grid-body { width: max(100%, var(--public-grid-min-width)); display: grid; grid-template-columns: 74px repeat(var(--public-room-count), minmax(220px, 1fr)); }.public-grid-header { position: sticky; z-index: 8; top: 0; min-height: 62px; border-bottom: 1px solid #dfdce2; background: white; }.public-grid-timezone { display: grid; place-items: center; border-right: 1px solid #e7e4e9; color: #96919a; font-size: 8px; font-weight: 800; }.public-grid-room { display: grid; align-content: center; gap: 4px; padding: 9px 14px; border-top: 3px solid var(--room-color); border-right: 1px solid #e7e4e9; }.public-grid-room strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }.public-grid-room small { overflow: hidden; color: #908b95; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.public-grid-times, .public-grid-lane { position: relative; min-height: 92px; }.public-grid-times { border-right: 1px solid #e7e4e9; background: #fbfafc; }.public-grid-times time { position: absolute; right: 13px; transform: translateY(-50%); color: #8d8892; font-size: 8px; font-variant-numeric: tabular-nums; }.public-grid-lane { overflow: hidden; border-right: 1px solid #e7e4e9; background: linear-gradient(90deg, color-mix(in srgb, var(--room-color) 4%, transparent), transparent); }.public-hour-line, .public-half-line { position: absolute; right: 0; left: 0; height: 1px; background: #ebe8ee; }.public-half-line { background: #f3f1f5; }.public-grid-session { position: absolute; z-index: 2; display: flex; flex-direction: column; gap: 5px; min-height: 42px; padding: 8px 9px; overflow: hidden; border: 1px solid color-mix(in srgb, var(--session-color) 24%, white); border-left: 3px solid var(--session-color); border-radius: 8px; color: #332f3a; background: var(--session-soft); box-shadow: 0 2px 6px rgb(36 27 55 / 7%); }.public-grid-session.support { border-style: dashed; border-left-style: solid; background: color-mix(in srgb, var(--session-soft) 62%, white); }.public-grid-session > div { display: flex; justify-content: space-between; align-items: center; gap: 5px; }.public-grid-session time { color: color-mix(in srgb, var(--session-color) 84%, #222); font-size: 8px; font-weight: 800; white-space: nowrap; }.public-grid-session strong { overflow: hidden; font-size: 10px; line-height: 1.25; }.public-grid-session small { overflow: hidden; color: #6f6975; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }.public-grid-favorite { width: 20px; height: 20px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid color-mix(in srgb, var(--session-color) 30%, white); border-radius: 50%; color: var(--session-color); background: rgb(255 255 255 / 66%); cursor: pointer; }.public-grid-favorite.active { color: white; background: var(--session-color); }.public-unscheduled { display: flex; justify-content: space-between; margin-top: 14px; padding: 14px 18px; border: 1px dashed #d7d3db; border-radius: 9px; color: #7b7680; background: white; font-size: 9px; }
.public-room-panorama { width: 100%; overflow-x: auto; padding: 0 0 10px; }.public-room-timelines { width: max(100%, var(--timeline-min-width)); display: grid; grid-template-columns: repeat(var(--timeline-room-count), minmax(0, 1fr)); gap: 12px; align-items: start; transition: width .2s ease; }.public-room-timeline { min-width: 0; overflow: hidden; border: 1px solid #e1dde3; border-top: 3px solid var(--room-color); border-radius: 12px; background: white; box-shadow: 0 4px 16px rgb(36 27 55 / 4%); }.public-room-timeline > header { min-height: 68px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 12px 16px; border-bottom: 1px solid #ebe8ed; }.public-room-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--room-color); box-shadow: 0 0 0 4px color-mix(in srgb, var(--room-color) 12%, transparent); }.public-room-timeline > header div { min-width: 0; }.public-room-timeline > header h3 { margin: 0 0 3px; overflow: hidden; font: 600 17px Georgia, serif; text-overflow: ellipsis; }.public-room-timeline > header p { margin: 0; overflow: hidden; color: #8d8891; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.public-room-timeline > header > strong { color: #6f6a74; font-size: 9px; font-variant-numeric: tabular-nums; white-space: nowrap; }.public-room-session-list { display: grid; padding: 4px 16px 14px; }.public-room-session { min-height: 116px; display: grid; grid-template-columns: 53px 12px minmax(0, 1fr) auto; gap: 8px; padding: 15px 0 10px; border-bottom: 1px solid #efecf0; }.public-room-session:last-child { border-bottom: 0; }.public-room-session.support { margin: 6px -7px; padding: 14px 7px; border: 1px dashed color-mix(in srgb, var(--session-color) 30%, #dedbe1); border-radius: 9px; background: color-mix(in srgb, var(--session-soft) 44%, white); }.public-room-session-time { display: grid; align-content: start; gap: 2px; }.public-room-session-time strong { font: 600 14px Georgia, serif; }.public-room-session-time span, .public-room-session-time small { color: #96919a; font-size: 7px; }.public-room-session-time small { margin-top: 5px; font-weight: 700; }.public-room-session-rail { position: relative; }.public-room-session-rail::before { position: absolute; top: 4px; left: 3px; width: 7px; height: 7px; border-radius: 50%; background: var(--session-color); box-shadow: 0 0 0 3px color-mix(in srgb, var(--session-color) 14%, transparent); content: ""; }.public-room-session-rail::after { position: absolute; top: 16px; bottom: -17px; left: 6px; width: 1px; background: color-mix(in srgb, var(--session-color) 24%, transparent); content: ""; }.public-room-session:last-child .public-room-session-rail::after { display: none; }.public-room-session-copy { min-width: 0; }.public-room-session-copy > div { display: flex; align-items: center; gap: 6px; }.public-room-session-copy .track-pill { margin: 0; }.public-room-session-copy > div small { color: #8d8892; font-size: 7px; }.public-room-session-copy > div em { padding: 3px 6px; border-radius: 999px; color: var(--session-color); background: color-mix(in srgb, var(--session-color) 10%, white); font-size: 7px; font-style: normal; font-weight: 800; }.public-room-session-copy h4 { margin: 8px 0 4px; font: 600 15px/1.25 Georgia, serif; }.public-room-session-copy p { display: -webkit-box; margin: 0 0 8px; overflow: hidden; color: #77717b; font-size: 9px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }.public-room-session-copy > span { color: #8b8690; font-size: 8px; }.compact-favorite { width: 29px; height: 29px; margin: 0; font-size: 13px; }.public-room-timeline.unscheduled { grid-column: 1 / -1; }.public-room-timelines.zoom-0 .public-room-timeline > header { min-height: 60px; grid-template-columns: auto minmax(0, 1fr); gap: 8px; padding: 10px; }.public-room-timelines.zoom-0 .public-room-timeline > header > strong { display: none; }.public-room-timelines.zoom-0 .public-room-timeline > header h3 { font-size: 13px; white-space: nowrap; }.public-room-timelines.zoom-0 .public-room-session-list { padding: 3px 8px 10px; }.public-room-timelines.zoom-0 .public-room-session { min-height: 80px; grid-template-columns: 39px 8px minmax(0, 1fr); gap: 5px; padding: 10px 0 7px; }.public-room-timelines.zoom-0 .public-room-session.support { margin: 4px -3px; padding: 9px 3px; }.public-room-timelines.zoom-0 .public-room-session-time strong { font-size: 11px; }.public-room-timelines.zoom-0 .public-room-session-time small, .public-room-timelines.zoom-0 .public-room-session-copy p, .public-room-timelines.zoom-0 .public-room-session-copy > span, .public-room-timelines.zoom-0 .compact-favorite, .public-room-timelines.zoom-0 .public-room-session-copy > div small, .public-room-timelines.zoom-0 .public-room-session-copy > div em { display: none; }.public-room-timelines.zoom-0 .public-room-session-copy > div { overflow: hidden; }.public-room-timelines.zoom-0 .public-room-session-copy .track-pill { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.public-room-timelines.zoom-0 .public-room-session-copy h4 { margin-top: 6px; font-size: 11px; }.public-room-timelines.zoom-0 .public-room-session-rail::before { left: 1px; }.public-room-timelines.zoom-0 .public-room-session-rail::after { left: 4px; }

/* TV */
.tv-page { min-height: 100vh; display: flex; flex-direction: column; color: white; background: radial-gradient(circle at 60% -20%, #413b69, transparent 38%), #14141d; }.tv-page > header { height: 84px; display: flex; justify-content: space-between; align-items: center; padding: 0 48px; border-bottom: 1px solid rgb(255 255 255 / 10%); }.tv-page > header > div { display: flex; gap: 25px; align-items: center; }.tv-page > header time { font-size: 24px; font-variant-numeric: tabular-nums; }.live-badge { display: flex; gap: 7px; align-items: center; padding: 6px 9px; border: 1px solid rgb(82 222 161 / 25%); border-radius: 6px; color: #6ce1af; background: rgb(43 175 119 / 8%); font-size: 9px; font-weight: 800; }.live-badge i { width: 6px; height: 6px; border-radius: 50%; background: #52dca0; box-shadow: 0 0 8px #52dca0; }.tv-page main { flex: 1; padding: 38px 48px 40px; }.tv-heading span { color: #8f8a9e; font-size: 10px; letter-spacing: .13em; }.tv-heading h1 { margin: 7px 0 30px; font: 600 37px Georgia, serif; }.tv-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }.tv-room { min-width: 0; overflow: hidden; border: 1px solid #363541; border-radius: 12px; background: #1d1d27; }.tv-room-name { display: grid; grid-template-columns: auto 1fr auto; gap: 8px; align-items: center; padding: 14px 17px; border-bottom: 1px solid #35343f; }.tv-room-name > span { width: 7px; height: 7px; border-radius: 50%; background: #52dca0; }.tv-room-name strong { font-size: 11px; }.tv-room-name small { color: #797682; font-size: 8px; }.tv-current { min-height: 240px; padding: 24px 20px 18px; border-top: 3px solid var(--track); background: linear-gradient(150deg, rgb(102 87 217 / 6%), transparent 65%); }.tv-current h2 { min-height: 78px; margin: 10px 0 9px; font: 600 clamp(18px, 2vw, 25px)/1.2 Georgia, serif; }.tv-current p { color: #aaa6b2; font-size: 10px; }.tv-progress { height: 4px; margin: 27px 0 8px; overflow: hidden; border-radius: 4px; background: #383641; }.tv-progress span { display: block; height: 100%; border-radius: inherit; background: var(--track); }.tv-current > small { color: #8b8793; font-size: 8px; }.tv-current.empty span { color: #8f8a97; font-size: 9px; text-transform: uppercase; }.tv-current.empty h2 { color: #cac6d0; }.tv-next { min-height: 100px; display: flex; flex-direction: column; padding: 16px 20px; border-top: 1px solid #35343f; background: #191922; }.tv-next span { color: #777380; font-size: 8px; font-weight: 800; letter-spacing: .08em; }.tv-next strong { margin: 7px 0 4px; overflow: hidden; font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }.tv-next small { color: #8c8894; font-size: 8px; }.tv-page footer { min-height: 64px; display: flex; align-items: center; gap: 18px; padding: 0 48px; border-top: 1px solid #34333d; background: #1b1b24; font-size: 9px; }.tv-page footer > span:first-child { color: #888490; text-transform: uppercase; }.tv-page footer strong { font-size: 10px; }.tv-footer-time { margin-left: auto; color: #8b82e7; }

#blazor-error-ui { position: fixed; z-index: 1000; right: 20px; bottom: 20px; display: none; padding: 12px 15px; border-radius: 8px; background: #fff3bf; box-shadow: var(--shadow); font-size: 11px; }.loading-progress { position: absolute; top: 50%; left: 50%; width: 70px; height: 70px; transform: translate(-50%, -50%); }.loading-progress circle { fill: none; stroke: #e8e5f0; stroke-width: .5rem; }.loading-progress circle:last-child { stroke: var(--brand); stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%)), 500%; transition: stroke-dasharray .05s ease-in-out; }

@media (max-width: 1050px) {
  .app-shell { grid-template-columns: 76px 1fr; }.sidebar { padding: 22px 11px; }.brand { padding: 0 10px 25px; }.brand-copy, .primary-nav a:not(.active) kbd, .primary-nav a { font-size: 0; }.primary-nav a { justify-content: center; }.primary-nav a > span { font-size: 18px; }.primary-nav em, .nav-label, .sidebar-footer { display: none; }.metric-grid { grid-template-columns: repeat(2, 1fr); }.builder-workspace.with-inspector { grid-template-columns: minmax(590px, 1fr) 250px; }
  .compact-event-switcher { min-height: 48px; display: flex; gap: 10px; align-items: center; padding: 7px 18px; border-bottom: 1px solid var(--line); background: var(--surface); }.compact-event-switcher > span { max-width: 180px; overflow: hidden; color: var(--muted); font-size: 8px; font-weight: 800; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }.compact-event-switcher select { min-width: 180px; max-width: 320px; min-height: 32px; padding: 5px 8px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: var(--surface); font-size: 10px; font-weight: 700; }.compact-event-switcher small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
}

.login-form { display: grid; gap: 14px; margin: 20px 0; }.login-form label { display: grid; gap: 6px; }.login-form label > span { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }.login-form input { min-height: 44px; padding: 10px 12px; border: 1px solid #dddae4; border-radius: 8px; color: var(--ink); background: var(--surface); }.login-form input:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px rgb(102 87 217 / 10%); }.login-form .remember-me { display: flex; align-items: center; gap: 8px; }.login-form .remember-me input { width: 16px; min-height: 16px; }.login-form .remember-me span { text-transform: none; }.login-form > small { color: var(--muted); font-size: 9px; }.login-error, .login-success { margin: 14px 0; padding: 12px; border-radius: 8px; font-size: 10px; line-height: 1.5; }.login-error { color: #9d1c1c; background: #fff1f0; border: 1px solid #ffc9c9; }.login-success { color: #087f5b; background: #e6fcf5; border: 1px solid #96f2d7; }

@media (max-width: 760px) {
  .app-shell { display: block; }.sidebar { position: fixed; z-index: 50; top: auto; right: 0; bottom: 0; left: 0; width: 100%; height: 62px; flex-direction: row; padding: 7px 12px; }.brand, .sidebar-footer, .nav-label, .primary-nav a:nth-of-type(n+5) { display: none; }.primary-nav { width: 100%; flex-direction: row; justify-content: space-around; }.primary-nav a { width: 25%; flex-direction: column; justify-content: center; gap: 2px; padding: 0; font-size: 7px; }.primary-nav a > span { font-size: 17px; }.page { padding: 28px 18px 90px; }.page-header { align-items: flex-start; flex-direction: column; }.metric-grid, .overview-grid, .session-strip { grid-template-columns: 1fr; }.session-strip article { border-top: 1px solid var(--line); border-left: 0; }.builder-header { padding: 0 12px; }.save-state, .builder-actions .secondary, .tool-button span { display: none; }.builder-toolbar { overflow-x: auto; }.builder-workspace.with-inspector { grid-template-columns: 1fr; }.session-inspector { display: none; }.grid-header, .grid-scroll { min-width: 720px; }.grid-scroll { height: calc(100vh - 242px); }.public-hero { min-height: 330px; padding: 0 20px; }.public-hero nav > div a:not(.active), .public-icon { display: none; }.hero-content { padding-top: 50px; }.public-content { padding: 36px 18px 70px; }.public-title { align-items: flex-start; flex-direction: column; }.public-tools { grid-template-columns: 1fr auto; }.public-tools .filter-button:not(.mobile-only) { display: none; }.mobile-only { display: flex; }.agenda-time-group { grid-template-columns: 48px 1fr; gap: 8px; }.agenda-card { min-height: 180px; }.agenda-footer { align-items: flex-start; flex-direction: column; gap: 12px; }.tv-page > header, .tv-page main, .tv-page footer { padding-right: 20px; padding-left: 20px; }.tv-grid { grid-template-columns: 1fr; }.tv-page footer { align-items: flex-start; flex-direction: column; gap: 5px; padding-top: 12px; padding-bottom: 12px; }.tv-footer-time { margin-left: 0; }
  .compact-event-switcher { padding-right: 12px; padding-left: 12px; }.compact-event-switcher > span, .compact-event-switcher small { display: none; }.compact-event-switcher select { width: 100%; max-width: none; }
}
.public-missing-event { min-height: 100vh; display: flex; flex-direction: column; justify-content: space-between; padding: 52px; color: white; background: radial-gradient(circle at 85% 20%, #6557c9, transparent 30%), #191722; }.public-missing-event > div { max-width: 620px; margin: auto; text-align: center; }.public-missing-event h1 { margin-bottom: 15px; font-size: clamp(38px, 6vw, 70px); line-height: 1; letter-spacing: -.055em; }.public-missing-event p { margin: 0 auto 24px; color: #bbb7c8; font-size: 12px; line-height: 1.6; }

/* Interactive management pages and theme */
textarea, select { font: inherit; }
.theme-toggle { width: 100%; min-height: 38px; display: flex; align-items: center; gap: 10px; padding: 0 10px; border: 1px solid #32313c; border-radius: 9px; color: #aaa8b4; background: #21212b; cursor: pointer; }
.theme-toggle span { width: 20px; font-size: 16px; }.theme-toggle strong { font-size: 10px; }
.sidebar-popover { display: grid; gap: 5px; padding: 10px 12px; border: 1px solid #3b3947; border-radius: 8px; color: #d8d6e0; background: #292833; font-size: 9px; }
.sidebar-popover span, .sidebar-popover a { color: #a99df5; }.sidebar-popover small { color: #85828e; }.sidebar-popover button { padding: 0; border: 0; color: #a99df5; background: transparent; font-size: 9px; text-align: left; cursor: pointer; }
.sidebar-popover form { display: contents; }
.task-count { padding: 4px 8px; border-radius: 10px; color: var(--brand); background: #eeebff; font-size: 9px; font-weight: 750; }
.review-button { padding: 6px 10px; border: 1px solid #e0dfe6; border-radius: 7px; background: #fafafa; font-size: 9px; font-weight: 700; }
.empty-task { min-height: 140px; display: flex; justify-content: center; align-items: center; gap: 12px; padding: 25px; border-top: 1px solid var(--line); color: #13865f; }.empty-task > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #e6fcf5; }.empty-task div { display: flex; flex-direction: column; gap: 3px; }.empty-task strong { font-size: 12px; }.empty-task small { color: var(--muted); font-size: 9px; }
.composer-panel { margin-bottom: 18px; padding-bottom: 18px; }.compact-composer { padding: 22px; }.form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; padding: 0 22px; }.compact-composer .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0; }
.form-grid label { display: grid; gap: 6px; }.form-grid label.wide { grid-column: 1 / -1; }.form-grid label > span { color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; }.form-grid input, .form-grid textarea, .form-grid select, .control-select, .builder-filterbar select { width: 100%; min-height: 40px; padding: 9px 11px; border: 1px solid #dddae4; border-radius: 8px; color: var(--ink); background: var(--surface); font-size: 11px; outline: none; }.form-grid textarea { min-height: 74px; resize: vertical; }.form-grid input:focus, .form-grid textarea:focus, .form-grid select:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgb(102 87 217 / 10%); }
.category-panel { margin-bottom: 18px; padding-bottom: 20px; }.category-editor { display: flex; align-items: end; gap: 10px; padding: 0 22px 16px; }.category-editor label { display: grid; flex: 1; gap: 6px; }.category-editor label > span { color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; }.category-editor input { min-height: 40px; padding: 8px 10px; border: 1px solid #dddae4; border-radius: 8px; background: var(--surface); color: var(--ink); }.category-editor .color-field { flex: 0 0 90px; }.category-editor input[type=color] { width: 90px; padding: 4px; cursor: pointer; }.category-list { display: grid; gap: 7px; padding: 0 22px; }.category-row { display: grid; grid-template-columns: 14px minmax(130px,1fr) auto auto auto auto; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; }.category-swatch { width: 14px; height: 28px; border-radius: 5px; }.category-row strong { font-size: 11px; }.category-row small { color: var(--muted); font-size: 9px; }.form-message { margin: 0 22px 14px; color: #087f5b; font-size: 10px; }.form-message.error { color: #c92a2a; }
.composer-actions { display: flex; justify-content: flex-end; align-items: center; gap: 15px; padding: 16px 22px 0; }.compact-composer .composer-actions { padding-right: 0; padding-left: 0; }.composer-actions > span { color: #c2410c; font-size: 10px; }
.data-panel { overflow: hidden; }.list-toolbar { display: grid; grid-template-columns: 1fr 160px auto; gap: 10px; padding: 16px 18px; border-bottom: 1px solid var(--line); }.standalone-toolbar { max-width: 520px; grid-template-columns: 1fr; padding: 0; margin-bottom: 18px; border: 0; }.control-select { min-height: 42px; }
.table-list { display: grid; }.data-row { min-height: 88px; display: grid; grid-template-columns: 4px 1fr auto auto; gap: 18px; align-items: center; padding: 0 18px 0 0; border-top: 1px solid var(--line); }.data-row:first-child { border-top: 0; }.row-accent { align-self: stretch; }.row-main { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }.row-main .track-pill { margin: 0 0 5px; }.row-main strong { overflow: hidden; font-size: 12px; white-space: nowrap; text-overflow: ellipsis; }.row-main small { margin-top: 4px; color: var(--muted); font-size: 9px; }
.session-bulk-toolbar { display: grid; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--brand) 4%, var(--surface)); }.bulk-selection-summary { display: flex; align-items: center; gap: 8px; }.bulk-selection-summary strong { margin-right: 4px; font-size: 10px; }.bulk-edit-fields { display: grid; grid-template-columns: repeat(3, minmax(140px, 1fr)) auto; gap: 10px; align-items: end; }.bulk-edit-fields label, .session-inline-grid label { display: grid; gap: 5px; }.bulk-edit-fields label > span, .session-inline-grid label > span { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }.bulk-edit-fields select, .session-inline-grid input, .session-inline-grid select { width: 100%; min-height: 36px; padding: 7px 9px; border: 1px solid #dddae4; border-radius: 8px; color: var(--ink); background: var(--surface); font-size: 10px; outline: none; }.bulk-edit-fields select:focus, .session-inline-grid input:focus, .session-inline-grid select:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgb(102 87 217 / 10%); }.session-selector { display: inline-flex; align-items: center; gap: 5px; margin-bottom: 6px; color: var(--muted); font-size: 8px; cursor: pointer; }.session-selector input { width: 14px; height: 14px; accent-color: var(--brand); }.session-inline-editor { grid-column: 1 / -1; display: grid; gap: 12px; margin: 0 0 16px 22px; padding: 16px; border: 1px solid color-mix(in srgb, var(--brand) 22%, var(--line)); border-radius: 10px; background: color-mix(in srgb, var(--brand) 3%, var(--surface)); }.session-inline-grid { display: grid; grid-template-columns: minmax(220px, 2fr) repeat(5, minmax(120px, 1fr)); gap: 10px; }.inline-editor-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; }.inline-editor-actions .form-message { margin-right: auto; }.composer-panel#session-editor { scroll-margin-top: 18px; }
.bulk-delete-confirmation { margin: 0; }
.status-pill { width: fit-content; display: inline-flex; padding: 4px 8px; border-radius: 12px; font-size: 8px; font-weight: 750; white-space: nowrap; }.status-pill.success { color: #087f5b; background: #e6fcf5; }.status-pill.draft { color: #6657d9; background: #eeebff; }.status-pill.warning { color: #b35c00; background: #fff4df; }.status-pill.concurrent { color: #12628a; background: #e6f6ff; }
.empty-state { min-height: 180px; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 7px; padding: 30px; color: var(--muted); }.empty-state strong { color: var(--ink); font-size: 14px; }.empty-state span { font-size: 10px; }.empty-state .button { margin-top: 9px; }
.people-grid, .room-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }.person-card { display: grid; grid-template-columns: auto 1fr auto; gap: 15px; align-items: center; padding: 20px; }.person-card.needs-review, .room-card.needs-review { border-color: #efc98d; box-shadow: 0 0 0 3px rgb(239 201 141 / 12%); }.person-avatar { width: 50px; height: 50px; display: inline-grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: #574ab9; background: linear-gradient(145deg, #eeeaff, #dcd5ff); font-size: 13px; font-weight: 800; }.person-avatar.photo { object-fit: cover; }.person-copy h2 { margin-bottom: 3px; font-size: 14px; }.person-copy p { margin: 0 0 6px; color: var(--muted); font-size: 10px; }.person-copy > span { color: #9996a2; font-size: 9px; }.person-status { display: grid; justify-items: end; gap: 5px; }.person-actions { grid-column: 2 / -1; display: flex; justify-content: flex-end; gap: 8px; }
.room-card { padding: 21px; }.room-card-heading { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; }.room-card-heading > span:first-child { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 9px; color: var(--brand); background: #eeebff; }.room-card h2 { margin-bottom: 3px; font-size: 14px; }.room-card p { margin: 0; color: var(--muted); font-size: 9px; }.room-stat { display: flex; align-items: baseline; gap: 6px; margin: 25px 0; }.room-stat strong { font-size: 30px; }.room-stat span { color: var(--muted); font-size: 10px; }.room-stat small { margin-left: auto; color: var(--muted); font-size: 9px; }.capacity-actions { display: flex; gap: 7px; }.capacity-actions > button:not(.button) { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface); cursor: pointer; }.capacity-actions .button { margin-left: auto; }
.room-card { border-top: 3px solid var(--room-color, var(--brand)); }.room-card-heading > span:first-child { color: #fff; }.room-schedule { margin: 0 0 18px; padding-top: 16px; border-top: 1px solid var(--line); }.room-schedule > header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }.room-schedule > header div { display: grid; gap: 2px; }.room-schedule > header span { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .12em; }.room-schedule > header h3 { margin: 0; font-size: 12px; }.room-schedule > header > b { min-width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; color: var(--room-color, var(--brand)); background: color-mix(in srgb, var(--room-color, var(--brand)) 11%, transparent); font-size: 10px; }.room-schedule-day + .room-schedule-day { margin-top: 16px; }.room-schedule-date { display: flex; justify-content: space-between; align-items: center; margin: 0 0 7px; padding: 0 2px; }.room-schedule-date strong { font-size: 9px; text-transform: capitalize; }.room-schedule-date span { color: var(--muted); font-size: 8px; }.room-schedule ol { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }.room-session-item { display: grid; grid-template-columns: 58px 12px minmax(0, 1fr); min-height: 88px; padding: 11px 12px 11px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: 0 2px 8px rgb(25 20 45 / 3%); }.room-session-item:hover { border-color: color-mix(in srgb, var(--session-color) 45%, var(--line)); box-shadow: 0 5px 16px rgb(25 20 45 / 7%); }.room-session-item.support { border-style: dashed; background: color-mix(in srgb, var(--session-soft) 28%, var(--surface)); }.room-session-time { display: grid; align-content: start; gap: 2px; padding-top: 1px; }.room-session-time strong { color: var(--text); font-size: 13px; font-variant-numeric: tabular-nums; }.room-session-time span, .room-session-time small { color: var(--muted); font-size: 8px; }.room-session-time small { margin-top: 5px; font-weight: 700; }.room-session-rail { position: relative; display: flex; justify-content: center; }.room-session-rail::after { content: ""; position: absolute; top: 13px; bottom: -18px; width: 1px; background: color-mix(in srgb, var(--session-color) 28%, transparent); }.room-session-item:last-child .room-session-rail::after { display: none; }.room-session-rail i { position: relative; z-index: 1; width: 9px; height: 9px; margin-top: 3px; border: 2px solid var(--surface); border-radius: 50%; background: var(--session-color); box-shadow: 0 0 0 2px color-mix(in srgb, var(--session-color) 24%, transparent); }.room-session-content { min-width: 0; display: grid; align-content: start; gap: 6px; }.room-session-tags { display: flex; align-items: center; gap: 6px; }.room-session-tags > span { max-width: 150px; padding: 3px 6px; overflow: hidden; border-radius: 999px; font-size: 8px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }.room-session-tags small { color: var(--muted); font-size: 8px; }.room-session-content > a { overflow: hidden; color: var(--text); font-size: 11px; font-weight: 800; line-height: 1.35; text-decoration: none; text-overflow: ellipsis; }.room-session-content > a:hover { color: var(--session-color); }.room-session-speakers { min-width: 0; display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 8px; }.room-session-speakers > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.speaker-mini-stack { display: flex; flex: 0 0 auto; padding-left: 4px; }.speaker-mini-stack span { width: 21px; height: 21px; display: grid; place-items: center; margin-left: -4px; border: 2px solid var(--surface); border-radius: 50%; color: var(--session-color); background: var(--session-soft); font-size: 7px; font-weight: 800; }.room-session-speakers .no-speaker { font-style: italic; }.room-session-empty { display: flex; align-items: center; gap: 10px; padding: 15px; border: 1px dashed var(--line); border-radius: 9px; color: var(--muted); background: var(--soft-surface); }.room-session-empty > span { font-size: 18px; }.room-session-empty div { display: grid; gap: 2px; }.room-session-empty strong { color: var(--text); font-size: 10px; }.room-session-empty small { font-size: 8px; }
.range-switch { align-self: flex-end; }.usage-panel { margin-top: 16px; }.usage-list { display: grid; gap: 19px; padding: 5px 22px 24px; }.usage-list > div { display: grid; grid-template-columns: 150px 1fr 40px; gap: 18px; align-items: center; }.usage-list > div > span { display: flex; flex-direction: column; }.usage-list strong { font-size: 10px; }.usage-list small { margin-top: 3px; color: var(--muted); font-size: 8px; }.usage-list .progress-track { margin: 0; }.usage-list > div > b { color: var(--muted); font-size: 9px; }
.builder-filterbar { min-height: 50px; display: flex; gap: 15px; align-items: center; padding: 7px 16px; border-bottom: 1px solid #e3e1e7; background: #f6f4fa; }.builder-filterbar label { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 9px; }.builder-filterbar select { width: 130px; min-height: 32px; padding: 4px 8px; }.builder-filterbar > span { margin-left: auto; color: var(--muted); font-size: 9px; }.tool-button.active { border-color: #d8d3fa; color: var(--brand); background: #eeebff; }
.button.light.selected { background: #e9e5ff; color: #4f43ac; }.agenda-list.grid-view { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }.agenda-list.grid-view .agenda-time-group { grid-template-columns: 1fr; gap: 6px; }.agenda-list.grid-view .agenda-time { flex-direction: row; gap: 6px; padding: 0 4px; }.agenda-list.grid-view .agenda-time small { margin-top: 1px; }.agenda-list.grid-view .agenda-card { min-height: 210px; }.agenda-list.grid-view .agenda-footer { align-items: flex-start; flex-direction: column; gap: 10px; }.public-empty { grid-column: 1 / -1; border: 1px dashed #d8d3dc; border-radius: 12px; }
.public-section { margin-top: 85px; padding-top: 72px; border-top: 1px solid #e5e1e2; scroll-margin-top: 20px; }.public-people-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 25px; }.public-people-grid article { display: flex; gap: 12px; align-items: center; padding: 16px; border: 1px solid #e5e1e2; border-radius: 10px; background: white; }.public-people-grid article > div { min-width: 0; display: flex; flex-direction: column; gap: 4px; }.public-people-grid strong { overflow: hidden; font: 600 12px Georgia, serif; white-space: nowrap; text-overflow: ellipsis; }.public-people-grid small { color: #77727c; font-size: 8px; }.venue-section { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }.venue-section h2 { font: 600 28px Georgia, serif; }.venue-section p { max-width: 440px; color: #736f78; font-size: 11px; line-height: 1.6; }.venue-section > div:last-child { display: grid; gap: 8px; }.venue-section > div:last-child > span { display: flex; justify-content: space-between; padding: 13px 15px; border: 1px solid #e5e1e2; border-radius: 8px; background: white; }.venue-section strong { font-size: 10px; }.venue-section small { color: #77727c; font-size: 9px; }

.app-shell.theme-dark { --ink: #f1eff8; --text: #f1eff8; --muted: #aaa7b5; --line: #33313f; --canvas: #111119; --surface: #1c1b26; --soft-surface: #25232e; color-scheme: dark; }
.app-shell.theme-dark .main-surface, .app-shell.theme-dark .builder-page { background: var(--canvas); }.app-shell.theme-dark .panel, .app-shell.theme-dark .metric-card, .app-shell.theme-dark .session-strip article, .app-shell.theme-dark .builder-header, .app-shell.theme-dark .schedule-canvas, .app-shell.theme-dark .grid-header, .app-shell.theme-dark .time-column, .app-shell.theme-dark .room-lane, .app-shell.theme-dark .session-inspector { border-color: var(--line); background-color: var(--surface); }.app-shell.theme-dark .button.secondary, .app-shell.theme-dark .review-button, .app-shell.theme-dark .capacity-actions > button:not(.button) { border-color: #464351; color: #dfdce8; background: #252431; }.app-shell.theme-dark .builder-toolbar, .app-shell.theme-dark .builder-filterbar { border-color: var(--line); background: #171620; }.app-shell.theme-dark .calendar-session strong { color: #302d3a; }.app-shell.theme-dark .task-row, .app-shell.theme-dark .session-strip, .app-shell.theme-dark .check-list li { border-color: var(--line); }.app-shell.theme-dark .progress-track { background: #34313f; }
.public-page.theme-dark { --ink: #f2eff7; --muted: #aaa5b2; --line: #34303b; --surface: #211f28; color: var(--ink); background: #15131a; color-scheme: dark; }.public-page.theme-dark .public-content { color: var(--ink); }.public-page.theme-dark .agenda-card, .public-page.theme-dark .search-box, .public-page.theme-dark .filter-button, .public-page.theme-dark .view-switch, .public-page.theme-dark .public-people-grid article, .public-page.theme-dark .venue-section > div:last-child > span { border-color: #383440; background: #211f28; }.public-page.theme-dark .view-switch button.active { color: #f2eff7; background: #34303f; }.public-page.theme-dark .agenda-card h3, .public-page.theme-dark .speaker-stack strong, .public-page.theme-dark .public-people-grid strong, .public-page.theme-dark .venue-section h2 { color: #f3f0f8; }.public-page.theme-dark .agenda-card p, .public-page.theme-dark .agenda-footer, .public-page.theme-dark .venue-section p, .public-page.theme-dark .venue-section small { color: #aaa5b2; }.public-page.theme-dark .favorite { border-color: #494450; color: #d2ced8; background: #2c2934; }.public-page.theme-dark .public-section { border-color: #34303b; }.public-page.theme-dark .public-empty { border-color: #4a4552; }
.public-page.theme-dark .public-day-switch button, .public-page.theme-dark .public-schedule-grid, .public-page.theme-dark .public-grid-header, .public-page.theme-dark .public-room-timeline, .public-page.theme-dark .public-unscheduled, .public-page.theme-dark .public-zoom-controls { border-color: #383440; color: #d8d4df; background: #211f28; }.public-page.theme-dark .public-day-switch button strong, .public-page.theme-dark .public-room-timeline h3, .public-page.theme-dark .public-room-session h4, .public-page.theme-dark .public-room-session-time strong { color: #f3f0f8; }.public-page.theme-dark .public-day-switch button.active { border-color: #7467d5; background: #302b50; }.public-page.theme-dark .public-day-switch button.active strong { color: #d6d0ff; }.public-page.theme-dark .public-zoom-controls button { color: #cbc6d2; }.public-page.theme-dark .public-zoom-controls .zoom-fit.active { color: #d6d0ff; background: #302b50; }.public-page.theme-dark .public-grid-timezone, .public-page.theme-dark .public-grid-times { border-color: #383440; background: #1b1921; }.public-page.theme-dark .public-grid-room, .public-page.theme-dark .public-grid-lane { border-color: #383440; }.public-page.theme-dark .public-hour-line { background: #37333e; }.public-page.theme-dark .public-half-line { background: #2d2933; }.public-page.theme-dark .public-grid-session { border-color: color-mix(in srgb, var(--session-color) 35%, #292631); color: #302d3a; }.public-page.theme-dark .public-room-timeline > header, .public-page.theme-dark .public-room-session { border-color: #383440; }.public-page.theme-dark .public-room-session.support { background: color-mix(in srgb, var(--session-color) 10%, #211f28); }.public-page.theme-dark .public-room-session-copy p, .public-page.theme-dark .public-room-session-copy > span, .public-page.theme-dark .public-room-timeline > header p { color: #aaa5b2; }

@media (min-width: 761px) and (max-width: 1320px) {
  .session-inline-grid { grid-template-columns: repeat(3, minmax(140px, 1fr)); }.session-inline-grid .quick-title { grid-column: 1 / -1; }.bulk-edit-fields { grid-template-columns: repeat(3, minmax(140px, 1fr)); }.bulk-edit-fields > .button { grid-column: 1 / -1; justify-self: end; }
}

@media (max-width: 760px) {
  .form-grid, .compact-composer .form-grid, .people-grid, .room-grid, .public-people-grid, .venue-section, .agenda-list.grid-view { grid-template-columns: 1fr; }.list-toolbar { grid-template-columns: 1fr; }.data-row { grid-template-columns: 4px 1fr auto; padding: 12px 12px 12px 0; }.data-row .button { grid-column: 2 / -1; justify-self: end; }.bulk-edit-fields, .session-inline-grid { grid-template-columns: 1fr; }.bulk-selection-summary { flex-wrap: wrap; }.session-inline-editor { margin-left: 12px; }.inline-editor-actions { align-items: stretch; flex-direction: column; }.inline-editor-actions .button { width: 100%; }.person-card { grid-template-columns: auto 1fr; }.person-status { grid-column: 1 / -1; grid-template-columns: repeat(2, auto); justify-content: start; }.person-actions { grid-column: 1 / -1; }.usage-list > div { grid-template-columns: 100px 1fr 35px; gap: 8px; }.public-view-options, .public-title .view-switch { width: 100%; }.public-view-options { justify-items: stretch; }.public-title .view-switch button { flex: 1; }.public-zoom-controls { justify-content: center; }.public-day-switch { margin-top: 18px; }.public-grid-header, .public-grid-body { grid-template-columns: 58px repeat(var(--public-room-count), minmax(190px, 1fr)); }.public-grid-times time { right: 8px; }.public-room-session { grid-template-columns: 48px 10px minmax(0, 1fr) auto; }.public-room-session-copy > div { flex-wrap: wrap; }.public-tools.show-mobile-filters { grid-template-columns: 1fr; }.public-tools.show-mobile-filters .filter-button:not(.mobile-only) { display: block; min-height: 40px; }.builder-filterbar { align-items: stretch; flex-direction: column; }.builder-filterbar label { justify-content: space-between; }.builder-filterbar > span { margin-left: 0; }
}

/* Full management CRUD and public directories */
.public-hero nav a.button.light { min-height: 36px; padding: 0 16px; border-bottom: 0; color: #292735; background: white; }.public-page h1[tabindex="-1"]:focus { outline: none; }
.event-mini.static { grid-template-columns: auto 1fr; }
.button.danger { border-color: #f0b7ae; color: #b42318; background: #fff1ef; }.button.danger:hover { background: #ffe4e0; }.button.ghost { border-color: transparent; color: var(--muted); background: transparent; box-shadow: none; }.row-actions { display: flex; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.speaker-picker { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 12px; border: 1px solid #dddae4; border-radius: 8px; }.speaker-picker legend { padding: 0 5px; color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; }.speaker-picker label { display: flex; grid-auto-flow: column; align-items: center; gap: 6px; padding: 6px 9px; border-radius: 7px; background: #f4f2f8; cursor: pointer; }.speaker-picker input { width: auto; min-height: auto; margin: 0; }.speaker-picker span { font-size: 9px; }
.public-hero-compact { min-height: 330px; }.public-hero-compact .hero-content { padding-top: 48px; }.public-directory { min-height: 520px; }.public-speaker-directory { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 30px; }.public-speaker-card { min-height: 160px; display: flex; gap: 18px; align-items: flex-start; padding: 25px; border: 1px solid #e5e1e2; border-radius: 12px; background: white; box-shadow: 0 3px 12px rgb(36 27 55 / 4%); }.person-avatar.large { width: 64px; height: 64px; font-size: 16px; }.public-speaker-card h3 { margin: 4px 0 6px; font: 600 19px Georgia, serif; }.public-speaker-card p { margin-bottom: 18px; color: #6f6a74; font-size: 10px; }.public-speaker-card small { color: #8b8690; font-size: 9px; line-height: 1.45; }
.venue-overview { display: grid; grid-template-columns: 1.1fr 1fr; gap: 20px; margin-top: 30px; }.venue-address { display: flex; gap: 18px; padding: 28px; border-radius: 12px; color: white; background: linear-gradient(145deg, #27243e, #3e3861); }.venue-address > span { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; background: rgb(255 255 255 / 10%); font-size: 20px; }.venue-address h3 { margin: 2px 0 10px; font: 600 20px Georgia, serif; }.venue-address p { color: #bbb6c6; font-size: 10px; line-height: 1.65; }.venue-address a { color: #c6bdff; font-size: 9px; font-weight: 700; }.venue-facts { display: grid; gap: 8px; }.venue-facts > span { display: flex; flex-direction: column; justify-content: center; gap: 5px; padding: 15px 18px; border: 1px solid #e5e1e2; border-radius: 9px; background: white; }.venue-facts strong { font-size: 11px; }.venue-facts small { color: #77727c; font-size: 9px; }.public-room-directory { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }.public-room-directory article { display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 18px; border: 1px solid #e5e1e2; border-radius: 10px; background: white; }.room-symbol { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 8px; color: var(--brand); background: #eeebff; }.public-room-directory h3 { margin-bottom: 4px; font: 600 13px Georgia, serif; }.public-room-directory p { margin: 0; color: #77727c; font-size: 8px; }.public-room-directory > article > strong { color: #34303a; font-size: 16px; }.public-room-directory strong small { color: #8b8690; font-size: 8px; font-weight: 500; }
.app-shell.theme-dark .speaker-picker { border-color: #464351; }.app-shell.theme-dark .speaker-picker label { background: #272531; }.app-shell.theme-dark .button.danger { border-color: #71413d; color: #ffb4aa; background: #3a2323; }
.public-page.theme-dark .public-speaker-card, .public-page.theme-dark .venue-facts > span, .public-page.theme-dark .public-room-directory article { border-color: #383440; background: #211f28; }.public-page.theme-dark .public-speaker-card h3, .public-page.theme-dark .venue-facts strong, .public-page.theme-dark .public-room-directory h3, .public-page.theme-dark .public-room-directory > article > strong { color: #f3f0f8; }.public-page.theme-dark .public-speaker-card p, .public-page.theme-dark .public-speaker-card small, .public-page.theme-dark .venue-facts small, .public-page.theme-dark .public-room-directory p, .public-page.theme-dark .public-room-directory strong small { color: #aaa5b2; }

@media (max-width: 760px) {
  .public-speaker-directory, .venue-overview, .public-room-directory { grid-template-columns: 1fr; }.data-row .row-actions { grid-column: 2 / -1; }.row-actions { justify-content: flex-start; }.speaker-picker { align-items: flex-start; flex-direction: column; }
}

/* Authentication, event access, settings and integrations */
.button:disabled, button:disabled { opacity: .48; cursor: not-allowed; }
.delete-confirmation { display: flex; justify-content: flex-end; align-items: center; gap: 10px; margin: 16px 22px 0; padding: 14px; border: 1px solid #f0b7ae; border-radius: 9px; background: #fff7f5; }
.delete-confirmation > span { display: flex; flex-direction: column; gap: 3px; margin-right: auto; }.delete-confirmation strong { color: #9f2219; font-size: 11px; }.delete-confirmation small { color: #8f625d; font-size: 9px; }
.login-page { min-height: 100vh; display: grid; grid-template-columns: minmax(340px, .85fr) 1.15fr; background: white; }
.login-brand-panel { min-height: 100vh; display: flex; flex-direction: column; justify-content: space-between; padding: 52px; color: white; background: radial-gradient(circle at 80% 15%, #7566dd, transparent 28%), linear-gradient(145deg, #171623, #312b5a); }
.login-brand { display: flex; align-items: center; gap: 11px; width: fit-content; }.login-brand > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; background: #7163de; font-weight: 800; }.login-brand strong { font-size: 16px; }
.login-brand-panel h1 { margin-bottom: 18px; font-size: clamp(36px, 5vw, 64px); line-height: .98; letter-spacing: -.055em; }.login-brand-panel p { max-width: 480px; color: #bbb7cb; font-size: 14px; line-height: 1.6; }.login-brand-panel > small { color: #888393; font-size: 10px; }
.login-form-panel { display: grid; place-items: center; padding: 40px; }.login-card { width: min(540px, 100%); }.login-card h2 { margin-bottom: 9px; font-size: 30px; letter-spacing: -.035em; }.login-card > p { margin-bottom: 25px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.demo-accounts { display: grid; gap: 9px; }.demo-accounts > a { width: 100%; display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: center; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: white; color: inherit; text-decoration: none; text-align: left; cursor: pointer; transition: .15s; }.demo-accounts > a:hover { border-color: #a99ef1; box-shadow: 0 5px 18px rgb(58 45 126 / 9%); transform: translateY(-1px); }.demo-accounts > a > span:nth-child(2) { display: flex; flex-direction: column; gap: 3px; }.demo-accounts strong { font-size: 11px; }.demo-accounts small { color: var(--muted); font-size: 9px; }
.role-badge { display: inline-flex; width: fit-content; padding: 4px 7px; border-radius: 5px; font-size: 7px; font-style: normal; font-weight: 800; letter-spacing: .07em; }.role-badge.admin { color: #594ab5; background: #eeeaff; }.role-badge.assistant { color: #087f5b; background: #e6fcf5; }.role-badge.viewer { color: #52606d; background: #edf1f4; }
.permission-key { display: grid; gap: 6px; margin: 20px 0; padding: 15px; border-radius: 9px; background: #f8f7fa; }.permission-key span { color: var(--muted); font-size: 9px; }.permission-key b { display: inline-block; min-width: 70px; color: var(--ink); font-size: 8px; }.back-public { color: var(--brand); font-size: 10px; font-weight: 700; }
.access-banner { display: flex; gap: 13px; align-items: center; margin: -12px 0 20px; padding: 13px 16px; border: 1px solid #d8d3fa; border-radius: 9px; color: #4f43ac; background: #f4f2ff; }.access-banner strong { font-size: 10px; }.access-banner span { color: #6f6894; font-size: 9px; }
.permission-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-bottom: 18px; }.permission-summary article { display: grid; gap: 9px; padding: 18px; border: 1px solid var(--line); border-radius: 11px; background: white; }.permission-summary strong { font-size: 12px; }.permission-summary p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.45; }
.member-list { overflow: hidden; }.member-row { min-height: 72px; display: flex; gap: 12px; align-items: center; padding: 12px 20px; border-top: 1px solid var(--line); }.member-identity { min-width: 190px; display: flex; flex: 1; flex-direction: column; gap: 3px; }.member-identity strong { font-size: 11px; }.member-identity strong small { color: var(--brand); }.member-identity > small { color: var(--muted); font-size: 9px; }.member-row select { min-height: 34px; padding: 0 9px; border: 1px solid #dddae4; border-radius: 7px; background: var(--surface); font-size: 9px; }
.settings-card { max-width: 820px; padding-bottom: 20px; }.slug-input { display: flex; align-items: center; overflow: hidden; border: 1px solid #dddae4; border-radius: 8px; background: #f8f7fa; }.slug-input:focus-within { border-color: var(--brand); box-shadow: 0 0 0 3px rgb(102 87 217 / 10%); }.slug-input > span { padding-left: 12px; color: #898694; font-size: 10px; }.slug-input input { border: 0; box-shadow: none!important; background: transparent; }.form-grid label > small { color: var(--muted); font-size: 8px; }.url-preview { display: flex; flex-direction: column; gap: 5px; margin: 18px 22px 0; padding: 14px; border-radius: 8px; background: #f5f3fb; }.url-preview span { color: var(--muted); font-size: 8px; font-weight: 800; }.url-preview a { color: var(--brand); font-size: 11px; font-weight: 700; }.success-copy { color: #087f5b!important; }
.integration-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 16px; }.integration-card { padding: 22px; }.integration-heading { display: grid; grid-template-columns: auto 1fr auto; gap: 13px; align-items: center; }.provider-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; color: white; font-size: 17px; font-weight: 900; }.provider-mark.eventbrite { background: #f05537; }.provider-mark.sessionize { background: #1d72aa; }.integration-heading h2 { margin-bottom: 4px; font-size: 15px; }.integration-heading p { margin: 0; color: var(--muted); font-size: 9px; }
.integration-form { display: grid; gap: 12px; margin-top: 24px; }.integration-form label { display: grid; gap: 6px; }.integration-form label > span { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }.integration-form input { min-height: 40px; padding: 9px 11px; border: 1px solid #dddae4; border-radius: 8px; background: var(--surface); font-size: 10px; }.integration-form .button { justify-self: end; }
.oauth-connect-copy, .oauth-connected-note { display: flex; flex-direction: column; gap: 5px; padding: 14px; border: 1px solid #ded9fa; border-radius: 9px; background: #f6f4ff; }.oauth-connect-copy strong, .oauth-connected-note strong { color: #5143bd; font-size: 10px; }.oauth-connect-copy span, .oauth-connected-note span { color: #736d91; font-size: 9px; line-height: 1.5; }.oauth-connected-note { margin-top: 16px; border-color: #bfeadb; background: #effbf7; }.oauth-connected-note strong { color: #087f5b; }.oauth-connected-note span { color: #57776d; }.access-note { padding: 11px; border-radius: 8px; color: #7a718c; background: #f5f3f7; font-size: 9px; }
.inline-confirmation { display: flex; align-items: center; gap: 8px; margin-top: 14px; padding: 12px; border: 1px solid #f0b7ae; border-radius: 9px; background: #fff7f5; }.inline-confirmation > span { display: flex; flex: 1; flex-direction: column; gap: 3px; }.inline-confirmation strong { color: #9f2219; font-size: 9px; }.inline-confirmation small { color: #8f625d; font-size: 8px; }
.connection-details { display: grid; grid-template-columns: 1fr auto; gap: 15px; margin-top: 24px; padding: 13px; border-radius: 8px; background: #f8f7fa; }.connection-details > span { min-width: 0; display: flex; flex-direction: column; gap: 4px; }.connection-details small { color: var(--muted); font-size: 7px; font-weight: 800; }.connection-details strong { overflow: hidden; font-size: 9px; white-space: nowrap; text-overflow: ellipsis; }.import-counts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 12px; }.import-counts > a { display: flex; flex-direction: column; padding: 11px; border: 1px solid var(--line); border-radius: 8px; color: inherit; text-decoration: none; }.import-counts > a:hover { border-color: var(--accent); background: var(--accent-soft); }.import-counts strong { font-size: 18px; }.import-counts small { color: var(--muted); font-size: 8px; }.sync-toggle { display: flex; gap: 9px; align-items: flex-start; margin-top: 17px; cursor: pointer; }.sync-toggle > span { display: flex; flex-direction: column; gap: 2px; }.sync-toggle strong { font-size: 9px; }.sync-toggle small { color: var(--muted); font-size: 8px; }.integration-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
.registration-count { display: flex; flex-direction: column; gap: 3px; margin-top: 12px; padding: 14px; border: 1px solid #ffd2c8; border-radius: 8px; background: #fff6f3; }.registration-count strong { color: #c43d24; font-size: 24px; }.registration-count small { color: var(--muted); font-size: 8px; font-weight: 700; }.integration-form.compact { margin-top: 16px; }
.sync-history { overflow: hidden; }.mapping-list { display: grid; }.mapping-list > span { display: grid; grid-template-columns: 100px 1fr 1.5fr; gap: 20px; align-items: center; min-height: 65px; padding: 12px 22px; border-top: 1px solid var(--line); }.mapping-list b { color: var(--brand); font-size: 10px; }.mapping-list strong { font-size: 10px; }.mapping-list small { color: var(--muted); font-size: 8px; line-height: 1.45; }
.app-shell.theme-dark .delete-confirmation { border-color: #71413d; background: #302020; }.app-shell.theme-dark .permission-summary article, .app-shell.theme-dark .demo-accounts > a { background: var(--surface); }.app-shell.theme-dark .permission-key, .app-shell.theme-dark .connection-details, .app-shell.theme-dark .url-preview { background: #272531; }.app-shell.theme-dark .slug-input { border-color: #464351; background: #272531; }

@media (max-width: 760px) {
  .login-page { grid-template-columns: 1fr; }.login-brand-panel { min-height: 280px; padding: 30px; }.login-brand-panel h1 { font-size: 39px; }.login-brand-panel > small { display: none; }.login-form-panel { padding: 35px 20px 60px; }.permission-summary, .integration-grid { grid-template-columns: 1fr; }.member-row { align-items: flex-start; flex-wrap: wrap; }.member-identity { min-width: calc(100% - 55px); }.delete-confirmation { align-items: stretch; flex-direction: column; }.mapping-list > span { grid-template-columns: 1fr; gap: 6px; }.category-editor { align-items: stretch; flex-direction: column; }.category-editor .color-field { flex-basis: auto; }.category-row { grid-template-columns: 14px 1fr auto; }.category-row .button { grid-column: 2 / -1; justify-self: end; }
}

/* Room workload overview and schedule dialog */
.room-composer { margin-bottom: 18px; }
.room-form-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.room-form-grid .room-color-field { max-width: 110px; }
.room-form-grid .room-color-field input { width: 100%; min-height: 39px; padding: 4px; cursor: pointer; }
.room-concurrency-field { grid-column: 1 / -1; display: flex !important; flex-direction: row !important; align-items: flex-start; gap: 9px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--soft-surface); cursor: pointer; }.room-concurrency-field input { width: 15px; height: 15px; margin-top: 1px; }.room-concurrency-field > span { display: grid; gap: 3px; }.room-concurrency-field strong { font-size: 9px; }.room-concurrency-field small { color: var(--muted); font-size: 8px; }
.room-daily-names { grid-column: 1 / -1; display: grid; gap: 11px; padding: 14px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft-surface); }.room-daily-names > div:first-child { display: grid; gap: 3px; }.room-daily-names strong { font-size: 10px; }.room-daily-names small { color: var(--muted); font-size: 8px; line-height: 1.45; }.room-daily-name-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 9px; }.room-daily-name-grid label { min-width: 0; }.room-day-labels { position: relative; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 15px; }.room-day-labels span { display: inline-flex; gap: 6px; align-items: center; min-width: 0; padding: 5px 8px; border: 1px solid color-mix(in srgb, var(--room-color) 18%, var(--line)); border-radius: 999px; color: var(--muted); background: color-mix(in srgb, var(--room-color) 6%, var(--surface)); font-size: 8px; }.room-day-labels b { color: var(--room-color); font-size: 7px; text-transform: uppercase; }.room-modal-body .room-schedule-date > div { display: grid; gap: 2px; }.room-modal-body .room-schedule-date small { color: var(--room-color); font-size: 8px; font-weight: 700; }
.room-day-setting { display: grid; gap: 9px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); transition: opacity .15s, border-color .15s; }.room-day-setting.disabled { opacity: .62; border-style: dashed; }.room-day-availability { display: flex !important; flex-direction: row !important; gap: 8px; align-items: flex-start; cursor: pointer; }.room-day-availability input { width: 15px; height: 15px; margin-top: 1px; }.room-day-availability > span { display: grid; gap: 2px; }.room-day-availability strong { font-size: 9px; }.room-day-labels span.disabled { border-style: dashed; opacity: .62; }.room-day-labels span.disabled b { color: var(--muted); }
.room-composer { scroll-margin-top: 18px; }
.billing-status-grid { margin-top: 14px; }.billing-options-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }.billing-option { min-width: 0; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; padding: 18px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft-surface); }.billing-option h2 { margin: 4px 0 6px; font-size: 14px; }.billing-option p { margin: 0; color: var(--muted); font-size: 9px; line-height: 1.55; }.billing-option form { display: flex; }.billing-option form .button { width: 100%; justify-content: center; }
.room-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.room-summary-card { position: relative; overflow: hidden; padding: 22px; border-top: 3px solid var(--room-color); transition: border-color .18s, box-shadow .18s, transform .18s; }
.room-summary-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 92px; pointer-events: none; background: linear-gradient(180deg, color-mix(in srgb, var(--room-color) 7%, transparent), transparent); }
.room-summary-card:hover { border-color: color-mix(in srgb, var(--room-color) 65%, var(--line)); box-shadow: 0 12px 28px rgb(28 23 50 / 8%); transform: translateY(-2px); }
.room-summary-heading { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.room-summary-heading h2 { margin: 0 0 4px; overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.room-summary-heading p { margin: 0; overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.room-summary-mark { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 11px; background: color-mix(in srgb, var(--room-color) 12%, var(--surface)); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--room-color) 18%, transparent); }
.room-summary-mark i { width: 14px; height: 14px; border: 3px solid var(--room-color); border-radius: 4px; box-shadow: 5px 5px 0 -2px color-mix(in srgb, var(--room-color) 30%, transparent); }
.room-summary-metrics { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 27px 0 22px; }
.room-summary-metrics > div { display: flex; flex-direction: column; gap: 3px; }
.room-summary-metrics > div + div { padding-left: 20px; border-left: 1px solid var(--line); }
.room-summary-metrics strong { font-size: 28px; line-height: 1; letter-spacing: -.04em; }
.room-summary-metrics span { color: var(--muted); font-size: 8px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.room-utilization { display: grid; gap: 9px; }
.room-utilization-copy, .room-capacity-copy { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.room-utilization-copy span, .room-capacity-copy span, .room-capacity-copy small { color: var(--muted); font-size: 8px; }
.room-utilization-copy strong { font-size: 8px; }
.room-utilization-copy strong.available, .room-modal-overview strong.available { color: #087f5b; }
.room-utilization-copy strong.near-full, .room-modal-overview strong.near-full { color: #a15c00; }
.room-utilization-copy strong.full, .room-modal-overview strong.full { color: var(--room-color); }
.room-utilization-copy strong.over, .room-modal-overview strong.over { color: #c92a2a; }
.room-utilization-track { height: 8px; overflow: hidden; border-radius: 999px; background: color-mix(in srgb, var(--room-color) 9%, var(--soft-surface)); box-shadow: inset 0 1px 2px rgb(30 25 50 / 5%); }
.room-utilization-track span { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, color-mix(in srgb, var(--room-color) 75%, white), var(--room-color)); transition: width .25s ease; }
.room-capacity-copy small { padding: 3px 7px; border-radius: 999px; background: var(--soft-surface); font-weight: 700; }
.room-summary-actions { display: flex; align-items: center; gap: 7px; margin: 22px -22px -22px; padding: 13px 22px; border-top: 1px solid var(--line); background: color-mix(in srgb, var(--soft-surface) 55%, transparent); }
.room-detail-button { flex: 1; justify-content: space-between; border-color: color-mix(in srgb, var(--room-color) 24%, var(--line)); color: var(--text); background: var(--surface); }
.room-detail-button b { color: var(--room-color); font-size: 14px; }
.room-summary-actions .button.ghost { margin-left: auto; }
.room-empty-state { display: flex; align-items: center; gap: 16px; padding: 28px; }
.room-empty-state > span { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px; color: var(--brand); background: var(--accent-soft); font-size: 20px; }
.room-empty-state div { flex: 1; }.room-empty-state h2 { margin-bottom: 4px; font-size: 14px; }.room-empty-state p { margin: 0; color: var(--muted); font-size: 9px; }
.room-modal-backdrop { position: fixed; z-index: 500; inset: 0; display: grid; place-items: center; padding: 24px; background: rgb(18 16 27 / 58%); backdrop-filter: blur(5px); animation: room-backdrop-in .16s ease-out; }
.room-modal { width: min(760px, 100%); max-height: min(820px, calc(100vh - 48px)); display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; overflow: hidden; border: 1px solid color-mix(in srgb, var(--room-color) 22%, var(--line)); border-radius: 16px; background: var(--surface); box-shadow: 0 28px 80px rgb(12 9 24 / 32%); animation: room-modal-in .18s ease-out; }
.room-modal-header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 22px 24px; border-bottom: 1px solid var(--line); background: linear-gradient(135deg, color-mix(in srgb, var(--room-color) 9%, var(--surface)), var(--surface) 58%); }
.room-modal-header .eyebrow { display: block; margin-bottom: 4px; color: var(--room-color); font-size: 7px; }
.room-modal-header h2 { margin: 0 0 4px; font-size: 20px; letter-spacing: -.025em; }
.room-modal-header p { margin: 0; color: var(--muted); font-size: 9px; }
.room-modal-close { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); background: var(--surface); font-size: 20px; cursor: pointer; }
.room-modal-close:hover { border-color: var(--room-color); color: var(--room-color); }
.room-modal-overview { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; padding: 15px 24px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--soft-surface) 72%, transparent); }
.room-modal-overview > div { display: grid; gap: 5px; padding: 3px 16px; border-left: 1px solid var(--line); }
.room-modal-overview > div:first-child { padding-left: 0; border-left: 0; }
.room-modal-overview small { color: var(--muted); font-size: 7px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.room-modal-overview strong { font-size: 16px; }
.room-modal-body { min-height: 180px; overflow-y: auto; padding: 20px 24px 24px; }
.room-modal-body .room-schedule-day + .room-schedule-day { margin-top: 22px; }
.room-modal-body .room-schedule-date { margin-bottom: 9px; }
.room-modal-session-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.room-modal-session-list .room-session-item { min-height: 90px; grid-template-columns: 68px 14px minmax(0, 1fr); padding: 13px 15px 13px 12px; }
.room-modal-session-list .room-session-content > a { font-size: 12px; }
.room-modal-empty { margin-top: 8px; padding: 26px; }
.room-modal-footer { display: flex; align-items: center; gap: 9px; padding: 14px 24px; border-top: 1px solid var(--line); background: var(--soft-surface); }
.room-modal-footer > span { flex: 1; color: var(--muted); font-size: 8px; }
@keyframes room-backdrop-in { from { opacity: 0; } }
@keyframes room-modal-in { from { opacity: 0; transform: translateY(10px) scale(.985); } }
.app-shell.theme-dark .room-summary-card::before { opacity: .55; }
.app-shell.theme-dark .room-modal-backdrop { background: rgb(4 3 8 / 72%); }
.app-shell.theme-dark .room-modal, .app-shell.theme-dark .room-modal-close, .app-shell.theme-dark .room-detail-button { background: var(--surface); }

@media (max-width: 980px) {
  .room-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .billing-options-grid, .room-summary-grid, .room-form-grid { grid-template-columns: 1fr; }
  .room-form-grid .room-color-field { max-width: none; }
  .room-modal-backdrop { align-items: end; padding: 0; }
  .room-modal { width: 100%; max-height: 92vh; border-radius: 16px 16px 0 0; }
  .room-modal-header { padding: 18px; }.room-modal-overview { grid-template-columns: repeat(2, 1fr); padding: 12px 18px; }.room-modal-overview > div:nth-child(3) { padding-left: 0; border-left: 0; }.room-modal-overview > div:nth-child(n+3) { margin-top: 10px; }
  .room-modal-body { padding: 17px 18px 22px; }.room-modal-footer { padding: 12px 18px; }.room-modal-footer > span { display: none; }
}

/* Consolidated JSON / CSV session import */
.provider-mark.file { color: #45389f; background: linear-gradient(145deg, #e7e2ff, #cfc5ff); }
.file-import-card { margin-bottom: 16px; padding: 22px; }
.file-import-heading { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 13px; align-items: center; }
.file-import-heading .eyebrow { margin-bottom: 3px; font-size: 7px; }.file-import-heading h2 { margin: 0 0 4px; font-size: 15px; }.file-import-heading p { margin: 0; color: var(--muted); font-size: 9px; }
.file-import-rules { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin-top: 20px; }
.file-import-rules > span { display: grid; gap: 4px; padding: 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--soft-surface); }.file-import-rules b { font-size: 9px; }.file-import-rules small { color: var(--muted); font-size: 8px; line-height: 1.45; }
.file-import-format { display: grid; grid-template-columns: auto 1fr; gap: 8px 14px; margin-top: 14px; padding: 14px; border: 1px solid #ded9fa; border-radius: 9px; background: #f8f7ff; }
.file-import-format > div:not(.file-template-actions) { display: contents; }.file-import-format strong { color: #5143bd; font-size: 8px; }.file-import-format code { color: #575266; font-size: 8px; white-space: normal; }.file-import-format p { grid-column: 1 / -1; margin: 3px 0 0; color: #726c80; font-size: 8px; line-height: 1.55; }.file-import-format p code { padding: 1px 4px; border-radius: 4px; background: #ebe7fb; }
.file-template-actions { grid-column: 1 / -1; display: flex; gap: 14px; margin-top: 3px; }.file-template-actions a { color: var(--brand); font-size: 8px; font-weight: 800; text-decoration: none; }.file-template-actions a:hover { text-decoration: underline; }
.file-import-picker { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: stretch; margin-top: 14px; }.file-import-picker > .button { min-width: 145px; }
.file-drop-zone { position: relative; min-height: 62px; display: flex; align-items: center; gap: 12px; padding: 11px 14px; overflow: hidden; border: 1px dashed #aaa0e8; border-radius: 10px; background: color-mix(in srgb, var(--accent-soft) 48%, var(--surface)); cursor: pointer; transition: .15s; }.file-drop-zone:hover { border-color: var(--brand); background: var(--accent-soft); }.file-drop-zone input[type=file] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }.file-drop-icon { width: 35px; height: 35px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 9px; color: var(--brand); background: var(--surface); box-shadow: 0 2px 8px rgb(40 29 95 / 9%); font-size: 17px; }.file-drop-zone > span:last-child { min-width: 0; display: grid; gap: 4px; }.file-drop-zone strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.file-drop-zone small { color: var(--muted); font-size: 8px; }
.file-import-result { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: start; margin-top: 14px; padding: 14px; border: 1px solid; border-radius: 9px; }.file-import-result > span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; font-size: 11px; font-weight: 900; }.file-import-result > div { display: grid; gap: 4px; }.file-import-result strong { font-size: 10px; }.file-import-result p { margin: 0; font-size: 8px; line-height: 1.45; }.file-import-result small { font-size: 8px; }.file-import-result ul { display: grid; gap: 3px; margin: 3px 0 0; padding-left: 16px; font-size: 8px; line-height: 1.45; }
.file-import-result.success { border-color: #bde8d8; color: #176b50; background: #f0fbf7; }.file-import-result.success > span { color: #087f5b; background: #d9f5eb; }.file-import-result.success p, .file-import-result.success small { color: #5c7b70; }.file-import-result.error { border-color: #f0b7ae; color: #9f2219; background: #fff7f5; }.file-import-result.error > span { color: #b42318; background: #ffe2de; }.file-import-result.error p, .file-import-result.error small, .file-import-result.error li { color: #8f625d; }
.file-import-result.warning { border-color: #f0cf8d; color: #7a4c00; background: #fffaf0; }.file-import-result.warning > span { color: #8a5700; background: #ffedc2; }.file-import-result.warning p, .file-import-result.warning small, .file-import-result.warning li { color: #795f32; }
.app-shell.theme-dark .file-import-format { border-color: #494260; background: #282533; }.app-shell.theme-dark .file-import-format code, .app-shell.theme-dark .file-import-format p { color: #b8b1c4; }.app-shell.theme-dark .file-import-format p code { background: #363145; }.app-shell.theme-dark .file-import-result.success { border-color: #315c4e; background: #1e302b; }.app-shell.theme-dark .file-import-result.warning { border-color: #6f5930; background: #30291c; }.app-shell.theme-dark .file-import-result.error { border-color: #71413d; background: #302020; }
@media (max-width: 760px) {
  .file-import-heading { grid-template-columns: auto 1fr; }.file-import-heading > .status-pill { grid-column: 2; justify-self: start; }.file-import-rules, .file-import-picker { grid-template-columns: 1fr; }.file-import-result { grid-template-columns: auto 1fr; }.file-import-result > .button { grid-column: 2; justify-self: start; }.file-import-format { grid-template-columns: 1fr; }.file-import-format > div:not(.file-template-actions) { display: grid; gap: 3px; }.file-import-format p, .file-template-actions { grid-column: auto; }
}

/* Public speaker programme */
.public-speaker-card { min-width: 0; display: flex; flex-direction: column; gap: 18px; align-items: stretch; }
.public-speaker-identity { display: flex; gap: 16px; align-items: center; }
.public-speaker-identity > div { min-width: 0; }.public-speaker-identity h3 { margin-top: 0; }.public-speaker-identity p { margin: 0; }
.speaker-session-list { display: grid; gap: 8px; padding-top: 14px; border-top: 1px solid #ece9ee; }
.speaker-session-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 11px 12px; border-radius: 9px; background: #f7f5fa; }
.speaker-session-row > div { min-width: 0; display: grid; gap: 5px; }.speaker-session-row strong { overflow: hidden; color: #2d2934; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }.speaker-session-row span { color: #797381; font-size: 8px; }
.speaker-programme-empty { margin: 0; padding-top: 12px; border-top: 1px solid #ece9ee; color: #8b8690!important; font-size: 9px!important; }
.favorite-button { width: 31px; height: 31px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid #dcd7e4; border-radius: 8px; color: #6258b7; background: white; cursor: pointer; font-size: 15px; font-weight: 800; transition: .15s ease; }.favorite-button:hover { border-color: #8175de; transform: translateY(-1px); }.favorite-button.selected { border-color: #6657d9; color: white; background: #6657d9; }
.public-page.theme-dark .speaker-session-list, .public-page.theme-dark .speaker-programme-empty { border-color: #3a3642; }.public-page.theme-dark .speaker-session-row { background: #2b2832; }.public-page.theme-dark .speaker-session-row strong { color: #f3f0f8; }.public-page.theme-dark .speaker-session-row span { color: #aaa5b2; }.public-page.theme-dark .favorite-button { border-color: #494451; background: #211f28; }

/* Configured public organizer */
.venue-overview { align-items: stretch; }
.public-organizer-card { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; align-items: start; padding: 24px; border: 1px solid #e5e1e2; border-radius: 12px; background: white; }
.organizer-avatar { width: 48px; height: 48px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 14px; color: white; background: linear-gradient(145deg, #6657d9, #493caa); font-size: 13px; font-weight: 800; letter-spacing: .04em; }
.public-organizer-card > div { min-width: 0; display: grid; gap: 7px; }.public-organizer-card small { color: #827a9a; font-size: 7px; font-weight: 900; letter-spacing: .13em; }.public-organizer-card h3 { margin: 0; font: 600 18px Georgia, serif; }.public-organizer-card p { margin: 0; color: #676170; font-size: 9px; }.public-organizer-card span:not(.organizer-avatar) { color: #78727f; font-size: 9px; line-height: 1.6; }.public-organizer-card a { color: #6657d9; font-size: 9px; font-weight: 800; }
.public-page.theme-dark .public-organizer-card { border-color: #383440; background: #211f28; }.public-page.theme-dark .public-organizer-card h3 { color: #f3f0f8; }.public-page.theme-dark .public-organizer-card p, .public-page.theme-dark .public-organizer-card span:not(.organizer-avatar) { color: #aaa5b2; }
.public-organizer-byline { display: block; margin-top: 18px; color: #c8c2d2; font-size: 9px; }.public-organizer-byline strong { color: white; }

/* Logged-out landing */
.landing-page { min-height: 100vh; color: #211e2b; background: #fbfafc; }
.landing-nav { width: min(1180px, calc(100% - 48px)); min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 0 auto; }.landing-nav > div { display: flex; align-items: center; gap: 24px; }.landing-nav > div > a:not(.button) { color: #5f5a67; font-size: 10px; font-weight: 700; text-decoration: none; }
.landing-brand { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }.landing-brand > span { width: 33px; height: 33px; display: grid; place-items: center; border-radius: 10px; color: white; background: #6657d9; font: 700 17px Georgia, serif; }.landing-brand strong { font: 700 17px Georgia, serif; }
.landing-hero { width: min(1180px, calc(100% - 48px)); min-height: 630px; display: grid; grid-template-columns: .88fr 1.12fr; gap: 64px; align-items: center; margin: 0 auto; padding: 64px 0 90px; }.landing-hero-copy h1 { max-width: 640px; margin: 15px 0 22px; font: 600 clamp(44px, 5vw, 72px)/.98 Georgia, serif; letter-spacing: -.045em; }.landing-hero-copy > p { max-width: 560px; margin: 0; color: #6d6775; font-size: 14px; line-height: 1.75; }.landing-hero-copy > small { display: block; margin-top: 18px; color: #8b8690; font-size: 9px; }.landing-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.landing-product-preview { min-width: 0; overflow: hidden; border: 1px solid #dfd9eb; border-radius: 20px; background: white; box-shadow: 0 28px 70px rgb(46 31 92 / 17%); transform: rotate(1deg); }.preview-toolbar { height: 48px; display: flex; align-items: center; gap: 6px; padding: 0 16px; border-bottom: 1px solid #ebe7ef; background: #f8f6fb; }.preview-toolbar > span { width: 7px; height: 7px; border-radius: 50%; background: #cbc5d4; }.preview-toolbar strong { margin-left: auto; color: #746d80; font-size: 8px; text-transform: uppercase; letter-spacing: .12em; }
.preview-grid { min-height: 410px; display: grid; grid-template-columns: 50px repeat(3, minmax(125px, 1fr)); padding: 20px; background-image: linear-gradient(#f0edf3 1px, transparent 1px); background-size: 100% 72px; }.preview-grid aside { display: grid; align-content: space-around; padding: 20px 8px 5px 0; color: #918b98; font-size: 7px; }.preview-grid section { min-width: 0; padding: 0 7px; border-left: 1px solid #e7e3ea; }.preview-grid h3 { margin: 0 0 18px; color: #5a5560; font-size: 8px; text-align: center; }.preview-grid article { display: grid; gap: 8px; margin-bottom: 10px; padding: 13px; border-left: 3px solid; border-radius: 7px; font-size: 9px; font-weight: 800; }.preview-grid article small { font-size: 7px; font-weight: 600; opacity: .68; }.preview-grid .purple { border-color: #6657d9; color: #4d43a2; background: #eeebff; }.preview-grid .green { border-color: #087f5b; color: #086348; background: #e6fcf5; }.preview-grid .blue { min-height: 120px; border-color: #1971c2; color: #155d9c; background: #e7f5ff; }.preview-grid .amber { border-color: #d9480f; color: #9e390d; background: #fff4e6; }.preview-grid .rose { min-height: 210px; border-color: #c2255c; color: #922044; background: #fff0f6; }
.landing-section { width: min(1180px, calc(100% - 48px)); margin: 0 auto; padding: 90px 0; }.landing-section-heading { max-width: 690px; }.landing-section-heading h2 { margin: 13px 0 0; font: 600 clamp(32px, 4vw, 50px)/1.04 Georgia, serif; letter-spacing: -.03em; }.landing-feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 44px; }.landing-feature-grid article { min-height: 220px; padding: 28px; border: 1px solid #e4dfe9; border-radius: 15px; background: white; }.landing-feature-grid article > span { color: #6657d9; font-size: 9px; font-weight: 900; }.landing-feature-grid h3 { margin: 45px 0 10px; font: 600 19px Georgia, serif; }.landing-feature-grid p { margin: 0; color: #77717d; font-size: 10px; line-height: 1.7; }
.landing-pricing { width: min(1180px, calc(100% - 48px)); display: grid; grid-template-columns: 1fr 330px; gap: 70px; align-items: center; padding: 65px; border-radius: 24px; color: white; background: linear-gradient(140deg, #211e38, #4a426f); }.landing-pricing h2 { margin: 13px 0; font: 600 40px/1.05 Georgia, serif; }.landing-pricing p { max-width: 600px; color: #c2bdca; font-size: 11px; line-height: 1.7; }.landing-price-card { display: grid; gap: 10px; padding: 28px; border: 1px solid rgb(255 255 255 / 13%); border-radius: 16px; background: rgb(255 255 255 / 8%); }.landing-price-card small { color: #d0caee; font-size: 7px; font-weight: 900; letter-spacing: .14em; }.landing-price-card strong { font: 600 28px Georgia, serif; }.landing-price-card span { color: #c5c0ce; font-size: 9px; }.landing-price-card .button { margin-top: 12px; justify-content: center; }
.landing-footer { width: min(1180px, calc(100% - 48px)); display: grid; grid-template-columns: 1fr auto auto; gap: 30px; align-items: center; margin: 90px auto 0; padding: 32px 0; border-top: 1px solid #e2dee6; }.landing-footer p, .landing-footer > a:last-child { color: #77717d; font-size: 9px; }.landing-footer > a:last-child { font-weight: 800; }

/* Account recovery and organizer profile */
.auth-simple-page { min-height: 100vh; display: grid; align-content: center; justify-items: center; gap: 24px; padding: 36px 20px; background: radial-gradient(circle at top, #f1edff, #f8f7fa 48%); }.auth-simple-card { width: min(480px, 100%); }.auth-simple-card h1 { margin: 9px 0 12px; font: 600 30px Georgia, serif; }.development-reset { display: grid; gap: 8px; margin-top: 14px; padding: 14px; border: 1px solid #d8d0ff; border-radius: 9px; background: #f4f1ff; }.development-reset strong { font-size: 9px; }.development-reset span { color: #6f6879; font-size: 8px; }.login-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-top: 15px; }.login-links a { color: var(--brand); font-size: 9px; font-weight: 800; }
.profile-page .settings-card { max-width: none; }.profile-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 18px; align-items: start; }.profile-form { display: grid; gap: 14px; padding: 0 22px; }.profile-form > label, .profile-form .form-grid label { display: grid; gap: 6px; }.profile-form label > span { color: var(--muted); font-size: 9px; font-weight: 700; text-transform: uppercase; }.profile-form input, .profile-form textarea { width: 100%; min-height: 40px; padding: 9px 11px; border: 1px solid #dddae4; border-radius: 8px; color: var(--ink); background: var(--surface); font: inherit; font-size: 11px; outline: none; }.profile-form textarea { min-height: 120px; resize: vertical; }.profile-form input:focus, .profile-form textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgb(102 87 217 / 10%); }.profile-form input:disabled { color: var(--muted); background: var(--soft-surface); }.profile-form .form-grid { padding: 0; }.profile-form .form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }.profile-form .form-actions { padding: 4px 0 0; }
.organizer-preview { display: grid; gap: 10px; justify-items: start; padding: 28px; border-radius: 14px; color: white; background: linear-gradient(145deg, #27243e, #4b446e); box-shadow: 0 14px 34px rgb(37 29 69 / 15%); }.organizer-preview .organizer-avatar { margin: 20px 0 8px; background: rgb(255 255 255 / 14%); }.organizer-preview h2 { margin: 0; font: 600 22px Georgia, serif; }.organizer-preview p { margin: 0; color: #c9c4d1; font-size: 9px; }.organizer-preview > small { margin-top: 8px; color: #c1bcc9; font-size: 9px; line-height: 1.65; }.organizer-preview a { margin-top: 8px; color: #d6d0ff; font-size: 9px; font-weight: 800; }

/* Billing: deliberately independent from generic settings grids */
.billing-welcome { max-width: 820px; display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: center; margin-bottom: 16px; padding: 17px 19px; border: 1px solid #cfc6ff; border-radius: 12px; background: #f1eeff; }.billing-welcome > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: white; background: #6657d9; font-weight: 900; }.billing-welcome strong { font-size: 11px; }.billing-welcome p { margin: 4px 0 0; color: #696275; font-size: 9px; line-height: 1.5; }
.settings-page .billing-options-grid { max-width: 820px; padding: 14px; }.billing-options-grid .billing-option { min-height: 245px; padding: 22px; background: linear-gradient(155deg, var(--surface), var(--soft-surface)); }.billing-options-grid .billing-option h2 { margin-top: 8px; font: 600 19px Georgia, serif; }.billing-options-grid .billing-option p { font-size: 10px; }.billing-status-grid article { min-height: 92px; display: grid; align-content: center; gap: 7px; }.billing-status-grid article span { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }.billing-status-grid article strong { overflow-wrap: anywhere; font-size: 18px; }
.app-shell.theme-dark .billing-welcome { border-color: #4d456a; background: #292536; }.app-shell.theme-dark .billing-welcome p { color: #aaa3b6; }

@media (max-width: 900px) {
  .landing-hero { grid-template-columns: 1fr; gap: 40px; }.landing-product-preview { transform: none; }.landing-feature-grid { grid-template-columns: 1fr; }.landing-feature-grid article { min-height: 170px; }.landing-feature-grid h3 { margin-top: 28px; }.landing-pricing { grid-template-columns: 1fr; padding: 42px; }.profile-layout { grid-template-columns: 1fr; }
}
@media (max-width: 650px) {
  .landing-nav { width: min(100% - 30px, 1180px); }.landing-nav > div > a:not(.button) { display: none; }.landing-nav > div { gap: 8px; }.landing-hero, .landing-section, .landing-pricing, .landing-footer { width: min(100% - 30px, 1180px); }.landing-hero { padding-top: 38px; }.landing-hero-copy h1 { font-size: 43px; }.preview-grid { overflow-x: auto; grid-template-columns: 45px repeat(3, 145px); }.landing-pricing { padding: 30px 24px; }.landing-footer { grid-template-columns: 1fr; }.profile-form .form-grid.two { grid-template-columns: 1fr; }.public-speaker-directory { grid-template-columns: 1fr; }
}

/* Production-shaped billing */
.billing-page { max-width: 1180px; }.billing-page .page-header { align-items: center; }.billing-release-badge { display: inline-flex; align-items: center; min-height: 31px; padding: 0 11px; border: 1px solid #d9d4ee; border-radius: 999px; color: #655a91; background: #f5f2ff; font-size: 8px; font-weight: 900; letter-spacing: .08em; white-space: nowrap; }
.billing-card, .billing-options-grid, .billing-preview-notice, .billing-welcome, .billing-page > .access-banner, .billing-page > .login-error, .billing-page > .login-success { width: 100%; max-width: none; margin-bottom: 18px; }
.billing-loading { min-height: 150px; display: grid; align-content: center; justify-items: center; gap: 12px; }.billing-loading > span { width: 26px; height: 26px; border: 3px solid #e4e0f6; border-top-color: var(--brand); border-radius: 50%; animation: billing-spin .8s linear infinite; }.billing-loading p { margin: 0; color: var(--muted); font-size: 10px; }
@keyframes billing-spin { to { transform: rotate(360deg); } }
.billing-preview-notice { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 13px; align-items: center; padding: 16px 18px; border: 1px solid #d7d0f4; border-radius: 11px; background: linear-gradient(135deg, #f7f5ff, #f0edff); }.billing-preview-notice > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; color: #6657d9; background: white; font-size: 16px; }.billing-preview-notice strong { font-size: 11px; }.billing-preview-notice p { margin: 4px 0 0; color: #6d6681; font-size: 9px; line-height: 1.45; }
.billing-overview-card { padding-bottom: 20px; }.billing-overview-card .panel-heading { padding-bottom: 9px; }
.billing-status-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 12px 20px 0; }.billing-status-grid article { min-width: 0; min-height: 104px; display: grid; align-content: center; gap: 7px; padding: 18px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft-surface); }.billing-status-grid article span { color: var(--muted); font-size: 8px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }.billing-status-grid article strong { overflow-wrap: anywhere; font-size: 20px; line-height: 1.15; }
.billing-options-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }.billing-options-grid .billing-option { min-height: 280px; display: flex; flex-direction: column; justify-content: space-between; gap: 22px; padding: 25px; border: 1px solid var(--line); border-radius: 13px; background: linear-gradient(150deg, var(--surface), var(--soft-surface)); box-shadow: 0 3px 12px rgb(34 29 63 / 4%); }.billing-options-grid .billing-option h2 { margin: 8px 0 9px; font: 600 21px/1.15 Georgia, serif; }.billing-options-grid .billing-option p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.65; }.billing-options-grid .billing-option form { display: flex; }.billing-options-grid .billing-option form .button { width: 100%; }
.billing-disabled-action { display: grid; gap: 4px; padding: 13px 14px; border: 1px dashed #d4cfdf; border-radius: 9px; background: rgb(255 255 255 / 62%); }.billing-disabled-action strong { color: #625d6d; font-size: 9px; }.billing-disabled-action span { color: #8a8491; font-size: 8px; }
.billing-portal-card { padding-bottom: 20px; }.billing-portal-card form { padding: 0 22px; }
.app-shell.theme-dark .billing-release-badge { border-color: #49435d; color: #c8bff1; background: #2a2637; }.app-shell.theme-dark .billing-preview-notice { border-color: #494260; background: linear-gradient(135deg, #282533, #24212e); }.app-shell.theme-dark .billing-preview-notice > span { background: #353044; }.app-shell.theme-dark .billing-preview-notice p { color: #aaa3b6; }.app-shell.theme-dark .billing-status-grid article, .app-shell.theme-dark .billing-options-grid .billing-option { border-color: var(--line); background: var(--soft-surface); }.app-shell.theme-dark .billing-disabled-action { border-color: #4a4652; background: #25232d; }.app-shell.theme-dark .billing-disabled-action strong { color: #d2ced9; }

/* Event-scoped collaborator editing */
.member-row.editing { align-items: flex-start; padding-top: 18px; padding-bottom: 18px; background: #faf9fd; }.member-inline-editor { min-width: 0; display: grid; grid-template-columns: minmax(160px, 1fr) minmax(220px, 1.35fr) auto; gap: 12px; align-items: end; flex: 1; }.member-inline-editor label { min-width: 0; display: grid; gap: 6px; }.member-inline-editor label > span { color: var(--muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }.member-inline-editor input { width: 100%; min-height: 36px; padding: 7px 9px; border: 1px solid #dcd8e4; border-radius: 7px; color: var(--ink); background: var(--surface); font-size: 10px; outline: none; }.member-inline-editor input:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgb(102 87 217 / 10%); }.member-inline-editor > div { display: flex; gap: 7px; }.member-feedback { padding: 11px 20px; border-top: 1px solid #ccebdd; color: #087f5b; background: #f0fbf6; font-size: 9px; font-weight: 700; }.member-feedback.error { border-color: #f1c5c0; color: #a12a21; background: #fff5f3; }.app-shell.theme-dark .member-row.editing { background: #24222c; }.app-shell.theme-dark .member-inline-editor input { border-color: #464351; }.app-shell.theme-dark .member-feedback { background: #20302b; }.app-shell.theme-dark .member-feedback.error { background: #322220; }

@media (min-width: 861px) {
  .member-inline-editor { grid-template-columns: minmax(130px, .75fr) minmax(180px, 1fr) minmax(180px, 1fr) auto; }
}
@media (max-width: 860px) {
  .billing-status-grid, .billing-options-grid { grid-template-columns: 1fr; }.member-inline-editor { grid-template-columns: 1fr; }.member-inline-editor > div { justify-content: flex-end; }
}
@media (max-width: 600px) {
  .billing-page .page-header { align-items: flex-start; }.billing-release-badge { white-space: normal; }.billing-status-grid { padding: 10px 14px 0; }.billing-options-grid .billing-option { min-height: 235px; padding: 20px; }.member-inline-editor > div { align-items: stretch; flex-direction: column-reverse; }.member-inline-editor .button { width: 100%; }
}
