/* Rota Trânsito 1.12.22 — revisão visual aprovada para conferência */
:root,
html[data-theme="light"] {
  --bg: #f2f7f8;
  --panel: #ffffff;
  --panel2: #f5f9fa;
  --line: #d7e3e6;
  --text: #142f38;
  --muted: #526a72;
  --accent: #087785;
  --accent-strong: #075f69;
  --ok: #167455;
  --warn: #9b5d05;
  --danger: #b73737;
  --info: #17658d;
  --surface-raised: #ffffff;
  --surface-soft: #edf4f5;
  --topbar-bg: rgba(250, 253, 253, .94);
  --nav-bg: rgba(255, 255, 255, .97);
  --shadow: 0 8px 24px rgba(24, 53, 61, .07);
  --rt-gold: #9c5e06;
  color-scheme: light;
}

html[data-theme="dark"] {
  --bg: #071215;
  --panel: #101c20;
  --panel2: #142327;
  --line: #26383c;
  --text: #edf5f5;
  --muted: #a5b8ba;
  --accent: #55d2cc;
  --accent-strong: #2dc1ba;
  --ok: #57c995;
  --warn: #f0c35c;
  --danger: #ff807b;
  --info: #83c7ee;
  --surface-raised: #142327;
  --surface-soft: #0d191d;
  --topbar-bg: rgba(7, 18, 21, .94);
  --nav-bg: rgba(9, 20, 23, .97);
  --shadow: 0 10px 28px rgba(0, 0, 0, .18);
  --rt-gold: #f0c35c;
  color-scheme: dark;
}

html[data-theme] body {
  background: var(--bg) !important;
  color: var(--text) !important;
}

#app .app-shell {
  max-width: 1080px !important;
  padding-bottom: 92px !important;
}

#app .topbar {
  min-height: 68px !important;
  padding: 10px 24px !important;
  background: var(--topbar-bg) !important;
  border-bottom: 1px solid var(--line) !important;
  box-shadow: 0 3px 14px rgba(8, 28, 33, .035);
}

#app .logo-menu-btn {
  width: 46px !important;
  height: 46px !important;
  flex: 0 0 46px !important;
  border-radius: 14px !important;
  background: #f0c34f !important;
  color: #172f35 !important;
  box-shadow: none !important;
}

#app .brand { min-width: 0; gap: 11px; }
#app .brand-title { color: var(--text) !important; font-size: 17px !important; font-weight: 700 !important; }
#app .brand-copy { color: var(--text) !important; }
#app .top-actions { gap: 8px !important; }
#app .status-pill.online { display: none !important; }
#app .status-pill.offline { display: inline-flex !important; }
#app .theme-toggle,
#app .profile-pill,
#app .update-notification {
  width: 40px !important;
  height: 40px !important;
  border-radius: 13px !important;
  border: 1px solid var(--line) !important;
  background: var(--panel) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}
#app .profile-pill span { display: none !important; }
#app .profile-pill b { width: 26px; height: 26px; border-radius: 50%; background: var(--surface-soft) !important; color: var(--accent) !important; }

#app main {
  max-width: 960px;
  margin: 0 auto;
  padding: 22px 28px 34px !important;
}

#app .hero,
#app .minimal-home-head { padding: 16px 0 14px !important; }
#app .hero .eyebrow,
#app .minimal-home-head .eyebrow { color: var(--accent) !important; font-size: 11px !important; font-weight: 750 !important; letter-spacing: .09em !important; }
#app .hero h1,
#app .admin-head h1,
#app .live-home-head h1 { color: var(--text) !important; font-size: clamp(25px, 3.2vw, 34px) !important; line-height: 1.16 !important; font-weight: 700 !important; letter-spacing: -.025em !important; }
#app .hero p,
#app .minimal-home-sub { color: var(--muted) !important; font-size: 15px !important; line-height: 1.48 !important; }

