
/* ══ VARIÁVEIS STV ══════════════════════════════════════ */
:root{
  --green:#1a7a3c;--green-d:#145f2e;--green-l:#e6f5eb;--green-ll:#f0faf3;
  --amber:#f59e0b;--red:#dc2626;--blue:#3b82f6;--purple:#7c3aed;
  --bg:#0f1a11;--surface:#162019;--surface2:#1c2a1f;--border:#243828;
  --text:#e8f5ea;--text2:#8aad8d;--text3:#6d8f70;
  --shadow:0 2px 8px rgba(0,0,0,.4);--shadow-lg:0 8px 32px rgba(0,0,0,.5);
  --r:8px;--rl:12px;
  color-scheme:dark;
}
html[data-theme="light"]{
  --green:#1a7a3c;--green-d:#145f2e;--green-l:#e4f3e9;--green-ll:#f0f8f3;
  --bg:#f4f7f5;--surface:#ffffff;--surface2:#edf3ef;--border:#d7e3da;
  --text:#18251c;--text2:#4c6655;--text3:#617468;
  --shadow:0 2px 10px rgba(20,95,46,.08);--shadow-lg:0 10px 34px rgba(20,70,38,.14);
  color-scheme:light;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  background:var(--bg);color:var(--text)}

/* ══ LOGIN ══════════════════════════════════════════════ */
#login-screen{
  position:fixed;inset:0;z-index:999;display:flex;align-items:center;justify-content:center;
  overflow-y:auto;
  background:var(--green);
  background-image:
    radial-gradient(ellipse at 15% 85%,rgba(255,255,255,.06) 0%,transparent 55%),
    radial-gradient(ellipse at 85% 15%,rgba(0,0,0,.2) 0%,transparent 55%),
    repeating-linear-gradient(45deg,transparent,transparent 40px,rgba(255,255,255,.015) 40px,rgba(255,255,255,.015) 41px);
}
.lcard{
  width:100%;max-width:400px;margin:12px;
  background:rgba(15,26,17,.95);backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.08);border-radius:16px;
  padding:24px 20px;box-shadow:0 24px 64px rgba(0,0,0,.5);
  max-height:calc(100vh - 24px);overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.llogo-wrap{text-align:center;margin-bottom:16px}
.llogo{width:72px;height:72px;border-radius:50%;overflow:hidden;
  margin:0 auto 10px;box-shadow:0 0 0 4px rgba(255,255,255,.15),0 8px 24px rgba(0,0,0,.4)}
.llogo img{width:100%;height:100%;object-fit:cover}
.lbrand-name{font-size:18px;font-weight:800;color:#fff;letter-spacing:.3px}
.lbrand-sub{font-size:13px;color:rgba(255,255,255,.55);margin-top:4px}
.lerr{background:rgba(220,38,38,.15);border:1px solid rgba(220,38,38,.3);color:#fca5a5;
  font-size:13px;padding:10px 13px;border-radius:var(--r);margin-bottom:14px;display:none}
.lerr.show{display:block}
.flabel{font-size:11px;font-weight:700;color:var(--text2);display:block;
  margin:14px 0 5px;text-transform:uppercase;letter-spacing:.06em}
input[type=text],input[type=email],input[type=password],textarea,select{
  width:100%;border:1.5px solid var(--border);border-radius:var(--r);
  background:var(--surface2);color:var(--text)!important;
  -webkit-text-fill-color:var(--text)!important;caret-color:var(--text);
  padding:9px 12px;font-size:13.5px;font-family:inherit;outline:none;
  transition:border-color .15s,box-shadow .15s;
}
input[type=text]::placeholder,input[type=email]::placeholder,input[type=password]::placeholder,textarea::placeholder{color:var(--text3)!important;opacity:1}
input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(26,122,60,.2)}
textarea{resize:none;line-height:1.5}
.chkrow{display:flex;align-items:center;gap:9px;margin:14px 0 4px}
.chkrow input{width:16px;height:16px;accent-color:var(--green);cursor:pointer}
.chkrow label{font-size:13px;color:var(--text2);cursor:pointer}
.btn{height:38px;border-radius:var(--r);border:1.5px solid var(--border);
  background:var(--surface2);color:var(--text2);font-size:13.5px;font-weight:500;
  cursor:pointer;padding:0 18px;transition:all .15s;white-space:nowrap}
