/* Estilo baseado na referência "flowdash": topbar branca, menu lateral azul-marinho, cards com gráficos */
:root{
  --brand:#0b5cad; --brand-2:#2a78c8; --brand-soft:#e3eefa; --navy:#0a2a4d; --navy-2:#123b69;
  --bg:#f4f6fb; --card:#fff; --text:#1f2447; --muted:#6b7490; --line:#e4e8f1;
  --ok:#16a34a; --bad:#dc2626; --link:#3b82f6;
}
*{box-sizing:border-box}
body{margin:0;font:14px/1.5 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
a{color:inherit;text-decoration:none}

.topbar{height:64px;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:0 20px 0 22px;position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:10px;width:238px;font-size:22px;font-weight:500;color:var(--navy)}
.brand img{width:36px;height:36px;object-fit:contain}.brand b{font-weight:700}
.search-form{flex:1}
.search{width:100%;padding:10px 14px 10px 14px;border:1px solid var(--line);border-radius:6px;background:var(--card);font:inherit}
.userbox{display:flex;align-items:center;gap:12px;padding-left:18px;border-left:1px solid var(--line);height:64px}
.bell{opacity:.6}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:600}

.layout{display:flex;min-height:calc(100vh - 64px)}
.sidebar{width:260px;background:var(--navy);color:#c9d9f5;padding:18px 14px;flex-shrink:0}
.menu-label{font-size:11px;letter-spacing:.08em;color:#7f9ec9;text-transform:uppercase;margin:14px 10px 8px;font-weight:700}
.menu a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:6px;color:#e1ecff;margin-bottom:2px;font-weight:600}
.menu a i{font-style:normal;width:22px;text-align:center;opacity:.8}
.menu a:hover{background:var(--navy-2)}
.menu a.active{background:var(--navy-2);color:#fff;box-shadow:inset 3px 0 0 #5aa2ff}
.content{flex:1;min-width:0;padding:28px 32px}

.crumb{font-size:11px;font-weight:700;letter-spacing:.06em;color:var(--muted)}.crumb span{color:#b3bad0;margin:0 4px}
h1{margin:2px 0 4px;font-size:34px;font-weight:700;color:var(--navy);letter-spacing:-.5px}
.sub{color:var(--muted);margin:0 0 24px}
.pill{background:#eaf1ff;color:var(--link);padding:4px 10px;border-radius:4px;font-size:13px}

.grid3{display:grid;gap:30px;grid-template-columns:repeat(3,1fr);margin-top:22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:20px}
.kcard{padding:0}
.khead{display:flex;justify-content:space-between;padding:20px 24px 14px;border-bottom:1px solid var(--line)}
.ktitle{font-size:18px;color:var(--navy)}.kval{font-size:30px;font-weight:700;color:var(--navy);margin-top:2px}
.kside{text-align:right;display:flex;flex-direction:column;gap:8px;justify-content:space-between}
.kside a{color:var(--link)}.up{color:var(--ok);font-weight:700;font-size:12px}
.kbody{padding:16px 24px 18px}
.rows>div{display:grid;grid-template-columns:1fr auto 34px;gap:10px;font-size:13px;margin-bottom:6px}
.rows b{font-weight:700}.rows span{color:var(--muted)}.rows em{font-style:normal;color:var(--muted);text-align:right}
.ctitle{text-align:center;font:12px Georgia,serif;letter-spacing:.04em;color:#6b7280;margin:14px 0 4px}
.chart{width:100%;height:auto;display:block}
.area-a{fill:#dbe8f7}.line-a{fill:none;stroke:var(--brand);stroke-width:2}
.bar-s{fill:var(--brand)}
.area-b{fill:#7dc65d}.area-c{fill:#2f80ed;fill-opacity:.9}
.xl{display:flex;justify-content:space-between;font:11px Georgia,serif;color:#6b7280;padding:2px 4px 0}
.legend{margin-top:10px;font:12px Georgia,serif;color:#6b7280;display:flex;gap:14px;align-items:center}
.sq{display:inline-block;width:12px;height:12px;background:var(--brand);margin-right:4px;vertical-align:-1px}.sq.b{background:#7dc65d}.sq.c{background:#2f80ed}
.chead{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.chead h2{margin:0}.chead a{color:var(--link);font-size:13px}.chead.nopad{padding:0 0 12px;margin-bottom:14px}.chead.sp{margin-top:22px}
.toprow{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px dashed var(--line)}

@media(max-width:1100px){.grid3{grid-template-columns:1fr}}
@media(max-width:800px){.sidebar{display:none}.brand{width:auto}.brand span{display:none}.userbox strong{display:none}.content{padding:20px 16px}}

/* login */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;background:linear-gradient(135deg,#2a86d6 0%,#0b5cad 50%,#0a2a4d 100%)}
.login-card{width:100%;max-width:420px;background:var(--card);border-radius:18px;padding:36px 32px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.login-card img{display:block;width:240px;max-width:80%;height:auto;margin:0 auto 18px}
.login-card h1{text-align:center;font-size:22px;color:var(--brand)}
.login-card .sub{text-align:center;margin-bottom:24px}
label{display:block;font-weight:500;margin:14px 0 6px}
input{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;font:inherit}
input:focus{outline:2px solid var(--brand-soft);border-color:var(--brand)}
button{width:100%;margin-top:22px;padding:12px;border:0;border-radius:10px;background:var(--brand);color:#fff;font:inherit;font-weight:600;cursor:pointer}
button:hover{background:var(--brand-2)}
.alert{background:#fef2f2;color:var(--bad);border:1px solid #fecaca;border-radius:10px;padding:10px 14px;margin-bottom:6px}

/* --- módulos --- */
.logout{color:var(--muted);font-size:13px}.logout:hover{color:var(--brand)}
.notice{background:var(--brand-soft);color:var(--brand);border-radius:10px;padding:10px 14px;margin-bottom:16px}
.head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.btn{display:inline-block;width:auto;margin:0;padding:10px 18px;border-radius:10px;background:var(--brand);color:#fff;font-weight:600;border:0;cursor:pointer;font:inherit;font-weight:600}
.btn:hover{background:var(--brand-2)}.btn.sec{background:var(--card);color:var(--brand);border:1px solid var(--line)}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.filters input[name=q]{width:320px;max-width:100%}.filters select{width:auto;padding:10px;border:1px solid var(--line);border-radius:10px;font:inherit;background:var(--card)}
.chk{display:flex;align-items:center;gap:6px;margin:0;font-weight:400}.chk input{width:auto}
.card.flush{padding:0;overflow:hidden}.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-weight:500;color:var(--muted);background:var(--bg);padding:11px 16px;white-space:nowrap}
td{padding:12px 16px;border-top:1px solid var(--line)}
tbody tr[onclick]{cursor:pointer}tbody tr[onclick]:hover{background:#f8fafc}
tr.off td{opacity:.55}tr.sub td{font-size:13px;color:var(--muted);background:#fafbfc}
.r{text-align:right}.muted{color:var(--muted)}.empty{text-align:center;color:var(--muted);padding:30px}
.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:600;background:var(--line);color:var(--muted)}
.s-emaberto{background:#e0f2fe;color:#0369a1}.s-aprovado{background:#dcfce7;color:#15803d}
.s-reprovado{background:#fee2e2;color:#b91c1c}.s-cancelado{background:#e5e7eb;color:#4b5563}.s-finalizado{background:#ede9fe;color:#6d28d9}
.two{display:grid;gap:20px;grid-template-columns:2fr 1fr;margin:20px 0}
@media(max-width:1000px){.two{grid-template-columns:1fr}}
h2{font-size:16px;margin:0 0 14px}.pad{padding:20px 20px 0}
.bar-row{margin-bottom:14px}.bar-top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}
.bar{height:8px;background:var(--bg);border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:var(--brand);border-radius:99px}
.fgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px 16px}
.f{min-width:0}.f.c2{grid-column:span 2}.f.c3{grid-column:span 3}.f.c4{grid-column:span 4}
textarea{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;font:inherit}
@media(max-width:900px){.fgrid{grid-template-columns:1fr 1fr}.f.c3,.f.c4{grid-column:span 2}}
.dl{display:grid;grid-template-columns:140px 1fr;gap:8px 12px;margin:0}.dl dt{color:var(--muted)}.dl dd{margin:0}
form.inline{display:flex;gap:8px;margin-top:14px}form.inline select{flex:1;padding:10px;border:1px solid var(--line);border-radius:10px;font:inherit}
.tot{display:grid;grid-template-columns:1fr auto;gap:6px 24px;margin:0;padding:16px 20px;border-top:1px solid var(--line);justify-content:end;text-align:right}
.tot dd{margin:0}.tot .big{font-size:18px;font-weight:700;color:var(--brand)}

.actions{display:flex;gap:10px;flex-wrap:wrap}
td input,td select{padding:8px 10px;border-radius:8px}td input.n{text-align:right;min-width:90px}td input.u{width:70px}td input.q{width:80px}
.x{width:auto;margin:0;padding:6px 10px;background:transparent;color:var(--bad);border:1px solid var(--line)}.x:hover{background:#fef2f2}
select{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;background:var(--card)}
