:root{
  --esm-primary: var(--e-global-color-primary, #0c5c4d);
  --esm-secondary: var(--e-global-color-secondary, #123c66);
  --esm-accent: var(--e-global-color-accent, #2b7fff);
  --esm-text: var(--e-global-color-text, #24313f);
  --esm-muted: #6b7280;
  --esm-surface: #ffffff;
  --esm-soft: #f6f8fb;
  --esm-border: rgba(17,24,39,.10);
  --esm-radius: 18px;
  --esm-shadow: 0 10px 30px rgba(15,23,42,.08);
}

.esm-form-wrap,.esm-speakers-wrap,.esm-schedule-wrap{
  max-width:1100px;
  margin:32px auto;
  font-family:inherit;
  color:var(--esm-text);
}

.esm-form-wrap *, .esm-speakers-wrap *, .esm-schedule-wrap *{box-sizing:border-box;font-family:inherit}

.esm-form-header,
.esm-schedule-header{
  background:linear-gradient(135deg, color-mix(in srgb, var(--esm-accent) 92%, white 8%), color-mix(in srgb, var(--esm-secondary) 78%, var(--esm-accent) 22%));
  color:#fff;
  padding:30px 28px;
  border-radius:24px 24px 0 0;
  text-align:center;
  box-shadow:var(--esm-shadow);
}

.esm-form-header h2,
.esm-schedule-header h2,
.esm-title{
  margin:0 0 8px;
  font-size:clamp(28px, 4vw, 44px);
  line-height:1.12;
  font-weight:700;
  color:inherit;
}

.esm-form-header p,
.esm-schedule-header p{
  margin:0;
  opacity:.96;
  font-size:16px;
}

.esm-form-card{
  background:var(--esm-surface);
  padding:22px;
  border:1px solid var(--esm-border);
  border-top:0;
  border-radius:0 0 24px 24px;
  box-shadow:var(--esm-shadow);
}

.esm-section,
.esm-schedule-col,
.esm-speaker-card{
  background:var(--esm-surface);
  border:1px solid var(--esm-border);
  border-radius:var(--esm-radius);
  box-shadow:0 3px 14px rgba(15,23,42,.04);
}

.esm-section{padding:18px;margin-bottom:16px;background:linear-gradient(180deg,#fff, #fbfcfe)}
.esm-section h3,
.esm-schedule-col h3{
  margin:0 0 14px;
  font-size:18px;
  line-height:1.2;
  color:var(--esm-text);
  font-weight:700;
}

.esm-grid{display:grid;gap:14px}
.esm-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.esm-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.esm-grid.one{grid-template-columns:1fr}
.esm-grid label{display:flex;flex-direction:column;gap:7px;font-size:13px;color:var(--esm-text);font-weight:600}
.esm-grid label.full{grid-column:1/-1}
.esm-grid span{font-size:13px;color:var(--esm-muted);font-weight:600}

.esm-grid input,
.esm-grid textarea,
.esm-grid select,
.esm-form-card input[type=file]{
  width:100%;
  padding:12px 14px;
  border:1px solid var(--esm-border);
  border-radius:12px;
  background:#fff;
  color:var(--esm-text);
  min-height:46px;
}
.esm-grid textarea{min-height:116px;resize:vertical}
.esm-grid input:focus,
.esm-grid textarea:focus,
.esm-grid select:focus,
.esm-form-card input[type=file]:focus{
  outline:none;
  border-color:color-mix(in srgb, var(--esm-accent) 55%, white 45%);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--esm-accent) 20%, white 80%);
}

.esm-check{
  min-height:58px;
  padding:14px 16px;
  border:1px solid var(--esm-border);
  border-radius:14px;
  background:var(--esm-soft);
  display:flex!important;
  flex-direction:row!important;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
}
.esm-check input{width:18px;height:18px;min-height:auto;padding:0;flex:0 0 auto}
.esm-check span{color:var(--esm-text);font-size:13px;line-height:1.35}

.esm-photo-box{display:flex;gap:18px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.esm-photo-box img{
  width:96px;height:96px;object-fit:cover;border-radius:50%;border:4px solid #fff;
  box-shadow:0 6px 18px rgba(15,23,42,.12)
}

.esm-submit-row{text-align:center;margin-top:20px}
.esm-submit-row button,
.esm-speaker-card button{
  border:0;
  color:#fff;
  background:linear-gradient(135deg, var(--esm-accent), color-mix(in srgb, var(--esm-secondary) 78%, var(--esm-accent) 22%));
  padding:13px 28px;
  border-radius:999px;
  cursor:pointer;
  font-weight:700;
  line-height:1;
  box-shadow:0 8px 18px rgba(43,127,255,.24);
  transition:transform .15s ease, opacity .15s ease;
}
.esm-submit-row button:hover,
.esm-speaker-card button:hover{transform:translateY(-1px);opacity:.96}

.esm-alert{padding:14px 16px;border-radius:12px;margin:18px auto 0;max-width:720px}
.esm-alert.success{background:#ecfdf5;color:#065f46}
.esm-alert.error{background:#fef2f2;color:#991b1b}
.esm-alert:not(.success):not(.error){background:#fff7ed;color:#9a3412}

.esm-title{text-align:center;color:var(--esm-text);margin-bottom:28px}
.esm-speakers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px}
.esm-speaker-card{padding:26px 22px;text-align:center;background:linear-gradient(180deg,#fff,#f8fafc)}
.esm-speaker-avatar{width:122px;height:122px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 18px;box-shadow:0 6px 18px rgba(15,23,42,.10)}
.esm-speaker-card h3{margin:0 0 8px;font-size:20px;line-height:1.25;color:var(--esm-text)}
.esm-speaker-card p{margin:0 0 18px;color:var(--esm-muted);font-size:14px;line-height:1.45;min-height:40px}

.esm-modal{position:fixed;inset:0;z-index:99999}
.esm-modal-backdrop{position:absolute;inset:0;background:rgba(17,24,39,.58)}
.esm-modal-content{
  position:relative;max-width:580px;margin:10vh auto;background:#fff;border-radius:24px;padding:28px;z-index:2;
  box-shadow:0 26px 60px rgba(0,0,0,.22)
}
.esm-modal-close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:34px;cursor:pointer;color:#6b7280}
.esm-popup-card{text-align:center;padding-top:12px}
.esm-popup-avatar{width:120px;height:120px;border-radius:50%;object-fit:cover;margin:-86px auto 14px;border:6px solid #fff;box-shadow:0 8px 24px rgba(0,0,0,.12)}
.esm-popup-card h3{margin:0 0 6px;font-size:34px;color:var(--esm-text)}
.esm-popup-role{color:var(--esm-muted);font-weight:600;margin-bottom:16px}
.esm-popup-bio{background:var(--esm-soft);border-radius:16px;padding:18px;text-align:left;line-height:1.65;color:var(--esm-text)}

.esm-schedule-header{margin-bottom:16px;border-radius:24px}
.esm-schedule-columns{display:grid;grid-template-columns:1.05fr .95fr 1.95fr;gap:14px;align-items:start}
.esm-schedule-col{padding:0;overflow:hidden}
.esm-schedule-col h3{padding:16px 18px;border-bottom:1px solid var(--esm-border);background:#fff}
.esm-filter-list{display:flex;flex-direction:column}
.esm-filter-item{
  display:block;padding:14px 16px;border-top:1px solid var(--esm-border);text-decoration:none!important;color:#000;background:#fff;
  font-family:inherit;font-weight:700;
  transition:background .15s ease,color .15s ease,border-color .15s ease
}
.esm-filter-item:first-child{border-top:0}
.esm-filter-item:hover{background:#f8fbff;color:#000}
.esm-filter-item.active{background:color-mix(in srgb, var(--esm-accent) 10%, white 90%);color:var(--esm-accent)!important;font-weight:700;box-shadow:inset 4px 0 0 var(--esm-accent)}

.esm-program-list{padding-bottom:10px}
.esm-program-list-inner{padding:16px 18px 4px}
.esm-program-placeholder{padding:16px 18px;color:var(--esm-muted)}
.esm-program-item{border-left:4px solid var(--esm-accent);padding:4px 0 12px 14px;margin-bottom:18px}
.esm-program-time{color:var(--esm-accent);font-size:15px;font-weight:700;margin-bottom:6px}
.esm-program-title{font-size:18px;font-weight:700;line-height:1.4;margin-bottom:6px;color:var(--esm-text)}
.esm-program-speaker,.esm-program-room{color:var(--esm-muted);margin-top:5px;font-size:14px;line-height:1.45;display:flex;align-items:center;gap:6px}
.esm-program-speaker .dashicons,.esm-program-room .dashicons{display:inline-flex;align-items:center;justify-content:center;font-size:16px;width:16px;height:16px;line-height:16px;flex:0 0 16px;color:var(--esm-muted)}
.esm-inline-link{appearance:none;background:none!important;border:0!important;padding:0!important;color:#000!important;cursor:pointer;font-weight:400;text-decoration:none!important;box-shadow:none!important;border-radius:0!important;line-height:1.4}
.esm-inline-link:hover,.esm-inline-link:focus{color:var(--esm-accent)!important;text-decoration:none!important;outline:none}

.esm-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}
.esm-admin-card{background:#fff;padding:20px;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,.04)}

@media (max-width:900px){
  .esm-grid.two,.esm-grid.three,.esm-schedule-columns,.esm-admin-grid{grid-template-columns:1fr}
  .esm-schedule-columns{gap:12px}
  .esm-form-header,.esm-schedule-header{padding:24px 20px}
  .esm-form-card{padding:16px}
  .esm-modal-content{margin:12vh 16px;padding:24px}
}


.esm-logistics-section{padding-top:22px}
.esm-helper-box{
  display:flex;align-items:center;gap:12px;
  border:2px solid #17c3f3;border-radius:12px;
  padding:14px 16px;margin-bottom:18px;background:#f9fdff;
  color:var(--esm-text);font-size:14px
}
.esm-helper-icon{
  width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:#17c3f3;color:#fff;font-weight:700;font-size:12px;flex:0 0 20px
}
.esm-toggle-row{display:flex!important;flex-direction:row!important;align-items:center;gap:12px;margin:10px 0 12px;cursor:pointer}
.esm-toggle-row input{position:absolute;opacity:0;pointer-events:none}
.esm-toggle-ui{width:38px;height:22px;border-radius:999px;background:#d7dde5;position:relative;transition:.2s ease;display:inline-flex;align-items:center;padding:3px;flex:0 0 38px}
.esm-toggle-ball{width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:.2s ease;transform:translateX(0)}
.esm-toggle-row input:checked + .esm-toggle-ui{background:var(--esm-accent)}
.esm-toggle-row input:checked + .esm-toggle-ui .esm-toggle-ball{transform:translateX(16px)}
.esm-toggle-text{font-weight:700;color:var(--esm-accent);font-size:15px}
.esm-hotel-fields{margin-top:8px;border:1px solid var(--esm-border);border-radius:12px;padding:18px;background:#fbfdff;display:none}
.esm-hotel-fields.is-active{display:block}


/* v1.0.13 fixes */
.esm-speaker-avatar,
.esm-popup-avatar,
.esm-photo-box img{
  border-radius:50% !important;
  object-fit:cover !important;
  overflow:hidden;
}
.esm-speaker-avatar{width:122px !important;height:122px !important;display:block !important;}
.esm-popup-avatar{width:120px !important;height:120px !important;display:block !important;}
.esm-photo-box img{width:96px !important;height:96px !important;display:block !important;}

/* v1.0.14 schedule layout */
.esm-schedule-columns--two{
  grid-template-columns:minmax(220px,.8fr) minmax(0,2.2fr) !important;
  max-width:920px;
  margin:0 auto;
}
.esm-schedule-wrap--dates-only .esm-schedule-header{
  max-width:920px;
  margin-left:auto;
  margin-right:auto;
}
.esm-program-speaker,
.esm-program-room{
  gap:0;
}
.esm-program-speaker .dashicons,
.esm-program-room .dashicons{
  display:none !important;
}
.esm-speaker-card img,
.esm-modal-content img,
.esm-popup-card img{
  border-radius:50% !important;
  object-fit:cover !important;
}
@media (max-width:900px){
  .esm-schedule-columns--two{grid-template-columns:1fr !important;max-width:100%;}
}