.btn:hover{border-color:var(--green);color:var(--text)}
.btn.primary{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}
.btn.primary:hover{background:var(--green-d)}
.btn.danger{color:var(--red);border-color:rgba(220,38,38,.3)}
.btn.danger:hover{background:rgba(220,38,38,.1)}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn-row{display:flex;gap:10px;margin-top:16px}
.btn-row .btn{flex:1}
#lbtn{font-size:15px;height:46px;letter-spacing:.3px}
.lfooter{text-align:center;font-size:11px;color:rgba(255,255,255,.25);margin-top:20px}
.login-theme-toggle{
  position:fixed;top:calc(16px + env(safe-area-inset-top));right:16px;z-index:1001;width:42px;height:42px;
  border:1px solid var(--border);border-radius:50%;background:var(--surface);
  color:var(--text);display:flex;align-items:center;justify-content:center;
  cursor:pointer;box-shadow:var(--shadow-lg);transition:transform .15s,background .15s;
}
.login-theme-toggle:hover{background:var(--surface2);transform:translateY(-1px)}
.login-theme-toggle svg{width:19px;height:19px}
html[data-theme="light"] #login-screen{
  background:#e8f4ec;
  background-image:
    radial-gradient(ellipse at 15% 85%,rgba(26,122,60,.10) 0%,transparent 55%),
    radial-gradient(ellipse at 85% 15%,rgba(255,255,255,.9) 0%,transparent 55%),
    repeating-linear-gradient(45deg,transparent,transparent 40px,rgba(26,122,60,.025) 40px,rgba(26,122,60,.025) 41px);
}
html[data-theme="light"] .lcard{background:rgba(255,255,255,.97);border-color:var(--border);box-shadow:var(--shadow-lg)}
html[data-theme="light"] .lbrand-name{color:#174b2b}
html[data-theme="light"] .lbrand-sub,html[data-theme="light"] .lfooter{color:var(--text3)}
html[data-theme="light"] .lerr{color:#b91c1c;background:#fef2f2;border-color:#fecaca}
.pwa-install-login{
  display:none;width:100%;min-height:40px;margin-top:10px;border:1px solid rgba(255,255,255,.18);
  border-radius:var(--r);background:transparent;color:#d9f2df;align-items:center;justify-content:center;
  gap:8px;font-size:12.5px;font-weight:700;cursor:pointer;
}
.pwa-install-login.show{display:flex}
.pwa-install-login svg{width:17px;height:17px}
html[data-theme="light"] .pwa-install-login{border-color:var(--border);color:var(--green);background:var(--green-ll)}
.login-link{display:block;margin:10px auto 0;border:0;background:transparent;color:#9ad6aa;font-size:12.5px;font-weight:700;cursor:pointer;padding:4px 8px}
.login-link:hover{text-decoration:underline}
html[data-theme="light"] .login-link{color:var(--green)}

/* ══ APP LAYOUT ══════════════════════════════════════════ */
#app{display:none;height:100vh;width:100vw}
#app.show{display:flex}

/* ─── DESKTOP (≥ 1024px) ─────────────────────────────── */
@media(min-width:1024px){
  #app{display:none;flex-direction:row;height:100vh;overflow:hidden}
  #app.show{display:flex!important}

  /* SIDEBAR */
  .sidebar{
    width:270px;flex-shrink:0;background:var(--surface);
    display:flex;flex-direction:column;height:100vh;border-right:1px solid var(--border);
  }
  .sb-brand{padding:20px 18px 14px;border-bottom:1px solid var(--border)}
  .sb-logo{width:44px;height:44px;border-radius:50%;overflow:hidden;
    box-shadow:0 2px 8px rgba(0,0,0,.4);margin-bottom:10px}
  .sb-logo img{width:100%;height:100%;object-fit:cover}
  .sb-name{font-size:14px;font-weight:800;color:var(--text);line-height:1.2}
  .sb-sub{font-size:11px;color:var(--text3);margin-top:2px}

  .sb-clock{
    padding:14px 18px 10px;border-bottom:1px solid var(--border);
    background:linear-gradient(135deg,var(--surface2) 0%,var(--surface) 100%);
  }
  .sb-time{font-size:28px;font-weight:700;color:var(--green);
    font-variant-numeric:tabular-nums;letter-spacing:1px;line-height:1}
  .sb-date{font-size:11.5px;color:var(--text2);margin-top:4px;font-weight:500}

  .sb-stats{
    display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 14px;
    border-bottom:1px solid var(--border);
  }
  .sb-stat{
    background:var(--surface2);border:1px solid var(--border);
    border-radius:var(--r);padding:10px 12px;cursor:pointer;transition:all .15s;
  }
  .sb-stat:hover{border-color:var(--green);background:var(--green-l)}
  .sb-stat.active{border-color:var(--green);background:var(--green-l)}
  .sb-stat .n{font-size:22px;font-weight:800;line-height:1;color:var(--text)}
  .sb-stat .l{font-size:10.5px;color:var(--text2);margin-top:2px;font-weight:500}
  .sb-stat.danger .n{color:var(--red)}
  .sb-stat.danger{border-color:rgba(220,38,38,.3)}

  .sb-nav{flex:1;overflow-y:auto;padding:10px 10px;scrollbar-width:none}
  .sb-nav::-webkit-scrollbar{display:none}
  .sb-nav-title{font-size:10px;font-weight:700;color:var(--text3);
    text-transform:uppercase;letter-spacing:.08em;padding:8px 8px 6px}
  .sbnav-item{
    display:flex;align-items:center;gap:9px;padding:9px 10px;
    border-radius:var(--r);cursor:pointer;color:var(--text2);font-size:13px;
    font-weight:500;transition:all .15s;margin-bottom:1px;
  }
  .sbnav-item:hover{background:var(--surface2);color:var(--text)}
  .sbnav-item.active{background:var(--green);color:#fff;font-weight:600}
  .sbnav-item svg{width:15px;height:15px;flex-shrink:0}
  .sbnav-badge{
    margin-left:auto;font-size:10px;font-weight:700;padding:2px 7px;
    border-radius:999px;background:rgba(255,255,255,.12);min-width:20px;text-align:center;
  }
  .sbnav-item.active .sbnav-badge{background:rgba(255,255,255,.25)}
  .sbnav-item:not(.active) .sbnav-badge{background:var(--surface2);color:var(--text2)}

  .sb-bottom{padding:12px;border-top:1px solid var(--border)}
  .sb-sync{padding:4px 8px 10px}
  .sb-user{
    display:flex;align-items:center;gap:10px;padding:10px 10px;
    border-radius:var(--r);cursor:pointer;transition:background .15s;
  }
  .sb-user:hover{background:var(--surface2)}
  .sb-user .av{width:36px;height:36px;border-radius:50%;background:var(--green-l);
    color:var(--green);display:flex;align-items:center;justify-content:center;
    font-size:14px;font-weight:700;overflow:hidden;flex-shrink:0;border:2px solid var(--border)}
  .sb-user .av img{width:100%;height:100%;object-fit:cover}
  .sb-user-info{flex:1;min-width:0}
  .sb-user-name{font-size:13px;font-weight:600;color:var(--text);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sb-user-role{font-size:11px;color:var(--text3)}

  /* MAIN */
  .main{flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden;min-width:0}
  .topbar{
    display:flex;align-items:center;gap:12px;padding:0 20px;height:56px;
    background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;
  }
  .topbar-title{font-size:14px;font-weight:700;color:var(--text2);white-space:nowrap}
  .topbar-divider{width:1px;height:18px;background:var(--border)}
  .topbar-search{flex:1;position:relative;max-width:380px}
  .topbar-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);
    color:var(--text3);pointer-events:none;width:14px;height:14px}
  .topbar-search input{
    padding-left:32px;height:34px;font-size:13px;
    background:var(--surface2);border-radius:var(--r);
  }
  .topbar-right{margin-left:auto;display:flex;align-items:center;gap:8px}
  .main-body{flex:1;overflow-y:auto;padding:20px 20px;scrollbar-width:thin;
    scrollbar-color:var(--border) transparent;min-height:0;height:0}

  /* Cards de aviso em grid 2 colunas no desktop */
  .notices-wrap{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}
  .notices-wrap .dayhdr{grid-column:1/-1}

  /* Esconder elementos mobile */
  .mobile-only{display:none!important}
  .fab-wrap{display:none!important}
}

/* ─── MOBILE (< 1024px) ──────────────────────────────── */
@media(max-width:1023px){
  html,body{overflow:auto;height:auto}
  #app{flex-direction:column}
  /* initAuth usa display:none inline; no celular precisamos sobrepor ao concluir o login. */
  #app.show{display:flex!important}
  .sidebar,.topbar{display:none!important}
  .main{display:flex;flex-direction:column;min-height:100vh}
  .main-body{flex:1;padding-bottom:80px;min-height:50vh}

  .mobile-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:calc(14px + env(safe-area-inset-top)) 16px 10px;background:var(--surface);
    border-bottom:1px solid var(--border);sticky:top;position:sticky;top:0;z-index:10;
  }
  .mh-left h1{font-size:17px;font-weight:800;color:var(--text)}
  .mh-left .mh-date{font-size:11px;color:var(--text3);margin-top:2px}
  .mh-right{display:flex;align-items:center;gap:6px}

  .mobile-stats{display:flex;gap:8px;padding:12px 16px 8px}
  .mstat{
    flex:1;background:var(--surface);border:1px solid var(--border);
    border-radius:var(--r);padding:10px 8px;text-align:center;cursor:pointer;transition:all .15s;
  }
  .mstat.active,.mstat:hover{border-color:var(--green)}
  .mstat .n{font-size:20px;font-weight:800;display:block;line-height:1;color:var(--text)}
  .mstat .l{font-size:10px;color:var(--text2);margin-top:3px;font-weight:500}
  .mstat.danger .n{color:var(--red)}
  .mstat.danger{border-color:rgba(220,38,38,.25)}

  .mobile-chips{
    display:flex;gap:6px;padding:0 16px 10px;overflow-x:auto;scrollbar-width:none;
  }
  .mobile-chips::-webkit-scrollbar{display:none}
  .chip{flex-shrink:0;padding:6px 13px;border-radius:999px;
    border:1.5px solid var(--border);background:var(--surface);
    color:var(--text2);font-size:12px;cursor:pointer;white-space:nowrap;transition:all .15s}
  .chip.active{background:var(--green);border-color:var(--green);color:#fff;font-weight:600}

  .mobile-search{padding:0 16px 10px;position:relative}
  .mobile-search svg{position:absolute;left:28px;top:50%;transform:translateY(-50%);
    color:var(--text3);pointer-events:none;width:14px;height:14px}
  .mobile-search input{padding-left:32px;font-size:13px;background:var(--surface2)}

  .notices-wrap{padding:0 16px}
  .desktop-only{display:none!important}

  .fab-wrap{
    position:fixed;bottom:calc(64px + env(safe-area-inset-bottom));right:18px;z-index:50;display:none;
  }
  .fab{
    width:54px;height:54px;border-radius:50%;background:var(--green);color:#fff;
    border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;
    box-shadow:0 4px 20px rgba(26,122,60,.6);transition:transform .15s;
  }
  .fab:active{transform:scale(.92)}
  .fab svg{width:24px;height:24px}
}

/* ══ COMPONENTES COMPARTILHADOS ═══════════════════════════ */
.avatar{
  width:30px;height:30px;border-radius:50%;
  background:var(--green-l);color:var(--green);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;overflow:hidden;flex-shrink:0;
  border:none;cursor:pointer;
}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.lg{width:64px;height:64px;font-size:22px}

.bellbtn{
  width:32px;height:32px;border-radius:50%;border:none;
  background:transparent;color:var(--text2);display:flex;align-items:center;
  justify-content:center;cursor:pointer;position:relative;transition:background .15s;
}
.bellbtn:hover{background:var(--surface2)}
.bellbtn svg{width:17px;height:17px}
.bellbtn.theme-toggle{border:1px solid var(--border);background:var(--surface2);color:var(--text)}
.bellbtn.theme-toggle:hover{border-color:var(--green);background:var(--green-l);color:var(--green)}
.bellbtn.theme-toggle svg{transition:transform .2s}
.bellbtn.theme-toggle:hover svg{transform:rotate(12deg)}
.bell-badge{
  position:absolute;top:0;right:0;background:var(--red);color:#fff;
  font-size:9px;font-weight:800;min-width:14px;height:14px;
  border-radius:999px;display:none;align-items:center;
  justify-content:center;padding:0 3px;
}

.btn-new{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--green);color:#fff;border:none;border-radius:var(--r);
  padding:0 16px;height:34px;font-size:13px;font-weight:600;cursor:pointer;
  transition:background .15s;
}
.btn-new:hover{background:var(--green-d)}
.btn-new svg{width:14px;height:14px}
.btn-new .kbd-hint{
  font-size:10px;opacity:.6;background:rgba(255,255,255,.15);
  border-radius:4px;padding:1px 5px;margin-left:2px;font-family:monospace;
}

/* Badge de sincronização */
.sync-pill{display:inline-flex;align-items:center;gap:4px;font-size:11px;
  padding:3px 9px;border-radius:999px;white-space:nowrap;font-weight:500}
.sync-ok{background:rgba(26,122,60,.15);color:var(--green)}
.sync-busy{background:rgba(245,158,11,.15);color:var(--amber)}
.sync-err{background:rgba(220,38,38,.15);color:var(--red)}

/* ══ CARDS DE AVISO ════════════════════════════════════════ */
.card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);
  padding:14px 15px;display:flex;gap:11px;margin-bottom:10px;
  transition:border-color .15s,box-shadow .15s;
}
.card:hover{border-color:var(--border);box-shadow:var(--shadow)}
.card.resolved,.card.concluded{opacity:.45}
.card.overdue{border-left:3px solid var(--red)}
.card.scheduled{border-left:3px solid var(--blue)}
.cicon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;
  justify-content:center;flex-shrink:0;margin-top:1px}