#app .minimal-search-panel { margin: 4px 0 16px !important; }
#app .live-search-wrap,
#app .search-wrap {
  border: 1px solid color-mix(in srgb, var(--accent) 34%, var(--line)) !important;
  border-radius: 17px !important;
  background: var(--panel) !important;
  box-shadow: var(--shadow) !important;
}
#app .live-search-wrap { min-height: 62px !important; padding: 5px 7px 5px 13px !important; }
#app .live-search-icon,
#app .search-icon { color: var(--muted) !important; }
#app .live-search,
#app .search {
  min-height: 48px !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--text) !important;
  font-size: 16px !important;
  box-shadow: none !important;
}
#app .live-search::placeholder,
#app .search::placeholder { color: var(--muted) !important; opacity: .9; }
#app .live-voice-btn,
#app .live-search-submit,
#app .search-submit-btn {
  width: 42px !important;
  height: 42px !important;
  border-radius: 12px !important;
  display: grid;
  place-items: center;
}
#app .live-search-submit,
#app .search-submit-btn { background: var(--accent) !important; color: #072326 !important; }
html[data-theme="light"] #app .live-search-submit,
html[data-theme="light"] #app .search-submit-btn { color: #ffffff !important; }
#app input:focus-visible,
#app textarea:focus-visible,
#app select:focus-visible,
#app button:focus-visible,
#app a:focus-visible { outline: 3px solid color-mix(in srgb, var(--accent) 70%, transparent); outline-offset: 2px; }

#app .home-licensing-card,
#app .live-service-card,
#app .editor-shortcut {
  border: 1px solid var(--line) !important;
  border-radius: 17px !important;
  background: var(--panel) !important;
  color: var(--text) !important;
  box-shadow: var(--shadow);
}
#app .home-licensing-card { padding: 13px !important; gap: 12px !important; margin: 0 0 12px !important; }
#app .home-licensing-icon,
#app .live-service-icon { background: var(--surface-soft) !important; color: var(--accent) !important; }
#app .home-licensing-copy b,
#app .live-service-card b { color: var(--text) !important; font-size: 15px !important; font-weight: 650 !important; }
#app .home-licensing-copy small,
#app .live-service-card small { color: var(--muted) !important; font-size: 12px !important; line-height: 1.4 !important; }
#app .home-licensing-month { color: var(--rt-gold) !important; font-size: 12px !important; font-weight: 700 !important; }
#app .live-service-card { margin: 0 0 12px !important; padding: 13px !important; }
#app .live-service-stat small { color: var(--muted) !important; }
#app .live-service-stat strong { color: var(--text) !important; font-size: 16px !important; }
#app .editor-shortcut { padding: 13px !important; }

#app .section-head { align-items: center !important; margin: 19px 0 10px !important; }
#app .section-head h2 { color: var(--text) !important; font-size: 18px !important; font-weight: 700 !important; }
#app .section-head small { color: var(--muted) !important; }
#app .list { gap: 10px !important; }
#app .card,
#app .section-card,
#app .quick-decision-panel,
#app .quick-observation-card,
#app .quick-measure {
  border: 1px solid var(--line) !important;
  border-radius: 17px !important;
  background: var(--panel) !important;
  color: var(--text) !important;
  box-shadow: var(--shadow) !important;
}
#app .card { padding: 15px !important; }
#app .card-top { align-items: center !important; }
#app .code,
#app .quick-code-pill { color: var(--accent) !important; font-size: 13px !important; font-weight: 700 !important; }
#app .card h3 { color: var(--text) !important; font-size: 16px !important; font-weight: 600 !important; line-height: 1.38 !important; margin: 8px 0 !important; }
#app .card .meta { gap: 7px !important; color: var(--muted) !important; font-size: 12px !important; }
#app .card .meta span { border: 0 !important; padding: 0 !important; }
#app .card .meta span:nth-child(n+3) { display: none !important; }
#app .card .search-match-reason { display: none !important; }
#app .card-actions { margin-top: 12px !important; padding-top: 11px !important; border-color: var(--line) !important; }
#app .card-action,
#app .card-action.primary {
  min-height: 44px !important;
  border: 1px solid var(--accent) !important;
  border-radius: 12px !important;
  background: var(--accent) !important;
  color: #08272a !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}
html[data-theme="light"] #app .card-action.primary { color: #ffffff !important; }
#app .card-action:hover,
#app .btn-primary:hover,
#app .live-search-submit:hover { filter: brightness(1.05); }

