:root{--navy:#173e5d;--blue:#17658f;--blue-dark:#104d70;--blue-soft:#eaf5f9;--gold:#ae8026;--gold-soft:#f8f2e6;--green:#18845c;--red:#bd3c42;--amber:#a96800;--line:#d9e5e9;--muted:#637581;--bg:#f2f7f8;--shadow:0 14px 40px rgba(20,62,83,.09)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 8% 5%,rgba(178,221,230,.42),transparent 27rem),linear-gradient(145deg,#f8fbfb 0%,var(--bg) 55%,#eaf2f4 100%);color:#1c3341;font:15px/1.5 Inter,"Segoe UI",Arial,sans-serif}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(23,101,143,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(23,101,143,.025) 1px,transparent 1px);background-size:36px 36px}.app-shell{position:relative;max-width:1240px;margin:auto;padding:30px 18px 56px}.card{background:rgba(255,255,255,.96);border:1px solid rgba(205,221,226,.9);border-radius:18px;padding:24px;margin:18px 0;box-shadow:0 6px 24px rgba(20,62,83,.055)}.login-card{max-width:500px;margin:8vh auto;padding:38px 42px;border-top:4px solid var(--gold);box-shadow:var(--shadow)}.login-brand,.brand-heading{display:flex;align-items:center;gap:20px}.brand-logo{display:block;width:190px;height:auto;object-fit:contain}.login-logo{width:175px}.brand-divider{width:1px;height:58px;background:linear-gradient(transparent,var(--line),transparent);flex:0 0 auto}.login-intro{margin:26px 0 22px!important;padding-bottom:20px;border-bottom:1px solid var(--line)}#formLogin{display:grid;gap:17px}#formLogin .primary{margin-top:4px;width:100%;padding:13px}.topbar{padding:18px 22px;background:rgba(255,255,255,.9);border:1px solid var(--line);border-radius:18px;box-shadow:0 7px 26px rgba(20,62,83,.06)}.topbar,.section-heading,.toolbar,.actions{display:flex;gap:14px;align-items:center}.topbar,.section-heading{justify-content:space-between}.logout-button{min-width:82px}.toolbar{flex-wrap:wrap}.toolbar label{min-width:150px;flex:1}.toolbar button{align-self:end}.eyebrow{margin:0 0 3px;color:var(--gold);font-size:11px;letter-spacing:.14em;font-weight:800}.muted{color:var(--muted);margin:.25rem 0}h1{margin:0;color:var(--navy);font-size:28px;line-height:1.2;letter-spacing:-.02em}h2{margin:0;color:var(--navy);font-size:20px}label{display:flex;flex-direction:column;gap:6px;color:#294554;font-size:14px;font-weight:650}input,select,textarea,button{font:inherit;border-radius:10px}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #bdcdd4;background:#fff;color:inherit;transition:border-color .2s,box-shadow .2s}input:hover,select:hover,textarea:hover{border-color:#91adb9}input:focus,select:focus,textarea:focus,button:focus-visible{outline:0;border-color:var(--blue);box-shadow:0 0 0 4px rgba(23,101,143,.13)}button{border:1px solid transparent;padding:10px 15px;cursor:pointer;font-weight:700;transition:transform .16s,background .2s,box-shadow .2s}button:hover:not(:disabled){transform:translateY(-1px)}.primary{background:linear-gradient(135deg,var(--blue),var(--blue-dark));color:#fff;box-shadow:0 6px 14px rgba(23,101,143,.18)}.secondary{background:#fff;color:var(--navy);border-color:#bdcdd4}.primary:hover{background:linear-gradient(135deg,#1b729e,#0d4667)}.secondary:hover{background:var(--blue-soft);border-color:#91b5c3}.hidden{display:none!important}.feedback{min-height:1.4em;margin:10px 0;font-weight:600}.feedback.success{color:var(--green)}.feedback.error{color:var(--red)}.summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.summary-card{padding:18px;border-radius:14px;color:#fff;box-shadow:0 7px 17px rgba(20,62,83,.08)}.summary-card span{display:block;font-size:28px;font-weight:800}.summary-card small{opacity:.92}.schedule-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.slot{min-height:74px;border:1px solid var(--line);border-radius:11px;padding:10px;text-align:left;background:#fff}.slot:hover:not(:disabled){border-color:var(--blue);background:var(--blue-soft)}.slot .time{font-weight:800;display:block}.slot small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot.available{border-left:4px solid var(--green)}.slot.busy{border-left:4px solid var(--red);background:#fff6f6}.status{display:inline-block;padding:3px 8px;border-radius:99px;font-size:12px;font-weight:700;white-space:nowrap}.status-pendente{background:#fff1c9;color:#805000}.status-confirmado,.status-concluído{background:#d9f5e6;color:#086137}.status-cancelado,.status-não_compareceu{background:#fde1e1;color:#9d2020}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.wide{grid-column:1/-1}.check{flex-direction:row;align-items:center;font-weight:400;margin-top:18px}.check input{width:auto}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;margin-top:14px}table{width:100%;border-collapse:collapse}th,td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{background:#f4f8f9;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}tr:hover{background:#f7fbfc}.row-button{padding:6px 9px;font-size:13px}.loading{position:fixed;inset:0;display:grid;place-items:center;background:#f7fbfbe8;color:var(--navy);font-size:18px;font-weight:700;z-index:10}@media(max-width:800px){.summary-grid{grid-template-columns:repeat(2,1fr)}.schedule-grid{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.topbar,.section-heading{align-items:flex-start;flex-direction:column}.topbar{padding:18px}.brand-heading{width:100%}.brand-logo{width:150px}.toolbar{align-items:stretch}.toolbar button{align-self:auto}.logout-button{align-self:flex-end}}@media(max-width:540px){.login-card{padding:28px 22px;margin:4vh auto}.login-brand,.brand-heading{align-items:flex-start;flex-direction:column;gap:12px}.brand-divider{width:100%;height:1px;background:linear-gradient(90deg,var(--line),transparent)}.login-logo,.brand-logo{width:155px}.app-shell{padding:16px 10px}.card{padding:17px}.schedule-grid{grid-template-columns:repeat(2,1fr)}.summary-grid{grid-template-columns:1fr}h1{font-size:24px}}
.exam-limit-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; margin:18px 0; }
.limit-toggle { flex-direction:row; align-items:center; gap:8px; font-weight:700; }
.limit-toggle input { width:auto; }
.exam-limit-grid.is-disabled { opacity:.55; }
.client-panel-setting { margin:4px 0 20px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:#f8fbfc; }
.client-panel-setting.is-disabled { opacity:.55; }
.client-panel-setting .muted { margin:6px 0 0 28px; font-size:13px; }
.client-exam-availability { margin:0 0 24px; padding:0 0 24px; border-bottom:1px solid var(--line); }
.client-availability-heading { display:flex; justify-content:space-between; gap:16px; margin-bottom:14px; }
.exam-availability-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; }
.availability-date-card { display:grid; gap:8px; width:100%; min-width:0; padding:14px; border:1px solid #ccdde3; border-radius:13px; background:#fff; color:#1c3341; text-align:left; box-shadow:0 4px 12px rgba(20,62,83,.04); }
.availability-date-card:hover:not(:disabled) { border-color:#8eb9c8; background:#f7fbfc; }
.availability-date-card.is-selected { border-color:var(--blue); background:var(--blue-soft); box-shadow:0 0 0 2px rgba(23,101,143,.1); }
.availability-date-card-header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-bottom:7px; border-bottom:1px solid var(--line); }
.availability-date-card-header strong { color:var(--navy); font-size:16px; }
.availability-date-status { color:var(--blue-dark); font-size:11px; font-weight:800; text-transform:uppercase; }
.availability-exam-row { display:flex; align-items:center; justify-content:space-between; gap:10px; min-width:0; font-size:12px; font-weight:650; }
.availability-exam-label { display:flex; align-items:center; gap:7px; min-width:0; }
.availability-exam-label span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.availability-exam-dot { width:10px; height:10px; flex:0 0 auto; border-radius:3px; background:var(--muted); }
.availability-exam-dot.exam-admissional { background:#168452; }
.availability-exam-dot.exam-demissional { background:#bf3131; }
.availability-exam-dot.exam-periodico { background:#2366ad; }
.availability-exam-dot.exam-retorno { background:#713b8c; }
.availability-exam-dot.exam-avaliacao { background:#087f78; }
.availability-exam-count { flex:0 0 auto; color:#086137; font-size:12px; }
.availability-exam-count.is-empty { color:#9d2020; }
.field-hint { display:block; min-height:18px; margin-top:5px; color:var(--muted, #64748b); }
.field-hint.limit-reached { color:#b42318; font-weight:700; }
.field-error { display:block; margin-top:2px; color:var(--red); font-size:12px; font-weight:750; line-height:1.35; }
.consent-error { margin:7px 0 0 29px; }
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"] { border-color:var(--red); box-shadow:0 0 0 3px rgba(189,60,66,.1); }
input[type="checkbox"][aria-invalid="true"] { outline:2px solid var(--red); outline-offset:3px; box-shadow:none; }
.exam-first-step { max-width:520px; margin:16px 0; }
.client-access-button { width:100%; margin-top:12px; }
.user-form { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; align-items:start; margin-bottom:18px; }
.user-form > label { min-width:0; }
.user-form > label > input,.user-form > label > select { min-height:46px; }
.user-form > button { justify-self:start; min-width:190px; }
@media(max-width:1050px){.user-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.user-form{grid-template-columns:1fr}.user-form > button{width:100%}}
.access-mode-options { display:flex; flex-wrap:wrap; gap:18px; margin:16px 0; }
.access-mode-options label { flex-direction:row; align-items:center; gap:8px; }
.access-mode-options input { width:auto; }
.automatic-opening-settings { display:grid; gap:12px; }
.automatic-opening-rule { display:flex; align-items:center; gap:10px; min-width:0; padding:13px 15px; border:1px solid var(--line); border-radius:12px; background:#f8fbfc; }
.automatic-opening-rule > input[type="checkbox"] { flex:0 0 auto; }
.automatic-opening-sentence { display:flex; flex-wrap:wrap; align-items:center; gap:6px; min-width:0; }
.automatic-opening-sentence label { font-weight:700; }
.automatic-opening-quantity { width:5rem!important; min-height:40px; padding:8px 10px; text-align:center; font-weight:800; }
.automatic-opening-quantity:disabled { opacity:.55; background:#edf3f5; cursor:not-allowed; }
.automatic-opening-rule.is-disabled .automatic-opening-sentence { opacity:.72; }
.automatic-opening-waitlist { width:max-content; padding:4px 2px; }
@media(max-width:620px){.automatic-opening-rule{align-items:flex-start}.automatic-opening-sentence{align-items:center}.automatic-opening-quantity{width:4.5rem!important}}
.skip-link { position:fixed; z-index:10000; top:8px; left:8px; padding:10px 14px; border-radius:8px; background:#fff; color:#092e45; font-weight:800; transform:translateY(-180%); box-shadow:0 4px 16px rgba(0,0,0,.2); }
.skip-link:focus { transform:translateY(0); }
.app-footer { display:flex; flex-wrap:wrap; justify-content:center; gap:10px 20px; padding:20px 12px 8px; text-align:center; color:#445964; font-size:.82rem; letter-spacing:.02em; }
.app-footer nav { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 14px; }
.app-footer a { color:#104d70; font-weight:750; }
.legal-shell { width:min(960px,calc(100% - 28px)); margin:24px auto; }
.legal-header,.legal-document,.legal-footer { padding:24px; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:var(--shadow); }
.legal-header { border-top:4px solid var(--blue); }
.legal-header h1 { margin:.2rem 0 .5rem; }
.legal-nav { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0; padding:12px; border:1px solid var(--line); border-radius:12px; background:#f8fbfc; }
.legal-nav a { padding:7px 10px; border-radius:8px; color:var(--blue-dark); font-weight:750; }
.legal-nav a[aria-current="page"] { background:var(--blue); color:#fff; text-decoration:none; }
.legal-document { display:grid; gap:8px; }
.legal-document section { padding:8px 0 18px; border-bottom:1px solid var(--line); }
.legal-document section:last-child { border-bottom:0; }
.legal-document h2 { color:var(--navy); font-size:1.2rem; }
.legal-data-list { display:grid; gap:1px; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:var(--line); }
.legal-data-list div { display:grid; grid-template-columns:minmax(150px,1fr) minmax(0,2fr); gap:12px; padding:11px 13px; background:#fff; }
.legal-data-list dt { font-weight:800; }
.legal-data-list dd { margin:0; overflow-wrap:anywhere; }
.configuration-warning,.legal-review-note { padding:12px 14px; border-left:4px solid #9d2020; border-radius:8px; background:#fff1f1; color:#742126; }
.configuration-warning.is-ready { border-left-color:#086137; background:#e6f7ee; color:#064d2d; }
.legal-footer { margin:14px 0 32px; box-shadow:none; }
.legal-form { display:grid; gap:14px; }
.legal-form .actions { margin-top:4px; }
@media(max-width:600px){.legal-data-list div{grid-template-columns:1fr;gap:4px}.legal-header,.legal-document,.legal-footer{padding:18px 15px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
@media(forced-colors:active){button,a,input,select,textarea,summary{forced-color-adjust:auto}.status-chip,.section-badge{border:1px solid ButtonText}}
.operations-board { display:grid; gap:10px; margin-top:16px; }
.operation-item { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 15px; border:1px solid var(--line); border-left:5px solid var(--blue); border-radius:12px; background:#f9fcfd; }
.operation-item div:first-child { display:grid; gap:3px; }
.operation-item small { color:var(--muted); }
.admin-tabs { display:flex; gap:8px; margin:18px 0 24px; padding:8px; }
.admin-tab { min-width:0; flex:1; display:flex; flex-direction:column; align-items:flex-start; gap:2px; padding:13px 16px; border-color:transparent; background:transparent; color:var(--muted); text-align:left; box-shadow:none; }
.admin-tab:hover:not(:disabled) { border-color:#d5e5e9; background:#f4fafb; }
.admin-tab.is-active { border-color:#b8d8df; background:linear-gradient(135deg,#fff,#eef8fa); color:var(--navy); box-shadow:0 5px 14px rgba(20,62,83,.08); }
.admin-tab-label { font-size:16px; font-weight:800; }
.admin-tab small { font-size:12px; font-weight:600; color:inherit; opacity:.85; }
.admin-panel-heading { margin:0 2px 14px; padding:4px 0 4px 15px; border-left:4px solid var(--gold); }
.admin-tab-panel { min-width:0; }
.reception-overview { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); gap:18px; align-items:start; }
.reception-overview .card { height:100%; margin:0 0 18px; }
.section-badge { display:inline-flex; align-items:center; padding:5px 10px; border:1px solid #b8d8df; border-radius:999px; background:var(--blue-soft); color:var(--blue-dark); font-size:12px; font-weight:800; }
.appointment-success { max-width:760px; margin:28px auto; padding:34px; text-align:center; border-top:4px solid var(--green); box-shadow:var(--shadow); }
.appointment-success:focus { outline:0; box-shadow:var(--shadow),0 0 0 4px rgba(24,132,92,.12); }
.success-mark { display:grid; place-items:center; width:58px; height:58px; margin:0 auto 15px; border-radius:50%; background:#d9f5e6; color:var(--green); font-size:32px; font-weight:900; }
.success-details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin:24px 0; overflow:hidden; border:1px solid var(--line); border-radius:12px; background:var(--line); text-align:left; }
.success-details div { min-width:0; padding:14px 16px; background:#fff; }
.success-details dt { margin-bottom:3px; color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.success-details dd { margin:0; color:var(--navy); font-weight:750; overflow-wrap:anywhere; }
.success-actions { justify-content:center; }
#painelAlertas ul { margin:16px 0 0; padding-left:20px; }
#painelAlertas li + li { margin-top:8px; }
#listaEspera li { margin:10px 0; padding:12px; border-bottom:1px solid var(--line); }
#listaHistorico { max-height:220px; overflow:auto; }
@media(max-width:900px) { .reception-overview { grid-template-columns:1fr; } .reception-overview .card { height:auto; } }
@media(max-width:700px) { .admin-tabs { flex-direction:column; } .admin-tab { width:100%; } .operation-item { align-items:flex-start; flex-direction:column; } .appointment-success { padding:26px 19px; } .success-details { grid-template-columns:1fr; } .success-actions { align-items:stretch; flex-direction:column; } }
.form-section { min-width:0; margin:20px 0; padding:20px; border:1px solid var(--line); border-radius:14px; background:#fbfdfd; }
.form-section legend { padding:0 9px; color:var(--navy); font-size:18px; font-weight:800; }
.form-section h3 { margin:0 0 14px; color:var(--navy); }
.form-note { margin:18px 0; padding:13px 15px; border-left:4px solid var(--blue); border-radius:10px; background:var(--blue-soft); color:var(--blue-dark); font-size:13px; font-weight:750; }
.required-marker { color:var(--red); font-weight:900; }
.custom-fields-grid:empty { display:none; }
.custom-fields-grid:not(:empty) { margin-top:15px; padding-top:15px; border-top:1px dashed var(--line); }
.custom-checkbox { display:grid; grid-template-columns:auto 1fr; align-items:center; column-gap:10px; }
.custom-checkbox > span,.custom-checkbox > small { grid-column:1/-1; }
.custom-checkbox input { width:auto; }
.field-hidden-for-client { padding:10px; border:1px dashed #d2a64f; border-radius:10px; background:#fffaf0; }
.field-hidden-for-client:after { content:"Oculto para clientes"; display:inline-flex; width:max-content; margin-top:4px; padding:2px 7px; border-radius:999px; background:var(--gold-soft); color:#735112; font-size:11px; font-weight:800; }
.field-config-list { display:grid; gap:10px; margin:20px 0; }
.field-config-row { display:grid; grid-template-columns:minmax(220px,1fr) auto auto; gap:18px; align-items:center; padding:13px 15px; border:1px solid var(--line); border-radius:12px; background:#fbfdfd; }
.field-config-info { display:grid; gap:3px; min-width:0; }
.field-config-info strong { overflow-wrap:anywhere; color:var(--navy); }
.field-config-info small { color:var(--muted); }
.field-config-check { flex-direction:row; align-items:center; gap:8px; white-space:nowrap; }
.field-config-check input { width:auto; }
.field-config-actions { display:flex; justify-content:flex-end; }
.section-divider { margin:28px 0; border:0; border-top:1px solid var(--line); }
.blocked-days-settings { display:grid; gap:14px; }
.blocked-days-settings h3 { margin:0; color:var(--navy); }
.weekday-blocks { margin:0; padding:16px; border:1px solid var(--line); border-radius:12px; background:#fbfdfd; }
.weekday-blocks legend { padding:0 8px; color:var(--navy); font-size:14px; font-weight:800; }
.weekday-options { display:grid; grid-template-columns:repeat(4,minmax(120px,1fr)); gap:10px; }
.weekday-options label { flex-direction:row; align-items:center; gap:8px; padding:8px 10px; border:1px solid #d5e5e9; border-radius:10px; background:#fff; font-weight:700; }
.weekday-options input { width:auto; }
.specific-date-block { display:flex; align-items:end; gap:12px; }
.specific-date-block label { width:min(280px,100%); }
.blocked-date-list { display:flex; flex-wrap:wrap; gap:9px; min-height:1.4em; }
.blocked-date-chip { display:inline-flex; align-items:center; gap:8px; padding:7px 8px 7px 11px; border:1px solid #e2b0b3; border-radius:999px; background:#fff5f5; color:#8f252b; font-weight:750; }
.blocked-date-chip button { padding:3px 8px; border-radius:999px; color:var(--red); font-size:12px; }
.custom-field-form h3 { margin:0; color:var(--navy); }
.custom-field-form > .actions { margin-top:15px; }
@media(max-width:800px) { .form-section { padding:16px 13px; } .field-config-row { grid-template-columns:1fr; gap:10px; } .field-config-check { white-space:normal; } .field-config-actions { justify-content:stretch; } .field-config-actions button { width:100%; } .weekday-options { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:540px) { .weekday-options { grid-template-columns:1fr; } .specific-date-block { align-items:stretch; flex-direction:column; } .specific-date-block label,.specific-date-block button { width:100%; } }
.privacy-summary { margin:24px 0 14px; padding:18px; border:1px solid #bdd8df; border-radius:14px; background:linear-gradient(145deg,#f8fcfd,#eef7f9); color:#294554; }
.privacy-summary-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:10px; }
.privacy-summary h3 { margin:0; color:var(--navy); font-size:18px; }
.privacy-summary p { margin:8px 0; }
.privacy-version { flex:0 0 auto; padding:4px 9px; border:1px solid #bdd8df; border-radius:999px; background:#fff; color:var(--blue-dark); font-size:11px; font-weight:800; }
.privacy-notice { margin-top:14px; border-top:1px solid #cbdfe4; }
.privacy-notice summary { width:max-content; max-width:100%; margin-top:12px; padding:7px 0; color:var(--blue-dark); cursor:pointer; font-weight:800; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.privacy-notice summary:hover { color:var(--blue); }
.privacy-notice summary:focus-visible { border-radius:6px; outline:3px solid rgba(23,101,143,.18); outline-offset:3px; }
.privacy-notice-content { margin-top:8px; padding:12px 14px; border-left:3px solid var(--blue); border-radius:0 10px 10px 0; background:#fff; font-size:13px; }
.privacy-caution { padding:10px 12px; border-radius:9px; background:var(--gold-soft); color:#694b14; }
.privacy-legal-note { color:var(--muted); font-size:12px; }
.privacy-consent { align-items:flex-start; gap:11px; margin:14px 0 0; padding:15px 17px; border:1px solid #cbd9de; border-radius:12px; background:#fff; color:#294554; line-height:1.45; }
.privacy-consent input { flex:0 0 auto; margin-top:3px; }
.privacy-consent-version { display:block; margin-top:6px; color:var(--muted); font-size:12px; }
.turnstile-protection { margin:16px 0; padding:15px 17px; border:1px solid #cbd9de; border-radius:12px; background:#f8fcfd; }
.turnstile-protection > strong { color:var(--navy); }
.turnstile-protection > .muted { margin:5px 0 12px; }
.turnstile-widget { width:100%; min-height:65px; }
.turnstile-status { min-height:1.35em; margin:8px 0 0; color:var(--muted); font-size:13px; }
.turnstile-status.error { color:var(--red); font-weight:700; }
@media(max-width:600px) { .privacy-summary-heading { flex-direction:column; } .privacy-version { align-self:flex-start; } .privacy-summary { padding:15px 13px; } .privacy-consent { padding:14px 13px; } }
.privacy-admin-status { display:inline-flex; flex:0 0 auto; align-items:center; padding:6px 10px; border:1px solid var(--line); border-radius:999px; font-size:12px; font-weight:800; }
.privacy-admin-status.is-ready { border-color:#9ed4bd; background:#e6f7ee; color:#086137; }
.privacy-admin-status.is-blocked { border-color:#e4b4b7; background:#fff1f1; color:#96242a; }
.privacy-config-note,.privacy-access-warning { padding:11px 13px; border-left:4px solid var(--gold); border-radius:8px; background:var(--gold-soft); color:#694b14; font-size:13px; }
.privacy-config-note { margin:16px 0; }
.privacy-access-warning { margin:12px 0 0; }
@media(max-width:700px) { #gestaoPrivacidade .section-heading { gap:10px; } .privacy-admin-status { white-space:normal; } }
.status-concluido { background:#d9f5e6; color:#086137; }
.status-nao_compareceu { background:#fde1e1; color:#9d2020; }
.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.65rem;margin-top:.75rem}.permission-grid label{display:flex;gap:.55rem;align-items:flex-start}.permission-preview{padding:.85rem 1rem;border:1px solid var(--border,#cbd8e3);border-radius:12px;background:#f5f9fc}.user-form .wide{grid-column:1/-1}.read-only button[data-atendimento]{display:none}.client-login-disabled{opacity:.65}
.slot.unavailable { border-left:4px solid #8a9aa3; background:#f1f4f5; color:#667882; cursor:not-allowed; opacity:.82; }
.slot:disabled { cursor:not-allowed; }
.client-cancel-dialog { width:min(520px,100%); margin:0; border-top:4px solid var(--red); }
.client-cancel-dialog > .muted { margin:8px 0 18px; }
.client-cancel-dialog textarea { resize:vertical; }
.client-cancel-actions { justify-content:flex-end; margin-top:20px; }
.client-cancel-button { border-color:#dba4a7; color:#9d2020; }
.client-cancel-button:hover:not(:disabled) { border-color:var(--red); background:#fff1f1; }
.client-cancel-reason { display:block; max-width:360px; margin-top:5px; color:var(--muted); white-space:normal; }
@media(max-width:540px) { .client-cancel-actions { align-items:stretch; flex-direction:column-reverse; } .client-cancel-actions button { width:100%; } }
.client-appointment-actions { align-items:stretch; flex-wrap:wrap; }
.client-reschedule-button { border-color:#8fb8ca; color:var(--blue-dark); }
.client-reschedule-dialog { width:min(760px,100%); max-height:min(90vh,820px); margin:0; overflow:auto; border-top:4px solid var(--blue); }
.client-reschedule-dialog > .muted { margin:8px 0 4px; }
.client-reschedule-dialog > label { margin-top:18px; }
.client-reschedule-slots { min-width:0; margin:18px 0 0; padding:16px; border:1px solid var(--line); border-radius:12px; }
.client-reschedule-slots legend { padding:0 7px; color:var(--navy); font-weight:800; }
.client-reschedule-slots .schedule-grid { margin-top:4px; }
.client-reschedule-slots .slot.is-selected { border-color:var(--blue); background:var(--blue-soft); box-shadow:0 0 0 3px rgba(23,101,143,.18); }
.client-reschedule-summary { min-height:1.5em; margin:14px 0 0; color:var(--navy); font-weight:700; }
.client-reschedule-actions { justify-content:flex-end; margin-top:20px; }
@media(max-width:540px) { .client-reschedule-actions { align-items:stretch; flex-direction:column-reverse; } .client-reschedule-actions button { width:100%; } .client-reschedule-slots { padding:12px; } }
:root { --gold:#76530f; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid #ffbf47!important; outline-offset:3px; box-shadow:0 0 0 5px #092e45!important; }

/* Camada de produto: tokens sobrescrevíveis pelo template de cada clínica. */
:root {
  color-scheme:light;
  --surface:#ffffff;
  --surface-subtle:#f7fafb;
  --surface-attention:#fff8e8;
  --text:#1c3341;
  --text-strong:#102f45;
  --focus:#ffbf47;
  --radius-sm:10px;
  --radius-md:14px;
  --radius-lg:18px;
  --shadow-card:0 6px 24px rgba(20,62,83,.055);
  --shadow-dialog:0 24px 70px rgba(10,35,52,.22);
}
html { text-size-adjust:100%; }
body { color:var(--text); }
button,input,select,textarea { touch-action:manipulation; }
button:disabled { cursor:not-allowed; opacity:.58; }
select { color-scheme:light; }
h1,h2,h3 { text-wrap:balance; }
p,li { text-wrap:pretty; }
.brand-logo { aspect-ratio:1; height:auto; object-fit:contain; }
.topbar-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.time,.summary-card span,td:first-child,.pagination { font-variant-numeric:tabular-nums; }
.table-wrap { overscroll-behavior-inline:contain; scrollbar-gutter:stable; }
.table-wrap:focus-within { border-color:var(--blue); }

.pwa-install {
  position:fixed;
  z-index:30;
  right:max(18px,env(safe-area-inset-right));
  bottom:max(18px,env(safe-area-inset-bottom));
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  width:min(520px,calc(100vw - 36px));
  padding:17px 18px;
  border:1px solid #b9d3dc;
  border-left:5px solid var(--blue);
  border-radius:var(--radius-md);
  background:var(--surface);
  box-shadow:var(--shadow-dialog);
}
.pwa-install p { margin:3px 0 0; color:var(--muted); font-size:13px; }
.pwa-install .feedback { margin:5px 0 0; }
.pwa-install .actions { align-self:center; }

.mfa-enrollment { display:grid; justify-items:center; gap:12px; margin:18px 0; padding:16px; border:1px solid var(--line); border-radius:var(--radius-md); background:var(--surface-subtle); }
.mfa-qr { display:block; width:min(240px,100%); height:auto; aspect-ratio:1; border:10px solid #fff; border-radius:12px; }
.mfa-secret { display:grid; gap:4px; max-width:100%; margin:0; text-align:center; }
.mfa-secret span { color:var(--muted); font-size:12px; font-weight:750; }
.mfa-secret code { padding:8px 10px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--text-strong); overflow-wrap:anywhere; user-select:all; }
.mfa-dialog { width:min(620px,100%); max-height:min(90vh,780px); margin:0; overflow:auto; overscroll-behavior:contain; border-top:4px solid var(--blue); box-shadow:var(--shadow-dialog); }
.mfa-factor-list { display:grid; gap:9px; margin:16px 0; }
.mfa-factor { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:var(--surface-subtle); }
.mfa-factor div { display:grid; gap:2px; min-width:0; }
.mfa-factor small { color:var(--muted); overflow-wrap:anywhere; }

.zero-vaga-settings { min-width:0; margin:0; padding:18px; border:1px solid #e5cb8d; border-radius:var(--radius-md); background:linear-gradient(145deg,#fffdf8,var(--surface-attention)); }
.zero-vaga-settings legend { padding:0 8px; color:#64460e; font-size:18px; font-weight:850; }
.zero-vaga-modes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:16px 0; }
.zero-vaga-modes label { display:grid; grid-template-columns:auto 1fr; align-items:start; gap:10px; min-width:0; padding:14px; border:1px solid #dac590; border-radius:12px; background:#fff; cursor:pointer; }
.zero-vaga-modes label:has(input:checked) { border-color:#8c671c; box-shadow:0 0 0 3px rgba(140,103,28,.13); }
.zero-vaga-modes input { width:auto; margin-top:3px; }
.zero-vaga-modes span { display:grid; gap:4px; }
.zero-vaga-modes small { color:var(--muted); font-weight:500; }
#parametrosZeroVaga { margin-top:12px; }
#parametrosZeroVaga.is-disabled { opacity:.58; }

.pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:12px; margin-top:16px; }
.pagination p { margin:0 auto 0 0; color:var(--muted); }
.pagination label { flex-direction:row; align-items:center; gap:8px; white-space:nowrap; }
.pagination select { width:auto; min-width:74px; }

.skeleton-line { display:block; min-height:14px; border-radius:999px; background:linear-gradient(90deg,#edf3f5 25%,#f8fbfc 50%,#edf3f5 75%); background-size:200% 100%; animation:skeleton-shimmer 1.25s linear infinite; }
@keyframes skeleton-shimmer { to { background-position:-200% 0; } }

@media(max-width:760px) {
  button { min-height:44px; }
  .topbar-actions { width:100%; justify-content:stretch; }
  .topbar-actions button { flex:1; }
  .zero-vaga-modes { grid-template-columns:1fr; }
  .pagination { align-items:stretch; }
  .pagination p { width:100%; }
  .pagination button,.pagination label { flex:1; justify-content:center; }
  .pwa-install { grid-template-columns:1fr; }
  .pwa-install .actions { align-items:stretch; }
}
@media(max-width:540px) {
  .pwa-install .actions { flex-direction:column; }
  .pwa-install button { width:100%; }
  .mfa-factor { align-items:stretch; flex-direction:column; }
  .mfa-factor button { width:100%; }
}
@media(prefers-reduced-motion:reduce) {
  .skeleton-line { animation:none; }
}
