/* Styles for Symplectic Geometry Workshop page, Refresh */
:root{
  --accent:#003b6f; /* ICMS-like deep blue */
  --muted:#6b7280;
  --max-width:760px;
  --page-shift:80px; /* visual left shift for cards and menu on large screens */
  --form-title-height:56px;
  --embedded-offset:260px;
  --hero-height:320px;
  --tabs-height:56px;
  --container-vertical-padding:44px;
  --form-full-height:1800px;
}
*{box-sizing:border-box}
.body-wrap{}
.body-font{font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif}
html, body{max-width:100%;overflow-x:hidden}
body{font-family:var(--body-font, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif);margin:0;color:#0b1220;background:#f7f9fc;display:flex;flex-direction:column;min-height:100vh}
.hero{min-height:100vh;height:auto;background-size:cover;background-position:center;display:flex;position:relative}
.hero-overlay{background:linear-gradient(180deg, rgba(0,0,0,0.45), rgba(0,0,0,0.15));width:100%;display:flex;align-items:center}
.hero-inner{max-width:var(--max-width);margin:0 auto;padding:28px;color:#fff;width:100%;box-sizing:border-box}
.hero h1{margin:0;font-size:4rem;font-family:Georgia, 'Times New Roman', serif;line-height:1.05}
.hero .subtitle{margin:8px 0 12px;color:rgba(255,255,255,0.95);font-family:Georgia, 'Times New Roman', serif}
.hero .dates{font-weight:600}
.cta{display:inline-block;margin-top:10px;background:var(--accent);color:#fff;padding:10px 16px;border-radius:6px;text-decoration:none}

.header-logo{display:none}

.tabs-bar{background:rgba(255,255,255,0.98);position:fixed;right:20px;top:220px;z-index:999;border:1px solid rgba(0,0,0,0.06);width:220px;box-shadow:none;border-radius:0;
  /* start hidden on large screens; JS will add .visible to fade it in */
  opacity:0;transform:translateY(-8px);transition:opacity 280ms ease, transform 280ms ease;pointer-events:none}
.tabs-bar.visible{opacity:1;transform:translateY(0);pointer-events:auto}

/* shift menu left by page-shift on large viewports */
.tabs-bar{right:calc(20px + var(--page-shift));}
.tabs-bar-inner{max-width:var(--max-width);margin:0 auto;display:flex;flex-direction:column;gap:10px;padding:12px;box-sizing:border-box}

.tabs{display:flex;gap:10px;flex-direction:column;padding:0;background:transparent;position:static;border-bottom:0}

.nav-link, .tab-btn{display:block;text-decoration:none;padding:10px 12px;border-radius:0;color:var(--accent);font-weight:600;font-size:0.95rem}
.nav-link:hover{background:rgba(0,59,111,0.06)}
.nav-link.active{background:var(--accent);color:#fff}

.tab-content{margin:36px auto;padding:0 18px 30vh 18px;flex:1;max-width:none}
.tab-panel{display:block}
.container{max-width:var(--max-width);width:100%;box-sizing:border-box;margin:28px auto;background:#fff;padding:32px;border-radius:0;box-shadow:none;transform:translateX(calc(-1 * var(--page-shift)));}

.speakers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
.speaker-card{padding:12px;border-left:4px solid var(--accent);background:linear-gradient(180deg,#fff,#fbfdff)}
.speaker-photo{height:110px;background:#eef6fb;border-radius:0;margin-bottom:14px}

/* Simple speaker list styling (used when rendering plain text speakers) */
.speakers-list{list-style:none;padding:0;margin:0;columns:2;column-gap:40px}
.speakers-list li{padding:12px 0;border-bottom:1px solid rgba(0,0,0,0.04);font-size:1rem}
.speakers-list .speaker-aff{color:var(--muted);font-style:italic;margin-left:8px;font-size:0.95rem}
.speakers-list .tbc{color:var(--accent);font-weight:700;margin-left:6px}

.schedule-table{width:100%;border-collapse:collapse}
.schedule-table th,.schedule-table td{padding:12px;border-bottom:1px solid #eef3fb;text-align:left;vertical-align:top}
.schedule-table thead th{background:#f1f6ff;color:var(--accent)}
.day-events{list-style:none;padding:0;margin:0}
.day-events li{margin-bottom:10px;padding-bottom:8px;border-bottom:1px dashed #eef6ff}
.ev-time{font-weight:700;color:var(--accent);margin-bottom:6px;flex:0 0 80px}
.ev-title{margin-top:4px}
.ev-loc{font-size:0.95rem}

/* Table-like schedule: full-width subtle rows, minimal decoration */
.vertical-schedule{display:block;margin:0;padding:0}
.day-block{width:100%;border-radius:0;overflow:visible;background:transparent;border:0;padding:0;margin:0}
.day-block + .day-block{border-top:1px solid #eef3fb}
.day-header{background:transparent;color:var(--accent);padding:10px 0;display:block;font-weight:700;border-bottom:0}
.day-date{font-size:15px;font-weight:700;color:var(--accent)}
.day-body{padding:10px 0;border-top:0;overflow:hidden;transition:max-height 320ms cubic-bezier(.2,.8,.2,1);}

/* Collapsible day toggle button */
.day-header-inner{display:flex;align-items:center;gap:12px}
.day-toggle{width:36px;height:36px;border-radius:4px;border:1px solid rgba(0,59,111,0.08);background:#fff;color:var(--accent);font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}
.day-toggle[aria-expanded="true"]{background:var(--accent);color:#fff;border-color:transparent}
.day-body.collapsed{max-height:0;padding-top:0;padding-bottom:0}
.day-body.expanded{max-height:2200px} /* large enough to contain day content; JS will set exact height */

/* Event layout and abstract toggles */
.event-item{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #f3f6fb}
.ev-main{flex:1}
.ev-head{display:flex;flex-direction:column}
.ev-actions{margin-top:8px}
.ev-toggle{background:transparent;border:1px solid rgba(11,91,215,0.12);color:var(--accent);padding:8px 12px;border-radius:0;cursor:pointer}
.ev-toggle[aria-expanded="true"]{background:var(--accent);color:#fff;border-color:transparent}
.ev-abstract{margin-top:12px;padding:12px;border-radius:0;background:#f7fbff;border:1px solid #eef7ff;color:#123}
.muted{color:var(--muted)}

/* Table-like rows expand/collapse same as pmc.php */
.expandable-row{cursor:pointer;transition:background 0.12s}
.expandable-row:hover{background:#fafbff}
.abstract-row .abstract-cell{background:#fbfdff}
.abstract-content{white-space:pre-wrap}

.reg-form{display:grid;gap:12px;max-width:520px}
.reg-form label input{width:100%;padding:10px;border-radius:0;border:1px solid #d1d9ee}
.registration-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:16px}
.btn{background:var(--accent);color:#fff;border:0;padding:10px 14px;border-radius:0}
.note{color:var(--muted);font-size:0.95rem}

/* Embedded form container */
/* Embedded form: keep the iframe contained within the white card.
   Allow the form to scroll internally if it's taller than the viewport. */
.embedded-form{position:relative;padding:0;box-sizing:border-box;max-height:none;overflow:visible}
/* Ensure both the iframe element and any element with the MS Forms class
   use the configured full height. Use higher specificity to avoid being
   overridden by later rules. */
.embedded-form iframe,
.embedded-form .ms-form-embed {
  border:1px solid #eef3fb;
  border-radius:0;
  background:#fff;
  display:block;
  width:100%;
  height:var(--form-full-height) !important;
}

/* Shorter embedded form variants */
.embedded-form.short{max-height:60vh}
.embedded-form.compact{max-height:50vh}
.embedded-form .ms-form-embed{display:block;width:100%;}
.embedded-form .ms-form-embed.fullheight{height:var(--form-full-height) !important}
.embedded-form .note{margin-top:8px}

.tab-content{flex:1}
.site-footer{padding:18px 0;text-align:center;color:#6b7280;margin-top:auto;background:#fff;border-top:1px solid #eef3fb;box-shadow:none}

/* Footer inner container should not look like a card */
.site-footer .container{background:transparent;padding:8px 18px;border-radius:0;box-shadow:none;transform:translateX(calc(-1 * var(--page-shift)));}

/* Footer logos layout */
.footer-logos{display:flex;gap:18px;align-items:center;justify-content:center;padding:8px 0;flex-wrap:wrap}
.footer-logo-item{display:inline-flex;align-items:center;justify-content:center;padding:6px}
.footer-logo-item img{height:48px;max-width:220px;object-fit:contain}

@media (max-width:900px){
  .hero{min-height:50vh;height:auto}
  .hero h1{font-size:1.4rem}
  .tabs{overflow-x:auto}
  /* Make RHS nav collapse to a sticky top bar on small screens */
  .tabs-bar{position:sticky;top:0;left:0;right:auto;width:100%;z-index:1002;box-shadow:0 1px 6px rgba(11,20,40,0.06);border-bottom:1px solid #eef3fb;background:rgba(255,255,255,0.98);border-radius:0;margin-bottom:0}
  .tabs-bar-inner{flex-direction:row;justify-content:center;gap:12px;flex-wrap:wrap}
  .tabs{flex-direction:row}
  .tabs-bar-inner .nav-link{padding:8px 10px}
  .speakers-list{columns:1}
  
  /* Reset page shift on mobile to prevent left overflow */
  .container, .site-footer .container {
    transform: none;
  }
}

/* small utility */
.muted{color:var(--muted)}