#app .colloquial-search-help {
  display: grid;
  gap: 8px;
  margin: 10px 0 14px !important;
  padding: 11px 12px !important;
  border: 1px solid var(--line) !important;
  border-radius: 15px !important;
  background: var(--panel) !important;
}
#app .colloquial-search-help strong { color: var(--text) !important; font-size: 13px !important; }
#app .colloquial-chips { gap: 7px !important; padding: 0 !important; }
#app .colloquial-chips .chip,
#app .chip { min-height: 38px; border: 1px solid var(--line) !important; border-radius: 999px !important; background: var(--surface-soft) !important; color: var(--text) !important; font-size: 12px !important; }
#app .search-context { padding: 8px 10px !important; border-radius: 12px !important; background: var(--surface-soft) !important; border-color: var(--line) !important; color: var(--muted) !important; font-size: 12px !important; }
#app .search-context strong { color: var(--text) !important; }
#app #searchResultHead[hidden] { display: none !important; }
#app #results:empty { display: none !important; }
#app .filter-panel { padding: 11px 13px !important; border-radius: 15px !important; background: var(--panel) !important; }
#app .filter-toggle { min-height: 42px !important; color: var(--text) !important; font-size: 14px !important; }

#app .quick-ficha { max-width: 820px; margin: 4px auto 0; }
#app .quick-detail-head { gap: 12px !important; align-items: flex-start !important; margin: 0 0 14px !important; }
#app .detail-title h1 { color: var(--text) !important; font-size: clamp(22px, 4vw, 29px) !important; line-height: 1.23 !important; font-weight: 700 !important; }
#app .quick-title-meta { gap: 7px !important; }
#app .quick-code-pill,
#app .quick-article-reference { min-height: 32px; display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; background: var(--surface-soft); padding: 5px 11px; }
#app .quick-measure { padding: 13px 14px !important; margin: 10px 0 !important; }
#app .quick-measure small,
#app .quick-decision-panel .quick-section-title,
#app .quick-observation-card .quick-section-title { color: var(--accent) !important; }
#app .quick-measure strong { color: var(--text) !important; font-size: 15px !important; line-height: 1.45 !important; }
#app .quick-decision-panel,
#app .quick-observation-card { padding: 14px !important; margin: 12px 0 !important; }
#app .quick-decision-panel .quick-section-title,
#app .quick-observation-card .quick-section-title { font-size: 13px !important; font-weight: 750 !important; }
#app .quick-tab-list { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px !important; }
#app .quick-tab-list button { min-height: 44px !important; padding: 8px !important; border: 1px solid var(--line) !important; border-radius: 12px !important; background: var(--surface-soft) !important; color: var(--text) !important; }
#app .quick-tab-list button.active,
#app .quick-tab-list button[aria-selected="true"] { border-color: var(--accent) !important; background: var(--accent) !important; color: #08272a !important; }
html[data-theme="light"] #app .quick-tab-list button.active,
html[data-theme="light"] #app .quick-tab-list button[aria-selected="true"] { color: #ffffff !important; }
#app .quick-decision-content { border: 1px solid var(--line) !important; border-radius: 13px !important; background: var(--surface-soft) !important; padding: 14px !important; }
#app .quick-full-sheet { margin: 10px 0 !important; }
#app .quick-full-sheet > summary { padding: 14px !important; border: 1px solid var(--line) !important; border-radius: 15px !important; background: var(--panel) !important; color: var(--text) !important; }
#app .quick-full-sheet[open] > summary { border-radius: 15px 15px 0 0 !important; }
#app .quick-full-block { border-color: var(--line) !important; background: var(--panel) !important; }
#app .quick-legal-note { color: var(--muted) !important; font-size: 12px !important; }
#app .source-btn,
#app .inline-source { min-height: 40px; border-radius: 11px !important; background: var(--surface-soft) !important; color: var(--accent-strong) !important; }

#app .assistant-intro,
#app .assist-intro,
#app .assistant-result,
#app .occurrence-answer,
#app .validity-panel,
#app .section-card,
#app .notice { border-radius: 16px !important; }
#app .assistant-textarea,
#app .assistant-input,
#app .field-form input,
#app .field-form select,
#app .field-form textarea,
#app .tool-form input,
#app .tool-form select { border-radius: 12px !important; background: var(--panel) !important; color: var(--text) !important; border-color: var(--line) !important; }
#app .btn-primary { min-height: 44px; border-radius: 12px !important; font-weight: 700 !important; }
#app .btn-secondary,
#app .btn-danger { min-height: 42px; border-radius: 12px !important; }
#app .notice { background: var(--surface-soft) !important; color: var(--text) !important; border-color: var(--line) !important; }
#app .notice.warn { border-color: color-mix(in srgb, var(--warn) 42%, var(--line)) !important; }

