/* NOXCARE CSS v3 - UNIFIED LAYOUT SYSTEM */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--bg-base:#f0f2f5;--bg-surface:#ffffff;--bg-elevated:#f8fafc;--bg-hover:#f1f5f9;--bg-overlay:rgba(15,23,42,.55);--accent:#3b82f6;--accent-dark:#2563eb;--accent-light:#93c5fd;--accent-glow:rgba(59,130,246,.18);--accent-muted:#dbeafe;--text-primary:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--border:#e2e8f0;--border-light:#f1f5f9;--c-success:#22c55e;--c-success-bg:#dcfce7;--c-success-text:#15803d;--c-warning:#eab308;--c-warning-bg:#fefce8;--c-warning-text:#a16207;--c-danger:#ef4444;--c-danger-bg:#fef2f2;--c-danger-text:#dc2626;--c-info:#3b82f6;--c-info-bg:#eff6ff;--c-info-text:#1e40af;--font:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;--font-mono:JetBrains Mono,monospace;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--sidebar-width:240px;--topbar-height:64px;--r-xs:4px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-xl:20px;--shadow-sm:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--shadow-md:0 4px 12px rgba(0,0,0,.08),0 2px 4px rgba(0,0,0,.04);--shadow-lg:0 8px 30px rgba(0,0,0,.12),0 4px 8px rgba(0,0,0,.06);--ease-out:cubic-bezier(.4,0,.2,1);--t-fast:120ms;--t-base:200ms;--t-slow:320ms}
html{font-size:14px;scroll-behavior:smooth}
body{font-family:var(--font);background:var(--bg-base);color:var(--text-primary);min-height:100vh;margin:0;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
::selection{background:var(--accent-muted);color:var(--text-primary)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}
#app{display:flex;min-height:100vh}
.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);height:100vh;position:fixed;left:0;top:0;background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:100;transition:left var(--t-slow) var(--ease-out)}
.sidebar.collapsed{left:calc(-1*var(--sidebar-width))}
.sidebar-logo{display:flex;align-items:center;gap:12px;padding:20px var(--space-lg);border-bottom:1px solid var(--border)}
.sidebar-logo-icon{width:40px;height:40px;background:var(--accent);color:#fff;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.sidebar-logo-text{font-size:18px;font-weight:700;color:var(--text-primary)}
.sidebar-nav{flex:1;padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs)}
.sidebar-link{display:flex;align-items:center;gap:12px;padding:12px var(--space-md);border-radius:var(--r-md);color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:500;transition:all var(--t-fast)}
.sidebar-link i{font-size:18px;width:20px;text-align:center}
.sidebar-link:hover{background:var(--bg-elevated);color:var(--text-primary)}
.sidebar-link.active{background:var(--accent-muted);color:var(--accent);font-weight:600}
.sidebar-footer{padding:var(--space-md);border-top:1px solid var(--border)}
.btn-logout{width:100%;padding:10px;background:none;border:1px solid var(--border);border-radius:var(--r-md);font-size:13px;color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:all var(--t-fast)}
.btn-logout:hover{background:var(--bg-elevated);color:var(--text-primary)}
.main-wrap{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh;background:var(--bg-base)}
.topbar{height:var(--topbar-height);background:var(--bg-surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-lg);flex-shrink:0;position:sticky;top:0;z-index:50}
.topbar-left{display:flex;align-items:center;gap:var(--space-lg)}
.topbar-title{font-size:18px;font-weight:700;color:var(--text-primary)}
.topbar-right{display:flex;align-items:center;gap:var(--space-sm)}
.topbar-status{display:flex;align-items:center;gap:var(--space-sm);font-size:13px;color:var(--text-muted)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}
.dot.online{background:var(--c-success);box-shadow:0 0 8px var(--c-success)}
.dot.offline{background:var(--c-danger)}
.view{flex:1;display:flex;flex-direction:column}
.content{flex:1;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}
.kpi-grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-md)}
.kpi-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--space-lg);display:flex;align-items:flex-start;gap:var(--space-md);box-shadow:var(--shadow-sm);transition:all var(--t-base)}
.kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.kpi-icon-wrap{width:48px;height:48px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.kpi-icon-wrap i{font-size:22px}
.kpi-body{flex:1;min-width:0}
.kpi-label{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.kpi-value{font-size:28px;font-weight:700;color:var(--text-primary);line-height:1.2}
.kpi-sub{font-size:12px;color:var(--text-muted);margin-top:2px}
.kpi-bar-track{height:4px;background:var(--bg-base);border-radius:2px;margin-top:var(--space-sm);overflow:hidden}
.kpi-bar-fill{height:100%;border-radius:2px;transition:width var(--t-slow) var(--ease-out)}
.content-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg)}
.filter-group{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}
.filter-group input,.filter-group select{padding:8px 12px;border:1px solid var(--border);border-radius:var(--r-md);font-size:13px;font-family:inherit;color:var(--text-primary);background:var(--bg-surface);transition:border-color var(--t-fast)}
.filter-group input:focus,.filter-group select:focus{border-color:var(--accent);outline:none}
.table-meta{font-size:13px;color:var(--text-muted);white-space:nowrap}
.p-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.p-card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-light);background:var(--bg-elevated)}
.p-card-title{font-size:15px;font-weight:700;color:var(--text-primary)}
.table-container{overflow-x:auto}
.p-datatable{width:100%;border-collapse:collapse;font-size:13px}
.p-datatable thead th{background:var(--bg-elevated);padding:12px 16px;text-align:left;font-weight:600;font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);white-space:nowrap}
.p-datatable tbody td{padding:14px 16px;border-bottom:1px solid var(--border-light);color:var(--text-primary)}
.p-datatable tbody tr:hover{background:var(--bg-elevated)}
.p-datatable tbody tr:last-child td{border-bottom:none}
.sortable{cursor:pointer;user-select:none}
.sortable:hover{color:var(--text-primary)}
.sort-icon{font-size:10px;margin-left:4px}
.td-mono{font-family:var(--font-mono);font-size:12px}
.td-urg{width:6px;padding:0!important}
.status-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--r-full);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.status-badge.success{background:var(--c-success-bg);color:var(--c-success-text)}
.status-badge.warning{background:var(--c-warning-bg);color:var(--c-warning-text)}
.status-badge.danger{background:var(--c-danger-bg);color:var(--c-danger-text)}
.status-badge.info{background:var(--c-info-bg);color:var(--c-info-text)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:10px 20px;border-radius:var(--r-md);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all var(--t-fast);border:none;text-decoration:none}
.btn-primary{background:var(--accent);color:#fff}
.btn-primary:hover{background:var(--accent-dark)}
.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}
.btn-outline:hover{background:var(--bg-elevated)}
.btn-ghost{background:transparent;color:var(--text-secondary)}
.btn-ghost:hover{background:var(--bg-elevated)}
.btn-sm{padding:6px 12px;font-size:12px}
.btn-lg{padding:14px 28px;font-size:15px}
input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],input[type=time],select,textarea{padding:10px 14px;border:1px solid var(--border);border-radius:var(--r-md);font-size:14px;font-family:inherit;color:var(--text-primary);background:var(--bg-surface);transition:border-color var(--t-fast),box-shadow var(--t-fast);width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}
label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-sm)}
.cfg-page-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}
.cfg-col{display:flex;flex-direction:column;gap:var(--space-lg)}
.cfg-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.cfg-card-title{font-size:14px;font-weight:700;color:var(--text-primary);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-light);background:var(--bg-elevated);display:flex;align-items:center;gap:var(--space-sm)}
.cfg-card-title i{color:var(--accent)}
.cfg-field{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border-light)}
.cfg-field:last-child{border-bottom:none}
.cfg-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-sm)}
.cfg-sub{font-size:12px;color:var(--text-muted);margin-top:var(--space-sm)}
.cfg-input{padding:8px 12px;font-size:13px}
.cfg-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}
.cfg-actions{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md) var(--space-lg)}
.toggle{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0}
.toggle-slider{position:absolute;inset:0;background:var(--border);border-radius:var(--r-full);cursor:pointer;transition:background var(--t-base)}
.toggle-slider::before{content:'';position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform var(--t-base);box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle input:checked+.toggle-slider{background:var(--accent)}
.toggle input:checked+.toggle-slider::before{transform:translateX(20px)}
.slider-row{display:flex;align-items:center;gap:var(--space-md)}
.cfg-slider{flex:1;accent-color:var(--accent);height:4px;cursor:pointer}
.slider-val{font-size:14px;font-weight:700;color:var(--accent);min-width:50px;text-align:right}
.days-wrap{display:flex;gap:var(--space-sm);flex-wrap:wrap}
.day-chk{display:flex;align-items:center;gap:var(--space-xs)}
.day-chk input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.day-chk span{font-size:13px;font-weight:600;color:var(--text-secondary)}
.overlay{position:fixed;inset:0;background:var(--bg-overlay);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg)}
.overlay.open{display:flex}
.modal{background:var(--bg-surface);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;animation:modalIn var(--t-base) var(--ease-out)}
@keyframes modalIn{from{opacity:0;transform:scale(.95) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--border)}
.modal-title{font-size:16px;font-weight:700;color:var(--text-primary)}
.modal-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--text-muted);padding:var(--space-sm);border-radius:var(--r-sm);transition:all var(--t-fast)}
.modal-close:hover{background:var(--bg-elevated);color:var(--text-primary)}
.modal-body{padding:var(--space-lg)}
.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border)}
#toastArea{position:fixed;bottom:var(--space-lg);right:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm);z-index:2000;max-width:400px}
.toast{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-radius:var(--r-lg);background:var(--bg-surface);border:1px solid var(--border);box-shadow:var(--shadow-md);font-size:13px;font-weight:500;color:var(--text-primary);animation:toastIn var(--t-base) var(--ease-out)}
@keyframes toastIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}
.toast.success{border-color:var(--c-success);background:var(--c-success-bg)}
.toast.error{border-color:var(--c-danger);background:var(--c-danger-bg)}
.toast.warning{border-color:var(--c-warning);background:var(--c-warning-bg)}
.toast.info{border-color:var(--c-info);background:var(--c-info-bg)}
#loginScreen{display:none;min-height:100vh}
#loginScreen.show{display:flex}
.login-brand{flex:1;background:linear-gradient(rgba(6,13,26,.92),rgba(6,13,26,.92)),repeating-linear-gradient(0deg,rgba(255,255,255,.03) 0 1px,transparent 1px 40px),repeating-linear-gradient(90deg,rgba(255,255,255,.03) 0 1px,transparent 1px 40px),#060d1a;color:#fff;padding:var(--space-2xl) var(--space-xl);display:flex;flex-direction:column;justify-content:space-between}
.login-brand-logo{font-weight:800;font-size:24px;display:flex;align-items:center;gap:4px}
.logo-nxt{color:#5eead4}
.logo-saude{color:#fff}
.login-brand-center{margin-top:-40px}
.login-tag{display:inline-flex;align-items:center;gap:var(--space-sm);color:#5eead4;font-size:12px;font-weight:700;letter-spacing:1.2px;margin-bottom:var(--space-lg)}
.dot-tag{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55e;animation:dotPulse 2s ease infinite}
@keyframes dotPulse{0%,100%{opacity:1}50%{opacity:.5}}
.login-headline{font-size:56px;font-weight:800;line-height:1.05;letter-spacing:-1.5px;margin-bottom:var(--space-lg);color:#fff}
.hl-accent{color:#5eead4;font-style:italic}
.login-desc{font-size:14px;color:#94a3b8;line-height:1.7;max-width:440px}
.login-brand-foot{display:flex;gap:var(--space-lg);font-size:12px;color:#94a3b8;flex-wrap:wrap}
.dot-foot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#22c55e;margin-right:var(--space-sm);vertical-align:middle;box-shadow:0 0 6px #22c55e}
.login-card-wrap{flex:0 0 480px;display:flex;align-items:center;justify-content:center;padding:var(--space-xl);background:var(--bg-base)}
.login-card{background:var(--bg-surface);border-radius:var(--r-xl);padding:var(--space-xl);width:100%;max-width:400px;box-shadow:var(--shadow-lg);border:1px solid var(--border)}
.login-card-title{font-size:22px;font-weight:700;color:var(--text-primary);margin-bottom:var(--space-xs)}
.login-card-sub{font-size:13px;color:var(--text-muted);margin-bottom:var(--space-lg)}
.login-field{margin-bottom:var(--space-md)}
.login-label{font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-sm);letter-spacing:.3px}
.login-input-wrap{position:relative;display:flex}
.login-input{width:100%;padding:12px 16px;border:1px solid var(--border);border-radius:var(--r-md);font-size:14px;font-family:inherit;color:var(--text-primary);background:var(--bg-surface);transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.login-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}
.login-eye-btn{position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:16px;color:var(--text-muted);padding:4px}
.login-remember{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}
.login-remember input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
.login-remember label{font-size:13px;color:var(--text-secondary);cursor:pointer}
.btn-login{width:100%;padding:14px;background:var(--accent);color:#fff;border:none;border-radius:var(--r-md);font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:all var(--t-fast)}
.btn-login:hover{background:var(--accent-dark);transform:translateY(-1px)}
.login-foot-note{font-size:12px;color:var(--text-muted);text-align:center;margin-top:var(--space-md)}
#loginErr{color:var(--c-danger);font-size:13px;margin-top:var(--space-sm);display:none;text-align:center}
.table-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);gap:var(--space-md);color:var(--text-muted);font-size:14px}
.table-loading i{font-size:24px;color:var(--accent)}
.table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);text-align:center}
.table-empty i{font-size:48px;color:var(--text-muted);margin-bottom:var(--space-md)}
.empty-title{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:var(--space-sm)}
.empty-sub{font-size:14px;color:var(--text-muted);margin-bottom:var(--space-lg);line-height:1.6}
.empty-action{display:flex;gap:var(--space-sm)}
#treinoBanner{display:none;background:#fff7ed;border-bottom:1px solid #fed7aa;color:#9a3412;font-size:13px;font-weight:600;text-align:center;padding:10px}
#treinoBanner.show{display:block}
.p-paginator{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-md);border-top:1px solid var(--border);background:var(--bg-elevated);font-size:13px}
.p-paginator button{padding:8px 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;transition:all var(--t-fast)}
.p-paginator button:hover{background:var(--bg-elevated)}
.p-paginator button.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.p-paginator button:disabled{opacity:0.5;cursor:not-allowed}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md);margin:var(--space-md) 0}
.info-item{background:var(--bg-elevated);border-radius:var(--r-md);padding:var(--space-md)}
.il{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}
.iv{font-size:15px;font-weight:600;color:var(--text-primary)}
.chat-modal{background:var(--bg-surface);border-radius:var(--r-xl);width:min(700px,96vw);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 60px rgba(0,0,0,.18)}
.chat-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);background:var(--accent);color:#fff;flex-shrink:0;gap:var(--space-md)}
.chat-contact-info{display:flex;align-items:center;gap:var(--space-md)}
.chat-avatar{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:20px}
.chat-contact-name{font-size:15px;font-weight:600}
.chat-contact-meta{font-size:12px;color:rgba(255,255,255,.7);margin-top:2px}
.chat-header-actions{display:flex;align-items:center;gap:var(--space-xs)}
.chat-live-badge{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#4ade80;background:rgba(74,222,128,.15);padding:4px 12px;border-radius:var(--r-full)}
.chat-btn-action{background:rgba(255,255,255,.15);border:none;cursor:pointer;color:#fff;width:36px;height:36px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:16px;transition:background var(--t-fast)}
.chat-btn-action:hover{background:rgba(255,255,255,.28)}
.chat-messages{flex:1;overflow-y:auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm);background:#ece9e3}
.chat-msg{display:flex;flex-direction:column;max-width:80%;gap:4px}
.chat-msg.in{align-self:flex-start}
.chat-msg.out{align-self:flex-end;align-items:flex-end}
.chat-bubble{padding:12px 16px;border-radius:var(--r-lg);font-size:14px;line-height:1.6;word-break:break-word}
.chat-msg.in .chat-bubble{background:#fff;color:#1e293b;border-bottom-left-radius:4px}
.chat-msg.out .chat-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}
.chat-meta{font-size:11px;color:var(--text-muted);padding:0 4px}
.chat-sender{font-weight:600}
.chat-footer{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border);background:var(--bg-surface)}
.chat-footer-hint{font-size:12px;color:var(--text-muted)}
@media(max-width:1400px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi-grid-5{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1200px){:root{--sidebar-width:220px}.cfg-page-grid{grid-template-columns:1fr}}
@media(max-width:992px){.login-brand{display:none}.login-card-wrap{flex:1}:root{--sidebar-width:0px}.sidebar{left:-280px;width:280px}.sidebar.mobile-open{left:0}.main-wrap{margin-left:0}}
@media(max-width:768px){:root{--space-lg:16px;--space-md:12px}.topbar{padding:0 var(--space-md)}.content{padding:var(--space-md)}.kpi-grid{grid-template-columns:repeat(2,1fr)}.kpi-grid-5{grid-template-columns:repeat(2,1fr)}.content-toolbar{flex-direction:column;align-items:stretch}.filter-group{width:100%}.info-grid{grid-template-columns:1fr}.cfg-row{grid-template-columns:1fr}}
@media(max-width:480px){.kpi-grid{grid-template-columns:1fr}.kpi-grid-5{grid-template-columns:1fr}.kpi-card{flex-direction:column;text-align:center}.login-card{padding:var(--space-lg)}}
.text-center{text-align:center}.text-right{text-align:right}.text-muted{color:var(--text-muted)}.text-success{color:var(--c-success)}.text-danger{color:var(--c-danger)}.text-warning{color:var(--c-warning)}
.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}
.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}
.p-button{font-family:inherit;border-radius:var(--r-md)!important}.p-inputtext{font-family:inherit;border-radius:var(--r-md)!important}.p-dropdown{font-family:inherit;border-radius:var(--r-md)!important}
.btn-action{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--r-md);background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:all var(--t-fast);font-size:14px}
.btn-action:hover{background:var(--accent-muted);color:var(--accent);border-color:var(--accent)}
.btn-action.success:hover{background:var(--c-success-bg);color:var(--c-success-text);border-color:var(--c-success)}
.btn-action.danger:hover{background:var(--c-danger-bg);color:var(--c-danger-text);border-color:var(--c-danger)}
.badge-meta{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-full);background:var(--c-success-bg);color:var(--c-success-text);font-size:11px;font-weight:600}
.badge-status{display:inline-flex;align-items:center;padding:6px 14px;border-radius:var(--r-full);font-size:12px;font-weight:700}
.badge-status.dentro{background:var(--c-success-bg);color:var(--c-success-text)}
.badge-status.fora{background:var(--c-danger-bg);color:var(--c-danger-text)}
.btn-start{width:100%;padding:14px;background:var(--c-success);color:#fff;border:none;border-radius:var(--r-md);font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:all var(--t-fast);display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}
.btn-start:hover{background:#16a34a}
.btn-pause{width:100%;padding:14px;background:var(--c-warning);color:#fff;border:none;border-radius:var(--r-md);font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;transition:all var(--t-fast);display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}
.btn-pause:hover{background:#ca8a04}
.p-tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:var(--r-full);background:var(--c-info-bg);color:var(--c-info-text);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}

/* ── Urgency Bars ─────────────────────────────────────────── */
.td-urg{width:6px;padding:0!important}
.urg-bar{width:5px;height:100%;min-height:36px;border-radius:2px;display:block}
.urg-ok{background:var(--c-success)}
.urg-crit{background:var(--c-danger)}
.urg-warn{background:var(--c-warning)}
.urg-exp{background:var(--text-muted)}

/* ── Days Badge ──────────────────────────────────────────── */
.badge-days-ok{background:#dcfce7;color:#15803d;font-size:11px;font-weight:700;padding:3px 8px;border-radius:9999px}
.badge-days-crit{background:#fef2f2;color:#dc2626;font-size:11px;font-weight:700;padding:3px 8px;border-radius:9999px}
.badge-days-warn{background:#fefce8;color:#a16207;font-size:11px;font-weight:700;padding:3px 8px;border-radius:9999px}
.badge-days-exp{background:#f1f5f9;color:#94a3b8;font-size:11px;font-weight:700;padding:3px 8px;border-radius:9999px}

/* ── Result Badges ────────────────────────────────────────── */
.badge-res-ag{background:#dcfce7;color:#15803d;font-size:11px;font-weight:700;padding:3px 10px;border-radius:9999px;display:inline-flex;align-items:center;gap:4px}
.badge-res-nag{background:#fef2f2;color:#dc2626;font-size:11px;font-weight:700;padding:3px 10px;border-radius:9999px;display:inline-flex;align-items:center;gap:4px}
.badge-res-em{background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:700;padding:3px 10px;border-radius:9999px;display:inline-flex;align-items:center;gap:4px}
.badge-res-rec{background:#fef2f2;color:#dc2626;font-size:11px;font-weight:700;padding:3px 10px;border-radius:9999px;display:inline-flex;align-items:center;gap:4px}
.badge-res-sac{background:#fef9c3;color:#a16207;font-size:11px;font-weight:700;padding:3px 10px;border-radius:9999px;display:inline-flex;align-items:center;gap:4px}

/* ── Action Buttons ───────────────────────────────────────── */
.btn-disparo{padding:7px 14px;background:var(--accent);color:#fff;border:none;border-radius:var(--r-md);font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:all var(--t-fast);display:inline-flex;align-items:center;gap:5px}
.btn-disparo:hover{background:var(--accent-dark)}
.btn-disparo:disabled{opacity:0.5;cursor:not-allowed}
.btn-lupa{padding:6px 10px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;font-size:13px;color:var(--text-secondary);transition:all var(--t-fast)}
.btn-lupa:hover{background:var(--accent-muted);color:var(--accent);border-color:var(--accent)}
.btn-ver-conv{padding:6px 12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--r-md);cursor:pointer;font-size:12px;font-weight:600;color:var(--text-secondary);transition:all var(--t-fast)}
.btn-ver-conv:hover{background:var(--accent-muted);color:var(--accent)}
.btn-shimmer{position:relative;overflow:hidden}
.btn-shimmer::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 1.5s infinite}
@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}

/* ── Table Column Widths ──────────────────────────────────── */
.td-paciente{min-width:160px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-guia{font-family:var(--font-mono);font-size:12px;white-space:nowrap}
.td-esp{min-width:120px;white-space:nowrap}
.td-tel{font-family:var(--font-mono);font-size:12px;white-space:nowrap}
.td-data{white-space:nowrap;font-size:12px}
.td-hora{color:var(--text-muted);font-size:11px;margin-left:4px}
.td-agid{font-family:var(--font-mono);font-size:12px;color:var(--blue);white-space:nowrap}

/* ── Alerts ──────────────────────────────────────────────── */
.alert-warn{background:#fef9c3;border:1px solid #fde047;border-radius:var(--r-md);padding:10px 14px;font-size:13px;color:#713f12;margin-bottom:12px;display:flex;align-items:center;gap:6px}
.alert-warn i{color:#ca8a04;flex-shrink:0}
.alert-info{background:#eff6ff;border:1px solid #93c5fd;border-radius:var(--r-md);padding:10px 14px;font-size:13px;color:#1e40af;margin-bottom:12px;display:flex;align-items:center;gap:6px}
.alert-info i{color:#3b82f6;flex-shrink:0}

/* ── Pagination ───────────────────────────────────────────── */
.pg-info{font-size:13px;color:var(--text-muted)}
.pg-controls{display:flex;align-items:center;gap:4px}
.pg-btn{padding:6px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;font-size:13px;font-family:inherit;transition:all var(--t-fast)}
.pg-btn:hover:not(.disabled){background:var(--bg-elevated);color:var(--text-primary)}
.pg-btn.cur{background:var(--accent);color:#fff;border-color:var(--accent)}
.pg-btn.disabled{opacity:0.4;cursor:not-allowed}
.pg-btn-icon{padding:6px 10px}
.pg-ellipsis{padding:6px 4px;color:var(--text-muted);font-size:13px;pointer-events:none}
.pg-page-of{font-size:12px;color:var(--text-muted)}
.pg-of{color:var(--text-muted)}
.rlz-pag-info{font-size:13px;color:var(--text-muted)}
.rlz-pag-btns{display:flex;align-items:center;gap:4px}
.rlz-pg{padding:6px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;font-size:13px;font-family:inherit;transition:all var(--t-fast)}
.rlz-pg:hover:not([disabled]){background:var(--bg-elevated);color:var(--text-primary)}
.rlz-pg.cur{background:var(--accent);color:#fff;border-color:var(--accent)}
.rlz-pg[disabled]{opacity:0.4;cursor:not-allowed}

/* ── Skeleton Loading ─────────────────────────────────────── */
.skeleton-row td{background:#fff!important}
.skeleton-wave{background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%);background-size:200% 100%;animation:skeleton-wave 1.4s ease infinite;border-radius:4px;display:inline-block}
@keyframes skeleton-wave{0%{background-position:200% 0}100%{background-position:-200% 0}}
.skeleton-text{height:12px;display:block}
.skeleton-badge{height:24px;width:60px;border-radius:9999px;display:inline-block}
.w-40{width:40%}.w-60{width:60%}.w-full{width:100%}

/* ── Chat / Conversa ─────────────────────────────────────── */
.chat-day-sep{text-align:center;font-size:11px;color:var(--text-muted);padding:8px 0}
.chat-day-sep span{background:var(--bg-base);padding:2px 10px;border-radius:9999px}
.chat-activity{text-align:center;font-size:11px;color:var(--text-muted);padding:6px 0;font-style:italic}
.chat-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:12px;color:var(--text-muted);font-size:14px}
.chat-loading i{font-size:24px}
.msg-section{display:block;font-size:12px;font-weight:700;color:var(--accent);margin-top:6px;margin-bottom:2px}
.msg-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--accent-muted);color:var(--accent);border-radius:50%;font-size:10px;font-weight:700;margin-right:4px;flex-shrink:0}
.ult-msg{font-size:12px;color:var(--text-secondary);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}
.chat-close{background:rgba(255,255,255,.15);border:none;cursor:pointer;color:#fff;width:36px;height:36px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:16px;transition:background var(--t-fast)}
.chat-close:hover{background:rgba(255,255,255,.28)}

/* ── Realizados Table ─────────────────────────────────────── */
.rlz-conv-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-elevated);cursor:pointer;font-size:12px;font-weight:600;color:var(--text-secondary);transition:all var(--t-fast);font-family:inherit}
.rlz-conv-btn:hover{background:var(--accent-muted);color:var(--accent);border-color:var(--accent)}

/* ── Template Editor ──────────────────────────────────────── */
.tpl-btn{padding:8px 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:500;font-family:inherit;transition:all var(--t-fast);text-align:left;width:100%;margin-bottom:4px}
.tpl-btn:hover{background:var(--bg-elevated);color:var(--text-primary)}
.tpl-btn.active{background:var(--accent-muted);color:var(--accent);border-color:var(--accent);font-weight:700}
.tpl-del{background:none;border:none;color:var(--c-danger);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:4px;transition:background var(--t-fast)}
.tpl-del:hover{background:#fef2f2}
.tpl-preview{background:var(--bg-base);border:1px solid var(--border);border-radius:var(--r-md);padding:12px;font-size:13px;line-height:1.6;color:var(--text-primary);min-height:80px;white-space:pre-wrap}
.tpl-selector{display:flex;flex-direction:column;gap:2px}

/* ── Schedule / Config ────────────────────────────────────── */
.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border-light)}
.toggle-row:last-child{border-bottom:none}
.toggle-info{flex:1}
.tl{font-size:13px;font-weight:700;color:var(--text-primary)}
.ts{font-size:12px;color:var(--text-muted);margin-top:2px;line-height:1.5}

/* ── Quick Filter Buttons ────────────────────────────────── */
.qbtn{padding:7px 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;font-size:13px;font-family:inherit;transition:all var(--t-fast);font-weight:500}
.qbtn:hover{background:var(--bg-elevated);color:var(--text-primary)}
.qbtn.active{background:var(--accent-muted);color:var(--accent);border-color:var(--accent);font-weight:700}

/* ── Nav Tab ──────────────────────────────────────────────── */
.nav-tab{padding:10px 16px;border-radius:var(--r-md);color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:500;transition:all var(--t-fast);border:none;background:none;font-family:inherit}
.nav-tab:hover{background:var(--bg-elevated);color:var(--text-primary)}
.nav-tab.active{background:var(--accent-muted);color:var(--accent);font-weight:700}

/* ── Spinner & Loading ────────────────────────────────────── */
.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}
.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;gap:10px;color:var(--text-muted);font-size:14px}

/* ── Utility ──────────────────────────────────────────────── */
.blue{color:var(--accent)}
.text-mid{color:var(--text-muted)}
.td-mono{font-family:var(--font-mono);font-size:12px}
