html {max-width:940px; /*height:100vh;*/ height:101% !important; margin:0px auto;}

body {
  height:101% !important;
  text-align:left;
  padding:0px;
  margin:0px auto;
  font-family: 'Open Sans', Arial, Helvetica, sans-serif;
  color: #555;
  background-color: white;
  font-size:14px;
  line-height:1.6;
}

.navitem_links {}


/* Accordion for parallel sessions */
.parallel_accordion {
  cursor: pointer;
  padding: 18px;
  width: 100%;
  border: none;
  text-align: left;
  outline: none;
  transition: 0.7s;
}
.active_session, .parallel_accordion:hover {
}
.parallel_session {
  padding: 0 18px;
  background-color: white;
  max-height: 0;
  overflow: hidden;
  transition: 0.5s ease-out;
  border-left: solid #fff 5px;
}
/* End - Accordion for parallel sessions */

.center {
  margin: auto;
  width: 50%;
}
.text_right {
  text-align: right;
  margin-right: 10px;
}
.highlight { background: #FFFF40; }


/* Page structure (width, height, color, margins, paddings) */
#pg0 {
  background-color: white;
  max-width:940px;
  /*   border:solid #4E90C3; border-width: 0 1px 0 1px; */
  height:101% !important;
  margin:0;
  padding:0;

}
#content0 {
  padding:0;
  margin:40px 0 0 0;
  background-color:white;
  height:101% !important;
  box-shadow: none;
}
/*  */
#content1 {
  padding:0px;
  margin:0px;
  background-color:white;
box-shadow: none;
}
/*  */
#content2 {
  padding: 0;
  margin:0px;
}
.mobile_banner {width:100%; margin:10px; background-color:white; color:#4a9cd7;}
.search_section, .result_section, #search_results, .summary, .result_pagescount {
  background-color: white;
  max-width:940px;
  padding:0 20px;
  margin:20px 0 0 0;
}

#calendar {margin:20px 0;}
/* End of Page structure (width, height, color, margins, paddings)  */


/* Headings */
h1 {
  padding: 20px 0 0 0;
  margin: 0px;
  font-family: 'Open Sans', Arial, Helvetica, sans-serif;
  font-weight: bold;
  font-style: normal;
  font-size: 1.7em;
  font-variant: small-caps;
  color: #2d401e;
}

h1.filter_hdr {
  padding: 0px 0 10px 0;
  margin: 60px 0px 0px 0px;
  font-family: 'Open Sans', Arial, Helvetica, sans-serif;
  font-style: normal;
  font-size: 1.5em;
  font-variant: small-caps;
  color: #2d401e;font-weight:bold;
}
/* end of Headings */

.banner  {
  vertical-align:middle;
  /*   height:80px; */
  text-align:center;
  line-height:80px;
  /*  */
  display:none;
}

.banner image {
  margin:0 auto;
}

#footer {
  background-color: white;
  max-width:940px;
  margin:auto;
}

#coms_lang {}











/* Buttons and form controls */
radio,  checkbox{
    cursor: pointer;
}
.cb-inline {
   display:none;
   flex-wrap:nowrap;
   align-items: center;
}
.btn-primary {
  color: #fff !important;
  background-color:#2d401e!important;
  font-size:1.1em;
}

