@import url('https://fonts.googleapis.com/css2?family=Figtree:wght@400;500;600;700&display=swap');
:root { --p:#660099; --bg:#f5f5f5; --line:#dedede; --text:#1a1a1a; --muted:#6b6b6b; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:15px 'Figtree',system-ui,sans-serif; }
button,input,select,textarea { font:inherit; border:1px solid var(--line); border-radius:14px; padding:12px; background:#fff; color:var(--text); }
button { cursor:pointer; }
button.primary { background:var(--p); border-color:var(--p); color:#fff; }
button:disabled { opacity:.45; cursor:not-allowed; }
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible { outline:3px solid #b57bd1; outline-offset:2px; }
.top { background:#fff; border-color:var(--line); flex-wrap:wrap; gap:10px; }
.brand span,.auth-brand span,.gate h1 span { color:var(--p); }
.pill,.user-chip { background:#f3eaf7; border-color:#e2cfe9; color:var(--p); }
.muted,.auth-sub,.auth-card label,.gate .sub,.gate label,.card .desc,.tabela th { color:var(--muted); }
.card,.panel,.gate,.auth-card { background:#fff; border:1px solid var(--line); border-radius:28px; box-shadow:none; }
.home-link,.voltar,.auth-link { color:var(--p); text-decoration:none; }
.home-link { font-size:13px; }
.overlay { background:#24112f80; }
.modal { background:#fff; color:var(--text); border:1px solid var(--line); border-radius:24px; box-shadow:0 18px 60px #24112f33; }
.modal p { color:#555; }
.toast { background:#fff; color:#275539; border-color:#75a884; box-shadow:0 6px 26px #24112f22; }
.toast.aviso { background:#fff9eb; color:#7a4b00; border-color:#d6a436; }
.tabela td,.tabela th,ul.lista li { border-color:var(--line); }
.badge-admin { background:#f3eaf7; color:var(--p); border-color:#d7b9e6; }
.adm-demo { background:#faf4df; border-color:#dfd0a5; color:#735619; }
.msg.erro,.auth-msg.erro { color:#a32c33; }
.auth-msg.info { color:#365c45; }
#authOverlay { background:var(--bg); overflow:auto; align-items:safe center; }
.auth-card { margin:auto; }
.auth-demo { color:var(--muted); border-color:var(--line); }
.login-version { position:fixed; right:16px; top:12px; z-index:10000; color:var(--muted); font-size:12px; }
.hidden,[hidden] { display:none !important; }
.tabela { table-layout:fixed; }
.tabela td { overflow-wrap:anywhere; }
.map { border-color:var(--line); border-radius:24px; background:#e9e7eb; }
.tag { background:#f3eaf7; color:#5e3470; border-radius:12px; }
.port-address,.stack label,.note { color:var(--muted); }
.port-menu button.current { outline-color:var(--p); }
.cto-actions .flow-toggle input,.gp-floors input { accent-color:var(--p); }
.gp-floors label { color:var(--text); background:#f5f5f5; border-color:var(--line); }
.flow-info { background:#f3eaf7; color:#65347b; }
.map-tip { background:#fff4d7; color:#705415; }
.missing-btn { background:#fff0f2; border-color:#d38c94; color:#922636; }
.livre { background:#e5f6ec; border-color:#4f9f71; color:#23613d; }
.ocupada { background:#ffedef; border-color:#c97982; color:#9a303f; }
.desconhecida { background:#f0f0f3; border-color:#a4a4b1; color:#555563; }
.locate-ctl button { color:var(--p); }
.ponto-marcador { color:var(--p); border-color:var(--p); background:#f8effbd9; box-shadow:0 0 0 4px #66009922; }
.cto-actions { flex-wrap:wrap; }
.footer { color:var(--muted); }
@media(max-width:600px) { .user-chip { max-width:190px; } .tabela th,.tabela td { padding:8px 3px; font-size:12px; } .tabela button { max-width:100%; } }