.cicon svg{width:17px;height:17px}
.cbody{flex:1;min-width:0}
.ctop{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.ccat{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.ctime{font-size:11px;color:var(--text3);flex-shrink:0;white-space:nowrap}
.ctext{font-size:13.5px;line-height:1.45;margin-top:5px;word-break:break-word;color:var(--text)}
.release-editor{display:none;margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface2)}
.release-editor.show{display:block}
.release-editor textarea{min-height:112px;background:var(--surface)}
.release-editor-help{font-size:11px;color:var(--text3);line-height:1.45;margin:6px 0 0}
.release-preview{margin-top:9px;padding:10px 12px;border-radius:var(--r);background:var(--surface);border:1px dashed var(--border)}
.release-preview ol,.notice-release-list{margin:0;padding-left:25px;display:grid;gap:5px}
.release-preview li,.notice-release-list li{font-size:12.5px;line-height:1.4;color:var(--text2);padding-left:3px}
.notice-release-list{margin-top:9px;padding-top:9px;padding-bottom:2px;border-top:1px solid var(--border)}
.card.resolved .ctext,.card.concluded .ctext{
  text-decoration:line-through;text-decoration-color:var(--text3);color:var(--text3)}
.creator-tag{font-size:11px;color:var(--text3);margin-top:3px}
.cstatus{display:flex;align-items:center;gap:5px;font-size:12px;margin-top:7px}
.cstatus svg{width:12px;height:12px;flex-shrink:0}
.cstatus.baixa{color:#22c55e}
.cstatus.concluido{color:var(--green)}
.sched-badge,.overdue-badge{display:flex;align-items:center;gap:5px;
  font-size:11.5px;margin-top:6px}
.sched-badge{color:var(--blue)}
.overdue-badge{color:var(--red);font-weight:600}
.card.overdue{animation:pulse-red 2s ease-in-out infinite}
@keyframes pulse-red{0%,100%{border-left-color:var(--red)}50%{border-left-color:rgba(220,38,38,.3)}}
.sched-badge .countdown-urgent{color:var(--amber);font-weight:600}
.sched-badge svg,.overdue-badge svg{width:12px;height:12px}
.cactions{display:flex;gap:2px;margin-top:9px;padding-top:8px;border-top:1px solid var(--border)}
.ibt{width:30px;height:28px;border-radius:var(--r);border:none;
  background:transparent;color:var(--text3);display:flex;align-items:center;
  justify-content:center;cursor:pointer;transition:all .15s}
.ibt svg{width:14px;height:14px}
.ibt:hover{background:var(--surface2);color:var(--text)}
.ibt.green{color:#22c55e}
.ibt.purple{color:var(--purple)}
.ibt.danger:hover{color:var(--red)}

/* Empty state */
.empty{text-align:center;padding:70px 20px;color:var(--text3)}
.empty svg{width:48px;height:48px;margin-bottom:14px;opacity:.3}
.empty p{font-size:14px;line-height:1.6}
.notice-load-more{display:flex;justify-content:center;padding:8px 0 2px}
.notice-load-more .btn{min-width:220px}

.dayhdr{
  font-size:10.5px;font-weight:700;color:var(--text3);text-transform:uppercase;
  letter-spacing:.06em;margin:20px 0 8px;padding-bottom:6px;
  border-bottom:1px solid var(--border);
}
.dayhdr:first-child{margin-top:0}

/* ══ MENU PERFIL ════════════════════════════════════════════ */
.pmenu{
  position:fixed;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--rl);padding:6px;min-width:220px;z-index:9999;
  display:none;box-shadow:0 8px 32px rgba(0,0,0,.4);
}
.pmenu.open{display:block!important}
@media(min-width:1024px){.pmenu{bottom:70px;left:16px;max-height:80vh;overflow-y:auto}}
@media(max-width:1023px){.pmenu{top:58px;right:12px;max-height:80vh;overflow-y:auto}}
.pmenu-header{
  padding:10px 12px 8px;border-bottom:1px solid var(--border);margin-bottom:4px;
}
.pmenu-name{font-size:13px;font-weight:700;color:var(--text)}
.pmenu-email{font-size:11px;color:var(--text3);margin-top:1px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pmenu-role{display:inline-block;margin-top:4px;font-size:10px;font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;
  background:var(--green-l);color:var(--green);padding:2px 7px;border-radius:999px}
.pitem{
  display:flex;align-items:center;gap:9px;padding:9px 12px;
  font-size:13.5px;border-radius:var(--r);cursor:pointer;color:var(--text2);
  transition:all .15s;
}
.pitem:hover{background:var(--surface2);color:var(--text)}
.pitem.danger{color:var(--red)}
.pitem.danger:hover{background:rgba(220,38,38,.1)}
.pitem svg{width:15px;height:15px;flex-shrink:0;opacity:.7}
.pitem-performance{justify-content:space-between}
.pitem-performance>span:first-of-type{flex:1}
.performance-state{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--green);padding:3px 6px;border-radius:999px;background:var(--green-l)}

/* ══ NOTIFICAÇÕES ═══════════════════════════════════════════ */
.notif-panel{
  position:fixed;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--rl);width:320px;max-width:calc(100vw - 24px);
  max-height:400px;overflow-y:auto;z-index:300;display:none;box-shadow:var(--shadow-lg);
}
.notif-panel.open{display:block}
@media(min-width:1024px){.notif-panel{top:64px;right:14px}}
@media(max-width:1023px){.notif-panel{top:56px;right:12px}}
.notif-hdr{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 14px;border-bottom:1px solid var(--border);
  font-size:13px;font-weight:700;position:sticky;top:0;background:var(--surface);
}
.notif-readall{font-size:11px;font-weight:500;color:var(--green);cursor:pointer}
.notif-item{padding:11px 14px;border-bottom:1px solid var(--border);
  font-size:12.5px;line-height:1.4;cursor:pointer;transition:background .1s}
.notif-item:hover{background:var(--surface2)}
.notif-item.unread{background:rgba(26,122,60,.08)}
.notif-item.unread::before{content:'';display:inline-block;
  width:7px;height:7px;border-radius:50%;background:var(--green);
  margin-right:6px;vertical-align:middle}
.notif-time{font-size:10.5px;color:var(--text3);margin-top:3px}
.notif-empty{padding:28px;text-align:center;font-size:12.5px;color:var(--text3)}

/* ══ MODAIS ═════════════════════════════════════════════════ */
.overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(3px);
  display:flex;justify-content:center;z-index:200;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
.overlay.open{opacity:1;pointer-events:auto}
@media(max-width:1023px){.overlay{align-items:flex-end}}
@media(min-width:1024px){.overlay{align-items:center}}
.modal{
  background:var(--surface);border:1px solid var(--border);
  width:100%;padding:20px 22px 30px;overflow-y:auto;
  transform:translateY(20px) scale(.98);
  transition:transform .25s ease;
}
.overlay.open .modal{transform:translateY(0) scale(1)}
.pwa-install-overlay{z-index:1100}
.security-overlay{z-index:1200}
.pwa-install-hero{display:flex;align-items:center;gap:12px;margin:4px 0 16px}
.pwa-install-hero img{width:58px;height:58px;border-radius:14px;object-fit:cover;box-shadow:var(--shadow)}
.pwa-install-hero strong{display:block;font-size:15px;color:var(--text)}
.pwa-install-hero span{display:block;font-size:11.5px;color:var(--text3);margin-top:3px}
.pwa-install-steps{display:flex;flex-direction:column;gap:9px;margin:12px 0 4px}
.pwa-install-step{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface2);font-size:12.5px;line-height:1.45;color:var(--text2)}
.pwa-install-step b{width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:11px}
@media(display-mode:standalone){.pwa-install-login,#menu-install-app{display:none!important}}
@media(max-width:1023px){.modal{border-radius:18px 18px 0 0;max-height:88vh;max-width:100%}}
@media(min-width:1024px){.modal{border-radius:16px;max-width:520px;max-height:85vh}}
.mhandle{width:36px;height:4px;background:var(--border);
  border-radius:2px;margin:0 auto 18px}
@media(min-width:1024px){.mhandle{display:none}}
.modal h2{font-size:17px;font-weight:800;margin-bottom:14px;color:var(--text)}
.modal-desc{
  font-size:12.5px;color:var(--text2);line-height:1.5;
  margin:-6px 0 14px;padding:9px 13px;
  background:rgba(26,122,60,.08);border-left:3px solid var(--green);
  border-radius:0 var(--r) var(--r) 0;
}

/* Categorias */
.catgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:4px}
.catopt{
  border:1.5px solid var(--border);border-radius:var(--r);padding:11px 6px;
  display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;
  background:var(--surface2);transition:all .15s;
}
.catopt:hover{border-color:var(--green);background:rgba(26,122,60,.06)}
.catopt svg{width:18px;height:18px}
.catopt span{font-size:10.5px;color:var(--text2);text-align:center;font-weight:500}
.catopt.sel{border-color:var(--green);border-width:2px;background:rgba(26,122,60,.1)}
.catopt.sel span{color:var(--green)}

