:root {
  --bg: #0f172a;         
  --panel: #0b1220;      
  --panel-contrast: #0b1220f5;
  --text: #e2e8f0;       
  --muted: #94a3b8;      
  --border: #1f2937;     
  --accent: #3b82f6;     
  --code-bg: #0b1220;
  --code-border: #1f2937;
  --blockquote-bg: rgba(255,255,255,0.03);
  --toolbar-icon: #e5e7eb;           
  --toolbar-icon-active: #ffffff;    
  --toolbar-bg: var(--panel);
  --toolbar-hover: rgba(255,255,255,0.06);
  --toolbar-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.light {
  --bg: #f6f8fa;
  --panel: #ffffff;
  --panel-contrast: #ffffffcc;
  --text: #24292f;
  --muted: #6b7280;
  --border: #d0d7de;
  --accent: #2563eb;
  --code-bg: #f6f8fa;
  --code-border: #d0d7de;
  --blockquote-bg: #f8fafc;
  --toolbar-icon: #1f2937;           
  --toolbar-icon-active: #111827;
  --toolbar-bg: #ffffff;
  --toolbar-hover: rgba(0,0,0,0.06);
  --toolbar-shadow: 0 2px 10px rgba(0,0,0,.08);
}
html, body { height: 100%; }
body {
  background: radial-gradient(1200px 800px at 10% -10%, #1f2937 0%, var(--bg) 40%),
              radial-gradient(800px 600px at 110% 10%, #0b1220 0%, var(--bg) 50%);
  color: var(--text);
  font-family: 'Inter', 'Roboto', 'Segoe UI', Arial, sans-serif;
}
.light body { background: var(--bg); }

#preview { background: transparent; }

.EasyMDEContainer { height: 100%; display: flex; flex-direction: column; }
.EasyMDEContainer .CodeMirror { flex: 1 1 auto; height: 100% !important; font-size: 0.98rem; background: var(--panel); color: var(--text); }

.editor-toolbar {
  background: var(--toolbar-bg);
  border-color: var(--border) !important;
  border-radius: 12px 12px 0 0;
  box-shadow: var(--toolbar-shadow);
  padding: 6px 8px;
  line-height: 1;
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
  border-bottom: 1px solid var(--border) !important;
}
.editor-toolbar a {
  color: var(--toolbar-icon) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 34px !important;
  min-width: 34px !important;
  padding: 0 8px !important;
  margin: 2px 3px !important;
  border-radius: 8px !important;
  transition: background .15s ease, color .15s ease, transform .05s ease;
  font-size: 1.05rem !important;
}
.editor-toolbar a:hover, .editor-toolbar a.active {
  color: var(--toolbar-icon-active) !important;
  background: var(--toolbar-hover) !important;
}

.editor-toolbar .fa, .editor-toolbar .fa:before,
.editor-toolbar svg { color: inherit !important; fill: currentColor !important; }
.editor-toolbar i.separator { border-color: var(--border) !important; opacity: .7; margin: 0 6px !important; }
.CodeMirror-cursor { border-left: 2px solid var(--accent) !important; }
.CodeMirror-gutters { background: var(--panel); border-right: 1px solid var(--border); }
.cm-s-default .CodeMirror-linenumber { color: var(--muted); }

.editor-toolbar i.separator { border-color: var(--border) !important; opacity: .7; }

.editor-toolbar .fa, .editor-toolbar .fa:before { color: inherit; }

.editor-toolbar .fa { width: 18px; text-align: center; }

.navbar .nav-link, .navbar-brand { color: inherit; }
.navbar .dropdown-item i { width: 1.25rem; }

.dark .navbar .navbar-brand { color: #e5e7eb !important; }
.dark .navbar .navbar-brand:hover { color: #ffffff !important; background: transparent !important; }

.markdown-body { max-width: 100%; color: var(--text); line-height: 1.7; }
.markdown-body h1, .markdown-body h2, .markdown-body h3,
.markdown-body h4, .markdown-body h5, .markdown-body h6 { color: var(--text); margin-top: 1.25rem; font-weight: 700; }
.markdown-body p, .markdown-body li { color: var(--text); }
.markdown-body a { color: var(--accent); text-decoration: none; }
.markdown-body a:hover { text-decoration: underline; }
.markdown-body hr { border: 0; border-top: 1px solid var(--border); margin: 1.25rem 0; }
.markdown-body blockquote { border-left: 4px solid var(--border); padding: .5rem 1rem; color: var(--muted); background: var(--blockquote-bg); }
.markdown-body pre, .markdown-body code { background: var(--code-bg); border: 1px solid var(--code-border); color: var(--text); }
.markdown-body pre { padding: .75rem; border-radius: 8px; overflow: auto; }
.markdown-body table { border-collapse: collapse; width: 100%; background: var(--panel); }

.markdown-body table th, .markdown-body table td { border: 1px solid var(--border); padding: .6rem .8rem; color: var(--text) !important; opacity: 1 !important; }
.markdown-body table thead th { color: var(--text) !important; }
.markdown-body table tbody td { color: var(--text) !important; }
.markdown-body table tr, .markdown-body table td, .markdown-body table th { filter: none !important; }
.markdown-body table th { background: #1b2433; color: #e2e8f0 !important; font-weight: 600; }

.markdown-body table td { background: rgba(255,255,255,0.065); }
.markdown-body tr:nth-child(even) td { background: rgba(255,255,255,0.06); }
.markdown-body tr:hover td { background: rgba(59,130,246,0.12); }
.light .markdown-body th { background: #f0f3f6; color: #24292f; }
.light .markdown-body tr:nth-child(even) td { background: #fafbfc; }
#preview img { max-width: 100%; height: auto; }

.dark #preview .markdown-body table { background: var(--panel) !important; border-color: var(--border) !important; }
.dark #preview .markdown-body table td,
.dark #preview .markdown-body table th {
  color: var(--text) !important;
  border-color: var(--border) !important;
  opacity: 1 !important;
  filter: none !important;
}
.dark #preview .markdown-body table td { background-color: rgba(255,255,255,0.07) !important; }
.dark #preview .markdown-body tr:nth-child(even) td { background-color: rgba(255,255,255,0.1) !important; }
.dark #preview .markdown-body tr:hover td { background-color: rgba(59,130,246,0.18) !important; }

.dark .markdown-body table,
.dark .markdown-body table * {
  color: var(--text) !important;
  opacity: 1 !important;
}

.dark .markdown-body table td,
.dark .markdown-body table td * { color: var(--text) !important; }

.dark #preview .markdown-body table tbody td,
.dark #preview .markdown-body table tbody td * {
  color: #e5e7eb !important;
  opacity: 1 !important;
}

button.nav-link { cursor: pointer; }

.app-header {
  backdrop-filter: blur(12px);
  background: linear-gradient(180deg, var(--panel-contrast), transparent);
  border-bottom: 1px solid var(--border);
}
.modal-open .app-header { backdrop-filter: none !important; background: var(--panel) !important; }
.app-shell { min-height: calc(100vh - 64px); }
.pane { display: flex; flex-direction: column; min-width: 0; }
.card-pane {
  background: linear-gradient(180deg, var(--panel), var(--panel));
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: 0 10px 30px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.02);
}
.light .card-pane { box-shadow: 0 10px 24px rgba(0,0,0,.08), inset 0 1px 0 rgba(255,255,255,.6); }
.pane-header {
  padding: .75rem 1rem;
  border-bottom: 1px solid var(--border);
  color: var(--text);
}
.pane-header .text-muted { color: var(--muted) !important; }

.list-group-item { background: var(--panel); color: var(--text); border-color: var(--border); }
.modal-content.bg-body { background: var(--panel); color: var(--text); border-color: var(--border); }

.form-switch .form-check-input { cursor: pointer; }

.EasyMDEContainer .CodeMirror { line-height: 1.55; }

.editor-toolbar {
  display: flex !important;
  flex-wrap: wrap !important;   
  align-items: center !important;
  white-space: normal !important;
  overflow: visible !important; 
  text-align: left !important;
  gap: 2px 4px;                 
}
.editor-toolbar a, .editor-toolbar i.separator {
  display: inline-flex !important;
  flex: 0 0 auto !important;
  vertical-align: middle !important;
}

.editor-toolbar .fa-table { line-height: 1 !important; font-size: 1.05rem !important; }

.editor-toolbar a.table,
.editor-toolbar button.table {
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  height: 34px !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 2px 3px !important;
  padding: 0 8px !important;
}

.navbar { position: relative; z-index: 1500; }
.dropdown-menu { z-index: 2000; }

.dropdown-menu .fa, .dropdown-menu .fa-solid, .dropdown-menu i.fa-solid {
  font-family: "Font Awesome 6 Free" !important;
  font-weight: 900 !important;
  display: inline-block;
  width: 1.25rem;
  text-align: center;
}

.dropdown-menu i { color: inherit; }

.dropdown-menu { border-radius: 10px; border: 1px solid var(--border); box-shadow: 0 8px 24px rgba(0,0,0,.15); }
.dropdown-menu .dropdown-item { padding: .6rem .9rem; display: flex; align-items: center; gap: .6rem; }
.dropdown-menu .dropdown-item i { width: 1.1rem; text-align: center; }

.dark .dropdown-menu { background: #0f172a; color: #e5e7eb; border-color: #1f2937; box-shadow: 0 12px 28px rgba(0,0,0,.45); }
.dark .dropdown-menu .dropdown-item { color: #e5e7eb; }
.dark .dropdown-menu .dropdown-item:hover { background: rgba(255,255,255,0.08); color: #fff; }

.dropdown-menu::before { border-bottom-color: var(--border); }

.dark .editor-toolbar a { color: #ffffff !important; }
.dark .editor-toolbar a:hover, .dark .editor-toolbar a.active { color: #ffffff !important; background: rgba(255,255,255,0.12) !important; }
.dark .editor-toolbar .fa, .dark .editor-toolbar .fa:before, .dark .editor-toolbar svg { color: #ffffff !important; fill: #ffffff !important; }

.dark .editor-toolbar a:hover,
.dark .editor-toolbar a:focus,
.dark .editor-toolbar a.active {
  background: rgba(255,255,255,0.18) !important;
  outline: none !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.25) !important;
}
.dark .editor-toolbar a:focus-visible {
  box-shadow: inset 0 0 0 2px #60a5fa !important; 
}

.dark .editor-toolbar a,
.dark .editor-toolbar button {
  color: #ffffff !important;
  border-radius: 8px !important;
  transition: background .15s ease, box-shadow .15s ease, color .15s ease;
}

.dark .editor-toolbar a:hover,
.dark .editor-toolbar button:hover,
.dark .editor-toolbar a.active,
.dark .editor-toolbar button.active {
  background: rgba(255,255,255,0.12) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18) !important;
}

.dark .editor-toolbar a:hover *,
.dark .editor-toolbar button:hover * { background: transparent !important; }

.navbar .fa-solid { font-family: "Font Awesome 6 Free" !important; font-weight: 900 !important; }

.doc-title-input { width: 220px; background: transparent; color: var(--text); border-color: var(--border); }
.doc-title-input::placeholder { color: var(--muted); }
.dark .doc-title-input { background: rgba(255,255,255,0.06); color: #e5e7eb; border-color: #374151; }
.dark .doc-title-input:focus { background: rgba(255,255,255,0.09); color: #fff; }

.navbar .nav-link,
.navbar .dropdown-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 8px;
}
.navbar .nav-link i,
.navbar .dropdown-toggle i { color: inherit; }

.navbar .nav-link:hover,
.navbar .dropdown-toggle:hover { background: rgba(0,0,0,0.06); }

.dark .navbar .nav-link,
.dark .navbar .dropdown-toggle { color: #e5e7eb; }
.dark .navbar .nav-link:hover,
.dark .navbar .dropdown-toggle:hover { background: rgba(255,255,255,0.12); color: #ffffff; }

.navbar .dropdown-toggle::after { margin-left: 6px; }

.doc-title-pill {
  display: inline-block;
  max-width: 360px;
  padding: 4px 10px;
  border-radius: 10px;
  background: rgba(0,0,0,0.04);
  border: 1px solid var(--border);
  color: var(--text);
  cursor: text;
}
.doc-title-pill:focus { outline: none; box-shadow: inset 0 0 0 2px var(--accent); }
.dark .doc-title-pill { background: rgba(255,255,255,0.06); border-color: #374151; color: #e5e7eb; }

#btn-theme { display: inline-flex; align-items: center; gap: 6px; }
.dark #btn-theme { color: #e5e7eb; }
.dark #btn-theme:hover { background: rgba(255,255,255,0.12); border-radius: 8px; }

.dropdown-menu { min-width: 260px; }
.dropdown-menu .dropdown-item { white-space: nowrap; }
.dropdown-menu::before, .dropdown-menu::after { display: none !important; }

#leftPane, #rightPane { transition: all .2s ease; }

.read-mode .app-header { position: sticky; top: 0; z-index: 1500; }
.read-mode #leftPane { display: none !important; }
.read-mode #rightPane { width: 100% !important; flex: 1 1 auto; }
.read-mode #rightPane[class*="col-"] { float: none; max-width: 100%; }

.read-mode .app-shell .row { height: calc(100vh - 72px) !important; }

.read-mode .footer-credit-wrap {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 20px;
  z-index: 1500;
}
.read-mode .footer-credit-wrap .footer-credit {
  background: rgba(0,0,0,0.8);
  color: #ffffff;
  border: 1px solid rgba(255,255,255,0.2);
}
.read-mode .footer-credit-wrap .footer-credit { pointer-events: auto; }

#samplesModal .modal-content { border: 1px solid var(--border); }
#samplesModal .list-group-item { background: var(--panel); color: var(--text); border-color: var(--border); }
#samplesModal .list-group-item .fw-semibold { color: var(--text); }
#samplesModal .text-muted { color: var(--muted) !important; }
#samplesModal .btn.btn-outline-primary { color: var(--text); border-color: var(--border); }
#samplesModal .btn.btn-outline-primary:hover { background: var(--toolbar-hover); color: var(--text); }
#samplesModal .btn.btn-outline-secondary { color: var(--text); border-color: var(--border); }
#samplesModal .btn.btn-outline-secondary:hover { background: var(--toolbar-hover); color: var(--text); }

.light #samplesModal .btn:hover { background: rgba(0,0,0,0.06); }

.dark .modal-content { background: var(--panel); color: var(--text); border-color: var(--border); }
.dark .modal-header, .dark .modal-footer { border-color: var(--border); }
.dark .modal-title { color: var(--text); }
.dark .btn-close { filter: invert(1) opacity(0.8); }
.dark .modal .btn-outline-primary, .dark .modal .btn-outline-secondary { color: var(--text); border-color: var(--border); }
.dark .modal .btn-outline-primary:hover, .dark .modal .btn-outline-secondary:hover { background: var(--toolbar-hover); color: #fff; }

.dark .modal .card.bg-body-secondary { background: rgba(255,255,255,0.06); border: 1px solid var(--border); color: var(--text); }
.dark .modal .card.bg-body-secondary * { color: var(--text) !important; }
.dark .modal a { color: var(--accent); }
.dark .modal a:hover { text-decoration: underline; }

.dark #aboutModal .modal-content { background: var(--panel); color: var(--text); border-color: var(--border); }
.dark #aboutModal .modal-header, .dark #aboutModal .modal-footer { border-color: var(--border); }
.dark #aboutModal .modal-title { color: var(--text); }
.dark #aboutModal .modal-body p,
.dark #aboutModal .modal-body li,
.dark #aboutModal .modal-body .fw-semibold { color: var(--text) !important; }
.dark #aboutModal .card { background: rgba(255,255,255,0.07) !important; border: 1px solid var(--border) !important; }
.dark #aboutModal .card * { color: var(--text) !important; }
.dark #aboutModal a { color: var(--accent) !important; }
.dark #aboutModal a:hover { text-decoration: underline; }

.footer-credit {
  padding: 10px 18px;
  border-radius: 14px;
  background: linear-gradient(90deg, rgba(255,255,255,0.9), rgba(59,130,246,0.15));
  color: #1f2937;
  font-weight: 600;
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
  border: 1px solid rgba(0,0,0,0.06);
}
.dark .footer-credit {
  background: linear-gradient(90deg, rgba(17,24,39,0.9), rgba(59,130,246,0.25));
  color: #e5e7eb;
  border-color: rgba(255,255,255,0.08);
}

.footer-credit-wrap { padding: 16px 0 24px 0; }
.read-mode .footer-credit-wrap { display: none !important; }