*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#f4f6f1; --panel:#fff; --line:#e1e7e0; --line2:#cfd9cc;
  --ink:#123722; --muted:#5d6e62; --soft:#f6f9f5;
  --primary:#006218; --primary-2:#004a12; --danger:#dc2626; --warn:#d97706; --ok:#059669;
  --shadow:0 1px 2px rgba(3,55,15,.06),0 8px 24px rgba(3,55,15,.06);
}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}
.hidden{display:none!important}

/* ===== LOGIN ===== */
.login-view{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#003a0f,#123722)}
.login-card{background:var(--panel);border-radius:16px;box-shadow:var(--shadow);padding:36px;width:380px;max-width:92vw}
.login-logo{font-size:40px;text-align:center}
.login-card h1{font-size:19px;text-align:center;margin:10px 0 4px}
.login-card p{font-size:12px;color:var(--muted);text-align:center;margin-bottom:22px}
.login-card label{font-size:12px;font-weight:600;color:var(--muted);display:block;margin:12px 0 4px}
.login-card input{width:100%;padding:10px 12px;border:1px solid var(--line2);border-radius:9px;font-size:14px}
.login-card input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,98,24,.15)}
.login-msg{color:var(--danger);font-size:12.5px;margin-top:10px;min-height:18px}
.login-hint{margin-top:14px;text-align:center;font-size:11px;color:var(--muted)}