/* Atalhos rápidos */
.quickgrid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px;min-height:20px}
.qchip{
  padding:5px 11px;border-radius:999px;border:1px solid var(--border);
  background:var(--surface2);color:var(--text2);font-size:12px;cursor:pointer;
  transition:all .15s;
}
.qchip:hover{border-color:var(--green);color:var(--green)}

/* Avatar upload */
.avwrap{position:relative;width:64px;height:64px;margin:0 auto 16px}
.avwrap .avedit{
  position:absolute;bottom:-2px;right:-2px;width:22px;height:22px;
  border-radius:50%;background:var(--green);color:#fff;
  display:flex;align-items:center;justify-content:center;
  border:2px solid var(--surface);cursor:pointer;
}
.avwrap .avedit svg{width:11px;height:11px}

/* Equipe */
.team-row{display:flex;align-items:center;gap:10px;border:1px solid var(--border);
  border-radius:var(--r);padding:11px;background:var(--surface2)}
.team-info{flex:1;min-width:0}
.team-name{font-size:13.5px;font-weight:600;color:var(--text)}
.team-email{font-size:11.5px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.team-role{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--green);margin-top:3px}
.team-presence-summary{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text2);margin:-2px 0 10px}
.team-presence-summary strong{color:var(--green);font-weight:800}
.team-presence{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:650;margin-top:4px;color:var(--text3)}
.team-presence.online{color:var(--green)}
.team-presence-dot{width:7px;height:7px;border-radius:50%;background:var(--text3);flex:0 0 7px}
.team-presence.online .team-presence-dot{background:var(--green);box-shadow:0 0 0 3px rgba(22,139,72,.14)}
.team-inactive{opacity:.4}
.team-toggle{font-size:11px;padding:5px 10px;border-radius:999px;
  border:1px solid var(--border);background:var(--surface);
  color:var(--text2);cursor:pointer;transition:all .15s}
.team-toggle:hover{border-color:var(--green);color:var(--green)}
.team-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}
.team-role-select{height:30px!important;min-height:30px!important;width:128px;padding:3px 28px 3px 8px!important;font-size:11px!important}
.team-access-summary{font-size:10.5px;color:var(--text3);margin-top:3px}
.team-action-row{display:flex;align-items:center;gap:5px}
.team-icon-btn{width:31px;height:31px;border:1px solid var(--border);border-radius:8px;background:var(--surface2);color:var(--text2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}
.team-icon-btn:hover{border-color:var(--green);color:var(--green);background:var(--green-l)}
.team-icon-btn.danger:hover{border-color:var(--red);color:var(--red);background:rgba(220,38,38,.08)}
.team-icon-btn svg{width:15px;height:15px}
.password-rules{font-size:11px;color:var(--text3);line-height:1.45;margin-top:6px}
.security-list{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow-y:auto}
.security-event{border:1px solid var(--border);border-left:4px solid var(--amber);border-radius:var(--r);background:var(--surface2);padding:11px 12px}
.security-event.critical{border-left-color:var(--red)}
.security-event.resolved{opacity:.58;border-left-color:var(--green)}
.security-event-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.security-event-title{font-size:13px;font-weight:800;color:var(--text)}
.security-event-time{font-size:10.5px;color:var(--text3);white-space:nowrap}
.security-event-detail{font-size:12px;color:var(--text2);line-height:1.45;margin-top:5px}
.security-event-meta{font-size:10.5px;color:var(--text3);margin-top:5px;word-break:break-word}
.security-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px}
.security-metric{border:1px solid var(--border);border-radius:var(--r);background:var(--surface2);padding:11px 12px}
.security-metric strong{display:block;font-size:20px;line-height:1;color:var(--green);margin-bottom:5px}
.security-metric span{font-size:10.5px;color:var(--text3);font-weight:650}
.security-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:16px 0 8px}
.security-section-head h3{font-size:13px;color:var(--text);margin:0}
.security-section-head span{font-size:10.5px;color:var(--text3)}
.security-global-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(220,38,38,.25);border-radius:var(--r);background:rgba(220,38,38,.05);padding:10px 12px;margin-bottom:12px}
.security-global-actions span{font-size:10.5px;color:var(--text3);line-height:1.4}
.security-global-actions .btn{flex:0 0 auto;margin:0}
.security-session-list{display:flex;flex-direction:column;gap:10px;max-height:42vh;overflow-y:auto;padding-right:2px}
.security-session-group{border:1px solid var(--border);border-radius:var(--r);overflow:hidden;background:var(--surface2)}
.security-session-group-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}
.security-session-owner{min-width:0}
.security-session-owner strong{display:block;font-size:12.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.security-session-owner span{display:block;font-size:10.5px;color:var(--text3);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.security-session{padding:10px 12px;border-bottom:1px solid var(--border);background:var(--surface)}
.security-session:last-child{border-bottom:0}
.security-session-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.security-session-device{font-size:12px;font-weight:750;color:var(--text)}
.security-session-status{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:750;color:var(--text3);white-space:nowrap}
.security-session-status::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--text3)}
.security-session-status.online{color:var(--green)}
.security-session-status.online::before{background:var(--green);box-shadow:0 0 0 3px rgba(22,139,72,.14)}
.security-session-meta{font-size:10.5px;color:var(--text3);line-height:1.5;margin-top:5px;word-break:break-word}
.security-session-actions{display:flex;justify-content:flex-end;margin-top:8px}
.critical-confirm-stage{display:none}
.critical-confirm-stage.active{display:block}
.critical-code-input{font-size:24px!important;letter-spacing:8px;text-align:center;font-weight:800}
@media(max-width:600px){.security-summary{grid-template-columns:1fr 1fr}.security-metric:last-child{grid-column:1/-1}.security-global-actions{align-items:stretch;flex-direction:column}.security-global-actions .btn{width:100%}.security-session-group-head{align-items:flex-start;flex-direction:column}.security-session-group-head .btn-sm{align-self:flex-end}}
.access-modal{max-width:820px!important}
.access-user-card{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);margin-bottom:12px}
.access-user-card .avatar{width:38px;height:38px}
.profile-tabs{display:flex;gap:6px;overflow-x:auto;padding:1px 1px 8px;margin-bottom:8px;scrollbar-width:thin}
.profile-tab{height:34px;padding:0 13px;border:1px solid var(--border);border-radius:999px;background:var(--surface2);color:var(--text2);font-size:11.5px;font-weight:700;white-space:nowrap;cursor:pointer}
.profile-tab.active{border-color:var(--green);background:var(--green-l);color:var(--green)}
.profile-panel{display:none;min-height:250px}
.profile-panel.active{display:block}
.profile-activity-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.profile-activity-card{border:1px solid var(--border);border-radius:var(--r);padding:12px;background:var(--surface2)}
.profile-activity-card strong{display:block;font-size:20px;color:var(--green);margin-bottom:5px}
.profile-activity-card span{font-size:10.5px;color:var(--text3);line-height:1.3}
.profile-detail-list{display:flex;flex-direction:column;gap:8px;max-height:44vh;overflow-y:auto;padding-right:2px}
.profile-detail-empty{font-size:12px;color:var(--text3);text-align:center;padding:28px 10px}
.profile-note-count{text-align:right;font-size:10px;color:var(--text3);margin-top:4px}
.access-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0}
.access-toolbar-actions{display:flex;gap:6px}
.access-grid{display:grid;grid-template-columns:1fr;gap:8px;max-height:43vh;overflow-y:auto;padding:1px}
.access-option{display:flex;align-items:center;gap:10px;padding:10px 11px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);cursor:pointer;min-width:0;transition:border-color .15s,background .15s}
.access-option:hover{border-color:var(--green);background:var(--green-ll)}
.access-option.disabled{opacity:.48;cursor:not-allowed}
.access-option input{width:17px;height:17px;accent-color:var(--green);flex-shrink:0}
.access-option-copy{min-width:0}
.access-option-name{font-size:12.5px;font-weight:700;color:var(--text)}
.access-option-note{font-size:10.5px;color:var(--text3);margin-top:2px;line-height:1.3}
.access-module{border:1px solid var(--border);border-radius:var(--r);background:var(--surface);padding:11px}
.access-module-head{display:flex;align-items:flex-start;gap:9px}
.access-module-head input{width:17px;height:17px;accent-color:var(--green);margin-top:1px}
.access-actions{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0 0 26px}
.access-action{display:flex;align-items:center;gap:5px;border:1px solid var(--border);border-radius:999px;padding:5px 9px;font-size:10.5px;color:var(--text2);background:var(--surface2)}
.access-action input{width:14px;height:14px;accent-color:var(--green)}
.access-action.disabled{opacity:.45}
@media(max-width:600px){.profile-activity-grid{grid-template-columns:1fr 1fr}.profile-activity-card:last-child{grid-column:1/-1}.access-toolbar{align-items:flex-start;flex-direction:column}.team-row{align-items:flex-start}.team-actions{max-width:145px}.profile-panel{min-height:310px}}