#app .bottom-nav {
  width: min(1080px, 100%) !important;
  min-height: 72px !important;
  padding: 6px 10px calc(6px + env(safe-area-inset-bottom)) !important;
  border-top: 1px solid var(--line) !important;
  background: var(--nav-bg) !important;
  box-shadow: 0 -5px 18px rgba(8, 28, 33, .04) !important;
}
#app .nav-btn { min-height: 54px !important; border-radius: 13px !important; color: var(--muted) !important; font-size: 11px !important; }
#app .nav-btn b { color: inherit !important; font-size: 20px !important; }
#app .nav-btn.active { background: color-mix(in srgb, var(--rt-gold) 14%, var(--nav-bg)) !important; color: var(--rt-gold) !important; }
#app .nav-btn.nav-primary { margin-top: 0 !important; }
#app .nav-btn.nav-primary b { width: auto !important; height: auto !important; }
#app .quick-report-button { border-radius: 999px !important; background: var(--panel) !important; border: 1px solid var(--line) !important; color: var(--muted) !important; box-shadow: var(--shadow) !important; }

@media (max-width: 600px) {
  #app .topbar { min-height: 60px !important; padding: 8px 12px !important; }
  #app .logo-menu-btn { width: 42px !important; height: 42px !important; flex-basis: 42px !important; }
  #app .brand-title { font-size: 15px !important; }
  #app .top-actions { gap: 5px !important; }
  #app .theme-toggle,
  #app .profile-pill,
  #app .update-notification { width: 36px !important; height: 36px !important; border-radius: 11px !important; }
  #app main { padding: 15px 14px 25px !important; padding-bottom: calc(98px + env(safe-area-inset-bottom)) !important; }
  #app .hero,
  #app .minimal-home-head { padding: 9px 1px 12px !important; }
  #app .hero h1,
  #app .admin-head h1,
  #app .live-home-head h1 { font-size: 26px !important; }
  #app .hero p,
  #app .minimal-home-sub { font-size: 14px !important; }
  #app .minimal-search-panel { margin-bottom: 14px !important; }
  #app .live-search-wrap { min-height: 58px !important; border-radius: 15px !important; }
  #app .home-licensing-card,
  #app .live-service-card { padding: 11px !important; border-radius: 15px !important; }
  #app .home-licensing-copy b,
  #app .live-service-card b { font-size: 14px !important; }
  #app .home-licensing-copy small,
  #app .live-service-card small { font-size: 11.5px !important; }
  #app .card { padding: 13px !important; border-radius: 15px !important; }
  #app .card h3 { font-size: 15px !important; }
  #app .quick-decision-panel,
  #app .quick-observation-card { padding: 12px !important; }
  #app .quick-tab-list { gap: 5px !important; }
  #app .quick-tab-list button { padding: 8px 5px !important; font-size: 12px !important; }
  #app .bottom-nav { min-height: calc(68px + env(safe-area-inset-bottom)) !important; padding: 5px 4px calc(5px + env(safe-area-inset-bottom)) !important; }
  #app .nav-btn { min-height: 50px !important; padding: 3px 1px !important; gap: 2px !important; }
  #app .nav-btn span { min-height: 18px !important; font-size: 9px !important; line-height: 1.08 !important; }
  #app .nav-btn.nav-primary { min-height: 50px !important; }
  #app .quick-report-button { bottom: calc(77px + env(safe-area-inset-bottom)) !important; }
}

@media (prefers-reduced-motion: reduce) {
  #app *, #app *::before, #app *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* v1.12.27 — Biblioteca Jurídica: legibilidade, navegação e uso em campo */
#app .legal-app-head{
  align-items:center!important;
  gap:14px!important;
  margin:2px 0 16px!important;
}
#app .legal-app-head h1{
  font-size:28px!important;
  line-height:1.12!important;
  letter-spacing:-.025em!important;
  margin:4px 0 7px!important;
}
#app .legal-app-head p{
  font-size:14px!important;
  line-height:1.45!important;
  max-width:620px!important;
  color:var(--muted)!important;
}
#app .legal-head-fav{
  width:auto!important;
  min-width:105px!important;
  height:44px!important;
  padding:0 12px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  font-size:17px!important;
  font-weight:750!important;
  border-radius:13px!important;
  flex:0 0 auto!important;
}
#app .legal-head-fav span{font-size:13px!important;line-height:1!important;}

