:root {
    --primary: #0f172a; /* Slate 900 */
    --primary-hover: #1e293b;
    --accent: #2563eb; /* Royal Blue */
    --accent-hover: #1d4ed8;
    --bg: #f8fafc; /* Slate 50 */
    --surface: #ffffff;
    --border: #e2e8f0; /* Slate 200 */
    --text: #334155; /* Slate 700 */
    --text-muted: #64748b;
    --success: #10b981;
    --danger: #ef4444;
    --warning: #f59e0b;
    --info: #0284c7;
    --focus-ring: rgb(37 99 235 / .16);
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 18px;
    --shadow-sm: 0 4px 12px rgb(15 23 42 / .05);
    --shadow-md: 0 10px 28px rgb(15 23 42 / .08);
    --shadow-modal: 0 26px 70px rgb(2 16 34 / .35);
    --control-height: 44px;
    --space-section: clamp(18px, 2vw, 28px);
}

*, *::before, *::after { box-sizing: border-box; }

body {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
    background-color: var(--bg);
    color: var(--text);
    margin: 0;
    padding: clamp(12px, 2vw, 32px);
    display: flex;
    justify-content: center;
    align-items: flex-start;
    min-height: 100vh;
    box-sizing: border-box;
    line-height: 1.5;
}

.container {
    background: var(--surface);
    padding: clamp(22px, 2.4vw, 40px);
    border-radius: 16px;
    border: 1px solid var(--border);
    box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.05), 0 2px 4px -2px rgb(0 0 0 / 0.05);
    width: 100%;
    max-width: 1680px;
    box-sizing: border-box;
    transition: all 0.3s ease;
}

/* --- TELA DE LOGIN & ESQUECEU --- */
.login-box {
    max-width: 420px;
    margin: auto;
    width: 100%;
    text-align: center;
}

.brand-kicker {
    color: var(--accent);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.12em;
    margin: 0 0 8px;
    text-transform: uppercase;
}

.login-box h1 {
    color: var(--primary);
    font-size: 28px;
    margin: 0 0 10px;
}

.login-subtitle {
    color: var(--text-muted);
    font-size: 15px;
    line-height: 1.5;
    margin: 0 0 24px;
}

.field-label {
    color: var(--primary);
    display: block;
    font-size: 13px;
    font-weight: 700;
    margin: 14px 0 -2px;
    text-align: left;
}

/* --- TELA DE ENTRADA INSTITUCIONAL --- */
.entry-shell {
    background: #fff;
    border: 1px solid #dbe4ef;
    border-radius: 24px;
    box-shadow: 0 24px 70px rgb(15 23 42 / .12);
    box-sizing: border-box;
    max-width: 1150px;
    overflow: hidden;
    position: relative;
    margin: auto;
    width: 100%;
}

.entry-shell::before {
    background: radial-gradient(circle, rgb(34 211 238 / .12), transparent 70%);
    content: "";
    height: 430px;
    left: -210px;
    pointer-events: none;
    position: absolute;
    top: 40px;
    width: 430px;
}

.entry-nav {
    align-items: center;
    border-bottom: 1px solid #e2e8f0;
    display: flex;
    justify-content: space-between;
    min-height: 78px;
    padding: 0 44px;
    position: relative;
    z-index: 2;
}

