:root{
 --bg:#FBFCFE;--card:#FFFFFF;--bd:#E7ECF2;--soft:#F1F5FA;
 --tx:#0E1622;--mut:#5B6879;
 --blue:#3B6EF6;--blue-press:#2F58C8;--cyan:#12C9E8;
 --grad:linear-gradient(135deg,#3B6EF6,#12C9E8);
 --tint:#EAF1FE;
 --ok:#16A34A;--ok-soft:#DCF3E3;
 --warn:#D97706;--warn-soft:#FCF3E3;
 --err:#DC2626;--err-soft:#FDECEC;
 --r-ctl:10px;--r-card:16px;--r-area:24px;--r-pill:999px;
 --sh-1:0 1px 2px rgba(14,22,34,.05);
 --sh-2:0 8px 30px rgba(14,22,34,.08);
 --sh-cta:0 6px 18px rgba(59,110,246,.28);
 --checker:repeating-conic-gradient(#F8F9FA 0% 25%,#FFFFFF 0% 50%) 0 0/16px 16px;
 --font:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
 --font-display:'Space Grotesk',var(--font);
}
/* ---------- botões (base; cada tela pode especializar) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;
 border:0;border-radius:var(--r-pill);font-weight:600;cursor:pointer;line-height:1;white-space:nowrap;
 background:var(--blue);color:#fff;padding:10px 16px;font-size:14px;text-decoration:none;
 transition:background .15s,filter .15s,box-shadow .15s,color .15s}
.btn:hover:not(:disabled){background:var(--blue-press)}
.btn:disabled{opacity:.45;cursor:default}
.btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.btn svg{width:16px;height:16px;flex:none;stroke:currentColor}
.btn-cta{background:var(--grad);box-shadow:var(--sh-cta)}
.btn-cta:hover:not(:disabled){background:var(--grad);filter:brightness(1.06)}
.btn-ghost{background:#fff;color:var(--mut);box-shadow:inset 0 0 0 1px var(--bd)}
.btn-ghost:hover:not(:disabled){background:var(--soft);color:var(--tx)}
.btn-soft{background:var(--soft);color:#33415C}
.btn-soft:hover:not(:disabled){background:#E7EEF7}
.btn-danger{background:var(--err)}
.btn-danger:hover:not(:disabled){background:#B91C1C}
.btn-ia{background:var(--grad);box-shadow:var(--sh-cta)}
.btn-ia:hover:not(:disabled){background:var(--grad);filter:brightness(1.06)}
.is-busy{opacity:.65;pointer-events:none}
.is-busy::after{content:'';width:13px;height:13px;flex:none;border-radius:50%;
 border:2px solid currentColor;border-top-color:transparent;opacity:.8;
 animation:rm-spin .7s linear infinite;margin-left:2px}
@keyframes rm-spin{to{transform:rotate(360deg)}}
/* ---------- badges / chips / tabs ---------- */
.rm-badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;padding:4px 10px;
 border-radius:var(--r-pill);font-weight:600;background:var(--soft);color:var(--mut)}
.rm-badge.ok{background:var(--ok-soft);color:#128A42}
.rm-badge.warn{background:var(--warn-soft);color:#B07818}
.rm-badge.err{background:var(--err-soft);color:var(--err)}
.rm-badge.tint{background:var(--tint);color:var(--blue)}
.rm-chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.rm-chip{border:1px solid var(--bd);background:#fff;color:var(--mut);border-radius:var(--r-pill);
 padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;
 transition:background .15s,border-color .15s,color .15s}
.rm-chip:hover{border-color:#C9D6E6;color:var(--tx)}
.rm-chip.on{background:var(--tint);border-color:var(--blue);color:var(--blue)}
.rm-tabs{display:inline-flex;background:var(--soft);border-radius:var(--r-pill);padding:4px;gap:2px}
.rm-tabs a{border-radius:var(--r-pill);padding:8px 16px;font-size:13.5px;font-weight:600;
 color:var(--mut);text-decoration:none;white-space:nowrap}
.rm-tabs a:hover{color:var(--tx)}
.rm-tabs a.on{background:#fff;color:var(--tx);box-shadow:var(--sh-1)}
/* ---------- estados visuais ---------- */
.rm-status{position:absolute;top:6px;right:6px;display:inline-flex;align-items:center;gap:4px;
 height:20px;padding:0 7px;border-radius:var(--r-pill);font-size:10.5px;font-weight:700;
 background:var(--soft);color:var(--mut);box-shadow:var(--sh-1);z-index:2}
.rm-status.ok{background:var(--ok-soft);color:var(--ok)}
.rm-status.warn{background:var(--warn-soft);color:var(--warn)}
.rm-status svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2.5}
.rm-statusbar{display:flex;flex-direction:column;gap:8px}
.rm-statusbar .fase{font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px;color:var(--tx)}
.rm-statusbar .num{color:var(--mut);font-size:13px}
.rm-sbar{height:6px;background:var(--bd);border-radius:var(--r-pill);overflow:hidden}
.rm-sbar>div{height:100%;width:0;background:var(--grad);transition:width .4s;border-radius:var(--r-pill)}
.shimmer{background:linear-gradient(100deg,#EDF2F9 40%,#E2E9F2 50%,#EDF2F9 60%);
 background-size:200% 100%;animation:rm-sh 1.2s infinite}
@keyframes rm-sh{to{background-position:-200% 0}}
.checker{background:var(--checker)}
.tscroll{overflow-x:auto}
/* ---------- formulários (especificidade zero: locais sempre vencem) ---------- */
:where(input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],select,textarea):focus{
 border-color:var(--blue);outline:0;box-shadow:0 0 0 3px rgba(59,110,246,.18)}
:where(a){color:var(--blue)}
/* ---------- toasts ---------- */
#rm-toasts{position:fixed;top:16px;right:16px;z-index:400;display:flex;flex-direction:column;
 gap:10px;max-width:min(380px,calc(100vw - 32px))}
.rm-toast{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--bd);
 border-left:3px solid var(--blue);border-radius:12px;box-shadow:var(--sh-2);padding:12px 14px;
 font-size:13.5px;color:var(--tx);animation:rmt-in .2s ease-out;font-family:var(--font)}
.rm-toast.ok{border-left-color:var(--ok)}
.rm-toast.err{border-left-color:var(--err)}
.rm-toast.warn{border-left-color:var(--warn)}
.rm-toast.out{opacity:0;transform:translateX(12px);transition:.2s}
.rmt-ic{flex:none;display:flex;color:var(--blue)}
.rm-toast.ok .rmt-ic{color:var(--ok)}
.rm-toast.err .rmt-ic{color:var(--err)}
.rm-toast.warn .rmt-ic{color:var(--warn)}
.rmt-ic svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.5}
.rmt-tx{flex:1;line-height:1.4}
.rmt-acao{border:0;background:var(--tint);color:var(--blue);border-radius:var(--r-pill);
 padding:6px 12px;font-weight:700;font-size:12.5px;cursor:pointer;flex:none;font-family:inherit}
.rmt-acao:hover{background:#DDE9FD}
.rmt-x{border:0;background:none;color:var(--mut);font-size:17px;cursor:pointer;padding:0 2px;
 flex:none;line-height:1;font-family:inherit}
@keyframes rmt-in{from{opacity:0;transform:translateY(-8px)}}
@media (max-width:640px){#rm-toasts{top:auto;bottom:16px;right:16px;left:16px}}
/* ---------- modal ---------- */
.rm-modal{border:0;border-radius:var(--r-area);padding:22px;max-width:420px;width:calc(100vw - 40px);
 box-shadow:0 24px 70px rgba(14,22,34,.25);color:var(--tx);font-family:var(--font)}
.rm-modal::backdrop{background:rgba(14,22,34,.45)}
.rm-modal h3{margin:0 0 8px;font-size:17px;font-family:var(--font-display)}
.rm-modal p{margin:0 0 16px;color:var(--mut);font-size:14px;line-height:1.5}
.rm-modal p b{color:var(--tx)}
.rmm-row{display:flex;gap:10px;justify-content:flex-end}
.rmm-in{width:100%;border:1px solid #C9D4E0;border-radius:var(--r-ctl);padding:11px 12px;
 font-size:15px;margin:0 0 16px;font-family:inherit;color:var(--tx);box-sizing:border-box}
.rmm-hint{margin:-10px 0 14px;font-size:12.5px;color:var(--mut)}
/* ---------- véu global de drop ---------- */
#rm-dropveil{position:fixed;inset:0;z-index:390;display:none;background:rgba(241,245,250,.92);padding:16px}
#rm-dropveil.on{display:block}
#rm-dropveil .rmv-in{height:100%;border:3px dashed var(--cyan);border-radius:var(--r-area);
 display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;
 color:var(--tx);font-family:var(--font-display)}