/* ===== APP LAYOUT ===== */
.app{display:flex;min-height:100vh}
.sidebar{width:240px;flex:none;background:#003a0f;color:#cbd5e1;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:10px;padding:18px 16px;border-bottom:1px solid #123722}
.brand-logo{font-size:26px}
.brand b{font-size:14px;color:#fff;display:block}
.brand span{font-size:11px;color:#5d6e62}
#nav{flex:1;overflow-y:auto;padding:10px 8px;display:flex;flex-direction:column;gap:2px}
.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;color:#94a3b8;font-weight:500;border:none;background:none;cursor:pointer;text-align:left;width:100%;font-size:13.5px}
.nav-item:hover{background:#123722;color:#e2e8f0}
.nav-item.active{background:var(--primary);color:#fff}
.side-foot{padding:12px;border-top:1px solid #123722}
.side-user{display:flex;align-items:center;gap:10px;padding:8px;margin-bottom:8px}
#user-avatar{width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:700}
.side-user b{display:block;font-size:13px;color:#e2e8f0}
.side-user span{font-size:11px;color:#5d6e62}

.main{flex:1;display:flex;flex-direction:column;min-width:0}
.topbar{height:60px;background:var(--panel);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:14px;padding:0 22px}
.topbar h2{font-size:17px}
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.muted{color:var(--muted);font-size:12.5px}
.content{padding:22px;flex:1;overflow-y:auto}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:9px;font-weight:600;font-size:13px;border:1px solid transparent;cursor:pointer;transition:.15s}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-2)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line2)}
.btn-ghost:hover{background:var(--soft)}
.btn-danger{background:transparent;color:var(--danger);border-color:#fecaca}
.btn-danger:hover{background:#fef2f2}
.btn-sm{padding:5px 10px;font-size:12px}
.btn-block{width:100%;justify-content:center;margin-top:16px;padding:11px}
.icon-btn{background:none;border:none;cursor:pointer;font-size:16px;color:var(--muted);padding:4px 6px;border-radius:6px}
.icon-btn:hover{background:var(--soft);color:var(--ink)}

/* ===== STATS ===== */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;margin-bottom:20px}
.stat{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--shadow)}
.stat .v{font-size:24px;font-weight:800}
.stat .l{font-size:12px;color:var(--muted);margin-top:2px}
.stat.accent .v{color:var(--primary)}

/* ===== CARDS / TABLES ===== */
.panel-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;margin-bottom:18px}
.panel-card h3{padding:13px 16px;font-size:14px;border-bottom:1px solid var(--line)}
.tbl{width:100%;border-collapse:collapse}
.tbl th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:10px 14px;background:var(--soft);border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px}
.tbl tr:last-child td{border-bottom:none}
.tbl tr:hover td{background:var(--soft)}
.row-actions{display:flex;gap:4px;justify-content:flex-end}

/* ===== CHIPS ===== */
.chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px}
.chip.ok{background:#ecfdf5;color:var(--ok)}
.chip.warn{background:#fffbeb;color:var(--warn)}
.chip.danger{background:#fef2f2;color:var(--danger)}
.chip.info{background:#eff6ff;color:var(--primary)}
.chip.muted{background:var(--soft);color:var(--muted)}

/* ===== MODAL ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(3,55,15,.5);display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}
.modal{background:var(--panel);border-radius:14px;box-shadow:var(--shadow);width:100%;max-width:640px;max-height:90vh;display:flex;flex-direction:column}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}
.modal-head h3{font-size:15px}
.modal-body{padding:18px 20px;overflow-y:auto;flex:1}
.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--line)}
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:5px}
.field label .req{color:var(--danger)}
.field input,.field select,.field textarea{width:100%;padding:9px 12px;border:1px solid var(--line2);border-radius:8px;font-size:13.5px;font-family:inherit}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(0,98,24,.12)}
.field textarea{min-height:80px;resize:vertical}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.form-grid .full{grid-column:1/-1}

/* ===== TOAST ===== */
.toast-root{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:100}
.toast{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--primary);border-radius:10px;box-shadow:var(--shadow);padding:11px 14px;font-size:13px;max-width:340px;animation:slidein .2s}
.toast.err{border-left-color:var(--danger)}
.toast.ok{border-left-color:var(--ok)}
@keyframes slidein{from{transform:translateX(20px);opacity:0}to{transform:none;opacity:1}}

.empty{text-align:center;color:var(--muted);padding:30px;font-size:13px}

/* ===== KANBAN ===== */
.kanban{display:flex;gap:14px;align-items:flex-start;overflow-x:auto;padding-bottom:12px;flex:1}
.kb-col{background:var(--soft);border:1px solid var(--line);border-radius:12px;min-width:272px;flex:1;display:flex;flex-direction:column}
.kb-col .kh{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:12px 14px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);color:var(--ink)}
.kb-col .kh .dot{width:9px;height:9px;border-radius:50%;flex:none}
.kb-col .cnt{margin-left:auto;font-size:11px;color:var(--muted);background:var(--panel);border:1px solid var(--line);padding:1px 9px;border-radius:20px}
.kb-items{flex:1;padding:10px;display:flex;flex-direction:column;gap:9px;min-height:60px}
.kb-items.scroll{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}
.kb-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 12px;box-shadow:0 1px 2px rgba(3,55,15,.05);cursor:grab;transition:.12s;position:relative}
.kb-card:hover{border-color:var(--primary)}
.kb-card.dragging{opacity:.5;border-style:dashed;box-shadow:var(--shadow)}
.kb-card .t{font-weight:600;font-size:13.5px;line-height:1.3}
.kb-card .who{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;align-items:center}
.kb-card .who .p{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--muted);background:var(--soft);border:1px solid var(--line);padding:2px 8px;border-radius:20px}
.kb-card .who .p .a{width:16px;height:16px;border-radius:50%;background:var(--primary);color:#fff;font-size:9px;display:inline-grid;place-items:center;font-weight:700}
.kb-card .mt{display:flex;align-items:center;gap:6px;margin-top:9px;flex-wrap:wrap}
.kb-card .bar{height:5px;background:var(--soft);border-radius:4px;overflow:hidden;margin-top:8px}
.kb-card .bar i{display:block;height:100%;background:var(--primary)}
.kb-card .vinculo{margin-top:8px;font-size:10.5px;color:var(--muted);border-top:1px dashed var(--line2);padding-top:6px}
.kb-card .vinculo b{color:var(--primary)}
.kb-actions{position:absolute;top:8px;right:8px;display:none;gap:2px}
.kb-card:hover .kb-actions{display:flex}

/* ===== LIST TOOLBAR / FILTERS ===== */
.list-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.list-toolbar select,.list-toolbar input{padding:8px 10px;border:1px solid var(--line2);border-radius:8px;font-size:13px;background:var(--panel)}
.list-toolbar select:focus{outline:none;border-color:var(--primary)}

/* ===== MOBILE ===== */
.menu-btn{display:none;font-size:20px}
.sidebar-backdrop{position:fixed;inset:0;background:rgba(3,55,15,.4);z-index:55}
@media(max-width:820px){
  .menu-btn{display:inline-flex}
  .sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .25s;z-index:60;width:260px;box-shadow:var(--shadow)}
  .sidebar.open{transform:none}
  .main{margin-left:0}
  .content{padding:14px}
  .topbar{padding:0 12px}
  .topbar h2{font-size:15px}
  .topbar-info{display:none}
  .kb-col{min-width:80vw}
  .form-grid{grid-template-columns:1fr}
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .money-6{grid-template-columns:repeat(2,1fr)}
  .modal{max-width:94vw}
  .tbl td,.tbl th{padding:9px 10px;font-size:12px}
  .sit-lbl{width:110px}
  .detail-cols{grid-template-columns:1fr}
  .detail-kv{grid-template-columns:1fr}
}

/* ===== DASHBOARD SEÇÕES ===== */
.dash-title{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);margin:26px 0 12px}
.dash-title .bar{width:4px;height:16px;border-radius:2px;background:var(--primary);flex:none}
.money-6{grid-template-columns:repeat(6,1fr)}
.stat .v{font-size:24px;font-weight:800}
.stat .l{font-size:12px;color:var(--muted);margin-top:2px}
.stat.accent .v{color:var(--primary)}
.stat.info .v{color:var(--warn)}
.stat.ok .v{color:var(--ok)}
.stat.warn .v{color:var(--danger)}
.stat.saldo .v{color:#0ea5e9}
.alert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.alert-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:var(--shadow);display:flex;align-items:center;gap:12px}
.alert-card .v{font-size:26px;font-weight:800}
.alert-card .l{font-size:12px;color:var(--muted)}
.alert-card.danger .v{color:var(--danger)}
.alert-card.warn .v{color:var(--warn)}
.alert-card.info .v{color:var(--primary)}
.sit-row{display:flex;align-items:center;gap:12px;padding:9px 0}
.sit-lbl{width:150px;font-size:13px;display:flex;align-items:center;gap:8px;flex:none}
.sit-lbl .dot{width:9px;height:9px;border-radius:50%}
.sit-bar{flex:1;height:8px;background:var(--soft);border-radius:5px;overflow:hidden}
.sit-bar i{display:block;height:100%;border-radius:5px}
.sit-n{width:30px;text-align:right;font-weight:700;font-size:13px;flex:none}
.pad{padding:14px 16px}

