:root{--red:#E8343A;--red2:#c9262c;--dark:#333;--brown:#6F4E37;--brown2:#A47551;--cream:#F6EFE9;--line:#e6e0db;--ok:#1f8a4c;--warn:#d98a00;--bg:#faf8f6}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--dark);background:var(--bg);font-size:16px;-webkit-text-size-adjust:100%}
a{color:var(--brown);text-decoration:none}
h1{font-size:1.45rem;margin:.4rem 0 .6rem}
h2.group{font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;color:var(--brown);margin:1.4rem 0 .6rem}
h2.section{font-size:1.05rem;color:var(--brown);border-bottom:2px solid var(--cream);padding-bottom:.3rem;margin:1.4rem 0 .6rem}
h3{margin:.2rem 0 .7rem;font-size:1.05rem}
.wrap{max-width:900px;margin:0 auto;padding:12px 14px 80px}
.muted{color:#7a716b}.small{font-size:.82rem}.red{color:var(--red)}
.top{position:sticky;top:0;z-index:20;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:3px solid var(--red)}
.brand{display:flex;align-items:center;gap:10px;color:var(--dark);font-weight:600;font-size:.85rem}
.brand img{height:34px}.brand span{border-left:2px solid var(--line);padding-left:10px;color:var(--brown)}
.me{position:relative}.me img,.ini{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid var(--red);display:inline-flex;align-items:center;justify-content:center;background:var(--brown);color:#fff;font-weight:700}
.ini.big{width:72px;height:72px;font-size:1.8rem}
.dot{position:absolute;top:-4px;right:-4px;background:var(--red);color:#fff;border-radius:10px;font-size:.7rem;padding:1px 6px;border:2px solid #fff}
.tabs{display:flex;gap:4px;overflow-x:auto;background:var(--dark);padding:0 8px;scrollbar-width:none;position:sticky;top:57px;z-index:19}
.tabs a{color:#ddd;padding:11px 12px;white-space:nowrap;font-size:.9rem;border-bottom:3px solid transparent}
.tabs a.on{color:#fff;border-color:var(--red);font-weight:600}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:10px;padding:10px 16px;font-size:.95rem;font-weight:600;cursor:pointer;background:#eee;color:var(--dark)}
.btn.primary{background:var(--red);color:#fff}.btn.primary:active{background:var(--red2)}
.btn.ghost{background:#fff;border:1.5px solid var(--line);color:var(--brown)}
.btn.small{padding:6px 10px;font-size:.82rem}.btn.big{width:100%;padding:14px;font-size:1.05rem;margin-top:8px}
.btn.danger{color:var(--red)}.btn[disabled]{opacity:.45}
.card{background:#fff;border-radius:14px;padding:14px;margin:10px 0;box-shadow:0 1px 3px rgba(60,40,30,.08)}
.card.warn{border-left:5px solid var(--warn)}
.flash{padding:10px 14px;border-radius:10px;margin:8px 0;background:#e9f6ee;color:#155d33}
.flash.erro{background:#fde8e9;color:#a01d22}.flash.warn{background:#fff4dc;color:#7a5200}
.flash ul{margin:.4rem 0 0 1rem;padding:0}
.stack{display:flex;flex-direction:column;gap:10px}
label.fld,div.fld{display:flex;flex-direction:column;gap:5px;margin:10px 0}
label.fld>span,div.fld>span{font-weight:600;font-size:.92rem}
.fld.inline{flex-direction:row;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--cream);padding-bottom:8px}
.fld.inline>span{flex:1}
input,select,textarea{font:inherit;padding:11px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;width:100%;color:var(--dark)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brown2);box-shadow:0 0 0 3px rgba(164,117,81,.18)}
input[type=checkbox],input[type=radio]{width:auto}
.req{color:var(--red);font-style:normal}
.help{color:#7a716b;font-size:.8rem;margin:0}
.check{display:flex;gap:8px;align-items:flex-start;font-size:.92rem;margin:4px 0}
.seg{display:inline-flex;border:1.5px solid var(--line);border-radius:10px;overflow:hidden;flex-shrink:0}
.seg label{margin:0}.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;padding:9px 14px;font-weight:700;font-size:.88rem;cursor:pointer;background:#fff;min-width:46px;text-align:center}
.seg label+label span{border-left:1.5px solid var(--line)}
.seg input:checked+span{background:var(--brown);color:#fff}
.cnc .vC input:checked+span{background:var(--ok)}.cnc .vNC input:checked+span{background:var(--red)}.cnc .vNA input:checked+span{background:#888}
/* login */
.login-bg{background:linear-gradient(160deg,#fff 0%,#fff 55%,var(--cream) 55%,#efe2d6 100%);min-height:100vh}
.login-card{max-width:420px;margin:6vh auto 0;background:#fff;border-radius:20px;padding:26px 22px;box-shadow:0 10px 30px rgba(60,40,30,.12);text-align:center;border-top:6px solid var(--red)}
.login-logo{width:180px;margin:4px auto 6px;display:block}
.login-card h1{font-size:1.05rem;color:var(--brown);font-weight:600}
.login-card form{text-align:left}
.who{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:10px 0 6px}
.avatar-pick{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;font-weight:600;color:var(--dark);font-size:.88rem}
.avatar-pick img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:3px solid var(--line);transition:.15s}
.avatar-pick.on img,.avatar-pick.on .ini{border-color:var(--red);transform:scale(1.07)}
/* home */
.hello{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.rqcard{display:block;background:#fff;border-radius:14px;padding:12px 14px;box-shadow:0 1px 3px rgba(60,40,30,.08);border-left:6px solid #bbb;color:var(--dark)}
.rqcard .code{font-size:.78rem;font-weight:700;color:var(--brown)}.rqcard .title{font-weight:600;margin:2px 0 8px;line-height:1.25}
.rqcard .meta{display:flex;justify-content:space-between;align-items:center;gap:6px;flex-wrap:wrap}
.st-feito{border-left-color:var(--ok)}.st-pendente{border-left-color:var(--warn)}.st-atrasado{border-left-color:var(--red)}.st-sob_demanda{border-left-color:var(--brown2)}
.badge{display:inline-block;padding:3px 9px;border-radius:20px;font-size:.76rem;font-weight:700;background:#eee;color:#555}
.badge.ok{background:#e1f4e8;color:var(--ok)}.badge.pend{background:#fff1d1;color:#9a6200}.badge.late{background:#fde2e3;color:#b3141a}
.list{display:flex;flex-direction:column;gap:6px}
.row{display:flex;flex-direction:column;background:#fff;border-radius:12px;padding:10px 14px;box-shadow:0 1px 2px rgba(60,40,30,.07);color:var(--dark)}
.row.on{outline:2px solid var(--red)}
.prow{flex-direction:row;justify-content:space-between;align-items:center;gap:10px;border-left:5px solid transparent}
.pmain{flex:1;min-width:0}.pside{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.inactive{opacity:.55}
.avs{display:flex;gap:4px;margin-top:5px}
.av{width:26px;height:26px;border-radius:50%;background:var(--brown);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;overflow:hidden;vertical-align:middle}
.av img{width:100%;height:100%;object-fit:cover}.av.big{width:38px;height:38px;margin-right:8px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.kpi{background:#fff;border-radius:12px;padding:10px;text-align:center;box-shadow:0 1px 3px rgba(60,40,30,.08);border-top:4px solid var(--brown2)}
.kpi b{display:block;font-size:1.5rem}.kpi span{font-size:.75rem;color:#7a716b}
.kpi.late{border-color:var(--red)}.kpi.late b{color:var(--red)}.kpi.pend{border-color:var(--warn)}.kpi.ok{border-color:var(--ok)}
.titlebar{display:flex;justify-content:space-between;align-items:center;gap:10px}
/* form */
.formhead .code{color:var(--red);font-weight:700;font-size:.85rem}
.formhead h1{margin-top:.2rem}
.rqform{background:#fff;border-radius:14px;padding:6px 14px 16px;box-shadow:0 1px 3px rgba(60,40,30,.08)}
fieldset.tbl{border:1.5px solid var(--line);border-radius:12px;padding:8px 10px 12px;margin:14px 0}
fieldset.tbl legend{font-weight:700;color:var(--brown);padding:0 6px}
.trow{background:var(--cream);border-radius:10px;padding:6px 10px;margin:8px 0}
.trow-h{display:flex;justify-content:space-between;align-items:center;font-size:.82rem;color:var(--brown)}
.trow .x{border:0;background:none;color:var(--red);font-size:1rem;cursor:pointer}
.trow label.fld{margin:6px 0}
.sigpad{position:relative;border:1.5px dashed var(--brown2);border-radius:12px;background:#fffdfb;height:150px;touch-action:none}
.sigpad canvas{width:100%;height:100%;display:block;border-radius:12px}
.sigpad .clear{position:absolute;top:6px;right:6px;border:0;background:#fff;color:var(--brown);font-size:.78rem;border-radius:6px;padding:4px 8px;box-shadow:0 1px 2px rgba(0,0,0,.1)}
.signbox{margin-top:18px;border-top:3px solid var(--red);padding-top:6px}
.preview{max-width:180px;border-radius:10px;margin-top:6px}
/* record */
.actions{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.card.meta{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.card.meta span,.kv>span{display:block;font-size:.76rem;color:#7a716b}.card.meta .full{grid-column:1/-1}
.kv{padding:8px 0;border-bottom:1px solid var(--cream)}
.pill{padding:2px 9px;border-radius:12px;font-size:.82rem;font-weight:700}.pC{background:#e1f4e8;color:var(--ok)}.pNC{background:#fde2e3;color:#b3141a}.pNA{background:#eee;color:#666}
.scroll{overflow-x:auto}
table.grid{border-collapse:collapse;width:100%;font-size:.84rem;background:#fff}
table.grid th{background:var(--brown);color:#fff;text-align:left;padding:7px;font-weight:600;white-space:nowrap}
table.grid td{border-bottom:1px solid var(--line);padding:7px;vertical-align:top}
.docimg{max-width:100%;max-height:320px;border-radius:10px}.sigimg{max-width:260px;border-bottom:1px solid #999}
.hash{font-family:ui-monospace,monospace;font-size:.7rem;word-break:break-all;color:#666}
.filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:end}.filters label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;font-weight:600}.filters .wide{grid-column:1/-1}
.bar{height:6px;background:#eee;border-radius:4px;margin-top:3px;overflow:hidden}.bar i{display:block;height:100%;background:var(--ok)}
.res{font-weight:700;padding:2px 8px;border-radius:10px;font-size:.78rem;white-space:nowrap}.res-positivo{background:#e1f4e8;color:var(--ok)}.res-mediano{background:#fff1d1;color:#9a6200}.res-negativo{background:#fde2e3;color:#b3141a}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.perms{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:6px 10px}
.perm-tools{display:flex;gap:6px}
.photo-row{display:flex;gap:12px;align-items:center}.avatar-lg{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid var(--red)}
.profile-head{display:flex;gap:14px;align-items:center}
.msgrow{flex-direction:row;align-items:center;gap:6px;flex-wrap:wrap}.msgrow input[name=text]{flex:1;min-width:220px}
ul.plain{list-style:none;padding:0;margin:.4rem 0}ul.plain li{padding:4px 0}
/* editor */
.fe{border:1.5px solid var(--line);border-radius:12px;padding:10px;margin:8px 0;background:#fff}
.fe.sec{background:var(--cream)}
.fe-top{display:grid;grid-template-columns:1fr 170px;gap:6px}
.fe-opts{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:6px;font-size:.85rem}
.fe-opts .mv{margin-left:auto;display:flex;gap:4px}
.fe-opts button{border:1px solid var(--line);background:#fff;border-radius:8px;padding:4px 9px;cursor:pointer}
.fe-cols{margin:8px 0 0 12px;border-left:3px solid var(--brown2);padding-left:8px}
.fe input,.fe select{padding:8px 10px;font-size:.9rem}
/* toast */
.toast{position:fixed;left:12px;right:12px;margin:0 auto;bottom:22px;transform:translateY(20px);opacity:0;background:var(--dark);color:#fff;border-radius:14px;padding:12px 16px;display:flex;gap:12px;align-items:center;max-width:420px;box-shadow:0 10px 30px rgba(0,0,0,.25);border-left:5px solid var(--red);transition:.35s;z-index:100}
.toast.show{opacity:1;transform:translateY(0)}
.toast .cup{font-size:1.6rem}.toast p{margin:2px 0 0;font-size:.9rem;color:#f3e9e1}
@media (max-width:600px){.kpis{grid-template-columns:repeat(2,1fr)}.grid2,.filters{grid-template-columns:1fr}.fe-top{grid-template-columns:1fr}.brand span{display:none}}
.fld.inline{flex-wrap:wrap}.fld.inline .help{flex-basis:100%}
html,body{overflow-x:hidden}

.pick-hint{margin:6px 0 0;font-weight:600;color:var(--brown);text-align:center}
.who{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 8px;margin:12px 0 4px}
.avatar-pick{padding:6px 2px;border-radius:14px;transition:.15s}
.avatar-pick .ph{position:relative;display:inline-block}
.avatar-pick img,.avatar-pick .ini{width:78px;height:78px;border-radius:50%;object-fit:cover;border:3px solid var(--line);transition:.15s}
.avatar-pick .tick{position:absolute;right:-2px;bottom:2px;width:26px;height:26px;border-radius:50%;background:var(--red);color:#fff;font-style:normal;font-weight:800;display:none;align-items:center;justify-content:center;border:2px solid #fff;font-size:.85rem}
.avatar-pick .nm{font-size:.92rem}
.who.has-sel .avatar-pick:not(.on){opacity:.45}
.avatar-pick.on{background:#fdecec}
.avatar-pick.on img,.avatar-pick.on .ini{border-color:var(--red);box-shadow:0 0 0 4px rgba(232,52,58,.25);transform:scale(1.06)}
.avatar-pick.on .tick{display:flex}.avatar-pick.on .nm{color:var(--red);font-weight:800}
.pw-step{animation:fadein .25s ease}
@keyframes fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (max-width:360px){.avatar-pick img,.avatar-pick .ini{width:66px;height:66px}}
.sumgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px}
.sumcard{display:flex;gap:10px;align-items:center;background:#fff;border-radius:12px;padding:10px 12px;box-shadow:0 1px 2px rgba(60,40,30,.07);color:var(--dark)}
.loglist{display:flex;flex-direction:column;gap:5px}
.logrow{display:flex;gap:10px;background:#fff;border-radius:10px;padding:8px 12px;border-left:4px solid #bbb;box-shadow:0 1px 2px rgba(60,40,30,.06)}
.logrow .lt{min-width:82px;font-size:.78rem;display:flex;flex-direction:column;color:#555}
.logrow .lm{flex:1;min-width:0;font-size:.9rem;overflow-wrap:anywhere}
.g-acesso{border-left-color:#4a7bd0}.g-rq{border-left-color:var(--ok)}.g-correcao{border-left-color:var(--warn)}.g-cobranca{border-left-color:var(--brown2)}.g-usuarios,.g-modelos{border-left-color:#8a6fb8}
.logrow.fail{border-left-color:var(--red);background:#fff6f6}.brown{color:var(--brown)}