/* Help */
.help-item{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid var(--border)}
.help-item:last-child{border-bottom:none}
.help-icon{width:36px;height:36px;border-radius:50%;background:rgba(26,122,60,.12);
  color:var(--green);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.help-icon svg{width:16px;height:16px}
.help-text strong{font-size:13px;font-weight:700;display:block;margin-bottom:2px;color:var(--text)}
.help-text span{font-size:12px;color:var(--text2);line-height:1.4}
.stv-footer{text-align:center;padding:10px 0 0;font-size:11px;color:var(--text3)}

/* Relatório */
.rep-day{font-size:11px;font-weight:700;color:var(--text);margin:12px 0 6px;
  text-transform:uppercase;border-bottom:1px solid var(--border);padding-bottom:4px}
.rep-item{padding:6px 0;border-bottom:1px solid var(--border);font-size:12.5px;line-height:1.5}
.rep-item:last-child{border-bottom:none}

/* Agendamento */
.schedrow{margin-top:10px}

@media print{
  body *{visibility:hidden}
  #print-area,#print-area *{visibility:visible}
  #print-area{position:absolute;left:0;top:0;width:100%;padding:20px;color:#000;background:#fff}
}


/* ══ NOVAS SEÇÕES ═══════════════════════════════════════ */
.section-title{font-size:13px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.btn-sm{height:30px;padding:0 12px;font-size:12px;border-radius:var(--r);border:1.5px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;white-space:nowrap;transition:all .15s}
.btn-sm:hover{border-color:var(--green);color:var(--green)}
.btn-sm.btn-primary{background:var(--green);border-color:var(--green);color:#fff}
.btn-sm.btn-primary:hover{background:var(--green-d)}
.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;white-space:nowrap}

/* Nav mobile bottom */
.mobile-nav{
  position:fixed;bottom:0;left:0;right:0;background:var(--surface);
  border-top:1px solid var(--border);display:flex;z-index:40;
  padding-bottom:env(safe-area-inset-bottom);
}
@media(min-width:1024px){.mobile-nav{display:none!important}}
.mnav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:8px 4px;cursor:pointer;color:var(--text3);font-size:9px;font-weight:600;
  text-transform:uppercase;letter-spacing:.04em;gap:3px;transition:color .15s;min-height:54px}
.mnav-item svg{width:20px;height:20px}
.mnav-item.active{color:var(--green)}
.mnav-item:hover{color:var(--text)}

/* Menu completo de seções no celular */
.mobile-section-menu{
  position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.68);
  display:none;align-items:flex-end;justify-content:center;padding:0;
}
.mobile-section-menu.open{display:flex}
.mobile-section-sheet{
  width:100%;max-height:82vh;overflow-y:auto;background:var(--surface);
  border:1px solid var(--border);border-bottom:none;border-radius:18px 18px 0 0;
  padding:10px 14px calc(18px + env(safe-area-inset-bottom));
  box-shadow:0 -12px 40px rgba(0,0,0,.45);
}
.mobile-section-handle{width:42px;height:4px;border-radius:99px;background:var(--border);margin:2px auto 12px}
.mobile-section-header{display:flex;align-items:center;justify-content:space-between;padding:0 2px 12px}
.mobile-section-header h2{font-size:17px;color:var(--text)}
.mobile-section-close{width:32px;height:32px;border:0;border-radius:50%;background:var(--surface2);color:var(--text2);font-size:20px;cursor:pointer}
.mobile-section-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mobile-section-item{
  min-height:58px;border:1px solid var(--border);border-radius:var(--r);
  background:var(--surface2);color:var(--text2);display:flex;align-items:center;
  gap:9px;padding:10px 12px;font-size:12.5px;font-weight:600;cursor:pointer;text-align:left;
}
.mobile-section-item svg{width:19px;height:19px;flex-shrink:0;color:var(--green)}
.mobile-section-item.active{border-color:var(--green);background:rgba(26,122,60,.12);color:var(--text)}
@media(min-width:1024px){.mobile-section-menu{display:none!important}}

/* Dashboard */
.dash-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px}
@media(min-width:1024px){.dash-grid{grid-template-columns:repeat(4,1fr)}}
.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.dash-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:4px}
.dash-icon svg{width:18px;height:18px}
.dash-num{font-size:32px;font-weight:800;line-height:1;color:var(--text)}
.dash-lbl{font-size:12px;color:var(--text2);font-weight:500}
.dash-card-green .dash-icon{background:rgba(26,122,60,.15);color:var(--green)}
.dash-card-amber .dash-icon{background:rgba(245,158,11,.15);color:var(--amber)}
.dash-card-blue .dash-icon{background:rgba(59,130,246,.15);color:var(--blue)}
.dash-card-purple .dash-icon{background:rgba(124,58,237,.15);color:var(--purple)}
.dash-section-title{font-size:12px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin:0 0 12px}
.dash-chart{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:16px}