.btn {
    display: inline-block;
    margin-bottom: 0;
    font-weight: normal;
    text-align: center;
    vertical-align: middle;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
    cursor: pointer;
    background-image: none;
    border: 1px solid transparent;
        border-top-color: transparent;
        border-right-color: transparent;
        border-bottom-color: transparent;
        border-left-color: transparent;
    white-space: nowrap;
    padding: 6px 12px;
    font-size: 14px;
    line-height: 1.42857143;
    border-radius: 4px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
input, button, select, textarea {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}
input {
    line-height: normal;
}
button, input, optgroup, select, textarea {
    color: inherit;
    font: inherit;
        font-weight: inherit;
        font-size: inherit;
        line-height: inherit;
        font-family: inherit;
    margin: 0;
        margin-bottom: 0px;
}
* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

.form-control {
  display: inline-block;
width:20em !important;
  max-width: 20em !important;
  padding: 6px 12px;
  line-height: 1.42857143;
  margin: 0 0 20px 0;
  border-color: #2d401e!important;
  box-shadow: none !important;
border-radius:3px;
font-size:medium;
}


/* End of Buttons and form controls */





/* Search results */
.result_block, .result_altblock {
  margin: 15px 0px;
  padding: 20px;
  clear: left;
border-radius:5px;
}
.bg-success {background-color:#f9f9f9;}
.bg-warning {}
.meta_section {margin-left:0em; }
.result_meta_val {white-space:normal; }
.result_metaname {font-weight:bold; }
.hrbkm {
display:none;
  margin: 9px 0;
  border: 0;
  height: 1px;
  background-color: white;
}
.description {
  display: none;
}
/* End of Search results */

.back_link {
  padding: 0px 0 0px 10px;
}
#content {
  padding: 0px;
  text-align: left;
  background-color: white;
}


.save-to-cal-checkbox {display:none;}
.save-to-cal-checkbox .cb {
    padding: 20px 0px ;
    display: flex;
    align-self: center;
}
.save-to-cal-checkbox .cb-label {padding:3px 10px 0px 10px; }
.cb-label1 {padding:3px 10px 0px 10px; }

.btn-file {  position: relative;  overflow: hidden;}
.btn-file input[type="file"] {
    position: absolute;
    top: 0;
    right: 0;
    min-width: 100%;
    min-height: 100%;
    font-size: 100px;
    text-align: right;
    filter: alpha(opacity=0);
    opacity: 0;
    outline: none;
    background: white;
    cursor: inherit;
    display: block;
}

.result_custommeta {display:flex; }
.result_meta_val {margin-left: 5px;}
.cover {--cover-primary:#a82e4f;} /* the site's primary colour, parameter 604 */
/*--- cover page sections - functional layer ( code-owned, see pm/cover_sections.pm ) ---*/
.cover img {max-width:100%; height:auto;}
.cover-map {position:relative; padding-bottom:56.25%; height:0;}
.cover-map iframe {position:absolute; top:0; left:0; width:100%; height:100%; border:0;}
.cover-sponsor {display:inline-flex; align-items:center; justify-content:center;}
.cover-sponsor img {display:block; width:auto; height:auto; object-fit:contain;}
/*--- the Download button element: the EDITABLE copy of these rules lives in
      the styles box ( _button_box_css - its own commented section, her
      request ), comes later in the cascade and wins. This one-line copy of
      the essentials is the fallback for a delivery whose box predates that
      block: the box only upgrades when the builder page is visited, while
      this layer rides with the code. ---*/
.cover-button {text-align:center;}
.cover-btn {display:inline-block; padding:10px 26px; background:var(--cover-primary, #4a6a96); color:#fff; border-radius:6px; text-decoration:none; font-weight:600;}
.cover-btn:hover {filter:brightness(1.1); color:#fff;}
/*--- position:relative makes the grid the anchor of the opened-bio panel
      ( .cover-speaker-biopanel in the editable box ), so the panel's left:0 /
      right:0 span exactly the grid's width.
      The column definition is written TWICE on purpose. The second one is the
      real one - the card width comes from --speaker-min / --speaker-max in the
      editable box. The plain first one is what an engine that cannot parse the
      second keeps instead: the old fixed 190-240px, which ignores the box's
      knobs but stays a grid. Without it such an engine throws the only
      declaration away, and grid-without-columns is ONE full-width column -
      every card blown up to the width of the grid.
      A min() capping the lower bound at 100% of the grid used to sit in the
      second declaration ( so a card set wider than a phone screen would wrap
      instead of pushing the page sideways ). It came out on 2026-08-19: it
      nested three functions - min inside minmax inside repeat - and that broke
      the declaration on her phones as well as on a tablet, not just on old
      engines. Keep the nesting shallow here; the overflow case is a card width
      set wider than a phone, which is the site's own choice to avoid.
      The safety net for the knobs is the max-width on .cover-speaker in the
      editable box, which needs no grid support at all. ---*/
.cover-speakers-grid {display:grid; grid-template-columns:repeat(auto-fit, minmax(190px, 240px)); grid-template-columns:repeat(auto-fit, minmax(var(--speaker-min, 190px), var(--speaker-max, 240px))); justify-content:center; position:relative;}
/*--- breathing room under an opened bio panel: the page's scrollable area
      ends exactly at an absolute box's border - a margin below it would not
      count - so an invisible 1px-wide strut hangs below the panel and
      stretches the page instead, keeping a panel that reaches past the last
      row from ending flush with the bottom of the screen. The clearance is
      tunable as --biopanel-clearance in the editable box. ---*/
.cover-speaker-bio[open] .cover-speaker-biopanel::after {content:""; position:absolute; top:100%; width:1px; height:var(--biopanel-clearance, 40px);}
/*--- the opened bio's background is LOAD-BEARING, not cosmetic: the panel is
      laid over the cards below it, and without an opaque background the bio
      and the covered cards read through each other. So a fallback lives here
      in the functional layer - it covers every delivery whose styles box
      predates the panel rule ( the box is only upgraded when a site's builder
      page is visited, while this layer rides with the code ). The box's own
      .cover-speaker-biopanel rule comes later in the cascade and keeps
      winning wherever it exists; deleting it still collapses the panel into
      the card ( position stays box-owned ), now on a white card instead of
      bare text. ---*/
.cover-speaker-bio[open] .cover-speaker-biopanel {background:var(--biopanel-bg, #fff); color:var(--biopanel-color, #444);}
/*--- THE APP'S opened bio ( mobile context only - the -flow class appears
      solely in the markup of the delivered cover.html, so these rules are
      inert on the web ): the PLAIN IN-FLOW FOLD, her pick 2026-08-19 evening
      after a day of alternatives on ecc26 - the bio opens under picture and
      name, pushes the content below it down, carries NO fill, NO frame and
      NO text colour, so it inherits the app theme's text and stays readable
      on light and dark alike. What the day established about the renderer
      and why the alternatives fell:
      - it applies the style block but discards inline style attributes,
        wipes backgrounds on REAL elements ( a white panel came out
        transparent in three different deliveries ) and overrides their text
        colours ( light grey over #444 ); only pseudo-element fills painted
        ( the scrim, the white backdrop ).
      - overlay panels ( absolute / fixed ) cover the photos below and their
        invisible box swallows taps - rejected twice.
      - :has()-spanning the open card to the full grid row relocates the card
        and the grid visibly rearranges - rejected. For the record:
        .cover-speaker:has(.cover-speaker-bio-flow[open]) {grid-column:1 / -1;}
        .cover-speaker:has(.cover-speaker-bio-flow[open]) .cover-speaker-photo {max-width:var(--speaker-max, 240px); margin:0 auto;}
      - the framed variant ( wrapper div cover-speaker-bioframe, grey rgba
        border on its ::before ) worked and was dropped with the overlay era;
        its rules, for revival:
        .cover-speaker-bio-flow[open] .cover-speaker-bioframe {position:relative; margin-top:10px; padding:12px 14px; text-align:start;}
        .cover-speaker-bio-flow[open] .cover-speaker-bioframe::before {content:""; position:absolute; top:0; right:0; bottom:0; left:0; border:1px solid rgba(127,127,127,0.55); border-radius:8px;}
      A VARIABLE-HEIGHT full-width bio without covering and without reflow
      jumps is not expressible from inside a multi-column grid - a
      FIXED-HEIGHT one was tried next and also fell ( same evening, after
      she rejected the narrow printout ): the open details reserves an
      empty band below itself with plain padding ( normal flow - the photos
      below move down once, nothing rearranges ), and the framed bio lies
      ACROSS that band at full grid width as an absolute box of exactly the
      band's height. The band is bare page background, so the text inherits
      the theme's colour - readable in either app mode with no fill at all;
      a bio longer than the band scrolls INSIDE the frame ( the scroll box
      is an inner div: a border on the outer box's ::before stays put while
      the inner scrolls - and fills/borders only reliably paint on
      pseudo-elements in the app anyway ). The numbers are plain px on
      purpose: a min()/calc() nest broke the grid declaration on her phones
      once already ( see the column note above ). 300px frame in a 325px
      reserve ( 15px gap above, 10px clearance below ). ---*/
/*--- THE APP'S SPEAKER LIST IS SINGLE-COLUMN ( 2026-08-19, the end of the
      grid experiments - a day of screenshots proved a multi-column grid
      leaves a full-width bio only three anchors, and each fails: under the
      open card's summary it cuts through taller neighbours; reserved inside
      the card, the row grows and the neighbours' bottom-pinned lines ride
      into the band; docked under the whole grid it opens below the fold on
      a phone. One column dissolves all of it: the bio unfolds DIRECTLY
      under its own speaker, full width, natural height, framed, in flow -
      no reserve, no scroll box, no :has. The double class out-specifies the
      box's grid rules, so this needs no ordering luck; the portrait keeps
      its ratio, capped and centred. Web and preview keep their grid and
      overlay panel untouched. ---*/
.cover-speakers-grid.cover-speakers-m {display:block;}
.cover-speakers-m .cover-speaker {margin:0 auto 30px; max-width:640px;}
.cover-speakers-m .cover-speaker-photo {max-width:var(--speaker-max, 200px); margin:0 auto;} /* the portrait follows the box's card-width knob, so the size set for the web grid holds in the app's list too; 200px where a site never set one */
.cover-speaker-bio-flow[open] {text-align:start;}
.cover-speaker-bio-flow[open] .cover-speaker-bioframe {position:relative; margin-top:10px;}
.cover-speaker-bio-flow[open] .cover-speaker-bioframe::before {content:""; position:absolute; top:0; right:0; bottom:0; left:0; border:1px solid rgba(127,127,127,0.55); border-radius:8px;} /* the frame; on the ::before because only pseudo-element paint reliably survives the app's theme layer */
.cover-speaker-bio-flow[open] .cover-speaker-bioscroll {padding:12px 16px;}
/*--- no tap flash on the Read more line: the webview's own touch highlight
      and the focus styling it leaves behind after the tap ---*/
.cover-speaker-bio-flow summary {-webkit-tap-highlight-color:rgba(0,0,0,0); outline:none;}
.cover-speaker-bio-flow summary:focus, .cover-speaker-bio-flow summary:active {outline:none; background:transparent !important;}
.cover-speaker-photo {aspect-ratio:var(--speaker-ratio, 3 / 4); overflow:hidden;}
.cover-speaker-photo img {width:100%; height:100%; max-width:100%; object-fit:cover; display:block;}
/* The affiliation line under the name ( 2026-08-21 ): muted via opacity, not a
   colour, so it follows whatever text colour the page - or the app's theme
   layer - gives the card. In the functional layer like the other mechanics; a
   site wanting another look adds its own .cover-speaker-affil rule to the
   styles box, which comes later in the cascade and wins. */
.cover-speaker-affil {margin:2px 0 0; font-size:0.9em; opacity:0.75;}
/*--- the divider's line: the browser's own hr is a 1px INSET BORDER, which
      would frame the coloured bar in grey - so the border goes and the line
      is the box itself. Thickness, colour and spacing are all set in the
      editable box, on .cover-divider ( one rule for every divider ); the
      fallbacks here only keep a line visible if that rule is deleted. ---*/
.cover-divider hr {border:0; margin:0; height:var(--divider-thickness, 2px); background:var(--divider-color, var(--cover-primary, #ddd));}
/*--- the separator between two sections ( render puts one between every pair
      of them ): built exactly like the divider - an <hr> inside the div, the
      hr IS the line, the div carries the spacing. Thickness and colour come
      from the editable box, on .cover-separator; its own two variables, so the
      two lines can be styled apart. The separator is placed automatically, for
      every site, so it stays LOW KEY ( her decision 2026-08-17 ): thin and
      grey, where the divider - which someone chose to add - takes the site's
      primary colour. The fallbacks here only keep a line visible if the rule
      in the box is deleted. NOTE that the div must NOT be given a height and a
      background of its own: that would draw a second line above this one. ---*/
.cover-separator hr {border:0; margin:0; height:var(--separator-thickness, 1.5px); background:var(--separator-color, #999);}
/*--- pages-mode navigation bar ( the app's cover, param 730 - see _render_tabbed ) ---*/
.cover-nav {display:flex; flex-wrap:wrap; gap:6px; justify-content:center; margin:0 0 20px; padding-bottom:10px; border-bottom:1px solid #ddd;}
.cover-nav .cover-nav-button {border:0; background:none; padding:8px 14px; font-size:1.05em; cursor:pointer; border-radius:6px 6px 0 0; color:inherit;}
.cover-nav .cover-nav-button:hover {background:#f0f4f8;}
.cover-nav .cover-nav-button.cover-nav-active {font-weight:600; box-shadow:inset 0 -3px 0 #4a7ab5;}
/* --- cover-defaults-v1 --------------------------------------------------- */

/* --- General  -------------------------------------------- */
.cover-section {margin:20px 0;}
.cover-section-label {margin:0 0 6px 0; color:inherit;}
.cover-section-label + .cover-element {margin-top:6px;}
.cover-section-label + .cover-element .cover-body > :first-child {margin-top:0;}
.cover-element {margin:20px 0;}
.cover-separator {--separator-thickness:1.5px; --separator-color:#999; margin-block:30px 20px; margin-inline:0;} /* the line between two sections, which the page draws by itself: how thick it is, its colour, and the space above and below it - the same line as the divider, kept deliberately quiet because it appears without being asked for */
.cover {--cover-radius:8px;} 

/* --- Conference descriptors and cover image  -------------------------------------------- */
.cover-title {font-size:2.3em; font-weight:600; text-align:center; margin:25px 0 10px;}
.cover-conference {text-align:center;}
.cover-dates {font-size:1.7em; text-align:center; margin:4px 0; font-weight:600; }
.cover-location {font-size:1.7em; text-align:center; color:#555; margin:4px 0; font-weight:600; }
.cover-banner {margin:0 auto 10px auto; text-align:center;}

/* --- Images  -------------------------------------------- */
.cover-banner img {width:100%; max-width:1100px; border-radius:calc(var(--cover-radius, 8px) * 1.5);}

/* --- Maps  -------------------------------------------- */
.cover-map {max-width:900px; margin:0 auto; border-radius:calc(var(--cover-radius, 8px) * 1.5); overflow:hidden;}

/* --- Pictures  -------------------------------------------- */
.cover-picture {margin:30px auto; text-align:center;}
.cover-picture img {max-width:min(900px, 100%); border-radius:calc(var(--cover-radius, 8px) * 1.5);}
.cover-picture figure, .cover-picture .image {margin-left:auto; margin-right:auto;}

/* --- Sponsors  -------------------------------------------- */
.cover-sponsors {margin:25px 0;}
.cover-sponsor-row {display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:30px 44px; max-width:1000px; margin:0 auto;}
.cover-sponsor img {width:min(220px, 76vw); height:120px; object-fit:contain; background:#fff; border-radius:var(--cover-radius, 8px);}

/* --- Speakers  -------------------------------------------- */
.cover-speakers {margin:0px 0;}
.cover-speakers-grid {max-width:1000px; margin:50px auto;}
.cover-speaker {text-align:center; max-width:240px; max-width:var(--speaker-max, 240px); margin-inline-start:auto; margin-inline-end:auto;} /* the card itself repeats the width knob as a plain cap, so the cards stay narrow even where the grid"s column definition was dropped; the first max-width is the fallback for an engine without variables */
.cover-speaker-photo {border-radius:var(--cover-radius, 8px); background:#eef1f4;}
.cover-speaker-name {font-weight:600; margin:10px 0 2px;}
.cover-speaker-name a {color:inherit;}
.cover-speaker-bio {font-size:0.92em; text-align:start;} /* no opacity here: it would make the opened panel below see-through */
.cover-speaker-bio p {margin:6px 0;}
.cover-speakers-grid {--speaker-min:120px; --speaker-max:120px; gap:70px 70px;}

/* --- Divider  -------------------------------------------- */
.cover-divider {--divider-thickness:1px; --divider-color:var(--cover-primary, #ddd); margin-block:40px 20px; margin-inline:0;} /* every divider on the page: how thick the line is, its colour (--cover-primary = the site"s primary colour, or a light grey where none is set), and the space above and below it */

.cover-speaker-bio summary {list-style:none; cursor:pointer; color:var(--cover-primary, #4a7ab5); text-align:center;} /* the "Read more" line a bio hides behind - the site"s primary colour, or a calm blue where none is set; centred under the portrait like the name above it */
.cover-speaker-bio summary::-webkit-details-marker {display:none;} /* the browser"s own triangle, for older webviews that ignore list-style:none above */
.cover-speaker-bio summary::after {content:" \203A";} /* the small arrow after the label: > while closed ... */
.cover-speaker-bio[open] summary::after {content:" \2039";} /* ... and < while open */
.cover-speaker-bio[open] .cover-speaker-biopanel {position:absolute; left:0; right:0; z-index:5; margin-top:10px; padding:18px 24px; background:#fff; color:#444; border:1px solid #d5dbe2; border-radius:var(--cover-radius, 8px); box-shadow:0 12px 32px rgba(0,0,0,0.18);} /* an opened bio: a panel spanning the whole speaker grid, laid over the cards below it; it carries its own background and text colour because it lies over other content. Delete this rule and a bio opens inside its own narrow card instead */
/* --- Download button  -------------------------------------------- */
.cover-btn {
    display: inline-block;
    background-color: var(--cover-primary, #4a6a96);
    color: #fff;
    font-weight: 600;
    padding: 10px 26px;
    border: none;
    border-radius: var(--cover-radius, 8px);
    text-decoration: none;
    cursor: pointer;
    transition: filter 0.3s ease;
}
.cover-btn:hover {
    filter: brightness(1.1);
    color: #fff;
}
.cover-button {
    text-align: center;
}
/* --- end of cover-defaults-v1 -------------------------------------------- */

.room-nav {display:flex; flex-wrap:wrap; justify-content:space-around; background-color: #F0F8FF;  margin:0; padding: 16px 0px;  border-bottom:1px #337ab7 solid;}
.room-nav li {display:inline-block; list-style-type: none;    margin: 3px 20px;  padding: 0;}
.room-nav a {}
.room-pill a {text-decoration:none !important; padding:3px 1px;}
.room-active a { border-bottom:3px #337ab7 solid;}
        /* Works on Firefox  #4a9cd7 */
        * {
        scrollbar-width: thin;
        scrollbar-color: transparent transparent;
        }

        /* Works on Chrome, Edge, and Safari */
        *::-webkit-scrollbar {
        width: 10px !important;
        }

        *::-webkit-scrollbar-track {
        background: transparent;
        }

        *::-webkit-scrollbar-thumb {
        background-color: #ccc;
        border-radius: 20px;
        border: 5px solid transparent;
        }

        body::-webkit-scrollbar {
        width: 10px !important;               /* width of the entire scrollbar */
        }

        body::-webkit-scrollbar-track {
        background: transparent;        /* color of the tracking area */
        }

        /* Handle on hover */
        ::-webkit-scrollbar-thumb:hover {
        background: #ccc;
        }

    @supports (font-variation-settings : normal) {
        @font-face {
            font-family: 'Open Sans';
            src:
            url("./fonts/OpenSans-VariableFont_wdth,wght.woff2") format('woff2-variations');
            font-style: normal;
            font-display: swap;
            font-weight: 1 999;
            font-stretch: 75% 100%;
        }
        @font-face {
            font-family: 'Open Sans';
            src:
            url("./fonts/OpenSans-Italic-VariableFont_wdth,wght.woff2") format('woff2-variations');
            font-style: italic;
            font-display: swap;
            font-weight: 1 999;
            font-stretch: 75% 100%;
        }
    }
    .track_header { display:none; }  .track_0 {    }  .track_1 {   border-left: 3px solid #a82e4f; border-radius: 5px; }  .track_2 {   /*background-color: #f6eaed;*/   border-left: 3px solid #fed700; border-radius: 5px; }   .separator {   color: #efefef;   background-color: #efefef;   height: 1px;   border: 0;   clear: both; margin:10px 0; } .parallel_session + .separator {display:none;} .active_sub_session {  border-bottom: 1px #efefef solid !important; } .presentation a:link {              background-color: #007c63;              color: #eeffd8 !important;           padding: 5px 12px;          border-radius:3px;            }     .zoom_link  a:link {color: #007c63 !important;  }                        .session_listing { display:flex;  flex-wrap:nowrap; margin-bottom: 10px !important; background-color: #f9f9f9;   border-bottom: 2px solid #f2f2f2; padding: 10px; border-radius: 5px;  }                        .flex_row {display:flex; flex-wrap:nowrap;} .session_times { text-align:right; color: #555; font-weight:normal;  width:auto; white-space:nowrap; padding-right: 10px; }                        .session_desc {width:100%; }                        .div_border_left {}                                                .org_tz {display:inline;  color:#999; font-size:0.9em;}                        .org_tz div {display:inline;}                        .loc_tz {display:inline; margin-left:10px;}                        .session_times .org_tz {display:block;}                        .session_times .org_tz div {display:block;}                        .session_times .loc_tz {display:block; margin-left:0px;}                                                                     .checkbox-inline {                          display: flex;                          align-items: center;                     }    @media (max-width: 768px)  {                                               .nav {   margin-top: 25px;}                                 .navitem {                       /*height: 21px;                       line-height: 21px;*/                       margin: 0 7px !important;                   }                                                                                 }a {color:#555t;}        .session_header0 {margin:0px; color:#555; }       .session_header1 {}       .session_header2 {background-color:#eeeeee !important;}       .session_header3  {color:#222;border-left: 3px solid #2d401e;margin-bottom:30px !important  } .right-arrow {display:none;} .session_header4  {} .session_header4   .session_times {   white-space: nowrap !important;   width: auto !important;   min-width: auto !important; }                /* ----------------------------------------------------- */       .room-nav {display:flex; flex-wrap:wrap; justify-content:space-between; background-color: #443787;  margin:0; padding: 10px 20px;  border-bottom:1px #443787 solid;}       .room-nav li {display:inline-block; list-style-type: none; margin: 5px 20px;  padding: 0;}       .room-nav a {color: #fff !important;}       .room-pill a {text-decoration:none !important; padding:4px 10px;}       .room-active a { border-bottom:0px #443787 solid; background-color: #fff; color:#443787 !important; border-radius:4px;}.parallel_accordion { background-color:#fff; color:#2d401e;  border-left:3px solid #2d401e; margin-bottom: 10px !important; }   .parallel_accordion .session_times {color:#555; }  .parallel_accordion_title { font-size:1.0em; font-weight:bold;  line-height:1; padding-left:17px; background-color:transparent !important; align-self:center; display:flex; justify-content:space-between; align-items:center; width:100%;padding: 9px 7px 0 17px; } .session_txt1 {margin-top:15px;}  .session_header0 .session_txt1 {display:none;}  .session_header3 .session_txt1 {display:block;} .keywords {font-style: italic; margin:10px  0 ;}         .session_ref {font-weight: 600;}                      .join_link  {                color:#339682 !important;                display: inline;                                font-weight: 600;                white-space: nowrap;                font-size:1.1em;                }                .join_link > a:link {               /*  background-color: #eff7f4; border-radius: 3px;*/                 color: #339682 !important;                 padding: 7px 0px;                 text-decoration: underline;                }                                .join_link  > a:hover, .join_link > a:focus {                    background-color: #fff !important;                    color: #c94e4a !important;                    padding: 7px 0px;                   text-decoration: none !important;                }.free_slot {  background-color: #eeffd8;   border-radius: 5px;  }.session_header1 {border-bottom: 1px #4a9cd7 solid;}.pres_cell {   margin: 0px;   flex-grow: 1; } .speaker_pic_in_session { 	width: 80px; 	height: 80px; 	border-radius: 50%; 	margin-top: 5px; }  .pres_row {padding:10px;    border-bottom: 1px  #c5c6c6 solid;}.authors u a:link {color:white !important; }  .authors .presenter {background-color:#9bb1c5 !important  ; border-radius: 3px; color:white !important; display:inline; padding:2px 7px; text-decoration: none; font-weight:bold; white-space:nowrap; margin: 11px 0; line-height:2;}    .authors .presenter a:link {color:white !important; }  .paper_id {margin:1px 0; font-weight:500; ;}.x_abstract a:link {text-decoration: underline !important;} .presentation_summary {margin:20px 0px 30px 0px; }   .presentation_details{padding: 0px 10px 10px 0px;}   .presentation_summary {padding: 0px 0px 20px 0px;}   .presentation_type {}   .presentation_section {margin:20px 0px;    padding:10px;    background-color: #eee; display:none; }     /* .presentation {     display: flex;     justify-content: center;     width: auto;     max-width: 100%; }*/   .poster_link {padding:0px; margin:0px; }   .session {margin:auto; clear:both;}   .summary_label {font-weight:bold; text-align:left; margin-bottom:3px; padding-right:6px; float:left;}   .summary_value {padding-left:0px; float:left;}      .abstract {background-color: transparent;}   .abstract {padding: 0px 10px 0px 10px; line-height: 1.65em;}   .abstract .abstracttitle {margin-bottom:10px; font-weight:bold; font-size:1.2em; padding-bottom:3px;}   .abstract .abstracttext {margin-top:0px; text-align:justify;}   .abstract .authors-affiliations {margin-bottom:10px;   padding: 0;}   .abstract .authors {margin-bottom:10px;}   .affiliations {margin-bottom:10px; font-style: italic;  margin:0; padding:0; }      .authors u {       background-color: #9bb1c5;       border-radius: 3px;       color: white;       display: inline;       padding: 2px 7px;       text-decoration: none;       font-weight: bold;       white-space: nowrap;       margin: 11px 0;       line-height: 2;   }      .horiz_separator {color: #99bfe8; background-color: #99bfe8; height: 1px; border: 0; clear: both;}   .notes ul { margin: 0px; padding: 0px; display: inline; }   .notes li {  margin-left: 15px;  }  .speaker_pic_in_abstract { 	width: 100px; 	height: 100px; 	border-radius: 50%; 	padding: 0; }.presentation_entry {          display:flex;                     align-items:flex-start;           justify-content: space-between;           width:100%;      }            .uploaded_presentation {          width:240px;           display:flex;           flex-wrap:wrap;           align-items:flex-start;          justify-content: flex-end !important; display:none;      }               .glyphicon {         display: inline-block !important;     }        .fc-event-container a:link, .fc-event-container a:visited, .fc-event-container a:hover, .fc-event-container a:active {        text-decoration: none;    }        .fc-state-default {         background-color: transparent !important;         padding:4px 8px !important;        background-image: none !important;        box-shadow: none !important;        border: none !important;        text-shadow: none !important;        text-decoration:underline !important;        font-weight:bold !important;        color:#777 !important;    }        .fc-state-down, .fc-state-active {         background-color: transparent !important;         padding:4px 8px !important;        background-image: none !important;        box-shadow: none !important;        border: none !important;        text-shadow: none !important;    }      .fc-state-active {color:black !important;}    .fc-state-hover, .fc-state-down, .fc-state-active, .fc-state-disabled {       }/* fixed navigation bar at the top */                   #top_nav_fixed {                                    position: fixed;                     top: 0;                     width:100%;                     max-width: 940px;                     margin: auto;                     height: 40px;                     color: #555 !important;                     background-color: white !important;                     z-index: 1000;                     border-bottom: 0px #555 solid;                   }                   #top_nav_fixed a {color:#555 !important;}                   #navitems {                         display:flex;                         flex-wrap: nowrap;                         flex-direction:row;                         align-items:center !important;                         justify-content:space-between;                         height: 40px;                        padding: 0 5px;                     }                   .navitem {                       padding: 0;                       margin: 0 10px;                       font-weight: normal;                       font-size: 1.0em;                   }             .navitem_links {                         display:flex;                         flex-wrap: nowrap;                         flex-direction:row;                         align-items:center !important;                         justify-content:flex-end !important;                         width: 100%;                        white-space: nowrap;             } #cal_navitem{ display:none; }             .logo {                         display:flex;                         flex-wrap: nowrap;                         flex-direction:row;                         align-items:center !important;                         justify-content:flex-start !important;                         margin-right:auto;             }             .logo a {                        display:inline;                        overflow: hidden;                        text-overflow: ellipsis;            }                               .nav li {list-style:none;}                   .navitem a {text-decoration:none !important;}                   .nav_logo {                        font-weight:bold;                         font-size:1.3em;                         margin-right: auto;                        display:none;                        white-space: nowrap;                        overflow: hidden;                        text-overflow: ellipsis;               }                   .nav-txt {font-weight:bold;}                   /*  end of fixed navigation bar at the top */                                      @media (max-width: 500px)  {                     .zoom-desc {display:none;}                     .nav_logo {                        font-size: 1.0em;                        margin-right: auto;                        white-space: nowrap;                        overflow: hidden;                        text-overflow: ellipsis;                        max-width: 150px;                        display: block;                     }                  }/* Navigation pills (daily overviews) */ .nav {   margin-top:5px;  margin-bottom:10px; padding:0;   display:flex;   flex-wrap:wrap;   justify-content:center;   background-color: #2d401e!important; border-radius: 5px; } .nav li {list-style: none;} .nav-pills > li > a {   color: #eeffd8;   font-weight:bold;   border-width: 0px 0px 0px 0px !important;   border: transparent solid;   display:inline-block;   float:left;   margin:0px;   padding:10px 12px;   border-radius:0; text-decoration: none !important; } .nav-pills > li.active { border-bottom: none; } .nav-pills > li.active > a {   border-bottom: none;   color: #2d401e !important;   background-color:#eeffd8 ;   text-decoration: none !important; } .nav-pills > li > a:hover, .nav-pills > li > a:focus {   background-color: #eeffd8 !important; color: #2d401e; } .last_tab {   margin-right: 0;   border-right: 0 !important; }  #day_btns {  display:flex;  flex-direction:row;   justify-content:center;   align-items:center;   flex-wrap:wrap;  }  /* End of Navigation pills (daily overviews) */.hdr_frame {margin-top:0px;}               .session_header0 {             font-weight: normal;           }                                 .session_desc {             padding:0px;             margin:0;             font-size:1.0em;           }           .session_header0  .session_desc a:link {  text-decoration: underline; color: #2d401e;}            .session_desc  a {font-weight: bold; }           .session_desc  a:link {}                                            /* Links */                      a:link {             color: #2d401e;             text-decoration: underline;             font-weight: bold;           }           a:visited, a:hover, a:active {             color: #2d401e;             text-decoration: underline;             font-weight: bold;           }           .body_css a:link {             color: ;             text-decoration: none;             font-weight: bold;           }           .body_css a:visited, .body_css a:hover, .body_css a:active {             text-decoration: underline;           }           .abstracttitle a:link {             color: ;             text-decoration: underline;             font-weight: bold;           }           .abstracttitle a:visited, .abstracttitle a:hover, .session_desc a:active{            }                    .fc-right .fc-button {border:2px white solid !important; background-color:white !important;}          thead.fc-head {position:sticky; top:40px; background-color:white; z-index:10; }           .fc-event-container a:link, .fc-event-container a:visited, .fc-event-container a:hover, .fc-event-container a:active {             font-weight: normal !important;           }              .fc-event-container a:link, .fc-event-container a:visited, .fc-event-container a:hover, .fc-event-container a:active {              text-decoration: none;          }                    .fc-state-default {               background-color: transparent !important;               padding:4px 8px !important;              background-image: none !important;              box-shadow: none !important;              border: none !important;              text-shadow: none !important;              text-decoration:underline !important;              font-weight:bold !important;              color:#777 !important;          }                    .fc-state-down, .fc-state-active {               background-color: transparent !important;               padding:4px 8px !important;              background-image: none !important;              box-shadow: none !important;              border: none !important;              text-shadow: none !important;          }                  .fc-state-active {color:black !important;}          .fc-state-hover, .fc-state-down, .fc-state-active, .fc-state-disabled {                   }           /* Link to the abstract on the search page */           .result_title a:link {             color: #2d401e;             text-decoration: underline !important;             font-weight: bold;           }           /* end of Links */.hdr_frame {margin-top:0px;}    .time_cell {   width:auto;   white-space: nowrap; margin-top:2px;  /* white-space: nowrap;*/ }  /*#xport1 {display:none;}*/

@media (max-width: 768px)  {
    #side-menu-container {display:none !important;}
    #side-menu {display:none;}
}
@media (min-width: 769px)  {
    #left_menu_agenda {display:none;}
    #ham {display:none;}
    #side-menu {display:block;}
}

/*  Sliding left menu  */
.hamburger {
  font-size: max(1.1em, 18px);
  cursor: pointer;
  background-color:<banner_bgcolor_mobile>;
  color:<banner_color_mobile>;
  display:flex;
  flex-wrap:nowrap;
  align-items:center;
  padding:0;
  margin:0;
}
#ham a:link {
  color:<banner_color_mobile>;
  text-decoration:none;
}

.drawer {
  display: none;
}
.drawer_agenda_overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 1200;
  opacity: 0;
  transition: opacity 0.3s;
  will-change: opacity;
  background-color: #000;

  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.drawer_agenda_header {
  /* Optional */
  /* padding: 1.5rem; */
  padding: 0.25rem 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #ddd;
}

.drawer_agenda_close {
  /* Optional */
  margin: 0;
  padding: 0;
  border: none;
  background-color: transparent;
  flex-shrink: 0;
  margin-inline-start: 1rem;
  font-weight:bold;
  font-size:1.3em;
  color:#555;
}

.drawer_agenda_wrapper {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  height:100%;
  width: 100%;
  max-width: 300px;
  z-index: 9999;
  overflow: auto;

  transition: transform 0.3s;
  will-change: transform;
  background-color: #fff;

  display: flex;
  flex-direction: column;

  -webkit-transform: translate3d(103%, 0, 0);
  transform: translate3d(103%, 0, 0); /* extra 3% because of box-shadow */

  -webkit-overflow-scrolling: touch; /* enables momentum scrolling in iOS overflow elements */

  /* Optional */
  box-shadow: 0 2px 6px #777;
}

.drawer_agenda_content {
  position: relative;
  overflow-x: hidden;
  overflow-y: auto;
  height:100%;
  flex-grow: 1;
  /* padding: 1.5rem; */
  padding:0rem 1.5rem 0rem; padding-inline-start:0rem;
  margin: 0 1rem 0 -0.75rem;
}

.drawer--left .drawer_agenda_wrapper {
  left: 0;
  right: auto;
  -webkit-transform: translate3d(-100%, 0, 0);
  transform: translate3d(-100%, 0, 0);
}

.drawer.is-active {
  display: block;
}

.drawer.is-visible .drawer_agenda_wrapper {
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.drawer.is-visible .drawer_agenda_overlay {
  opacity: 0.5;
}

.drawer_agenda_content details > summary {
  list-style-type: none;
}
.drawer_agenda_content details > summary::-webkit-details-marker {
  display: none;
}
.drawer_agenda_content details.accordion > summary {
  list-style-type: none;
  display:flex;
}
.drawer_agenda_content details.accordion > summary::-webkit-details-marker {
  display: none;
}
.drawer_agenda_content details > summary:first-of-type {
    list-style-type: none;
}
.drawer_agenda_content details > summary {
    border-bottom: #777 solid 2px;
}
.drawer_agenda_content .tab_is_selected {background-color:transparent !important;}
.drawer_agenda_content .menu_hdr0 {border:none;}
/* End: Sliding left menu  */

body { font-family: 'Open Sans', sans-serif; }
.material-icons {
  font-family: 'Material Icons';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -moz-font-feature-settings: 'liga';
  -moz-osx-font-smoothing: grayscale;
}
.box {
    width:640px; 
    max-height: 360px;
    background-color: #000;
    position: relative;
}
.container {
  background-color: #000;
  position: relative;
  width: 100%;
  overflow: hidden;
  margin:0px 0;
  padding-top: 56.25%; /* 16:9 Aspect Ratio */
}
.responsive-iframe {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  width: 100%;
  height: 100%;
  border: none;
  padding:0; 
  margin:0;
  overflow: hidden;
}

.innerBox-container {
    position:absolute;
    top:0;left:0;
    display:flex;
    flex-direction:column;
    height:100%;
    width:100%;
    align-items:flex-start;
    justify-content:space-between;
    cursor: pointer;
}
#div-top {width:100%; }
#div-bottom {width:100%;}

/*
.center_hv {
    display:flex; 
    flex-direction:row; 
    justify-content:center;
    align-items:center; 
    display:block;
}


.outerBox {
    width:100%;
    height: 0;
    background: #000;
    padding-bottom: 56.25%;
    border:0;
    cursor: pointer; 
    position: relative;
}


.innerBox {
    background: transparent;
    padding: 0px;
    font-size: 20px;
    border:0;
    position: absolute;
    width:100%;
    height: 100%;left:0;
}

.start-button {
    font-size:5vh;
    z-index: 99;
    color: white;
    background: transparent;
}
*/

.result_block, .result_altblock { padding:0 20px 20px; }
.result_session_title { font-weight: 600; font-size: 1em; padding: 4px 20px; margin: 0 -20px 6px -20px; background-color: rgba(0,0,0,0.04); color: #262525; word-wrap: break-word; }
.result_title { font-size: 1em; }
.result_title a { font-weight: normal !important; text-decoration: underline !important; }
.result_title a:hover { text-decoration: none !important; }
/* .result_title::after { content: '\203A'; margin-inline-start: 0.4em; font-size: 1.6em; line-height: 1; } */
.form-control, input.zoom_searchbox {
    // width: 30em !important;
    padding-inline-start: 0.25em;
    margin:0px 20px 10px; margin-inline-start:0;
    border: 1px solid #bbb;
    border-radius: 4px;
    box-shadow: none;
}
h1, h1.filter_hdr {color:#555;}
.container_fluid.zoom_metaform {
	padding-bottom: 16px;
}
.summary, .result_pagescount {
	padding: 0 !important;
	margin: 0 !important;
}
@media (max-width: 768px) {
    .summary, .result_pagescount {
        padding: 0 !important;
        margin:0 0 0; margin-inline-start:11px !important;
    }
}
.result_block, .result_altblock {
	display: flex;
	flex-direction: column;
}
@media (max-width: 768px)  {@media (max-width:768px)  {
body {background-color: white !important;

  /* These are technically the same, but use both */
  overflow-wrap: break-word;
  word-wrap: break-word;

  -ms-word-break: break-all;
  /* This is the dangerous one in WebKit, as it breaks things wherever */
  word-break: break-all;
  /* Instead use this non-standard one: */
  word-break: break-word;

  /* Adds a hyphen where the word breaks, if supported (No Blink) */
  -ms-hyphens: auto;
  -moz-hyphens: auto;
  -webkit-hyphens: auto;
  hyphens: auto;
}

.pres_cell {
  margin: 0px;
  flex-grow: 1;
}

 .big-start-btn .start-button {display:none;}
#content0 {
  padding: 0;
  margin: 40px 0 0 0;
  background-color: white;
  height: 101% !important;
  box-shadow: none;
}
#content1 {
  padding: 0px 0px;
  margin: 0px;
  background-color: white;
  box-shadow: none;
}
#content2 {padding:0;}
.page_bottom {
  margin:0 20px;
}
.mobile_banner {width:100%; margin:10px; background-color:white; color:#4a9cd7; margin-top:20px;display: none;}
.mobile_banner_srch {}

#srch_frm {margin: 0 10px;}
.search_section, .result_section, #search_results, .summary {
  padding: 10px;
  margin: 0px;
}
.searchheading  h1 {    padding: 20px 0 0 10px;}

.results {
  padding: 0 0px;
  margin: 0 10px;
}
.zoom_metaform_text {
  max-width: 20em;
}
input.zoom_searchbox {
  max-width: 20em;
}
.result_custommeta {display:inline-block; }
.result_metaname {
    font-weight: bold;
    word-break: keep-all;
}


.presentation_entry {
         display:flex; 
         flex-direction:column;
         align-items:flex-start; 
         justify-content: space-between; 
         width:100%;
     }

.pic {margin:0; display:block; float:none; width:100%; height:auto;}

#xport1 {margin-left: 20px;}

  .back_link {
    padding: 0 !important; 
width: 100% !important;
  }
.back_link a {text-decoration: none !important;}

.session_times {}
.session_desc .text_right {
  text-align: left  !important;
  margin-left:0px  !important;
width:100%  !important;
padding-top: 12px;
padding-right: 16px;
}

h1.filter_hdr {
  margin: 0;
}


.abstract {
  padding: 0px 6px;
}
.abstracttext {text-align:left !important;}
.abstracttext a:link {text-decoration:underline !important;}


.save-to-cal-checkbox {
  margin: 0 6px;
}

#calendar {
  padding: 10px 16px;
}
.fc-agendaAllDays-button {display:none;}
.embedded_link {
    width:300px !important; 
    height:200px !important;
}

}}