/* Tipografia oficial INMES: Montserrat, embarcada no servidor para o
   sistema funcionar sem depender de CDN externa. */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;
  src:url('/fonts/montserrat-latin-ext-400-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;
  src:url('/fonts/montserrat-latin-400-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;
  src:url('/fonts/montserrat-latin-ext-500-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;
  src:url('/fonts/montserrat-latin-500-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;
  src:url('/fonts/montserrat-latin-ext-600-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;
  src:url('/fonts/montserrat-latin-600-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;
  src:url('/fonts/montserrat-latin-ext-700-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;
  src:url('/fonts/montserrat-latin-700-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;
  src:url('/fonts/montserrat-latin-ext-800-normal.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;
  src:url('/fonts/montserrat-latin-800-normal.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}


:root{
  --navy:#1C2855; --navy-2:#2A3A70; --navy-3:#131D40; --navy-soft:#EDEFF6;
  --yellow:#F6DC00; --yellow-2:#DCC500; --yellow-soft:#FFFBDD;
  --bg:#F5F7FB; --surf:#FFFFFF; --line:#E6EAF2; --line-2:#F0F3F8;
  --txt:#131C33; --txt-2:#455172; --muted:#8A8FA3;
  --ok:#15A46E; --ok-soft:#E7F7F0; --danger:#E04A3C; --danger-soft:#FDEDEB;
  --warn:#F2A50C; --warn-soft:#FFF6E3; --info:#2B6CE6; --info-soft:#EAF1FE;
  --sh-1:0 1px 2px rgba(19,28,51,.06),0 1px 3px rgba(19,28,51,.04);
  --sh-2:0 4px 16px rgba(19,28,51,.08);
  --r:14px; --r-sm:10px;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Montserrat','Segoe UI',Arial,sans-serif;background:var(--bg);color:var(--txt);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font-family:inherit}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#CFD6E4;border-radius:8px;border:3px solid var(--bg)}

/* ---------- LAYOUT ---------- */
.app{display:flex;min-height:100vh}
.side{width:250px;flex-shrink:0;background:linear-gradient(180deg,var(--navy) 0%,var(--navy-3) 100%);color:#fff;display:flex;flex-direction:column;position:fixed;height:100vh;left:0;top:0;z-index:30}
.brand{padding:20px 18px 16px;display:flex;align-items:center;gap:11px}
/* Logo oficial INMES. Nunca aplicar sombra, contorno, giro ou troca de cor.
   A área de proteção (2X) é garantida pelo padding dos contêineres .brand e .lb. */
.logo-img{height:26px;width:auto;display:block}
.logo-img.neg{height:24px}
.brand b{font-size:21px;letter-spacing:1.5px;font-weight:800}
.side-sub{padding:0 18px 14px;font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;color:#8E9BC4;font-weight:600}
.role-pick{margin:0 12px 12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:11px;padding:10px 12px}
.role-pick label{font-size:9.5px;text-transform:uppercase;letter-spacing:.7px;color:#A9B4D8;display:flex;align-items:center;gap:5px;margin-bottom:7px;font-weight:700}
.role-pick label .dot{width:6px;height:6px;border-radius:50%;background:var(--yellow)}
.role-pick select{width:100%;padding:8px 9px;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:rgba(0,0,0,.18);color:#fff;font-size:12.5px;cursor:pointer;font-weight:600}
.role-pick select option{color:#131C33}
nav{padding:6px 12px;flex:1;overflow-y:auto}
nav .nsec{font-size:9.5px;text-transform:uppercase;letter-spacing:.7px;color:#7B87B0;font-weight:700;padding:14px 10px 6px}
nav a{display:flex;align-items:center;gap:11px;padding:10px 11px;color:#C3CBE4;border-radius:10px;font-size:13.5px;cursor:pointer;margin-bottom:2px;font-weight:500;transition:.14s;position:relative}
nav a:hover{background:rgba(255,255,255,.08);color:#fff}
nav a.active{background:var(--yellow);color:var(--navy-3);font-weight:700;box-shadow:0 2px 10px rgba(255,212,0,.25)}
nav a .ic{width:19px;text-align:center;font-size:15px;flex-shrink:0}
nav a .lb{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
nav a .badge{background:var(--danger);color:#fff;font-size:10.5px;font-weight:800;border-radius:20px;padding:1px 7px;min-width:19px;text-align:center}
nav a.active .badge{background:var(--navy)}
.side-foot{padding:12px 16px 14px;border-top:1px solid rgba(255,255,255,.09)}
.side-foot .u{display:flex;align-items:center;gap:9px}
.side-foot .ua{width:31px;height:31px;border-radius:9px;background:rgba(255,255,255,.13);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#fff}
.side-foot .un{font-size:12.5px;font-weight:600;color:#fff;line-height:1.2}
.side-foot .ur{font-size:10.5px;color:#8E9BC4}
.main{margin-left:250px;flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{background:rgba(255,255,255,.85);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:14px 28px;display:flex;justify-content:space-between;align-items:center;gap:16px;position:sticky;top:0;z-index:20}
.topbar h1{font-size:20px;font-weight:700;letter-spacing:-.2px}
.topbar .sub{font-size:12.5px;color:var(--muted);margin-top:1px}
.topbar .acts{display:flex;gap:9px;align-items:center;flex-shrink:0}
.content{padding:24px 28px 60px;max-width:1320px;width:100%}

/* ---------- BOTÕES ---------- */
.btn{padding:9px 15px;border:1px solid transparent;border-radius:10px;font-size:13.5px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:.14s;white-space:nowrap;line-height:1.3}
.btn:active{transform:translateY(1px)}
.btn-y{background:var(--yellow);color:var(--navy-3);box-shadow:0 1px 3px rgba(230,190,0,.35)}
.btn-y:hover{background:var(--yellow-2)}
.btn-n{background:var(--navy);color:#fff}.btn-n:hover{background:var(--navy-2)}
.btn-g{background:var(--ok);color:#fff}.btn-g:hover{filter:brightness(.94)}
.btn-r{background:var(--danger);color:#fff}.btn-r:hover{filter:brightness(.94)}
.btn-o{background:var(--surf);border-color:var(--line);color:var(--txt-2)}.btn-o:hover{border-color:#C6CEE0;background:#FBFCFE;color:var(--txt)}
.btn-ghost{background:transparent;color:var(--txt-2)}.btn-ghost:hover{background:var(--navy-soft)}
.btn-sm{padding:6px 11px;font-size:12.5px;border-radius:9px}
.btn-lg{padding:12px 20px;font-size:14.5px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* ---------- CARDS ---------- */
.panel{background:var(--surf);border-radius:var(--r);box-shadow:var(--sh-1);border:1px solid var(--line);margin-bottom:18px;overflow:hidden}
.panel>h3{padding:15px 18px;font-size:14.5px;font-weight:700;border-bottom:1px solid var(--line-2);display:flex;justify-content:space-between;align-items:center;gap:12px}
.panel>h3 .hn{font-size:11.5px;font-weight:500;color:var(--muted)}
.panel .body{padding:18px}
.panel .body.flush{padding:0}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:20px}
.kpi{background:var(--surf);border-radius:var(--r);padding:16px 17px;box-shadow:var(--sh-1);border:1px solid var(--line);position:relative;overflow:hidden}
.kpi::after{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--navy)}
.kpi.ok::after{background:var(--ok)}.kpi.warn::after{background:var(--warn)}.kpi.bad::after{background:var(--danger)}
.kpi .lab{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:700;display:flex;align-items:center;gap:6px}
.kpi .val{font-size:26px;font-weight:800;margin-top:7px;color:var(--navy);letter-spacing:-.5px;line-height:1.1}
.kpi .val.sm{font-size:20px}
.kpi .sub{font-size:11.5px;margin-top:5px;color:var(--muted);font-weight:500}
.kpi.ok .sub{color:var(--ok)}.kpi.warn .sub{color:var(--warn)}.kpi.bad .sub{color:var(--danger)}
.grid2{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:18px;align-items:start}
.grid11{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.grid2>*,.grid11>*{min-width:0}

/* ---------- TABELAS ---------- */
.tbl-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:11px 14px;border-bottom:1px solid var(--line);font-weight:700;white-space:nowrap;background:#FBFCFE}
td{padding:12px 14px;border-bottom:1px solid var(--line-2);font-size:13px;vertical-align:middle}
tr:last-child td{border-bottom:none}
tr.clk{cursor:pointer;transition:.12s}
tr.clk:hover{background:#F8FAFF}
.t-main{font-weight:600;color:var(--txt)}
.t-sub{font-size:11.5px;color:var(--muted);margin-top:1px}
.num{font-variant-numeric:tabular-nums}

/* ---------- STATUS ---------- */
.tag{display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 7px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap;border:1px solid transparent}
.tag .d{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.st-agendado{background:#F0F2F7;color:#5A6685;border-color:#E3E7F0}
.st-analise{background:var(--warn-soft);color:#9A6A00;border-color:#F5E3B8}
.st-aprov_mkt{background:#FFF0DE;color:#A85E00;border-color:#F7DCBB}
.st-aprovado{background:var(--ok-soft);color:#0E7A52;border-color:#C5EBDB}
.st-reprovado{background:var(--danger-soft);color:#B33B2E;border-color:#F5CDC8}
.st-tecnico{background:var(--info-soft);color:#2258C0;border-color:#CFE0FC}
.st-confirmado{background:#E4E9F5;color:#2A3A70;border-color:#CBD4E8}
.st-realizado{background:var(--yellow-soft);color:#7A6A00;border-color:#F0E2AE}
.st-parcial{background:#FFF6D6;color:#8A6D00;border-color:#EFDF9E}
.st-fechado{background:#EDF0F5;color:#4A5878;border-color:#DFE4EE}
.st-cancelado{background:#F3F4F7;color:#7A8398;border-color:#E4E7EE;text-decoration:line-through}

/* ---------- FORM ---------- */
.form-row{margin-bottom:15px}
.form-row>label{display:block;font-size:12.5px;font-weight:600;margin-bottom:6px;color:var(--txt)}
.form-row small,.hlp{color:var(--muted);font-weight:400;font-size:11.5px}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:13.5px;background:var(--surf);color:var(--txt);transition:.14s}
input:hover,select:hover,textarea:hover{border-color:#CFD6E4}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy);box-shadow:0 0 0 3px rgba(22,38,92,.09)}
input::placeholder,textarea::placeholder{color:#A8B0C2}
select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' stroke='%237A8398' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:30px}
.f2{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.f3{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.card-form{border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:16px;background:var(--surf)}
.card-form>.ct{font-size:12.5px;font-weight:700;color:var(--navy);margin-bottom:14px;display:flex;align-items:center;gap:9px;letter-spacing:.2px}
.card-form>.ct .n{width:23px;height:23px;border-radius:7px;background:var(--navy-soft);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:800;flex-shrink:0}
.card-form>.ct .pill{margin-left:auto;background:var(--navy-soft);color:var(--txt-2);font-weight:600;font-size:10.5px;padding:3px 9px;border-radius:20px}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px}
.chip{padding:7px 12px;border:1px solid var(--line);border-radius:20px;font-size:12.5px;cursor:pointer;user-select:none;transition:.14s;background:var(--surf);font-weight:500}
.chip:hover{border-color:#C6CEE0}
.chip.on{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:600}
.chip.on.k-montar{background:var(--yellow-2);border-color:var(--yellow-2);color:var(--navy-3)}
.chip.on.k-montada{background:var(--ok);border-color:var(--ok);color:#fff}
.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:9px}
.check{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--line);border-radius:var(--r-sm);cursor:pointer;font-size:13px;user-select:none;transition:.14s;background:var(--surf)}
.check:hover{border-color:#C6CEE0;background:#FBFCFE}
.check.on{border-color:var(--navy);background:var(--navy-soft);font-weight:600}
.check .bx{width:18px;height:18px;border-radius:6px;border:2px solid #CFD6E4;display:flex;align-items:center;justify-content:center;font-size:11px;color:transparent;flex-shrink:0;transition:.14s;background:#fff}
.check.on .bx{background:var(--navy);border-color:var(--navy);color:#fff}
.hint{font-size:12px;padding:9px 12px;border-radius:var(--r-sm);margin-top:8px;display:flex;gap:7px;align-items:flex-start;line-height:1.4}
.hint.ok{background:var(--ok-soft);color:#0E7A52}
.hint.bad{background:var(--danger-soft);color:#B33B2E}
.hint.info{background:var(--navy-soft);color:var(--txt-2)}
.hint.warn{background:var(--warn-soft);color:#9A6A00}
.actionbar{display:flex;gap:10px;flex-wrap:wrap;padding-top:4px}

/* ---------- CALENDÁRIO (corrigido) ---------- */
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.cal-head .mn{font-size:15px;font-weight:700;text-transform:capitalize}
.cal-nav{display:flex;gap:6px;align-items:center}
.cal-nav button{width:30px;height:30px;border-radius:9px;border:1px solid var(--line);background:var(--surf);cursor:pointer;color:var(--txt-2);font-size:15px;display:flex;align-items:center;justify-content:center;line-height:1}
.cal-nav button:hover{border-color:var(--navy);color:var(--navy)}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;width:100%}
.cal>*{min-width:0}
.cal .dow{font-size:10px;color:var(--muted);text-align:center;font-weight:700;padding:5px 0;text-transform:uppercase;letter-spacing:.4px}
.cal .day{min-height:88px;background:var(--surf);border:1px solid var(--line);border-radius:var(--r-sm);padding:5px;display:flex;flex-direction:column;gap:3px;overflow:hidden}
.cal .day.out{background:#FAFBFD;border-color:var(--line-2)}
.cal .day.today{border-color:var(--navy);box-shadow:0 0 0 2px rgba(22,38,92,.09)}
.cal .num{font-size:11px;font-weight:700;color:var(--txt-2);line-height:1;padding:2px 1px}
.cal .day.out .num{color:#B9C0D0}
.cal .day.today .num{color:var(--navy)}
.cchip{display:block;width:100%;padding:3px 6px;border-radius:6px;font-size:10px;font-weight:700;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-left:3px solid transparent;transition:.12s;line-height:1.35}
.cchip:hover{filter:brightness(.96)}
.cchip.k-mo{background:var(--yellow-soft);color:#8A6D00;border-left-color:var(--yellow-2)}
.cchip.k-ev{background:var(--navy-soft);color:var(--navy);border-left-color:var(--navy)}
.cchip.k-de{background:#F0F2F7;color:#5A6685;border-left-color:#9AA4BF}
.legend{display:flex;gap:14px;font-size:11.5px;color:var(--muted);margin-top:12px;flex-wrap:wrap;align-items:center}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend .d{width:10px;height:10px;border-radius:3px}

/* ---------- BARRAS ---------- */
.bar-row{display:flex;align-items:center;gap:12px;margin-bottom:11px}
.bar-row .bl{width:160px;flex-shrink:0;font-size:12.5px;color:var(--txt-2);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-track{flex:1;min-width:0;background:var(--line-2);border-radius:7px;height:24px;overflow:hidden}
.bar-fill{height:100%;border-radius:7px;background:var(--navy);display:flex;align-items:center;justify-content:flex-end;padding-right:9px;color:#fff;font-size:11px;font-weight:700;min-width:42px;transition:width .3s}
.bar-fill.y{background:var(--yellow);color:var(--navy-3)}
.bar-fill.g{background:var(--ok)}.bar-fill.r{background:var(--danger)}
.bar-row .be{width:150px;flex-shrink:0;font-size:11.5px;text-align:right;color:var(--muted)}

/* ---------- DIVERSOS ---------- */
.kv{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line-2);font-size:13.5px;gap:14px}
.kv:last-child{border-bottom:none}
.kv .k{color:var(--muted);white-space:nowrap;font-size:12.5px}
.kv .v{text-align:right;font-weight:500;min-width:0}
.sec-title{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:20px 0 10px;font-weight:800}
.sec-title:first-child{margin-top:0}
.note{border-radius:var(--r-sm);padding:12px 14px;font-size:12.5px;margin-bottom:16px;display:flex;gap:10px;align-items:flex-start;line-height:1.5;border:1px solid}
.note.y{background:var(--warn-soft);border-color:#F5E3B8;color:#8A6205}
.note.r{background:var(--danger-soft);border-color:#F5CDC8;color:#A63A2C}
.note.b{background:var(--info-soft);border-color:#CFE0FC;color:#1F4FA8}
.note.g{background:var(--ok-soft);border-color:#C5EBDB;color:#0E7A52}
.note .ni{font-size:16px;line-height:1.2;flex-shrink:0}
.pos{color:var(--ok)}.neg{color:var(--danger)}.amb{color:var(--warn)}.muted{color:var(--muted)}
.mb0{margin-bottom:0}.mt0{margin-top:0}
.empty{text-align:center;padding:44px 20px}
.empty .ei{font-size:40px;margin-bottom:10px;opacity:.85}
.empty h4{font-size:15.5px;font-weight:700;margin-bottom:6px}
.empty p{color:var(--muted);font-size:13px;max-width:420px;margin:0 auto 16px}
.rowline{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.rowline>*{min-width:0}
.rmv{cursor:pointer;color:var(--muted);font-weight:700;padding:6px 8px;border-radius:7px;flex-shrink:0;line-height:1}
.rmv:hover{color:var(--danger);background:var(--danger-soft)}
.addline{color:var(--navy);font-size:12.5px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:5px 0}
.addline:hover{color:var(--navy-2);text-decoration:underline}
.mq-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.mq{padding:5px 10px;border-radius:8px;font-size:11.5px;font-weight:600;display:inline-flex;align-items:center;gap:6px;border:1px solid}
.mq .dotc{width:7px;height:7px;border-radius:50%}
.mq.k-montar{background:var(--yellow-soft);color:#8A6D00;border-color:#F0E2AE}
.mq.k-montar .dotc{background:var(--yellow-2)}
.mq.k-montada{background:var(--ok-soft);color:#0E7A52;border-color:#C5EBDB}
.mq.k-montada .dotc{background:var(--ok)}
.mq.k-mat{background:var(--navy-soft);color:var(--txt-2);border-color:#DDE3F2}
.pctbox{display:flex;align-items:center;gap:11px;padding:11px 14px;border-radius:var(--r-sm);background:var(--navy-soft);font-size:12.5px;margin-top:9px;color:var(--txt-2)}
.pctbox b{font-size:19px;font-weight:800;letter-spacing:-.4px}
.pctbox.ok{background:var(--ok-soft);color:#0E7A52}
.pctbox.bad{background:var(--danger-soft);color:#B33B2E}
.pctbox.warn{background:var(--warn-soft);color:#9A6A00}
.daylist{border:1px solid var(--line);border-radius:var(--r-sm);padding:11px;background:#FBFCFE}
.dayrow{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.85fr) minmax(0,.85fr) 34px;gap:8px;align-items:end;margin-bottom:8px}
.dayrow:last-of-type{margin-bottom:0}
.dayrow small{font-size:10px;color:var(--muted);display:block;margin-bottom:3px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.emlist{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.empill{background:var(--navy-soft);border-radius:20px;padding:6px 11px;font-size:12px;display:inline-flex;gap:8px;align-items:center;font-weight:500}
.empill .rm{cursor:pointer;color:var(--muted);font-weight:700}
.empill .rm:hover{color:var(--danger)}

/* tarefas */
.task{display:flex;gap:13px;align-items:center;padding:14px 16px;border-radius:var(--r);border:1px solid var(--line);background:var(--surf);margin-bottom:10px;box-shadow:var(--sh-1);transition:.14s}
.task:hover{box-shadow:var(--sh-2)}
.task.urgent{border-color:#F3C7C2;background:linear-gradient(90deg,#FEF6F5 0%,#fff 45%)}
.task.warn{border-color:#F5E3B8;background:linear-gradient(90deg,#FFFBF0 0%,#fff 45%)}
.task .ti{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;background:var(--navy-soft)}
.task.urgent .ti{background:var(--danger-soft)}.task.warn .ti{background:var(--warn-soft)}
.task .tt{font-size:13.5px;font-weight:700}
.task .td{font-size:12px;color:var(--muted);margin-top:2px}

/* steps */
.stepbar{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px;margin-bottom:18px}
.stepbox{border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;background:var(--surf);box-shadow:var(--sh-1);position:relative}
.stepbox.done{border-color:#C5EBDB;background:linear-gradient(180deg,#F5FCF9,#fff)}
.stepbox.now{border-color:var(--yellow-2);background:linear-gradient(180deg,#FFFDF4,#fff);box-shadow:0 0 0 2px rgba(255,212,0,.16)}
.stepbox .sn{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:800;display:flex;align-items:center;gap:6px}
.stepbox.now .sn{color:#9A6A00}.stepbox.done .sn{color:#0E7A52}
.stepbox .stt{font-size:13.5px;font-weight:700;margin-top:5px}
.stepbox .sd{font-size:11.5px;color:var(--muted);margin-top:4px;line-height:1.5}
.trilha{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0 4px}
.tstep{font-size:10.5px;padding:3px 8px;border-radius:20px;font-weight:700;background:#F0F2F7;color:#9AA3B8}
.tstep.done{background:var(--ok-soft);color:#0E7A52}
.tstep.now{background:var(--yellow);color:var(--navy-3)}

/* DRE */
.dre .line{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13.5px;gap:12px}
.dre .line.sub{padding-left:14px;color:var(--muted);font-size:12.5px;border-bottom:1px dashed var(--line-2)}
.dre .line.tot{border-bottom:none;border-top:2px solid var(--navy);font-weight:800;font-size:17px;margin-top:8px;padding-top:13px}
.dre .grp{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--navy);font-weight:800;margin-top:14px;padding-bottom:3px}

/* modal */
.ov{display:none;position:fixed;inset:0;background:rgba(15,27,69,.45);backdrop-filter:blur(3px);z-index:50;align-items:flex-start;justify-content:center;padding:32px 16px;overflow-y:auto}
.ov.show{display:flex}
.modal{background:var(--surf);border-radius:18px;max-width:660px;width:100%;box-shadow:0 20px 60px rgba(15,27,69,.3);margin:auto}
.modal .mh{padding:17px 22px;border-bottom:1px solid var(--line-2);display:flex;justify-content:space-between;align-items:center;gap:12px;position:sticky;top:0;background:var(--surf);border-radius:18px 18px 0 0;z-index:2}
.modal .mh b{font-size:16px;font-weight:700}
.modal .mh .ms{font-size:12px;color:var(--muted);font-weight:400;margin-top:2px}
.modal .mb{padding:22px}
.modal .mf{padding:15px 22px;border-top:1px solid var(--line-2);display:flex;gap:9px;justify-content:flex-end;flex-wrap:wrap;position:sticky;bottom:0;background:var(--surf);border-radius:0 0 18px 18px}
.x{cursor:pointer;font-size:20px;color:var(--muted);line-height:1;padding:5px;border-radius:8px;flex-shrink:0}
.x:hover{background:var(--navy-soft);color:var(--txt)}
.notif{position:fixed;bottom:24px;right:24px;background:var(--navy);color:#fff;padding:13px 18px;border-radius:12px;box-shadow:0 10px 30px rgba(15,27,69,.35);display:none;align-items:center;gap:11px;z-index:70;max-width:370px;font-size:13px;font-weight:500}
.notif.show{display:flex;animation:sl .28s ease}
@keyframes sl{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* simulação */
.simbar{background:linear-gradient(90deg,var(--navy-soft),#fff);border:1px dashed #C3CCE6;border-radius:var(--r);padding:12px 15px;margin-bottom:18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.simbar .st{font-size:12px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:7px}
.simbar .sd{font-size:11.5px;color:var(--muted);flex:1;min-width:180px}

@media(max-width:1080px){.grid2,.grid11{grid-template-columns:minmax(0,1fr)}}
@media(max-width:820px){
  .side{width:64px}
  .brand b,.side-sub,.role-pick,nav a .lb,nav .nsec,.side-foot .un,.side-foot .ur{display:none}
  .side-foot .u{justify-content:center}
  nav a{justify-content:center;padding:11px 0}
  nav a .badge{position:absolute;top:3px;right:6px;padding:0 5px;font-size:9.5px}
  .main{margin-left:64px}
  .content{padding:18px 14px 50px}.topbar{padding:12px 16px}
  .cal .day{min-height:64px}.cchip{font-size:9px}
  .bar-row .bl{width:96px}.bar-row .be{display:none}
}

/* ---------- LOGIN ---------- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
  background:linear-gradient(135deg,var(--navy) 0%,var(--navy-3) 100%)}
.login-card{background:var(--surf);border-radius:18px;padding:34px 32px;width:390px;max-width:100%;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.login-card .lb{display:flex;align-items:center;gap:11px;justify-content:center;margin-bottom:6px}
.login-card .lb b{font-size:24px;color:var(--navy);letter-spacing:1.5px;font-weight:800}
.login-card h2{text-align:center;font-size:13.5px;color:var(--muted);font-weight:500;margin-bottom:24px}
.login-err{background:var(--danger-soft);color:#B33B2E;padding:10px 13px;border-radius:var(--r-sm);font-size:12.5px;margin-bottom:14px;display:none}
.login-hint{margin-top:20px;font-size:11.5px;color:var(--muted);line-height:1.8;border-top:1px solid var(--line-2);padding-top:15px}
.login-hint b{color:var(--txt-2)}

/* ---- Cálculo do técnico (contratação) ---- */
.mq-row{display:flex;align-items:center;gap:11px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:6px;background:var(--surf)}
.mq-row.off{opacity:.6;background:var(--bg)}
.mq-row .n{flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mq-row .h{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.mq-row .v{font-size:13px;font-weight:700;color:var(--navy);min-width:92px;text-align:right;font-variant-numeric:tabular-nums}
.mq-row .x{cursor:pointer;color:var(--muted);font-weight:700;padding:2px 6px;border-radius:6px}
.mq-row .x:hover{color:var(--danger);background:var(--danger-soft)}
.row-add{display:flex;gap:8px;margin-top:8px}
.row-add select{flex:1;min-width:0}
.tot-box{background:var(--navy);color:#fff;border-radius:12px;padding:15px 17px;margin-top:14px}
.tot-box .l{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:#A9B4D8;font-weight:700}
.tot-box .v{font-size:27px;font-weight:800;letter-spacing:-.5px;margin-top:3px}
.tot-box .s{font-size:11.5px;color:#C3CBE4;margin-top:3px}

/* ---- Seleção de máquinas do catálogo (agendamento) ---- */
.maq-box{border:1px solid var(--line);border-radius:var(--r-sm);padding:12px;background:var(--bg)}
.maq-busca{margin-bottom:12px}
.maq-grupo{margin-bottom:12px}
.maq-grupo:last-of-type{margin-bottom:0}
.maq-cat{font-size:10.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:800;margin-bottom:6px}
.maq-resumo{margin-top:12px;padding-top:11px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--txt-2);line-height:1.5}

/* ---- Regiões do pós vendas ---- */
.reg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:18px}
.reg-card{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:15px 16px;box-shadow:var(--sh);min-width:0}
.reg-nome{font-size:13.5px;font-weight:700;margin-bottom:10px}
.reg-ufs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.uf-chip{font-size:11.5px;font-weight:700;padding:3px 8px;border-radius:6px;background:var(--navy);color:#fff;letter-spacing:.4px}
.uf-chip.aberto{background:var(--warn-soft);color:#8A6205;border:1px solid #F3DFAE}
.reg-qtd{font-size:11.5px;color:var(--muted)}

/* ---- Dias de montagem no cálculo do técnico ---- */
.dias-box{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:16px}
@media(max-width:640px){.dias-box{grid-template-columns:repeat(2,minmax(0,1fr))}}
.db-item{background:var(--bg);border:1px solid var(--line);border-radius:11px;padding:11px 12px;text-align:center;min-width:0}
.db-item.ok{background:var(--ok-soft);border-color:#C5EBDB}
.db-item.alerta{background:var(--warn-soft);border-color:#F5E3B8}
.dbn{font-size:24px;font-weight:800;color:var(--navy);line-height:1.1;font-variant-numeric:tabular-nums}
.dbl{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--txt-2);font-weight:700;margin-top:3px}
.dbs{font-size:10.5px;color:var(--muted);margin-top:2px;line-height:1.35}

/* ---- Autorizações do técnico no cadastro ---- */
.aut-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:7px}
.aut-item{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;padding:7px 9px;
  border:1px solid var(--line);border-radius:9px;background:var(--surf);cursor:pointer}
.aut-item input{width:auto;margin:0}
.aut-item:has(input:checked){background:var(--navy-soft);border-color:var(--navy)}

/* ---- Agenda dos técnicos ---- */
.lg-box{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.lg-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:5px 10px;
  border:1px solid var(--line);border-radius:20px;cursor:pointer;background:var(--surf);white-space:nowrap}
.lg-item:hover{border-color:var(--navy)}
.lg-item.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.lg-item i{width:10px;height:10px;border-radius:3px;display:block}
.lg-item b{font-weight:700;opacity:.7}
.cal-h{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-bottom:5px}
.cal-h div{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:700;text-align:center}
.cal-g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.cd{min-height:86px;border:1px solid var(--line);border-radius:9px;padding:5px;background:var(--surf);min-width:0}
.cd.fora{background:var(--bg);border-style:dashed}
.cd.hoje{border-color:var(--yellow);box-shadow:0 0 0 2px var(--yellow-soft)}
.cdn{font-size:11px;font-weight:700;color:var(--muted);margin-bottom:3px}
.cdev{font-size:10.5px;padding:3px 5px;border-radius:5px;margin-bottom:3px;cursor:pointer;overflow:hidden}
.cdev:hover{filter:brightness(.96)}
.cdev b{font-weight:700}
.cdt{opacity:.75;font-size:9.5px;text-transform:uppercase}
.cdl{font-size:9.5px;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px}
.kpi{background:var(--surf);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--sh)}
.kpi .kl{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700}
.kpi .kv2{font-size:22px;font-weight:800;color:var(--navy);margin-top:4px;font-variant-numeric:tabular-nums}
