/* MD_FILE_VERSION: 1.0.014 | CHANGED: 2026-04-26 09-31-54 */
/* Copyright Information
 * =====================
 * Copyright (c) 2026, The Scripps Research Institute
 * Developed by Dr. Gennadii Grabovyi
 *
 * Third-Party Notices and Licenses
 * ================================
 * This UI stylesheet relies on:
 * 1) Ketcher (served from `ketcher/`): Apache License 2.0.
 * See corresponding backend module docstrings for detailed attributions.
 */

/* Core shell, top bar, side dock, and side-pane frame styles. */
  /* Side pane and dock (left tools panel) */
	  :root{
	    --sidepane-width: 580px;
	    --sidedock-width: 52px;
	    --topbar-h: var(--sidedock-width);
    --dock-bg: #111827;
    --dock-accent: #7aa2ff;
    --settings-active-bg: #15803d; /* slightly darker for light mode */
    /* Max height for md-sheet-picker popups (column/sheet pickers); the options list scrolls. */
    --md-sheet-picker-max-h: 40vh;
    /* Shared side pane spacing (applies to all current + future panes) */
    --sidepane-content-pad-x: 12px;  /* symmetric content inset (cards/fieldsets) */
    --sidepane-scrollbar-gap: 3px;   /* tiny gap between scrollbar and pane edge */
    --sidepane-content-pad-right: max(0px, calc(var(--sidepane-content-pad-x) - var(--sidepane-scrollbar-gap)));
    --sidepane-body-pad-top: 2px;
    --sidepane-body-pad-right: var(--sidepane-scrollbar-gap);
    --sidepane-body-pad-bottom: 10px;
    --sidepane-body-pad-left: var(--sidepane-content-pad-x);
    --sidepane-section-pad-top: 18px; /* room for legend-style titles at scroll top */
    --sidepane-header-title-slot-width: 148px; /* dynamic slot used by header action panes */
    --sidepane-resizer-hit: 8px;
    /* Keep the resizer from overlapping the scrollbar: match inside overlap to the gap. */
    --sidepane-resizer-inset: var(--sidepane-scrollbar-gap);
    /* Shared "fieldset" styling used across side panes (Compounds/Filter/PD) + Settings */
    --pane-fieldset-radius: 12px;
    --pane-fieldset-pad-top: 17px;
    --pane-fieldset-pad-x: 12px;
    --pane-fieldset-pad-bottom: 8px;
    /* Vertical spacing between dashed frames (cards/fieldsets) across all panes */
    --pane-dashed-gap: 16px;
    --pane-fieldset-legend-left: 12px;
    --pane-fieldset-legend-pad-x: 8px;
	    --pane-fieldset-legend-font-size: 15px;
	    --pane-fieldset-legend-font-weight: 400;
	    /* Filter value list: frozen header row color (Search + count) */
	    --md-filter-values-hdr-bg: #EDF0F3;
	    --md-filter-values-hdr-fg: #000000;
	    /* Side pane dashed cards: shared vertical resizer mins (per-card targets) */
	    --md-side-ketcher-min-h: 200px;
	    --md-paste-area-min-h: 50px;
	  }
	  :root[data-theme="dark"]{
	    --settings-active-bg: #16a34a;
	    --md-filter-values-hdr-bg: #373A45;
	    --md-filter-values-hdr-fg: #ffffff;
	  }

  /* Linux Chromium can display a collapsed "typing" caret in non-editable page text after a click.
     Hide that caret globally while restoring normal caret behavior for actual editors/inputs. */
  body{
    caret-color: transparent;
  }
  input,
  textarea,
  select,
  [contenteditable]:not([contenteditable="false"]){
    caret-color: auto !important;
  }

  /* Top application bar (full width; fixed) */
  #topBar{
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: var(--topbar-h);
    background: var(--dock-bg);
    color: #ffffff;
	    z-index: 40; /* keep below modals (85+) */
	    display: flex;
	    align-items: center;
	    border-bottom: 1px solid transparent;
	    box-sizing: border-box;
	  }
  #topBarInner{
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    /* Align the logo over the side dock (no left padding), while keeping some right padding. */
    padding: 0 16px 0 0;
    box-sizing: border-box;
  }
  #topBar .topbar-brand{
    display: inline-flex;
    align-items: baseline;
    gap: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  #topBar .topbar-title{
    font-weight: 600;
    font-size: 22px;
    letter-spacing: 0.1px;
  }
  #topBar .topbar-sep{
    opacity: 0.75;
  }
  #topBar .topbar-credit{
    font-size: 12px;
    font-weight: 500;
    opacity: 0.9;
  }
  #topBar .topbar-left{
    flex: 0 1 auto;
    min-width: 0;
    display:flex;
    align-items:center;
  }
  #topBar .topbar-logo{
    width: var(--sidedock-width);
    height: var(--topbar-h);
    flex: 0 0 var(--sidedock-width);
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    text-decoration:none;
    background: transparent;
    transition: background-color .15s ease, transform .12s ease;
  }
  #topBar .topbar-logo:hover{
    background:rgba(148, 163, 184, 0);
    transform:translateY(-1px);
  }
  #topBar .topbar-logo:focus-visible{
    outline:none;
    box-shadow:0 0 0 3px rgba(96,165,250,0.35);
  }
  #topBar .topbar-logo img{
    width:40px; /* match the side dock button width */
    height:auto;
    max-height:40px;
    display:block;
    user-select:none;
    pointer-events:none;
  }
  #topBar .topbar-center{
    flex: 1 1 auto;
    min-width: 0;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  /* Real-Time Update Messages (RTUMs) */
  #rtumsArea{
    height:32px;
    width:100%;
    max-width:720px;
    display:flex;
    align-items:center;
    justify-content:center;
    user-select:none;
    cursor: context-menu;
  }
  #rtumsArea:focus-visible{
    outline:none;
    box-shadow:0 0 0 3px rgba(96,165,250,0.35);
    border-radius:10px;
  }
  #rtumsText{
    min-width:0;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    opacity:0;
    transition:opacity .35s ease;
    color:#e5e7eb;
    font-size:13px;
    font-weight:600;
    line-height:1.2;
  }
  #rtumsText.show{ opacity:1; }
  #rtumsText.fade{ opacity:0; }
  #topBar .topbar-right{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
  }
  #topBar .topbar-pill{
    height:32px;
    display:inline-flex;
    align-items:center;
    padding:0 12px;
    border-radius:10px;
    border:1px solid rgba(148,163,184,0.8);
    background: rgba(0,0,0,0.10);
    color:#e5e7eb;
    user-select:none;
    white-space:nowrap;
    box-sizing:border-box;
  }
  #topBar .topbar-pill.ok{ border-color:#16a34a; }
  #topBar .topbar-pill.bad{ border-color:#ef4444; }

  /* Keep the app content below the fixed top bar */
  body{
    padding-top: var(--topbar-h);
  }

  #sideDock{
    position:fixed;
    top:var(--topbar-h);
    bottom:0;
    left:0;
    width:var(--sidedock-width);
    background:var(--dock-bg);
    color:#e5e7eb;
    z-index:35;
    display:flex;
    flex-direction:column;
    align-items:center;
    padding:1px 6px 10px;
    box-sizing:border-box;
    gap:8px;
    pointer-events:none;
  }
  #sideDock .dock-spacer{
    flex:1 1 auto;
    width:100%;
    pointer-events:none;
  }
  #sideDock .dock-divider{
    width:40px;
    height:1px;
    background: rgba(148,163,184,0.45);
    border-radius:999px;
  }
  #sideDock .dock-btn{
    width:40px;
    height:40px;
    border-radius:10px;
    border:1px solid rgba(148,163,184,0.8);
    background:transparent;
    color:#9ca3af;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    pointer-events:auto;
    padding:0;
    transition:background-color .15s ease, border-color .15s ease, color .15s ease, transform .12s ease;
  }
  #sideDock .dock-btn:hover{
    background:rgba(148,163,184,0.18);
    transform:translateY(-1px);
  }
  #sideDock .dock-btn.active{
    background:var(--dock-accent);
    border-color:var(--dock-accent);
    color:#ffffff;
  }
  #sideDock .dock-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    pointer-events:none;
    font-size:30px;
    line-height:1;
  }

  /* ===== Theme toggle (sun/moon) dock button ===== */
  #sideDock .dock-btn.md-theme-toggle{
    /* Colors from light_dark_toogle.html */
    --sun: #FDB813;
    --moon: #E0E7FF;
  }
  #sideDock .dock-btn.md-theme-toggle svg{
    width:28px;
    height:28px;
  }
  #sideDock .dock-btn.md-theme-toggle .sun{
    fill: var(--sun);
    transition: transform 0.6s ease, opacity 0.4s ease;
    transform-origin: center;
  }
  #sideDock .dock-btn.md-theme-toggle .rays{
    stroke: var(--sun);
    stroke-width: 2.5;
    stroke-linecap: round;
    transition: opacity 0.4s ease, transform 0.6s ease;
    transform-origin: center;
  }
  #sideDock .dock-btn.md-theme-toggle .moon{
    fill: var(--moon);
    opacity: 0;
    transform: scale(0.6);
    transition: opacity 0.4s ease, transform 0.6s ease;
    transform-origin: center;
  }
  :root[data-theme="dark"] #sideDock .dock-btn.md-theme-toggle .sun{
    transform: scale(0.4);
    opacity: 0;
  }
  :root[data-theme="dark"] #sideDock .dock-btn.md-theme-toggle .rays{
    opacity: 0;
    transform: rotate(90deg);
  }
  :root[data-theme="dark"] #sideDock .dock-btn.md-theme-toggle .moon{
    opacity: 1;
    transform: scale(1);
  }
  #sideDock .dock-icon-pd{
    font-size:18px;
    font-weight:600;
    letter-spacing:0.6px;
  }
  #sideDock .dock-icon-compounds{
    transform: translateY(1px);
  }
  #sideDock .dock-icon svg{
    width:28px;
    height:28px;
    display:block;
  }
  /* Legacy mask-based Reagents Catalog dock icon disabled.
     The active implementation now uses the inline SVG in frontend_index.html. */
  /*
  #sideDock .dock-icon-reagents-catalog{
    --md-reagents-catalog-icon-mask: url("data:image/png;base64,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");
    width:28px;
    height:28px;
    display:block;
    --md-reagents-catalog-icon-mask: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCA1NiA1Nic+CiAgPGcgZmlsbD0nbm9uZScgc3Ryb2tlPSdibGFjaycgc3Ryb2tlLXdpZHRoPSc0LjgnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCc+CiAgICA8cGF0aCBkPSdNOCAxNlE4IDExIDEzIDExSDIyUTI3IDExIDI3IDE2VjQxUTI1IDQwIDIzIDM5LjRRMjAuNSAzOC41IDE3LjUgMzguNUgxM1E4IDM4LjUgOCAzMy41WicvPgogICAgPHBhdGggZD0nTTI5IDE2UTI5IDExIDM0IDExSDQzUTQ4IDExIDQ4IDE2VjMzLjVRNDggMzguNSA0MyAzOC41SDM4LjVRMzUuNSAzOC41IDMzIDM5LjRRMzEgNDAgMjkgNDFaJy8+CiAgICA8cGF0aCBkPSdNMjggMTRWNDMnLz4KICAgIDxwYXRoIGQ9J00zNSAxOC41SDQyLjUnLz4KICAgIDxwYXRoIGQ9J00zNSAyNC41SDQyLjUnLz4KICAgIDxwYXRoIGQ9J00zNSAzMC41SDQyLjUnLz4KICAgIDxwYXRoIGQ9J00zNSAzNi41SDQyLjUnLz4KICA8L2c+Cjwvc3ZnPg==");
    background-color: currentColor;
    -webkit-mask-image: var(--md-reagents-catalog-icon-mask);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    mask-image: var(--md-reagents-catalog-icon-mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
  }
  */
  #sideDock #btnExport .dock-icon svg{
    transform: scaleY(0.9);
    transform-origin:center;
  }
  #sideDock .dock-icon-data svg{
    width:40px;
    height:40px;
  }
  :root[data-theme="dark"] #sideDock{
    background:var(--dock-bg);
    color:#e5e7eb;
  }

  #sidePane{
    position:fixed;
    top:var(--topbar-h);
    bottom:0;
    left:var(--sidedock-width);
    width:var(--sidepane-width);
    min-width:300px;
    background:var(--panel);
    border-right:1px solid var(--line-dark);
    box-shadow:4px 0 12px rgba(0,0,0,0.25);
    z-index:34;
    transform:translateX(-100%);
    transition:transform .22s ease-out;
    display:flex;
    flex-direction:column;
  }
  body.sidepane-open #sidePane{
    transform:translateX(0);
  }

  /* Side pane resizer (drag right edge) */
  #sidePaneResizer{
    position:absolute;
    top:0;
    bottom:0;
    right:calc(-1 * (var(--sidepane-resizer-hit) - var(--sidepane-resizer-inset))); /* keep the scrollbar usable */
    width:var(--sidepane-resizer-hit);
    cursor:ew-resize;
    z-index:2;
    background:transparent;
    pointer-events:none; /* avoid hover/cursor when pane is closed */
  }
  body.sidepane-open #sidePaneResizer{ pointer-events:auto; }
  #sidePaneResizer::after{
    content:"";
    position:absolute;
    top:0;
    bottom:0;
    left:50%;
    width:2px;
    transform:translateX(-1px);
    background:var(--line-dark);
    opacity:0;
    transition: opacity .15s ease;
    pointer-events:none;
  }
  #sidePaneResizer:hover::after{
    opacity:0.85;
  }
  body.sidepane-resizing{
    cursor: ew-resize;
    user-select: none;
  }
  body.sidepane-resizing #sidePaneResizer::after{
    opacity:0.95;
  }
  #sidePaneHeader{
    padding:10px 12px;
    border-bottom:1px solid var(--line-dark);
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:nowrap;
  }
  #sidePaneHeaderTitle{
    font-weight:600;
    font-size:15px;
    flex:0 0 auto;
    line-height:22px; /* keep header height stable without a close button */
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
	  #sidePaneHeaderControls{
	    flex:1 1 auto;
	    min-width:0;
	    display:none; /* only shown for panes that need header controls (e.g., Data) */
	    align-items:center;
	  }
		  /* About pane: 2-row header
		     Row 1: title + search + match navigation
		     Row 2: actions (3 equal buttons) */
		  #sidePane[data-pane="about"] #sidePaneHeader{
		    display:grid;
		    grid-template-columns:auto 1fr;
		    grid-template-rows:auto auto;
		    column-gap:10px;
		    row-gap:8px;
		    align-items:center;
		  }
		  #sidePane[data-pane="about"] #sidePaneHeaderControls{
		    display:contents;
		  }
		  #aboutHeaderRow1{ display:none; }
		  #aboutSearch{ display:none; }
		  #aboutHeaderActions{ display:none; }
		  #sidePane[data-pane="about"] #propsSearch{ display:none; }
		  #sidePane[data-pane="about"] #filterHeaderActions{ display:none; }
		  #sidePane[data-pane="about"] #sidePaneHeaderTitle{ grid-column:1; grid-row:1; }
		  #sidePane[data-pane="about"] #aboutHeaderRow1{ display:flex; grid-column:2; grid-row:1; }
		  #sidePane[data-pane="about"] #aboutSearch{ display:block; }
		  #sidePane[data-pane="about"] #aboutHeaderActions{
		    display:grid;
		    grid-column:1 / -1;
		    grid-row:2;
		    width:100%;
		  }
  /* Shared header-action groups (Filter/Search Compounds/Import Tabs and future panes). */
  #sidePaneHeaderControls .md-pane-header-actions{
    display:none;
    width:100%;
  }
  #sidePane[data-header-actions="true"] #sidePaneHeader{
    position:relative;
    display:block;
  }
  #sidePane[data-header-actions="true"] #sidePaneHeaderTitle{
    position:absolute;
    top:10px;
    left:12px;
    width:var(--sidepane-header-title-slot-width, 148px);
    line-height:36px;
    pointer-events:none;
  }
  #sidePane[data-header-actions="true"] #sidePaneHeaderControls{
    display:block;
    margin-left:0;
  }
  #sidePane[data-header-actions="true"] #propsSearch,
  #sidePane[data-header-actions="true"] #aboutHeaderRow1,
  #sidePane[data-header-actions="true"] #aboutHeaderActions{
    display:none;
  }
  #sidePane[data-header-actions="true"] #sidePaneHeaderControls .md-pane-header-actions.is-active{
    display:flex;
    align-items:stretch;
    flex-wrap:wrap;
    gap:10px;
  }
  #sidePane[data-header-actions="true"] #sidePaneHeaderControls .md-pane-header-actions.is-active::before{
    content:"";
    flex:0 0 var(--sidepane-header-title-slot-width, 148px);
    height:36px;
  }
  /* Data pane: show search in header and align it with the dashed frame below. */
  #sidePane[data-pane="data"] #sidePaneHeader{
    /* Align the header's right edge to match the internal scrollbar gutter. */
    padding-right: var(--sidepane-body-pad-right);
    /* Keep header height unchanged while making the search taller. */
    padding-top:8px;
    padding-bottom:8px;
    display:grid;
    grid-template-columns:auto 1fr calc(var(--scrollbar-size, 16px) + var(--sidepane-content-pad-right));
    gap:0; /* keep the search right edge aligned with the dashed frame */
    align-items:center;
  }
  #sidePane[data-pane="data"] #sidePaneHeaderControls{
    display:flex;
    margin-left:8px; /* match default header spacing without shifting the right edge */
  }
  #sidePaneBody{
    padding:var(--sidepane-body-pad-top) var(--sidepane-body-pad-right) var(--sidepane-body-pad-bottom) var(--sidepane-body-pad-left);
    flex:1 1 auto;
    min-height:0;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .side-pane-section{
    display:block;
    flex:1 1 auto;
    min-height:0;
    overflow:auto;
    /* Make room for legend-style titles so they don't clip at scroll top */
    padding-top:var(--sidepane-section-pad-top);
    /* Keep card/fieldset content symmetric while letting the scrollbar sit near the edge. */
    padding-right:var(--sidepane-content-pad-right);
    box-sizing:border-box;
  }
  /* Data pane owns its own internal scroll region */
  .side-pane-section[data-pane="data"]{
    overflow:hidden;
    padding-top:var(--sidepane-section-pad-top);
    padding-right:0; /* let the inner scroll region reach the pane edge (scrollbar alignment) */
  }
