:root{--gold:#B8975A;--gold-d:#8f7340;--ink:#111;--line:#e4e1da}
html,body{font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;-webkit-text-size-adjust:100%}
.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .9rem;border-radius:.4rem;font-size:.85rem;font-weight:600;border:1px solid transparent;cursor:pointer;transition:.15s;line-height:1.2;white-space:nowrap}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-dark{background:var(--ink);color:#fff}.btn-dark:hover:not(:disabled){background:#2a2a2a}
.btn-gold{background:var(--gold);color:#fff}.btn-gold:hover:not(:disabled){background:var(--gold-d)}
.btn-line{background:#fff;border-color:#cfcac0;color:#222}.btn-line:hover:not(:disabled){background:#f5f3ee}
.btn-red{background:#b00020;color:#fff}.btn-red:hover:not(:disabled){background:#8c001a}
.btn-sm{padding:.3rem .6rem;font-size:.75rem}
.card{background:#fff;border:1px solid var(--line);border-radius:.6rem}
.card-h{padding:.8rem 1rem;border-bottom:1px solid var(--line);font-weight:700;font-size:.9rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}
.card-b{padding:1rem}
.inp{width:100%;border:1px solid #cfcac0;border-radius:.4rem;padding:.5rem .65rem;font-size:.875rem;background:#fff;color:#111}
.inp:focus{outline:2px solid var(--gold);outline-offset:0;border-color:var(--gold)}
.lbl{display:block;font-size:.72rem;font-weight:600;color:#555;margin-bottom:.2rem;text-transform:uppercase;letter-spacing:.03em}
.hint{font-size:.72rem;color:#777;margin-top:.15rem}
.badge{display:inline-block;padding:.12rem .5rem;border-radius:999px;font-size:.68rem;font-weight:700;white-space:nowrap}
.b-gold{background:#f3ead8;color:#7a5f2a}.b-dark{background:#111;color:#fff}.b-gray{background:#ececea;color:#444}
.b-green{background:#dcf1e0;color:#1f6b33}.b-red{background:#fbe0e3;color:#a1001c}.b-amber{background:#fdf0cf;color:#8a5a00}.b-blue{background:#e0ecfb;color:#1c4f94}
.kpi{padding:.9rem 1rem}.kpi .v{font-size:1.5rem;font-weight:800;line-height:1.1}.kpi .l{font-size:.7rem;color:#666;text-transform:uppercase;letter-spacing:.04em;margin-top:.2rem}
.tbl{width:100%;border-collapse:collapse;font-size:.82rem}
.tbl th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:#666;padding:.5rem .6rem;border-bottom:1px solid var(--line);background:#faf9f6;white-space:nowrap}
.tbl td{padding:.55rem .6rem;border-bottom:1px solid #efece6;vertical-align:top}
.tbl tr:hover td{background:#fbfaf7}
.nav-a{display:flex;align-items:center;gap:.7rem;padding:.6rem .9rem;border-radius:.4rem;color:#cfcfcf;font-size:.88rem;font-weight:500;cursor:pointer}
.nav-a:hover{background:#222;color:#fff}.nav-a.on{background:var(--gold);color:#fff}
.nav-a i{width:1.1rem;text-align:center}
.prop-card{display:flex;gap:.8rem;padding:.75rem;border:1px solid var(--line);border-radius:.55rem;background:#fff;cursor:pointer;transition:.15s}
.prop-card:hover{border-color:var(--gold);box-shadow:0 2px 10px rgba(0,0,0,.06)}
.thumb{width:110px;height:82px;border-radius:.4rem;background:#e8e6e0;object-fit:cover;flex:none;display:flex;align-items:center;justify-content:center;color:#999;font-size:.65rem;text-align:center}
.score-ring{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.9rem;color:#fff;flex:none}
.warn{background:#fff8e6;border:1px solid #f0d58a;color:#6b4a00;border-radius:.45rem;padding:.55rem .75rem;font-size:.78rem}
.info{background:#eef4fb;border:1px solid #bcd3ef;color:#17446f;border-radius:.45rem;padding:.55rem .75rem;font-size:.78rem}
.danger{background:#fdecee;border:1px solid #f1aab3;color:#8c001a;border-radius:.45rem;padding:.55rem .75rem;font-size:.78rem}
.demo-banner{background:repeating-linear-gradient(45deg,#fff3c4,#fff3c4 10px,#ffe9a0 10px,#ffe9a0 20px);color:#5a4300;font-weight:700;font-size:.78rem;text-align:center;padding:.35rem}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:4vh .75rem;overflow:auto}
.modal{background:#fff;border-radius:.7rem;width:100%;max-width:640px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.modal.wide{max-width:960px}
.toast{background:#111;color:#fff;padding:.65rem .9rem;border-radius:.45rem;font-size:.85rem;margin-top:.5rem;box-shadow:0 6px 20px rgba(0,0,0,.25);max-width:360px}
.toast.err{background:#b00020}.toast.ok{background:#1f6b33}
#toast-root{position:fixed;right:.75rem;bottom:.75rem;z-index:80}
.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--line);overflow-x:auto}
.tab{padding:.55rem .9rem;font-size:.82rem;font-weight:600;color:#666;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}
.tab.on{color:#111;border-color:var(--gold)}
.bar{height:.5rem;background:#ececea;border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--gold)}
.spin{display:inline-block;width:1rem;height:1rem;border:2px solid #ccc;border-top-color:var(--gold);border-radius:50%;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.leaflet-container{font-family:inherit;border-radius:.5rem}
details>summary{cursor:pointer}
.muted{color:#777}.num{font-variant-numeric:tabular-nums}
@media (max-width:1023px){.thumb{width:84px;height:64px}}
@media print{aside,header,#toast-root,.no-print{display:none!important}}
/* correções de revisão visual */
.tbl th.text-right{text-align:right}.tbl th.text-center{text-align:center}
.kpi .l{color:#555}.hint,.muted{color:#666}
.warn{color:#5a3d00}
.score-ring{position:relative}
.score-ring::after{content:'índice';position:absolute;bottom:-13px;left:50%;transform:translateX(-50%);font-size:.55rem;font-weight:600;color:#777;letter-spacing:.03em}
.prop-card .score-ring{margin-bottom:.8rem}
.nav-a.on{background:#9a7b3f}
/* itens de grelha/flex podem encolher (tabelas com scroll interno, gráficos responsivos, texto truncado) */
.grid>*,.flex>*{min-width:0}
main#view{overflow-x:clip}
canvas{max-width:100%}
.card{min-width:0}
.overflow-x-auto{max-width:100%}