/* ===== MULTISELECT (responsáveis) ===== */
.multiselect{border:1px solid var(--line2);border-radius:9px;background:var(--panel);overflow:hidden}
.ms-selected{display:flex;flex-wrap:wrap;gap:5px;padding:8px;min-height:40px}
.ms-chip{display:inline-flex;align-items:center;gap:5px;background:#eff6ff;color:var(--primary);border:1px solid #bfdbfe;border-radius:20px;padding:3px 9px;font-size:12px;font-weight:600}
.ms-chip button{border:none;background:none;cursor:pointer;color:var(--primary);font-size:14px;line-height:1;padding:0 2px}
.ms-empty{padding:8px 10px;color:var(--muted);font-size:12px}
.ms-search{width:100%;border:none;border-top:1px solid var(--line);padding:8px 10px;font-size:13px;outline:none}
.ms-dropdown{max-height:170px;overflow-y:auto;border-top:1px solid var(--line)}
.ms-item{display:flex;align-items:center;gap:8px;padding:7px 10px;cursor:pointer;font-size:13px;border-bottom:1px solid var(--soft)}
.ms-item:hover{background:var(--soft)}

/* ===== DETALHE DO CONTRATO ===== */
.detail-head{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:20px;margin-bottom:6px}
.dh-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dh-num{font-size:18px;font-weight:800}
.dh-chips{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
.dh-objeto{font-size:14px;color:var(--ink);margin-top:8px}
.dh-empresa{font-size:12.5px;color:var(--muted);margin-top:4px}
.detail-kv{display:grid;grid-template-columns:1fr 1fr;gap:0 34px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.dkv{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:13px}
.dkv:last-child{border-bottom:none}
.dkv .k{color:var(--muted);white-space:nowrap}
.dkv .v{text-align:right;font-weight:600;word-break:break-word}
.detail-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;align-items:start}
.dcol{min-width:0}
.med-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13px;flex-wrap:wrap}
.med-row:last-child{border-bottom:none}
.med-val{font-weight:700;color:var(--ok)}
.foto-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.foto-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.foto-thumb{height:90px;background:linear-gradient(135deg,#e0e7ff,#f5f3ff);display:grid;place-items:center;font-size:36px;overflow:hidden}
.foto-thumb img{width:100%;height:100%;object-fit:cover}
.foto-period{margin-bottom:18px}
.period-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.period-head label{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}
.period-head input[type=checkbox]{width:17px;height:17px;accent-color:var(--primary)}
.foto-check{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--muted);padding:5px 10px;cursor:pointer}
.foto-check input{width:15px;height:15px;accent-color:var(--primary)}
.foto-name{font-size:12px;font-weight:600;padding:8px 10px 2px}
.foto-id{font-size:10px;color:var(--muted);padding:0 10px;word-break:break-all}
.foto-meta{font-size:10.5px;color:var(--muted);padding:4px 10px 10px}
.aditivo-row{padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.aditivo-row:last-child{border-bottom:none}
.obra-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:13px 16px;border-bottom:1px solid var(--line);font-size:14px}
.timeline{padding:8px 16px 12px}
.tl-item{display:flex;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line);align-items:flex-start}
.tl-item:last-child{border-bottom:none}
.tl-dot{width:10px;height:10px;border-radius:50%;background:var(--primary);flex:none;margin-top:4px}
.tl-date{font-size:12px;color:var(--muted);font-weight:700;min-width:78px;flex:none}
.tl-body{font-size:13px}
.atv-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);flex-wrap:wrap;font-size:13px}
.atv-row:last-child{border-bottom:none}
.detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}

