:root[data-seed][data-seed-color-mode="light"] {
  --seed-color-bg-brand-solid: #0d6efd;
  --seed-color-bg-brand-solid-pressed: #0b5ed7;
  --seed-color-bg-brand-weak: #e7f1ff;
  --seed-color-fg-brand: #0d6efd;
  --seed-color-fg-brand-contrast: #084298;
  --seed-color-stroke-brand-weak: #9ec5fe;
  --seed-color-stroke-focus-ring: #86b7fe;
}

:root {
  --app-bg: var(--seed-color-bg-layer-basement, #f3f4f5);
  --surface: var(--seed-color-bg-layer-default, #ffffff);
  --surface-soft: var(--seed-color-bg-neutral-weak, #f3f4f5);
  --text: var(--seed-color-fg-neutral, #1a1c20);
  --muted: var(--seed-color-fg-neutral-subtle, #868b94);
  --line: var(--seed-color-stroke-neutral-weak, #dcdee3);
  --line-strong: var(--seed-color-stroke-neutral-muted, #b0b3ba);
  --accent: var(--seed-color-bg-brand-solid, #0d6efd);
  --accent-dark: var(--seed-color-fg-brand-contrast, #084298);
  --accent-soft: var(--seed-color-bg-brand-weak, #e7f1ff);
  --danger: var(--seed-color-fg-critical, #ca1d13);
  --success: var(--seed-color-fg-positive, #079171);
  --radius: var(--seed-radius-r3, 12px);
  --control-radius: var(--seed-radius-r2, 8px);
}

* { box-sizing: border-box; }
html { scroll-padding-top: 92px; }
body { margin: 0; background: var(--app-bg); color: var(--text); font-family: Pretendard, "Noto Sans KR", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { color: var(--seed-color-fg-brand, #0d6efd); }
.app-container { max-width: 1180px; }
.app-main { padding: 32px 0 64px; }
.app-nav { min-height: 64px; border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, .96); }
.navbar-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--text); font-size: var(--seed-font-size-t5, 1rem); font-weight: var(--seed-font-weight-bold, 700); }
.brand-mark { display: grid; width: 32px; height: 32px; place-items: center; border-radius: var(--seed-radius-r2, 8px); background: var(--accent); color: var(--seed-color-palette-static-white, #fff); font-size: var(--seed-font-size-t4, .875rem); }
.app-nav .nav-link { margin: 0 2px; padding: 8px 12px !important; border-radius: var(--control-radius); color: var(--seed-color-fg-neutral-muted, #555d6d); font-size: var(--seed-font-size-t4, .875rem); font-weight: var(--seed-font-weight-medium, 600); }
.app-nav .nav-link:hover, .app-nav .nav-link.active { background: var(--surface-soft); color: var(--text); }
.nav-account { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); }
.message-stack { margin-bottom: 20px; }
.message-stack .alert { border-color: var(--line); border-radius: var(--control-radius); }

.btn { border-radius: var(--control-radius); font-weight: 650; white-space: nowrap; }
.btn-primary { border-color: var(--accent); background: var(--accent); }
.btn-primary:hover, .btn-primary:focus { border-color: var(--seed-color-bg-brand-solid-pressed, #0b5ed7); background: var(--seed-color-bg-brand-solid-pressed, #0b5ed7); }
.btn-outline-primary { border-color: var(--seed-color-stroke-brand-weak, #9ec5fe); color: var(--accent-dark); }
.btn-outline-primary:hover { border-color: var(--accent); background: var(--accent); }
.seed-action-button { max-width: 100%; }
.form-control, .form-select { min-height: 44px; border-color: var(--line-strong); border-radius: var(--control-radius); background-color: var(--surface); color: var(--text); font-size: var(--seed-font-size-t4, .875rem); }
.form-control::placeholder { color: var(--seed-color-fg-placeholder, #b0b3ba); }
.form-control:focus, .form-select:focus { border-color: var(--seed-color-stroke-neutral-contrast, #555d6d); box-shadow: 0 0 0 2px var(--seed-color-stroke-focus-ring, #86b7fe); }
.seed-field__header { min-height: 20px; padding-inline: 0; }
.seed-field__footer { padding-inline: 0; }

.page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 24px; }
.page-header h1 { margin: 0; font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: var(--seed-font-weight-bold, 700); letter-spacing: -.035em; line-height: 1.2; }
.page-kicker { margin: 0 0 8px; color: var(--seed-color-fg-brand, #0d6efd); font-size: var(--seed-font-size-t2, .75rem); font-weight: var(--seed-font-weight-bold, 700); }
.page-description { max-width: 680px; margin: 8px 0 0; color: var(--muted); font-size: var(--seed-font-size-t5, 1rem); line-height: var(--seed-line-height-t5, 1.5); }
.back-link { display: inline-block; margin-bottom: 12px; color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); text-decoration: none; }
.back-link:hover { color: var(--text); }
.text-separator { padding: 0 5px; color: var(--line-strong); }

.surface-panel { border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); padding: 24px; }
.section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.section-heading h2, .aside-header h2 { margin: 0; font-size: var(--seed-font-size-t7, 1.25rem); font-weight: var(--seed-font-weight-bold, 700); letter-spacing: -.02em; }
.section-heading p { max-width: 660px; margin: 5px 0 0; color: var(--muted); font-size: var(--seed-font-size-t4, .875rem); line-height: var(--seed-line-height-t4, 1.4); }
.section-heading-actions { align-items: center; }
.form-grid { display: grid; gap: 18px; }
.form-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid-span-two { grid-column: span 2; }
.field-group { display: grid; gap: 8px; }
.field-group label { color: var(--text); font-size: var(--seed-font-size-t4, .875rem); font-weight: var(--seed-font-weight-medium, 600); }
.field-help { color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); line-height: 1.5; }
.field-error { color: var(--danger); font-size: var(--seed-font-size-t3, .8125rem); font-weight: var(--seed-font-weight-medium, 600); }

.create-page { width: min(980px, 100%); margin: 0 auto; }
.create-header { margin-bottom: 22px; }
.create-header h1 { margin: 0; font-size: clamp(1.8rem, 3vw, 2.35rem); font-weight: var(--seed-font-weight-bold, 700); letter-spacing: -.04em; }
.create-header p { max-width: 720px; margin: 9px 0 0; color: var(--muted); font-size: var(--seed-font-size-t5, 1rem); line-height: var(--seed-line-height-t5, 1.5); }
.create-flow { display: flex; gap: 24px; margin-bottom: 18px; overflow-x: auto; border-bottom: 1px solid var(--line); scrollbar-width: none; }
.create-flow::-webkit-scrollbar { display: none; }
.create-flow a { flex: 0 0 auto; padding: 11px 1px 12px; color: var(--muted); font-size: var(--seed-font-size-t4, .875rem); font-weight: var(--seed-font-weight-medium, 600); text-decoration: none; }
.create-flow a:hover, .create-flow a:focus { color: var(--text); }
.create-sections { display: grid; gap: 16px; }
.create-section { scroll-margin-top: 90px; }
.upload-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .85fr); gap: 20px; align-items: stretch; }
.upload-field { align-content: start; }
.image-preview { display: grid; min-height: 190px; overflow: hidden; place-items: center; border: 1px dashed var(--line-strong); border-radius: var(--control-radius); background: var(--surface-soft); color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); }
.image-preview img { width: 100%; height: 100%; max-height: 320px; object-fit: contain; }
.image-preview:not(.empty) { border-style: solid; background: var(--seed-color-bg-layer-fill, #f7f8f9); }
.banner-preview { min-height: 170px; aspect-ratio: 16 / 6; }
.inline-status { min-height: 22px; color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); font-weight: var(--seed-font-weight-medium, 600); line-height: 1.5; }
.inline-status.is-loading { color: var(--seed-color-fg-informative, #135fcd); }
.inline-status.is-success { color: var(--success); }
.inline-status.is-error { color: var(--danger); }
.raw-text-details { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 16px; }
.raw-text-details summary { color: var(--seed-color-fg-neutral-muted, #555d6d); cursor: pointer; font-size: var(--seed-font-size-t4, .875rem); font-weight: var(--seed-font-weight-medium, 600); }

.session-visibility-note { margin-bottom: 12px; border-left: 3px solid var(--accent); background: var(--accent-soft); padding: 12px 14px; color: var(--accent-dark); font-size: var(--seed-font-size-t3, .8125rem); line-height: 1.55; }
.schedule-summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 14px; border-radius: var(--control-radius); background: var(--surface-soft); padding: 13px 15px; }
.schedule-summary strong { font-size: var(--seed-font-size-t4, .875rem); }
.schedule-summary span { color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); }
.schedule-editor { display: grid; gap: 12px; }
.schedule-row { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.schedule-row-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); padding: 12px 16px; }
.schedule-row-head > div { display: flex; align-items: center; gap: 10px; }
.schedule-row-index { font-size: var(--seed-font-size-t4, .875rem); }
.schedule-row-duration { color: var(--muted); font-size: var(--seed-font-size-t2, .75rem); }
.schedule-row-duration.is-error { color: var(--danger); }
.schedule-remove { color: var(--danger); }
.session-config-grid { display: grid; grid-template-columns: minmax(240px, 1.4fr) minmax(150px, .75fr) minmax(140px, .7fr) minmax(140px, .7fr); gap: 14px; padding: 16px; background: var(--surface-soft); }
.presentation-section { padding: 16px; }
.presentation-section-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.presentation-section-head > div { display: flex; align-items: baseline; gap: 9px; }
.presentation-section-head strong { font-size: var(--seed-font-size-t4, .875rem); }
.presentation-count { color: var(--muted); font-size: var(--seed-font-size-t2, .75rem); }
.presentation-list { display: grid; gap: 10px; }
.presentation-row { display: grid; grid-template-columns: minmax(220px, 1.35fr) minmax(180px, .9fr) auto; gap: 12px; align-items: end; border-radius: var(--control-radius); background: var(--surface-soft); padding: 12px; }
.presentation-remove { margin-bottom: 5px; color: var(--danger); }
.create-submit-bar { display: flex; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid var(--line-strong); border-radius: var(--radius); background: var(--surface); padding: 16px 18px; }
.create-submit-bar div { display: grid; gap: 3px; }
.create-submit-bar span { color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); }

.list-header { align-items: center; }
.list-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); padding: 12px 14px; }
.list-filter { display: flex; align-items: center; gap: 10px; }
.list-filter select { width: min(280px, 50vw); }
.filter-reset { font-size: var(--seed-font-size-t3, .8125rem); text-decoration: none; }
.list-count { color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); }
.event-list { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.event-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 22px; align-items: center; padding: 16px; border-bottom: 1px solid var(--line); }
.event-row:last-child { border-bottom: 0; }
.event-row:hover { background: var(--seed-color-bg-layer-default-pressed, #f7f8f9); }
.event-main { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 15px; align-items: center; min-width: 0; color: var(--text); text-decoration: none; }
.event-thumb { display: grid; width: 92px; aspect-ratio: 16 / 9; overflow: hidden; place-items: center; border: 1px solid var(--line); border-radius: var(--control-radius); background: var(--surface-soft); }
.event-thumb img { width: 100%; height: 100%; object-fit: contain; }
.event-thumb span { color: var(--seed-color-fg-brand, #0d6efd); font-weight: var(--seed-font-weight-bold, 700); }
.event-copy { min-width: 0; }
.event-copy h2 { overflow: hidden; margin: 0 0 6px; font-size: var(--seed-font-size-t5, 1rem); font-weight: var(--seed-font-weight-bold, 700); text-overflow: ellipsis; white-space: nowrap; }
.event-meta { display: flex; flex-wrap: wrap; gap: 5px 12px; color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); }
.event-status { display: grid; gap: 5px; justify-items: start; }
.event-status > span:last-child { color: var(--muted); font-size: var(--seed-font-size-t2, .75rem); }
.event-actions { display: flex; gap: 8px; }

.empty-state { display: grid; gap: 12px; justify-items: center; padding: 54px 20px; color: var(--muted); text-align: center; }
.empty-state.compact { justify-items: start; margin: 0; padding: 18px; border: 1px dashed var(--line-strong); border-radius: var(--control-radius); background: var(--surface-soft); text-align: left; }

.workspace-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 9px; }
.metric-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.metric-strip div { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 20px; border-right: 1px solid var(--line); }
.metric-strip div:last-child { border-right: 0; }
.metric-strip span { color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); }
.metric-strip strong { font-size: var(--seed-font-size-t7, 1.25rem); }
.workspace-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; align-items: start; }
.workspace-main { display: grid; gap: 18px; }
.workspace-aside { display: grid; gap: 14px; position: sticky; top: 86px; }
.compact-panel { padding: 20px; }
.workspace-edit-panel { margin-bottom: 18px; }
.event-edit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; max-width: 820px; }
.event-banner-field { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 16px; align-items: center; }
.event-banner-field img { width: 160px; aspect-ratio: 16 / 6; border: 1px solid var(--line); border-radius: var(--control-radius); background: var(--surface-soft); object-fit: contain; }
.event-banner-field > div { display: grid; gap: 8px; }
.copy-field { display: flex; gap: 9px; }
.copy-field input { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: var(--seed-font-size-t3, .8125rem); }
.add-schedule-panel { margin: -2px 0 20px; border-radius: var(--control-radius); background: var(--accent-soft); padding: 18px; }
.session-list { display: grid; }
.session-item { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.session-item:first-child { padding-top: 4px; }
.session-item:last-child { border-bottom: 0; padding-bottom: 0; }
.session-time { display: grid; align-content: start; gap: 2px; color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); }
.session-time time { color: var(--accent-dark); font-size: var(--seed-font-size-t5, 1rem); font-weight: var(--seed-font-weight-bold, 700); }
.session-title-row, .speaker-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.session-title-row > div:first-child { min-width: 0; }
.session-title-row h3 { margin: 0; font-size: var(--seed-font-size-t5, 1rem); font-weight: var(--seed-font-weight-bold, 700); }
.session-moderator { margin: 5px 0 0; color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); }
.row-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 5px; }
.row-actions form { margin: 0; }
.inline-edit-panel { margin-top: 14px; border-left: 3px solid var(--seed-color-stroke-brand-weak, #9ec5fe); background: var(--surface-soft); padding: 16px; }
.inline-edit-actions { display: flex; align-items: center; gap: 8px; margin-top: 16px; }
.speaker-edit-grid { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(240px, 1.3fr); gap: 12px; }
.speaker-list { display: grid; gap: 8px; margin-top: 12px; }
.speaker-item-wrap { min-width: 0; }
.speaker-item { border-radius: var(--control-radius); background: var(--surface-soft); padding: 11px 13px; }
.speaker-item > div:first-child { display: grid; min-width: 0; gap: 2px; }
.speaker-item strong { font-size: var(--seed-font-size-t4, .875rem); }
.speaker-item span { color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); }
.speaker-inline-edit { margin: 0 8px 10px; border-top: 1px solid var(--line); border-left: 0; }
.setting-list { display: grid; }
.setting-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 0; border-top: 1px solid var(--line); }
.setting-row div { display: grid; gap: 3px; }
.setting-row strong { font-size: var(--seed-font-size-t4, .875rem); }
.setting-row span { color: var(--muted); font-size: var(--seed-font-size-t2, .75rem); }
.setting-toggle { min-width: 58px; border: 1px solid var(--line-strong); border-radius: var(--control-radius); background: var(--surface-soft); padding: 7px 9px; color: var(--seed-color-fg-neutral-muted, #555d6d); font-size: var(--seed-font-size-t2, .75rem); font-weight: var(--seed-font-weight-bold, 700); }
.setting-toggle.is-on { border-color: var(--seed-color-stroke-brand-weak, #9ec5fe); background: var(--accent-soft); color: var(--accent-dark); }
.aside-action { display: grid; gap: 4px; border-radius: var(--radius); background: var(--accent-soft); padding: 18px; color: var(--accent-dark); text-decoration: none; }
.aside-action span { color: var(--seed-color-fg-brand-contrast, #084298); font-size: var(--seed-font-size-t3, .8125rem); }
.qr-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); gap: 18px; align-items: start; }
.qr-result { display: grid; justify-items: center; gap: 18px; text-align: center; }
.qr-result img { width: min(320px, 100%); border: 1px solid var(--line); border-radius: var(--control-radius); background: #fff; padding: 12px; }
.qr-result div { display: grid; gap: 5px; }
.qr-result span { color: var(--muted); font-size: var(--seed-font-size-t3, .8125rem); }

.login-page { display: grid; min-height: 100dvh; place-items: center; padding: 28px; background: var(--app-bg); }
.login-shell { width: min(420px, 100%); border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: 0 10px 28px rgba(16, 24, 40, .06); }
.login-panel { padding: 36px; }
.login-product { display: flex; align-items: center; gap: 10px; margin-bottom: 36px; color: var(--text); font-size: var(--seed-font-size-t4, .875rem); font-weight: var(--seed-font-weight-bold, 700); }
.login-heading { margin-bottom: 28px; }
.login-heading h1 { margin: 0; font-size: var(--seed-font-size-t8, 1.5rem); font-weight: var(--seed-font-weight-bold, 700); letter-spacing: -.03em; }
.login-heading p { margin: 7px 0 0; color: var(--muted); font-size: var(--seed-font-size-t4, .875rem); }

@media (max-width: 1100px) {
  .workspace-layout { grid-template-columns: 1fr; }
  .workspace-aside { position: static; }
  .schedule-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .schedule-detail-grid .speaker-field { grid-column: span 2; }
}

@media (max-width: 767.98px) {
  .app-main { padding: 22px 0 48px; }
  .app-nav .navbar-collapse { padding: 12px 0 4px; }
  .nav-account { justify-content: space-between; border-top: 1px solid var(--line); margin-top: 8px; padding-top: 12px; }
  .page-header, .workspace-header { align-items: stretch; flex-direction: column; }
  .page-header h1 { font-size: 1.75rem; }
  .workspace-actions { display: grid; grid-template-columns: 1fr; }
  .surface-panel { padding: 20px 16px; }
  .section-heading-actions { align-items: stretch; flex-direction: column; }
  .form-grid-two, .upload-layout { grid-template-columns: 1fr; }
  .form-grid-span-two { grid-column: span 1; }
  .image-preview { min-height: 170px; }
  .banner-preview { min-height: 140px; }
  .schedule-summary { align-items: flex-start; flex-direction: column; gap: 3px; }
  .session-config-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .session-name-field { grid-column: span 2; }
  .presentation-row { grid-template-columns: 1fr 1fr; }
  .presentation-remove { grid-column: span 2; justify-self: end; margin-bottom: 0; }
  .create-submit-bar { align-items: stretch; flex-direction: column; }
  .list-toolbar { align-items: stretch; flex-direction: column; }
  .list-filter { align-items: stretch; flex-direction: column; }
  .list-filter select { width: 100%; }
  .event-row { grid-template-columns: 1fr; gap: 13px; }
  .event-main { grid-template-columns: 82px minmax(0, 1fr); }
  .event-thumb { width: 82px; }
  .event-status { display: flex; align-items: center; gap: 10px; }
  .event-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .event-actions .seed-action-button { width: 100%; }
  .metric-strip { grid-template-columns: 1fr; }
  .metric-strip div { border-right: 0; border-bottom: 1px solid var(--line); }
  .metric-strip div:last-child { border-bottom: 0; }
  .copy-field { align-items: stretch; flex-direction: column; }
  .session-item { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; }
  .event-edit-grid, .speaker-edit-grid { grid-template-columns: 1fr; }
  .event-edit-grid .form-grid-span-two { grid-column: auto; }
  .event-banner-field { grid-template-columns: 1fr; }
  .event-banner-field img { width: min(220px, 100%); }
  .session-title-row { align-items: stretch; flex-direction: column; }
  .row-actions { flex-wrap: wrap; }
  .qr-layout { grid-template-columns: 1fr; }
  .login-page { padding: 16px; }
  .login-panel { padding: 30px 24px; }
  .login-product { margin-bottom: 30px; }
}

@media (max-width: 480px) {
  .create-flow { gap: 18px; }
  .session-config-grid { grid-template-columns: 1fr; }
  .session-name-field { grid-column: auto; }
  .presentation-section-head { align-items: stretch; flex-direction: column; }
  .presentation-row { grid-template-columns: 1fr; }
  .presentation-remove { grid-column: auto; justify-self: stretch; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
