:root{
  --bg:#f4f6fb; --card:#ffffff; --line:#e6e9f2; --ink:#1f2937; --mut:#6b7280;
  --blue:#2563eb; --blue-d:#1e50c0; --blue-soft:#eff4ff;
  --green:#16a34a; --green-soft:#e9f7ef; --amber:#d97706; --amber-soft:#fdf3e6;
  --red:#dc2626; --purple:#7c3aed;
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,"Segoe UI",Inter,Roboto,sans-serif;background:var(--bg);color:var(--ink);font-size:14px}
.hidden{display:none!important}
input,select,button{font:inherit}
input,select{background:#fff;border:1px solid var(--line);color:var(--ink);border-radius:9px;padding:10px 12px;width:100%;margin:4px 0;outline:none}
input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
button{background:var(--blue);color:#fff;border:none;border-radius:9px;padding:10px 16px;font-weight:600;cursor:pointer}
button:hover{background:var(--blue-d)}
button.ghost{background:#fff;border:1px solid var(--line);color:var(--ink);font-weight:600}
button.ghost:hover{background:var(--bg)}
button.green{background:var(--green)} button.green:hover{filter:brightness(.95)}
a{color:var(--blue);cursor:pointer;text-decoration:none}
.erro{color:var(--red);min-height:18px}.msg{min-height:18px}
label{display:block;color:var(--mut);font-size:12px;margin-top:8px;font-weight:600}

/* logo */
.logo{font-weight:800;letter-spacing:.02em;font-size:18px;color:var(--ink);display:flex;align-items:center;gap:8px}
.logo b{color:var(--blue)} .logo .mark{width:26px;height:26px;border-radius:7px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:13px}

/* login */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#eef2fb,#f7f9fd)}
.login-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px;width:330px;text-align:center;box-shadow:0 10px 40px rgba(30,60,120,.08)}
.login-card .sub{color:var(--mut);margin:6px 0 18px}
.login-card .logo{justify-content:center;font-size:22px;margin-bottom:2px}

/* shell */
header{display:flex;align-items:center;gap:10px;padding:0 20px;height:58px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
nav{display:flex;gap:2px;flex:1;margin-left:18px;overflow-x:auto}
nav button{background:transparent;color:var(--mut);font-weight:600;padding:8px 13px;border-radius:8px;white-space:nowrap}
nav button:hover{background:var(--bg);color:var(--ink)}
nav button.on{background:var(--blue-soft);color:var(--blue)}
.top-actions{display:flex;align-items:center;gap:12px}
.user{color:var(--mut);font-size:13px;display:flex;align-items:center;gap:8px}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:700}
main{max-width:1140px;margin:0 auto;padding:22px 18px 60px}
.tab{display:none}.tab.on{display:block}
.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
h2{font-weight:700;margin:0;font-size:20px} .page-head .sub{color:var(--mut);font-size:13px;margin-top:2px}
h3{margin:20px 0 8px;font-size:15px}

/* KPI cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:0 1px 2px rgba(20,40,90,.03)}
.card .lbl{color:var(--mut);font-size:12.5px;display:flex;justify-content:space-between;align-items:center}
.card b{display:block;font-size:24px;margin-top:6px;font-weight:700}
.card .ico{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:14px}
.i-blue{background:var(--blue-soft);color:var(--blue)}.i-green{background:var(--green-soft);color:var(--green)}
.i-amber{background:var(--amber-soft);color:var(--amber)}

/* panels */
.panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;margin-top:16px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* form OS */
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dropdown{background:#fff;border:1px solid var(--line);border-radius:9px;overflow:hidden;margin-top:2px}
.dropdown div{padding:9px 12px;cursor:pointer;border-bottom:1px solid var(--line)}
.dropdown div:hover{background:var(--blue-soft)}
.chip{background:var(--blue-soft);border:1px solid #cfe0ff;color:var(--blue-d);border-radius:9px;padding:9px 12px;margin-top:6px;font-weight:600}
details summary{color:var(--blue);cursor:pointer;margin-top:10px;font-weight:600}
.total{font-size:20px;margin:10px 0}.total b{color:var(--blue)}
.peca{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px;margin:8px 0}
.peca .campos{display:grid;grid-template-columns:100px 1fr 1fr 100px 30px;gap:8px;align-items:center}
.svc-linha{display:grid;grid-template-columns:1fr 120px 30px;gap:8px;margin-top:6px}
.mini{padding:8px 10px}

/* tabela OS */
table{width:100%;border-collapse:collapse;font-size:13.5px}
th,td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left}
th{color:var(--mut);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}
tbody tr:hover{background:var(--blue-soft)}
td.r,th.r{text-align:right}
.badge{font-size:11.5px;padding:3px 9px;border-radius:20px;font-weight:600;white-space:nowrap}
.b-pago{background:var(--green-soft);color:var(--green)}.b-aberto{background:var(--amber-soft);color:var(--amber)}
.b-parcial{background:#f1ecfe;color:var(--purple)}

/* kanban */
.kanban{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.col{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px;min-height:120px}
.col h4{margin:2px 4px 12px;font-size:13px;display:flex;justify-content:space-between}
.col h4 span{background:var(--bg);color:var(--mut);border-radius:20px;padding:1px 8px;font-size:11px}
.oscard{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px;box-shadow:0 1px 2px rgba(20,40,90,.04)}
.oscard .n{font-weight:700}.oscard small{color:var(--mut);display:block}
.oscard .mov{display:flex;gap:6px;margin-top:8px}
.oscard .mov button{padding:5px 9px;font-size:12px}

/* caixa */
.cxtot{font-size:32px;color:var(--blue);font-weight:800;margin:6px 0}
.linha{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 2px;border-bottom:1px solid var(--line)}
.linha>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.linha>span:last-child{white-space:nowrap;display:flex;align-items:center;gap:8px}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:8px}
@media(max-width:820px){.kanban,.row,.grid2{grid-template-columns:1fr}.peca .campos{grid-template-columns:1fr 1fr}nav{gap:0}}