.entry-nav img { display: block; margin: -28px 0; max-width: 52%; }
.entry-secure-badge {
    align-items: center;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 999px;
    color: #166534;
    display: inline-flex;
    font-size: 11px;
    font-weight: 800;
    gap: 7px;
    padding: 7px 11px;
}
.entry-secure-badge > span { background: #22c55e; border-radius: 50%; box-shadow: 0 0 0 4px rgb(34 197 94 / .13); height: 7px; width: 7px; }

.entry-main {
    background: linear-gradient(135deg, #ffffff 0%, #f8fbff 50%, #eef9fc 100%);
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr);
    min-height: 560px;
}

.entry-copy {
    align-self: center;
    padding: 58px 32px 58px 56px;
    position: relative;
    z-index: 1;
}

.entry-eyebrow {
    color: #0284c7;
    display: block;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .16em;
    margin-bottom: 14px;
    text-transform: uppercase;
}

.entry-copy h1 {
    color: #0f2f55;
    font-size: clamp(36px, 4.2vw, 54px);
    letter-spacing: -.035em;
    line-height: 1.08;
    margin: 0;
    max-width: 650px;
}

.entry-copy > p {
    color: #52657a;
    font-size: 16px;
    line-height: 1.7;
    margin: 22px 0 0;
    max-width: 610px;
}

.entry-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 16px; margin-top: 30px; }
.entry-primary-action {
    background: linear-gradient(135deg, #075985, #0284c7);
    border-radius: 12px;
    box-shadow: 0 10px 22px rgb(2 132 199 / .25);
    gap: 18px;
    padding: 14px 20px;
    width: auto;
}
.entry-primary-action span { font-size: 19px; transition: transform .2s ease; }
.entry-primary-action:hover { background: linear-gradient(135deg, #0c4a6e, #0891b2); box-shadow: 0 14px 28px rgb(2 132 199 / .3); transform: translateY(-2px); }
.entry-primary-action:hover span { transform: translateX(4px); }
.entry-actions small { color: #64748b; max-width: 165px; }

.entry-benefits {
    border-top: 1px solid #dbe4ef;
    display: grid;
    gap: 18px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 38px;
    padding-top: 22px;
}
.entry-benefits div { display: flex; flex-direction: column; gap: 4px; }
.entry-benefits strong { color: #0f3d73; font-size: 13px; }
.entry-benefits span { color: #64748b; font-size: 11px; line-height: 1.4; }

.entry-showcase {
    align-items: center;
    display: flex;
    justify-content: center;
    overflow: hidden;
    padding: 46px 46px 46px 28px;
    position: relative;
}
.entry-showcase-glow { background: linear-gradient(135deg, #075985, #06b6d4); border-radius: 36% 64% 56% 44%; filter: blur(0); height: 390px; opacity: .14; position: absolute; transform: rotate(-8deg); width: 390px; }
.entry-product-card {
    background: rgb(255 255 255 / .94);
    border: 1px solid #cce4f2;
    border-radius: 20px;
    box-shadow: 0 28px 55px rgb(15 61 115 / .18);
    max-width: 410px;
    padding: 22px;
    position: relative;
    width: 100%;
}
.entry-product-top { align-items: center; border-bottom: 1px solid #e2e8f0; color: #0f3d73; display: flex; font-size: 14px; font-weight: 800; justify-content: space-between; margin-bottom: 17px; padding-bottom: 14px; }
.entry-live { align-items: center; color: #15803d; display: flex; font-size: 10px; gap: 6px; text-transform: uppercase; }
.entry-live i { background: #22c55e; border-radius: 50%; height: 7px; width: 7px; }
.entry-care-step { align-items: center; display: grid; gap: 13px; grid-template-columns: auto 1fr auto; }
.entry-step-icon { align-items: center; background: #eff6ff; border: 1px solid #dbeafe; border-radius: 12px; color: #2563eb; display: flex; height: 44px; justify-content: center; width: 44px; }
.entry-step-icon svg { fill: none; height: 22px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 22px; }
.entry-care-step small { color: #0284c7; display: block; font-size: 9px; font-weight: 900; letter-spacing: .08em; }
.entry-care-step strong { color: #1e293b; display: block; font-size: 13px; margin-top: 2px; }
.entry-care-step p { color: #64748b; font-size: 10px; margin: 3px 0 0; }
.entry-care-step > b { align-items: center; background: #dcfce7; border-radius: 50%; color: #16a34a; display: flex; font-size: 11px; height: 23px; justify-content: center; width: 23px; }
.entry-flow-line { border-left: 2px dashed #bae6fd; height: 18px; margin: 3px 0 3px 21px; }
.entry-safety-note { background: linear-gradient(135deg, #0f3d73, #075985); border-radius: 12px; color: #fff; margin-top: 19px; padding: 13px 15px; }
.entry-safety-note span { color: #67e8f9; display: block; font-size: 9px; font-weight: 900; letter-spacing: .08em; margin-bottom: 3px; text-transform: uppercase; }
.entry-safety-note strong { font-size: 11px; }

.entry-footer { align-items: center; color: #64748b; display: flex; font-size: 10px; justify-content: space-between; padding: 13px 44px; }
.entry-footer span:first-child { color: #0f3d73; font-weight: 900; letter-spacing: .08em; }

.login-back-entry {
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-muted);
    font-size: 12px;
    margin: 0 auto 5px 0;
    padding: 7px 11px;
    width: auto;
}
.login-back-entry:hover { background: #f1f5f9; color: var(--primary); }
#telaMfa .btn-voltar {
    margin-top: 14px;
    margin-bottom: 0;
}
body:has(#telaEntrada:not(.escondido)) > footer { display: none; }

@media (max-width: 900px) {
    .entry-main { grid-template-columns: 1fr; }
    .entry-copy { padding: 48px 42px 30px; }
    .entry-showcase { padding: 25px 42px 48px; }
}

@media (max-width: 600px) {
    .entry-shell { border-radius: 18px; }
    .entry-nav { min-height: 68px; padding: 0 20px; }
    .entry-nav img { width: 185px; }
    .entry-secure-badge { font-size: 0; padding: 9px; }
    .entry-copy { padding: 38px 24px 25px; }
    .entry-copy h1 { font-size: 36px; }
    .entry-benefits { grid-template-columns: 1fr; }
    .entry-benefits div { border-bottom: 1px solid #e2e8f0; padding-bottom: 10px; }
    .entry-showcase { padding: 20px 20px 36px; }
    .entry-product-card { box-sizing: border-box; padding: 18px; }
    .entry-footer { align-items: flex-start; flex-direction: column; gap: 5px; padding: 13px 20px; }
}

.welcome-panel {
    align-items: center;
    background: linear-gradient(135deg, #eff6ff, #f8fafc 62%);
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    display: flex;
    gap: 24px;
    justify-content: space-between;
    margin: 24px 0;
    padding: 24px;
}

.welcome-panel h2 {
    margin: 0 0 8px;
}

.welcome-panel p {
    color: var(--text-muted);
    margin: 0;
}

.quick-actions {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 24px 0;
}

/* O dashboard inicial funciona como menu; as vagas ficam nas telas proprias. */
#telaDashboard .cards-container {
    display: none;
}

#telaDashboard .user-info {
    margin-bottom: clamp(20px, 2vw, 28px);
}

#telaDashboard .dashboard-header {
    align-items: center;
    display: flex;
    gap: 18px;
    justify-content: center;
    margin-bottom: 22px;
}

#telaDashboard .dashboard-header img {
    margin-bottom: 0 !important;
    width: clamp(120px, 9vw, 160px);
}

#telaDashboard .dashboard-header h2 {
    margin: 0;
}

#telaDashboard .acao-dashboard {
    background: #f8fafc;
    border: 1px solid var(--border);
    border-radius: 12px;
    margin-top: 22px;
    padding: 18px;
}

.quick-actions-menu {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 30px;
}

@media (min-width: 1400px) {
    #telaDashboard .quick-actions-menu {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    #telaDashboard .quick-actions-menu .quick-action:last-child {
        grid-column: span 2;
    }
}

.quick-action .action-tag {
    color: #2563eb;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
    margin: 18px 0 7px;
    text-transform: uppercase;
}

.agenda-filters {
    align-items: end;
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(220px, 1fr) minmax(180px, 0.65fr) auto;
}

.agenda-filters button { width: auto; }

@media (max-width: 680px) {
    .quick-actions-menu { grid-template-columns: 1fr; }
    .agenda-filters { grid-template-columns: 1fr; }
    .agenda-filters button { width: 100%; }
}

.quick-action {
    align-items: flex-start;
    background: linear-gradient(145deg, #ffffff, #f8fafc);
    border: 1px solid var(--border);
    border-radius: 16px;
    box-shadow: 0 6px 18px rgb(15 23 42 / 0.05);
    color: var(--primary);
    display: flex;
    flex-direction: column;
    min-height: 190px;
    overflow: hidden;
    padding: 22px;
    position: relative;
    text-align: left;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.quick-action:hover {
    background: #fff;
    border-color: #93c5fd;
    box-shadow: 0 14px 30px rgb(37 99 235 / 0.14);
    transform: translateY(-4px);
}

.quick-action:focus-visible {
    outline: 3px solid rgb(37 99 235 / .28);
    outline-offset: 3px;
}

.quick-action-primary {
    background: linear-gradient(135deg, #0f3d73, #075985);
    border-color: #0369a1;
    grid-column: span 2;
}

.quick-action-primary:hover {
    background: linear-gradient(135deg, #0b3769, #0369a1);
    border-color: #38bdf8;
    box-shadow: 0 16px 34px rgb(3 105 161 / .25);
}

.quick-action-top {
    align-items: center;
    display: flex;
    justify-content: space-between;
    width: 100%;
}

.quick-action-icon {
    align-items: center;
    background: #eff6ff;
    border: 1px solid #dbeafe;
    border-radius: 12px;
    color: #2563eb;
    display: flex;
    height: 44px;
    justify-content: center;
    width: 44px;
}

.quick-action-icon svg {
    fill: none;
    height: 23px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    width: 23px;
}

.quick-action-arrow {
    align-items: center;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: #64748b;
    display: flex;
    font-size: 17px;
    height: 30px;
    justify-content: center;
    transition: transform .2s ease, background .2s ease;
    width: 30px;
}

.quick-action:hover .quick-action-arrow { background: #eff6ff; color: #2563eb; transform: translateX(3px); }
.quick-action strong { color: var(--primary); font-size: 18px; line-height: 1.25; }
.quick-action .action-description { color: var(--text-muted); font-size: 13px; font-weight: 400; line-height: 1.5; margin-top: 7px; }

.quick-action-primary .quick-action-icon { background: rgb(255 255 255 / .12); border-color: rgb(255 255 255 / .2); color: #67e8f9; }
.quick-action-primary .quick-action-arrow { border-color: rgb(255 255 255 / .25); color: #fff; }
.quick-action-primary .action-tag { color: #67e8f9; }
.quick-action-primary strong { color: #fff; font-size: 21px; }
.quick-action-primary .action-description { color: #dbeafe; max-width: 520px; }
.quick-action-primary:hover .quick-action-arrow { background: rgb(255 255 255 / .14); color: #fff; }

@media (max-width: 900px) {
    .quick-actions-menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .quick-action-primary { grid-column: span 2; }
}

@media (max-width: 680px) {
    body { padding: 8px; }
    .container { border-radius: 12px; padding: 20px 14px; }
    .welcome-panel { align-items: flex-start; flex-direction: column; }
    .quick-actions { grid-template-columns: 1fr; }
    .quick-action-primary { grid-column: auto; }
    .quick-action { min-height: 175px; }
    .user-info { align-items: flex-start; flex-direction: column; gap: 14px; }
    .user-info-actions { flex-wrap: wrap; width: 100%; }
    .user-info-actions button { flex: 1 1 135px; justify-content: center; }
    #telaDashboard .dashboard-header { flex-direction: column; gap: 8px; }
}

h2 {
    color: var(--primary);
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 24px;
}

input, select, textarea {
    width: 100%;
    padding: 12px 16px;
    margin: 8px 0 16px 0;
    border: 1px solid var(--border);
    border-radius: 8px;
    box-sizing: border-box;
    font-size: 15px;
    background-color: var(--bg);
    color: var(--primary);
    transition: all 0.2s;
}

input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
    background-color: var(--surface);
}

/* BOTÕES */
button {
    position: relative;
    width: 100%;
    padding: 12px 24px;
    background: linear-gradient(135deg, #075985, #0284c7);
    color: white;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-size: 15px;
    font-weight: 600;
    transition: all 0.2s;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
}

button:hover {
    background: linear-gradient(135deg, #0c4a6e, #0369a1);
}

button:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}

.spinner {
    width: 16px;
    height: 16px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    border-top-color: white;
    animation: spin 0.8s linear infinite;
    display: none;
}

button.loading .spinner {
    display: inline-block;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.link-esqueceu {
    display: inline-block;
    margin-top: 16px;
    font-size: 14px;
    color: var(--accent);
    text-decoration: none;
    font-weight: 500;
}

.link-esqueceu:hover {
    color: var(--accent-hover);
    text-decoration: underline;
}

.msg-erro {
    background: #fef2f2;
    color: var(--danger);
    padding: 12px;
    border-radius: 8px;
    font-size: 14px;
    margin-bottom: 16px;
    border: 1px solid #fee2e2;
    display: none;
}

.msg-sucesso {
    background: #ecfdf5;
    color: var(--success);
    padding: 12px;
    border-radius: 8px;
    font-size: 14px;
    margin-bottom: 16px;
    border: 1px solid #d1fae5;
    display: none;
}

/* --- TOASTS / NOTIFICAÇÕES --- */
.toast-container {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.toast {
    background: var(--surface);
    color: var(--primary);
    padding: 16px 24px;
    border-radius: 8px;
    border-left: 4px solid var(--accent);
    box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05);
    font-size: 14px;
    font-weight: 500;
    min-width: 280px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    animation: slideIn 0.3s ease-out forwards;
}

.toast.sucesso { border-left-color: var(--success); }
.toast.erro { border-left-color: var(--danger); }
.toast.aviso { border-left-color: var(--warning); }

.schedule-alert-overlay {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(8, 20, 38, .68);
    backdrop-filter: blur(5px);
}

.schedule-alert-overlay.escondido { display: none; }

.schedule-alert-card {
    width: min(100%, 510px);
    padding: 30px;
    border: 1px solid rgba(245, 158, 11, .35);
    border-radius: 20px;
    background: var(--surface);
    box-shadow: 0 28px 70px rgba(8, 20, 38, .28);
    animation: scheduleAlertIn .2s ease-out;
}

.schedule-alert-icon {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    margin-bottom: 18px;
    border-radius: 15px;
    background: #fff7e6;
    color: #b45309;
    font-size: 27px;
    font-weight: 900;
}

.schedule-alert-card h3 { margin: 7px 0 8px; font-size: 23px; color: var(--primary); }
.schedule-alert-patient { margin: 0 0 20px; color: var(--text-muted); font-weight: 600; }
.schedule-alert-existing { padding: 17px 18px; border: 1px solid var(--border); border-radius: 14px; background: var(--bg); }
.schedule-alert-existing span { display: block; margin-bottom: 8px; color: #b45309; font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.schedule-alert-existing strong { display: block; color: var(--primary); font-size: 17px; }
.schedule-alert-existing p { margin: 7px 0 2px; color: var(--text); font-weight: 700; }
.schedule-alert-existing small { color: var(--text-muted); }
.schedule-alert-question { margin: 20px 0; color: var(--text); }
.schedule-alert-actions { display: flex; justify-content: flex-end; gap: 10px; }
.schedule-alert-actions button { width: auto; margin: 0; }
.schedule-alert-actions .btn-secondary { background: var(--surface); color: var(--primary); border: 1px solid var(--border); }
.schedule-delete-card { border-color: rgba(239, 68, 68, .35); }
.schedule-delete-icon { background: #fff1f2; color: #be123c; }
.schedule-alert-actions .schedule-delete-button { background: var(--danger); }

@keyframes scheduleAlertIn {
    from { opacity: 0; transform: translateY(10px) scale(.98); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-width: 560px) {
    .schedule-alert-card { padding: 23px; }
    .schedule-alert-actions { flex-direction: column-reverse; }
    .schedule-alert-actions button { width: 100%; }
}

.protocol-section { border-color: rgba(14, 165, 233, .28); background: linear-gradient(180deg, #f7fcff, var(--surface)); }
.saved-protocol { margin: 16px 0; padding: 15px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg); }
.saved-protocol h5 { margin: 5px 0 12px; color: var(--primary); font-size: 15px; text-transform: capitalize; }
.saved-protocol > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
.saved-protocol > div > div { padding: 9px 10px; border-radius: 9px; background: var(--surface); }
.saved-protocol small { display: block; color: var(--text-muted); text-transform: capitalize; }
.saved-protocol strong { display: block; margin-top: 3px; color: var(--text); font-size: 13px; white-space: pre-wrap; }

@keyframes slideIn {
    from { transform: translateX(100%); opacity: 0; }
    to { transform: translateX(0); opacity: 1; }
}

@keyframes slideOut {
    to { transform: translateX(100%); opacity: 0; }
}

/* --- COMPONENTES DO DASHBOARD --- */
.user-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--bg);
    padding: 12px 20px;
    border-radius: 10px;
    margin-bottom: 32px;
    font-size: 14px;
    border: 1px solid var(--border);
}

.user-info strong {
    color: var(--primary);
}

.user-info-actions {
    display: flex;
    gap: 12px;
}

.btn-admin-panel {
    align-items: center;
    background: linear-gradient(135deg, #0f3d73, #0284c7);
    border: 1px solid #0369a1;
    border-radius: 11px;
    box-shadow: 0 7px 16px rgb(2 132 199 / .2);
    width: auto;
    color: white;
    gap: 9px;
    padding: 9px 13px;
    font-size: 13px;
}
.btn-admin-panel:hover {
    background: linear-gradient(135deg, #0c4a6e, #0891b2);
    box-shadow: 0 10px 20px rgb(2 132 199 / .26);
    transform: translateY(-2px);
}

.btn-admin-panel svg,
.btn-logout svg {
    fill: none;
    height: 17px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    width: 17px;
}

.btn-admin-panel b { font-size: 16px; font-weight: 500; margin-left: 2px; transition: transform .2s ease; }
.btn-admin-panel:hover b { transform: translateX(3px); }

.btn-logout {
    align-items: center;
    width: auto;
    background: #fff;
    border: 1px solid #fecaca;
    border-radius: 11px;
    color: #dc2626;
    gap: 7px;
    padding: 9px 12px;
    font-size: 13px;
}
.btn-logout:hover {
    background: #fef2f2;
    border-color: #fca5a5;
    transform: translateY(-2px);
}

.dashboard-header {
    text-align: center;
    margin-bottom: 32px;
}

/* --- PADRÃO VISUAL DAS TELAS INTERNAS --- */
.app-screen {
    background: #f8fafc;
}

.app-screen > .btn-voltar {
    align-items: center;
    background: #fff;
    border-color: #cbd5e1;
    border-radius: 999px;
    box-shadow: 0 2px 8px rgb(15 23 42 / .04);
    color: #475569;
    display: inline-flex;
    margin-bottom: 18px;
}

.app-screen > .btn-voltar:hover {
    background: #eff6ff;
    border-color: #93c5fd;
    color: #1d4ed8;
    transform: translateX(-2px);
}

.app-screen .page-hero {
    align-items: center;
    background: linear-gradient(135deg, #0f3d73, #075985 62%, #0e7490);
    border: 1px solid #0369a1;
    border-radius: 18px;
    box-shadow: 0 12px 30px rgb(3 105 161 / .18);
    color: #fff;
    margin-bottom: 24px;
    padding: 26px 28px;
    text-align: left;
}

.app-screen .page-hero-kicker {
    color: #67e8f9;
    display: block;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .13em;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.app-screen .page-hero h2 {
    color: #fff;
    font-size: 26px;
    margin: 0 0 7px;
}

.app-screen .page-hero p,
.app-screen .page-hero p[style] {
    color: #dbeafe !important;
    margin: 0;
}

.app-screen > .admin-box {
    border-color: #dbe4ef;
    border-radius: 16px;
    box-shadow: 0 8px 22px rgb(15 23 42 / .055);
    padding: 26px;
}

.app-screen > .admin-box > h3:first-child {
    align-items: center;
    display: flex;
    font-size: 18px;
    gap: 10px;
}

.app-screen > .admin-box > h3:first-child::before {
    background: linear-gradient(#0284c7, #06b6d4);
    border-radius: 999px;
    content: "";
    display: block;
    flex: 0 0 5px;
    height: 22px;
}

.app-screen > .admin-box > button:not(.btn-voltar) {
    background: linear-gradient(135deg, #075985, #0369a1);
    border-radius: 10px;
    box-shadow: 0 5px 12px rgb(3 105 161 / .15);
}

.app-screen > .admin-box > button:not(.btn-voltar):hover {
    background: linear-gradient(135deg, #0c4a6e, #0284c7);
    transform: translateY(-1px);
}

.app-screen .table-responsive {
    border-color: #dbe4ef;
    border-radius: 12px;
    box-shadow: 0 3px 12px rgb(15 23 42 / .035);
}

.app-screen th {
    background: #eff6ff;
    color: #0f3d73;
    font-size: 12px;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.app-screen tbody tr:hover td { background: #f8fbff; }
.app-screen input:focus, .app-screen select:focus, .app-screen textarea:focus {
    border-color: #38bdf8;
    box-shadow: 0 0 0 3px rgb(14 165 233 / .12);
    outline: none;
}

.app-screen .topo-consulta.page-hero { display: flex; }
.app-screen .topo-consulta.page-hero > div:last-child {
    background: rgb(255 255 255 / .1);
    border: 1px solid rgb(255 255 255 / .18);
    border-radius: 12px;
    padding: 14px;
}
.app-screen .topo-consulta.page-hero #nomeUpaConsulta { color: #fff; }

#telaConsulta #gestaoDisponibilidades {
    margin-top: 30px;
}

#gestaoDisponibilidades > button {
    margin-top: 18px;
}

.vacancy-type-field { grid-column: 1 / -1; }
.vacancy-type-options { display: grid; gap: 10px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vacancy-type-options label { align-items: center; background: #f8fafc; border: 1px solid #dbe4ef; border-radius: 12px; cursor: pointer; display: flex; gap: 11px; min-height: 58px; padding: 11px 13px; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease; }
.vacancy-type-options label:hover { background: #f0f9ff; border-color: #7dd3fc; }
.vacancy-type-options label:has(input:checked) { background: #eff6ff; border-color: #38bdf8; box-shadow: 0 0 0 3px rgb(14 165 233 / .1); }
.vacancy-type-options input { accent-color: #0284c7; flex: 0 0 auto; height: 18px; margin: 0; width: 18px; }
.vacancy-type-options span { display: flex; flex-direction: column; gap: 2px; }
.vacancy-type-options strong { color: #0f3d73; font-size: 13px; }
.vacancy-type-options small { color: #64748b; font-size: 10px; }
.vacancy-type-badges { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.vacancy-type-badge { background: #e0f2fe; border: 1px solid #bae6fd; border-radius: 999px; color: #075985; display: inline-block; font-size: 9px; font-weight: 800; padding: 4px 7px; text-transform: uppercase; }

@media (max-width: 680px) { .vacancy-type-options { grid-template-columns: 1fr; } }

/* --- CENTRO OPERACIONAL --- */
.operational-hero { display: flex; justify-content: space-between; }
.operational-profile-badge { background: rgb(255 255 255 / .12); border: 1px solid rgb(255 255 255 / .24); border-radius: 999px; color: #fff; font-size: 12px; font-weight: 800; padding: 9px 13px; }
.operational-metrics { display: grid; gap: 12px; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-bottom: 22px; }
.operational-metrics > div { background: #fff; border: 1px solid #dbe4ef; border-radius: 14px; box-shadow: 0 5px 14px rgb(15 23 42 / .045); padding: 16px; }
.operational-metrics span { color: #64748b; display: block; font-size: 10px; font-weight: 800; letter-spacing: .04em; min-height: 27px; text-transform: uppercase; }
.operational-metrics strong { color: #0f3d73; display: block; font-size: 28px; margin-top: 5px; }
.screen-section-heading { align-items: center; display: flex; gap: 16px; justify-content: space-between; margin-bottom: 18px; }
.screen-section-heading h3 { margin: 3px 0 0; }
.operational-step-badge { background: #e0f2fe; border: 1px solid #bae6fd; border-radius: 999px; color: #0369a1; font-size: 10px; font-weight: 800; padding: 7px 10px; text-transform: uppercase; }
.operational-form-row { align-items: end; display: flex; flex-wrap: wrap; gap: 12px; }
.operational-form-row label { min-width: 190px; }
.operational-form-row input, .operational-form-row select { margin: 0; }
.operational-form-row button { flex: 0 0 auto; width: auto; }
.operational-grow { flex: 1; }
.operational-table { margin-top: 0; }
.risk-badge { border-radius: 999px; color: #fff; display: inline-block; font-size: 10px; font-weight: 900; padding: 5px 9px; text-transform: uppercase; }
.risk-nao_classificado { background: #94a3b8; }
.risk-vermelho { background: #dc2626; }.risk-laranja { background: #ea580c; }.risk-amarelo { background: #eab308; color: #422006; }.risk-verde { background: #16a34a; }.risk-azul { background: #2563eb; }
.queue-status { color: #334155; font-size: 12px; font-weight: 700; }
.btn-inline-secondary { background: #fff !important; border: 1px solid #bfdbfe !important; box-shadow: none !important; color: #0369a1 !important; margin-top: 10px; width: auto !important; }
.btn-success { background: #047857 !important; }
.operational-patient-banner { background: linear-gradient(135deg, #eff6ff, #fff 72%) !important; border-color: #bae6fd !important; display: grid; gap: 18px; grid-template-columns: minmax(260px, .8fr) 1.2fr; }
.operational-patient-banner h2 { color: #0f3d73; margin: 4px 0; }
.operational-patient-banner p { color: #64748b; margin: 0; }
.operational-status-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.operational-status-actions button { width: auto; }
.operational-alerts { display: grid; gap: 10px; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.operational-alerts > div { background: #fff; border: 1px solid #fda4af; border-radius: 10px; color: #9f1239; padding: 11px; }
.operational-alerts span { display: block; font-size: 9px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.operational-alerts strong { display: block; font-size: 12px; margin-top: 3px; }
.operational-safety-warning { background: #fffbeb; border: 1px solid #fde68a; border-radius: 10px; color: #92400e; font-size: 12px; padding: 10px 12px; }
.operational-triage-grid .span-2 { grid-column: span 2; }
.operational-triage-grid textarea { min-height: 85px; }
.operational-clinical-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.operational-clinical-grid .admin-box, .operational-team-grid .admin-box { border-radius: 16px; box-shadow: 0 8px 22px rgb(15 23 42 / .055); margin-bottom: 0; padding: 24px; }
.compact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.compact-grid textarea { min-height: 75px; }
.operational-list { border-top: 1px solid #e2e8f0; margin-top: 16px; max-height: 330px; overflow: auto; padding-top: 8px; }
.operational-list-item { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 9px; margin: 7px 0; padding: 10px; }
.operational-list-item strong { color: #0f3d73; font-size: 12px; }
.operational-list-item p { color: #475569; font-size: 11px; margin: 4px 0; white-space: pre-wrap; }
.operational-list-item small { color: #64748b; }
.operational-list-item button { margin: 7px 5px 0 0; padding: 6px 9px; width: auto; }
.operational-team-grid { display: grid; gap: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 22px; }
.operational-card-form { display: grid; gap: 12px; }
.operational-card-form > input, .operational-card-form > select { margin: 0; }
.operational-card-form textarea {
    background: #fbfdff;
    border: 1px solid #cbd9e2;
    border-radius: 10px;
    box-sizing: border-box;
    color: var(--primary);
    font: inherit;
    line-height: 1.5;
    margin: 0;
    min-height: 108px;
    padding: 13px 15px;
    resize: vertical;
    transition: border-color .2s, box-shadow .2s, background-color .2s;
    width: 100%;
}
.operational-card-form textarea::placeholder { color: #718096; opacity: 1; }
.handoff-text-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.operational-task-options { display: grid; grid-template-columns: minmax(130px, .7fr) minmax(170px, 1fr) auto; }
.operational-task-options select { min-width: 0; }
.operational-help { background: #fff; border: 1px solid #dbe4ef; border-radius: 14px; margin-top: 22px; padding: 17px 20px; }
.operational-help summary { color: #0f3d73; cursor: pointer; font-weight: 800; }
.operational-help div { color: #475569; font-size: 13px; padding-top: 10px; }

@media (max-width: 980px) {
    .operational-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .operational-clinical-grid { grid-template-columns: 1fr; }
}

@media (max-width: 680px) {
    .operational-hero, .screen-section-heading { align-items: flex-start; flex-direction: column; }
    .operational-metrics, .operational-team-grid, .operational-alerts { grid-template-columns: 1fr; }
    .operational-form-row { align-items: stretch; flex-direction: column; }
    .operational-form-row label, .operational-form-row button { width: 100%; }
    .operational-patient-banner { grid-template-columns: 1fr; }
    .operational-status-actions { justify-content: flex-start; }
    .operational-triage-grid .span-2 { grid-column: auto; }
    .compact-grid { grid-template-columns: 1fr; }
    .handoff-text-grid, .operational-task-options { grid-template-columns: 1fr; }
    .operational-task-options button { width: 100%; }
}

/* CARDS */
.cards-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 20px;
    margin-bottom: 32px;
}

.card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 24px;
    text-align: left;
    position: relative;
    overflow: hidden;
}

.card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 4px;
    height: 100%;
    background: var(--accent);
}

.card.vagas-card::before { background: var(--success); }
.card.unidades-card::before { background: #eab308; }

.card h3 {
    margin: 0 0 8px 0;
    font-size: 13px;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.card .numero {
    font-size: 32px;
    font-weight: 700;
    color: var(--primary);
}

/* AÇÃO SELEÇÃO UPA */
.acao-dashboard {
    background: var(--bg);
    padding: 32px;
    border-radius: 12px;
    text-align: center;
    border: 1px solid var(--border);
    margin-bottom: 32px;
}

.acao-dashboard p {
    margin-top: 0;
    margin-bottom: 16px;
    font-weight: 600;
    color: var(--primary);
    font-size: 16px;
}

.acao-dashboard .seletor-upas {
    max-width: 400px;
    background-color: var(--surface);
}

#telaDashboard .upa-selector-panel {
    background: linear-gradient(135deg, #eff6ff 0%, #f0f9ff 55%, #ecfeff 100%);
    border: 1px solid #bae6fd;
    border-radius: 18px;
    box-shadow: 0 8px 24px rgb(14 116 144 / .08);
    margin: 22px 0 0;
    padding: 24px;
    text-align: left;
}

.upa-selector-heading {
    align-items: center;
    display: grid;
    gap: 16px;
    grid-template-columns: auto minmax(0, 1fr) auto;
}

.upa-selector-icon {
    align-items: center;
    background: linear-gradient(135deg, #075985, #0891b2);
    border-radius: 14px;
    box-shadow: 0 8px 16px rgb(8 145 178 / .2);
    color: #fff;
    display: flex;
    height: 52px;
    justify-content: center;
    width: 52px;
}

.upa-selector-icon svg,
.upa-select-wrapper > svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.upa-selector-icon svg { height: 27px; width: 27px; }
.upa-selector-kicker { color: #0369a1; font-size: 10px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.upa-selector-heading h3 { color: var(--primary); font-size: 18px; margin: 3px 0 4px; }
#telaDashboard .upa-selector-heading p { color: var(--text-muted); font-size: 13px; font-weight: 400; margin: 0; }

.upa-context-status {
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    color: #64748b;
    font-size: 11px;
    font-weight: 800;
    padding: 7px 11px;
    white-space: nowrap;
}

.upa-context-status.is-selected { background: #dcfce7; border-color: #86efac; color: #166534; }

.upa-selector-control {
    background: rgb(255 255 255 / .72);
    border: 1px solid #dbeafe;
    border-radius: 14px;
    margin-top: 18px;
    padding: 15px;
}

.upa-selector-control > label {
    color: #334155;
    display: block;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 7px;
}

.upa-select-wrapper { position: relative; }
.upa-select-wrapper > svg {
    color: #0284c7;
    height: 21px;
    left: 15px;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 21px;
    z-index: 1;
}

#telaDashboard .upa-select-wrapper .seletor-upas {
    appearance: none;
    background-color: #fff;
    background-image: linear-gradient(45deg, transparent 50%, #64748b 50%), linear-gradient(135deg, #64748b 50%, transparent 50%);
    background-position: calc(100% - 19px) 50%, calc(100% - 13px) 50%;
    background-repeat: no-repeat;
    background-size: 6px 6px, 6px 6px;
    border: 1px solid #93c5fd;
    border-radius: 11px;
    box-shadow: 0 2px 6px rgb(15 23 42 / .04);
    color: var(--primary);
    font-size: 15px;
    font-weight: 700;
    margin: 0;
    max-width: none;
    padding: 14px 42px 14px 48px;
}

#telaDashboard .upa-select-wrapper .seletor-upas:focus {
    border-color: #0284c7;
    box-shadow: 0 0 0 4px rgb(14 165 233 / .14);
    outline: none;
}

.upa-native-select { display: none; }
.upa-selector-label {
    color: #334155;
    display: block;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 7px;
}
.upa-custom-select { position: relative; }
.upa-custom-select > summary {
    align-items: center;
    background: #fff;
    border: 1px solid #93c5fd;
    border-radius: 12px;
    box-shadow: 0 3px 10px rgb(15 23 42 / .05);
    cursor: pointer;
    display: grid;
    gap: 12px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    list-style: none;
    min-height: 62px;
    padding: 10px 16px;
    transition: border-color .2s, box-shadow .2s, transform .2s;
}
.upa-custom-select > summary::-webkit-details-marker { display: none; }
.upa-custom-select > summary:hover {
    border-color: #38bdf8;
    box-shadow: 0 6px 18px rgb(14 116 144 / .1);
}
.upa-custom-select[open] > summary {
    border-color: #0284c7;
    box-shadow: 0 0 0 4px rgb(14 165 233 / .13);
}
.upa-custom-summary-icon,
.upa-option-icon {
    align-items: center;
    background: #e0f2fe;
    border-radius: 10px;
    color: #0284c7;
    display: flex;
    height: 38px;
    justify-content: center;
    width: 38px;
}
.upa-custom-summary-icon svg,
.upa-option-icon svg {
    fill: none;
    height: 20px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    width: 20px;
}
.upa-custom-select summary small,
.upa-custom-option small {
    color: var(--text-muted);
    display: block;
    font-size: 10px;
    font-weight: 600;
}
.upa-custom-select summary strong {
    color: var(--primary);
    display: block;
    font-size: 15px;
    margin-top: 1px;
}
.upa-custom-select summary > i {
    border-bottom: 2px solid #64748b;
    border-right: 2px solid #64748b;
    height: 9px;
    transform: rotate(45deg);
    transition: transform .2s;
    width: 9px;
}
.upa-custom-select[open] summary > i { transform: rotate(225deg); }
.upa-custom-menu {
    background: #fff;
    border: 1px solid #dbe4ef;
    border-radius: 14px;
    box-shadow: 0 18px 44px rgb(15 23 42 / .18);
    left: 0;
    margin-top: 8px;
    overflow: hidden;
    padding: 10px;
    position: absolute;
    right: 0;
    z-index: 50;
}
.upa-custom-search {
    align-items: center;
    background: #f8fafc;
    border: 1px solid var(--border);
    border-radius: 10px;
    display: flex;
    gap: 8px;
    padding: 0 12px;
}
.upa-custom-search input {
    background: transparent;
    border: 0;
    box-shadow: none;
    margin: 0;
    padding: 10px 0;
}
.upa-custom-search input:focus { box-shadow: none; }
.upa-custom-options {
    display: grid;
    gap: 6px;
    grid-template-columns: 1fr;
    margin-top: 9px;
    max-height: 285px;
    overflow-y: auto;
}
.acao-dashboard .upa-custom-option {
    align-items: center;
    background: #fff;
    border: 1px solid transparent;
    color: var(--primary);
    display: grid;
    gap: 10px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    max-width: none;
    min-height: 58px;
    padding: 9px 11px;
    text-align: left;
    width: 100%;
}
.acao-dashboard .upa-custom-option:hover {
    background: #f0f9ff;
    border-color: #bae6fd;
}
.acao-dashboard .upa-custom-option.is-selected {
    background: #eff6ff;
    border-color: #60a5fa;
}
.upa-custom-option > i { color: #0284c7; font-style: normal; font-weight: 900; }
.upa-custom-empty { color: var(--text-muted); grid-column: 1 / -1; margin: 0; padding: 22px; text-align: center; }

@media (max-width: 680px) {
    .upa-selector-heading { align-items: flex-start; grid-template-columns: auto minmax(0, 1fr); }
    .upa-context-status { grid-column: 1 / -1; justify-self: start; }
    #telaDashboard .upa-selector-panel { padding: 18px; }
    .upa-custom-options { grid-template-columns: 1fr; }
}

.acao-dashboard button {
    max-width: 200px;
    background: var(--accent);
}
.acao-dashboard button:hover {
    background: var(--accent-hover);
}

/* --- PAINEL ADMIN MODERNO --- */
.admin-box {
    border: 1px solid var(--border);
    padding: 32px;
    border-radius: 12px;
    background: var(--surface);
    box-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.05);
    margin-bottom: 24px;
}

.admin-box h3 {
    margin-top: 0;
    color: var(--primary);
    font-size: 18px;
    font-weight: 700;
}

.grid-admin {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
    align-items: flex-start;
    margin-top: 20px;
}

.grid-admin input, .grid-admin select {
    margin: 0;
}

/* CONTAINER DE CHECKBOXES */
.checkbox-group {
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 12px;
    max-height: 150px;
    overflow-y: auto;
}

.checkbox-item {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    font-size: 13px;
    cursor: pointer;
}

.checkbox-item input {
    width: auto;
    margin: 0;
    cursor: pointer;
}

.upa-checkbox-grid {
    background: #f8fafc;
    display: grid;
    gap: 5px;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    max-height: 220px;
    padding: 6px;
}

.upa-multiselect {
    position: relative;
}

.upa-multiselect[open] {
    z-index: 120;
}

.upa-multiselect > summary {
    align-items: center;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 8px;
    box-sizing: border-box;
    color: var(--primary);
    cursor: pointer;
    display: flex;
    font-size: 14px;
    justify-content: space-between;
    min-height: 42px;
    padding: 12px 42px 12px 16px;
    position: relative;
    user-select: none;
}

.upa-multiselect > summary::-webkit-details-marker {
    display: none;
}

.upa-multiselect > summary::after {
    border-bottom: 2px solid #64748b;
    border-right: 2px solid #64748b;
    content: "";
    height: 7px;
    position: absolute;
    right: 16px;
    top: 15px;
    transform: rotate(45deg);
    transition: transform .2s ease, top .2s ease;
    width: 7px;
}

.upa-multiselect[open] > summary {
    border-color: #38bdf8;
    box-shadow: 0 0 0 3px rgb(14 165 233 / .12);
}

.upa-multiselect[open] > summary::after {
    top: 19px;
    transform: rotate(225deg);
}

.upa-multiselect > .upa-checkbox-grid {
    background: #fff;
    border-color: #cbd5e1;
    box-shadow: 0 16px 34px rgb(15 23 42 / .18);
    left: var(--upa-menu-left, 0);
    margin-top: 0;
    max-height: var(--upa-menu-max-height, min(280px, 45vh));
    overflow-y: auto;
    position: fixed;
    right: auto;
    top: var(--upa-menu-top, auto);
    width: var(--upa-menu-width, 100%);
    z-index: 4000;
}

.upa-multiselect.opens-up > .upa-checkbox-grid {
    bottom: var(--upa-menu-bottom, auto);
    top: auto;
}

.upa-checkbox-grid .checkbox-item {
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: 9px;
    color: #334155;
    font-size: 12px;
    gap: 7px;
    margin: 0;
    min-height: 34px;
    padding: 6px 8px;
    transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.upa-checkbox-grid .checkbox-item:hover {
    background: #f0f9ff;
    border-color: #7dd3fc;
}

.upa-checkbox-grid .checkbox-item:has(input:checked) {
    background: #eff6ff;
    border-color: #60a5fa;
    box-shadow: 0 0 0 2px rgb(37 99 235 / .08);
    color: #1e40af;
    font-weight: 700;
}

.upa-checkbox-grid .checkbox-item input {
    accent-color: #2563eb;
    flex: 0 0 14px;
    height: 14px;
    width: 14px;
}

/* --- TELA DE CONSULTA E TABELAS --- */
.topo-consulta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 32px;
}

.topo-consulta select {
    width: 280px;
    margin: 0;
    display: inline-block;
}

.topo-consulta button {
    width: auto;
    display: inline-block;
    background: var(--accent);
}
.topo-consulta button:hover { background: var(--accent-hover); }

.btn-voltar {
    width: auto;
    background: transparent;
    color: var(--text);
    border: 1px solid var(--border);
    padding: 8px 16px;
    font-size: 14px;
    margin-bottom: 24px;
}
.btn-voltar:hover {
    background: var(--bg);
}

/* TABELA COM SUPORTE A SCROLL MOBILE */
.table-responsive {
    width: 100%;
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: 8px;
    margin-top: 24px;
}

table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

th, td {
    padding: 14px 16px;
    text-align: left;
    font-size: 14px;
    white-space: nowrap;
}

th {
    background: var(--bg);
    color: var(--primary);
    font-weight: 600;
    border-bottom: 1px solid var(--border);
}

td {
    border-bottom: 1px solid var(--border);
    background: var(--surface);
    vertical-align: middle;
}

tr:last-child td {
    border-bottom: none;
}

.linha-filtros input {
    margin: 0;
    padding: 8px 12px;
    font-size: 13px;
    background: var(--surface);
}

.escondido {
    display: none !important;
}

.helper-text {
    font-size: 11px;
    color: var(--text-muted);
    margin-bottom: 6px;
    display: block;
    font-weight: 600;
}

.users-table-responsive { overflow-x: hidden; }
.users-admin-table { min-width: 0; table-layout: fixed; width: 100%; }
.users-admin-table th, .users-admin-table td {
    font-size: 12px;
    overflow-wrap: anywhere;
    padding: 12px 8px;
    white-space: normal;
}
.users-admin-table th:nth-child(1), .users-admin-table td:nth-child(1) { width: 14%; }
.users-admin-table th:nth-child(2), .users-admin-table td:nth-child(2) { width: 19%; }
.users-admin-table th:nth-child(3), .users-admin-table td:nth-child(3) { width: 13%; }
.users-admin-table th:nth-child(4), .users-admin-table td:nth-child(4) { width: 13%; }
.users-admin-table th:nth-child(5), .users-admin-table td:nth-child(5) { width: 9%; }
.users-admin-table th:nth-child(6), .users-admin-table td:nth-child(6) { width: 17%; }
.users-admin-table th:nth-child(7), .users-admin-table td:nth-child(7) { width: 15%; }
.users-admin-table th:nth-child(7) { text-align: center; }
.users-admin-table input, .users-admin-table select { box-sizing: border-box; min-width: 0; width: 100%; }
.users-admin-table td { vertical-align: middle; }
.users-admin-table td:last-child > div { align-items: center; flex-wrap: wrap; }
.user-upa-list { display: flex; flex-wrap: wrap; gap: 6px; }
.user-upa-chip, .user-profile-badge, .user-status-badge { border-radius: 999px; display: inline-flex; font-size: 12px; font-weight: 700; padding: 6px 9px; }
.user-upa-chip { background: #eff6ff; color: #1d4ed8; text-transform: capitalize; }
.user-upa-more {
    background: #dbeafe;
    color: #1e40af;
    cursor: help;
    min-width: 24px;
    justify-content: center;
    text-transform: none;
}
.user-upa-empty { color: var(--text-muted); font-size: 12px; }
.user-profile-badge { background: #f1f5f9; color: #334155; }
.user-status-badge.is-active { background: #dcfce7; color: #166534; }
.user-status-badge.is-inactive { background: #fee2e2; color: #991b1b; }
.user-row-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.user-row-actions button { font-size: 11px; margin: 0; max-width: 100%; padding: 7px 9px; }
.users-admin-table .user-row-actions {
    flex-wrap: nowrap;
    justify-content: flex-end;
}
.users-admin-table .user-row-actions button {
    padding-left: 8px;
    padding-right: 8px;
}
.users-admin-table .user-view-button { gap: 5px; }
.user-view-button {
    align-items: center;
    background: linear-gradient(135deg, #075985, #0284c7);
    box-shadow: 0 4px 10px rgb(3 105 161 / .18);
    display: inline-flex;
    gap: 7px;
    padding: 8px 12px;
    width: auto;
}
.user-view-button:hover {
    background: linear-gradient(135deg, #0c4a6e, #0369a1);
}

.admin-section-description { color: var(--text-muted); font-size: 14px; margin-bottom: 18px; }
.admin-create-row { align-items: end; display: flex; flex-wrap: wrap; gap: 10px; }
.admin-create-field { flex: 1; margin: 0; min-width: 240px; }
.admin-create-field input { margin: 0; }
.admin-create-row > button { flex: 0 0 auto; width: auto; }
.admin-inline-editor { background: #f8fbff; border: 1px solid #bfdbfe; border-radius: 12px; margin-top: 14px; padding: 16px; }
.admin-inline-editor input { margin: 10px 0; }
.admin-inline-actions, .admin-filter-row, .admin-pagination { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; }
.admin-inline-actions button, .admin-pagination button { margin: 0; width: auto; }
.admin-filter-row { margin-top: 14px; }
.admin-filter-row input { margin: 0; max-width: 320px; }
.admin-filter-row select { margin: 0; max-width: 180px; }
.upas-table-responsive { margin-top: 16px; overflow-x: hidden; }
.upas-admin-table { min-width: 0; table-layout: fixed; width: 100%; }
.upas-admin-table th, .upas-admin-table td { font-size: 12px; padding: 12px 14px; white-space: normal; }
.upas-admin-table th:nth-child(1), .upas-admin-table td:nth-child(1) { width: 32%; }
.upas-admin-table th:nth-child(2), .upas-admin-table td:nth-child(2) { width: 14%; }
.upas-admin-table th:nth-child(3), .upas-admin-table td:nth-child(3) { width: 54%; }
.upa-row-actions {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    justify-content: flex-end;
    width: 100%;
}
.upa-row-actions button {
    flex: 0 1 128px;
    max-width: 128px;
    min-height: 34px;
    min-width: 92px;
    width: auto;
}
.upa-row-actions .user-view-button {
    background: linear-gradient(135deg, #075985, #0284c7);
    box-shadow: 0 4px 10px rgb(3 105 161 / .18);
}
.upa-row-actions .user-view-button:hover {
    background: linear-gradient(135deg, #0c4a6e, #0369a1);
}
.upa-row-actions .btn-secondary { background: #fff; color: #334155; }
.upa-row-actions .upa-status-action {
    border: 1px solid transparent;
    color: #fff;
}
.upa-row-actions .upa-status-action.is-disable {
    background: linear-gradient(135deg, #f59e0b, #ea580c);
    box-shadow: 0 4px 10px rgb(234 88 12 / .18);
}
.upa-row-actions .upa-status-action.is-disable:hover {
    background: linear-gradient(135deg, #d97706, #c2410c);
}
.upa-row-actions .upa-status-action.is-enable {
    background: linear-gradient(135deg, #10b981, #047857);
    box-shadow: 0 4px 10px rgb(4 120 87 / .18);
}
.upa-row-actions .upa-status-action.is-enable:hover {
    background: linear-gradient(135deg, #059669, #065f46);
}
.admin-pagination { justify-content: center; margin-top: 12px; }
.admin-pagination span { color: var(--text-muted); font-size: 12px; font-weight: 700; }
.admin-table-empty { color: var(--text-muted); padding: 28px !important; text-align: center; }

/* --- ORGANIZAÇÃO DO PAINEL ADMINISTRATIVO --- */
#telaAdmin {
    max-width: 1760px;
    padding: clamp(22px, 2.2vw, 38px);
}
#telaAdmin > .page-hero { padding: 30px 34px; }
#telaAdmin > .admin-box { margin-bottom: 28px; }
#gestaoUsuariosPainel,
#gestaoUpasMaster { padding: clamp(22px, 2vw, 32px); }
#formNovoUsuario {
    align-items: start;
    background: #f8fbff;
    border: 1px solid #dbeafe;
    border-radius: 14px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 20px;
}
#formNovoUsuario > div { min-width: 0; width: 100%; }
#formNovoUsuario .upa-multiselect { margin: 0; }
.admin-form-submit { align-self: end; }
.admin-form-submit button { margin: 0; min-height: 44px; }
.professional-registration-setting {
    align-items: center;
    background: #f8fbff;
    border: 1px solid #dbeafe;
    border-radius: 12px;
    display: flex;
    margin-top: 18px;
    padding: 12px 16px;
}
.admin-subsection-heading {
    align-items: end;
    border-top: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    margin-top: 30px;
    padding-top: 24px;
}
.admin-subsection-heading h4 { color: var(--primary); font-size: 17px; margin: 4px 0 0; }
.admin-user-filters { margin: 14px 0; }
.admin-user-filters input { flex: 1; max-width: 420px; }
.admin-feature-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr;
    margin-bottom: 28px;
}
.admin-feature-grid .admin-feature-card {
    align-items: center;
    border: 1px solid #dbe4ef;
    border-radius: 16px;
    box-shadow: var(--shadow-sm);
    flex-direction: row;
    margin: 0;
    min-height: 0;
    padding: 19px 22px;
}
.admin-feature-grid .admin-feature-card > div {
    flex: 1;
}
.admin-feature-grid .admin-feature-card .page-hero-kicker { font-size: 9px; margin-bottom: 3px; }
.admin-feature-grid .admin-feature-card h3 { font-size: 16px; margin: 4px 0 5px; }
.admin-feature-grid .admin-feature-card p { font-size: 13px !important; line-height: 1.45; margin: 0; }
.admin-feature-grid .admin-feature-card button {
    align-self: center;
    background: linear-gradient(135deg, #075985, #0284c7);
    border-radius: 8px;
    flex: 0 0 190px;
    font-size: 12px;
    margin-top: 0;
    min-height: 38px;
    padding: 8px 14px;
    max-width: 190px;
    min-width: 190px;
    width: 190px !important;
}
.admin-reports-panel { padding: clamp(22px, 2vw, 30px) !important; }
.admin-section-header {
    align-items: start;
    display: flex;
    gap: 24px;
    justify-content: space-between;
}
.admin-section-header h3 { margin: 4px 0 0 !important; }
.admin-section-header p { color: var(--text-muted); font-size: 13px; margin: 3px 0 0; }
.admin-report-controls {
    align-items: end;
    display: grid;
    gap: 12px;
    grid-template-columns: 170px 170px minmax(0, 1fr);
    margin-top: 20px;
}
.admin-report-controls label { margin: 0; }
.admin-report-controls input { margin: 0; }
.admin-report-actions {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    justify-content: flex-end;
}
.admin-report-actions button {
    background: linear-gradient(135deg, #075985, #0284c7);
    box-shadow: 0 4px 10px rgb(3 105 161 / .18);
    flex: 0 1 190px;
    margin: 0;
    max-width: 190px;
    padding-inline: 12px;
    width: auto;
}
.admin-report-actions button:hover {
    background: linear-gradient(135deg, #0c4a6e, #0369a1);
}
.admin-report-actions .btn-success {
    background: linear-gradient(135deg, #10b981, #047857) !important;
    box-shadow: 0 4px 10px rgb(4 120 87 / .18);
}
.admin-report-actions .btn-success:hover {
    background: linear-gradient(135deg, #059669, #065f46) !important;
}
#auditoriaPainel { padding: clamp(22px, 2vw, 30px); }

.specialty-create-form {
    align-items: end;
    background: #f8fbff;
    border: 1px solid #dbeafe;
    border-radius: 14px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 18px;
    padding: 18px;
}
.specialties-table-responsive { overflow-x: hidden; }
.specialties-admin-table { min-width: 0; table-layout: fixed; width: 100%; }
.specialties-admin-table th, .specialties-admin-table td { font-size: 12px; padding: 12px 14px; }
.specialties-admin-table th:nth-child(1), .specialties-admin-table td:nth-child(1) { width: 14%; }
.specialties-admin-table th:nth-child(2), .specialties-admin-table td:nth-child(2) { width: 24%; }
.specialties-admin-table th:nth-child(3), .specialties-admin-table td:nth-child(3) { width: 27%; }
.specialties-admin-table th:nth-child(4), .specialties-admin-table td:nth-child(4) { width: 10%; }
.specialties-admin-table th:nth-child(5), .specialties-admin-table td:nth-child(5) { width: 25%; }
.specialties-admin-table th:last-child { text-align: center; }
.specialties-admin-table input { margin: 0; min-height: 40px; }
.specialty-row-actions {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    justify-content: flex-end;
}
.specialty-row-actions button {
    flex: 0 1 112px;
    font-size: 11px;
    margin: 0;
    max-width: 112px;
    min-width: 80px;
    width: auto;
}
.specialty-row-actions .upa-status-action { border: 0; color: #fff; }
.specialty-save-button {
    background: linear-gradient(135deg, #075985, #0284c7);
    box-shadow: 0 4px 10px rgb(3 105 161 / .18);
}
.specialty-save-button:hover { background: linear-gradient(135deg, #0c4a6e, #0369a1); }
.specialty-row-actions .upa-status-action.is-disable { background: linear-gradient(135deg, #f59e0b, #ea580c); }
.specialty-row-actions .upa-status-action.is-enable { background: linear-gradient(135deg, #10b981, #047857); }

.upa-edit-dialog { max-width: 1180px; }
.upa-edit-content { overflow-y: auto; padding: 24px 28px; }
.upa-edit-name {
    align-items: end;
    background: #f8fbff;
    border: 1px solid #dbeafe;
    border-radius: 14px;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(180px, .65fr) minmax(280px, 1.5fr) auto;
    padding: 18px;
}
.upa-edit-name h4,
.upa-edit-section-heading h4 { color: var(--primary); font-size: 17px; margin: 4px 0 0; }
.upa-edit-name label,
.upa-specialty-create label { margin: 0; }
.upa-edit-name input,
.upa-specialty-create input { margin: 0; }
.upa-edit-name button,
.upa-specialty-create button { margin: 0; width: auto; }
.upa-edit-specialties { margin-top: 24px; }
.upa-edit-section-heading { align-items: center; display: flex; gap: 18px; justify-content: space-between; }
.upa-specialty-create {
    align-items: end;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(220px, 1fr) minmax(260px, 1.25fr) auto;
    margin: 16px 0;
}
.upa-specialties-table { max-height: 390px; overflow: auto; }
.upa-specialties-table .specialties-admin-table th:nth-child(1),
.upa-specialties-table .specialties-admin-table td:nth-child(1) { width: 25%; }
.upa-specialties-table .specialties-admin-table th:nth-child(2),
.upa-specialties-table .specialties-admin-table td:nth-child(2) { width: 31%; }
.upa-specialties-table .specialties-admin-table th:nth-child(3),
.upa-specialties-table .specialties-admin-table td:nth-child(3) { width: 12%; }
.upa-specialties-table .specialties-admin-table th:nth-child(4),
.upa-specialties-table .specialties-admin-table td:nth-child(4) { width: 32%; }
.upa-edit-footer { margin-top: 0 !important; }
.upa-edit-footer > .btn-secondary { margin-left: auto; min-width: 120px; }

@media (max-width: 1180px) {
    #formNovoUsuario { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-report-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-report-actions { grid-column: 1 / -1; }
    .specialty-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .users-table-responsive {
        background: transparent;
        border: 0;
        box-shadow: none !important;
        overflow: visible;
    }

    .users-admin-table,
    .users-admin-table tbody,
    .users-admin-table tr,
    .users-admin-table td {
        display: block;
        width: 100% !important;
    }

    .users-admin-table {
        margin-top: 0 !important;
    }

    .users-admin-table thead {
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        height: 1px;
        overflow: hidden;
        position: absolute;
        white-space: nowrap;
        width: 1px;
    }

    .users-admin-table tr {
        background: #fff;
        border: 1px solid #dbe4ef;
        border-radius: 14px;
        box-shadow: 0 4px 14px rgb(15 23 42 / .05);
        margin-bottom: 14px;
        overflow: hidden;
    }

    .users-admin-table td {
        align-items: start;
        border-bottom: 1px solid #edf2f7;
        display: grid;
        gap: 14px;
        grid-template-columns: minmax(105px, 32%) minmax(0, 1fr);
        padding: 11px 14px;
    }

    .users-admin-table td::before {
        color: #64748b;
        font-size: 10px;
        font-weight: 800;
        letter-spacing: .06em;
        text-transform: uppercase;
    }

    .users-admin-table td:nth-child(1)::before { content: "Nome"; }
    .users-admin-table td:nth-child(2)::before { content: "E-mail"; }
    .users-admin-table td:nth-child(3)::before { content: "Permissão"; }
    .users-admin-table td:nth-child(4)::before { content: "Especialidade"; }
    .users-admin-table td:nth-child(5)::before { content: "Status"; }
    .users-admin-table td:nth-child(6)::before { content: "UPAs permitidas"; }
    .users-admin-table td:nth-child(7)::before { content: "Ações"; }
    .users-admin-table td:last-child { border-bottom: 0; }

    .upas-table-responsive { background: transparent; border: 0; box-shadow: none !important; overflow: visible; }
    .upas-admin-table, .upas-admin-table tbody, .upas-admin-table tr, .upas-admin-table td { display: block; width: 100% !important; }
    .upas-admin-table thead {
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        height: 1px;
        overflow: hidden;
        position: absolute;
        white-space: nowrap;
        width: 1px;
    }
    .upas-admin-table tr { background: #fff; border: 1px solid #dbe4ef; border-radius: 14px; box-shadow: var(--shadow-sm); margin-bottom: 12px; overflow: hidden; }
    .upas-admin-table td { align-items: start; border-bottom: 1px solid #edf2f7; display: grid; gap: 14px; grid-template-columns: minmax(90px, 28%) minmax(0, 1fr); padding: 12px 14px; }
    .upas-admin-table td::before { color: #64748b; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
    .upas-admin-table td:nth-child(1)::before { content: "UPA"; }
    .upas-admin-table td:nth-child(2)::before { content: "Status"; }
    .upas-admin-table td:nth-child(3)::before { content: "Ações"; }
    .upas-admin-table td:last-child { border-bottom: 0; }
    .upa-row-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .upa-row-actions button { max-width: none; min-width: 0; width: 100%; }
    #formNovoUsuario { grid-template-columns: 1fr; padding: 16px; }
    .admin-section-header { flex-direction: column; gap: 6px; }
    .admin-report-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .admin-report-actions button { max-width: none; width: 100%; }
    .admin-feature-grid .admin-feature-card { align-items: stretch; flex-direction: column; }
    .admin-feature-grid .admin-feature-card button { align-self: flex-start; margin-top: 14px; width: auto !important; }
    .specialty-create-form { grid-template-columns: 1fr; padding: 16px; }
    .specialties-table-responsive { overflow-x: auto; }
    .specialties-admin-table { min-width: 760px; }
    .upa-edit-name,
    .upa-specialty-create { grid-template-columns: 1fr; }
    .upa-edit-name button,
    .upa-specialty-create button { width: 100%; }
}

@media (max-width: 480px) {
    .users-admin-table td {
        gap: 6px;
        grid-template-columns: 1fr;
    }
    .admin-report-controls,
    .admin-report-actions { grid-template-columns: 1fr; }
    .admin-report-actions { grid-column: auto; }
}
.user-view-button svg { fill: none; height: 17px; stroke: currentColor; stroke-width: 1.8; width: 17px; }
.user-edit-dialog { max-width: 760px; }
.user-edit-content { overflow-y: auto; padding: 24px 28px; }
.user-edit-grid { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.user-edit-grid label { margin: 0; }
.user-edit-grid input, .user-edit-grid select { margin: 5px 0 0; width: 100%; }
.user-edit-upas { margin-top: 20px; }
.user-edit-upas .checkbox-group { margin-top: 8px; max-height: 220px; }
.user-edit-footer {
    align-items: center;
    border-top: 1px solid var(--border);
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    justify-content: space-between;
    margin-top: 32px;
    padding-top: 22px;
}
.user-edit-footer > div { display: flex; flex-wrap: wrap; gap: 12px; margin-left: auto; }
.user-edit-footer button { margin: 0; min-width: 120px; width: auto; }
.user-edit-footer > .btn-danger { min-width: 150px; }
.checkbox-item.is-disabled { cursor: not-allowed; opacity: .55; }

/* --- PRONTUÁRIO CLÍNICO --- */
.prontuario-layout {
    --clinical-blue: #0b4f8a;
    --clinical-cyan: #06b6d4;
}

.prontuario-paciente-header {
    background: linear-gradient(135deg, #f8fcff 0%, #ffffff 72%);
    border-color: #cbdfea;
    box-shadow: 0 10px 30px rgba(15, 49, 78, .06);
    position: relative;
}

.prontuario-paciente-title,
.clinical-workspace-header,
.clinical-signature-bar {
    align-items: center;
    display: flex;
    gap: 20px;
    justify-content: space-between;
}

.prontuario-paciente-title h2 {
    color: var(--primary);
    font-size: 26px;
    margin: 4px 0 0;
}

.section-kicker {
    color: var(--clinical-blue);
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.patient-status-badge {
    background: #dcfce7;
    border: 1px solid #86efac;
    border-radius: 999px;
    color: #166534;
    font-size: 12px;
    font-weight: 800;
    padding: 7px 12px;
}

.prontuario-access-bar {
    align-items: end;
    border-top: 1px solid #e0f2fe;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 18px;
    padding-top: 14px;
}

.prontuario-access-bar > div { min-width: 240px; }
.prontuario-access-bar select { margin: 0; }

.patient-summary-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: 16px;
}

.patient-summary-item,
.clinical-alert {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 10px;
    min-width: 0;
    padding: 11px 13px;
}

.patient-summary-item span,
.clinical-alert span {
    color: var(--text-muted);
    display: block;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .07em;
    margin-bottom: 4px;
    text-transform: uppercase;
}

.patient-summary-item strong,
.clinical-alert strong {
    color: var(--primary);
    display: block;
    font-size: 13px;
    overflow-wrap: anywhere;
}

.clinical-alert { grid-column: span 2; }
.clinical-alert.is-danger { background: #fff1f2; border-color: #fda4af; }
.clinical-alert.is-danger span, .clinical-alert.is-danger strong { color: #9f1239; }
.clinical-alert.is-warning { background: #fffbeb; border-color: #fcd34d; }
.clinical-alert.is-warning span, .clinical-alert.is-warning strong { color: #92400e; }

.clinical-workspace {
    background: #f3f7fa;
    border-color: #b9ccd9;
    box-shadow: 0 18px 42px rgba(15, 49, 78, .1);
    padding: 0;
    overflow: hidden;
}

.clinical-workspace-header {
    background: linear-gradient(120deg, #082f49, #0b4f8a);
    color: #fff;
    padding: 24px 28px;
}

.clinical-workspace-header .section-kicker { color: #67e8f9; }
.clinical-workspace-header h3 { color: #fff; font-size: 22px; margin: 4px 0 0; }
.clinical-workspace-header .btn-secondary {
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.45);
    color: #fff;
    width: auto;
}

.clinical-session-tools { align-items: center; display: flex; gap: 10px; }
.clinical-session-tools button { margin: 0; white-space: nowrap; }
.clinical-session-tools button:disabled { cursor: default; opacity: .78; }
.clinical-timer { align-items: flex-end; display: flex; flex-direction: column; min-width: 145px; }
.clinical-timer span { color: #bae6fd; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.clinical-timer strong { color: #fff; font-size: 20px; font-variant-numeric: tabular-nums; letter-spacing: .05em; }
.clinical-timer small { color: #a7f3d0; font-size: 9px; }

.clinical-recovery-banner {
    align-items: center;
    background: #fffbeb;
    border-bottom: 1px solid #fcd34d;
    color: #78350f;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    padding: 12px 28px;
}
.clinical-recovery-banner > div { display: flex; flex-direction: column; }
.clinical-recovery-banner span { font-size: 12px; margin-top: 2px; }
.clinical-recovery-banner button { background: transparent; border: 1px solid #f59e0b; color: #92400e; margin: 0; padding: 7px 11px; width: auto; }
.clinical-recovery-banner.escondido { display: none; }

.clinical-template-bar {
    align-items: center;
    background: #e0f2fe;
    border-bottom: 1px solid #bae6fd;
    display: flex;
    gap: 20px;
    padding: 16px 28px;
}

.clinical-section-nav {
    align-items: center;
    background: #fff;
    border-bottom: 1px solid #dce7ee;
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 11px 28px;
    scrollbar-width: thin;
}

.clinical-section-nav button {
    align-items: center;
    background: transparent;
    border: 1px solid transparent;
    border-radius: 999px;
    color: #36566d;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 700;
    gap: 7px;
    margin: 0;
    padding: 7px 12px;
    width: auto;
}

.clinical-section-nav button:hover { background: #eff8fc; border-color: #bae6fd; color: var(--clinical-blue); }
.clinical-section-nav button span { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 7px; background: #e0f2fe; color: #075985; font-size: 11px; }

.clinical-template-bar > div { min-width: 260px; }
.clinical-template-bar select { margin: 0; }
.clinical-template-bar p { color: #075985; font-size: 13px; margin: 0; }

.clinical-section {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 16px;
    margin: 20px 28px;
    padding: 24px;
    scroll-margin-top: 18px;
    box-shadow: 0 5px 16px rgba(15, 49, 78, .035);
}

.clinical-section-title {
    align-items: flex-start;
    border-bottom: 1px solid var(--border);
    display: flex;
    gap: 12px;
    margin-bottom: 18px;
    padding-bottom: 14px;
}

.clinical-section-title > span {
    align-items: center;
    background: var(--clinical-blue);
    border-radius: 8px;
    color: #fff;
    display: flex;
    flex: 0 0 30px;
    font-size: 14px;
    font-weight: 800;
    height: 30px;
    justify-content: center;
}

.clinical-section-title h4 { color: var(--primary); font-size: 16px; margin: 0 0 3px; }
.clinical-section-title p { color: var(--text-muted); font-size: 12px; margin: 0; }

.clinical-grid,
.vitals-grid {
    display: grid;
    gap: 16px;
}

.clinical-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vitals-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-bottom: 16px; }
.clinical-grid label, .vitals-grid label { min-width: 0; }
.clinical-grid input, .clinical-grid textarea, .clinical-grid select, .vitals-grid input {
    background: #fbfdff;
    border: 1px solid #cbd9e2;
    border-radius: 10px;
    box-sizing: border-box;
    color: var(--primary);
    font-family: inherit;
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
    padding: 11px 13px;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
    width: 100%;
}
.clinical-grid textarea { min-height: 104px; resize: vertical; }
.clinical-grid input:focus, .clinical-grid textarea:focus, .clinical-grid select:focus, .vitals-grid input:focus { background: #fff; border-color: #0ea5e9; box-shadow: 0 0 0 3px rgba(14, 165, 233, .12); outline: none; }
.clinical-grid label, .vitals-grid label { color: #38566c; font-size: 12px; font-weight: 700; }
.clinical-grid .helper-text, .vitals-grid .helper-text { color: #526d80; font-size: 10px; letter-spacing: .045em; margin-bottom: 7px; }

.clinical-signature-bar {
    background: #ecfdf5;
    border-top: 1px solid #a7f3d0;
    padding: 20px 28px;
}

.clinical-signature-bar > label { align-items: flex-start; display: flex; gap: 10px; }
.clinical-signature-bar input { margin: 3px 0 0; width: auto; }
.clinical-signature-bar label span { display: flex; flex-direction: column; gap: 2px; }
.clinical-signature-bar small { color: #047857; }
.clinical-signature-bar button { background: #047857; width: auto; }
.clinical-finish-actions { display: flex; gap: 10px; }
.clinical-signature-bar .clinical-finish-actions .btn-secondary { background: #fff; border: 1px solid #86b7a3; color: #065f46; margin: 0; }
.clinical-signature-bar .clinical-finish-actions .btn-finish-care { background: #047857; box-shadow: 0 8px 18px rgba(4, 120, 87, .2); margin: 0; }

.clinical-history article,
.clinical-history > div > p {
    background: #fff;
    border: 1px solid var(--border);
    border-left: 4px solid var(--clinical-blue);
    border-radius: 10px;
    margin: 12px 0;
    padding: 16px;
    transition: background .2s ease, box-shadow .2s ease;
}

.clinical-history article p { line-height: 1.55; margin: 10px 0 0; }

.longitudinal-dashboard { overflow: hidden; }
.longitudinal-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 18px 0; }
.longitudinal-metric { background: #f8fafc; border: 1px solid var(--border); border-radius: 12px; display: flex; flex-direction: column; padding: 16px; }
.longitudinal-metric strong { color: var(--clinical-blue); font-size: 28px; line-height: 1; }
.longitudinal-metric span { color: var(--text-muted); font-size: 12px; margin-top: 8px; text-transform: uppercase; }
.metric-alert strong { color: #b91c1c; } .metric-exam strong { color: #b45309; } .metric-medication strong { color: #047857; }
.longitudinal-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.longitudinal-grid > section { background: #f8fafc; border: 1px solid var(--border); border-radius: 14px; min-width: 0; padding: 16px; }
.longitudinal-title { align-items: center; display: flex; gap: 12px; justify-content: space-between; }
.longitudinal-title h4 { margin: 0; } .longitudinal-title > span { color: var(--text-muted); font-size: 12px; }
.clinical-stack { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; max-height: 360px; overflow: auto; }
.clinical-stack article { background: #fff; border: 1px solid var(--border); border-left: 4px solid #64748b; border-radius: 9px; padding: 12px; }
.clinical-stack article div { display: flex; flex-direction: column; } .clinical-stack article small { color: var(--text-muted); margin-top: 3px; }
.clinical-stack article p { font-size: 13px; margin: 8px 0; white-space: pre-wrap; }
.clinical-stack button, .clinical-stack select { font-size: 12px; margin: 4px 0 0; padding: 7px; width: auto; }
.dashboard-alert.severity-alta { border-left-color: #ea580c; } .dashboard-alert.severity-critica, .dashboard-exam.is-critical { border-left-color: #dc2626; background: #fef2f2; }
.dashboard-problem { border-left-color: #2563eb !important; } .dashboard-exam { border-left-color: #d97706 !important; }
.automatic-badge { color: #9f1239; font-size: 10px; font-weight: 700; text-transform: uppercase; }
.longitudinal-form { border-top: 1px solid var(--border); margin-top: 22px; padding-top: 16px; }
.longitudinal-form summary { color: var(--clinical-blue); cursor: pointer; font-weight: 700; margin-bottom: 16px; }
.longitudinal-form label { display: flex; flex-direction: column; gap: 8px; }
.longitudinal-form label input, .longitudinal-form label textarea, .longitudinal-form label select { margin: 0; }
.timeline-heading { border-top: 1px solid var(--border); margin-top: 24px; padding-top: 20px; }
.timeline-heading select { margin: 0; max-width: 240px; }
.clinical-timeline { margin: 18px 0 0 10px; padding-left: 20px; position: relative; }
.clinical-timeline::before { background: #cbd5e1; bottom: 12px; content: ''; left: 5px; position: absolute; top: 12px; width: 2px; }
.timeline-event { display: grid; gap: 16px; grid-template-columns: 12px 1fr; padding: 0 0 22px; position: relative; }
.timeline-marker { background: #2563eb; border: 3px solid #dbeafe; border-radius: 50%; height: 13px; margin-left: -20px; margin-top: 4px; position: relative; width: 13px; z-index: 1; }
.timeline-event > div:last-child { background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: 13px 15px; }
.timeline-event small, .timeline-event span { color: var(--text-muted); font-size: 11px; } .timeline-event h5 { font-size: 14px; margin: 5px 0; } .timeline-event p { margin: 0 0 5px; }
.timeline-event.is-critical > div:last-child { background: #fef2f2; border-color: #fecaca; }
.empty-clinical { color: var(--text-muted); font-size: 13px; }

@media (max-width: 900px) {
    .patient-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vitals-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .longitudinal-grid { grid-template-columns: 1fr; }
    .longitudinal-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
    .prontuario-paciente-header { position: static; }
    .prontuario-paciente-title, .clinical-workspace-header, .clinical-signature-bar, .clinical-template-bar { align-items: stretch; flex-direction: column; }
    .patient-summary-grid, .clinical-grid-2, .vitals-grid { grid-template-columns: 1fr; }
    .clinical-alert { grid-column: auto; }
    .clinical-workspace-header, .clinical-template-bar, .clinical-signature-bar { padding: 18px; }
    .clinical-session-tools { align-items: stretch; flex-direction: column; }
    .clinical-timer { align-items: flex-start; }
    .clinical-session-tools button { width: 100%; }
    .clinical-recovery-banner { align-items: stretch; flex-direction: column; padding: 14px 18px; }
    .clinical-section-nav { padding: 10px 16px; }
    .longitudinal-metrics { grid-template-columns: 1fr; }
    .clinical-section { margin: 16px; padding: 18px; }
    .clinical-signature-bar button, .clinical-workspace-header .btn-secondary { width: 100%; }
    .clinical-finish-actions { flex-direction: column; }
}

.app-footer {
    position: fixed;
    bottom: 20px;
    right: 20px;
    font-size: 12px;
    color: var(--text-muted);
}

.availability-board-heading { align-items: center; display: flex; gap: 20px; justify-content: space-between; }
.availability-board-heading h3 { margin: 4px 0 0; }
.availability-legend { display: flex; flex-wrap: wrap; gap: 14px; }
.availability-legend span { align-items: center; color: var(--text-muted); display: flex; font-size: 12px; gap: 6px; }
.availability-legend i { border-radius: 4px; display: inline-block; height: 12px; width: 12px; }
.availability-legend .is-free, .availability-slot.is-free { background: #bfeee8; border-color: #8adbd1; color: #075e57; }
.availability-legend .is-busy, .availability-slot.is-busy { background: #f1f5f9; border-color: #dbe3ec; color: #94a3b8; }
.availability-legend .is-mine, .availability-slot.is-mine { background: #2563eb; border-color: #1d4ed8; color: #fff; }
.availability-date-strip { display: grid; gap: 9px; grid-template-columns: repeat(7, minmax(78px, 1fr)); margin: 22px 0; overflow-x: auto; padding-bottom: 4px; }
.availability-date { background: #f8fafc; border: 1px solid var(--border); color: var(--primary); display: flex; flex-direction: column; gap: 2px; min-width: 78px; padding: 10px 8px; }
.availability-date small { font-size: 10px; text-transform: uppercase; }
.availability-date strong { font-size: 20px; }
.availability-date span { color: var(--text-muted); font-size: 10px; }
.availability-date.is-selected { background: var(--primary); border-color: var(--primary); color: #fff; box-shadow: 0 8px 20px rgba(15, 50, 94, .18); }
.availability-date.is-selected span { color: #dbeafe; }
.availability-board { display: flex; flex-direction: column; gap: 16px; }
.availability-empty { color: var(--text-muted); padding: 32px; text-align: center; }
.availability-provider { background: #fff; border: 1px solid var(--border); border-radius: 14px; overflow: hidden; }
.availability-provider > header { align-items: center; background: #f8fafc; border-bottom: 1px solid var(--border); display: flex; gap: 12px; padding: 15px 18px; }
.availability-provider > header div:nth-child(2) { flex: 1; }
.availability-provider > header small { color: var(--text-muted); font-size: 9px; font-weight: 800; letter-spacing: .12em; }
.availability-provider > header h4 { color: var(--primary); font-size: 14px; margin: 2px 0 0; text-transform: uppercase; }
.availability-provider > header > span { background: #e0f2fe; border-radius: 999px; color: #0369a1; font-size: 11px; font-weight: 700; padding: 5px 9px; }
.availability-avatar { align-items: center; background: linear-gradient(135deg, var(--primary), #0891b2); border-radius: 9px; color: #fff; display: flex; font-weight: 800; height: 36px; justify-content: center; width: 36px; }
.availability-batch { padding: 16px 18px; }
.availability-batch + .availability-batch { border-top: 1px solid var(--border); }
.availability-batch-meta { align-items: center; display: flex; gap: 12px; justify-content: space-between; }
.availability-batch-meta > div { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
.availability-batch-meta strong { color: var(--primary); font-size: 12px; text-transform: uppercase; }
.availability-batch-meta small { color: var(--text-muted); font-size: 11px; }
.availability-delete { background: var(--danger); font-size: 11px; padding: 7px 10px; width: auto; }

.appointments-tabs { display: flex; gap: 8px; margin: -4px 0 16px; padding: 5px; width: fit-content; border: 1px solid var(--border); border-radius: 13px; background: #eef4f8; }
.appointments-tabs button { background: transparent; border-radius: 9px; color: #486579; font-size: 13px; font-weight: 700; margin: 0; padding: 9px 15px; width: auto; }
.appointments-tabs button.is-active { background: #fff; color: #0b4f8a; box-shadow: 0 3px 10px rgba(15, 49, 78, .1); }
.my-patients-heading { align-items: center; background: linear-gradient(120deg, #eff8ff, #f0fdf4); border: 1px solid #bae6fd; border-radius: 14px; display: flex; justify-content: space-between; margin-bottom: 18px; padding: 16px 18px; }
.my-patients-heading.escondido { display: none; }
.my-patients-heading h3 { margin: 4px 0 2px; }
.my-patients-heading p { color: var(--text-muted); font-size: 12px; margin: 0; }
.my-patients-heading > strong { background: #fff; border: 1px solid #bae6fd; border-radius: 999px; color: #075985; padding: 8px 12px; white-space: nowrap; }
.appointment-specialty-badge { background: #e0f2fe; border: 1px solid #bae6fd; border-radius: 999px; color: #075985; display: inline-block; font-size: 11px; font-weight: 700; padding: 5px 8px; }
#campoEspecialidadeMeusPacientes.escondido { display: none; }

@media (max-width: 680px) {
    .appointments-tabs { width: 100%; }
    .appointments-tabs button { flex: 1; }
    .my-patients-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
}
.availability-slots { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.availability-slot { border: 1px solid transparent; border-radius: 7px; font-size: 11px; font-weight: 800; margin: 0; min-width: 58px; padding: 8px 9px; width: auto; }
.availability-slot.is-free:hover { background: #8adbd1; transform: translateY(-1px); }
.availability-slot:disabled { cursor: not-allowed; opacity: .8; }

@media (max-width: 720px) {
    .availability-board-heading, .availability-batch-meta { align-items: stretch; flex-direction: column; }
    .availability-date-strip { grid-template-columns: repeat(7, 78px); }
    .availability-provider > header > span { display: none; }
    .availability-delete { width: 100%; }
}
.admin-feature-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.admin-feature-card > div { flex: 1; }

.user-actions-button { background: #0ea5e9; font-size: 12px; padding: 6px 12px; white-space: nowrap; width: auto; }
.permissions-modal { align-items: center; background: rgba(8, 20, 38, .65); display: flex; inset: 0; justify-content: center; padding: 24px; position: fixed; z-index: 3000; }
.permissions-modal.escondido { display: none; }
.permissions-dialog { background: #f8fafc; border-radius: 18px; box-shadow: 0 26px 70px rgba(2, 16, 34, .35); display: flex; flex-direction: column; max-height: 90vh; max-width: 880px; overflow: hidden; width: 100%; }
.permissions-dialog-header { align-items: flex-start; background: linear-gradient(120deg, #0b4f8a, #087c98); color: #fff; display: flex; justify-content: space-between; padding: 24px 28px; }
.permissions-dialog-header h3 { color: #fff; margin: 5px 0; }
.permissions-dialog-header p { color: #d9f3fb; font-size: 12px; margin: 0; text-transform: capitalize; }
.permissions-dialog-header .page-hero-kicker { color: #85edff; }
.permissions-close { background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.3); border-radius: 10px; font-size: 25px; line-height: 1; padding: 7px 11px; width: auto; }
.permissions-toolbar { align-items: end; background: #fff; border-bottom: 1px solid var(--border); display: grid; gap: 18px; grid-template-columns: minmax(230px, 1fr) minmax(280px, 1fr) auto; padding: 16px 28px; }
.permissions-toolbar label { display: flex; flex-direction: column; margin: 0; min-width: 0; }
.permissions-toolbar input, .permissions-toolbar select { height: 44px; margin: 5px 0 0; width: 100%; }
.permissions-toolbar strong { align-self: end; background: #e0f2fe; border-radius: 999px; color: #075985; font-size: 12px; margin-bottom: 7px; padding: 8px 11px; white-space: nowrap; }
.permissions-list { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow-y: auto; padding: 20px 28px; }
.permissions-group { background: #fff; border: 1px solid var(--border); border-radius: 13px; overflow: hidden; }
.permissions-group header { align-items: center; background: #edf5fb; display: flex; justify-content: space-between; padding: 12px 14px; }
.permissions-group h4 { color: var(--primary); margin: 0; }
.permissions-group header span { color: var(--text-muted); font-size: 11px; }
.permission-row { align-items: center; cursor: pointer; display: grid; gap: 12px; grid-template-columns: 1fr auto; margin: 0; padding: 12px 14px; position: relative; }
.permission-row + .permission-row { border-top: 1px solid #edf2f7; }
.permission-row strong, .permission-row small { display: block; }
.permission-row strong { color: #17233a; font-size: 13px; }
.permission-row small { color: var(--text-muted); font-size: 11px; margin-top: 3px; }
.permission-toggle { height: 1px; opacity: 0; position: absolute; width: 1px; }
.permission-row i { background: #cbd5e1; border-radius: 999px; height: 22px; position: relative; transition: .2s; width: 40px; }
.permission-row i::after { background: #fff; border-radius: 50%; box-shadow: 0 1px 4px rgba(0,0,0,.25); content: ''; height: 16px; left: 3px; position: absolute; top: 3px; transition: .2s; width: 16px; }
.permission-toggle:checked + i { background: #0ea5e9; }
.permission-toggle:checked + i::after { transform: translateX(18px); }
.permission-toggle:focus + i { outline: 3px solid rgba(14,165,233,.22); }
.permissions-loading { color: var(--text-muted); grid-column: 1 / -1; padding: 35px; text-align: center; }
.permissions-footer { align-items: center; background: #fff; border-top: 1px solid var(--border); display: flex; gap: 12px; justify-content: space-between; padding: 16px 28px; }
.permissions-footer > div { display: flex; gap: 9px; }
.permissions-footer button { width: auto; }
.permissions-footer.user-edit-footer {
    background: transparent;
    flex-wrap: wrap;
    gap: 18px;
    margin: 0 28px;
    padding: 22px 0 24px;
}
.permissions-footer.user-edit-footer > div {
    flex-wrap: wrap;
    gap: 12px;
    margin-left: auto;
}
.permissions-footer.user-edit-footer button { margin: 0; min-width: 120px; }
.permissions-footer.user-edit-footer > button { min-width: 210px; }

@media (max-width: 720px) {
    .admin-feature-card { align-items: stretch; flex-direction: column; }
    .permissions-modal { padding: 0; }
    .permissions-dialog { border-radius: 0; max-height: 100vh; min-height: 100vh; }
    .permissions-list { grid-template-columns: 1fr; padding: 16px; }
    .permissions-toolbar { align-items: stretch; grid-template-columns: 1fr; padding: 15px 16px; }
    .permissions-toolbar strong { justify-self: start; margin-bottom: 0; }
    .permissions-footer { align-items: stretch; flex-direction: column; padding: 15px 16px; }
    .user-edit-grid, .user-edit-upas .checkbox-group { grid-template-columns: 1fr; }
    .user-edit-footer { align-items: stretch; flex-direction: column-reverse; gap: 12px; margin-top: 26px; padding-top: 18px; }
    .user-edit-footer > div { flex-direction: column-reverse; gap: 10px; margin-left: 0; width: 100%; }
    .user-edit-footer button { width: 100%; }
    .permissions-footer > div { flex-direction: column; }
    .permissions-footer button { width: 100%; }
    .permissions-footer.user-edit-footer {
        margin: 0 16px;
        padding: 18px 0 15px;
    }
    .permissions-footer.user-edit-footer > div { margin-left: 0; }
    .device-access-item, .device-trust-item { align-items: stretch; flex-direction: column; }
    .device-item-actions { justify-content: stretch; }
    .device-access-item button, .device-item-actions button { width: 100%; }
}
/* Acessibilidade, portal e central pessoal */
.skip-link {
    position: fixed;
    left: 16px;
    top: -80px;
    z-index: 5000;
    padding: 12px 18px;
    border-radius: 10px;
    background: #0f172a;
    color: #fff;
    font-weight: 700;
}
.skip-link:focus { top: 16px; }
:focus-visible {
    outline: 3px solid #f59e0b !important;
    outline-offset: 3px;
}
.entry-patient-action {
    width: auto;
    min-width: 210px;
    border: 1px solid rgba(255,255,255,.45);
    background: transparent;
    color: inherit;
}
.portal-access-card { max-width: 760px; margin-inline: auto; }
.portal-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
}
.personal-list-item {
    padding: 14px 0;
    border-bottom: 1px solid var(--border);
}
.personal-list-item.is-unread { border-left: 4px solid var(--accent); padding-left: 12px; }
.personal-list-item p { margin: 6px 0; color: var(--text-muted); }
.personal-section-description { color: var(--text-muted); font-size: 13px; margin: -4px 0 12px; }
.device-protection-toggle { align-items: flex-start; background: #f4f8fb; border: 1px solid var(--border); border-radius: 10px; display: flex; gap: 10px; margin: 10px 0; padding: 12px; }
.device-protection-toggle input { margin: 3px 0 0; width: auto; }
.device-protection-toggle span, .device-access-item > div, .device-trust-item > div { display: flex; flex-direction: column; gap: 4px; }
.device-protection-toggle small, .device-access-item small, .device-trust-item small { color: var(--text-muted); }
.device-access-item, .device-trust-item { align-items: center; display: flex; gap: 14px; justify-content: space-between; }
.device-access-item button, .device-item-actions button { margin: 0; padding: 8px 12px; width: auto; }
.device-item-actions { display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.device-current-badge, .device-trust-status { border-radius: 999px; display: inline-block; font-size: 11px; font-weight: 800; padding: 5px 9px; width: fit-content; }
.device-current-badge, .device-trust-status.is-approved { background: #dcfce7; color: #166534; }
.device-trust-status.is-pending { background: #fef3c7; color: #92400e; }
.btn-danger { background: var(--danger) !important; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
.clinical-smart-summary {
    margin: 14px 0;
    padding: 18px;
    border: 1px solid color-mix(in srgb, var(--primary) 38%, var(--border));
    border-radius: 16px;
    background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 10%, var(--surface)), var(--surface));
}

.clinical-smart-summary h4 { margin: 5px 0 7px; }
.dashboard-alert details { margin: 10px 0; padding: 10px; border-radius: 10px; background: color-mix(in srgb, var(--surface) 85%, transparent); }
.dashboard-alert details summary { cursor: pointer; font-weight: 700; }

/* --- SISTEMA VISUAL UNIFICADO --- */
input, select, textarea {
    border-radius: var(--radius-sm);
    font-family: inherit;
    transition: background-color .2s, border-color .2s, box-shadow .2s;
}

input:focus, select:focus, textarea:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px var(--focus-ring);
}

input:disabled, select:disabled, textarea:disabled {
    background: #f1f5f9;
    color: var(--text-muted);
    cursor: not-allowed;
}

/* Seletores padronizados do sistema */
select:not([multiple]) {
    appearance: none;
    background-color: var(--surface);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23075b83' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
    background-position: right 14px center;
    background-repeat: no-repeat;
    background-size: 18px;
    border-color: #cbd9e5;
    box-shadow: 0 1px 2px rgb(15 23 42 / .03);
    cursor: pointer;
    min-height: 44px;
    padding-right: 44px;
}

select:not([multiple]):hover:not(:disabled) {
    background-color: #f8fcff;
    border-color: #7db8d4;
}

select:not([multiple]):focus {
    background-color: var(--surface);
    border-color: #0796bd;
    box-shadow: 0 0 0 3px rgb(8 145 178 / .14);
}

select:not([multiple]):disabled {
    background-color: #f1f5f9;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
    box-shadow: none;
}

select option {
    background: #fff;
    color: #17324d;
    font-weight: 500;
    padding: 10px;
}

.upa-multiselect > summary {
    background-color: var(--surface);
    border-color: #cbd9e5;
    border-radius: var(--radius-sm);
    box-shadow: 0 1px 2px rgb(15 23 42 / .03);
    min-height: 44px;
    transition: background-color .2s, border-color .2s, box-shadow .2s;
}

.upa-multiselect > summary:hover {
    background-color: #f8fcff;
    border-color: #7db8d4;
}

.upa-multiselect[open] > summary {
    background-color: var(--surface);
    border-color: #0796bd;
    box-shadow: 0 0 0 3px rgb(8 145 178 / .14);
}

button {
    border-radius: var(--radius-sm);
    min-height: 40px;
    transition: background-color .2s, border-color .2s, box-shadow .2s, color .2s, transform .2s;
}

button:active:not(:disabled) { transform: translateY(1px); }

.container,
.admin-box,
.card,
.quick-action,
.operational-metrics > div,
.operational-help,
.schedule-alert-card,
.permissions-dialog,
.clinical-section {
    border-color: var(--border);
}

.admin-box,
.card,
.operational-metrics > div,
.operational-help {
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}

.permissions-dialog,
.schedule-alert-card { box-shadow: var(--shadow-modal); }

.table-responsive {
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    overflow: auto;
}

table { margin: 0; }
th {
    background: #eef4f8;
    color: var(--primary);
    font-size: 11px;
    letter-spacing: .045em;
    text-transform: uppercase;
}
td { color: var(--text); }
tbody tr:last-child td { border-bottom: 0; }

.helper-text,
.section-kicker,
.page-hero-kicker {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.btn-secondary {
    background: var(--surface);
    border: 1px solid var(--border);
    color: var(--primary);
}
.btn-secondary:hover {
    background: #f1f5f9;
    border-color: #cbd5e1;
}
.btn-danger {
    background: var(--danger);
    color: #fff;
}

.permissions-dialog-header,
.app-screen .page-hero {
    background: linear-gradient(120deg, #0b4f8a, #087c98);
}

.permissions-footer,
.user-edit-footer {
    position: static;
    inset: auto;
}

@media (max-width: 680px) {
    .app-footer {
        bottom: 8px;
        right: 12px;
    }
}
