:root{
  --gold:#e0b04a; --gold-light:#f5d27a; --gold-dark:#c8912e; --gold-deep:#b8802a; --gold-ink:#1a1206;
  --bg-app:#070a12; --bg-card:#0d1120; --bg-inset:#0a0f1e;
  --border:#1a2338; --border-2:#1c2540; --border-soft:#141c30;
  --text:#e7e7ea; --text-white:#fff; --text-muted:#8a8a92; --text-dim:#7a7a82; --placeholder:#6b6b74;
  --success:#5ecf8f; --info:#4a90d9; --danger:#e0563f;
  --grad-gold:linear-gradient(180deg,#f5d27a,#e0b04a 55%,#c8912e);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100vh}
body{font-family:'Poppins',system-ui,sans-serif;color:var(--text);background:var(--bg-app)}
a{color:var(--gold);text-decoration:none}
a:hover{color:var(--gold-light)}
input::placeholder,textarea::placeholder{color:var(--placeholder)}
input,select,textarea{font-family:inherit}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#1a2338;border-radius:6px}
@keyframes glowPulse{0%,100%{box-shadow:0 0 10px rgba(224,176,74,.14)}50%{box-shadow:0 0 16px rgba(224,176,74,.24)}}

/* ===================== LOGIN ===================== */
.login-body{min-height:100vh;width:100%;position:relative;overflow-x:hidden;overflow-y:auto;background:#0a0a0e url('/images/login-bg.png') center/cover no-repeat;display:flex;align-items:center;justify-content:space-between;gap:40px;padding:40px clamp(24px,6vw,72px)}
.login-overlay{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(5,6,10,.58) 0%,rgba(5,6,10,.20) 34%,rgba(5,6,10,.34) 70%,rgba(5,6,10,.52) 100%)}
.login-overlay2{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(5,6,10,.42) 0%,rgba(5,6,10,.10) 32%,rgba(5,6,10,.42) 100%)}
.login-left{position:relative;z-index:2;flex:1;min-width:0;display:flex;flex-direction:column;padding:8px 0}
.login-brand{display:flex;flex-direction:column;align-items:flex-start;text-align:left;text-shadow:0 2px 16px rgba(0,0,0,.7)}
.login-brand img{width:clamp(90px,10vw,150px);height:auto;filter:drop-shadow(0 8px 30px rgba(224,176,74,.28))}
.login-brand .nm{font-size:clamp(30px,4vw,48px);font-weight:700;line-height:1;margin-top:6px;background:linear-gradient(180deg,#f5d27a,#e0b04a 42%,#b8802a);-webkit-background-clip:text;background-clip:text;color:transparent}
.login-brand .sub{display:flex;align-items:center;gap:14px;margin-top:12px}
.login-brand .sub .rule{width:44px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.login-brand .sub .rule-r{background:linear-gradient(90deg,var(--gold),transparent)}
.login-brand .sub .sol{font-size:clamp(14px,1.6vw,19px);font-weight:500;letter-spacing:.42em;color:#f2f2f4;padding-left:.42em}
.login-slogan{position:absolute;left:32%;top:76%;z-index:2;max-width:clamp(220px,22vw,320px);font-size:clamp(14px,1.6vw,19px);font-weight:500;font-style:italic;color:var(--gold);text-align:left;line-height:1.4;text-shadow:0 2px 14px rgba(0,0,0,.75)}
.login-card{position:relative;z-index:3;flex-shrink:0;width:440px;max-width:100%;background:rgba(12,13,19,.82);border:1px solid rgba(224,176,74,.5);border-radius:22px;padding:clamp(26px,4vw,40px) clamp(24px,4vw,42px);backdrop-filter:blur(8px);box-shadow:0 30px 90px rgba(0,0,0,.6);margin:auto 0 auto auto}
.card-logo{display:flex;justify-content:center}
.card-logo img{width:76px;height:auto}
.login-card h1{text-align:center;color:#fff;font-size:27px;font-weight:600;margin-top:12px}
.login-card .lead{text-align:center;color:#9a9aa2;font-size:14.5px;margin-top:6px;line-height:1.5}
.field{margin-top:18px}
.field label{display:block;color:var(--gold);font-size:13px;font-weight:600;letter-spacing:.06em;margin-bottom:8px}
.input{display:flex;align-items:center;gap:12px;background:#0c1018;border:1px solid #262a36;border-radius:12px;padding:0 16px;height:52px}
.input:focus-within{border-color:var(--gold)}
.input input{flex:1;background:none;border:none;outline:none;color:#fff;font-size:15px;font-family:inherit;height:100%}
.input .eye{cursor:pointer;flex:none}
.row-between{display:flex;align-items:center;justify-content:space-between;margin-top:16px}
.check{display:flex;align-items:center;gap:9px;color:#c8c8ce;font-size:14px;cursor:pointer;user-select:none}
.check input{width:18px;height:18px;accent-color:var(--gold)}
.btn{width:100%;height:54px;border-radius:12px;cursor:pointer;font-family:inherit;font-weight:700;display:flex;align-items:center;justify-content:center;gap:12px;border:none}
.btn-gold{margin-top:22px;font-size:16px;letter-spacing:.06em;color:var(--gold-ink);background:var(--grad-gold)}
.btn-gold:hover{filter:brightness(1.05)}
.btn-gold.glow{animation:glowPulse 3.6s ease-in-out infinite}
.btn-ghost{font-size:15px;font-weight:600;letter-spacing:.05em;color:var(--gold);background:transparent;border:1px solid rgba(224,176,74,.5)}
.btn-ghost:hover{background:rgba(224,176,74,.08)}
.foot{text-align:center;color:#6b6b74;font-size:12px;margin-top:22px}
.alert{padding:12px 14px;border-radius:10px;margin-top:16px;font-size:14px;opacity:1;transition:opacity .4s ease}
.alert-hide{opacity:0}
.alert-error{background:rgba(224,86,63,.14);border:1px solid rgba(224,86,63,.5);color:#f0a99b}
.alert-ok{background:rgba(94,207,143,.12);border:1px solid rgba(94,207,143,.4);color:#a7e2c1}
.badge-prov{display:inline-block;margin-top:10px;padding:5px 12px;border-radius:20px;background:rgba(224,176,74,.12);border:1px solid rgba(224,176,74,.3);color:var(--gold);font-size:12.5px}

/* ===================== APP SHELL (navy) ===================== */
.app{display:flex;min-height:100vh;width:100%;background:var(--bg-app);color:var(--text)}
.sidebar{width:230px;flex-shrink:0;background:linear-gradient(180deg,#0b1122,#080c16);border-right:1px solid #161f36;display:flex;flex-direction:column;min-height:100vh;position:sticky;top:0;align-self:flex-start}
.sidebar-head{padding:22px 20px 20px;display:flex;flex-direction:column;align-items:center;border-bottom:1px solid var(--border-soft)}
.sidebar-head img{width:54px;height:auto}
.sidebar-head .nm{font-size:21px;font-weight:700;line-height:1;margin-top:4px;background:linear-gradient(180deg,#f5d27a,#c8912e);-webkit-background-clip:text;background-clip:text;color:transparent}
.sidebar-head .sol{font-size:8px;letter-spacing:.4em;color:#c8c8ce;padding-left:.4em;margin-top:2px}
.nav{flex:1;padding:14px 12px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}
.nav-item{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:9px;color:#9aa0ac;font-size:13px;cursor:pointer;text-decoration:none;font-family:inherit;border-left:2px solid transparent}
.nav-item:hover{color:#cfd3db;background:rgba(255,255,255,.02)}
.nav-item.active{color:var(--gold);font-weight:600;background:rgba(224,176,74,.10);border-left:2px solid var(--gold)}
.nav-item svg{flex:none}
.nav-caret{margin-left:auto;transition:transform .15s}
.nav-caret.open{transform:rotate(90deg)}
.nav-sub{display:flex;flex-direction:column;gap:2px;padding-left:16px;margin-top:2px}
.nav-sub .nav-item{font-size:12.5px;padding:7px 12px}
.sidebar-foot{padding:12px;border-top:1px solid var(--border-soft);display:flex;flex-direction:column;gap:2px}
.logout-btn{background:none;border:none;width:100%;text-align:left}
.main{flex:1;display:flex;flex-direction:column;min-width:0}

/* ===================== DASHBOARD ===================== */
.dash-head{width:100%;max-width:1400px;margin:0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:18px 32px 14px}
.dash-head h1{font-size:30px;font-weight:700;color:#fff}
.dash-head p{font-size:14px;color:var(--text-muted);margin-top:4px}
.head-right{display:flex;flex-direction:column;align-items:flex-end;gap:16px}
.head-top{display:flex;align-items:center;gap:22px}
.bell{position:relative}
.bell .badge{position:absolute;top:-4px;right:-4px;width:15px;height:15px;border-radius:50%;background:var(--danger);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center}
.user-blk{display:flex;align-items:center;gap:10px}
.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#e0b04a,#a86e1e);display:flex;align-items:center;justify-content:center;flex:none}
.user-blk .nm{font-size:13px;font-weight:700;color:#fff}
.user-blk .rl{font-size:11px;color:var(--text-dim)}
.dash{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:4px 32px 20px;display:flex;flex-direction:column;gap:14px}
.dcard{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:16px 18px;min-width:0}
.dh2{font-size:16px;font-weight:600;color:#fff}
.dsub{font-size:12px;color:var(--text-dim);margin-top:2px}
.kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.kpi-top{display:flex;align-items:flex-start;gap:14px}
.kpi-icon{width:40px;height:40px;flex-shrink:0;border-radius:11px;background:rgba(224,176,74,.10);border:1px solid rgba(224,176,74,.25);display:flex;align-items:center;justify-content:center;color:var(--gold)}
.kpi-label{font-size:10.5px;font-weight:600;letter-spacing:.03em;color:var(--text-muted);padding-top:3px}
.kpi-value{font-size:27px;font-weight:700;color:#fff;margin-top:10px;line-height:1}
.kpi-foot{display:flex;align-items:flex-end;justify-content:space-between;margin-top:8px;gap:8px}
.row-3{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:14px}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.dcard-wide{grid-column:span 2}
.donut-wrap{display:flex;align-items:center;gap:12px;margin-top:14px}
.donut{width:88px;height:88px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center}
.donut .hole{width:57px;height:57px;border-radius:50%;background:var(--bg-card);display:flex;flex-direction:column;align-items:center;justify-content:center}
.donut .hole .v{font-size:13px;font-weight:700;color:#fff;white-space:nowrap}
.donut .hole .v-sm{font-size:12px;font-weight:700;color:#fff;white-space:nowrap}
.donut .hole .k{font-size:5.5px;color:var(--text-muted);letter-spacing:.02em;white-space:nowrap}
.legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px}
.legend-row{display:flex;align-items:center;gap:8px}
.legend-row .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.legend-row .mk-icon{width:20px;height:20px;border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.legend-row .ln{flex:1;min-width:0;font-size:12px;color:#c8c8ce}
.legend-row .lv{font-size:12px;font-weight:600;color:#fff;flex-shrink:0}
.btn-ghost2{width:100%;margin-top:14px;height:38px;border:1px solid rgba(224,176,74,.35);border-radius:10px;background:transparent;color:var(--gold);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.btn-ghost2:hover{background:rgba(224,176,74,.08)}
.dtable-wrap{overflow-x:auto;margin-top:12px}
.dtable{width:100%;min-width:440px;border-collapse:collapse;font-size:12px}
.dtable th{text-align:left;padding:6px 6px 8px 0;font-size:9.5px;font-weight:600;letter-spacing:.03em;color:var(--text-dim);border-bottom:1px solid var(--border);white-space:nowrap}
.dtable td{padding:7px 6px 7px 0;color:#d6d6dc;border-bottom:1px solid var(--border-soft);white-space:nowrap;font-size:12px;font-weight:400}
.dtable td.mut{color:#7a8296;font-size:10.5px;line-height:1.35}
.dtable th.num,.dtable td.num{text-align:right;padding-right:14px}
.dtable-center th,.dtable-center td{text-align:center}
.row-2 .dtable{width:100%;min-width:0}
.row-2 .dtable td:first-child,.row-2 .dtable th:first-child{white-space:normal;word-break:break-word}
.dtable-center th:first-child,.dtable-center td:first-child{text-align:left}
.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:32px 24px 24px;border:1px dashed var(--border-2);border-radius:12px;margin-top:8px}
.empty-state p{font-size:13.5px;font-weight:600;color:#e6e6ea;margin:2px 0 0}
.empty-state span{font-size:12px;color:var(--text-dim);max-width:440px;line-height:1.5}
.mk{display:flex;align-items:center;gap:8px}
.mk .sq{width:20px;height:20px;border-radius:5px;flex-shrink:0}
.alerts{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.alert-card{display:flex;align-items:center;gap:12px;background:var(--bg-inset);border:1px solid var(--border-2);border-radius:11px;padding:11px 14px}
.alert-card .t{font-size:13.5px;font-weight:600;color:#f0f0f2}
.alert-card .d{font-size:11.5px;color:var(--text-dim);margin-top:2px}
.bars{display:flex;gap:14px;margin-top:14px;height:150px}
.bars .yax{display:flex;flex-direction:column;justify-content:space-between;font-size:11px;color:var(--text-dim);padding-bottom:24px;text-align:right}
.bars .plot{flex:1;display:flex;align-items:flex-end;justify-content:space-around;gap:12px;border-left:1px solid var(--border-2);border-bottom:1px solid var(--border-2);padding:0 6px}
.bar-col{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;height:100%;justify-content:flex-end}
.bar-col .bar{width:60%;max-width:34px;border-radius:5px 5px 0 0;background:var(--grad-gold)}
.bar-col .m{font-size:11px;color:var(--text-muted)}
.resumo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.resumo-card{background:var(--bg-inset);border:1px solid var(--border-2);border-radius:12px;padding:13px;min-width:0}
.resumo-icon{width:32px;height:32px;border-radius:9px;background:rgba(224,176,74,.10);border:1px solid rgba(224,176,74,.22);display:flex;align-items:center;justify-content:center;color:var(--gold);flex-shrink:0}
.resumo-label{font-size:9.5px;font-weight:600;letter-spacing:.02em;color:var(--text-muted);line-height:1.3}
.resumo-val{font-size:20px;font-weight:700;color:#fff;margin-top:12px}
.dfoot{text-align:center;color:#5a627a;font-size:12px;margin-top:8px}

@media(max-width:1180px){
  .kpi-row{grid-template-columns:repeat(3,1fr)}
  .row-3{grid-template-columns:1fr}
  .row-2{grid-template-columns:1fr}
  .dcard-wide{grid-column:span 1}
}
@media(max-width:820px){
  .sidebar{display:none}
  .kpi-row{grid-template-columns:1fr 1fr}
  .login-left{display:none}
  .login-slogan{display:none}
  .login-body{justify-content:center;padding:24px}
  .dash-head{flex-direction:column;align-items:flex-start}
  .head-right{align-items:flex-start}
}
/* Telas largas porem baixas (notebooks 13"-14", ~700-800px de altura real) */
@media(max-height:760px){
  .login-brand img{width:clamp(70px,8vw,110px)}
  .login-brand .nm{font-size:clamp(24px,3.2vw,36px)}
  .login-card{padding:22px 28px}
  .card-logo img{width:56px}
}

/* ===================== CRUD (cadastros) ===================== */
.crud-head{width:100%;max-width:1400px;margin:0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:18px 32px 4px}
.crud-head h1{font-size:26px;font-weight:600;color:#fff}
.crud-head p{font-size:13px;color:var(--text-dim);margin-top:3px}
.crud{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:14px 32px 20px;display:flex;flex-direction:column;gap:20px}
.section-label{color:var(--gold);font-size:12px;font-weight:600;letter-spacing:.05em;margin:20px 0 12px;text-transform:uppercase}
.section-label:first-of-type{margin-top:4px}
.frm-row{display:grid;gap:14px}
.frm-row.cols-2{grid-template-columns:2fr 1fr}
.frm-row.cols-3{grid-template-columns:repeat(3,1fr)}
.frm-field label{display:block;font-size:12.5px;color:#c8c8ce;margin-bottom:7px}
.frm-field input,.frm-field select,.frm-field textarea{width:100%;height:44px;background:var(--bg-inset);border:1px solid var(--border-2);border-radius:9px;padding:0 14px;color:var(--text);font-size:14px;outline:none}
.frm-field select,.frm-field select option{font-size:13px}
.frm-field textarea{height:auto;min-height:80px;padding:10px 14px;resize:vertical}
.frm-field input:focus,.frm-field select:focus,.frm-field textarea:focus{border-color:var(--gold)}
.frm-actions{display:flex;justify-content:flex-end;gap:14px;margin-top:24px}
.btn-save{display:inline-flex;align-items:center;gap:9px;height:42px;padding:0 22px;border:none;border-radius:9px;cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--gold-ink);background:var(--grad-gold)}
.btn-save:hover{filter:brightness(1.05)}
.btn-cancel{display:inline-flex;align-items:center;height:42px;padding:0 22px;border:1px solid var(--border-2);border-radius:9px;color:var(--text-muted);font-size:13.5px;font-weight:500;background:transparent}
.btn-cancel:hover{color:var(--text)}
.btn-back{display:inline-flex;align-items:center;justify-content:center;height:42px;padding:0 20px;border:1px solid var(--border-2);border-radius:9px;color:var(--gold);font-size:13.5px;font-weight:600;background:transparent;white-space:nowrap;flex-shrink:0}
.btn-back:hover{color:var(--gold-light);background:rgba(224,176,74,.08)}
.crud-list-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px}
.tabs-nav{display:flex;gap:6px;margin-bottom:16px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.tab-btn{font-family:inherit;font-size:13.5px;font-weight:600;color:var(--text-muted);background:none;border:none;border-bottom:2px solid transparent;padding:10px 16px;cursor:pointer;margin-bottom:-1px}
.tab-btn:hover{color:var(--text)}
.tab-btn.active{color:var(--gold);border-bottom-color:var(--gold)}
.search-box{display:flex;align-items:center;gap:10px;margin-top:14px;height:42px;background:var(--bg-inset);border:1px solid var(--border-2);border-radius:9px;padding:0 14px;max-width:320px}
.search-box input{flex:1;background:none;border:none;outline:none;color:var(--text);font-size:13.5px;font-family:inherit;height:100%}
.combo-wrap{position:relative}
.combo-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;background:var(--bg-card);border:1px solid var(--border-2);border-radius:9px;max-height:260px;overflow-y:auto;box-shadow:0 12px 30px rgba(0,0,0,.45)}
.combo-option{padding:9px 14px;font-size:13.5px;color:var(--text);cursor:pointer}
.combo-option:hover,.combo-option.active{background:rgba(224,176,74,.12);color:var(--gold)}
.combo-empty{padding:9px 14px;font-size:13px;color:var(--text-dim)}
.badge-on{display:inline-block;padding:3px 12px;border-radius:20px;font-size:11.5px;font-weight:600;color:var(--success);background:rgba(94,207,143,.12)}
.badge-off{display:inline-block;padding:3px 12px;border-radius:20px;font-size:11.5px;font-weight:600;color:var(--text-dim);background:rgba(122,130,150,.14)}
.row-actions{display:inline-flex;gap:12px;justify-content:flex-end}
.row-actions button{background:none;border:none;cursor:pointer;padding:0;display:flex}
.pager{display:flex;align-items:center;justify-content:space-between;margin-top:16px;flex-wrap:wrap;gap:10px}
.pager .info{color:var(--text-dim);font-size:12px}
.pager .links{display:flex;gap:6px;align-items:center}
.pager .links a,.pager .links span{min-width:28px;height:28px;padding:0 6px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;font-size:12.5px;color:var(--text-muted);background:var(--bg-inset)}
.pager .links a:hover{color:var(--gold)}
.pager .links .active{font-weight:600;color:var(--gold-ink);background:var(--grad-gold)}
.empty-row{text-align:center;color:var(--text-dim);padding:24px 0!important}
.btn-mini{height:36px;padding:0 14px;border:none;border-radius:8px;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;color:var(--gold-ink);background:var(--grad-gold);flex-shrink:0}
.btn-mini:hover{filter:brightness(1.05)}
