/* TAP Express · painel interno · tema claro */
:root{--bg:#f3f6f3;--card:#ffffff;--ink:#0b1a12;--muted:#5f6e66;--green:#1f8f36;--green-soft:#e6f4ea;--gold:#b8933f;--line:#e2e8e3;--line2:#cfd8d1;--danger:#c0392b;--d:"Sora",system-ui,sans-serif;--b:"Inter",system-ui,sans-serif;--sh:0 8px 30px rgba(11,26,18,.06)}
*{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg)}body{background:var(--bg);color:var(--ink);font-family:var(--b);min-height:100vh;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}.wrap{width:min(1360px,calc(100% - 32px));margin:0 auto;padding-bottom:40px}
/* topo */
.top{display:flex;align-items:center;gap:18px;padding:14px 0;border-bottom:1px solid var(--line);margin-bottom:26px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px}.brand img{height:34px}.brand span{font-family:var(--d);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-left:1px solid var(--line2);padding-left:12px}
.menu{display:flex;gap:4px;flex-wrap:wrap;margin-left:6px}.menu a{padding:8px 14px;border-radius:999px;font-family:var(--d);font-size:13px;font-weight:600;color:var(--muted)}.menu a:hover{background:#fff;color:var(--ink)}.menu a.on{background:var(--ink);color:#fff}
.who{margin-left:auto;color:var(--muted);font-size:13px}.who a{color:var(--ink);font-weight:500}.who em{font-style:normal;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(184,147,63,.5);border-radius:999px;padding:2px 7px;margin-left:4px}
/* botões, cards, campos */
.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:999px;border:1px solid var(--line2);background:#fff;color:var(--ink);font-family:var(--d);font-weight:600;font-size:13px;cursor:pointer;transition:border-color .2s,background .2s}
.btn:hover{border-color:var(--green)}.btn.p{background:var(--green);color:#fff;border-color:var(--green)}.btn.p:hover{background:#187a2d}.btn.sm{padding:6px 12px;font-size:12px}.btn.danger{border-color:rgba(192,57,43,.4);color:var(--danger)}
.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--sh)}
label{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:12px 0 6px}
input,select,textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line2);background:#fff;color:var(--ink);font-family:var(--b);font-size:14px;outline:none;transition:border-color .2s}
input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(31,143,54,.12)}
.msg{padding:12px 16px;border-radius:12px;margin-bottom:16px;font-size:14px}.msg.ok{background:var(--green-soft);border:1px solid rgba(31,143,54,.3);color:#14562a}.msg.err{background:#fdecea;border:1px solid rgba(192,57,43,.3);color:#8f2a1f}
h1{font-family:var(--d);font-size:1.7rem;letter-spacing:-.02em}h2{font-family:var(--d);font-size:1.35rem;letter-spacing:-.02em;margin-bottom:12px}h3{font-family:var(--d);font-size:1rem;margin:18px 0 10px}
.sub{color:var(--muted);font-size:14px}.grid2{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:12px 14px;border-bottom:1px solid var(--line);background:#fafcfa}td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top}tr:hover td{background:#fafcfa}
td .p{font-family:var(--d);font-weight:700;color:var(--green)}td small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.badge{display:inline-block;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.b-novo{background:var(--green-soft);color:#14562a}.b-atendimento{background:#fff4d6;color:#7a5a00}.b-cotado{background:#e0f4f1;color:#0f6b5f}.b-fechado{background:#e9edea;color:#3a4a41}.b-perdido{background:#fdecea;color:#8f2a1f}
.b-on{background:var(--green-soft);color:#14562a}.b-off{background:#e9edea;color:var(--muted)}
.empty{padding:40px;text-align:center;color:var(--muted)}
/* login */
.auth{max-width:440px;margin:9vh auto}.auth h1{font-size:1.5rem;margin-bottom:6px}.auth p{color:var(--muted);font-size:14px;margin-bottom:18px}.auth img{height:38px;margin-bottom:20px}
.pw{position:relative}.pw input{padding-right:44px}.pw .eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--muted);cursor:pointer;padding:6px;border-radius:8px}.pw .eye:hover{color:var(--green)}
.link{color:var(--green);font-size:13px}.link:hover{text-decoration:underline}
/* painel de módulos */
.modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:22px}
.module{display:flex;flex-direction:column;gap:10px;padding:24px;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:var(--sh);transition:transform .25s,border-color .25s;min-height:170px}
.module:hover{transform:translateY(-3px);border-color:var(--green)}.module .ic{width:44px;height:44px;border-radius:14px;background:var(--green-soft);display:grid;place-items:center;color:var(--green)}
.module b{font-family:var(--d);font-size:1.05rem}.module p{color:var(--muted);font-size:13px;line-height:1.5}.module .n{margin-top:auto;font-family:var(--d);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--green)}
.module.soon{opacity:.55}.module.soon .n{color:var(--muted)}
/* stats, filtros */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stats .card{padding:16px 18px}.stats b{display:block;font-family:var(--d);font-size:2rem;font-weight:800;letter-spacing:-.03em}.stats span{font-size:11px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}
.tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.tools form{display:flex;gap:8px;flex:1;min-width:260px}.tools input{flex:1}
.chips a{display:inline-block;padding:8px 14px;border-radius:999px;border:1px solid var(--line2);background:#fff;font-size:12px;font-family:var(--d);font-weight:600;color:var(--muted);margin-right:4px}.chips a.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:999px;overflow:hidden;background:#fff}.seg a{padding:8px 14px;font-family:var(--d);font-size:12px;font-weight:600;color:var(--muted)}.seg a.on{background:var(--ink);color:#fff}
/* kanban */
.kanban{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:start}
.col{background:#eef2ef;border:1px solid var(--line);border-radius:16px;padding:10px;min-height:60vh}
.col h4{font-family:var(--d);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:6px 6px 12px;display:flex;justify-content:space-between}
.col h4 span{color:var(--ink);background:#fff;border-radius:999px;padding:1px 8px}.col.over{border-color:var(--green);background:var(--green-soft)}
.kcard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:10px;cursor:grab;transition:transform .2s,box-shadow .2s;box-shadow:0 2px 6px rgba(11,26,18,.04)}
.kcard:active{cursor:grabbing}.kcard:hover{border-color:var(--green);box-shadow:var(--sh)}.kcard.dragging{opacity:.5;transform:scale(.98)}
.kcard b{display:block;font-family:var(--d);font-size:14px}.kcard small{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.kcard .tag{display:inline-block;margin-top:8px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(184,147,63,.4);padding:3px 8px;border-radius:999px}
.kcard .vaga{display:inline-block;margin-top:8px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(184,147,63,.4);padding:3px 8px;border-radius:999px}
.kcard .acts{display:flex;gap:10px;margin-top:10px}.kcard .acts a{font-size:12px;color:var(--green);font-weight:600}
.kcard .proto{font-family:var(--d);font-size:11px;letter-spacing:.08em;color:var(--green);font-weight:700}
/* modal, detalhe */
.modal{position:fixed;inset:0;background:rgba(11,26,18,.45);display:none;align-items:center;justify-content:center;padding:20px;z-index:50}.modal.on{display:flex}
.modal .card{width:min(760px,100%);max-height:90vh;overflow:auto}
.kv{display:grid;grid-template-columns:150px 1fr;gap:8px 14px;font-size:14px}.kv div:nth-child(odd){color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding-top:3px}.kv a{color:var(--green)}
.nota{padding:10px 14px;border-left:3px solid var(--green);background:#f6f9f6;border-radius:0 12px 12px 0;margin-bottom:8px;font-size:13px}.nota small{display:block;color:var(--muted);font-size:11px;margin-bottom:3px}
.quick{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}details summary{cursor:pointer;color:var(--muted);font-size:13px;margin-top:20px}
.perm{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;font-size:14px}.perm select{width:150px;padding:8px 10px}
@media(max-width:1100px){.kanban{grid-template-columns:repeat(2,1fr)}.col{min-height:auto}.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.grid2,.row{grid-template-columns:1fr}.kanban{grid-template-columns:1fr}.kv{grid-template-columns:1fr}table{display:block;overflow-x:auto}.who{margin-left:0}}

/* cubo de medidas */
.cubo{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:6px 10px 6px 6px;border:1px solid var(--line);border-radius:12px;background:#fafcfa}
.cubo svg{display:block;flex:none}.cubo em{font-style:normal;font-family:var(--d);font-size:12px;font-weight:600;color:var(--green)}

/* valor negociado e soma por coluna */
.col-sum{font-family:var(--d);font-size:12px;font-weight:700;color:var(--green);margin:-6px 6px 10px;min-height:16px}
.kval{display:flex;align-items:center;gap:8px;margin-top:8px}.kval b{font-family:var(--d);font-size:13px;color:var(--ink)}
.valor-form{display:flex;align-items:center;gap:6px;flex:1}.valor-form span{font-size:12px;color:var(--muted)}.valor-form input{padding:6px 10px;font-size:13px;font-family:var(--d);font-weight:600;border-radius:8px;width:110px}
.valor-form input.saved{border-color:var(--green);box-shadow:0 0 0 3px rgba(31,143,54,.15)}
.kval .rast{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(184,147,63,.4);border-radius:999px;padding:2px 7px}