/* ===== IMPRESSÃO ===== */
@media print{
  .sidebar,.topbar,.list-toolbar,#menu-btn,.detail-actions,.sidebar-backdrop,#toast-root{display:none !important}
  .main{margin:0 !important}
  .content{padding:0 !important}
  .detail-head,.panel-card,.foto-card{box-shadow:none !important;break-inside:avoid;page-break-inside:avoid}
  body{background:#fff !important}
}

/* ===== Blocos de acesso (cadastro de usuário) ===== */
.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px 12px;margin-top:6px}
.mod-check{display:flex;align-items:center;gap:8px;font-size:13px;padding:6px 8px;background:var(--card,#fff);border:1px solid var(--border,#e2e8f0);border-radius:8px;cursor:pointer}
.mod-check input{accent-color:#006218}
.mod-check:has(input:disabled){opacity:.6;cursor:not-allowed}
/* ===== HOME INSTITUCIONAL SMVO (bloco unico) ===== */
.home { background: #F6F7F4; }
.home-top { background: linear-gradient(90deg, #004512, #006218 70%, #0b6e23); color: #fff; box-shadow: 0 2px 10px rgba(0,40,0,.18); }
.home-top-in { max-width: 1120px; margin: 0 auto; padding: 16px 24px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.home-brand { display: flex; align-items: center; gap: 12px; }
.home-emblem { width: 46px; height: 46px; }
.home-brand .t1 { display: block; font-size: 16px; font-weight: 700; }
.home-brand .t2 { display: block; font-size: 12.5px; opacity: .94; }
.home-menu { margin-left: auto; }
.home-menu a { color: #fff; text-decoration: none; }

.btn-news { display: inline-flex; align-items: center; gap: 9px; background: #006218; color: #fff; font-weight: 700; font-size: 16px; padding: 13px 20px; border-radius: 8px; text-decoration: none; box-shadow: 0 4px 12px rgba(0,98,24,.2); }
.btn-news:hover { background: #004a12; }
.btn-news.small { padding: 8px 14px; font-size: 14px; background: transparent; border: 1px solid rgba(255,255,255,.4); box-shadow: none; }
.btn-news.small:hover { background: rgba(255,255,255,.12); }
.btn-news svg { width: 18px; height: 18px; }

.home-hero { max-width: 1120px; margin: 0 auto; padding: 46px 24px 30px; display: grid; grid-template-columns: 1.45fr 1fr; gap: 40px; align-items: center; }
.home-info h1 { font-size: clamp(30px, 4.4vw, 46px); line-height: 1.05; color: #004512; margin: 0 0 12px; }
.home-info .tag { font-size: 21px; font-weight: 700; color: #006218; margin: 0 0 12px; }
.home-info .desc { color: #46584d; font-size: 16.5px; max-width: 520px; line-height: 1.6; margin: 0 0 26px; }
.home-chips { margin-top: 22px; display: flex; gap: 8px; flex-wrap: wrap; }
.chip { border: 1px solid #cfe0d2; background: #fff; color: #2f6b45; font-size: 12px; font-weight: 600; padding: 5px 12px; border-radius: 999px; }

.home-login .card { background: #fff; border: 1px solid #e1e6df; border-radius: 14px; padding: 26px; box-shadow: 0 16px 40px rgba(20,60,30,.10); }
.card-h { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.card-h .ic { width: 34px; height: 34px; border-radius: 9px; background: #e9f3ea; color: #006218; display: flex; align-items: center; justify-content: center; }
.card-h .ic svg { width: 19px; height: 19px; }
.card-h h3 { margin: 0; font-size: 18px; color: #0b2f1a; }
.home-login p.sub { color: #75857b; font-size: 13px; margin: 0 0 14px; }
.home-login .field { margin-bottom: 13px; }
.home-login .field label { display: block; font-size: 12.5px; font-weight: 600; color: #405046; margin-bottom: 5px; }
.home-login .input { width: 100%; padding: 11px 12px; border: 1px solid #cbd5cd; border-radius: 8px; font-size: 15px; background: #fbfcfb; box-sizing: border-box; }
.home-login .input:focus { outline: none; border-color: #006218; box-shadow: 0 0 0 3px rgba(0,98,24,.12); background: #fff; }
.btn-enter { width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #006218; color: #fff; font-weight: 700; font-size: 15px; padding: 12px; border: 0; border-radius: 8px; cursor: pointer; margin-top: 4px; box-sizing: border-box; }
.btn-enter:hover { background: #004a12; }
.btn-enter svg { width: 18px; height: 18px; }
.login-msg { color: #b3261e; font-size: 13px; min-height: 16px; margin-top: 8px; }

.home-latest { background: #fff; border-top: 1px solid #e7ece6; padding: 34px 0 40px; }
.home-latest-in { max-width: 1120px; margin: 0 auto; padding: 0 24px; }
.home-sec-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 22px; }
.home-sec-head h2 { margin: 0; font-size: 21px; color: #0b2f1a; display: flex; align-items: center; gap: 10px; }
.home-sec-head h2::before { content: ""; width: 6px; height: 26px; background: #FBCC1C; border-radius: 3px; }
.home-sec-head a { color: #006218; font-weight: 600; font-size: 14px; text-decoration: none; white-space: nowrap; }

.home-news { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 300px)); justify-content: start; align-items: start; gap: 24px; width: 100%; }
.hn-card { text-decoration: none; color: inherit; display: flex; flex-direction: column; border-radius: 10px; overflow: hidden; border: 1px solid #ecefeb; background: #fff; }
.hn-card:hover { box-shadow: 0 10px 24px rgba(20,60,30,.12); transform: translateY(-2px); }
.hn-ph { aspect-ratio: 16/9; overflow: hidden; background: #e4e8e3; }
.hn-ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hn-body { padding: 14px 15px 16px; display: flex; flex-direction: column; gap: 7px; }
.hn-card h3 { margin: 0; font-size: 16px; line-height: 1.3; color: #123722; }
.hn-tag { color: #006218; font-weight: 700; font-size: 11.5px; letter-spacing: .6px; text-transform: uppercase; }
.hn-date { color: #8a968d; font-size: 12px; display: flex; align-items: center; gap: 6px; }
.hn-date svg { width: 13px; height: 13px; }

.home-foot { background: #003a0f; color: #d7e6d9; }
.home-foot-in { max-width: 1120px; margin: 0 auto; padding: 22px 24px; display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; font-size: 13.5px; }
.home-foot b { color: #fff; }

@media (max-width: 880px) {
  .home-hero { grid-template-columns: 1fr; }
  .home-news { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
}
@media (max-width: 560px) {
  .home-news { grid-template-columns: 1fr; }
}
/* regras de senha na troca de senha */
.pass-rules { margin: 10px 0 2px; padding: 0 0 0 18px; font-size: 11.5px; color: #5d6e62; line-height: 1.6; }
.pass-rules b { color: #123722; }

.ask-confirm{position:fixed;inset:0;background:rgba(3,55,15,.45);z-index:300;display:flex;align-items:center;justify-content:center;padding:20px}
.ask-confirm.hidden{display:none}
.ask-card{background:#fff;max-width:400px;width:100%;padding:22px;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.ask-msg{font-size:15px;color:#123722;white-space:pre-line;line-height:1.5;margin-bottom:18px}
.ask-btns{display:flex;gap:10px;justify-content:flex-end}
.ask-btns .btn{padding:9px 16px}