#app .legal-master-search{
  min-height:56px!important;
  grid-template-columns:36px minmax(0,1fr) 42px!important;
  padding:4px 7px 4px 12px!important;
  border-radius:16px!important;
  box-shadow:0 9px 28px rgba(0,0,0,.10)!important;
}
#app .legal-master-search>span{font-size:23px!important;}
#app .legal-master-search .legal-search{
  min-height:48px!important;
  font-size:16px!important;
  line-height:1.35!important;
  padding:10px 4px!important;
}
#app .legal-master-search button{
  width:40px!important;
  height:40px!important;
  font-size:23px!important;
  border-radius:11px!important;
}
#app .legal-master-search button:hover,#app .legal-master-search button:focus-visible{background:var(--panel2)!important;}

#app .legal-toolbar{
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:10px!important;
  margin:9px 2px 10px!important;
}
#app .legal-search-help{font-size:12.5px!important;line-height:1.35!important;color:var(--muted)!important;}
#app .legal-font-controls{
  display:flex!important;
  align-items:center!important;
  gap:4px!important;
  flex:0 0 auto!important;
}
#app .legal-font-controls>span{font-size:11px!important;color:var(--muted)!important;margin-right:3px!important;}
#app .legal-font-controls button{
  min-width:36px!important;
  height:36px!important;
  border:1px solid var(--line)!important;
  background:var(--panel)!important;
  color:var(--text)!important;
  border-radius:10px!important;
  font-size:12px!important;
  font-weight:800!important;
}
#app .legal-font-controls button.active{
  border-color:color-mix(in srgb,var(--accent) 60%,var(--line))!important;
  background:color-mix(in srgb,var(--accent) 12%,var(--panel))!important;
  color:var(--accent)!important;
}

#app .legal-tabs{
  display:flex!important;
  gap:6px!important;
  overflow-x:auto!important;
  scrollbar-width:none!important;
  padding:5px!important;
  margin:0 0 14px!important;
  border-radius:14px!important;
  position:sticky!important;
  top:72px!important;
  z-index:5!important;
  backdrop-filter:blur(14px)!important;
}
#app .legal-tabs::-webkit-scrollbar{display:none!important;}
#app .legal-tabs button{
  flex:0 0 auto!important;
  min-width:92px!important;
  min-height:42px!important;
  padding:9px 13px!important;
  border-radius:10px!important;
  font-size:13px!important;
  line-height:1.2!important;
  font-weight:750!important;
  white-space:nowrap!important;
}

#app .legal-workspace{
  --legal-body-size:16px;
  --legal-small-size:13px;
  --legal-title-size:18px;
  padding-bottom:18px!important;
}
#app .legal-workspace[data-font="normal"]{--legal-body-size:15px;--legal-small-size:12.5px;--legal-title-size:17px;}
#app .legal-workspace[data-font="large"]{--legal-body-size:17px;--legal-small-size:13.5px;--legal-title-size:19px;}
#app .legal-workspace[data-font="xlarge"]{--legal-body-size:19px;--legal-small-size:15px;--legal-title-size:21px;}

#app .legal-reader-head{
  padding:5px 3px 14px!important;
  gap:14px!important;
}
#app .legal-doc-kind{
  font-size:12px!important;
  line-height:1.3!important;
  letter-spacing:.02em!important;
  margin-bottom:6px!important;
}
#app .legal-reader-head h2{
  font-size:clamp(20px,5vw,25px)!important;
  line-height:1.25!important;
  margin:0!important;
  letter-spacing:-.015em!important;
}
#app .legal-reader-intro{
  margin:8px 0 0!important;
  color:var(--muted)!important;
  font-size:14px!important;
  line-height:1.48!important;
}
#app .legal-bookmark{
  width:44px!important;
  height:44px!important;
  font-size:23px!important;
  border-radius:13px!important;
}
#app .legal-status-line{
  min-height:42px!important;
  gap:8px!important;
  padding:10px 3px!important;
  font-size:12.5px!important;
  line-height:1.35!important;
}
#app .legal-status-line small{
  margin-left:auto!important;
  font-size:12px!important;
  line-height:1.35!important;
}

