/* CardioAtt — extracted from index.html <style> blocks (same order) */
* { margin: 0; padding: 0; box-sizing: border-box; }

  body {
    background: var(--bg);
    color: var(--text);
    font-family: 'Manrope', sans-serif;
    min-height: 100vh;
    overflow-x: hidden;
  }

  /* A11Y: link "Pular para o conteúdo" — visível apenas ao receber foco */
  .skip-link {
    position: absolute;
    left: 8px;
    top: 8px;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    z-index: 10000;
    padding: 10px 16px;
    border-radius: 8px;
    background: var(--red, #c0392b);
    color: #fff;
    font-family: 'Manrope', sans-serif;
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
  }
  .skip-link:focus, .skip-link:focus-visible {
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    clip-path: none;
    outline: 2px solid #fff;
    outline-offset: 2px;
  }

  /* GRAIN OVERLAY */
  body::before {
    content: '';
    position: fixed;
    top: 0; right: 0; bottom: 0; left: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 999;
    opacity: var(--grain-opacity);
  }

  /* HEADER */
  header {
    background: var(--header-bg);
    border-bottom: 1px solid var(--border);
    padding: 0 32px;
    position: sticky;
    top: 0;
    z-index: 100;
    backdrop-filter: blur(20px);
  }

  .header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 56px;
    max-width: 1500px;
    margin: 0 auto;
    padding: 0 24px;
  }
  .header-right {
    margin-left: auto;
  }

  .logo {
    display: flex;
    align-items: center;
    gap: 9px;
  }

  .logo-icon {
    width: 36px;
    height: 36px;
    position: relative;
  }

  .logo-text {
    font-family: 'Manrope', sans-serif; font-weight: 700;
    font-size: 22px;
    color: var(--text);
    letter-spacing: -0.3px;
  }

  .logo-text span { color: var(--coral); }

  .header-nav {
    display: flex;
    gap: 4px;
  }

  .nav-btn {
    padding: 6px 16px;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 6px;
    color: var(--text2);
    font-family: 'Manrope', sans-serif;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    letter-spacing: 0.3px;
  }

  .nav-btn:hover { color: var(--text); background: var(--bg3); border-color: var(--border); }
  .nav-btn.active { color: var(--red2); background: var(--red-dim); border-color: var(--red-dim2); }

  .nav-org-badge {
    display: inline-block;
    font-size: 9px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 3px;
    letter-spacing: 0.5px;
    vertical-align: middle;
    margin-right: 2px;
  }

  .nav-btn-acc.active { color: #7ab8ff; background: rgba(0,100,200,0.15); border-color: rgba(100,180,255,0.3); }
  .nav-btn-esc.active { color: #90a8ff; background: rgba(50,80,220,0.15); border-color: rgba(140,160,255,0.3); }

  /* LAYOUT */
  .app-layout {
    display: grid;
    grid-template-columns: var(--sidebar-w, 220px) 1fr;
    max-width: 1500px;
    margin: 0 auto;
    min-height: calc(100vh - 56px);
  }

  /* SIDEBAR NAV */
  .side-nav {
    border-right: 1px solid var(--border);
    padding: 20px 12px;
    position: sticky;
    top: 56px;
    height: calc(100vh - 56px);
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
    scrollbar-color: var(--border2) transparent;
    background: var(--bg2);
    transition: width 0.2s ease, padding 0.2s ease;
    width: 220px;
  }

  .side-nav.collapsed {
    width: 56px;
    padding: 20px 8px;
  }

  .side-nav.collapsed .side-label { display: none; }
  .side-nav.collapsed .side-btn { justify-content: center; padding: 11px; }
  .side-nav.collapsed #adminNavBtn .sidebar-section-label { display: none; }

  .sidebar-collapse-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--text3);
    padding: 4px 4px 12px;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--border);
    transition: color 0.15s;
    font-size: 16px;
  }
  .sidebar-collapse-btn:hover { color: var(--text); }
  .side-nav.collapsed .sidebar-collapse-btn { justify-content: center; }

  .side-nav nav {
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .side-btn {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    border-radius: 10px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--text2);
    font-family: 'Manrope', sans-serif;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    text-align: left;
    width: 100%;
  }

  .side-btn:hover {
    background: var(--bg3);
    color: var(--text);
    border-color: var(--border);
  }

  .side-btn.active {
    background: var(--red-dim);
    border-color: var(--red-dim2);
    color: var(--red2);
  }

  .side-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    color: currentColor;
  }
  .side-collapse-icon {
    display: inline-flex;
    transition: transform 0.2s;
  }
  .side-collapse-icon.is-collapsed { transform: rotate(180deg); }
  .tab-icon {
    display: inline-block;
    width: 14px;
    height: 14px;
    vertical-align: -2px;
    margin-right: 5px;
  }

  .side-label {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  @media (max-width: 768px) {
    .app-layout { grid-template-columns: 1fr; }
    .side-nav { display: none; }

    /* Bottom navigation bar */
    .bottom-nav { display: flex !important; }

    /* Main content padding */
    main { padding: 16px 14px 100px !important; }

    /* Header compacto no mobile */
    header { padding: 0; }

    .header-inner {
      padding: 0 12px;
      height: 52px;
      gap: 8px;
    }

    /* Logo menor no mobile */
    .logo-text { font-size: 18px; }

    /* Status bar oculta no mobile — economiza espaço */
    .status-bar { display: none; }

    /* Auth bar mobile — só avatar, sem nome e sem botão sair */
    .auth-name { display: none !important; }
    #authBar .nav-btn { display: none !important; }

    /* Forum cards full width */
    .forum-post-card { padding: 14px 16px; }

    /* Trial cards 1 coluna */
    .trials-grid { grid-template-columns: 1fr !important; }

    /* Guidelines grid 1 coluna */
    .guidelines-grid { grid-template-columns: 1fr !important; }

    /* Notes 1 coluna — sem resize no mobile */
    .note-card { width: 100% !important; min-width: 0 !important; resize: none !important; }
    .note-card::after { display: none; }

    /* Scores grid 1 coluna */
    #scoresGrid { gap: 6px !important; }

    /* Modal mobile — usa bottom sheet nativo */

    /* Forum new post button menor */
    #forumNewPostBtn { padding: 9px 14px !important; font-size: 13px !important; }

    /* Scores filter wrap */
    #scoreFilterTags { flex-wrap: wrap; gap: 6px; }
  }

  /* BOTTOM NAV — mobile only */
  .bottom-nav {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 200;
    background: var(--bg2);
    border-top: 1px solid var(--border);
    padding: 0;
    padding-bottom: env(safe-area-inset-bottom);
  }

  .bottom-nav-inner {
    display: flex;
    align-items: stretch;
    justify-content: space-around;
    height: 60px;
  }

  .bottom-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    background: none;
    border: none;
    cursor: pointer;
    color: var(--text3);
    font-family: 'Manrope', sans-serif;
    font-size: 11px;
    font-weight: 600;
    padding: 6px 2px;
    transition: color 0.15s;
    -webkit-tap-highlight-color: transparent;
  }

  .bottom-btn.active {
    color: var(--red2);
  }

  .bottom-btn.active .bottom-icon {
    background: var(--red-dim);
    border-radius: 8px;
  }

  .bottom-icon {
    font-size: 18px;
    width: 36px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s;
  }

  .bottom-label {
    font-size: 11px;
    letter-spacing: 0.2px;
    white-space: nowrap;
  }

  /* SIDEBAR */
  aside {
    border-right: 1px solid var(--border);
    padding: 24px 20px;
    position: sticky;
    top: 64px;
    height: calc(100vh - 64px);
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--border2) transparent;
  }

  .sidebar-section {
    margin-bottom: 28px;
  }

  .sidebar-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 600;
    color: var(--text3);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 10px;
    padding-left: 4px;
  }

  .filter-chip {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s;
    border: 1px solid transparent;
    margin-bottom: 3px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text2);
  }

  .filter-chip:hover { background: var(--bg3); color: var(--text); }
  .filter-chip.active { background: var(--red-dim); border-color: var(--red-dim2); color: var(--red2); }

  .filter-chip .dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--text3);
    flex-shrink: 0;
    transition: background 0.15s;
  }

  .filter-chip.active .dot { background: var(--red2); }

  .filter-chip .count {
    margin-left: auto;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: var(--text3);
  }

  /* Year range */
  .year-slider {
    padding: 4px;
  }

  .year-row {
    display: flex;
    justify-content: space-between;
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: var(--text3);
    margin-bottom: 8px;
  }

  .year-row span { color: var(--blue); }

  input[type="range"] {
    width: 100%;
    appearance: none;
    height: 3px;
    background: linear-gradient(to right, var(--blue) 0%, var(--blue) var(--pct, 50%), var(--border2) var(--pct, 50%));
    border-radius: 2px;
    outline: none;
    cursor: pointer;
  }

  input[type="range"]::-webkit-slider-thumb {
    appearance: none;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--blue);
    border: 2px solid var(--bg);
    box-shadow: 0 0 8px rgba(74,158,255,0.4);
  }

  /* MAIN */
  main {
    padding: 32px 40px;
    min-width: 0;
  }

  /* SEARCH BAR */
  .search-wrap {
    position: relative;
    margin-bottom: 24px;
  }

  .search-input {
    width: 100%;
    background: var(--bg3);
    border: 1px solid var(--border2);
    border-radius: 10px;
    padding: 14px 50px 14px 48px;
    font-family: 'Manrope', sans-serif;
    font-size: 15px;
    color: var(--text);
    outline: none;
    transition: all 0.2s;
  }

  .search-input::placeholder { color: var(--text3); }
  .search-input:focus { border-color: var(--red-dim2); box-shadow: 0 0 0 3px var(--red-dim); }

  .search-icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text3);
    font-size: 18px;
    pointer-events: none;
  }

  .search-btn {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: var(--red);
    border: none;
    border-radius: 7px;
    padding: 6px 18px;
    color: white;
    font-family: 'Manrope', sans-serif;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s;
    letter-spacing: 0.3px;
  }

  .search-btn:hover { background: var(--red2); transform: translateY(-50%) scale(1.03); }

  /* TABS */
  .tab-bar {
    display: flex;
    gap: 4px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--border);
    padding-bottom: 0;
  }

  .tab {
    padding: 10px 20px;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    color: var(--text3);
    font-family: 'Manrope', sans-serif;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s;
    letter-spacing: 0.3px;
  }

  .tab:hover { color: var(--text2); }
  .tab.active { color: var(--red2); border-bottom-color: var(--red2); }

  /* RESULTS STATUS */
  .results-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
  }

  .results-count {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--text3);
  }

  .results-count strong { color: var(--text2); }

  .sort-select {
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 5px 10px;
    color: var(--text2);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    cursor: pointer;
    outline: none;
  }

  /* ARTICLE CARD */
  .article-card {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: var(--card-shadow);
    padding: 20px 22px;
    margin-bottom: 12px;
    transition: all 0.2s;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    animation: cardIn 0.3s ease forwards;
    opacity: 0;
    transform: translateY(8px);
  }

  @keyframes cardIn {
    to { opacity: 1; transform: translateY(0); }
  }

  .article-card:hover {
    border-color: var(--border2);
    background: var(--bg3);
    transform: translateY(-1px);
    box-shadow: var(--card-shadow-hover);
  }

  .article-card.is-trial {
    border-color: var(--trial-border);
    background: linear-gradient(135deg, var(--trial-bg) 0%, var(--trial-bg2) 100%);
    box-shadow: var(--trial-glow);
  }

  .article-card.is-trial::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--gold), rgba(232,184,75,0.2));
  }

  .trial-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: var(--gold-dim);
    border: 1px solid rgba(232,184,75,0.3);
    border-radius: 4px;
    padding: 2px 8px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 600;
    color: var(--gold);
    letter-spacing: 0.8px;
    text-transform: uppercase;
    margin-bottom: 8px;
    margin-right: 6px;
  }

  .trial-badge::before { content: '★'; font-size: 9px; }

  .article-title {
    font-family: 'Manrope', sans-serif; font-weight: 700;
    font-size: 17px;
    line-height: 1.4;
    color: var(--text);
    margin-bottom: 8px;
  }

  .article-card.is-trial .article-title { color: var(--gold); }

  .article-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 10px;
  }

  .meta-tag {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 4px;
  }

  .meta-journal { background: var(--blue-dim); color: var(--blue); border: 1px solid rgba(74,158,255,0.2); }
  .meta-year { background: var(--bg4); color: var(--text3); border: 1px solid var(--border); }
  .meta-pmid { background: var(--bg4); color: var(--text3); border: 1px solid var(--border); cursor: pointer; }
  .meta-pmid:hover { color: var(--blue); border-color: rgba(74,158,255,0.3); }
  .meta-topic { background: var(--purple-dim); color: var(--purple); border: 1px solid rgba(155,114,255,0.2); }
  .meta-open { background: var(--green-dim); color: var(--green); border: 1px solid rgba(61,186,127,0.2); font-size: 10px; }

  .article-abstract {
    font-size: 13px;
    color: var(--text2);
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .article-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
  }

  .article-authors {
    font-size: 12px;
    color: var(--text3);
    font-style: italic;
  }

  .card-actions {
    display: flex;
    gap: 6px;
  }

  .card-btn {
    padding: 5px 12px;
    border-radius: 6px;
    font-family: 'Manrope', sans-serif;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s;
    border: 1px solid var(--border);
    background: var(--bg4);
    color: var(--text2);
  }

  .card-btn:hover { background: var(--bg3); color: var(--text); border-color: var(--border2); }
  .card-btn.comment-btn { color: var(--gold); border-color: rgba(232,184,75,0.2); }
  .card-btn.comment-btn:hover { background: var(--gold-dim); border-color: rgba(232,184,75,0.4); }
  .card-btn.read-btn { color: var(--blue); border-color: rgba(74,158,255,0.2); }
  .card-btn.read-btn:hover { background: var(--blue-dim); border-color: rgba(74,158,255,0.4); }

  .comment-count {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    background: var(--gold-dim);
    color: var(--gold);
    border-radius: 10px;
    padding: 1px 6px;
    margin-left: 4px;
  }

  /* LOADING */
  .loading-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    gap: 16px;
  }

  .ecg-loader {
    width: 200px;
    height: 40px;
  }

  .ecg-path {
    stroke: var(--red);
    stroke-width: 2;
    fill: none;
    stroke-dasharray: 400;
    stroke-dashoffset: 400;
    animation: ecgDraw 1.2s ease-in-out infinite;
  }

  @keyframes ecgDraw {
    0% { stroke-dashoffset: 400; }
    50% { stroke-dashoffset: 0; }
    100% { stroke-dashoffset: -400; }
  }

  .loading-text {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--text3);
    letter-spacing: 1px;
  }

  /* EMPTY */
  .empty-state {
    text-align: center;
    padding: 60px 20px;
    color: var(--text3);
  }

  .empty-state h3 {
    font-family: 'Manrope', sans-serif; font-weight: 700;
    font-size: 20px;
    color: var(--text2);
    margin-bottom: 8px;
  }

  /* ── MODAL ── */
  .modal-overlay {
    position: fixed;
    top: 0; right: 0; bottom: 0; left: 0;
    background: rgba(0,0,0,0.6);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    z-index: 1000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 24px 16px;
    animation: fadeIn 0.2s ease;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

  .modal {
    background: var(--bg2);
    border: 1px solid var(--border2);
    border-radius: 16px;
    width: 100%;
    max-width: 700px;
    margin: auto;
    animation: modalIn 0.25s ease;
    display: flex;
    flex-direction: column;
    /* iOS Safari fallback */
    max-height: calc(100vh - 48px);
    max-height: calc(100dvh - 48px);
    overflow: hidden;
  }

  .modal-body {
    padding: 20px 24px;
    overflow-y: scroll;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    flex: 1;
    min-height: 0;
  }

  @media (max-width: 768px) {
    .modal-overlay {
      padding: 0;
      align-items: flex-end;
    }
    .modal {
      border-radius: 20px 20px 0 0;
      max-width: 100%;
      max-height: 92vh;
      max-height: 92dvh;
      margin: 0;
    }
  }

  @keyframes modalIn { from { transform: scale(0.96) translateY(10px); opacity: 0; } to { transform: none; opacity: 1; } }
  @keyframes modalShake {
    0%, 100% { transform: translateX(0); }
    20% { transform: translateX(-8px); }
    40% { transform: translateX(8px); }
    60% { transform: translateX(-6px); }
    80% { transform: translateX(6px); }
  }

  .modal-header {
    padding: 22px 24px 16px;
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    position: sticky;
    top: 0;
    background: var(--bg2);
    z-index: 1;
  }

  .modal-title {
    font-family: 'Manrope', sans-serif; font-weight: 700;
    font-size: 19px;
    color: var(--text);
    line-height: 1.4;
  }

  .modal-close {
    background: var(--bg4);
    border: 1px solid var(--border);
    border-radius: 6px;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--text2);
    font-size: 16px;
    flex-shrink: 0;
    transition: all 0.15s;
  }

  .modal-close:hover { background: var(--red-dim); color: var(--red2); border-color: var(--red-dim2); }


  .modal-section-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 600;
    color: var(--text3);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 10px;
    margin-top: 20px;
  }

  .modal-abstract {
    font-size: 14px;
    color: var(--text2);
    line-height: 1.7;
    background: var(--bg3);
    border-radius: 8px;
    padding: 16px;
    border: 1px solid var(--border);
  }

  /* COMMENT SECTION */
  .comment-list { display: flex; flex-direction: column; gap: 10px; }

  .comment-item {
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 14px 16px;
    position: relative;
  }

  .comment-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
  }

  .comment-date {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: var(--text3);
  }

  .comment-del {
    background: none;
    border: none;
    color: var(--text3);
    cursor: pointer;
    font-size: 12px;
    padding: 2px 6px;
    border-radius: 4px;
    transition: all 0.15s;
  }

  .comment-del:hover { background: var(--red-dim); color: var(--red2); }

  .comment-text { font-size: 13px; color: var(--text); line-height: 1.6; }

  .comment-input-wrap {
    margin-top: 12px;
    position: relative;
  }

  .comment-textarea {
    width: 100%;
    background: var(--bg3);
    border: 1px solid var(--border2);
    border-radius: 8px;
    padding: 12px 16px;
    font-family: 'Manrope', sans-serif;
    font-size: 13px;
    color: var(--text);
    resize: vertical;
    min-height: 80px;
    outline: none;
    transition: border-color 0.2s;
    line-height: 1.5;
  }

  .comment-textarea::placeholder { color: var(--text3); }
  .comment-textarea:focus { border-color: var(--gold); box-shadow: 0 0 0 2px var(--gold-dim); }

  .comment-submit {
    margin-top: 8px;
    padding: 8px 20px;
    background: rgba(224,169,59,0.12);
    border: 1px solid rgba(224,169,59,0.35);
    border-radius: 6px;
    color: var(--gold);
    font-family: 'Manrope', sans-serif;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.15s;
  }

  .comment-submit:hover { background: rgba(224,169,59,0.2); }

  /* ── TRIALS PANEL ── */
  .trials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 14px;
    margin-top: 4px;
    align-items: start;
  }

  .trial-card {
    background: linear-gradient(135deg, var(--trial-bg) 0%, var(--trial-bg2) 100%);
    border: 1px solid var(--trial-border);
    border-radius: 14px;
    box-shadow: var(--card-shadow);
    padding: 18px 20px;
    cursor: pointer;
    transition: all 0.2s;
    position: relative;
    overflow: hidden;
  }

  .trial-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--gold), transparent);
  }

  .trial-card:hover {
    border-color: rgba(176,120,40,0.45);
    transform: translateY(-2px);
    box-shadow: 0 8px 32px rgba(0,0,0,0.10), 0 0 0 1px rgba(176,120,40,0.15);
  }

  .trial-name {
    font-family: 'Manrope', sans-serif; font-weight: 700;
    font-size: 20px;
    color: var(--gold);
    margin-bottom: 4px;
    letter-spacing: -0.3px;
  }

  .trial-year {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: var(--text3);
    margin-bottom: 10px;
  }

  .trial-desc {
    font-size: 12px;
    color: var(--text2);
    line-height: 1.6;
    margin-bottom: 12px;
  }

  .trial-result {
    font-size: 12px;
    background: rgba(224,169,59,0.08);
    border: 1px solid rgba(224,169,59,0.18);
    border-radius: 6px;
    padding: 8px 10px;
    color: var(--gold);
    line-height: 1.5;
  }

  .trial-tag {
    display: inline-block;
    margin-top: 10px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    background: var(--purple-dim);
    color: var(--purple);
    border: 1px solid rgba(155,114,255,0.2);
    border-radius: 4px;
    padding: 2px 7px;
  }

  /* ── DIRETRIZES ── */
  .guidelines-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 12px;
    margin-top: 4px;
  }

  .guideline-card {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 12px;
    box-shadow: var(--card-shadow);
    padding: 16px 18px;
    transition: all 0.2s;
    position: relative;
    overflow: hidden;
  }

  .guideline-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 3px;
    height: 100%;
    background: var(--red);
  }

  .guideline-card:hover {
    border-color: var(--border2);
    background: var(--bg3);
    transform: translateY(-1px);
  }

  .guideline-source {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: var(--red);
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 6px;
    padding-left: 10px;
  }

  .guideline-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 4px;
    padding-left: 10px;
    line-height: 1.4;
  }

  .guideline-year {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: var(--text3);
    padding-left: 10px;
    margin-bottom: 10px;
  }

  .guideline-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    margin-left: 10px;
    background: var(--red-dim);
    border: 1px solid var(--red-dim2);
    border-radius: 5px;
    color: var(--red2);
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.15s;
  }

  .guideline-link:hover { background: rgba(224,60,74,0.2); }

  /* PAGINATION */
  .pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
    flex-wrap: wrap;
  }

  .page-btn {
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: var(--bg3);
    border: 1px solid var(--border);
    color: var(--text2);
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    justify-content: center;
    -webkit-tap-highlight-color: transparent;
  }

  .page-btn:hover { background: var(--bg4); border-color: var(--border2); color: var(--text); }
  .page-btn.active { background: var(--red-dim); border-color: var(--red-dim2); color: var(--red2); }
  .page-btn:disabled { opacity: 0.3; cursor: not-allowed; }

  /* TAG STRIP on top of main search */
  .quick-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
  }

  .quick-tag {
    font: inherit;
    font-family: inherit;
    line-height: inherit;
    margin: 0;
    appearance: none;
    -webkit-appearance: none;
    padding: 5px 12px;
    border-radius: 20px;
    border: 1px solid var(--border);
    background: var(--bg3);
    color: var(--text3);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
  }

  .quick-tag:hover { border-color: var(--border2); color: var(--text2); }
  .quick-tag:focus-visible,
  .side-btn:focus-visible, .bottom-btn:focus-visible, .nav-btn:focus-visible, .icon-btn:focus-visible,
  .tab:focus-visible, .sidebar-collapse-btn:focus-visible, .trial-name:focus-visible,
  [role="button"]:focus-visible,
  [role="link"]:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
  .quick-tag.active { border-color: var(--red-dim2); background: var(--red-dim); color: var(--red2); }

  /* Chips de histórico / buscas salvas */
  .search-chips { display: flex; flex-direction: column; gap: 8px; margin: -8px 0 16px; }
  .search-chips:empty { display: none; }
  .chip-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
  .chip-label {
    font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text3);
    margin-right: 2px; white-space: nowrap;
  }
  .search-chips .quick-tag { display: inline-flex; align-items: center; gap: 6px; }
  .chip-saved { border-color: rgba(224,169,59,.35); color: var(--gold); background: var(--gold-dim); }
  .chip-saved:hover { border-color: var(--gold); }
  .chip-x {
    font-size: 14px; line-height: 1; opacity: .5; margin-left: 2px;
    padding: 0 1px; border-radius: 4px; transition: opacity .15s, color .15s;
  }
  .chip-x:hover { opacity: 1; color: var(--red2); }

  /* Controles de ordenação / filtro por ano */
  .search-controls {
    display: flex; flex-wrap: wrap; align-items: center; gap: 14px;
    margin-bottom: 16px; padding: 10px 14px;
    background: var(--bg3); border: 1px solid var(--border); border-radius: 10px;
  }
  .sc-group { display: flex; align-items: center; gap: 7px; }
  .sc-group > label {
    font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text3);
    text-transform: uppercase; letter-spacing: .4px;
  }
  .year-input {
    width: 62px; background: var(--bg2); border: 1px solid var(--border);
    border-radius: 6px; padding: 5px 8px; color: var(--text2);
    font-family: 'JetBrains Mono', monospace; font-size: 11px; outline: none;
    -moz-appearance: textfield;
  }
  .year-input::-webkit-outer-spin-button, .year-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
  .year-input:focus { border-color: var(--red-dim2); }
  #saveSearchBtn { margin-left: auto; }
  #saveSearchBtn.saved { border-color: rgba(224,169,59,.35); background: var(--gold-dim); color: var(--gold); }

  /* Filtros de evidência + estratégia de busca (DeCS/MeSH) */
  .evid-bar { margin-bottom: 10px; }
  .evid-bar .sort-select { max-width: 230px; }
  #evidHumanos { margin-left: auto; }

  .query-bar { display: flex; margin-bottom: 12px; }
  .query-panel {
    margin: -4px 0 16px; padding: 12px 14px;
    background: var(--bg3); border: 1px solid var(--border);
    border-left: 3px solid var(--blue); border-radius: 10px;
  }
  .qp-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 8px; }
  .qp-row:last-of-type { margin-bottom: 0; }
  .qp-col { flex-direction: column; align-items: stretch; gap: 4px; }
  .qp-label {
    font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--text3);
    text-transform: uppercase; letter-spacing: .4px; margin-right: 4px; white-space: nowrap;
  }
  .mesh-chip {
    display: inline-block; padding: 3px 10px; border-radius: 20px;
    border: 1px solid var(--border2); background: var(--bg2); color: var(--text2);
    font-family: 'JetBrains Mono', monospace; font-size: 11px; line-height: 1.5;
  }
  .mesh-chip.alt { color: var(--text3); border-style: dashed; }
  .mesh-chip.off { color: var(--text3); opacity: .6; text-decoration: line-through; }
  button.mesh-chip { cursor: pointer; font: inherit; font-family: 'JetBrains Mono', monospace;
    font-size: 11px; transition: opacity .15s, border-color .15s, color .15s; }
  button.mesh-chip.off:hover { opacity: 1; text-decoration: none; border-color: var(--blue); color: var(--text2); }
  button.mesh-chip.alt:hover { border-color: var(--red-dim2); color: var(--red2); }
  .qp-hint, .qp-warn { font-size: 11.5px; color: var(--text3); line-height: 1.5; }
  .qp-warn { color: var(--gold); }
  .qp-code {
    display: block; padding: 9px 11px; border-radius: 8px;
    background: var(--bg2); border: 1px solid var(--border);
    font-family: 'JetBrains Mono', monospace; font-size: 11.5px; line-height: 1.7;
    color: var(--text2); white-space: pre-wrap; word-break: break-word;
    max-height: 190px; overflow-y: auto;
  }
  .qp-code.qp-dim { color: var(--text3); }
  .qp-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
  .qp-actions .quick-tag { text-decoration: none; display: inline-flex; align-items: center; }

  @media (max-width: 640px) {
    .evid-bar .sort-select { max-width: none; flex: 1; }
    #evidHumanos { margin-left: 0; }
  }

  /* SCROLLBAR */
  ::-webkit-scrollbar { width: 6px; height: 6px; }
  ::-webkit-scrollbar-track { background: transparent; }
  ::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 3px; }

  /* Tooltip */
  [title] { position: relative; }

  /* Status bar */
  .status-bar {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 6px 32px;
    background: var(--bg2);
    border-bottom: 1px solid var(--border);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: var(--text3);
  }

  .status-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--red);
    box-shadow: 0 0 6px rgba(224,40,60,0.5);
    animation: pulse 2s infinite;
  }

  @keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
  }

  /* Nota de subespecialidade */
  .spec-badge {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    padding: 2px 7px;
    border-radius: 4px;
    border: 1px solid;
  }

  .spec-coronario { color: #ff7b4a; border-color: rgba(255,123,74,0.3); background: rgba(255,123,74,0.08); }
  .spec-ic { color: #4af0ff; border-color: rgba(74,240,255,0.3); background: rgba(74,240,255,0.08); }
  .spec-arritmia { color: #c084ff; border-color: rgba(192,132,255,0.3); background: rgba(192,132,255,0.08); }
  .spec-valvar { color: #3dffa0; border-color: rgba(61,255,160,0.3); background: rgba(61,255,160,0.08); }
  .spec-preventiva { color: #ffd060; border-color: rgba(255,208,96,0.3); background: rgba(255,208,96,0.08); }
  .spec-imagem { color: #60c8ff; border-color: rgba(96,200,255,0.3); background: rgba(96,200,255,0.08); }
  .spec-hap { color: #ff7ab0; border-color: rgba(255,122,176,0.3); background: rgba(255,122,176,0.08); }

  /* Notes panel */
  .notes-btn {
    position: fixed;
    bottom: 24px;
    right: 24px;
    background: var(--red);
    border: none;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 20px;
    box-shadow: 0 4px 20px rgba(200,37,58,0.35);
    transition: all 0.2s;
    z-index: 150;
  }

  .notes-btn:hover { transform: scale(1.1); }

  /* ===== Minhas Notas — cards redimensionáveis que se reorganizam sozinhos ===== */
  #allNotesArea { display: flex; flex-wrap: wrap; gap: 14px; align-items: flex-start; }
  .note-card {
    position: relative;
    box-sizing: border-box;
    width: 360px;
    min-width: 260px;   /* evita apertar demais */
    max-width: 100%;    /* não estoura o container */
    min-height: 160px;
    max-height: 80vh;   /* limite vertical pra não bugar */
    resize: both;       /* alça de redimensionar livre */
    overflow: auto;
  }
  /* dica de canto pra mostrar que dá pra arrastar */
  .note-card::after {
    content: "⤡";
    position: absolute; right: 5px; bottom: 3px;
    font-size: 12px; line-height: 1;
    color: var(--text3); opacity: .45; pointer-events: none;
  }
  .note-card::-webkit-resizer { background: transparent; }
  .note-card:hover::after { opacity: .85; }

  /* imagens upadas: sempre visíveis */
  .note-images { display: block; margin-top: 12px; }
  .note-img-wrap {
    background: var(--bg3);
    border: 1px solid var(--border);
    border-radius: 10px;
    overflow: hidden;
    margin-top: 8px;
  }
  .note-img-wrap img {
    width: 100%;
    height: auto;
    display: block;
    background: var(--bg);
  }
  .note-img-cap {
    display: flex; align-items: center; justify-content: space-between; gap: 8px;
    padding: 8px 12px; font-size: 11px; color: var(--text3);
  }
  .note-img-cap a {
    color: var(--blue); text-decoration: none; font-weight: 700; white-space: nowrap;
  }

  /* ===== Fórum: leitura expansível inline na própria página ===== */
  .forum-chevron { display: inline-block; transition: transform 0.2s; }
  .forum-inline { overflow: hidden; }
  .forum-inline.open {
    display: block;
    position: relative;
    border-top: 1px solid var(--border);
    padding: 14px 16px;
    box-sizing: border-box;
  }

  /* ===== Trials: expansão inline (anotações na própria página) ===== */
  .trial-chevron { display: inline-block; transition: transform 0.2s; }
  .trial-inline { overflow: hidden; }
  .trial-inline.open {
    display: block;
    border-top: 1px solid var(--trial-border);
    margin-top: 12px;
    padding-top: 14px;
    text-align: left;
    cursor: default;
  }

  /* responsive */
  @media (max-width: 768px) {
    .app-layout { grid-template-columns: 1fr; }
    aside { display: none; }
  }

  /* SIDEBAR GUIDELINE ITEMS */
  .guideline-sidebar-item {
    display: flex;
    align-items: baseline;
    gap: 7px;
    padding: 7px 10px;
    border-radius: 7px;
    cursor: pointer;
    transition: all 0.15s;
    border: 1px solid transparent;
    margin-bottom: 3px;
    flex-wrap: wrap;
  }

  .guideline-sidebar-item:hover {
    background: var(--bg3);
    border-color: var(--border);
  }

  .gs-org {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 3px;
    letter-spacing: 0.4px;
    flex-shrink: 0;
  }

  .gs-org.acc {
    background: rgba(0,100,200,0.2);
    color: #7ab8ff;
    border: 1px solid rgba(100,180,255,0.3);
  }

  .gs-org.esc {
    background: rgba(50,80,220,0.2);
    color: #90a8ff;
    border: 1px solid rgba(140,160,255,0.3);
  }

  .gs-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--text2);
    flex: 1;
    line-height: 1.4;
  }

  .guideline-sidebar-item:hover .gs-title { color: var(--text); }

  .gs-year {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: var(--text3);
    flex-shrink: 0;
  }
  /* CHAT */
  .chat-ch-btn {
    width: 100%;
    text-align: left;
    padding: 10px 16px;
    background: none;
    border: none;
    cursor: pointer;
    font-family: 'Manrope', sans-serif;
    font-size: 13px;
    color: var(--text2);
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 8px;
    -webkit-tap-highlight-color: transparent;
  }
  .chat-ch-btn:hover { background: var(--bg4); color: var(--text); }
  .chat-ch-btn.active { background: var(--bg4); color: var(--text); font-weight: 600; }
  .forum-post-card {
    background: var(--bg2);
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: var(--card-shadow);
    padding: 18px 22px;
    margin-bottom: 10px;
    cursor: pointer;
    transition: all 0.2s;
    animation: cardIn 0.25s ease both;
  }

  .forum-post-card:hover {
    border-color: var(--border2);
    background: var(--bg3);
    transform: translateY(-1px);
    box-shadow: var(--card-shadow-hover);
  }

  .forum-cat-badge {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 4px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
  }

  .forum-post-title {
    font-family: 'Manrope', sans-serif; font-weight: 700;
    font-size: 17px;
    color: var(--text);
    margin: 6px 0;
    line-height: 1.4;
  }

  .forum-post-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    color: var(--text3);
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 8px;
  }

  .forum-file-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--blue-dim);
    border: 1px solid rgba(26,111,212,0.2);
    border-radius: 4px;
    padding: 2px 8px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    color: var(--blue);
  }

  .forum-comment-item {
    border-left: 2px solid var(--border2);
    padding: 10px 14px;
    margin-bottom: 8px;
    background: var(--bg3);
    border-radius: 0 8px 8px 0;
  }

  @keyframes heartPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.06); }
  }
  @keyframes ecgAnim {
    0% { stroke-dashoffset: 420; opacity: 0; }
    20% { opacity: 1; }
    80% { opacity: 1; }
    100% { stroke-dashoffset: -420; opacity: 0; }
  }

  /* ── Rich Text Toolbar ── */
  .rte-wrap { display:flex; flex-direction:column; gap:0; }
  .rte-toolbar {
    display:flex; flex-wrap:wrap; gap:3px; padding:6px 8px;
    background:var(--bg4); border:1px solid var(--border2);
    border-radius:8px 8px 0 0; border-bottom:none;
  }
  .rte-toolbar button {
    padding:3px 8px; background:transparent; border:1px solid transparent;
    border-radius:4px; color:var(--text2); font-size:13px; cursor:pointer;
    transition:all 0.15s; line-height:1.4; font-family:inherit;
  }
  .rte-toolbar button:hover  { background:var(--bg3); border-color:var(--border); color:var(--text); }
  .rte-toolbar button.active { background:var(--blue-dim); border-color:rgba(77,159,255,0.3); color:var(--blue); }
  .rte-toolbar select {
    padding:3px 6px; background:var(--bg3); border:1px solid var(--border);
    border-radius:4px; color:var(--text2); font-size:12px; cursor:pointer; outline:none;
  }
  .rte-toolbar .sep { width:1px; background:var(--border); margin:2px 3px; align-self:stretch; }
  .rte-editor {
    min-height:90px; padding:12px 14px;
    background:var(--bg3); border:1px solid var(--border2);
    border-radius:0 0 8px 8px; color:var(--text);
    font-family:'Manrope',sans-serif; font-size:13px;
    line-height:1.6; outline:none; resize:vertical; overflow-y:auto;
    transition:border-color 0.2s;
  }
  /* Força a cor do tema em qualquer conteúdo colado (sobrescreve cores grudadas do Word/Notion) */
  .rte-editor, .rte-editor * {
    color:var(--text) !important;
    background-color:transparent !important;
  }
  .rte-editor:focus { border-color:var(--gold); box-shadow:0 0 0 2px var(--gold-dim); }
  .rte-editor:empty:before { content:attr(data-placeholder); color:var(--text3); pointer-events:none; }

  /* ===== MODELOS MODAL ===== */
  .mdl-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);
    z-index:1100;display:none;align-items:center;justify-content:center;padding:24px 16px}
  .mdl-overlay.open{display:flex;animation:fadeIn .2s ease}
  .mdl-shell{width:100%;max-width:1120px;height:min(86vh,820px);background:var(--bg2);
    border:1px solid var(--border2);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;
    box-shadow:0 24px 60px rgba(0,0,0,.5);animation:modalIn .25s ease}
  .mdl-head{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--border)}
  .mdl-head h2{font-family:'Manrope',sans-serif;font-weight:700;font-size:21px;margin:0;color:var(--text)}
  .mdl-head .mdl-sub{color:var(--text3);font-size:12px;margin-top:2px}
  .mdl-x{width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:var(--bg4);
    color:var(--text2);cursor:pointer;font-size:16px;line-height:1;transition:all .15s}
  .mdl-x:hover{background:var(--red-dim);color:var(--red2);border-color:var(--red-dim2)}
  .mdl-grid{flex:1;display:grid;grid-template-columns:200px 1fr 1fr;min-height:0}
  .mdl-rail{border-right:1px solid var(--border);padding:14px 10px;overflow-y:auto}
  .mdl-rail-label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);padding:4px 10px 8px}
  .mdl-nav{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:10px 11px;margin-bottom:3px;
    border:1px solid transparent;border-radius:9px;background:transparent;color:var(--text2);
    font-family:'Manrope',sans-serif;font-size:13px;cursor:pointer;transition:all .12s}
  .mdl-nav:hover{background:var(--bg3);color:var(--text)}
  .mdl-nav.active{background:var(--gold-dim);border-color:var(--gold);color:var(--gold);font-weight:600}
  .mdl-nav .mdl-ic{font-size:15px;width:18px;text-align:center}
  .mdl-form-wrap{border-right:1px solid var(--border);overflow-y:auto;padding:18px 20px}
  .mdl-form-wrap h3{font-family:'Manrope',sans-serif;font-weight:700;font-size:17px;margin:0 0 3px;color:var(--text)}
  .mdl-form-wrap .mdl-desc{color:var(--text3);font-size:12px;margin:0 0 16px}
  .mdl-field{margin-bottom:13px}
  .mdl-field label{display:block;font-size:11.5px;color:var(--text2);margin-bottom:5px;font-weight:600}
  .mdl-field input,.mdl-field textarea,.mdl-field select{width:100%;background:var(--bg3);border:1px solid var(--border2);
    border-radius:8px;padding:9px 11px;color:var(--text);font-family:'Manrope',sans-serif;font-size:13px;outline:none;transition:border-color .15s}
  .mdl-field textarea{resize:vertical;line-height:1.5;font-family:'JetBrains Mono',monospace;font-size:12px}
  .mdl-field input:focus,.mdl-field textarea:focus,.mdl-field select:focus{border-color:var(--gold)}
  .mdl-field select{appearance:none;cursor:pointer;
    background-image:linear-gradient(45deg,transparent 50%,var(--text3) 50%),linear-gradient(135deg,var(--text3) 50%,transparent 50%);
    background-position:calc(100% - 18px) 17px,calc(100% - 13px) 17px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
  .mdl-row2{display:grid;grid-template-columns:1fr 1fr;gap:11px}
  .mdl-prev{display:flex;flex-direction:column;min-height:0;background:var(--bg)}
  .mdl-prev-top{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 10px}
  .mdl-prev-top span{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3)}
  .mdl-prev-actions{display:flex;gap:8px}
  .mdl-btn{border:1px solid var(--border2);background:var(--bg3);color:var(--text2);padding:7px 13px;border-radius:8px;
    font-family:'Manrope',sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:all .14s}
  .mdl-btn:hover{background:var(--bg4);color:var(--text)}
  .mdl-btn.copy{border-color:var(--gold);background:var(--gold-dim);color:var(--gold)}
  .mdl-btn.copy:hover{background:var(--gold);color:#080b12}
  .mdl-btn.copy.done{background:#1c7d3f;border-color:#1c7d3f;color:#fff}
  pre.mdl-preview{flex:1;margin:0 18px 18px;overflow:auto;background:var(--bg2);border:1px solid var(--border);
    border-radius:10px;padding:15px 16px;font-family:'JetBrains Mono',monospace;font-size:12px;line-height:1.55;
    color:var(--text);white-space:pre-wrap;word-break:break-word}
  .mdl-paste{width:100%;background:var(--bg3);border:1px solid var(--border2);border-radius:8px;padding:9px 11px;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:11px;line-height:1.45;outline:none;resize:vertical}
  .mdl-paste:focus{border-color:var(--gold)}
  .mdl-pastebar{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
  .mdl-pastemsg{font-size:11px;color:#3ad17a;font-family:'JetBrains Mono',monospace}
  .mdl-pastehint{font-size:10.5px;color:var(--text3);line-height:1.45;margin-top:7px;padding-left:2px}
  .mdl-pastehint b{color:var(--text2);font-weight:600}
  .mdl-bgroup{margin-bottom:13px}
  .mdl-bglabel{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);margin-bottom:7px}
  .mdl-boxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:7px}
  .mdl-box{display:flex;flex-direction:column;gap:3px;min-width:0}
  .mdl-box.wide{grid-column:span 2}
  .mdl-blab{font-family:'JetBrains Mono',monospace;font-size:9.5px;color:var(--text2);letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mdl-box input{width:100%;background:var(--bg3);border:1px solid var(--border2);border-radius:6px;padding:7px 8px;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:12px;outline:none;transition:border-color .15s,background .15s}
  .mdl-box input:focus{border-color:var(--gold);background:var(--bg4)}
  /* ---- receituário: caixinhas selecionáveis ---- */
  .mdl-rxfilter{width:100%;background:var(--bg3);border:1px solid var(--border2);border-radius:8px;padding:8px 11px;color:var(--text);font-family:'Manrope',sans-serif;font-size:12.5px;outline:none;margin-bottom:8px;transition:border-color .15s}
  .mdl-rxfilter:focus{border-color:var(--gold)}
  .mdl-rxcount{font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.5px;text-transform:uppercase;color:var(--text3);margin-bottom:10px}
  .mdl-rxlist{display:flex;flex-direction:column;gap:12px}
  .mdl-rxglabel{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);margin-bottom:7px}
  .mdl-rxitem{border:1px solid var(--border2);border-radius:9px;padding:8px 10px;margin-bottom:6px;background:var(--bg3);transition:border-color .14s,background .14s}
  .mdl-rxitem.on{border-color:var(--gold);background:var(--gold-dim)}
  .mdl-rxitem .mdl-rxhead{display:flex;align-items:flex-start;gap:9px;cursor:pointer;margin:0;font-weight:400}
  .mdl-rxitem .mdl-rxhead input[type=checkbox]{width:16px;height:16px;margin:1px 0 0;accent-color:var(--gold);cursor:pointer;flex:0 0 auto}
  .mdl-rxname{font-size:12.5px;color:var(--text);line-height:1.35}
  .mdl-rxname b{font-weight:600}
  .mdl-rxdose{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--gold);margin-left:2px}
  .mdl-rxcom{font-size:10.5px;color:var(--text3);font-style:italic;margin-left:3px}
  .mdl-rxpos{width:100%;margin-top:7px;background:var(--bg2);border:1px solid var(--border2);border-radius:6px;padding:6px 9px;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:11.5px;line-height:1.4;outline:none;transition:border-color .15s}
  .mdl-rxpos:focus{border-color:var(--gold);background:var(--bg4)}
  /* ResumExame (AutoLaudos → fotos de exames/receitas resumidas por IA). Reaproveita .tab-bar/.tab,
     .wh-btn-primary/.wh-btn-ghost e .mdl-btn do site; aqui só o que é próprio do módulo. */
  .rxe-ic{width:18px;height:18px;flex:0 0 auto;display:block}
  .rxe-box{border:1px solid var(--border2);border-radius:var(--r-md);background:var(--bg2);padding:14px;margin-bottom:14px}
  .rxe-box-h{display:flex;align-items:center;gap:10px;margin-bottom:12px}
  .rxe-box-ic{width:34px;height:34px;border-radius:var(--r-sm);background:var(--red-dim);color:var(--red2);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
  .rxe-box-t{display:block;font-family:'Manrope',sans-serif;font-weight:700;font-size:14.5px;color:var(--text)}
  .rxe-box-s{display:block;font-size:12px;color:var(--text3);margin-top:1px}
  .rxe-selo{display:inline-block;vertical-align:2px;margin-left:4px;font-family:'Manrope',sans-serif;font-size:10px;font-weight:700;letter-spacing:.3px;color:var(--gold);background:var(--gold-dim);border:1px solid var(--badge-bd);border-radius:999px;padding:1px 7px}
  .rxe-premium{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:9px 12px;border-radius:var(--r-sm);background:var(--gold-dim);border:1px solid var(--badge-bd);font-size:12px;color:var(--text2)}
  .rxe-paste{width:100%;background:var(--bg3);border:1px solid var(--border2);border-radius:var(--r-sm);padding:10px 12px;color:var(--text);font-family:'JetBrains Mono',monospace;font-size:11.5px;line-height:1.45;outline:none;resize:vertical;min-height:96px;transition:border-color .18s var(--ease)}
  .rxe-paste:focus{border-color:var(--red)}
  .rxe-pastebar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}
  .rxe-pastebar .wh-btn-ghost{height:40px;padding:0 16px;font-size:13.5px;font-weight:600}
  .rxe-pastemsg{font-size:12px;font-weight:600;color:var(--text3)}
  .rxe-pastemsg.ok{color:var(--green)}
  .rxe-hint{font-size:11px;color:var(--text3);line-height:1.5;margin:10px 0 0}
  .rxe-sec{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);margin:2px 0 8px}
  .rxe-tabs{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-bottom:12px}
  .rxe-tabs .tab{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 8px}
  .rxe-tabs .tab .rxe-ic{width:16px;height:16px}
  .rxe-drop{display:flex;align-items:center;gap:12px;border:1.5px dashed var(--border2);border-radius:var(--r-md);padding:12px 14px;text-align:left;cursor:pointer;background:var(--bg3);transition:border-color .18s var(--ease),background .18s var(--ease)}
  .rxe-drop:hover,.rxe-drop:focus-visible,.rxe-drop.over{border-color:var(--red);background:var(--red-dim);outline:none}
  .rxe-drop-ic{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--red-dim);color:var(--red2);flex:0 0 auto}
  .rxe-drop-ic .rxe-ic{width:20px;height:20px}
  .rxe-drop-t{display:block;font-family:'Manrope',sans-serif;font-weight:700;font-size:13.5px;color:var(--text)}
  .rxe-drop-s{display:block;font-size:11.5px;color:var(--text3);margin-top:1px}
  .rxe-btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
  .rxe-btns .wh-btn-ghost{height:44px;padding:0 10px;font-size:14px;font-weight:600;width:100%;min-width:0;white-space:nowrap;overflow:hidden}
  .rxe-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
  .rxe-thumb{position:relative;width:76px;height:76px;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--border2);background:var(--bg3);flex:0 0 auto;padding:0}
  .rxe-thumb img{width:100%;height:100%;object-fit:cover;display:block}
  .rxe-x{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;border:none;background:rgba(7,26,53,.72);color:#fff;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center}
  .rxe-x .rxe-ic{width:13px;height:13px;stroke-width:2.2}
  .rxe-x:disabled{opacity:.4;cursor:default}
  .rxe-add{border-style:dashed;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .18s,color .18s}
  .rxe-add:hover{border-color:var(--red);color:var(--red2)}
  .rxe-save{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:11px 12px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg3);font-size:12.5px;line-height:1.45;color:var(--text2);cursor:pointer}
  .rxe-save input{width:16px;height:16px;margin:1px 0 0;accent-color:var(--red);flex:0 0 auto;cursor:pointer}
  .rxe-save b{color:var(--text);font-weight:700}
  .rxe-go{width:100%;margin-top:12px}
  .rxe-go:active{transform:scale(.98)}
  .rxe-loading{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;border:1px solid var(--border2);border-radius:var(--r-sm);background:var(--bg3)}
  .rxe-spin{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--border2);border-top-color:var(--red);animation:rxeSpin .8s linear infinite;flex:0 0 auto}
  @keyframes rxeSpin{to{transform:rotate(360deg)}}
  .rxe-load-t{font-weight:700;font-size:13px;color:var(--text)}
  .rxe-step{font-size:11.5px;color:var(--text3);font-family:'JetBrains Mono',monospace;margin-top:2px}
  .rxe-note{font-size:11.5px;color:var(--text3);line-height:1.5;margin:2px 0 0}
  .rxe-note a{color:var(--red2);font-weight:600}
  .rxe-results{flex:1;overflow:auto;padding:0 18px 18px}
  .rxe-res-empty,.rxe-rec-empty{color:var(--text3);font-size:12.5px;line-height:1.5;margin:4px 0 0}
  .rxe-card{border:1px solid var(--border2);border-radius:var(--r-md);background:var(--bg2);margin-bottom:12px;overflow:hidden}
  .rxe-card-h{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--border)}
  .rxe-ok{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--green);background:var(--green-dim);border-radius:999px;padding:3px 9px 3px 7px;white-space:nowrap}
  .rxe-ok .rxe-ic{width:13px;height:13px;stroke-width:2.2}
  .rxe-lbl{flex:1;min-width:0;font-size:12px;color:var(--text2);font-weight:600}
  .rxe-card-b{padding:12px 14px;white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.6;color:var(--text)}
  .rxe-card-b.mono{font-family:'JetBrains Mono',monospace;font-size:11.5px;line-height:2.2;white-space:pre;overflow-x:auto;word-break:normal}
  .rxe-saved{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:var(--r-sm);background:var(--red-dim);color:var(--text2);font-size:12px;line-height:1.5;margin-bottom:14px}
  .rxe-saved>span{display:flex;gap:8px;align-items:flex-start;flex:1;min-width:200px}
  .rxe-saved .rxe-ic{color:var(--red2);width:16px;height:16px;margin-top:1px}
  .rxe-saved b{color:var(--text)}
  .rxe-link{background:none;border:none;padding:0;color:var(--red2);font:inherit;font-size:12px;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  .rxe-recentes{border-top:1px solid var(--border);margin-top:6px;padding-top:14px}
  .rxe-rec-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
  .rxe-rec-title{display:flex;align-items:center;gap:7px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3)}
  .rxe-rec-title .rxe-ic{width:15px;height:15px}
  .rxe-icbtn{width:32px;height:32px;border-radius:var(--r-sm);border:1px solid var(--border2);background:var(--bg3);color:var(--text2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.18s var(--ease)}
  .rxe-icbtn:hover{color:var(--red2);border-color:var(--red-dim2);background:var(--red-dim)}
  .rxe-icbtn .rxe-ic{width:16px;height:16px}
  .rxe-rec{border:1px solid var(--border2);border-radius:var(--r-md);background:var(--bg2);margin-bottom:8px;overflow:hidden}
  .rxe-rec summary{display:flex;align-items:center;gap:9px;padding:11px 12px;cursor:pointer;list-style:none;color:var(--text2)}
  .rxe-rec summary::-webkit-details-marker{display:none}
  .rxe-rec summary .rxe-ic{width:16px;height:16px;color:var(--red2)}
  .rxe-rec[open] summary{border-bottom:1px solid var(--border)}
  .rxe-rec-nome{flex:1;min-width:0;font-weight:700;font-size:13px;color:var(--text)}
  .rxe-rec-time{font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--text3);white-space:nowrap}
  .rxe-rec-b{padding:12px 12px 10px;background:var(--bg3)}
  .rxe-rec-b .rxe-card{margin-bottom:10px}
  .rxe-del{display:inline-flex;align-items:center;gap:5px;color:var(--text3);text-decoration:none}
  .rxe-del:hover{color:var(--err)}
  .rxe-del .rxe-ic{width:14px;height:14px}
  @media (max-width:880px){
    .mdl-overlay{padding:0;overscroll-behavior:contain}
    .mdl-shell{max-width:none;height:100vh;height:100dvh;border-radius:0;border:none}
    .mdl-grid{display:block;overflow-y:auto;-webkit-overflow-scrolling:touch}
    .mdl-rail{position:sticky;top:0;z-index:3;display:flex;gap:6px;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border);background:var(--bg2);padding:10px 12px}
    .mdl-rail-label{display:none}
    .mdl-nav{margin-bottom:0;white-space:nowrap;flex:0 0 auto}
    .mdl-form-wrap{border-right:none;border-bottom:1px solid var(--border);overflow:visible;padding:16px}
    .mdl-prev{overflow:visible}
    pre.mdl-preview{min-height:160px;max-height:60vh;margin:0 14px 16px}
    .rxe-results{overflow:visible;padding:0 14px 16px}
    .mdl-boxes{grid-template-columns:repeat(auto-fill,minmax(66px,1fr))}
  }
  .bottom-icon svg{display:block;width:22px;height:22px}
  @media (max-width:768px){
    .bottom-nav-inner{height:58px}
    .bottom-btn{padding:6px 1px;gap:3px}
    .bottom-icon{font-size:0;width:34px;height:24px}
    .bottom-label{font-size:8.5px;letter-spacing:0}
  }
  @media (max-width:768px){
    /* barra de fontes do topo: ocultar no mobile (intenção original) */
    .status-bar{display:none !important}
    /* linha de ações do fórum: quebrar para o botão Caso Clínico não cortar */
    .forum-actions-row{flex-wrap:wrap;gap:8px}
    .forum-actions-row #forumNewPostBtn,.forum-actions-row #forumCasoBtn{flex:1 1 0;min-width:0;white-space:nowrap;text-align:center}
    /* botao flutuante de notas: redundante no mobile (ja existe aba Notas) e colidia com a barra */
    .notes-btn{display:none !important}
    /* barra inferior: 7 colunas iguais, sem sobra */
    .bottom-nav-inner{width:100%;justify-content:space-between}
    .bottom-btn{flex:1 1 0;min-width:0}
    .bottom-label{max-width:100%;overflow:hidden;text-overflow:ellipsis}
  }
  /* === comentários estilo chat === */
  #forumModalComments{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}
  .cmt-row{display:flex;gap:8px;align-items:flex-end;max-width:100%}
  .cmt-row.own{flex-direction:row-reverse}
  .cmt-avatar{width:30px;height:30px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:'Manrope',sans-serif;font-size:11px;font-weight:700;color:#fff;letter-spacing:.3px}
  .cmt-col{display:flex;flex-direction:column;max-width:78%;min-width:0}
  .cmt-row.own .cmt-col{align-items:flex-end}
  .cmt-name{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--text3);margin:0 0 3px 12px}
  .cmt-bubble{padding:9px 13px;border-radius:16px;border-bottom-left-radius:4px;font-size:13.5px;line-height:1.45;color:var(--text);background:var(--bg3);border:1px solid var(--border);word-wrap:break-word;overflow-wrap:anywhere}
  .cmt-row.own .cmt-bubble{background:rgba(77,159,255,0.16);border-color:rgba(77,159,255,0.30);border-bottom-left-radius:16px;border-bottom-right-radius:4px}
  .cmt-time{display:block;font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--text3);margin-top:4px;text-align:right;opacity:.75}
  .cmt-del{background:none;border:none;cursor:pointer;color:var(--text3);font-size:12px;align-self:center;padding:2px 4px;border-radius:4px;opacity:.45;transition:opacity .15s,color .15s}
  .cmt-del:hover{color:var(--red);opacity:1}
  /* composer fixo no rodapé do modal */
  #forumCommentInputWrap{position:sticky;bottom:0;background:var(--bg2);margin:6px -24px 0;padding:10px 24px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--border);z-index:3}
  .cmt-composer{display:flex;gap:8px;align-items:flex-end}
  .cmt-input{flex:1;min-height:42px;max-height:120px;resize:none;border-radius:21px;padding:11px 16px;margin:0}
  .cmt-send{flex-shrink:0;width:42px;height:42px;border-radius:50%;border:none;background:var(--red);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .1s,background .15s}
  .cmt-send:hover{background:var(--red2)}
  .cmt-send:active{transform:scale(0.92)}
  #forumModalBody .post-hr{border:none;border-top:1px solid var(--border2);margin:14px 0;opacity:.6}
  #forumModalBody strong{color:var(--text);font-weight:700}
  #forumModalBody em{color:var(--text2)}
  /* ===== CLEAN RE-SKIN ADDITIONS ===== */
  .logo-mark { height:27px; width:auto; display:block; flex-shrink:0; }
  .header-right { display:flex; align-items:center; gap:10px; margin-left:auto; }
  .header-search { flex:1; max-width:440px; position:relative; display:flex; align-items:center; margin:0 24px; }
  .header-search input { width:100%; background:var(--bg3); border:1px solid var(--border); border-radius:10px; padding:9px 38px 9px 36px; font-family:'Manrope',sans-serif; font-size:13.5px; color:var(--text); outline:none; transition:border-color .18s, box-shadow .18s, background .18s; }
  .header-search input::placeholder { color:var(--text3); }
  .header-search input:focus { border-color:var(--red-dim2); box-shadow:0 0 0 3px var(--red-dim); background:var(--bg2); }
  .header-search-ic { position:absolute; left:12px; font-size:13px; color:var(--text3); pointer-events:none; }
  .header-search-kbd { position:absolute; right:11px; font-size:11px; color:var(--text3); font-family:'JetBrains Mono',monospace; pointer-events:none; }
  .icon-btn { width:36px; height:36px; border-radius:9px; border:1px solid var(--border); background:var(--bg2); color:var(--text2); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:15px; transition:all .15s; }
  .icon-btn:hover { background:var(--bg4); color:var(--text); border-color:var(--border2); }
  .side-group-label { font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:600; color:var(--text3); letter-spacing:1.4px; text-transform:uppercase; margin:18px 0 8px; padding-left:12px; }
  .side-group-label:first-of-type { margin-top:2px; }
  .side-nav.collapsed .side-group-label { display:none; }
  body { transition: background-color .25s ease, color .2s ease; }
  @media (max-width:768px){ .header-search { display:none; } }
  /* ===== NOTIFICAÇÃO DE DIRETRIZES ===== */
  .guideline-new-badge { display:inline-block; font-family:'JetBrains Mono',monospace; font-size:9px; font-weight:700; letter-spacing:.5px; padding:1px 6px; border-radius:4px; background:var(--coral,#e0563b); color:#fff; margin-left:6px; vertical-align:middle; }
  .side-badge { display:inline-flex; align-items:center; justify-content:center; min-width:16px; height:16px; padding:0 4px; margin-left:auto; border-radius:8px; background:var(--coral,#e0563b); color:#fff; font-family:'Manrope',sans-serif; font-size:10px; font-weight:700; line-height:1; }
  .side-nav.collapsed .side-badge { position:absolute; top:5px; right:5px; margin:0; }
  .gs-newbanner { background:var(--gold-dim); border:1px solid var(--gold); border-radius:10px; padding:12px 16px; margin-bottom:16px; display:flex; align-items:center; gap:10px; font-size:13px; color:var(--text); line-height:1.45; }
  /* ===== HERO GEOMETRIC (welcome + forum banner) ===== */
  .eshape { position:absolute; animation:eshapeIn 2.4s cubic-bezier(.23,.86,.39,.96) both; }
  .eshape-inner { display:block; width:100%; height:100%; border-radius:9999px; border:2px solid rgba(127,127,127,.14); -webkit-backdrop-filter:blur(2px); backdrop-filter:blur(2px); box-shadow:0 8px 32px rgba(0,0,0,.06); position:relative; animation:eFloat 12s ease-in-out infinite; }
  .eshape-inner::after { content:''; position:absolute; inset:0; border-radius:9999px; background:radial-gradient(circle at 50% 50%, rgba(127,127,127,.10), transparent 70%); }
  @keyframes eshapeIn { from { opacity:0; transform:translateY(-150px) rotate(calc(var(--rot,0deg) - 15deg)); } to { opacity:1; transform:translateY(0) rotate(var(--rot,0deg)); } }
  @keyframes eFloat { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(15px); } }
  @keyframes whUp { from{opacity:0;transform:translateY(30px);} to{opacity:1;transform:translateY(0);} }
  /* ===================================================================
     LANDING — CardioAtt Design System v1.0
     Serifada editorial nos títulos, sans na interface. Hairlines no lugar
     de sombra. Faixas escuras de marca (navy) valem nos dois temas.
     =================================================================== */
  html.wh-open, html.wh-open body { overflow:hidden !important; }
  #welcomeHero { position:fixed; inset:0; z-index:500; display:flex; flex-direction:column;
    align-items:stretch; justify-content:flex-start; overflow-y:auto; overflow-x:hidden;
    background:var(--bg2); -webkit-overflow-scrolling:touch; }
  /* #welcomeHero é flex-column: sem flex:0 0 auto os filhos encolhem
     (a barra de 72px virava 39px). O CSS original fazia isso por seção. */
  /* o ouro dentro das faixas navy é fixo: o --gold do tema claro é escuro demais */
  #welcomeHero{--gold-bright:#E0A93B}
  #welcomeHero > *{flex:0 0 auto}
  #welcomeHero .lp-wrap{max-width:1200px;margin:0 auto;padding:0 20px;width:100%}
  @media(min-width:768px){ #welcomeHero .lp-wrap{padding:0 32px} }
  @media(min-width:1024px){ #welcomeHero .lp-wrap{padding:0 48px} }

  /* --- tipografia --- */
  .lp-disp{font-family:'Fraunces',Georgia,serif;font-weight:400;font-variation-settings:'opsz' 96;
    letter-spacing:-.02em;color:var(--text)}
  .wh-title{font-family:'Fraunces',Georgia,serif;font-weight:400;font-variation-settings:'opsz' 96;
    font-size:clamp(40px,5.4vw,66px);line-height:1.05;letter-spacing:-.022em;margin:20px 0;
    color:var(--text);max-width:16ch}
  .lp-h2{font-family:'Fraunces',Georgia,serif;font-weight:400;font-variation-settings:'opsz' 96;
    font-size:clamp(30px,3.8vw,49px);line-height:1.09;letter-spacing:-.02em;margin:0 0 16px;color:var(--text)}
  .lp-eyebrow{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.09em;
    text-transform:uppercase;color:var(--text2);margin:0 0 12px}
  .lp-lead{font-size:17px;line-height:1.62;color:var(--text2);max-width:56ch;margin:0}
  .wh-sub{font-size:17px;line-height:1.62;color:var(--text2);max-width:46ch;margin:0}

  /* --- navbar de vidro, inverte sobre faixa escura --- */
  .lp-topbar{position:sticky;top:0;z-index:60;height:72px;display:flex;align-items:center;
    padding:0 20px;border-bottom:1px solid transparent;
    transition:background .32s var(--ease),border-color .32s var(--ease),color .32s var(--ease)}
  @media(min-width:768px){ .lp-topbar{padding:0 32px} }
  @media(min-width:1024px){ .lp-topbar{padding:0 48px} }
  .lp-topbar.is-stuck{background:var(--header-bg);
    -webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%);
    border-bottom-color:var(--border)}
  .lp-topbar.is-dark{color:#fff}
  .lp-topbar.is-dark.is-stuck{background:rgba(7,26,53,.5);border-bottom-color:var(--od-border)}
  @supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
    .lp-topbar.is-stuck{background:var(--bg2)} .lp-topbar.is-dark.is-stuck{background:rgba(7,26,53,.94)} }
  .lp-brand{display:flex;align-items:center;gap:9px;font-family:'Fraunces',Georgia,serif;
    font-weight:500;font-variation-settings:'opsz' 40;font-size:23px;letter-spacing:-.02em;color:inherit}
  .lp-brand img{width:auto;height:25px;display:block}
  .lp-topbar.is-dark .lp-brand img{filter:drop-shadow(0 0 1px rgba(255,255,255,.55))}
  .lp-navbtns{margin-left:auto;display:flex;align-items:center;gap:8px}
  /* Links para o conteúdo aberto (SEO e descoberta). No celular ficam só no rodapé. */
  .lp-links{display:none;margin-left:28px;gap:4px}
  .lp-links a{padding:8px 10px;border-radius:var(--r-sm);color:var(--text2);font-size:14px;font-weight:500;text-decoration:none}
  .lp-links a:hover{color:var(--text);background:var(--bg3)}
  .lp-topbar.is-dark .lp-links a{color:rgba(255,255,255,.78)}
  .lp-topbar.is-dark .lp-links a:hover{color:#fff;background:var(--od-surface-hover)}
  @media(min-width:880px){ .lp-links{display:flex} }
  .lp-navbtn{height:38px;padding:0 16px;border-radius:var(--r-sm);font-size:14px;font-weight:500;
    font-family:'Manrope',sans-serif;cursor:pointer;transition:.18s var(--ease);white-space:nowrap}
  .lp-navbtn.ghost{background:transparent;border:1px solid var(--border2);color:var(--text)}
  .lp-navbtn.ghost:hover{background:var(--bg3);border-color:var(--text3)}
  .lp-navbtn.primary{background:var(--red);border:1px solid var(--red);color:#fff}
  .lp-navbtn.primary:hover{background:var(--red2);transform:translateY(-1px)}
  .lp-topbar.is-dark .lp-navbtn.ghost{border-color:var(--od-border);color:#fff}
  .lp-topbar.is-dark .lp-navbtn.ghost:hover{background:var(--od-surface-hover)}
  .lp-topbar.is-dark .lp-navbtn.primary{background:#fff;border-color:#fff;color:var(--navy)}

  /* --- botões --- */
  .wh-btn-primary,.wh-btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;
    height:48px;padding:0 24px;border-radius:var(--r-sm);font-family:'Manrope',sans-serif;font-size:15px;
    font-weight:500;cursor:pointer;text-decoration:none;transition:.18s var(--ease)}
  .wh-btn-primary{background:var(--red);border:1px solid var(--red);color:#fff}
  .wh-btn-primary:hover{background:var(--red2);transform:translateY(-1px)}
  .wh-btn-ghost{background:transparent;border:1px solid var(--border2);color:var(--text)}
  .wh-btn-ghost:hover{background:var(--bg3);border-color:var(--text3)}
  .lp-ondark .wh-btn-primary{background:#fff;border-color:#fff;color:var(--navy)}
  .lp-ondark .wh-btn-primary:hover{background:#E8EEF7}
  .lp-ondark .wh-btn-ghost{border-color:var(--od-border);color:#fff}
  .lp-ondark .wh-btn-ghost:hover{background:var(--od-surface-hover)}
  a.wh-btn-primary,a.wh-btn-ghost{text-decoration:none}

  /* --- hero --- */
  .lp-hero{position:relative;padding:56px 0 72px;overflow:hidden}
  @media(min-width:1024px){ .lp-hero{padding:80px 0 112px} }
  .lp-hero-grid{display:grid;gap:48px;align-items:center}
  @media(min-width:1024px){ .lp-hero-grid{grid-template-columns:1.15fr .95fr;gap:64px} }
  .wh-badge{display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 12px;border-radius:999px;
    background:var(--green-dim);color:var(--green);font-size:12px;font-weight:600;font-family:'Manrope',sans-serif}
  .wh-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}
  .wh-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
  .wh-pricenote{margin:16px 0 0;font-size:14px;color:var(--text3)}

  /* --- mockup do trial: DOM real, faixa de marca nos dois temas --- */
  .lp-mock{position:relative;isolation:isolate;background:var(--navy);border:1px solid var(--od-border);
    border-radius:var(--r-xl);box-shadow:var(--sh-float);overflow:hidden;padding:22px}
  .lp-mock::before{content:"";position:absolute;width:120%;height:90%;left:-30%;top:-24%;border-radius:50%;
    background:var(--navy-soft);opacity:.5;filter:blur(70px);z-index:0}
  .lp-mock>*{position:relative;z-index:1}
  .lp-mock-top{display:flex;align-items:center;gap:8px;margin-bottom:14px}
  .lp-mock-top .lp-eyebrow{margin:0;color:var(--od-3)}
  .lp-mock-top .wh-dot{background:var(--gold-bright)}
  .lp-mock h3{font-family:'Fraunces',Georgia,serif;font-weight:400;font-variation-settings:'opsz' 96;
    font-size:30px;line-height:1.15;letter-spacing:-.015em;color:#fff;margin:0 0 4px}
  .lp-mock .lp-mock-meta{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.06em;
    text-transform:uppercase;color:var(--od-3);margin:0 0 18px}
  .lp-mock-picot{display:grid;gap:2px;border:1px solid var(--od-border);border-radius:var(--r-md);
    overflow:hidden;background:var(--od-border)}
  .lp-mock-row{display:grid;grid-template-columns:30px 1fr;gap:12px;padding:12px 14px;align-items:start;
    background:rgba(255,255,255,.06);transition:background .2s var(--ease)}
  .lp-mock-row:hover{background:rgba(255,255,255,.11)}
  .lp-mock-k{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;color:var(--gold-bright);padding-top:2px}
  .lp-mock-v{font-size:13px;line-height:1.45;color:#fff}
  .lp-mock-result{margin-top:14px;padding:13px 14px;border-radius:var(--r-sm);
    background:rgba(224,169,59,.10);border:1px solid rgba(224,169,59,.24)}
  .lp-mock-result .lp-eyebrow{color:var(--gold-bright);margin:0 0 5px}
  .lp-mock-result p{margin:0;font-size:13px;line-height:1.5;color:#fff}
  .lp-mock-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
  .lp-mock-tags span{height:24px;padding:0 10px;border-radius:999px;background:rgba(255,255,255,.12);
    color:#fff;font-size:11px;font-weight:600;display:inline-flex;align-items:center}

  /* --- bloco de estatística: numerais serifados + hairlines --- */
  .lp-stats{display:grid;grid-template-columns:1fr 1fr;background:var(--bg2);border:1px solid var(--border2);
    border-radius:var(--r-md);overflow:hidden;margin:8px 0 0}
  .lp-stats>div{padding:24px 16px;text-align:center;border-bottom:1px solid var(--border)}
  .lp-stats>div:nth-child(odd){border-right:1px solid var(--border)}
  .lp-stats>div:nth-last-child(-n+2){border-bottom:0}
  @media(min-width:768px){
    .lp-stats{grid-template-columns:repeat(4,1fr)}
    .lp-stats>div{border-bottom:0;border-right:1px solid var(--border)}
    .lp-stats>div:last-child{border-right:0} }
  .lp-stat-n{font-family:'Fraunces',Georgia,serif;font-weight:400;font-variation-settings:'opsz' 120;
    font-size:clamp(30px,2.8vw,42px);line-height:1;letter-spacing:-.01em;color:var(--text);
    font-variant-numeric:tabular-nums;margin:0}
  .lp-stat-c{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;letter-spacing:.09em;
    text-transform:uppercase;color:var(--text2);margin:6px 0 0}

  /* --- seções --- */
  .lp-section{padding:64px 0}
  @media(min-width:768px){ .lp-section{padding:80px 0} }
  @media(min-width:1024px){ .lp-section{padding:104px 0} }
  .lp-section-head{max-width:760px;margin-bottom:48px}
  .lp-alt{background:var(--bg)}
  .lp-ondark{position:relative;isolation:isolate;background:var(--navy);color:#fff;overflow:hidden}
  .lp-ondark::before{content:"";position:absolute;width:70%;height:70%;left:-10%;top:-20%;border-radius:50%;
    background:var(--navy-soft);opacity:.5;filter:blur(90px);z-index:0}
  .lp-ondark::after{content:"";position:absolute;width:55%;height:60%;right:-12%;bottom:-22%;border-radius:50%;
    background:#04142B;opacity:.85;filter:blur(90px);z-index:0}
  .lp-ondark>*{position:relative;z-index:1}
  .lp-ondark .lp-h2,.lp-ondark .wh-title{color:#fff}
  .lp-ondark .lp-lead{color:var(--od-2)}
  .lp-ondark .lp-eyebrow{color:var(--od-3)}

  /* --- cards --- */
  .lp-grid{display:grid;gap:16px}
  @media(min-width:1024px){ .lp-grid{grid-template-columns:repeat(3,1fr);gap:24px} }
  .lp-grid.cols4{grid-template-columns:1fr}
  @media(min-width:1024px){ .lp-grid.cols4{grid-template-columns:repeat(4,1fr)} }
  .lp-card{background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r-lg);padding:28px;
    box-shadow:var(--card-shadow)}
  .lp-card h3{font-family:'Manrope',sans-serif;font-size:17px;font-weight:600;letter-spacing:-.005em;
    line-height:1.4;margin:0 0 8px;color:var(--text)}
  .lp-card p{margin:0;font-size:15px;line-height:1.6;color:var(--text2)}
  .lp-card .ic{width:44px;height:44px;border-radius:var(--r-sm);display:flex;align-items:center;
    justify-content:center;background:var(--red-dim);color:var(--red2);margin-bottom:16px;font-size:0}
  .lp-card .ic svg{width:22px;height:22px;display:block}
  .lp-card .stat{font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:1.15em;color:var(--text)}

  /* --- passos --- */
  .lp-steps{display:grid;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--r-lg);overflow:hidden}
  @media(min-width:900px){ .lp-steps{grid-template-columns:repeat(3,1fr)} }
  .lp-step{padding:32px;border-bottom:1px solid var(--border)}
  .lp-step:last-child{border-bottom:0}
  @media(min-width:900px){ .lp-step{border-bottom:0;border-right:1px solid var(--border)}
    .lp-step:last-child{border-right:0} }
  .lp-step .n{font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:34px;line-height:1;
    color:var(--text3);margin-bottom:14px}
  .lp-step h3{font-family:'Manrope',sans-serif;font-size:17px;font-weight:600;margin:0 0 8px;color:var(--text)}
  .lp-step p{margin:0;font-size:15px;line-height:1.6;color:var(--text2)}

  /* --- faixa de fontes --- */
  .lp-trust{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg)}
  .lp-trust-inner{max-width:1200px;margin:0 auto;padding:14px 20px;display:flex;flex-wrap:wrap;
    align-items:center;gap:6px 12px;font-size:12.5px;color:var(--text3);justify-content:center}
  .lp-trust-inner b{color:var(--text2);font-weight:600}
  .lp-trust-inner .sep{opacity:.5}

  /* --- preço --- */
  .lp-price{display:grid;gap:40px;align-items:center}
  @media(min-width:900px){ .lp-price{grid-template-columns:.85fr 1fr} }
  .lp-price-card{max-width:460px;background:var(--bg2);border:1px solid var(--border2);
    border-radius:var(--r-lg);padding:32px;box-shadow:var(--card-shadow-hover)}
  .lp-price-tag{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;
    background:var(--gold-dim);border:1px solid var(--badge-bd);color:var(--gold);font-size:11px;font-weight:700}
  .lp-price-value{display:flex;align-items:baseline;gap:6px;margin:18px 0 4px;color:var(--text2);font-size:15px}
  .lp-price-value strong{font-family:'Fraunces',Georgia,serif;font-weight:400;font-size:48px;line-height:1;
    letter-spacing:-.02em;color:var(--text)}
  .lp-price-list{list-style:none;padding:0;margin:24px 0;border-top:1px solid var(--border)}
  .lp-price-list li{position:relative;padding:11px 0 11px 28px;border-bottom:1px solid var(--border);
    font-size:15px;color:var(--text)}
  .lp-price-list li::before{content:"";position:absolute;left:2px;top:17px;width:12px;height:7px;
    border-left:2px solid var(--green);border-bottom:2px solid var(--green);transform:rotate(-45deg)}
  .lp-price-card .wh-btn-primary{width:100%;box-sizing:border-box}
  .lp-price-foot{margin:14px 0 0;text-align:center;font-size:14px;color:var(--text3)}

  /* --- FAQ em hairlines --- */
  .lp-faq{max-width:760px;border-top:1px solid var(--border2)}
  .lp-faq details{border-bottom:1px solid var(--border2)}
  .lp-faq summary{list-style:none;cursor:pointer;padding:20px 40px 20px 0;position:relative;
    font-size:17px;font-weight:500;letter-spacing:-.005em;color:var(--text);transition:color .18s}
  .lp-faq summary::-webkit-details-marker{display:none}
  .lp-faq summary:hover{color:var(--red2)}
  .lp-faq summary::after{content:"";position:absolute;right:10px;top:26px;width:9px;height:9px;
    border-right:1.5px solid var(--text3);border-bottom:1.5px solid var(--text3);
    transform:rotate(45deg);transition:transform .25s var(--ease)}
  .lp-faq details[open] summary::after{transform:rotate(-135deg);top:30px}
  .lp-faq details p{margin:0;padding:0 40px 22px 0;color:var(--text2);font-size:15px;line-height:1.6;max-width:68ch}

  /* --- CTA final --- */
  .lp-finalcta{text-align:center}
  .lp-finalcta .lp-inner{max-width:720px;margin:0 auto}
  .lp-bene{list-style:none;padding:0;margin:0 0 36px;display:inline-grid;gap:12px;text-align:left}
  .lp-bene li{position:relative;padding-left:30px;color:#fff;font-size:17px}
  .lp-bene li::before{content:"";position:absolute;left:2px;top:8px;width:13px;height:7px;
    border-left:2px solid var(--gold-bright);border-bottom:2px solid var(--gold-bright);transform:rotate(-45deg)}
  .lp-cta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:8px}
  .lp-footer{border-top:1px solid var(--border);padding:24px;text-align:center;color:var(--text3);
    font-size:12.5px;flex:0 0 auto}

  /* --- revelação no scroll --- */
  .lp-rv{opacity:0;transform:translateY(16px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
  .lp-rv.in{opacity:1;transform:none}
  @media (prefers-reduced-motion: reduce){
    .lp-rv{opacity:1!important;transform:none!important}
    .lp-scrollcue,.lp-scrollcue b{animation:none!important;opacity:1!important} }

/* ===== Click ripple (vanilla, lightweight) ===== */
  .ripple-ink{ position:absolute; border-radius:50%; transform:scale(0); opacity:.25; pointer-events:none; background:currentColor; animation:rippleInk var(--ripple-dur,560ms) ease-out forwards; }
  @keyframes rippleInk{ to{ transform:scale(1); opacity:0; } }
  @media (prefers-reduced-motion: reduce){ .ripple-ink{ display:none !important; } }

  /* Modelos como seção (painel embutido) */
  .mdl-panel{border:1px solid var(--border2);border-radius:14px;overflow:hidden;background:var(--bg2);height:clamp(540px,calc(100vh - 170px),820px);display:flex;flex-direction:column}
  @media (max-width:880px){ .mdl-panel{height:auto;border-radius:12px} }

.notif-badge{position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--coral);color:#fff;font-family:'Manrope',sans-serif;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 0 0 2px var(--bg)}
  .notif-panel{position:fixed;top:60px;right:16px;width:344px;max-width:calc(100vw - 24px);max-height:72vh;overflow-y:auto;background:var(--bg2);border:1px solid var(--border2);border-radius:14px;box-shadow:var(--card-shadow-hover);z-index:1200;padding:6px}
  .notif-head{padding:10px 12px 8px;font-family:'Manrope',sans-serif;font-weight:700;font-size:14px;color:var(--text)}
  .notif-item{display:flex;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;align-items:flex-start;transition:background .12s}
  .notif-item:hover{background:var(--bg3)}
  .notif-item.unread{background:var(--blue-dim)}
  .notif-dot{width:7px;height:7px;border-radius:50%;background:var(--blue);flex-shrink:0;margin-top:6px}
  .notif-text{font-size:13px;color:var(--text);line-height:1.35}
  .notif-time{font-size:11px;color:var(--text3);margin-top:2px}
  .notif-empty{padding:30px 16px;text-align:center;color:var(--text3);font-size:13px;line-height:1.5}

.reactions-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:20px}
  .react-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:18px;border:1px solid var(--border);background:var(--bg3);cursor:pointer;font-family:'Manrope',sans-serif;font-size:13px;color:var(--text2);transition:all .12s;user-select:none}
  .react-chip:hover{border-color:var(--border2);color:var(--text)}
  .react-chip.on{background:var(--blue-dim);border-color:var(--red-dim2);color:var(--red2)}
  .react-chip .rc-emoji{font-size:15px;line-height:1}
  .react-chip .rc-n{font-weight:700;font-size:12px}
  .react-fav{margin-left:auto}
  .react-fav.on{background:var(--coral-dim);border-color:var(--coral);color:var(--coral)}

.mod-modal-overlay{position:fixed;inset:0;background:rgba(3,10,22,0.66);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:3000;display:none;align-items:center;justify-content:center;padding:20px}
  .mod-modal-card{background:var(--bg2);border:1px solid var(--border2);border-radius:18px;box-shadow:0 24px 60px rgba(0,0,0,0.45);max-width:420px;width:100%;padding:30px 28px;text-align:center;font-family:'Manrope',sans-serif;animation:modPop .18s ease}
  @keyframes modPop{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
  .mod-modal-icon{width:62px;height:62px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 18px auto}
  .mod-modal-title{font-size:19px;font-weight:800;color:var(--text);margin-bottom:10px;letter-spacing:-0.2px}
  .mod-modal-msg{font-size:14px;line-height:1.55;color:var(--text2);margin-bottom:24px}
  .mod-modal-btn{border:none;border-radius:10px;color:#fff;font-family:'Manrope',sans-serif;font-size:14px;font-weight:700;padding:12px 28px;cursor:pointer;width:100%}
  .mod-modal-btn:hover{filter:brightness(1.06)}

/* ===== Rodapé do site (antes em assets/snippets/footer.css) ===== */
/* Rodapé sempre no fim da página: quando a seção tem pouco conteúdo, ele desce
   até a base em vez de ficar no meio da tela (.app-layout já tem min-height). */
.app-layout > main{display:flex;flex-direction:column}
/* respiro entre o conteúdo da seção e o rodapé (o margin-top:auto do rodapé
   vira 0 quando a seção ocupa a tela toda, e ele encostava no conteúdo) */
.app-layout > main > section{margin-bottom:32px}
.app-layout > main > .site-footer{margin:auto -40px -32px}
@media (max-width:768px){
  /* no mobile a barra de navegação inferior ocupa os últimos 100px: o rodapé
     encosta nela, não embaixo dela */
  .app-layout > main > .site-footer{margin:auto -14px 0}
}

/* CardioAtt — estilos do rodapé (assets/snippets/footer.html).
   Usa as variáveis do :root do index.html: --bg2, --border, --text2, --text3, --blue. */
.site-footer{background:var(--bg2);border-top:1px solid var(--border);color:var(--text3);
  font-size:10.5px;line-height:1.4;margin-top:20px}
.site-footer__inner{max-width:1180px;margin:0 auto;padding:12px 20px 13px;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 10px}
.site-footer__brand{display:flex;align-items:center;gap:4px;font-weight:700;
  letter-spacing:.3px;color:var(--text3);font-size:10.5px}
.site-footer__brand img{width:auto;height:11px;display:block;opacity:.7}
.site-footer p{margin:0}
.site-footer__disclaimer{color:var(--text3);opacity:.7}
.site-footer__links{display:flex;flex-wrap:wrap;gap:2px 10px}
.site-footer__links a{color:var(--text3);text-decoration:none}
.site-footer__links a:hover,.site-footer__links a:focus-visible{color:var(--red2);text-decoration:underline}
.site-footer__legal,.site-footer__copy{color:var(--text3);opacity:.7}
@media (max-width:600px){
  .site-footer__inner{padding:10px 14px 11px;gap:2px 8px}
  .site-footer__links{gap:2px 8px}
}

/* ===== BUSCA GLOBAL (header do app) ===== */
.gsearch { flex:1 1 auto; max-width:460px; min-width:0; position:relative; display:flex; align-items:center; margin:0 18px; }
.gsearch-input { width:100%; background:var(--bg3); border:1px solid var(--border); border-radius:10px; padding:8px 40px 8px 34px; font-family:'Manrope',sans-serif; font-size:13.5px; color:var(--text); outline:none; transition:border-color .18s, box-shadow .18s, background .18s; -webkit-appearance:none; appearance:none; }
.gsearch-input::placeholder { color:var(--text3); }
.gsearch-input::-webkit-search-decoration, .gsearch-input::-webkit-search-cancel-button { -webkit-appearance:none; }
.gsearch-input:focus { border-color:var(--red2); box-shadow:0 0 0 3px rgba(0,102,255,0.18); background:var(--bg2); }
.gsearch-icon { position:absolute; left:11px; color:var(--text3); pointer-events:none; }
.gsearch-kbd { position:absolute; right:9px; font-size:10.5px; line-height:1; color:var(--text3); font-family:'JetBrains Mono',monospace; border:1px solid var(--border2); background:var(--bg2); border-radius:5px; padding:3px 6px; pointer-events:none; }
.gsearch-input:focus ~ .gsearch-kbd { display:none; }
.gsearch-results { position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:400; background:var(--bg2); border:1px solid var(--border2); border-radius:12px; box-shadow:0 12px 32px rgba(0,0,0,0.22); max-height:min(70vh, 480px); overflow-y:auto; padding:6px; }
.gsearch-group { font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:1px; text-transform:uppercase; color:var(--text3); padding:8px 10px 4px; }
.gsearch-item { display:flex; align-items:flex-start; gap:10px; padding:8px 10px; border-radius:8px; cursor:pointer; color:var(--text); }
.gsearch-item.active, .gsearch-item:hover { background:var(--bg4); }
.gsearch-item.active { outline:1px solid var(--red2); outline-offset:-1px; }
.gsearch-type { flex:none; width:22px; height:22px; border-radius:6px; display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; margin-top:1px; color:#fff; }
.gsearch-type-trial { background:var(--red); }
.gsearch-type-guideline { background:var(--gold); color:#0b0b0b; }
.gsearch-type-score { background:var(--green); }
.gsearch-text { display:flex; flex-direction:column; gap:2px; min-width:0; }
.gsearch-title { font-size:13.5px; font-weight:600; line-height:1.3; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.gsearch-title mark { background:transparent; color:var(--red2); padding:0; }
.gsearch-sub { font-size:11.5px; color:var(--text3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gsearch-empty { padding:16px 12px; font-size:13px; color:var(--text3); text-align:center; }
.gsearch-flash { box-shadow:0 0 0 3px var(--red2) !important; transition:box-shadow .3s; }
html[data-theme="light"] .gsearch-results { box-shadow:0 12px 32px rgba(15,30,60,0.14); }
@media (max-width: 768px) {
  .gsearch { margin:0 8px; max-width:none; }
  .gsearch-input { font-size:16px; padding:7px 12px 7px 32px; border-radius:9px; }
  .gsearch-kbd { display:none; }
  .gsearch-results { position:fixed; left:8px; right:8px; top:60px; max-height:calc(100vh - 140px); }
}
@media (max-width: 420px) {
  .gsearch-input { text-overflow:ellipsis; }
}

/* ===== MOBILE — revisão de toque/overflow (viewport <= 768px) =====
   Complementa as media queries de 768px/880px acima. Alvos de toque >= 44px
   nos controles principais; pílulas de filtro (.quick-tag) em 40px por densidade. */
@media (max-width: 768px) {
  html, body { overflow-x: hidden; max-width: 100%; }
  main, main > section { min-width: 0; max-width: 100%; }
  main img, main svg, main video, main table { max-width: 100%; }
  main pre, main table { overflow-x: auto; -webkit-overflow-scrolling: touch; }

  /* Header: alvos de toque */
  .icon-btn { width: 44px; height: 44px; }
  .gsearch-input { min-height: 40px; }

  /* Landing: botões da barra superior */
  .lp-navbtn { min-height: 44px; padding: 10px 16px; }

  /* Pílulas de filtro e abas */
  .quick-tag { min-height: 40px; padding: 8px 14px; font-size: 13px; }
  .tab { min-height: 44px; padding: 12px 16px; }

  /* Busca do fórum: input não fica escondido atrás do botão "Literatura" */
  .search-input { padding-right: 140px; min-height: 48px; text-overflow: ellipsis; }
  .search-btn { min-height: 40px; padding: 8px 14px; }
  #forumNewPostBtn { min-height: 44px !important; }

  /* Trials: botão "?" do PICOT e ações do card (favorito / compartilhar) */
  #picotToggle { width: 40px !important; height: 40px !important; font-size: 15px !important; }
  .trial-card > button[id^="fav-"],
  .trial-card > button[aria-label="Compartilhar PICOT"] {
    top: 2px !important; width: 44px; height: 44px;
    display: inline-flex; align-items: center; justify-content: center; padding: 0 !important;
  }
  .trial-card > button[id^="fav-"] { right: 2px !important; }
  .trial-card > button[aria-label="Compartilhar PICOT"] { right: 44px !important; }
  .trial-card > .trial-name { padding-right: 92px !important; }

  /* Scores: cabeçalho do card quebra em duas linhas em vez de espremer o título */
  #scoresGrid [id^="card-"] > div:first-child { flex-wrap: wrap; gap: 6px 10px; padding: 14px 16px; }
  #scoresGrid [id^="card-"] > div:first-child > div:first-child { flex: 1 1 100%; }
  #scoresGrid [id^="card-"] > div:first-child > div:first-child > div > div:first-child { flex-wrap: wrap; }
  #scoresGrid [id^="card-"] > div:first-child > div:last-child { flex: 1 1 100%; justify-content: space-between; }
  #scoresGrid [id^="card-"] > div:first-child > div:last-child > span:first-child { white-space: normal; }
  #scoresGrid [id^="card-"] > div:first-child > div:last-child > span:last-child {
    display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 32px;
  }
  #scoresGrid input:not([type="checkbox"]), #scoresGrid select { min-height: 44px; font-size: 16px !important; }
  #scoresGrid label:has(> input[type="checkbox"]) { min-height: 44px; align-items: center !important; }
  #scoresGrid input[type="checkbox"] { width: 20px !important; height: 20px !important; margin-top: 0 !important; }

  /* Trials: busca por nome, botões do card expandido */
  #trialNameSearch { min-height: 44px; }
  .card-btn { min-height: 40px; display: inline-flex; align-items: center; padding: 8px 14px; }

  /* Rodapé: links com área de toque confortável */
  .site-footer__links a { display: inline-block; padding: 4px 0; min-height: 26px; }
  .site-footer__links { gap: 0 10px; }

  /* Modal de auth: campos e links secundários */
  #authEmail, #authSenha, #authNome { min-height: 44px; font-size: 16px !important; }
  .modal button.search-btn, .modal button[type="submit"] { min-height: 44px; }
  .modal p > button { min-height: 44px; padding: 10px 12px; }

  /* Inputs de 16px evitam zoom automático no iOS */
  input[type="text"], input[type="email"], input[type="password"], input[type="number"], select, textarea { font-size: 16px; }

  /* Banner de consentimento acima da bottom-nav, sem cobrir o conteúdo */
  .ca-consent__btn { min-height: 44px; }
}
@media (max-width: 768px) {
  /* Banner de consentimento não cobre a bottom-nav quando o app está visível */
  html:not(.wh-open) .ca-consent { bottom: calc(72px + env(safe-area-inset-bottom)); }
}

/* ── Compartilhar (link das páginas estáticas) ── */
.share-btn{display:inline-flex;align-items:center;gap:6px;font-size:12px;line-height:1;cursor:pointer}
.share-btn svg{flex:none}
.share-wa{font-size:11.5px;color:var(--text3);text-decoration:none;align-self:center;padding:4px 6px;border-radius:6px;opacity:.8}
.share-wa:hover{color:#25d366;opacity:1;text-decoration:underline}
.share-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}


/* ===== RESTAURADO =====
   Estas regras viviam no mesmo trecho do CSS da landing e foram
   removidas junto com ela por engano. NÃO são da landing:
   .forum-hero/.fh-* é o banner das seções do app (Trials, Scores,
   Fórum...) e .score-input-error é o estado de erro das calculadoras.
   Reinseridas idênticas ao original. ===== */
  .forum-hero { position:relative; overflow:hidden; border-radius:18px; border:1px solid var(--border); background:radial-gradient(120% 140% at 0% 0%, var(--bg2), var(--bg3)); padding:30px; box-shadow:var(--card-shadow); }
  .fh-shapes { position:absolute; inset:0; pointer-events:none; opacity:.85; }
  .fh-content { position:relative; z-index:2; }
  .fh-badge { display:inline-flex; align-items:center; gap:7px; padding:4px 11px; border-radius:9999px; background:var(--bg2); border:1px solid var(--border); font-size:11px; font-weight:600; color:var(--text2); letter-spacing:.4px; margin-bottom:12px; }
  .fh-dot { width:7px; height:7px; border-radius:50%; background:var(--red); box-shadow:0 0 0 3px var(--red-dim); }
  .fh-title { font-family:'Manrope',sans-serif; font-weight:800; font-size:30px; letter-spacing:-.02em; margin:0 0 6px; background:linear-gradient(90deg,var(--text),var(--red)); -webkit-background-clip:text; background-clip:text; color:transparent; }
  .fh-sub { color:var(--text2); font-size:13.5px; margin:0; max-width:560px; }
  .score-input-error { border-color:var(--red) !important; box-shadow:0 0 0 2px var(--red-dim, rgba(224,40,60,.18)) !important; }

/* ===================================================================
   CardioAtt Design System v1.0 — camada de aplicação (app logado)
   Bloco aditivo no fim do arquivo: sobrepõe o necessário sem reescrever
   as ~2000 linhas acima. Para reverter o redesign do app, apague daqui
   até o fim do arquivo.
   Princípios: serifada editorial só em título; hairline no lugar de
   sombra; superfície de marca (navy) na navegação; acento raro.
   =================================================================== */

/* ---- 1. A voz: serifada peso 400 nos títulos ---- */
.logo-text{font-family:'Fraunces',Georgia,serif;font-weight:500;font-variation-settings:'opsz' 40;
  font-size:23px;letter-spacing:-.02em}
.logo-text span{color:inherit}
.fh-title{font-family:'Fraunces',Georgia,serif;font-weight:400;font-variation-settings:'opsz' 96;
  font-size:clamp(26px,3vw,34px);line-height:1.12;letter-spacing:-.018em;margin:0 0 4px;
  /* desliga o texto-gradiente da regra original: a serifada é sólida */
  background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--text)}
.trial-name{font-family:'Fraunces',Georgia,serif;font-weight:400;font-variation-settings:'opsz' 72;
  font-size:23px;line-height:1.2;letter-spacing:-.015em}
.modal-title{font-family:'Fraunces',Georgia,serif;font-weight:400;font-variation-settings:'opsz' 48;
  font-size:22px;letter-spacing:-.015em}

/* ---- 2. Hairline no lugar de sombra ---- */
.trial-card{background:var(--bg2);box-shadow:var(--card-shadow);border-color:var(--border2);
  transition:border-color .18s var(--ease),background .18s var(--ease),transform .18s var(--ease)}
/* a barra dourada em TODO card tornava o acento comum; o acento é raro por definição */
.trial-card::before{display:none}
.trial-card:hover{border-color:var(--text3);background:var(--bg3);transform:translateY(-1px);
  box-shadow:var(--card-shadow)}
.notif-panel,.gsearch-results{box-shadow:var(--card-shadow-hover)}

/* ---- 3. Header: o mesmo vidro da landing ---- */
header{-webkit-backdrop-filter:blur(20px) saturate(170%);backdrop-filter:blur(20px) saturate(170%)}

/* ---- 4. Navegação lateral ----
   A sidebar em vidro/navy da referência FICOU DE FORA deste deploy de
   propósito: sem login não foi possível validar o app logado, e o fundo
   navy expõe um vão de 56px entre o header e a .side-nav que era
   invisível enquanto ela era branca (.app-layout começa em 57, a
   .side-nav sticky assenta em 113). Fazer isso direito pede uma sessão
   autenticada para conferir estados (collapsed, badges, admin, mobile).
   Por ora a sidebar segue nativa do tema, só com o raio padronizado. */
.side-nav .side-btn{border-radius:var(--r-sm)}

/* ---- 6. Acessibilidade: foco sempre visível ---- */
:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.side-nav :focus-visible{outline-color:var(--gold)}

/* ===================================================================
   Card de trial: mesma anatomia do mockup da landing (eyebrow, nome
   serifado, PICOT em grade com chaves em ouro, caixa de resultado,
   tags), mas sobre a SUPERFICIE DO TEMA em vez de faixa navy fixa.
   No escuro fica praticamente igual ao mockup; no claro vira card claro
   com as mesmas chaves em ouro e as mesmas hairlines.
   Tudo em token, nada de cor fixa — e o que faz o card virar com o tema.
   =================================================================== */
.trial-card{
  position:relative; isolation:isolate; overflow:hidden;
  background:var(--bg2); border:1px solid var(--border2); border-radius:var(--r-lg);
  padding:22px; box-shadow:var(--card-shadow); color:var(--text);
  transition:border-color .18s var(--ease), transform .18s var(--ease);
}
/* a fonte de luz so faz sentido no escuro; num card claro viraria mancha azul */
[data-theme="dark"] .trial-card::after{
  content:""; position:absolute; width:130%; height:80%; left:-35%; top:-26%;
  border-radius:50%; background:var(--navy-soft); opacity:.28; filter:blur(60px);
  z-index:0; pointer-events:none;
}
.trial-card > *{position:relative; z-index:1}
.trial-card:hover{border-color:var(--text3); transform:translateY(-1px)}

.tc-actions{position:absolute; top:12px; right:12px; display:flex; gap:2px; z-index:2}
.tc-iconbtn{width:30px;height:30px;border-radius:var(--r-sm);border:none;background:none;
  display:grid;place-items:center;cursor:pointer;color:var(--text3);transition:.15s var(--ease)}
.tc-iconbtn svg{width:16px;height:16px}
.tc-iconbtn:hover{background:var(--bg4);color:var(--text)}
.tc-iconbtn.is-on{color:var(--gold)}
.tc-iconbtn.is-on svg{fill:currentColor}

.tc-top{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-right:70px}
.tc-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none}
.tc-eyebrow{font-family:'JetBrains Mono',monospace;font-size:10.5px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin:0}

.trial-card .trial-name{font-family:'Fraunces',Georgia,serif;font-weight:400;
  font-variation-settings:'opsz' 72; font-size:26px;line-height:1.15;letter-spacing:-.015em;
  color:var(--text);margin:0 0 4px;padding-right:70px}
.trial-card .trial-year{font-family:'JetBrains Mono',monospace;font-size:10.5px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--text3);margin:0 0 16px}

/* o fundo do container e a cor da hairline; os 2px de gap sao a linha */
.tc-picot{display:grid;gap:2px;border:1px solid var(--border2);border-radius:var(--r-md);
  overflow:hidden;background:var(--border2)}
.tc-row{display:grid;grid-template-columns:26px 1fr;gap:10px;padding:11px 13px;align-items:start;
  background:var(--bg4);transition:box-shadow .18s var(--ease)}
/* overlay cinza neutro: clareia no tema escuro, escurece no claro */
.tc-row:hover{box-shadow:inset 0 0 0 999px rgba(128,128,128,.07)}
.tc-k{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:600;
  color:var(--gold);padding-top:1px}
.tc-v{font-size:12.5px;line-height:1.45;color:var(--text)}

.trial-card .trial-result{margin-top:12px;padding:12px 13px;border-radius:var(--r-sm);
  background:var(--gold-dim);border:1px solid var(--badge-bd);font-size:12.5px;color:var(--text)}
.trial-card .trial-result .tc-eyebrow{color:var(--gold);margin-bottom:5px}
.tc-resulttext{margin:0;line-height:1.5;color:var(--text)}
.trial-card .tc-pratica{margin-top:8px;background:var(--red-dim);border-color:var(--border2)}
.trial-card .tc-pratica .tc-eyebrow{color:var(--red)}

.tc-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.tc-tags span{height:22px;padding:0 9px;border-radius:999px;background:var(--bg4);
  border:1px solid var(--border2);color:var(--text2);font-size:10.5px;font-weight:600;
  display:inline-flex;align-items:center}

.tc-expand{margin-top:14px;display:flex;align-items:center;gap:6px;
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.05em;color:var(--text3)}

/* o card agora e superficie do tema, entao o painel expansivel nao precisa
   de fundo proprio — uma hairline separa e os inputs herdam o tema */
.trial-card .trial-inline.open{
  border-top:1px solid var(--border); margin-top:14px; padding-top:14px;
}

/* ===================================================================
   Passe de consistencia: leva o resto do app para o design system.
   Regra unica em toda parte — serifada peso 400 em titulo e nome,
   Manrope na interface, hairline no lugar de sombra, pilula unica.
   =================================================================== */

/* ---- 1. Titulos que ainda estavam em sans bold ---- */
.guideline-title,.article-title,.forum-post-title,.mdl-head,.notif-head,
.mod-modal-title,.sc-name{
  font-family:'Fraunces',Georgia,serif; font-weight:400;
  font-variation-settings:'opsz' 72; letter-spacing:-.015em; color:var(--text);
}
.guideline-title{font-size:21px;line-height:1.18;padding-left:0;margin:0 0 4px}
.sc-name{font-size:20px;line-height:1.2}
.article-title{font-size:22px;line-height:1.2}
.forum-post-title{font-size:20px;line-height:1.2}
.mdl-head,.notif-head,.mod-modal-title{font-size:19px;line-height:1.2}

/* ---- 2. Card de diretriz: mesma anatomia do card de trial ---- */
.guideline-card{
  background:var(--bg2); border:1px solid var(--border2); border-radius:var(--r-lg);
  padding:22px; box-shadow:var(--card-shadow);
  transition:border-color .18s var(--ease), transform .18s var(--ease);
}
.guideline-card:hover{border-color:var(--text3); transform:translateY(-1px)}
/* a sigla da entidade vira o eyebrow, com o ponto de acento — a cor do
   orgao continua vindo inline (SBC/ACC/ESC), o que ajuda a varredura */
.guideline-source{
  display:flex; align-items:center; gap:8px; padding-left:0; margin:0 0 12px;
  font-family:'JetBrains Mono',monospace; font-size:10.5px; font-weight:600;
  letter-spacing:.09em; text-transform:uppercase;
}
.guideline-source::before{content:"";width:7px;height:7px;border-radius:50%;
  background:currentColor;flex:none}
.guideline-year{
  font-family:'JetBrains Mono',monospace; font-size:10.5px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--text3); padding-left:0; margin:0 0 16px;
}
.gl-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.guideline-link{
  display:inline-flex; align-items:center; gap:6px; height:34px; padding:0 14px;
  border-radius:var(--r-sm); border:1px solid var(--border2);
  background:transparent; color:var(--text); font-family:'Manrope',sans-serif;
  font-size:13px; font-weight:500;
}
.guideline-card:hover .guideline-link{border-color:var(--text3)}

/* ---- 3. Score e fluxograma: linha em hairline, nome serifado ---- */
.sc-card{
  background:var(--bg2); border:1px solid var(--border2); border-radius:var(--r-md);
  overflow:hidden; box-shadow:var(--card-shadow);
  transition:border-color .18s var(--ease);
}
.sc-card:hover{border-color:var(--text3)}
.sc-head{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:16px 20px; cursor:pointer; user-select:none;
  transition:box-shadow .18s var(--ease);
}
/* overlay cinza neutro: clareia no escuro, escurece no claro */
.sc-head:hover{box-shadow:inset 0 0 0 999px rgba(128,128,128,.05)}
.sc-headmain{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.sc-headside{display:flex;align-items:center;gap:12px;flex-shrink:0}
.sc-nameline{display:flex;align-items:center;gap:10px;margin-bottom:3px;flex-wrap:wrap}
.sc-desc{font-size:13px;line-height:1.5;color:var(--text2)}
.sc-ref{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.04em;
  color:var(--text3);text-align:right}

/* ---- 4. Pilula unica: mesma geometria em score, fluxograma e trial ---- */
.sc-tag,.tc-tags span,.trial-tag{
  display:inline-flex; align-items:center; height:22px; padding:0 9px;
  border-radius:999px; background:var(--bg4); border:1px solid var(--border2);
  color:var(--text2); font-family:'Manrope',sans-serif; font-size:10.5px;
  font-weight:600; letter-spacing:0; margin-top:0;
}

/* ---- 5. Sombras de modal pelo token do sistema ---- */
.mod-modal-card,.modal{box-shadow:var(--card-shadow-hover)}
.gsearch-results,.notif-panel{box-shadow:var(--card-shadow-hover)}

/* ===================================================================
   Navegação lateral: faixa de marca em vidro, nos DOIS temas.
   É o elemento de assinatura da referência. Como a superfície é navy
   fixa, as cores internas aqui são fixas também (--od-*), senão o tema
   claro colocaria texto escuro sobre navy.
   =================================================================== */
.side-nav{
  background:var(--navy); border-right:1px solid var(--od-border);
  position:sticky; isolation:isolate; overflow:hidden auto;
  scrollbar-color:rgba(255,255,255,.22) transparent;
}
/* fonte de luz difusa: é o que faz a faixa parecer vidro e não painel chapado */
.side-nav::before{
  content:""; position:absolute; width:360px; height:320px; left:-42%; top:10%;
  border-radius:50%; background:var(--navy-soft); opacity:.5; filter:blur(80px);
  z-index:0; pointer-events:none;
}
.side-nav > *{position:relative; z-index:1}

.side-nav .side-btn{
  color:var(--od-2); border:1px solid transparent; border-radius:var(--r-sm);
  transition:background .18s var(--ease), color .18s var(--ease), border-color .18s var(--ease);
}
.side-nav .side-btn:hover{background:var(--od-surface); color:#fff}
.side-nav .side-btn.active{
  background:var(--od-surface-hover); color:#fff; border-color:var(--od-border);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.side-nav .side-label{color:inherit}
/* o divisor usava --border (quase branco no tema claro) e virava uma
   barra branca sobre o navy */
.side-nav .sidebar-collapse-btn{color:var(--od-3); border-bottom-color:var(--od-border)}
.side-nav .sidebar-collapse-btn:hover{color:#fff}
.side-nav .sidebar-section-label{color:var(--od-3)}
/* o acento raro: contagem em ouro sobre o navy */
.side-nav .side-badge{background:var(--gold-bright); color:var(--navy); border:none}
.side-nav :focus-visible{outline:2px solid var(--gold-bright); outline-offset:2px}

/* ---- 7. Acessibilidade: foco de teclado que regras antigas apagavam ----
   Várias regras de componente (range, checkboxes, cards com role=button) têm
   "outline:none" com especificidade maior que o :focus-visible global da seção 6. */
input[type="range"]:focus-visible,
input[type="checkbox"]:focus-visible,
input[type="radio"]:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible{outline:2px solid var(--red2) !important;outline-offset:2px}

/* ---- 8. Acessibilidade: respeita "reduzir movimento" do sistema ----
   Duração quase zero (em vez de "none") para animações com fill "both"
   terminarem no estado final — os cards entram com opacity 0 → 1. */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
}
