/* OS Mandara Lanai — identidade da Plataforma (fundo teal, cards 3D) */
:root{
  --bg0:#061722;--bg1:#0b2433;--card:#0e2939;--card2:#12354a;
  --line:rgba(150,205,230,.14);--line2:rgba(150,205,230,.28);
  --text:#eef6fa;--muted:#c3d7e2;--dim:#a3bcc9;  /* os04: contraste alto */
  --acc:#2e97bd;--acc2:#5ec8ea;--acc3:#1c6f8e;
  --ok:#3ecf8e;--warn:#f2b441;--crit:#ff5c63;--sched:#9b8cf7;--info:#4fb3ff;
  --disp:"Cinzel",Georgia,"Times New Roman",serif;--ui:"Source Sans 3","Segoe UI",Arial,sans-serif;--mono:"IBM Plex Mono",Consolas,monospace;
  --r:14px;--sh:0 18px 40px rgba(0,0,0,.45),0 2px 6px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:radial-gradient(1200px 800px at 100% 100%,#1d7597 0%,#0d3a4e 35%,var(--bg0) 75%) fixed;color:var(--text);font:15px/1.45 var(--ui)}
a{color:var(--acc2)}
button{font:inherit;cursor:pointer}
input,select,textarea{font:inherit}
[hidden]{display:none!important}
.btn{border:1px solid var(--line2);background:rgba(255,255,255,.04);color:var(--text);padding:9px 16px;border-radius:10px;font-weight:600;display:inline-flex;align-items:center;gap:8px;line-height:1.2}
.btn.p{background:linear-gradient(180deg,#3aa6cc,#1f7fa3);border-color:#3aa6cc;color:#fff;box-shadow:0 8px 20px rgba(46,151,189,.35)}
.btn.ok{background:linear-gradient(180deg,#3ecf8e,#22a86c);border-color:#3ecf8e;color:#06261a}
.btn.warn{background:rgba(242,180,65,.18);border-color:rgba(242,180,65,.5);color:#ffd88a}
.btn.crit{background:rgba(255,92,99,.16);border-color:rgba(255,92,99,.5);color:#ffb3b6}
.btn.ghost{background:none}.btn.sm{padding:5px 10px;font-size:12.5px;border-radius:8px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn:focus-visible,.nav button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--acc2);outline-offset:2px}
input,select,textarea{background:#0a2130;border:1px solid var(--line2);color:var(--text);border-radius:9px;padding:8px 10px;width:100%}
textarea{min-height:90px;resize:vertical}
select option{background:#0a2130}
label.f{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:#dbe9f1;font-weight:600;margin:0 0 5px}
.field{margin-bottom:13px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.sub{color:var(--muted);margin:4px 0 0}
.muted{color:var(--muted)}.dim{color:var(--dim)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
/* ---------- login ---------- */
.login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:7vh 16px}
.login h1{font-family:var(--disp);font-weight:400;font-size:1.3rem;letter-spacing:.26em;text-transform:uppercase;color:#bcdcea;opacity:.92;margin:0 0 42px;text-align:center}
.login .caixa{width:min(360px,100%);background:rgba(10,32,46,.75);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:26px 26px 22px;box-shadow:var(--sh);backdrop-filter:blur(3px)}
.login .caixa img{width:200px;display:block;margin:0 auto 6px}
.login .caixa .t{color:var(--muted);text-align:center;margin:0 0 18px;font-size:.95rem}
.login input{background:#e8f1f8;color:#0b1f2a;border-color:#cfe3ee}
.login .msg{min-height:20px;color:var(--crit);font-size:13px;margin:6px 0}
.login .voltar{display:block;text-align:center;margin-top:16px;color:var(--muted);font-size:13px;text-decoration:none}
/* ---------- app shell ---------- */
.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh;transition:grid-template-columns .2s}
.app.rec{grid-template-columns:64px 1fr}
.side{background:linear-gradient(180deg,#0a2231,#071a26);border-right:1px solid var(--line);padding:16px 12px;display:flex;flex-direction:column;gap:6px;position:sticky;top:0;height:100vh;overflow:hidden}
.side .topo{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 4px 12px;border-bottom:1px solid var(--line);margin-bottom:8px}
.side .topo img{width:150px;display:block}
.side .topo small{display:block;color:var(--muted);font-family:var(--disp);letter-spacing:.2em;font-size:9.5px;margin-top:6px}
.app.rec .side .topo img,.app.rec .side .topo small,.app.rec .nav button span,.app.rec .side .user div,.app.rec .side .rodape{display:none}
.side .rec-btn{border:1px solid var(--line);background:none;color:var(--muted);border-radius:8px;width:30px;height:30px;display:grid;place-items:center;flex:none}
.nav{display:flex;flex-direction:column;gap:2px}
.nav button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;color:var(--muted);padding:10px 12px;border-radius:10px;font-weight:500;white-space:nowrap}
.app.rec .nav button{justify-content:center;padding:10px 0}
.nav button svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;flex:none}
.nav button:hover{background:rgba(94,200,234,.07);color:var(--text)}
.nav button.on{background:linear-gradient(90deg,rgba(46,151,189,.28),rgba(46,151,189,.06));color:#fff;box-shadow:inset 3px 0 0 var(--acc2)}
.nav .badge{margin-left:auto;background:var(--crit);color:#fff;font-size:11px;font-weight:700;padding:1px 7px;border-radius:99px;font-family:var(--mono)}
.app.rec .nav .badge{display:none}
.side .user{margin-top:auto;border-top:1px solid var(--line);padding-top:12px;display:flex;gap:10px;align-items:center;color:var(--muted);font-size:13px}
.side .rodape{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--acc3),var(--acc2));display:grid;place-items:center;color:#fff;font-weight:700;font-size:11px;flex:none}
.main{padding:22px 28px 60px;min-width:0}
.top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}
h1{font-family:var(--disp);font-weight:600;font-size:24px;letter-spacing:.05em;margin:0;color:#fff;text-wrap:balance}
h2{margin:0;font-size:15px;font-weight:600;letter-spacing:.02em}
.view{display:none}.view.on{display:block}
/* ---------- 3D cards ---------- */
.stage{perspective:1400px}
.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:20px}
.c3{position:relative;background:linear-gradient(160deg,#0b1218,#030608);border:1px solid;border-color:rgba(255,184,92,.55) rgba(200,115,26,.45) rgba(168,90,12,.5) rgba(243,154,43,.5);border-radius:var(--r);padding:16px 18px;box-shadow:0 0 10px rgba(243,154,43,.10),inset 0 1px 0 rgba(255,214,150,.22),inset 0 -1px 0 rgba(80,40,0,.5),0 18px 40px rgba(0,0,0,.6),0 2px 6px rgba(0,0,0,.45);transform-style:preserve-3d;transition:transform .18s ease,box-shadow .18s ease;will-change:transform}
.c3::before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(135deg,rgba(255,255,255,.05),transparent 45%,transparent 70%,rgba(243,154,43,.07));pointer-events:none}
.c3::after{content:"";position:absolute;left:14px;right:14px;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,200,120,.35),transparent);pointer-events:none}
.c3>*{transform:translateZ(14px)}
.c3 .lbl{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:#ffffff;font-weight:700}
.c3 .num{font-family:var(--mono);font-size:32px;font-weight:500;line-height:1.1;margin:8px 0 4px}
.c3 .hint{font-size:13.5px;color:#eaf3f8}
.c3.warn .num{color:var(--warn)}.c3.crit .num{color:var(--crit)}.c3.ok .num{color:var(--ok)}.c3.info .num{color:var(--info)}.c3.sched .num{color:var(--sched)}
.c3.click{cursor:pointer}
.spark{height:26px;margin-top:8px}.spark svg{width:100%;height:100%;overflow:visible}
.alert{display:flex;gap:14px;align-items:center;background:linear-gradient(90deg,rgba(255,92,99,.16),rgba(255,92,99,.04));border:1px solid rgba(255,92,99,.35);border-radius:var(--r);padding:12px 16px;margin-bottom:16px}
.alert b{color:#ffb3b6}.alert span{color:var(--muted);font-size:14px}
.alert .dot{width:10px;height:10px;border-radius:50%;background:var(--crit);box-shadow:0 0 0 6px rgba(255,92,99,.2);flex:none}
/* ---------- panel / table ---------- */
.panel{background:rgba(5,18,27,.88);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);backdrop-filter:blur(6px);margin-bottom:18px}
.panel .ph{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);gap:12px;flex-wrap:wrap}
.panel .pb{padding:16px}
.filters{display:flex;gap:8px;flex-wrap:wrap}.filters select,.filters input{width:auto;min-width:140px}
.wrap{overflow:auto;max-height:calc(100vh - 250px)}   /* os44: rolagem vertical nas tabelas que crescem */
.tbl thead th{position:sticky;top:0;z-index:2;background:#0a1a26;box-shadow:0 1px 0 var(--line)}
.tbl-filtro{display:flex;align-items:center;gap:10px;margin:0 0 8px}.tbl-filtro input{max-width:320px}.tbl-filtro .n{font-size:12px;color:var(--muted);font-family:var(--mono);white-space:nowrap}
#modal-root .wrap{max-height:55vh}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#eef6fa;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600;white-space:nowrap}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tbody tr{cursor:pointer}.tbl tbody tr:hover td{background:rgba(94,200,234,.05)}
.tbl .id{font-family:var(--mono);color:var(--acc2);font-size:13px;white-space:nowrap}
.tbl .t{font-weight:600;color:#fff}.tbl .loc{color:var(--muted);font-size:12.5px;margin-top:2px}
.pill{display:inline-block;white-space:nowrap;padding:2px 9px;border-radius:99px;font-size:11.5px;font-weight:700;letter-spacing:.03em;border:1px solid transparent}
.pill.warn{background:rgba(242,180,65,.14);color:var(--warn);border-color:rgba(242,180,65,.35)}
.pill.crit{background:rgba(255,92,99,.14);color:var(--crit);border-color:rgba(255,92,99,.35)}
.pill.ok{background:rgba(62,207,142,.14);color:var(--ok);border-color:rgba(62,207,142,.35)}
.pill.info{background:rgba(79,179,255,.14);color:var(--info);border-color:rgba(79,179,255,.35)}
.pill.sched{background:rgba(155,140,247,.14);color:var(--sched);border-color:rgba(155,140,247,.35)}
.pill.dim{background:rgba(255,255,255,.05);color:var(--muted);border-color:var(--line)}
.sys{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);white-space:nowrap}.sys i{width:8px;height:8px;border-radius:2px;display:inline-block;flex:none}
.tec{display:flex;align-items:center;gap:8px;white-space:nowrap}.tec .avatar{width:26px;height:26px;font-size:10px}
.sla{min-width:130px}.bar{height:6px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden;margin-top:5px}.bar i{display:block;height:100%;border-radius:99px}
.sla small{font-family:var(--mono);font-size:11px;color:var(--muted);white-space:nowrap}
.empty{padding:26px;text-align:center;color:var(--dim)}
.g2{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}
.list .row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line)}
.list .row:last-child{border-bottom:0}.list .who{font-weight:600;font-size:14px}.list .meta{color:var(--muted);font-size:12.5px}
.hbar{height:8px;border-radius:99px;background:rgba(255,255,255,.07);width:120px;overflow:hidden}.hbar i{display:block;height:100%;background:linear-gradient(90deg,var(--acc3),var(--acc2))}
.pct{font-family:var(--mono);font-size:13px;color:var(--acc2);min-width:40px;text-align:right}
.blocos{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:6px;padding:14px 16px}
.bl{aspect-ratio:1;border-radius:8px;display:grid;place-items:center;font-family:var(--mono);font-size:11px;border:1px solid var(--line);background:rgba(94,200,234,.06);color:var(--muted);text-align:center;padding:2px;overflow:hidden}
.bl.h1{background:rgba(242,180,65,.25);color:#ffd88a}.bl.h2{background:rgba(255,92,99,.28);color:#ffb3b6}.bl.h3{background:rgba(255,92,99,.5);color:#fff;border-color:var(--crit)}
/* ---------- forms ---------- */
.seg{display:flex;background:#0a2130;border:1px solid var(--line2);border-radius:10px;padding:3px;gap:3px;flex-wrap:wrap}
.seg button{border:0;background:none;color:var(--muted);padding:7px 12px;border-radius:8px;font-weight:600;font-size:13px}
.seg button.on{background:var(--acc);color:#fff}
.seg.urg button.on[data-v=baixa]{background:#2f6f8a}.seg.urg button.on[data-v=media]{background:#b9862a}.seg.urg button.on[data-v=alta]{background:#c9414a}.seg.urg button.on[data-v=urgente]{background:#ff5c63}
.systems{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.systems button{border:1px solid var(--line2);background:#0a2130;color:var(--muted);border-radius:10px;padding:9px 6px;font-size:12.5px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:6px}
.systems button i{width:20px;height:20px;border-radius:6px;display:block}
.systems button.on{border-color:var(--acc2);color:#fff;background:rgba(46,151,189,.18);box-shadow:0 0 0 3px rgba(94,200,234,.15)}
.chips{display:flex;gap:6px;flex-wrap:wrap}.chips button{border:1px solid var(--line2);background:none;color:var(--muted);border-radius:99px;padding:4px 11px;font-size:12.5px}.chips button.on{border-color:var(--acc2);color:#fff;background:rgba(46,151,189,.2)}
.drop{border:1.5px dashed var(--line2);border-radius:12px;padding:16px;text-align:center;color:var(--muted);background:rgba(255,255,255,.02);cursor:pointer}
.drop b{color:var(--text)}
/* os10: seletor de arquivos (camera / video / arquivo + arrastar) */
.pend-terc summary{cursor:pointer;list-style:none}.pend-terc summary::-webkit-details-marker{display:none}.pend-terc summary h2::before{content:"▸ ";color:var(--warn)}.pend-terc[open] summary h2::before{content:"▾ "}
.picker{border:1.5px dashed var(--line2);border-radius:12px;padding:12px;background:rgba(255,255,255,.02);transition:border-color .15s,background .15s}
.picker.over{border-color:var(--acc2);background:rgba(94,200,234,.08)}
.pk-btns{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.pk-btns .btn{min-width:110px;justify-content:center;font-size:14px;padding:10px 14px}
.pk-dica{text-align:center;color:var(--muted);font-size:12.5px;margin-top:8px}.pk-dica b{color:var(--text)}
.thumbs a,.thumbs div{position:relative}.pk-x{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;border:0;background:var(--crit);color:#fff;font-size:13px;line-height:20px;padding:0;cursor:pointer}
.fila-badge{position:fixed;left:50%;top:10px;transform:translateX(-50%);z-index:98;background:#3a2a0c;border:1px solid var(--warn);color:#ffe2a8;padding:7px 14px;border-radius:99px;font-size:13px;font-weight:600;box-shadow:var(--sh);cursor:pointer}
.toast.warn{border-color:var(--warn);color:#ffe2a8}
@media (max-width:760px){.thumbs a,.thumbs div{width:88px;height:88px}.pk-btns .btn{flex:1}}
.thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.thumbs a,.thumbs div{width:72px;height:72px;border-radius:8px;overflow:hidden;border:1px solid var(--line2);background:#0a2130;display:grid;place-items:center;font-size:10px;color:var(--muted);font-family:var(--mono);text-align:center}
.thumbs img{width:100%;height:100%;object-fit:cover}
.reinc{background:rgba(242,180,65,.1);border:1px solid rgba(242,180,65,.35);border-radius:10px;padding:10px 12px;font-size:13px;color:#ffd88a;margin-bottom:12px}
.reinc b{color:#fff}
.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px;flex-wrap:wrap}
.form{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}
.aviso-sla{font-size:12.5px;color:var(--muted);margin-top:4px}
/* ---------- kanban ---------- */
.kb{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:start}
.col{background:rgba(9,32,45,.6);border:1px solid var(--line);border-radius:var(--r);padding:10px;min-height:120px;max-height:calc(100vh - 170px);overflow-y:auto}   /* os44: coluna rola, pagina nao */
.col h3{position:sticky;top:-10px;z-index:1;background:#0b1f2b;padding:8px 6px;margin:-10px -4px 8px;border-radius:8px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;gap:8px;color:var(--muted)}
.col h3 i{width:9px;height:9px;border-radius:50%;display:inline-block}
.col h3 em{margin-left:auto;font-style:normal;font-family:var(--mono);background:rgba(255,255,255,.07);padding:1px 8px;border-radius:99px;font-size:11px}
.kc{margin-bottom:10px;padding:12px;cursor:pointer}
.kc .k1{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:12px;color:var(--acc2);gap:6px}
.kc h4{margin:6px 0 4px;font-size:14px;font-weight:600;color:#fff}
.kc .k2{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:12px;color:var(--muted)}
.kc.st{border-left:3px solid var(--crit)}
/* ---------- drawer ---------- */
.scrim{position:fixed;inset:0;background:rgba(2,10,16,.55);opacity:0;pointer-events:none;transition:opacity .25s;z-index:40;backdrop-filter:blur(2px)}
.scrim.on{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:0;height:100vh;width:min(780px,96vw);background:linear-gradient(180deg,#0c2938,#081e2b);border-left:1px solid var(--line2);box-shadow:-30px 0 60px rgba(0,0,0,.6);transform:translateX(102%);transition:transform .28s ease;overflow:auto;padding:20px 24px 40px;z-index:50}
.drawer.on{transform:none}
.drawer h1{font-size:21px}
.tl{padding:4px 16px 12px}
.ev{display:grid;grid-template-columns:22px 1fr;gap:12px;padding:9px 0;position:relative}
.ev::before{content:"";position:absolute;left:10px;top:28px;bottom:-9px;width:2px;background:var(--line)}
.ev:last-child::before{display:none}
.ev i{width:22px;height:22px;border-radius:50%;background:var(--card2);border:2px solid var(--acc);display:block;margin-top:1px}
.ev.status i{border-color:var(--ok)}.ev.aviso i{border-color:var(--dim);background:transparent}.ev.sla i{border-color:var(--crit);background:var(--crit)}.ev.anexo i{border-color:var(--sched)}.ev.abertura i{background:var(--acc)}
.ev b{display:block;font-size:14px}.ev span{color:var(--muted);font-size:12.5px;white-space:pre-wrap}.ev small{font-family:var(--mono);color:var(--dim);font-size:11px;display:block;margin-top:2px}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;padding:14px 16px}
.kv div b{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:3px}
.kv div span{font-size:14px}
.stars{color:var(--warn);letter-spacing:2px}
.acoes{display:flex;gap:8px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--line)}
.modal{position:fixed;inset:0;display:grid;place-items:center;background:rgba(2,10,16,.6);z-index:60;padding:12px}
.modal .box{background:#0c2938;border:1px solid var(--line2);border-radius:14px;padding:20px;width:min(520px,94vw);box-shadow:var(--sh);max-height:calc(100vh - 24px);overflow-y:auto;overscroll-behavior:contain}
.seg button{padding:7px 14px;font-size:13px;font-weight:600}
/* ---------- calendar ---------- */
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.cal .d{background:rgba(9,32,45,.8);min-height:92px;padding:6px;min-width:0}
.cal .dh{background:#0a2130;padding:8px;font-size:11px;letter-spacing:.14px;text-transform:uppercase;color:var(--muted);text-align:center;min-height:0}
.cal .n{font-family:var(--mono);font-size:12px;color:var(--dim)}.cal .d.today .n{color:var(--acc2);font-weight:600}
.cal .d.fer .n::after{content:" feriado";font-size:9px;color:var(--warn)}
.evt{font-size:11px;padding:2px 6px;border-radius:6px;margin-top:3px;white-space:normal;overflow-wrap:anywhere;line-height:1.25;font-weight:600;cursor:pointer}   /* os44: quebra de linha, colunas iguais */
.evt.plano{background:rgba(155,140,247,.25);color:#d7d0ff}.evt.vence{background:rgba(242,180,65,.25);color:#ffd88a}.evt.concluida{background:rgba(62,207,142,.22);color:#b8f2d6}.evt.agendada{background:rgba(79,179,255,.22);color:#bfe3ff}
/* ---------- reports ---------- */
.rep{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.chart{padding:16px}.chart svg{width:100%;height:200px;overflow:visible}.chart svg g.clk{cursor:pointer}.chart svg g.clk:hover rect{filter:brightness(1.3)}.list .row.clk{cursor:pointer}.list .row.clk:hover{background:rgba(94,200,234,.08)}.ax{fill:var(--muted);font-family:var(--mono);font-size:11px}
.menu-btn{display:none;border:1px solid var(--line2);background:none;color:var(--text);border-radius:8px;padding:6px 10px}
/* os61: no celular (app instalado) a barra de status do aparelho cobria o botao "menu" — respeita a area segura */
.barra-menu{display:flex;gap:10px;align-items:center;margin-bottom:10px}
/* ---------- tecnico (celular) ---------- */
.mob-lista .c3{margin-bottom:10px;padding:12px 14px;cursor:pointer}
.mob-lista .k1{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11.5px;color:var(--acc2);gap:6px;flex-wrap:wrap}
.mob-lista h4{margin:4px 0 2px;font-size:14.5px;color:#fff}
.mob-lista .k2{display:flex;gap:8px;margin-top:10px}.mob-lista .k2 .btn{flex:1;justify-content:center}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#0c2938;border:1px solid var(--line2);color:var(--text);padding:10px 16px;border-radius:10px;box-shadow:var(--sh);z-index:99;font-size:14px;max-width:90vw}
.toast.erro{border-color:var(--crit);color:#ffb3b6}.toast.ok{border-color:var(--ok)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.tabs button{background:rgba(255,255,255,.04);border:1px solid var(--line2);color:var(--muted);padding:7px 14px;border-radius:20px;font-size:13px}
.tabs button.on{background:var(--acc);color:#fff;border-color:var(--acc)}
.footer{color:var(--dim);font-size:12px;margin-top:22px;border-top:1px solid var(--line);padding-top:10px}
@media (max-width:1180px){.kpis{grid-template-columns:repeat(3,1fr)}.kb{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){.g2,.rep,.form{grid-template-columns:1fr}.kb{grid-template-columns:repeat(2,1fr)}.systems{grid-template-columns:repeat(3,1fr)}}
@media (max-width:760px){
  .app,.app.rec{grid-template-columns:1fr}
  .side{position:fixed;left:0;top:0;bottom:0;width:250px;z-index:45;transform:translateX(-100%);transition:transform .2s;height:100vh;
        padding-top:calc(14px + env(safe-area-inset-top,0px));overflow:auto}
  .side.aberto{transform:none}
  .main{padding:calc(10px + env(safe-area-inset-top,0px)) 14px 80px}
  /* os61: a barra do menu fica colada no topo (abaixo do relogio do celular) e acompanha a rolagem */
  .barra-menu{position:sticky;top:0;z-index:30;
    margin:calc(-10px - env(safe-area-inset-top,0px)) -14px 10px;
    padding:calc(8px + env(safe-area-inset-top,0px)) 14px 8px;
    background:rgba(9,32,45,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
  .menu-btn{min-height:40px;padding:8px 14px;font-size:15px}
  .drawer{padding-top:calc(20px + env(safe-area-inset-top,0px))}
  .kpis{grid-template-columns:repeat(2,1fr)}.kb{grid-template-columns:1fr}.row3{grid-template-columns:1fr}.row2{grid-template-columns:1fr}
  .cal .d{min-height:54px;padding:3px}.evt{font-size:9.5px}
  .menu-btn{display:inline-flex}
  h1{font-size:19px}
}
@media (prefers-reduced-motion:reduce){.c3,.drawer,.scrim,.app,.side{transition:none}}
input[readonly]{background:#071823;color:var(--muted);cursor:not-allowed}

/* os58: dica ao passar o mouse nos cards do painel */
.dica-box{position:fixed;z-index:999;display:none;max-width:340px;background:#0f1a24;color:#e6eef5;border:1px solid rgba(94,200,234,.4);border-radius:10px;padding:10px 12px;font-size:12.5px;line-height:1.5;box-shadow:0 10px 30px rgba(0,0,0,.65);pointer-events:none;opacity:0;transition:opacity .12s}
.dica-i{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1px solid rgba(94,200,234,.6);color:#5ec8ea;font-size:10px;font-weight:700;font-style:italic;font-family:Georgia,serif;margin-left:6px;vertical-align:middle;cursor:help}
[data-dica]{cursor:help}.c3.click[data-dica]{cursor:pointer}

/* os63: checklists — criacao (checkins) e execucao (CONFORME / NAO CONFORME, fotos, assinatura) */
.ck-item{display:grid;grid-template-columns:110px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.ck-item .ck-n{font-family:var(--mono);font-size:12px;color:var(--acc2);letter-spacing:.06em;white-space:nowrap}
.ck-item .ck-prev{grid-column:2;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ck-box{font-size:11.5px;letter-spacing:.08em;color:var(--muted);border:1px solid var(--line2);border-radius:6px;padding:2px 8px}
.chk-prog{display:flex;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:12.5px;color:var(--acc2);margin:-6px 0 14px}
.chk-it{border-left:4px solid var(--line2)}.chk-it.ok{border-left-color:var(--ok)}.chk-it.nc{border-left-color:var(--crit)}
.chk-t{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.chk-t .chk-n{font-family:var(--mono);font-size:11.5px;color:var(--acc2);letter-spacing:.08em}
.chk-t h3{margin:0;font-size:17px;color:#fff}
.chk-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.chk-op{border:2px solid var(--line2);background:rgba(255,255,255,.03);color:var(--muted);border-radius:12px;padding:14px 10px;font-weight:700;font-size:15px;letter-spacing:.04em}
.chk-op.ok.on{border-color:var(--ok);background:rgba(62,207,142,.18);color:#b8f2d6}
.chk-op.nc.on{border-color:var(--crit);background:rgba(255,92,99,.18);color:#ffb3b6}
.chk-op:disabled{cursor:default;opacity:.85}
.chk-ass{border:1.5px dashed var(--line2);border-radius:12px;background:#fff;overflow:hidden;max-width:600px}
.chk-ass canvas{width:100%;height:auto;display:block;touch-action:none;cursor:crosshair}
.chk-ass.done{background:#fff;padding:6px;max-width:320px}.chk-ass.done img{width:100%;display:block}
@media (max-width:760px){.ck-item{grid-template-columns:1fr auto}.ck-item .ck-n{grid-column:1/-1}.ck-item .ck-prev{grid-column:1/-1}.chk-opts{grid-template-columns:1fr 1fr}.chk-op{font-size:14px;padding:14px 6px}}

/* os70: troca de tela — fantasma do conteudo antigo se dissolve por cima do novo (crossfade), barra de
   progresso fina no topo, esqueleto na 1a visita. Sem esmaecer a tela, sem pulos. */
.view{position:relative}
.vw-fantasma{position:absolute;left:0;right:0;top:0;bottom:0;overflow:hidden;pointer-events:none;/* os71 */z-index:3;opacity:1;transition:opacity .3s ease;
  background:radial-gradient(1200px 800px at 100% 100%,#1d7597 0%,#0d3a4e 35%,var(--bg0) 75%) fixed}
.vw-fantasma.some{opacity:0}
.view.entra{animation:vwEntra .25s ease-out}
@keyframes vwEntra{from{opacity:0}to{opacity:1}}
#vw-barra{position:fixed;top:0;left:0;height:2px;width:0;background:linear-gradient(90deg,var(--info),#9fe3ff);z-index:9999;opacity:0;transition:width .6s ease,opacity .25s;pointer-events:none}
#vw-barra.on{opacity:1;width:72%}
#vw-barra.fim{width:100%;opacity:0;transition:width .2s ease,opacity .3s ease .15s}
.skel{padding:18px 6px;min-height:60vh}.sk{height:14px;border-radius:7px;margin:14px 0;background:linear-gradient(90deg,rgba(255,255,255,.05),rgba(255,255,255,.13),rgba(255,255,255,.05));background-size:200% 100%;animation:skSh 1.1s linear infinite}
.sk.h{height:28px;width:38%;margin-bottom:22px}.sk.w{width:68%}
@keyframes skSh{from{background-position:200% 0}to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.view.entra{animation:none}.sk{animation:none}.vw-fantasma{transition:none;display:none}}

/* os72: select com busca (local da OS / plano) */
.sel-busca{position:relative}
.sel-busca input.nao-escolhido{border-color:var(--crit);background:rgba(255,92,99,.10)}   /* os79 */
.sel-busca-lista{position:absolute;left:0;right:0;top:calc(100% + 4px);max-height:240px;overflow:auto;background:#0c2837;border:1px solid var(--line2);border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.55);z-index:30}
.sel-busca-lista div{padding:8px 11px;cursor:pointer;font-size:14px;border-bottom:1px solid rgba(255,255,255,.05)}
.sel-busca-lista div:hover,.sel-busca-lista div.ativo{background:rgba(46,151,189,.22)}
.sel-busca-lista div.on{color:#9fe3ff}
.sel-busca-lista .nada{color:var(--dim);cursor:default}

.fila-badge.erro{background:#3a0f14;border-color:var(--crit);color:#ffb3b8}   /* os77 */


/* ===== os80 — grupo do relatorio mensal na barra de filtros dos Relatorios.
   Escopo: SO .rel-pdf. Reverter = apagar este bloco. */
.rel-pdf { display: inline-flex; gap: 6px; align-items: center; }
.rel-pdf input[type=month] { min-width: 122px; }
@media (max-width: 720px) { .rel-pdf { width: 100%; margin-top: 6px; } }