#app .legal-reader-body{
  max-height:none!important;
  overflow:visible!important;
  border-radius:17px!important;
  padding:15px!important;
}
#app .legal-text-section{
  padding:2px 0 16px!important;
  margin-bottom:14px!important;
}
#app .legal-text-section h3,#app .legal-article-block h3,#app .mbft-legal-row h3{
  font-size:var(--legal-title-size)!important;
  line-height:1.35!important;
  margin:0 0 8px!important;
}
#app .legal-text-section p{
  font-size:var(--legal-body-size)!important;
  line-height:1.62!important;
  color:var(--text)!important;
}
#app .legal-source-inline{
  margin:12px 3px 0!important;
  font-size:12.5px!important;
  line-height:1.5!important;
}
#app .legal-source-inline a{font-size:inherit!important;}

#app .legal-article-block{
  padding:0 0 15px!important;
  margin:0 0 15px!important;
}
#app .legal-article-title{
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:10px!important;
  margin-bottom:4px!important;
}
#app .legal-article-title h3{margin:0!important;}
#app .legal-article-title>small{
  font-size:12px!important;
  color:var(--muted)!important;
  flex:0 0 auto!important;
}
#app .legal-article-item{
  position:relative!important;
  grid-template-columns:76px minmax(0,1fr) 18px!important;
  gap:4px 10px!important;
  min-height:64px!important;
  align-items:center!important;
  padding:10px 28px 10px 0!important;
  border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)!important;
}
#app .legal-article-item:first-of-type{border-top:0!important;}
#app .legal-article-item b{
  grid-row:1/3!important;
  font-size:14px!important;
  line-height:1.25!important;
}
#app .legal-article-item span{
  font-size:var(--legal-body-size)!important;
  line-height:1.42!important;
}
#app .legal-article-item small{
  font-size:var(--legal-small-size)!important;
  line-height:1.3!important;
  color:var(--muted)!important;
}
#app .legal-article-item i{
  position:absolute!important;
  right:4px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  font-size:24px!important;
  font-style:normal!important;
  color:var(--muted)!important;
}

#app .mbft-legal-row{
  padding:0 0 18px!important;
  margin:0 0 18px!important;
}
#app .mbft-legal-meta{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  margin-bottom:8px!important;
}
#app .mbft-legal-meta .code{font-size:15px!important;}
#app .mbft-legal-meta small,#app .mbft-legal-meta>span:last-child{
  font-size:12.5px!important;
  color:var(--muted)!important;
}
#app .mbft-legal-row p{
  font-size:var(--legal-body-size)!important;
  line-height:1.55!important;
  color:var(--muted)!important;
  margin:0 0 12px!important;
}
#app .mbft-legal-actions{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
}
#app .mbft-legal-actions button{
  min-height:44px!important;
  padding:9px 10px!important;
  border-radius:11px!important;
  font-size:13px!important;
  line-height:1.25!important;
  font-weight:800!important;
}

#app .legal-load-more{
  width:100%!important;
  min-height:48px!important;
  margin-top:5px!important;
  border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line))!important;
  background:color-mix(in srgb,var(--accent) 8%,var(--panel2))!important;
  color:var(--accent)!important;
  border-radius:12px!important;
  font-size:14px!important;
  font-weight:800!important;
}

#app .legal-list-heading{
  margin:4px 2px 12px!important;
}
#app .legal-list-heading strong{font-size:18px!important;line-height:1.25!important;}
#app .legal-list-heading small{font-size:12.5px!important;line-height:1.35!important;margin-top:4px!important;}
#app .legal-doc-grid{gap:10px!important;}
#app .legal-doc-card{
  min-height:142px!important;
  border-radius:16px!important;
  padding:15px!important;
  box-shadow:0 8px 22px rgba(0,0,0,.07)!important;
}
#app .legal-doc-badge{
  padding:5px 9px!important;
  font-size:11px!important;
  line-height:1.2!important;
}
#app .legal-doc-card-top{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  margin:9px 0 4px!important;
}
#app .legal-doc-card h2,#app .legal-doc-card-top h2{
  font-size:21px!important;
  line-height:1.2!important;
  margin:0!important;
}
#app .legal-doc-card-top>span{font-size:25px!important;color:var(--muted)!important;}
#app .legal-doc-card>strong{
  font-size:15px!important;
  line-height:1.4!important;
}
#app .legal-doc-card p{
  font-size:13.5px!important;
  line-height:1.5!important;
  margin:8px 0!important;
}
#app .legal-doc-card>small{
  font-size:12px!important;
  line-height:1.35!important;
}
#app .legal-favorite-card{border-color:color-mix(in srgb,var(--accent) 22%,var(--line))!important;}
#app .legal-empty-favs{
  display:grid!important;
  gap:6px!important;
  text-align:center!important;
  padding:32px 18px!important;
  border:1px dashed var(--line)!important;
  border-radius:16px!important;
}
#app .legal-empty-favs strong{font-size:16px!important;}
#app .legal-empty-favs span{font-size:13px!important;color:var(--muted)!important;line-height:1.45!important;}
#app .legal-back-list{
  min-height:42px!important;
  padding:0 4px 10px!important;
  font-size:13px!important;
}

