:root{--bg:#eef1f7;--ink:#262b40;--mute:#6b7390;--line:#dde2ee;--card:#fff;--pri:#6477d9;--pri2:#8a9bea;--ok:#e3f4ea;--okt:#2d7a4f;--err:#fbe7e9;--errt:#b23a48}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}
h1{font-size:1.6rem;margin:0 0 .2rem}h2{margin:0 0 .2rem}.sub{color:var(--mute);margin:0 0 1.4rem}
label{display:block;font-size:.85rem;color:var(--mute);margin-bottom:1rem}
input,select{display:block;width:100%;margin-top:.35rem;padding:.7rem .85rem;border:1px solid var(--line);border-radius:10px;background:#fbfcff;font:inherit;color:var(--ink)}
input:focus,select:focus,.btn:focus-visible,a:focus-visible{outline:3px solid #c9d1fa;border-color:var(--pri)}
.btn{display:inline-block;border:0;border-radius:10px;padding:.75rem 1.2rem;background:linear-gradient(135deg,var(--pri),var(--pri2));color:#fff;font:inherit;font-weight:600;cursor:pointer}
.btn:hover{filter:brightness(1.05)}.btn.sm{padding:.5rem .8rem}
.alert{padding:.7rem .9rem;border-radius:10px;margin-bottom:1rem;font-size:.9rem}.alert.err{background:var(--err);color:var(--errt)}.alert.ok{background:var(--ok);color:var(--okt)}
.logo{display:inline-block;width:28px;height:28px;border-radius:9px;background:linear-gradient(135deg,var(--pri),#a9b8f5);vertical-align:middle;margin-right:.6rem}.logo.big{width:52px;height:52px;border-radius:16px;margin:0 0 1.5rem}

/* login */
.auth{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(160deg,#dfe5fb,#f1eefb 60%,#e6f1f5)}
.hero{display:none}
.hero h1{font-size:2.4rem;line-height:1.15;max-width:14ch}.hero p{color:var(--mute);max-width:32ch}
.formside{display:flex;align-items:center;justify-content:center;padding:2rem}
.card{width:100%;max-width:400px;background:var(--card);padding:2.4rem;border-radius:20px;box-shadow:0 20px 50px -25px rgba(70,85,160,.35)}
.card .btn{width:100%;margin-top:.4rem}


/* app */
.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.side{background:var(--card);border-right:1px solid var(--line);padding:1.5rem 1rem;display:flex;flex-direction:column}
.brand{font-weight:700;font-size:1.1rem;margin:0 .5rem 2rem}
.side nav a{display:block;padding:.65rem .85rem;border-radius:10px;color:var(--mute);text-decoration:none;margin-bottom:.25rem}
.side nav a:hover{background:#f3f5fc}.side nav a.on{background:#e8ecfc;color:var(--pri);font-weight:600}
.who{margin-top:auto;padding:.8rem;border-top:1px solid var(--line);display:flex;flex-direction:column}.who small{color:var(--mute)}
.out{margin-top:.5rem;color:var(--errt);text-decoration:none;font-size:.9rem}
.main{padding:2.2rem;min-width:0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}
.stat{background:var(--card);border-radius:16px;padding:1.3rem;display:flex;flex-direction:column;gap:.3rem;box-shadow:0 10px 30px -22px rgba(70,85,160,.5)}
.stat small{color:var(--mute)}.stat b{font-size:1.9rem}
.panel{background:var(--card);border-radius:16px;padding:1.3rem;margin-bottom:1.2rem;box-shadow:0 10px 30px -22px rgba(70,85,160,.5)}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0 1rem;align-items:end}
.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{text-align:left;padding:.7rem .6rem;border-bottom:1px solid var(--line);white-space:nowrap}th{color:var(--mute);font-weight:600}
.pill{background:#e8ecfc;color:var(--pri);padding:.15rem .6rem;border-radius:99px;font-weight:600}.pill.dead{background:var(--err);color:var(--errt)}
.inline{display:flex;gap:.4rem}.inline input{width:80px;margin:0;padding:.45rem .6rem}
@media(max-width:800px){.app{grid-template-columns:1fr}.side{flex-direction:row;flex-wrap:wrap;align-items:center;gap:.5rem}.brand{margin:0}.who{margin:0 0 0 auto;border:0;padding:0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* consultas (simulação) */
.modtitle{margin:2rem 0 .2rem}
.mods{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}
.chip{margin:0;position:relative}.chip input{position:absolute;opacity:0;width:0;height:0;margin:0}
.chip span{display:inline-block;padding:.45rem .9rem;border-radius:99px;background:#eef1fb;color:var(--mute);cursor:pointer;font-size:.88rem}
.chip input:checked+span{background:var(--pri);color:#fff}.chip input:focus-visible+span{outline:3px solid #c9d1fa}
.qrow{display:flex;gap:.6rem}.qrow input{margin:0}
.alert.sim{background:#fff6dd;color:#8a6410}
@media(max-width:600px){.qrow{flex-direction:column}}
