:root{--bg: #F4F5FA;--card: #FFFFFF;--ink: #12152A;--mut: #656A8A;--line: #D9DCEA;--accent: #5B3FE0;--accent-d: #7B5CFF;--accent-soft: #E8E3FF;--xp: #E0A800;--ok: #1E9E5A;--warn: #C98F00;--bad: #D7373F}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{font-size:24px;font-weight:800;letter-spacing:-.01em;margin:0 0 4px}h2{font-size:17px;font-weight:800;margin:8px 0 12px}.sub{color:var(--mut);font-size:13.5px;margin:0 0 8px}.mut{color:var(--mut)}.empty{color:var(--mut);font-size:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px}label{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--mut)}input,select,textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:9px 11px}input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn-primary{background:var(--accent);color:#fff;border:0;border-radius:9px;padding:10px 18px;font-size:14px;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}.btn-primary:hover{filter:brightness(1.06)}.btn-primary:disabled{opacity:.6;cursor:default}.btn-ghost{background:none;border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:7px 12px;font-size:13px;font-weight:600;cursor:pointer}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.tbl{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;font-variant-numeric:tabular-nums}.tbl th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);padding:12px 14px;border-bottom:1px solid var(--line)}.tbl td{padding:12px 14px;border-bottom:1px solid var(--line);font-size:14px}.tbl tr:last-child td{border-bottom:0}.tbl.compact th,.tbl.compact td{padding:8px 10px}.pill{display:inline-block;font-size:11px;font-weight:800;padding:3px 10px;border-radius:999px;background:var(--line);color:var(--mut)}.pill.st-ATIVO{background:#e2f4eb;color:var(--ok)}.pill.st-INADIMPLENTE{background:#f8e5e1;color:var(--bad)}.pill.st-TRANCADO,.pill.ch-ABERTA{background:#f7eedd;color:var(--warn)}.pill.ch-PAGA{background:#e2f4eb;color:var(--ok)}.pill.ch-CANCELADA{background:var(--line);color:var(--mut)}
