:root{font-family:Inter,system-ui,Arial,sans-serif;color:#1e2c47;background:#f5f7fb}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{background:#111d39;color:#dbe5ff;width:240px;flex-shrink:0;padding:24px 13px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.logo{display:flex;gap:12px;align-items:center;padding:0 10px 32px;font-size:21px;font-weight:800}.logo span,.loginbox h1 span{color:#96a5ff}.logo small{display:block;font-size:11px;color:#889aba;font-weight:400}.logomark,.brandlogo{background:#4e5fcb;color:white;border-radius:12px;width:40px;height:40px;display:grid;place-items:center;font-size:24px}.navlabel{font-size:10px;letter-spacing:2px;color:#8495b7;padding:0 12px 10px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{padding:12px;border-radius:10px;font-size:13px;font-weight:600;color:#b7c6e0;display:flex;gap:12px;align-items:center}.sidebar nav a b{font-size:20px;min-width:22px;text-align:center}.sidebar nav a:hover,.sidebar nav a.active{background:#31436b;color:white}.sidebottom{margin-top:auto;color:#94a5c1;font-size:12px;padding:12px}.dot{display:inline-block;background:#21be96;width:8px;height:8px;border-radius:50%}.main{min-width:0;flex:1}.top{height:80px;background:white;border-bottom:1px solid #e4e9f1;padding:0 30px;display:flex;align-items:center;justify-content:space-between}.top strong,.top small{display:block}.top small{color:#8b98ae;font-size:11px;margin-top:5px}.identity{display:flex;align-items:center;gap:10px}.identity strong{font-size:12px}.avatar{display:grid;place-items:center;border-radius:50%;width:35px;height:35px;background:#e4e8ff;color:#4658cb;font-weight:800}.logout{border:0;background:transparent;font-size:24px;cursor:pointer}.content{max-width:1500px;margin:auto;padding:30px}.heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.heading h1{font-size:25px;margin:0 0 6px}.heading p,.muted{font-size:13px;line-height:1.5;color:#8493a8;margin:0}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.metric,.panel{background:white;border:1px solid #e4e9f1;border-radius:14px;padding:23px;margin-bottom:20px}.metric small{font-size:12px;color:#8793a7}.metric strong{display:block;font-size:24px;margin:15px 0 8px}.metric span{font-size:11px;color:#96a3b6}.panel h2{margin:0 0 21px;font-size:16px}.btn{border:1px solid #dae0ec;background:#fff;color:#31425e;border-radius:9px;padding:12px 16px;cursor:pointer;font-weight:700;font-size:12px;white-space:nowrap;display:inline-block}.btn.primary{background:#4e5fcb;color:#fff;border-color:#4e5fcb}.btn.danger{background:#fff0f1;color:#b11e34;border-color:#f9ccd1}.btn.small{padding:8px 10px;font-size:11px}.btn.full{width:100%}.formrow,.formgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:15px}.formrow{grid-template-columns:repeat(2,minmax(0,1fr)) auto}label{display:block;color:#5d6c81;font-size:12px;font-weight:700;margin-bottom:7px}input,select{background:white;width:100%;border:1px solid #dbe1ec;border-radius:8px;padding:11px;color:#283951;font-size:13px;font-family:inherit;min-width:0}input:focus,select:focus{outline:2px solid #b7c0fa}.formbutton{display:flex;align-items:end}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}th{padding:13px 11px;color:#78869e;background:#f8f9fc;white-space:nowrap}td{padding:12px 11px;border-bottom:1px solid #e9edf4;vertical-align:middle}tr:last-child td{border-bottom:0}.pill{border-radius:15px;padding:5px 10px;font-size:10px;background:#e9eeff;color:#5363b1;font-weight:700;white-space:nowrap}.pill.ok,.pill.aprovado,.pill.fechado{background:#e0f7ea;color:#08744b}.pill.enviado{background:#fff2d9;color:#9d6c16}.pill.devolvido{background:#ffebdb;color:#a35b10}.pill.rejeitado{background:#ffe6ed;color:#b32442}.inline-note{display:block;font-size:10px;color:#8290a6;margin-top:4px;max-width:210px;overflow-wrap:anywhere}.inlineform,.reviewform{display:flex;align-items:center;gap:5px}.inlineform input{max-width:130px;padding:8px}.reviewform{flex-direction:column;align-items:stretch;min-width:245px}.reviewform input{padding:8px}.reviewform>div{display:flex;gap:4px}.bars{max-width:700px}.barrow{display:flex;align-items:center;gap:14px;margin:17px 0}.barrow label{width:70px;margin:0}.bartrack{background:#ecf0fa;border-radius:9px;height:15px;flex:1;overflow:hidden}.bartrack>div{background:#6475de;height:100%}.barrow strong{min-width:25px}.error,.success{padding:14px;margin-bottom:20px;border-radius:9px;font-size:13px}.error{background:#ffe8ea;color:#a51b32}.success{background:#e4faef;color:#097448}footer{padding:16px;text-align:center;color:#a0abc0;font-size:11px}.loginpage{display:grid;place-items:center;min-height:100vh;background:linear-gradient(135deg,#111d39,#263e8f)}.loginbox{background:white;border-radius:18px;padding:36px;width:min(420px,calc(100vw - 30px));box-shadow:0 20px 60px #0003}.loginbox p{font-size:13px;color:#8995aa;margin-bottom:25px}.loginbox label{margin-top:14px}.loginbox .btn{margin-top:20px}code{font-size:10px;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:1100px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar{width:205px}.formrow,.formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.shell{display:block}.sidebar{position:static;height:auto;min-height:0;width:100%;padding:12px}.logo{padding:0 5px 12px;font-size:18px}.navlabel,.sidebottom{display:none}.sidebar nav{display:flex;overflow:auto;padding-bottom:3px}.sidebar nav a{white-space:nowrap;font-size:11px;padding:9px}.sidebar nav a b{font-size:14px;min-width:13px}.top{height:auto;min-height:65px;padding:10px 15px}.identity .avatar{display:none}.identity strong{font-size:11px;max-width:95px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content{padding:15px}.heading h1{font-size:20px}.heading .btn{font-size:10px;padding:10px}.cards{gap:8px}.metric,.panel{padding:15px}.metric strong{font-size:18px}.formrow,.formgrid{grid-template-columns:1fr}.formbutton .btn,.formrow>.btn{width:100%}}
/* V0.3 - navegação compacta com rolagem correta e ícones sem caracteres especiais */
.sidebar{height:100dvh;min-height:0;overflow:hidden;padding:18px 12px;z-index:5}
.sidebar nav{display:flex;flex-direction:column;gap:4px;min-height:0;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#506185 transparent;padding-right:3px}
.sidebar .logo{flex-shrink:0;padding:4px 10px 22px;font-size:19px}
.sidebar .navlabel{flex-shrink:0}
.sidebar .sidebottom{flex-shrink:0;padding:12px 10px 3px;margin-top:8px;border-top:1px solid #34425c}
.sidebar nav a{flex-shrink:0;gap:12px;min-height:44px;font-size:13px;padding:11px 13px}
.nav-icon{width:19px;height:19px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:700px){.sidebar{height:auto;min-height:0;position:relative;overflow:visible;padding:10px 12px}.sidebar .logo{padding:3px 5px 10px}.sidebar nav{display:flex;flex-direction:row;overflow-x:auto;overflow-y:hidden;min-height:auto;scrollbar-width:thin}.sidebar nav a{white-space:nowrap;min-height:40px;font-size:12px;padding:9px 12px}.sidebar .sidebottom,.sidebar .navlabel{display:none}.nav-icon{width:17px;height:17px}}

/* V0.3.1: dimensões garantidas para os SVG do menu, mesmo com CSS legado. */
.sidebar { isolation: isolate; }
.sidebar nav a { display:flex; align-items:center; width:100%; max-width:100%; min-width:0; overflow:hidden; }
.sidebar nav a > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sidebar nav a svg.nav-icon { display:block !important; width:20px !important; height:20px !important; min-width:20px !important; max-width:20px !important; min-height:20px !important; max-height:20px !important; flex:0 0 20px !important; fill:none !important; stroke:currentColor !important; stroke-width:1.9 !important; stroke-linecap:round; stroke-linejoin:round; overflow:visible; }
.sidebar nav a svg.nav-icon use { fill:none; stroke:inherit; }
.sidebar .logo,.sidebar .navlabel,.sidebar .sidebottom { position:relative; z-index:1; }
.sidebar nav { position:relative; z-index:1; }
.main { position:relative; z-index:0; }
@media(max-width:700px){
 .sidebar nav a { width:auto; max-width:none; flex:0 0 auto; }
 .sidebar nav a svg.nav-icon {width:18px !important;height:18px !important;min-width:18px !important;max-width:18px !important;min-height:18px !important;max-height:18px !important;flex-basis:18px !important}
 .sidebar nav a > span { overflow:visible; }
}

/* V0.3.2 — identidade visual unificada SisMed Radio */
.sidebar .logomark, .loginbox .brandlogo {background:transparent;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:0;flex:0 0 46px;width:46px;height:46px;}
.radio-logo {display:block;width:100%;height:100%;object-fit:contain;max-width:100%;max-height:100%;}
.loginbox .brandlogo {width:70px;height:70px;margin:0 auto 14px;flex-basis:auto;}
.loginbox .radio-logo-login {width:100%;height:100%;}
.sidebar .logo {min-width:0;}
.sidebar .logo > div:last-child {min-width:0;}
@media(max-width:700px){.sidebar .logomark{width:40px;height:40px;flex-basis:40px;}}

/* V0.4 - relatórios e dashboard visual */
.charts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.charts-grid .panel{min-width:0;margin:0}.dashboard-cards{margin-bottom:14px}.insight-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}.insight-strip>div{border:1px solid #e2e9f5;border-radius:12px;padding:15px 18px;background:#eaf0ff}.insight-strip span{display:block;font-size:11px;color:#54658b}.insight-strip strong{font-size:20px;color:#213b80;display:block;margin-top:6px}.report-actions{display:flex;flex-wrap:wrap;gap:8px}.radio-bars{display:flex;flex-direction:column;gap:15px}.radio-bar-title{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:6px}.radio-bar-title span{max-width:75%;overflow-wrap:anywhere}.radio-bar-title b{font-size:11px;color:#62718e;white-space:nowrap}.radio-bar-track{height:11px;border-radius:999px;background:#eef2fb;overflow:hidden}.radio-bar-track>div{height:100%;border-radius:999px;background:linear-gradient(90deg,#5268d9,#8aabff);min-width:2px}.donut-layout{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.donut{width:155px;height:155px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.donut>div{width:110px;height:110px;background:white;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:800;font-size:25px;color:#24365b}.donut small{font-size:11px;color:#8994aa;font-weight:400}.donut-legend{flex:1;min-width:130px}.donut-legend-row{display:flex;align-items:center;gap:9px;margin:10px 0;font-size:12px}.donut-legend-row>span{width:11px;height:11px;border-radius:3px}.donut-legend-row b{margin-left:auto}.dashboard-footer{display:flex;gap:15px;flex-wrap:wrap;padding:12px 0}.dashboard-footer a{font-size:12px;font-weight:700;color:#4e5fcb}.report-filter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;align-items:end}.report-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:600px}.report-overview .metric{min-width:0}
@media(max-width:920px){.charts-grid{grid-template-columns:1fr}.report-filter{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.insight-strip{grid-template-columns:1fr}.report-filter{grid-template-columns:1fr}.report-overview{grid-template-columns:1fr}.donut-layout{justify-content:center}.heading{align-items:flex-start;flex-wrap:wrap}}

/* V0.4.1 - Manual e geração de usuários de teste */
.manual-area{max-width:1100px;line-height:1.7}.manual-area h2{margin:25px 0 8px;font-size:19px}.manual-area a{color:#405bd1;text-decoration:underline}.manual-area ol{padding-left:25px}.manual-area li{margin:8px 0}.demo-credentials{border:2px solid #d2a353}.demo-credentials code{white-space:nowrap}.demo-confirm{display:flex;align-items:flex-start;gap:8px;margin:16px 0}.demo-confirm input{width:18px;height:18px;margin:2px 0;flex-shrink:0}
