/* Base Certa V47 — identidade visual Construção / Engenharia */
:root{
  --navy:#202526;
  --navy-2:#303637;
  --blue:#d99a00;
  --blue-soft:#fff7dc;
  --green:#2f765a;
  --green-soft:#edf7f1;
  --amber:#d99a00;
  --amber-soft:#fff6d5;
  --red:#b5473d;
  --bg:#f2f0eb;
  --surface:#fff;
  --text:#232728;
  --muted:#717878;
  --border:#ddd9d0;
  --shadow:0 12px 32px rgba(31,35,35,.065);
  --radius:12px;
  --bc-field-border:#d4d0c8;
  --bc-field-focus:#d99a00;
  --bc-soft:#f7f5f0;
  --bc-text:#292d2d;
  --bc-muted:#747b7b;
  --bc-line:#e5e1d9;
  --bc-yellow:#f3b61f;
  --bc-yellow-dark:#c48900;
  --bc-charcoal:#1f2424;
  --bc-steel:#596161;
  --bc-concrete:#f2f0eb;
}
body.app-page{background-color:var(--bc-concrete);background-image:linear-gradient(rgba(70,75,75,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(70,75,75,.035) 1px,transparent 1px);background-size:28px 28px}
.app-shell{grid-template-columns:264px minmax(0,1fr)}
.sidebar.sidebar-fixed,.sidebar{background:#202526;color:#fff;padding:22px 16px;border-right:1px solid #141818;box-shadow:8px 0 28px rgba(25,28,28,.08);overflow:hidden}
.sidebar:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(to bottom,#000,transparent 78%)}
.sidebar:after{display:none;content:none}
.brand{position:relative;z-index:1;padding:4px 7px 23px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand-mark{position:relative;width:43px;height:43px;border-radius:7px;background:var(--bc-yellow);color:#181b1b;font-size:15px;letter-spacing:-.04em;border:1px solid #f6c64e;box-shadow:none;overflow:hidden}
.brand-mark:before,.brand-mark:after{content:"";position:absolute;left:7px;right:7px;height:3px;background:#1d2222;opacity:.9}
.brand-mark:before{top:8px}.brand-mark:after{bottom:8px}
.brand strong{font-size:16px;letter-spacing:.02em}.brand span{color:#9fa8a8;font-size:10px;text-transform:uppercase;letter-spacing:.1em}
.side-nav{position:relative;z-index:1;padding:20px 0;gap:5px}.side-nav a{position:relative;color:#c2c8c8;padding:11px 12px;border-radius:7px;font-size:12px;font-weight:650}.side-nav a span{font-size:14px;color:#8f9999}.side-nav a:hover{background:#2b3131;color:#fff}.side-nav a.active{background:var(--bc-yellow);color:#171b1b;font-weight:850;box-shadow:0 7px 18px rgba(0,0,0,.16)}.side-nav a.active span{color:#171b1b}.side-nav a.active:after{content:"";position:absolute;right:8px;width:5px;height:5px;background:#202526;transform:rotate(45deg)}
.sidebar-status{position:relative;z-index:1;border-radius:8px;background:#292f2f;border:1px solid #394141;padding:13px 11px}.sidebar-status:before{content:"OBRA DIGITAL";position:absolute;right:9px;top:8px;font-size:7px;letter-spacing:.14em;color:#747e7e;font-weight:900}.sidebar-status strong{color:#fff;font-size:11px;max-width:170px}.sidebar-status small,.sidebar-status span{color:#919b9b;font-size:9px}.status-dot.ok{background:var(--bc-yellow);box-shadow:0 0 0 3px rgba(243,182,31,.14)}
.modern-topbar{min-height:84px;padding:15px 30px;background:rgba(252,251,248,.94);border-bottom:1px solid #d9d5cd;box-shadow:0 6px 24px rgba(31,35,35,.035)}
.modern-topbar:before{content:"";position:absolute;left:0;bottom:-1px;width:160px;height:3px;background:var(--bc-yellow)}
.modern-topbar h1{font-size:20px;color:#202525;font-weight:800}.eyebrow,.section-kicker{color:#a87000!important;letter-spacing:.15em}.user-avatar{border-radius:7px;background:#252a2a;color:var(--bc-yellow);border:1px solid #343a3a}.user-box a{color:#7e8585}
.app-page .app-content>main{max-width:1560px;padding:24px 30px 60px}
.panel,.app-page .app-content>main>.panel,.app-page .app-content>main>section.panel{position:relative;border:1px solid #dcd8d0;border-radius:11px;background:#fff;box-shadow:var(--shadow);overflow:visible}
.panel:before{content:"";position:absolute;top:-1px;left:18px;width:42px;height:3px;background:var(--bc-yellow)}
.panel-heading h2,.results-toolbar h2,.method-card h2,.edital-card h2{color:#262b2b;font-weight:850}.panel-heading p,.results-toolbar p{color:#727979;line-height:1.55}.source-badge,.history-source{border-radius:5px;background:#f5f1e7;color:#695423;border:1px solid #e6dcc3}
.search-card{padding:23px!important}.search-card:after{content:"MEDIÇÃO  •  REFERÊNCIA  •  COMPARAÇÃO";display:block;margin-top:18px;padding-top:11px;border-top:1px dashed #ddd7ca;color:#9b9488;font-size:8px;font-weight:850;letter-spacing:.15em}
.search-input-wrap input{height:54px!important;border-radius:8px!important;background:#fdfcf9!important;border:1px solid #ccc6bb!important;font-size:14px!important}.search-input-wrap input:focus{border-color:var(--bc-yellow-dark)!important;box-shadow:0 0 0 3px rgba(243,182,31,.15)!important}.search-icon{color:#9b7b23!important}
.btn{border-radius:7px!important;font-size:11px!important;letter-spacing:.01em}.btn-primary{background:#242929!important;color:#fff!important;border:1px solid #242929!important}.btn-primary:hover{background:#111414!important}.btn-search{background:var(--bc-yellow)!important;color:#1b1f1f!important;border-color:#e3a812!important;font-weight:900!important}.btn-secondary{background:#fff!important;color:#2e3333!important;border-color:#d6d1c8!important}.btn-secondary:hover{border-color:#aaa397!important;background:#faf8f3!important}.btn-danger{background:#a83f37!important}
.app-page main input:not([type=hidden]):not([type=checkbox]):not([type=radio]),.app-page main select,.app-page main textarea{border-radius:7px!important;border-color:#d4d0c8!important;background:#fdfcf9!important;color:#2a2f2f!important}.app-page main input:focus,.app-page main select:focus,.app-page main textarea:focus{border-color:#c58d05!important;box-shadow:0 0 0 3px rgba(243,182,31,.13)!important}.app-page main input[type=checkbox],.app-page main input[type=radio]{accent-color:#b37a00!important}
.advanced-filters,.catalog-assistant,.segment-picker,.op-filter-drawer{border-radius:8px!important;background:#f8f6f1!important;border-color:#ded9cf!important}
.results-toolbar{border-radius:10px!important}.results-table th,.prices-table th,.admin-table th{background:#292e2e!important;color:#ecefef!important;border-color:#363c3c!important;font-size:9px!important;letter-spacing:.05em;text-transform:uppercase}.results-table tr:hover td,.prices-table tr:hover td{background:#fffaf0!important}
.tab-button.active,.filter-tab.active,.ai-filter-chips button.active{background:#252a2a!important;color:var(--bc-yellow)!important}
.billing-period.featured,.client-plan-card.current{border-color:#d9a419!important;box-shadow:0 0 0 1px rgba(217,164,25,.18),0 14px 34px rgba(34,37,37,.08)!important}.period-badge{border-radius:5px!important;background:#ffefb8!important;color:#735000!important}.billing-current-pill{border-radius:7px!important}.billing-offline-note{border-left:4px solid var(--bc-yellow)!important;background:#fff9e8!important}
.team-stat strong,.mini-stat strong,.admin-kpi strong{color:#272c2c!important}
.ai-panel-v37 .ai-titlebar-v37,.ai-workspace-v37{background:#f8f6f1!important}.ai-decision-summary{background:#fffaf0!important;border-color:#e7ddc4!important}.ai-accordion-v37,.ai-side-card-v37{border-radius:8px!important}.ai-accordion-icon,.ai-side-title>span{border-radius:5px!important}.ai-jumpbar a{border-radius:6px!important}.ai-filter-chips{border-radius:7px!important}
.success-message{border-left:4px solid #4a8a66!important}.error-message{border-left:4px solid #b5473d!important}

/* Login em linguagem de canteiro/projeto */
body.login-page{min-height:100vh;background:#202525!important;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px)!important;background-size:32px 32px!important;display:grid!important;place-items:center!important;padding:28px!important}
body.login-page:before{display:none;content:none}
.login-box{position:relative;width:min(430px,100%)!important;border-radius:10px!important;border:1px solid #d8d1c4!important;background:#fdfbf6!important;box-shadow:0 30px 90px rgba(0,0,0,.32)!important;padding:34px!important;overflow:hidden}.login-box:after{content:"PLANTA DE ACESSO  /  BASE CERTA";display:block;margin-top:22px;padding-top:12px;border-top:1px dashed #cfc7b8;color:#8f8779;font-size:8px;font-weight:900;letter-spacing:.17em;text-align:left}.login-brand-mark{width:48px!important;height:48px!important;border-radius:7px!important;background:var(--bc-yellow)!important;color:#1d2222!important;box-shadow:none!important}.login-title span{color:#a56f00!important}.login-title h1{color:#222727!important}.login-title p{color:#727979!important}.login-box label{color:#4c5353!important}.login-box input{border-radius:7px!important;border-color:#cfc8bc!important;background:#fff!important}.login-box input:focus{border-color:#c68b00!important;box-shadow:0 0 0 3px rgba(243,182,31,.14)!important}.login-box button{border-radius:7px!important;background:#222727!important;color:#fff!important}.login-box button:hover{background:#101313!important}.login-link{color:#755516!important}.login-source{color:#9c968d!important}

@media(max-width:980px){.app-shell{grid-template-columns:86px minmax(0,1fr)}.sidebar{padding-left:10px;padding-right:10px}.brand{justify-content:center}.brand>div:last-child,.side-nav a b,.sidebar-status>div{display:none}.brand-mark{width:42px}.side-nav a{justify-content:center}.side-nav a span{width:auto}.sidebar-status{justify-content:center}.sidebar-status:before{display:none}}
@media(max-width:760px){.app-shell{display:block}.sidebar{height:auto;position:relative;padding:12px 12px 8px;border-right:0}.sidebar:after{height:4px}.brand{padding:0 4px 10px;justify-content:flex-start}.brand>div:last-child{display:block}.side-nav{display:grid;grid-template-columns:repeat(3,1fr);padding:10px 0}.side-nav a{justify-content:center;padding:9px 6px}.side-nav a b{display:block;font-size:9px}.side-nav a span{display:none}.sidebar-status{display:none}.modern-topbar{position:relative;padding:13px 16px}.app-page .app-content>main{padding:16px}.modern-topbar h1{font-size:17px}.user-box>div:last-child{display:none}}