#app .legal-reader-actions{
  bottom:calc(70px + env(safe-area-inset-bottom))!important;
  margin-top:12px!important;
  border-radius:14px!important;
}
#app .legal-reader-actions>*{
  min-height:58px!important;
  gap:7px!important;
  font-size:18px!important;
  padding:6px!important;
}
#app .legal-reader-actions span{
  font-size:11.5px!important;
  line-height:1.2!important;
  font-weight:750!important;
}

@media(min-width:760px){
  #app .legal-doc-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  #app .legal-reader-body{padding:20px!important;}
  #app .legal-app-head h1{font-size:32px!important;}
}

@media(max-width:560px){
  #app .legal-app-head{align-items:flex-start!important;}
  #app .legal-app-head h1{font-size:25px!important;}
  #app .legal-app-head p{font-size:13px!important;}
  #app .legal-head-fav{min-width:44px!important;width:44px!important;height:44px!important;padding:0!important;}
  #app .legal-head-fav span{display:none!important;}
  #app .legal-toolbar{align-items:flex-start!important;}
  #app .legal-search-help{max-width:55%!important;font-size:11.5px!important;}
  #app .legal-font-controls>span{display:none!important;}
  #app .legal-tabs{margin-left:-2px!important;margin-right:-2px!important;}
  #app .legal-tabs button{min-width:82px!important;font-size:12.5px!important;padding:9px 11px!important;}
  #app .legal-reader-body{padding:13px!important;}
  #app .legal-reader-head h2{font-size:21px!important;}
  #app .legal-status-line small{width:100%!important;margin-left:15px!important;}
  #app .legal-article-item{grid-template-columns:70px minmax(0,1fr)!important;padding-right:26px!important;}
  #app .legal-reader-actions span{font-size:10.5px!important;}
}