/* Ocorrências */
.occ-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:14px 16px;margin-bottom:10px;transition:box-shadow .15s}
.occ-card:hover{box-shadow:var(--shadow)}
.occ-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}
.occ-protocol{font-size:10px;font-weight:700;color:var(--text3);letter-spacing:.05em;text-transform:uppercase;margin-bottom:2px}
.occ-title{font-size:14px;font-weight:700;color:var(--text)}
.occ-desc{font-size:13px;color:var(--text2);line-height:1.4;margin-bottom:10px}
.occ-resolution{font-size:12.5px;color:var(--green);background:rgba(26,122,60,.06);border-radius:var(--r);padding:8px 10px;margin-bottom:8px}
.occ-footer{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;color:var(--text3)}

/* Chaves */
.key-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:14px 16px;margin-bottom:8px;display:flex;gap:12px;align-items:center;transition:all .15s}
.key-card.key-out{border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.04)}
.key-icon{width:40px;height:40px;border-radius:10px;background:var(--surface2);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.key-icon svg{width:18px;height:18px;color:var(--text2)}
.key-card.key-out .key-icon{background:rgba(245,158,11,.15)}
.key-card.key-out .key-icon svg{color:var(--amber)}
.key-name{font-size:14px;font-weight:700;color:var(--text)}
.key-desc{font-size:12px;color:var(--text2);margin-top:2px}
.key-out-info{font-size:11.5px;color:var(--amber);margin-top:4px}

/* Rondas */
.patrol-active{background:var(--surface);border:1px solid var(--green);border-radius:var(--rl);padding:16px;margin-bottom:16px}
.patrol-active-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}
.patrol-checkpoints{display:flex;flex-direction:column;gap:8px}
.cp-item{display:flex;justify-content:space-between;align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:10px 14px;transition:all .15s}
.cp-name{font-size:13.5px;font-weight:600;color:var(--text)}
.patrol-history{margin-top:16px}
.patrol-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0 14px}
.patrol-detail{background:var(--surface2);border-radius:var(--r);padding:9px 10px;min-width:0}
.patrol-detail.wide{grid-column:1/-1}
.patrol-detail strong{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);margin-bottom:3px}
.patrol-detail span{display:block;font-size:12.5px;line-height:1.4;color:var(--text2);white-space:pre-wrap;word-break:break-word}
.patrol-history-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:9px;margin-top:9px}
.patrol-history-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:12px;min-width:0}
.patrol-history-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:7px}
.patrol-history-agent{font-size:13.5px;font-weight:800;color:var(--text)}
.patrol-history-status{font-size:9.5px;font-weight:800;text-transform:uppercase;border-radius:999px;padding:3px 7px;background:rgba(245,158,11,.14);color:var(--amber);white-space:nowrap}
.patrol-history-status.done{background:rgba(26,122,60,.12);color:var(--green)}
.patrol-history-meta{font-size:11px;color:var(--text3);line-height:1.45;margin-bottom:7px}
.patrol-history-text{font-size:12px;color:var(--text2);line-height:1.4;margin-top:4px;word-break:break-word}
@media(max-width:600px){
  .patrol-details{grid-template-columns:1fr}
  .patrol-detail.wide{grid-column:auto}
  .patrol-history-list{grid-template-columns:1fr}
  .cp-item{align-items:flex-start;gap:8px;flex-direction:column}
}

/* Chat */
.chat-wrap{display:flex;flex-direction:column;height:100%}
.chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;min-height:200px;max-height:50vh;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
.chat-empty{text-align:center;color:var(--text3);font-size:13px;padding:40px 20px}
.chat-msg{display:flex;gap:8px;align-items:flex-end}
.chat-msg-mine{flex-direction:row-reverse}
.chat-av{width:28px;height:28px;border-radius:50%;background:var(--green-l);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;overflow:hidden;flex-shrink:0}
.chat-av img{width:100%;height:100%;object-fit:cover}
.chat-bubble-wrap{max-width:75%;display:flex;flex-direction:column}
.chat-sender{font-size:10.5px;color:var(--text3);margin-bottom:3px;font-weight:600}
.chat-bubble{background:var(--surface);border:1px solid var(--border);border-radius:12px;border-bottom-left-radius:3px;padding:9px 13px;font-size:13.5px;line-height:1.4;color:var(--text);word-break:break-word}
.chat-msg-mine .chat-bubble{background:var(--green);border-color:var(--green);color:#fff;border-bottom-left-radius:12px;border-bottom-right-radius:3px}
.chat-time{font-size:10px;color:var(--text3);margin-top:3px;text-align:left}
.chat-msg-mine .chat-time{text-align:right}
.chat-input-wrap{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--surface)}
.chat-input-wrap input{flex:1}
.chat-send-btn{width:40px;height:40px;border-radius:50%;background:var(--green);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}
.chat-send-btn svg{width:18px;height:18px}

/* Auditoria */
.audit-row{padding:10px 0;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:2px}
.audit-row:last-child{border-bottom:none}
.audit-action{font-size:13px;font-weight:600;color:var(--text)}
.audit-detail{font-size:12px;color:var(--text2)}
.audit-meta{font-size:11px;color:var(--text3)}

/* Seção container */
.section-container{padding:20px}
@media(max-width:1023px){.section-container{padding:16px 16px 80px}}

/* Header de seção */
.sec-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}
.sec-header h2{font-size:17px;font-weight:800;color:var(--text)}

/* Adaptações padding mobile por causa da navbar */
@media(max-width:1023px){
  .main-body{padding-bottom:70px!important}
}

/* select */
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237a9b7d' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}


/* Painel de Chaves Operacional */
.kp-zone-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:2px 0 16px}
.kp-zone-filter{border:1px solid var(--border);background:var(--surface);color:var(--text2);border-radius:999px;padding:7px 12px;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s}
.kp-zone-filter:hover{border-color:var(--green);color:var(--green)}
.kp-zone-filter.active{border-color:var(--green);background:var(--green);color:#fff}
.kp-zone-section{margin-bottom:22px}
.kp-zone-heading{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--text);margin-bottom:9px}
.kp-zone-count{font-size:10px;font-weight:700;color:var(--text3);background:var(--surface2);border:1px solid var(--border);border-radius:999px;padding:2px 7px}
.kp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-bottom:20px}
.kp-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--rl);padding:14px 16px;transition:all .15s}
.kp-card.retirada{border-color:var(--amber);background:rgba(245,158,11,.04)}
.kp-card.disponivel{border-color:var(--border)}
.kp-position{font-size:22px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.kp-desc{font-size:13px;color:var(--text2);margin-top:3px;line-height:1.3}
.kp-location{font-size:11.5px;color:var(--text3);margin-top:2px}
.kp-zone-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:3px 8px;border-radius:999px;margin-top:7px}
.kp-zone-badge.sul{background:rgba(26,122,60,.13);color:var(--green)}
.kp-zone-badge.central{background:rgba(124,58,237,.13);color:var(--purple)}
.kp-zone-badge.norte{background:rgba(59,130,246,.14);color:var(--blue)}
.kp-zone-badge.sem_zona{background:var(--surface2);color:var(--text3);border:1px solid var(--border)}
.kp-zone-admin{display:flex;align-items:center;gap:8px;margin-top:9px;padding-top:9px;border-top:1px solid var(--border)}
.kp-zone-admin label{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--text3);white-space:nowrap}
.kp-zone-select{height:32px!important;min-height:32px!important;padding:4px 30px 4px 9px!important;font-size:11.5px!important;flex:1}
.kp-admin-actions{display:flex;justify-content:flex-end;margin-top:8px}
.kp-delete-position{border-color:rgba(220,38,38,.35)!important;color:var(--red)!important;background:rgba(220,38,38,.04)!important}
.kp-delete-position:hover:not(:disabled){border-color:var(--red)!important;background:rgba(220,38,38,.1)!important}
.kp-delete-position:disabled{opacity:.5;cursor:not-allowed}
.kp-status{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:999px;margin-top:8px}
.kp-status.disponivel{background:rgba(26,122,60,.12);color:var(--green)}
.kp-status.retirada{background:rgba(245,158,11,.15);color:var(--amber)}
.kp-agent{font-size:12px;color:var(--amber);margin-top:4px;font-weight:600}
.kp-actions{display:flex;gap:6px;margin-top:10px}
.kp-mov-list{margin-top:16px}
.kp-mov-row{display:flex;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.kp-mov-row:last-child{border-bottom:none}
.kp-mov-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.kp-mov-icon.retirada{background:rgba(245,158,11,.15);color:var(--amber)}
.kp-mov-icon.devolucao{background:rgba(26,122,60,.12);color:var(--green)}
.kp-mov-icon svg{width:14px;height:14px}
.kp-mov-body{flex:1;min-width:0}
.kp-mov-title{font-size:13.5px;font-weight:600;color:var(--text)}
.kp-mov-detail{font-size:12px;color:var(--text2);margin-top:2px}
.kp-mov-time{font-size:11px;color:var(--text3);margin-top:2px}

/* Mural de Recados */
.bulletin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.bulletin-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--rl);padding:16px;transition:all .15s}
.bulletin-card.pinned{border-color:var(--green);border-width:2px}
.bulletin-card.importante{border-left:4px solid var(--amber)}
.bulletin-card.urgente{border-left:4px solid var(--red)}
.bulletin-pin{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--green);margin-bottom:6px;display:flex;align-items:center;gap:4px}
.bulletin-title{font-size:15px;font-weight:700;color:var(--text);margin-bottom:6px}
.bulletin-content{font-size:13px;color:var(--text2);line-height:1.5;white-space:pre-wrap}
.bulletin-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:11.5px;color:var(--text3)}

