:root { --navy:#112b46; --blue:#2875c5; --pale:#eef6ff; --ink:#18212b; --muted:#687482; --line:#dce3eb; --green:#138a63; --amber:#d88916; --gray:#9ba8b6; --bg:#f7f9fb; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; font-family:Arial, Helvetica, sans-serif; color:var(--ink); background:var(--bg); }
.sidebar { position:fixed; inset:0 auto 0 0; width:232px; padding:28px 18px; background:var(--navy); color:#fff; display:flex; flex-direction:column; z-index:2; }
.brand { display:flex; align-items:center; gap:10px; color:#fff; font-weight:700; text-decoration:none; font-size:18px; padding:0 10px 38px; }
.brand-mark { display:grid; place-items:center; width:30px; height:30px; border-radius:8px; background:#5fa0e2; }
nav { display:grid; gap:6px; }
.nav-item { color:#c8d6e5; text-decoration:none; padding:12px 14px; border-radius:8px; font-size:14px; }
.nav-item:hover,.nav-item.active { color:#fff; background:#214463; }
.sidebar-note { margin-top:auto; padding:10px; color:#9db3c9; font-size:12px; line-height:1.5; }
main { margin-left:232px; max-width:1450px; padding:0 48px 64px; }
.topbar { min-height:142px; display:flex; align-items:center; gap:18px; border-bottom:1px solid var(--line); }
h1,h2,p { margin:0; }.eyebrow { color:var(--blue); text-transform:uppercase; font-size:11px; font-weight:700; letter-spacing:.08em; margin-bottom:8px; }h1 { font-size:28px; letter-spacing:-.02em; }h2 { font-size:20px; letter-spacing:-.01em; }.environment { margin-left:auto; color:var(--muted); font-size:13px; background:#edf1f5; padding:8px 10px; border-radius:6px; }.menu-button{display:none}
.search-panel { margin:32px 0 24px; padding:26px 28px; border-radius:14px; background:var(--pale); display:grid; grid-template-columns:1fr minmax(290px,440px); gap:18px 40px; align-items:center; }.search-box { border:1px solid #b7d2ed; background:#fff; border-radius:9px; display:flex; align-items:center; padding:0 15px; }.search-box input { width:100%; border:0; outline:0; background:transparent; padding:14px 0; font-size:14px; color:var(--ink); }.search-box span{color:var(--blue);font-size:23px}.search-results{grid-column:2;min-height:0;color:var(--muted);font-size:13px}.result-button{border:0;background:#fff;color:var(--ink);width:100%;text-align:left;padding:10px 12px;border-radius:7px;cursor:pointer;box-shadow:0 1px 3px #00000010}.result-button:hover{background:#f6fbff}
.content-grid { display:grid; grid-template-columns:2fr 1fr; gap:22px; }.profile-card,.status-card,.history-section,.filter-panel { background:#fff; border:1px solid var(--line); border-radius:12px; }.profile-card { padding:26px; }.profile-heading { display:flex; align-items:center; gap:15px; }.avatar { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; color:#15538c; background:#dceeff; font-weight:bold; }.profile-heading p:not(.eyebrow){color:var(--muted);font-size:13px;margin-top:5px}.profile-details { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:28px 0 0; padding-top:20px; border-top:1px solid var(--line); }.profile-details div { display:grid; gap:5px; }.profile-details dt { font-size:12px; color:var(--muted); }.profile-details dd { margin:0; font-size:14px; font-weight:600; }.status-card { padding:26px; }.status-line{display:flex;align-items:center;gap:9px;margin:12px 0 9px}.status-dot{width:9px;height:9px;border-radius:50%;background:var(--amber)}.status-card p:not(.eyebrow){color:var(--muted);line-height:1.5;font-size:14px}.text-button{margin-top:18px;border:0;padding:0;background:transparent;color:var(--blue);font-weight:bold;cursor:pointer}
.filter-panel{display:grid;grid-template-columns:1.35fr repeat(5,1fr) auto;gap:14px;align-items:end;margin-top:22px;padding:20px 22px}.filter-panel label{display:grid;gap:7px;color:var(--muted);font-size:12px;font-weight:bold}.filter-panel input,.filter-panel select{width:100%;min-height:38px;border:1px solid var(--line);border-radius:6px;padding:0 9px;background:#fff;color:var(--ink);font:inherit;font-size:13px}.secondary-button{min-height:38px;border:1px solid #b7d2ed;border-radius:6px;background:#f4f9ff;color:#1d5f9f;font-weight:bold;cursor:pointer;padding:0 12px}
.history-section{margin-top:22px;padding:26px}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-end}.legend{display:flex;gap:18px;color:var(--muted);font-size:12px}.legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:50%}.paid{background:var(--green)}.pending{background:var(--amber)}.unavailable{background:var(--gray)}.timeline-scroll{overflow-x:auto;padding-bottom:7px}.month-grid{display:grid;grid-template-columns:repeat(12,minmax(94px,1fr));gap:10px;margin:26px 0;min-width:1150px}.month{border:1px solid var(--line);border-radius:9px;background:#fff;padding:14px 10px;cursor:pointer;text-align:left;min-height:101px;transition:.15s}.month:hover,.month.selected{border-color:var(--blue);box-shadow:0 0 0 2px #dceeff}.month-name{display:block;font-size:12px;color:var(--muted);margin-bottom:14px}.month-state{display:flex;gap:6px;align-items:center;font-weight:bold;font-size:13px}.month-state i{width:8px;height:8px;border-radius:50%}.month-value{display:block;margin-top:12px;color:var(--ink);font-size:12px;font-weight:700}.month.paid i{background:var(--green)}.month.pending i{background:var(--amber)}.month.unavailable i{background:var(--gray)}.month-detail{background:#f7f9fb;border-radius:9px;padding:16px;color:var(--muted);font-size:14px}.month-detail strong{color:var(--ink)}
@media(max-width:1050px){.filter-panel{grid-template-columns:repeat(3,1fr)}.filter-title{grid-column:1/-1}}@media(max-width:900px){.sidebar{position:static;width:auto;flex-direction:row;align-items:center;padding:14px}.sidebar .brand{padding:0}.sidebar nav,.sidebar-note{display:none}main{margin:0;padding:0 20px 40px}.menu-button{display:inline-flex;border:0;background:transparent;font-size:20px}.topbar{min-height:102px}.content-grid,.search-panel{grid-template-columns:1fr}.search-results{grid-column:1}.profile-details{grid-template-columns:repeat(2,1fr)}.environment{display:none}}@media(max-width:520px){.filter-panel{grid-template-columns:1fr}.profile-details{grid-template-columns:1fr}.section-heading{align-items:flex-start;flex-direction:column}.legend{flex-wrap:wrap;gap:10px}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---- controle de acesso (v2.0) ---- */
body.bloqueado { overflow:hidden; }
.login-overlay { position:fixed; inset:0; z-index:50; display:grid; place-items:center; background:linear-gradient(160deg,#0d2239,#153c60); padding:20px; }
.login-overlay[hidden] { display:none; }
.login-card { background:#fff; border-radius:16px; padding:40px 36px; width:min(420px,100%); text-align:center; box-shadow:0 18px 50px #00000040; }
.login-card .brand-mark { margin:0 auto 18px; width:44px; height:44px; font-size:20px; font-weight:700; color:#fff; }
.login-card h1 { font-size:22px; margin-bottom:10px; }
.login-card p { color:var(--muted); font-size:14px; line-height:1.55; }
.login-card #login-msg.erro { color:#b3261e; font-weight:bold; }
.login-card #google-btn { display:flex; justify-content:center; margin:26px 0 20px; min-height:44px; }
.login-rodape { font-size:12px; color:var(--gray); border-top:1px solid var(--line); padding-top:16px; }
.chip-usuario { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.chip-nome { font-weight:bold; color:var(--ink); }
.chip-nivel { background:#dceeff; color:#15538c; border-radius:20px; padding:2px 10px; font-size:11px; font-weight:bold; text-transform:uppercase; }
.chip-link { border:0; background:transparent; color:var(--blue); font:inherit; font-size:13px; font-weight:bold; cursor:pointer; text-decoration:none; padding:0; }
.chip-link:hover { text-decoration:underline; }
.busca-aviso { margin-top:8px; font-size:12px; color:var(--muted); }
@media(max-width:900px){ .environment.chip-usuario{ display:flex; margin-left:auto; } }

/* ---- tela de usuarios ---- */
.painel { background:#fff; border:1px solid var(--line); border-radius:12px; padding:26px; margin-top:22px; }
.form-usuario { display:grid; grid-template-columns:1fr 1.4fr 160px auto; gap:14px; align-items:end; margin-top:18px; }
.form-usuario label { display:grid; gap:7px; color:var(--muted); font-size:12px; font-weight:bold; }
.form-usuario input,.form-usuario select { min-height:38px; border:1px solid var(--line); border-radius:6px; padding:0 9px; font:inherit; font-size:13px; }
.botao-primario { min-height:38px; border:0; border-radius:6px; background:var(--blue); color:#fff; font-weight:bold; cursor:pointer; padding:0 18px; }
.tabela { width:100%; border-collapse:collapse; margin-top:24px; font-size:14px; }
.tabela th { text-align:left; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.05em; padding:10px 12px; border-bottom:1px solid var(--line); }
.tabela td { padding:12px; border-bottom:1px solid var(--line); vertical-align:top; }
.tabela tr:hover td { background:#f9fcff; }
.escopo-lista { display:flex; flex-wrap:wrap; gap:6px; max-width:520px; }
.escopo-tag { background:#eef6ff; color:#15538c; border-radius:6px; padding:3px 8px; font-size:12px; }
.escopo-tudo { background:#e6f6ef; color:#0f6b4d; }
.aviso-topo { background:#fff6e8; border:1px solid #f0d3a6; color:#7a4d08; border-radius:8px; padding:12px 14px; font-size:13px; margin-top:18px; }
.modal-fundo { position:fixed; inset:0; background:#0b1c2e99; display:grid; place-items:center; z-index:40; padding:20px; }
.modal-fundo[hidden] { display:none; }
.modal { background:#fff; border-radius:14px; padding:26px; width:min(640px,100%); max-height:86vh; overflow:auto; }
.modal h3 { margin:0 0 6px; font-size:18px; }
.grupo-empresa { border:1px solid var(--line); border-radius:9px; padding:12px 14px; margin-top:12px; }
.grupo-empresa > label { display:flex; align-items:center; gap:8px; font-weight:bold; font-size:14px; }
.grupo-filiais { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:6px; margin:10px 0 0 24px; }
.grupo-filiais label { display:flex; align-items:center; gap:7px; font-size:13px; color:var(--muted); }
.modal-acoes { display:flex; justify-content:flex-end; gap:12px; margin-top:22px; }
@media(max-width:900px){ .form-usuario{ grid-template-columns:1fr; } .tabela, .tabela tbody, .tabela tr, .tabela td { display:block; width:100%; } .tabela thead { display:none; } .tabela tr { border-bottom:2px solid var(--line); padding:8px 0; } }
.result-button { display:grid; gap:3px; line-height:1.4; }
.res-nome { font-weight:bold; font-size:14px; }
.res-meta { color:var(--muted); font-size:12px; }
.modal-controles { display:grid; grid-template-columns:auto auto 1fr; gap:10px 16px; align-items:center; padding:12px 14px; margin-bottom:6px; background:var(--pale); border-radius:9px; }
.ctrl-todas { display:flex; align-items:center; gap:8px; font-size:14px; }
.modal-controles input[type=search] { min-height:34px; border:1px solid #b7d2ed; border-radius:6px; padding:0 10px; font:inherit; font-size:13px; background:#fff; }
.ctrl-contagem { grid-column:1/-1; color:var(--muted); font-size:12px; }
.grupo-empresa[hidden] { display:none; }
.importar-caixa { border:2px dashed #b7d2ed; border-radius:10px; padding:26px; text-align:center; margin-top:16px; background:var(--pale); }
.importar-caixa input[type=file] { font:inherit; font-size:14px; }
.lista-envio { max-height:260px; overflow:auto; margin:16px 0; display:grid; gap:4px; }
.linha-envio { display:flex; justify-content:space-between; gap:12px; font-size:13px; padding:6px 10px; border-radius:6px; background:#f7f9fb; }
.linha-envio.ok { background:#e9f7f1; }
.linha-envio.falha { background:#fdecea; color:#a3241c; }
.progresso { margin-top:20px; padding:16px; border-radius:9px; background:var(--pale); }
.progresso-linha { display:flex; align-items:center; gap:10px; }
.girando { width:14px; height:14px; border:2px solid #b7d2ed; border-top-color:var(--blue); border-radius:50%; animation:girar .8s linear infinite; }
@keyframes girar { to { transform:rotate(360deg); } }
.progresso.fim .girando { display:none; }
