*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif;color:#08264b;background:#f7fafd}button,input{font:inherit}.model-header{height:138px;background:url("/static/assets/cabecalho_modelo.jpg") center/cover no-repeat}.shell{display:grid;grid-template-columns:275px minmax(0,1fr);min-height:calc(100vh - 138px)}.sidebar{position:relative;background:#032843;min-height:calc(100vh - 138px)}.sidebar-bg{position:absolute;inset:0;background:url("/static/assets/menu_modelo.jpg") top center/275px auto no-repeat;pointer-events:none}.side-actions{position:absolute;inset:0}.hit{position:absolute;left:12px;width:250px;border:0;background:transparent;cursor:pointer}.hit:hover{background:#ffffff0b}.home{top:15px;height:49px}.search-hit{top:67px;height:48px}.theme-hit{top:116px;height:48px}.union{top:198px;height:36px}.concurrent{top:234px;height:36px}.states{top:270px;height:36px}.cities{top:306px;height:36px}.common{top:342px;height:36px}.df{top:378px;height:36px}.index-hit{top:435px;height:48px}.fav-hit{top:483px;height:48px}.hist-hit{top:531px;height:48px}.update-hit{top:580px;height:48px}.about-hit{top:628px;height:48px}.main{min-width:0;background:#f8fbfe}.search-panel{padding:14px 16px 6px}.tabs{height:58px;display:flex;align-items:flex-end;gap:2px;padding:5px 8px 0;border:1px solid #dce8f3;border-radius:10px 10px 0 0;background:#fff}.tab,.clear{height:51px;border:0;background:#fff;color:#0a3c72;padding:0 19px;cursor:pointer}.tab.active{background:#079a4c;color:#fff;border-radius:8px 8px 0 0}.clear{height:35px;margin-left:auto;align-self:center;border:1px solid #dce8f3;border-radius:8px}.search-row{display:grid;grid-template-columns:34px 1fr 160px;gap:8px;align-items:center;padding:10px 14px;border:1px solid #dce8f3;border-top:0;background:#fff;border-radius:0 0 10px 10px}.magnify{font-size:25px;color:#135b99}.search-row input{height:48px;border:1px solid #c8ddeb;border-radius:8px;padding:0 14px;font-size:15px;outline:none}.search-row input:focus{border-color:#64a9dd;box-shadow:0 0 0 3px #64a9dd1c}.search-row button{height:48px;border:0;border-radius:8px;background:#079a4c;color:#fff;font-weight:700;cursor:pointer}.examples{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:7px 8px 0;font-size:12px}.examples button{border:1px solid #d6e4ef;background:#edf5fb;color:#24547d;border-radius:18px;padding:6px 12px;cursor:pointer}.advanced-box{margin:8px 8px 0;padding:10px;border:1px solid #dce8f3;border-radius:8px;background:#fff;display:flex;gap:18px;font-size:12px}.hidden{display:none!important}.workspace{padding:5px 16px 12px}.dashboard{display:grid;grid-template-columns:minmax(650px,1.62fr) minmax(370px,.98fr);gap:12px}.main-card,.side-card{background:#fff;border:1px solid #dbe7f1;border-radius:10px;padding:14px;box-shadow:0 2px 8px #163c5a08}.competence h2,.related h2{font-size:19px;margin:0 0 12px}.answer{background:linear-gradient(90deg,#eaf9f1,#f3fff8);border:1px solid #c7e9d4;border-radius:9px;padding:17px;display:flex;gap:17px;align-items:center}.building{font-size:44px;color:#078e47}.answer h3{font-size:21px;color:#126b37;margin:0 0 7px}.answer h3 em{font-style:normal;color:#126b37}.answer h3 small{font-size:12px;background:#0c964c;color:#fff;padding:6px 10px;border-radius:15px}.answer p{margin:0;line-height:1.45}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:11px}.facts>div{background:#f7faff;border:1px solid #e1ebf4;border-radius:8px;padding:12px;display:flex;gap:12px;min-height:78px}.facts i{font-style:normal;font-size:28px;color:#0868c4}.facts span{font-size:12px}.facts b{display:block;margin-top:6px}.label{display:block;font-size:12px;margin:13px 0 7px}.excerpt{background:#effbf4;border:1px solid #caead7;border-radius:8px;padding:13px 17px;display:flex;gap:15px}.excerpt>i{font-size:38px;font-weight:bold;font-style:normal}.excerpt p{font-size:12px;line-height:1.45;margin:0}.excerpt .caput,.excerpt .par,.excerpt .inc,.excerpt .ali,.excerpt .line{margin:1px 0}.actions{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:8px;margin-top:11px}.actions button{height:38px;border:1px solid #d0e0ed;border-radius:7px;background:#f6faff;color:#154c7b;cursor:pointer}.actions button:first-child{background:#07994c;color:#fff;border-color:#07994c}.right{display:grid;gap:12px}.side-card h3{font-size:16px;margin:0 0 12px}.tags{display:flex;flex-wrap:wrap;gap:7px}.tags span{font-size:11px;padding:6px 10px;background:#eef5fb;border:1px solid #dbe7f1;border-radius:15px}.info{background:#eaf3ff;border:1px solid #cee0f5;border-radius:8px;padding:13px;color:#0759aa;line-height:1.45;font-size:12px;margin:12px 0 0}.other{background:linear-gradient(135deg,#fff,#fff2fb)}.other h3{color:#8d176b}.other p{font-size:12px;line-height:1.55;margin:0}.related{grid-column:1/-1;padding:10px 14px}.article-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.article-grid article{border:1px solid #dce8f2;background:#f9fcff;border-radius:8px;padding:11px}.article-grid b,.article-grid span,.article-grid em{display:block}.article-grid b{color:#0767c3}.article-grid span{font-size:11px;margin-top:2px}.article-grid em{font-style:normal;font-size:10px;background:#e4f1ff;border-radius:12px;width:max-content;max-width:100%;padding:4px 7px;margin:5px 0}.article-grid button{border:1px solid #cfe0ef;background:#f3f8fd;border-radius:15px;padding:4px 10px;color:#174d7c;font-size:11px;cursor:pointer}.article-results{display:grid;gap:12px}.results-head{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid #dbe7f1;border-radius:10px;padding:14px}.results-head h2{margin:0 0 4px}.results-head p{margin:0;font-size:12px}.results-head button{border:1px solid #d2e2ef;border-radius:8px;background:#fff;padding:9px 13px}.full-article{background:#fff;border:1px solid #dbe7f1;border-radius:10px;padding:16px}.article-head{display:flex;justify-content:space-between;gap:15px}.article-head b{font-size:20px;color:#075fab}.article-head span{display:block;font-size:12px;margin-top:5px;color:#55728d}.article-head button{height:34px;border:1px solid #d3e2ee;background:#f8fbfe;border-radius:7px}.stats{display:flex;gap:8px;margin:10px 0}.stats span{font-size:11px;background:#eef5fb;border-radius:14px;padding:5px 9px}.article-text{border-top:1px solid #e5edf4;padding-top:12px;line-height:1.65;text-align:justify;font-size:14px}.article-text .inc{padding-left:26px;text-indent:-24px}.article-text .par{padding-left:18px}.article-text .ali{padding-left:46px;text-indent:-20px}.article-text .caput{font-weight:600;margin-bottom:6px}.loading,.noresult{background:#fff;border:1px dashed #cbddea;border-radius:10px;padding:55px;text-align:center;color:#486982}footer{min-height:51px;border-top:1px solid #dbe7f1;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:7px 28px;font-size:10px;color:#315a7c}.foot-brand span{font-size:10px}footer i{color:#315a7c}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#07994c}.modal{position:fixed;inset:0;background:#00182a88;z-index:20;display:grid;place-items:center}.modal-card{width:min(560px,90vw);max-height:75vh;overflow:auto;background:#fff;border-radius:13px;padding:20px;box-shadow:0 20px 60px #00182a55;position:relative}.modal-card>button{position:absolute;right:12px;top:9px;border:0;background:transparent;font-size:26px}.saved{display:block;width:100%;text-align:left;border:1px solid #dbe7f1;background:#f8fbfe;border-radius:7px;padding:10px;margin:7px 0;cursor:pointer}.toast{position:fixed;right:20px;bottom:20px;background:#073b63;color:#fff;padding:12px 16px;border-radius:8px;z-index:30;box-shadow:0 8px 30px #00182a44}
@media(max-width:1250px){.dashboard{grid-template-columns:1fr}.related{grid-column:auto}.model-header{background-position:center}.article-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{display:none}.model-header{height:110px}.tabs{overflow:auto}.search-row{grid-template-columns:28px 1fr}.search-row button{grid-column:1/-1}.facts,.article-grid{grid-template-columns:1fr}.status{display:none}}
.law-switch{height:50px;background:#fff;border-bottom:1px solid #dbe7f1;display:flex;align-items:center;padding:6px 16px;gap:8px}.law{height:36px;border:1px solid #d5e3ee;border-radius:8px;background:#f8fbfe;color:#174f7e;padding:0 15px;cursor:pointer}.law.active{background:#073e68;color:#fff;border-color:#073e68}.law.compare.active{background:#07994c;border-color:#07994c}.penal .article-head b{color:#8b2342}.compare-wrap{display:grid;gap:12px}.compare-title,.compare-col,.relation{background:#fff;border:1px solid #dbe7f1;border-radius:10px;padding:15px}.compare-title h2{margin:0 0 5px}.compare-title p{margin:0;color:#58738b}.compare-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.compare-col>h2{margin:0 0 12px;font-size:19px}.compare-col.cf>h2{color:#075fa8}.compare-col.cp>h2{color:#8b2342}.compare-col article{border:1px solid #e0e9f1;border-radius:8px;padding:12px;margin-bottom:9px;max-height:360px;overflow:auto}.compare-col article>b{display:block;font-size:16px;margin-bottom:5px}.compare-col article>div{font-size:12px;line-height:1.5}.relation h2{margin:0 0 10px}.relation p{line-height:1.5}.notice{background:#fff8e8;border:1px solid #f0dfac;border-radius:8px;padding:10px;font-size:12px}@media(max-width:900px){.law-switch{overflow:auto}.compare-cols{grid-template-columns:1fr}}


/* =========================================================
   v21 — RESPONSIVO: celular e tablet
   Desktop permanece com o layout original.
   ========================================================= */
@media (max-width: 1100px) {
  .shell { display:block; }
  .sidebar {
    position:relative;
    width:100%;
    min-height:0;
    height:82px;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
  }
  .sidebar-bg { display:none; }
  .side-actions {
    position:relative;
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 12px;
    min-width:max-content;
  }
  .side-actions .hit {
    position:relative !important;
    inset:auto !important;
    top:auto !important; left:auto !important;
    width:52px !important; height:52px !important;
    min-width:52px;
    border-radius:12px;
    background:rgba(255,255,255,.08);
  }
  .main { width:100%; min-width:0; }
  .model-header { background-size:cover; background-position:center; min-height:120px; }
  .law-switch { overflow-x:auto; white-space:nowrap; -webkit-overflow-scrolling:touch; }
  .law-switch .law { flex:0 0 auto; min-height:46px; }
  .tabs { overflow-x:auto; flex-wrap:nowrap; -webkit-overflow-scrolling:touch; }
  .tab,.clear { flex:0 0 auto; min-height:44px; }
  .dashboard { grid-template-columns:minmax(0,1fr); }
  .dashboard .right { grid-column:auto; grid-row:auto; }
  .main-card,.side-card { min-width:0; }
  .article-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .compare-cols { grid-template-columns:1fr; }
  .facts { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width: 700px) {
  html,body { overflow-x:hidden; }
  body { font-size:15px; }
  .model-header {
    min-height:92px;
    background-size:auto 92px;
    background-position:center top;
  }
  .sidebar { height:68px; }
  .side-actions { padding:8px; gap:6px; }
  .side-actions .hit { width:48px !important; min-width:48px; height:48px !important; }
  .main { padding:0 !important; }
  .law-switch { padding:8px; gap:6px; }
  .law-switch .law { padding:10px 12px; font-size:13px; }
  .search-panel { margin:8px; padding:10px; border-radius:12px; }
  .tabs { gap:5px; padding-bottom:6px; }
  .tab,.clear { padding:9px 11px; font-size:12px; }
  .search-row { display:grid; grid-template-columns:1fr; gap:8px; }
  .search-row .magnify { display:none; }
  .search-row input { width:100%; min-width:0; height:48px; font-size:16px; padding:10px 12px; }
  .search-row button { width:100%; height:46px; }
  .examples { overflow-x:auto; white-space:nowrap; padding-bottom:5px; }
  .examples button { display:inline-block; }
  .workspace { padding:8px !important; }
  .dashboard { display:block; }
  .dashboard > * { margin-bottom:10px; }
  .competence,.related,.side-card,.full-article,.compare-col,.relation {
    border-radius:12px;
    padding:12px !important;
  }
  .answer { align-items:flex-start; }
  .answer .building { flex:0 0 auto; }
  .facts { grid-template-columns:1fr; gap:8px; }
  .facts > div { min-width:0; }
  .actions { display:grid; grid-template-columns:1fr; gap:7px; }
  .actions button { width:100%; min-height:44px; }
  .article-grid { grid-template-columns:1fr; }
  .article-results { padding:0; }
  .results-head,.article-head { display:block; }
  .results-head button,.article-head button { width:100%; margin-top:8px; min-height:42px; }
  .stats { display:flex; overflow-x:auto; white-space:nowrap; gap:6px; }
  .article-text,.excerpt { overflow-wrap:anywhere; word-break:normal; line-height:1.55; }
  .compare-cols { display:block; }
  .compare-col { margin-bottom:10px; }
  .tags { display:flex; flex-wrap:wrap; gap:5px; }
  footer { display:block; text-align:center; padding:14px 10px; }
  footer > * { margin:7px 0; }
  .modal { padding:10px; }
  .modal-card { width:100%; max-width:100%; max-height:88vh; overflow:auto; }
  button,a,input { touch-action:manipulation; }
}

@media (max-width: 420px) {
  .model-header { min-height:78px; background-size:auto 78px; }
  .law-switch .law { font-size:12px; padding:9px 10px; }
  .search-panel,.workspace { margin-left:5px; margin-right:5px; }
  .competence h2,.related h2,.compare-title h2 { font-size:18px; }
  .full-article .article-text { font-size:14px; }
}


/* v22 — Menu hambúrguer para celular */
.mobile-menu-btn,.mobile-menu-overlay{display:none}

@media (max-width:700px){
  .mobile-menu-btn{
    display:flex;
    position:fixed;
    top:12px;
    left:12px;
    z-index:10020;
    width:48px;
    height:48px;
    padding:11px 10px;
    border:0;
    border-radius:12px;
    background:#0b2847;
    box-shadow:0 4px 16px rgba(0,0,0,.28);
    flex-direction:column;
    justify-content:center;
    gap:5px;
    cursor:pointer;
  }
  .mobile-menu-btn span{
    display:block;
    width:100%;
    height:3px;
    border-radius:3px;
    background:#fff;
    transition:transform .22s ease,opacity .22s ease;
  }
  .mobile-menu-open .mobile-menu-btn span:nth-child(1){transform:translateY(8px) rotate(45deg)}
  .mobile-menu-open .mobile-menu-btn span:nth-child(2){opacity:0}
  .mobile-menu-open .mobile-menu-btn span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

  .mobile-menu-overlay{
    position:fixed;
    inset:0;
    z-index:9990;
    background:rgba(0,0,0,.48);
  }
  .mobile-menu-open .mobile-menu-overlay{display:block}

  .sidebar{
    display:block !important;
    position:fixed !important;
    top:0;
    left:0;
    bottom:0;
    z-index:10000;
    width:min(84vw,320px) !important;
    height:100vh !important;
    min-height:100vh !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    background:#071d34;
    transform:translateX(-105%);
    transition:transform .24s ease;
    box-shadow:8px 0 28px rgba(0,0,0,.30);
    padding-top:72px;
  }
  .mobile-menu-open .sidebar{transform:translateX(0)}
  .mobile-menu-open{overflow:hidden}

  .sidebar .side-actions{
    display:flex !important;
    flex-direction:column;
    align-items:stretch;
    min-width:0 !important;
    padding:8px 12px 24px;
    gap:7px;
  }
  .sidebar .side-actions .hit{
    position:relative !important;
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    height:52px !important;
    border-radius:10px;
    background:rgba(255,255,255,.07);
  }
}


/* v23 — corrige os itens vazios do menu mobile.
   No desktop, os hotspots continuam invisíveis sobre a imagem original. */
.mobile-label{display:none}

@media (max-width:700px){
  .sidebar{
    width:min(88vw,340px) !important;
    padding-top:72px !important;
    background:#071d34 !important;
  }
  .sidebar .side-actions{
    gap:4px !important;
    padding:8px 12px 28px !important;
  }
  .sidebar .side-actions .hit{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    width:100% !important;
    height:auto !important;
    min-height:48px !important;
    padding:0 14px !important;
    border:0 !important;
    border-radius:9px !important;
    background:transparent !important;
    color:#fff !important;
    text-align:left !important;
  }
  .sidebar .side-actions .hit:hover,
  .sidebar .side-actions .hit:active{
    background:rgba(255,255,255,.10) !important;
  }
  .mobile-label{
    display:flex !important;
    align-items:center;
    gap:12px;
    width:100%;
    color:#fff;
    font-size:15px;
    line-height:1.2;
    letter-spacing:.1px;
  }
  .mobile-label b{font-weight:600}
  .sidebar .union .mobile-label,
  .sidebar .concurrent .mobile-label,
  .sidebar .states .mobile-label,
  .sidebar .cities .mobile-label,
  .sidebar .common .mobile-label,
  .sidebar .df .mobile-label{
    padding-left:18px;
    color:#dce8f3;
    font-size:14px;
  }
}