/* Livro de Plantão Noturno */
.shift-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:16px;margin-bottom:10px}
.shift-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
.shift-agent{font-size:14px;font-weight:700;color:var(--text)}
.shift-type{font-size:11px;font-weight:700;text-transform:uppercase;padding:3px 9px;border-radius:999px;letter-spacing:.04em}
.shift-type.plantao_19_23{background:rgba(59,130,246,.15);color:var(--blue)}
.shift-type.plantao_23_07{background:rgba(124,58,237,.15);color:var(--purple)}
.shift-summary{font-size:13px;color:var(--text2);line-height:1.5;white-space:pre-wrap}
.shift-footer{font-size:11.5px;color:var(--text3);margin-top:10px;padding-top:8px;border-top:1px solid var(--border);display:flex;justify-content:space-between}
.shift-signed{color:var(--green);font-weight:600}

/* Planilha de Sobreaviso Técnico */
.oncall-intro{font-size:12.5px;color:var(--text2);line-height:1.5;margin:-8px 0 16px}
.oncall-block-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:18px 0 9px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text2)}
.oncall-tech-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}
.oncall-tech-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:13px;min-width:0}
.oncall-tech-card.inactive{opacity:.62;border-style:dashed}
.oncall-tech-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}
.oncall-tech-name{font-size:14px;font-weight:800;color:var(--text)}
.oncall-tech-status{font-size:9.5px;font-weight:800;text-transform:uppercase;border-radius:999px;padding:3px 7px;background:rgba(26,122,60,.12);color:var(--green)}
.oncall-tech-status.off{background:var(--surface2);color:var(--text3)}
.oncall-tech-fields{display:grid;grid-template-columns:minmax(120px,1fr) minmax(110px,.8fr);gap:8px}
.oncall-tech-fields .wide{grid-column:1/-1}
.oncall-tech-fields input{height:34px;font-size:12px;padding:6px 9px}
.oncall-tech-detail{font-size:12px;color:var(--text2);line-height:1.45;margin-top:3px;word-break:break-word}
.oncall-tech-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:9px}
.oncall-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:10px;margin-bottom:10px}
.oncall-toolbar label{font-size:11px;font-weight:800;color:var(--text3);text-transform:uppercase;letter-spacing:.04em}
.oncall-toolbar input[type=month]{width:160px;height:32px;padding:4px 8px;font-size:12px}
.oncall-sheet-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);overflow:auto;box-shadow:var(--shadow);max-width:100%}
.oncall-table{width:100%;min-width:1010px;border-collapse:separate;border-spacing:0;font-size:12px}
.oncall-table th{position:sticky;top:0;z-index:1;background:var(--surface2);color:var(--text3);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-align:left;padding:9px 8px;border-bottom:1px solid var(--border);white-space:nowrap}
.oncall-table td{padding:7px 8px;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text2)}
.oncall-table tr:last-child td{border-bottom:none}
.oncall-table tbody tr:hover td{background:rgba(26,122,60,.025)}
.oncall-table input,.oncall-table select{height:34px;min-height:34px;padding:5px 28px 5px 8px;font-size:12px;background-color:var(--surface2)}
.oncall-table input[type=date]{width:137px;padding-right:5px}
.oncall-table input[type=time]{width:93px;padding-right:5px}
.oncall-table .oc-area{width:140px}
.oncall-table .oc-notes{width:190px}
.oncall-table .oc-technician{width:145px}
.oncall-table .oc-status{width:125px}
.oncall-row-actions{display:flex;align-items:center;gap:5px;white-space:nowrap}
.oncall-save-state{font-size:10px;color:var(--text3);min-width:50px}
.oncall-save-state.ok{color:var(--green);font-weight:700}
.oncall-save-state.error{color:var(--red);font-weight:700}
.oncall-status-badge{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.oncall-status-badge.programado{background:rgba(59,130,246,.13);color:var(--blue)}
.oncall-status-badge.acionado{background:rgba(245,158,11,.15);color:var(--amber)}
.oncall-status-badge.concluido{background:rgba(26,122,60,.12);color:var(--green)}
.oncall-empty{padding:34px 18px;text-align:center;color:var(--text3);font-size:13px}
.oncall-access-note{display:flex;align-items:center;gap:7px;border-radius:var(--r);background:var(--surface2);border:1px solid var(--border);padding:8px 10px;font-size:11.5px;color:var(--text2);margin-bottom:10px}
.oncall-occ-caption{font-size:12px;color:var(--text2);line-height:1.45;margin:-3px 0 10px}
.oncall-occ-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
.oncall-occ-toolbar select{width:auto;min-width:170px;height:34px;padding:5px 30px 5px 9px;font-size:12px;background-color:var(--surface)}
.oncall-occ-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px}
.oncall-occ-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:14px;box-shadow:var(--shadow);min-width:0}
.oncall-occ-card.resolvida{border-left:4px solid var(--green)}
.oncall-occ-card.em_atendimento{border-left:4px solid var(--amber)}
.oncall-occ-card.aberta{border-left:4px solid var(--blue)}
.oncall-occ-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px}
.oncall-occ-place{font-size:14px;font-weight:800;color:var(--text);line-height:1.3;word-break:break-word}
.oncall-occ-status{display:inline-flex;flex:0 0 auto;border-radius:999px;padding:4px 8px;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.035em}
.oncall-occ-status.aberta{background:rgba(59,130,246,.13);color:var(--blue)}
.oncall-occ-status.em_atendimento{background:rgba(245,158,11,.15);color:var(--amber)}
.oncall-occ-status.resolvida{background:rgba(26,122,60,.12);color:var(--green)}
.oncall-occ-meta{font-size:11.5px;color:var(--text3);margin-bottom:10px;line-height:1.45}
.oncall-occ-field{background:var(--surface2);border-radius:var(--r);padding:9px 10px;margin-top:7px;font-size:12.5px;color:var(--text2);line-height:1.45;white-space:pre-wrap;word-break:break-word}
.oncall-occ-field strong{display:block;color:var(--text3);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.oncall-occ-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:11px;padding-top:9px;border-top:1px solid var(--border)}
@media(max-width:600px){
  .oncall-tech-grid{grid-template-columns:1fr}
  .oncall-toolbar{align-items:stretch}
  .oncall-toolbar input[type=month]{width:100%;order:2}
  .oncall-toolbar label{width:100%}
  .oncall-occ-list{grid-template-columns:1fr}
  .oncall-occ-toolbar select{width:100%}
}