/* v1.12.28 preview — CTB como leitor de lei */
#app .ctb-law-reader{
  display:block!important;
  margin-top:0!important;
  border:1px solid var(--line)!important;
  background:var(--panel)!important;
  border-radius:18px!important;
  overflow:hidden!important;
}
#app .ctb-structure-heading{
  display:grid!important;
  gap:4px!important;
  padding:20px 18px 12px!important;
  background:color-mix(in srgb,var(--accent) 5%,var(--panel2))!important;
  border-top:1px solid var(--line)!important;
}
#app .ctb-structure-heading:first-child{border-top:0!important;}
#app .ctb-structure-heading small{
  color:var(--accent)!important;
  font-size:11px!important;
  line-height:1.2!important;
  font-weight:850!important;
  letter-spacing:.09em!important;
  text-transform:uppercase!important;
}
#app .ctb-structure-heading strong{
  color:var(--text)!important;
  font-size:15px!important;
  line-height:1.35!important;
  letter-spacing:.01em!important;
}
#app .ctb-section-heading{
  display:grid!important;
  gap:2px!important;
  padding:13px 18px 9px!important;
  background:var(--panel)!important;
  border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)!important;
}
#app .ctb-section-heading small{
  font-size:10.5px!important;
  line-height:1.2!important;
  color:var(--muted)!important;
  text-transform:uppercase!important;
  letter-spacing:.06em!important;
}
#app .ctb-section-heading strong{
  font-size:13px!important;
  line-height:1.35!important;
  color:var(--muted)!important;
}
#app .ctb-law-article{
  padding:20px 18px 18px!important;
  border-top:1px solid color-mix(in srgb,var(--line) 76%,transparent)!important;
  background:var(--panel)!important;
}
#app .ctb-structure-heading + .ctb-law-article,
#app .ctb-section-heading + .ctb-law-article{border-top:0!important;}
#app .ctb-law-text{
  display:grid!important;
  gap:12px!important;
}
#app .ctb-law-text p{
  margin:0!important;
  color:var(--text)!important;
  font-size:var(--legal-body-size)!important;
  line-height:1.72!important;
  letter-spacing:.002em!important;
  text-wrap:pretty!important;
}
#app .ctb-law-text .ctb-law-lead{
  font-weight:690!important;
  line-height:1.64!important;
}
#app .ctb-related{
  margin-top:18px!important;
  padding-top:11px!important;
  border-top:1px dashed color-mix(in srgb,var(--line) 80%,transparent)!important;
}
#app .ctb-related summary{
  min-height:44px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto auto!important;
  align-items:center!important;
  gap:8px!important;
  cursor:pointer!important;
  list-style:none!important;
  color:var(--muted)!important;
  font-size:12.5px!important;
  line-height:1.3!important;
  font-weight:760!important;
}
#app .ctb-related summary::-webkit-details-marker{display:none!important;}
#app .ctb-related summary b{
  min-width:26px!important;
  height:26px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:999px!important;
  background:var(--panel2)!important;
  color:var(--text)!important;
  font-size:11px!important;
}
#app .ctb-related summary i{
  font-style:normal!important;
  font-size:17px!important;
  transition:transform .15s ease!important;
}
#app .ctb-related[open] summary i{transform:rotate(180deg)!important;}
#app .ctb-related-list{
  display:grid!important;
  gap:7px!important;
  padding:5px 0 2px!important;
}
#app .ctb-related-list button{
  width:100%!important;
  min-height:48px!important;
  display:grid!important;
  grid-template-columns:68px minmax(0,1fr) 16px!important;
  align-items:center!important;
  gap:8px!important;
  padding:8px 5px!important;
  border:0!important;
  border-top:1px solid color-mix(in srgb,var(--line) 58%,transparent)!important;
  background:transparent!important;
  color:var(--text)!important;
  text-align:left!important;
}
#app .ctb-related-list button b{
  color:var(--accent)!important;
  font-size:12.5px!important;
  line-height:1.25!important;
}
#app .ctb-related-list button span{
  color:var(--muted)!important;
  font-size:12.5px!important;
  line-height:1.38!important;
}
#app .ctb-related-list button i{
  color:var(--muted)!important;
  font-style:normal!important;
  font-size:20px!important;
}
#app .ctb-status-line{padding-left:4px!important;padding-right:4px!important;}
#app .ctb-source-note{
  margin-top:12px!important;
  padding:0 3px!important;
  color:var(--muted)!important;
}
#app .ctb-reader-loading{
  min-height:170px!important;
  display:grid!important;
  place-items:center!important;
  align-content:center!important;
  gap:12px!important;
  border:1px solid var(--line)!important;
  border-radius:18px!important;
  background:var(--panel)!important;
}
#app .ctb-reader-loading span{
  width:32px!important;
  height:32px!important;
  border:3px solid color-mix(in srgb,var(--accent) 18%,var(--line))!important;
  border-top-color:var(--accent)!important;
  border-radius:50%!important;
  animation:rtboot .8s linear infinite!important;
}
#app .ctb-reader-loading p{margin:0!important;color:var(--muted)!important;font-size:13px!important;}
#app .ctb-law-reader>.empty{
  margin:16px!important;
  display:grid!important;
  gap:6px!important;
  text-align:center!important;
  padding:28px 16px!important;
}
#app .ctb-law-reader>.empty strong{font-size:15px!important;}
#app .ctb-law-reader>.empty span{font-size:13px!important;color:var(--muted)!important;line-height:1.4!important;}
#app .ctb-law-reader>.legal-load-more{
  width:calc(100% - 28px)!important;
  margin:8px 14px 14px!important;
}
#app .ctb-reader-actions a{
  text-decoration:none!important;
  color:inherit!important;
}
@media(max-width:560px){
  #app .ctb-law-article{padding:18px 15px 16px!important;}
  #app .ctb-structure-heading{padding:17px 15px 11px!important;}
  #app .ctb-section-heading{padding:12px 15px 8px!important;}
  #app .ctb-law-text{gap:11px!important;}
  #app .ctb-law-text p{line-height:1.68!important;}
  #app .ctb-related summary{min-height:46px!important;}
  #app .ctb-related-list button{grid-template-columns:62px minmax(0,1fr) 14px!important;}
}
