:root{--wine:#67172e;--wine-dark:#3d0c1c;--wine-focus:#a63252;--ink:#321820;--muted:#6d535d;--paper:#f8f4f3;--line:#e8d8dc;--tint:#f8eaf0}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px system-ui,sans-serif;display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}aside{background:var(--wine-dark);color:#fff1f5;padding:30px 18px;display:flex;flex-direction:column;gap:20px}.brand{display:grid;justify-items:start;gap:8px;margin-bottom:20px}.brand img{display:block;width:164px;max-width:100%;height:auto}aside small{display:block;font-size:9px;letter-spacing:1.5px;color:#e9c3ce}.asidefoot{margin-top:auto;font-size:11px;color:#e9c3ce}nav{display:grid;gap:5px}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:white;color:var(--ink);border-radius:9px;padding:9px 13px;font-weight:650}button:hover{filter:brightness(.96)}:focus-visible{outline:3px solid var(--wine-focus);outline-offset:2px}nav button{background:transparent;border:0;color:#f6dce4;text-align:left;white-space:nowrap}nav .selected{background:var(--wine);color:#fff}header{background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 30px;color:var(--muted);font-size:13px}header b{margin:0 8px}#mode{background:var(--tint);color:var(--wine);padding:5px 10px;border-radius:20px;text-align:center}.shell{max-width:1450px;margin:auto;padding:28px 30px 45px}.hero{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:23px}.eyebrow{text-transform:uppercase;font-weight:750;letter-spacing:1.7px;font-size:11px;color:var(--wine)}h1{font-size:clamp(29px,4vw,49px);line-height:1.05;letter-spacing:-.055em;margin:8px 0 10px}h2{font-size:19px;margin:0 0 6px;letter-spacing:-.02em}p{color:var(--muted);line-height:1.5;margin:0 0 12px}.actions,.filters{display:flex;align-items:end;gap:9px;flex-wrap:wrap}.primary{background:var(--wine);color:white;border-color:var(--wine)}.filters{margin-bottom:18px}.filters label,form label{display:grid;gap:5px;font-size:12px;font-weight:700}input,select{border:1px solid var(--line);background:#fff;color:var(--ink);padding:9px 11px;border-radius:8px;min-width:0}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:17px}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;min-width:0}.card:first-child{background:var(--tint)}.card b{font-size:29px;display:block;margin:5px 0}.card span,.card small,.note{color:var(--muted);font-size:12px}.panel{margin-bottom:15px}.split{display:grid;grid-template-columns:1.3fr 1fr;gap:15px}.scroll{overflow:auto;max-height:65vh}table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}th,td{padding:9px 11px;white-space:nowrap;text-align:left;border-bottom:1px solid #f0e6e9}thead th{position:sticky;top:0;background:#f5e8ec;z-index:1}.matrix th:first-child{position:sticky;left:0;background:#f5e8ec;z-index:2}.matrix td,.matrix thead th:not(:first-child){text-align:center}.matrix td button{border:0;width:100%;padding:5px;background:transparent;font-size:12px}.matrix td{padding:3px 5px}.matrix .twelve{border-left:2px solid #ac6179}.track{height:8px;background:#f1e3e8;border-radius:12px;min-width:45px}.track b{height:100%;display:block;background:#a63252;border-radius:12px}.tag{display:inline-block;background:var(--tint);border-radius:20px;padding:4px 8px}.danger{color:#9a2741}#notice:not(:empty){background:var(--tint);padding:11px 15px;border-radius:9px;margin-bottom:14px;white-space:pre-wrap}dialog{border:1px solid var(--line);border-radius:17px;padding:20px;width:min(520px,94vw);max-height:88vh;color:var(--ink)}dialog::backdrop{background:#3d0c1caa}form{display:grid;gap:12px}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:13px}.empty{text-align:center;padding:23px;color:var(--muted)}.chart{width:100%;height:auto;display:block}.chart text{font:11px system-ui;fill:var(--muted)}@media(max-width:1000px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media(max-width:720px){body{display:block}aside{padding:12px;gap:8px}.brand{margin:0}.brand img{width:124px}aside small,.asidefoot{display:none}nav{display:flex;overflow:auto}nav button{font-size:12px}header{padding:10px 13px}.shell{padding:18px 12px}.hero{display:block}.card,.panel{padding:12px}.card b{font-size:24px}}

header .actions{flex-wrap:wrap;justify-content:flex-end;margin:0}header button svg{display:block}header [hidden]{display:none}

.login {
  display:grid;
  min-height:100svh;
  grid-template-columns:minmax(0,1fr);
  place-items:center;
  padding:clamp(16px,5vw,64px);
  background:radial-gradient(ellipse at 16% 0%,#faebee,#f8f4f3 52%,#f0e2e6);
  color:var(--ink);
}
.login-shell {
  display:grid;
  grid-template-columns:1fr 1fr;
  width:min(100%,880px);
  overflow:hidden;
  border-radius:24px;
  background:#fff;
  box-shadow:0 24px 68px #3d0c1c26,0 0 0 1px #67172e12;
}
.login-brand {
  display:grid;
  place-items:center;
  padding:clamp(32px,7vw,84px);
  background:
    radial-gradient(circle at 0 0,transparent 28%,#ffffff12 28.2%,transparent 28.6%),
    radial-gradient(circle at 100% 100%,transparent 30%,#ffffff16 30.2%,transparent 30.6%),
    linear-gradient(145deg,#882741,var(--wine) 48%,var(--wine-dark));
}
.login-brand img {display:block;width:min(100%,270px);height:auto}
.login-content {min-width:0;padding:clamp(28px,5vw,60px)}
.login-kicker {color:var(--wine);font-size:11px;font-weight:750;letter-spacing:.16em;text-transform:uppercase}
.login-content h1 {font-size:clamp(31px,4vw,46px);line-height:1.08;margin:0 0 10px}
.login-description {color:#6d535d;margin:0 0 28px;max-width:30ch}
.login form {gap:16px}
.login form label {gap:8px;font-size:13px}
.login input {
  width:100%;
  min-height:48px;
  border-color:#ddc8ce;
  color:var(--ink);
  font-size:16px;
}
.login form button {
  min-height:48px;
  border-color:var(--wine);
  background:var(--wine);
  color:#fff;
  border-radius:10px;
}
.login form button:hover {background:var(--wine-dark)}
.login form button:disabled {cursor:wait;opacity:.7}
.login :focus-visible {outline-color:var(--wine-focus)}
.login [role=alert] {margin:0;color:#941b3e;font-size:13px}
.login [role=alert]:empty {display:none}
@media(max-width:620px) {
  .login-shell {grid-template-columns:minmax(0,1fr);max-width:430px;border-radius:20px}
  .login-brand {padding:32px 24px}
  .login-brand img {width:min(100%,220px)}
}

aside nav a{display:block;text-decoration:none;color:inherit;padding:.65rem .8rem;border-radius:8px}
aside nav a:hover,aside nav a[aria-current=page]{background:#ffffff24}
aside nav a[hidden]{display:none}
#equipe-nav{margin-top:1rem;border-top:1px solid #ffffff30;padding-top:.65rem}
@media(max-width:760px){aside>.growth-label{display:block}#equipe-nav{flex-wrap:wrap}}

.brand,.app-brand,.login-brand-mark{width:max-content;max-width:100%}
.brand .brand-evolui,.app-brand .brand-evolui,.login-brand-mark .brand-evolui{
 display:block;justify-self:end;text-align:right;margin-top:2px;
 color:#f5d9e4;font-size:9px;font-weight:750;line-height:1;letter-spacing:.16em;
}
.brand{gap:2px}
.app-brand{text-decoration:none}
.login-brand-mark img{display:block;max-width:100%;height:auto}
.login-brand-mark{width:min(100%,270px)}
.login-brand .login-brand-mark img{width:100%}
@media(max-width:720px){.login-brand-mark{width:min(100%,220px)}}

.admin-menu,.admin-menu .menu-children{display:grid;gap:.35rem;min-width:0}
.admin-menu .menu-group{min-width:0}
.admin-menu a,.admin-menu button,.admin-menu summary{
 display:block;width:100%;min-height:40px;padding:.57rem .75rem;border:1px solid transparent;border-radius:9px;
 color:inherit;font:inherit;font-weight:750;text-align:left;text-decoration:none;white-space:normal;overflow-wrap:anywhere
}
.admin-menu summary{display:list-item;cursor:pointer}
.admin-menu button{background:transparent}
.admin-menu .menu-children{margin:.3rem 0 .35rem .55rem;padding-left:.5rem;border-left:1px solid currentColor}
.admin-menu :is(a,button,summary):hover{background:#ffffff20}
.admin-menu [aria-current=page],.admin-menu .menu-active,.admin-menu button.selected{
 background:#f6dce7;color:#3d0c1c;border-color:#ed9fbb
}
.admin-menu :is(a,button,summary):focus-visible{outline:2px solid #ed9fbb;outline-offset:2px}
@media(max-width:760px){aside>.admin-menu{display:grid}}

/* Recuperação de acesso */
.recovery-modal{width:min(460px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid #eadde1;border-radius:24px;padding:36px;color:var(--ink);background:#fff;box-shadow:0 24px 90px #20071240}
.recovery-modal::backdrop{background:#230a17a8;backdrop-filter:blur(7px)}
.recovery-modal[open]{animation:recovery-appear .18s ease-out}
.recovery-close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:28px;color:var(--muted);padding:4px 10px}
.recovery-icon{width:54px;height:54px;background:var(--tint);color:var(--wine);border-radius:17px;display:grid;place-items:center;font-size:30px;margin-bottom:23px}
.recovery-modal h2{font-size:32px;line-height:1.15;letter-spacing:-1px;margin:10px 0 16px}
.recovery-modal form{display:grid;gap:14px;margin-top:24px}
.recovery-modal input{width:100%;padding:14px;border-radius:11px;margin-top:4px}
.recovery-modal .recovery-hint{font-size:12px;line-height:1.6;margin:0}
.recovery-submit{display:flex;align-items:center;justify-content:space-between;width:100%;padding:15px 18px;background:var(--wine);color:#fff;border-color:var(--wine);border-radius:12px}
.recovery-submit:disabled{opacity:.65;cursor:wait}
.recovery-status:empty{display:none}.recovery-status{font-size:13px;padding:12px;border-radius:10px;background:var(--paper);margin:0;overflow-wrap:anywhere}.recovery-status[data-state=error]{color:#9b223c;background:#fff0f2}.recovery-status[data-state=success]{color:#21603f;background:#edf8f1}
.recovery-modal .recovery-footer{border-top:1px solid var(--line);padding-top:18px;margin:22px 0 0;font-size:12px;text-align:center}
@keyframes recovery-appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:480px){.recovery-modal{padding:28px 23px}.recovery-modal h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){.recovery-modal[open]{animation:none}}