/* PASSKEYS */
.passkey-login-divider{display:flex;align-items:center;gap:10px;margin:12px 0 8px;color:var(--text3);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.passkey-login-divider::before,.passkey-login-divider::after{content:'';height:1px;background:var(--border);flex:1}
.passkey-login-btn{display:none;width:100%;height:42px;border:1px solid var(--green);border-radius:var(--r);background:var(--green-l);color:var(--green);font-weight:800;font-size:12.5px;cursor:pointer;align-items:center;justify-content:center;gap:8px}
.passkey-login-btn:disabled{opacity:.58;cursor:wait}
.passkey-login-btn svg{width:18px;height:18px}
.passkey-info{border:1px solid var(--border);border-radius:var(--r);background:var(--surface2);padding:11px 12px;font-size:11.5px;line-height:1.5;color:var(--text2);margin-bottom:12px}
.passkey-info strong{color:var(--text)}
.passkey-list{display:flex;flex-direction:column;gap:8px;max-height:240px;overflow-y:auto;margin:10px 0 14px}
.passkey-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);padding:10px 11px}
.passkey-item-main{display:flex;align-items:center;gap:10px;min-width:0}
.passkey-item-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--green-l);color:var(--green);flex:0 0 auto}
.passkey-item-icon svg{width:18px;height:18px}
.passkey-item strong{display:block;font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.passkey-item span{display:block;font-size:10px;color:var(--text3);margin-top:2px}
.passkey-empty{padding:22px 10px;text-align:center;border:1px dashed var(--border);border-radius:var(--r);color:var(--text3);font-size:12px}
.passkey-form{border-top:1px solid var(--border);padding-top:13px}

/* PAINEL DE TV OPERACIONAL */
#section-painel-tv{min-height:100%;background:var(--bg)}
.tv-shell{min-height:calc(100vh - 64px);padding:18px;display:flex;flex-direction:column;gap:14px;background:
  radial-gradient(circle at 8% 0%,rgba(26,122,60,.10),transparent 28%),
  radial-gradient(circle at 96% 12%,rgba(37,99,235,.08),transparent 24%),var(--bg)}
.tv-top{display:flex;align-items:center;justify-content:space-between;gap:18px}
.tv-brand{display:flex;align-items:center;gap:12px;min-width:0}
.tv-brand img{width:48px;height:48px;object-fit:contain;border-radius:12px;background:#fff;padding:5px;box-shadow:var(--shadow)}
.tv-brand h2{font-size:20px;line-height:1.1;margin:0;color:var(--text)}
.tv-brand p{font-size:11px;color:var(--text3);margin:4px 0 0}
.tv-top-right{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.tv-clock{text-align:right;min-width:112px}
.tv-clock strong{display:block;font-size:25px;color:var(--text);letter-spacing:.025em}
.tv-clock span{display:block;font-size:10px;color:var(--text3);text-transform:capitalize}
.tv-live{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(26,122,60,.28);background:var(--green-l);color:var(--green);padding:7px 10px;border-radius:999px;font-size:10.5px;font-weight:800}
.tv-live::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(26,122,60,.13)}
.tv-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.tv-metric{border:1px solid var(--border);border-radius:var(--rl);background:var(--surface);box-shadow:var(--shadow);padding:12px 13px;min-width:0}
.tv-metric strong{display:block;font-size:25px;line-height:1;color:var(--text)}
.tv-metric span{display:block;font-size:10px;color:var(--text3);font-weight:700;margin-top:7px;line-height:1.25}
.tv-metric.urgent{border-color:rgba(220,38,38,.32);background:rgba(220,38,38,.055)}
.tv-metric.urgent strong{color:var(--red)}
.tv-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.85fr);gap:12px;flex:1;min-height:0}
.tv-column{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:12px;min-height:0}
.tv-card{border:1px solid var(--border);border-radius:var(--rl);background:var(--surface);box-shadow:var(--shadow);padding:14px;min-width:0;overflow:hidden}
.tv-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.tv-card-head h3{font-size:13px;color:var(--text);margin:0}
.tv-card-head span{font-size:9.5px;color:var(--text3)}
.tv-order-status{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-bottom:10px}
.tv-status-chip{border-radius:9px;background:var(--surface2);padding:7px;text-align:center}
.tv-status-chip strong{display:block;font-size:15px;color:var(--text)}
.tv-status-chip span{font-size:8.5px;color:var(--text3);display:block;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-list{display:flex;flex-direction:column;gap:7px;overflow-y:auto;max-height:34vh;padding-right:2px}
.tv-order{display:grid;grid-template-columns:105px minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--border);border-radius:10px;padding:9px 10px;background:var(--surface2)}
.tv-order-protocol{font-size:11px;font-weight:850;color:var(--green)}
.tv-order-main{min-width:0}
.tv-order-main strong{display:block;font-size:11.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-order-main span{display:block;font-size:9.5px;color:var(--text3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-badge{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:8.5px;font-weight:850;text-transform:uppercase;letter-spacing:.035em;background:var(--green-l);color:var(--green);white-space:nowrap}
.tv-badge.urgent{background:rgba(220,38,38,.1);color:var(--red)}
.tv-team{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;overflow-y:auto;max-height:42vh}
.tv-person{display:flex;align-items:center;gap:8px;border:1px solid var(--border);border-radius:10px;background:var(--surface2);padding:9px;min-width:0}
.tv-person-avatar{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:var(--green-l);color:var(--green);font-size:11px;font-weight:850;overflow:hidden;flex:0 0 auto}
.tv-person-avatar img{width:100%;height:100%;object-fit:cover}
.tv-person-info{min-width:0}
.tv-person-info strong{display:block;font-size:10.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-person-info span{display:block;font-size:8.5px;color:var(--text3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-person-dot{width:7px;height:7px;border-radius:50%;background:var(--green);margin-left:auto;flex:0 0 auto}
.tv-alert{border-left:3px solid var(--red);border-radius:8px;background:rgba(220,38,38,.055);padding:8px 9px}
.tv-alert strong{display:block;font-size:10.5px;color:var(--text);line-height:1.35}
.tv-alert span{display:block;font-size:8.5px;color:var(--text3);margin-top:3px}
.tv-health{display:flex;gap:6px;flex-wrap:wrap}
.tv-health-item{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;background:var(--surface2);padding:6px 8px;font-size:9px;color:var(--text2);font-weight:700}
.tv-health-item::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--green)}
.tv-health-item.off::before{background:var(--amber)}
.tv-empty{display:grid;place-items:center;min-height:88px;border:1px dashed var(--border);border-radius:10px;color:var(--text3);font-size:11px;text-align:center;padding:10px}
.tv-updated{text-align:right;font-size:9px;color:var(--text3)}
.tv-private .tv-sensitive{filter:blur(8px);user-select:none}
#section-painel-tv:fullscreen{overflow:auto;background:var(--bg)}
#section-painel-tv:fullscreen .tv-shell{min-height:100vh;padding:20px}
@media(max-width:1200px){
  .tv-metrics{grid-template-columns:repeat(3,1fr)}
  .tv-grid{grid-template-columns:1fr}
  .tv-list,.tv-team{max-height:none}
}
@media(max-width:650px){
  .tv-shell{padding:12px;min-height:auto}
  .tv-top{align-items:flex-start;flex-direction:column}
  .tv-top-right{width:100%;justify-content:flex-start}
  .tv-clock{margin-left:auto}
  .tv-metrics{grid-template-columns:repeat(2,1fr)}
  .tv-order-status{grid-template-columns:repeat(2,1fr)}
  .tv-order{grid-template-columns:1fr auto}
  .tv-order-main{grid-column:1/-1;grid-row:2}
  .tv-team{grid-template-columns:1fr}
}
.update-available-icon{
  width:54px;height:54px;border-radius:16px;margin:4px auto 14px;
  display:flex;align-items:center;justify-content:center;
  background:var(--green-l);color:var(--green);font-size:28px;font-weight:900;
}
.update-available-copy{text-align:center}
.update-available-copy p{font-size:13px;line-height:1.55;color:var(--text2);margin-top:7px}

/* Modo leve para aparelhos com GPU/memória limitadas. */
html.performance-mode{--shadow:none;--shadow-lg:none}
html.performance-mode *,html.performance-mode *::before,html.performance-mode *::after{
  animation:none!important;transition:none!important;scroll-behavior:auto!important;
}
html.performance-mode .lcard,html.performance-mode .overlay{
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
}
html.performance-mode .card,html.performance-mode .occ-card,html.performance-mode .key-card,
html.performance-mode .kp-card,html.performance-mode .bulletin-card,html.performance-mode .shift-card,
html.performance-mode .oncall-tech-card,html.performance-mode .oncall-occ-card,
html.performance-mode .audit-row,html.performance-mode .security-session{
  box-shadow:none!important;content-visibility:auto;contain-intrinsic-size:180px;
}
html.performance-mode .login-theme-toggle:hover,html.performance-mode .card:hover{transform:none!important}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

