/* Estilos globales de NetAccess. */
:root { --ink:#091a35; --muted:#526889; --line:#e2e9f5; --bg:#fbfcff; --brand:#0757ff; --brand-dark:#0045d8; --soft:#eaf3ff; --card:#fff; --good:#00a878; --accent:#56cbd2; --violet:#6256b5; }
* { box-sizing:border-box; } body { margin:0; background-color:var(--bg); background-image:linear-gradient(#f0f4fc 1px,transparent 1px),linear-gradient(90deg,#f0f4fc 1px,transparent 1px); background-size:36px 36px; color:var(--ink); font:16px/1.45 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, input, select, textarea { font:inherit; } button { cursor:pointer; } .app-shell { max-width:1140px; margin:auto; padding:0 28px 52px; }
.auth-screen { min-height:100vh; display:grid; place-items:center; padding:24px; background-color:var(--bg); background-image:linear-gradient(#e9effb 1px,transparent 1px),linear-gradient(90deg,#e9effb 1px,transparent 1px); background-size:36px 36px; }.auth-card { width:min(100%,400px); padding:38px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 20px 54px #091a3514; }.auth-card .brand-mark { display:grid; place-items:center; width:42px; height:42px; border-radius:10px; background:linear-gradient(135deg,var(--brand),var(--violet)); color:#fff; font-weight:850; margin-bottom:24px; }.auth-card h1 { margin:0; letter-spacing:-.035em; }.auth-card > p:not(.eyebrow):not(.form-message) { color:var(--muted); margin:7px 0 25px; }.auth-card label { display:block; margin:15px 0; color:var(--ink); font-size:14px; font-weight:700; }.auth-card input { display:block; width:100%; margin-top:7px; padding:11px; border:1px solid #c6d2e6; border-radius:6px; }.auth-card .primary-button { width:100%; margin-top:10px; }.form-message { min-height:20px; margin:13px 0 0; color:#d32f45; font-size:13px; }
.topbar { height:76px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }.brand { color:var(--ink); font-size:22px; font-weight:750; text-decoration:none; display:flex; align-items:center; gap:10px; }.brand > span:last-child span { color:var(--brand); }.brand-mark { display:grid; place-items:center; height:35px; width:35px; border-radius:10px; background:linear-gradient(135deg,var(--brand),var(--violet)); color:#fff; font-weight:850; }.operator { color:var(--muted); font-size:14px; display:flex; gap:8px; align-items:center; }.operator-dot,.reader-status span { width:8px; height:8px; border-radius:99px; background:var(--accent); display:inline-block; }.link-button { color:var(--brand); background:none; border:0; padding:4px; }.history-button { border:1px solid #c9d8f2; border-radius:6px; background:#fff; color:var(--brand); font-size:13px; font-weight:750; padding:7px 10px; }
.welcome { display:flex; justify-content:space-between; align-items:end; margin:52px 0 30px; }.eyebrow { margin:0 0 6px; color:var(--brand); text-transform:uppercase; letter-spacing:.09em; font-size:12px; font-weight:800; }.welcome h1 { margin:0; font-size:clamp(28px,4vw,40px); letter-spacing:-.035em; }.welcome p:not(.eyebrow) { margin:8px 0 0; color:var(--muted); }.welcome time { color:var(--muted); font-size:14px; }
.steps { display:flex; list-style:none; padding:0; margin:0 0 28px; color:#91a2a8; font-size:14px; font-weight:650; }.steps li { display:flex; align-items:center; gap:9px; flex:1; }.steps li:not(:last-child)::after { content:""; height:2px; background:#dbe5e7; flex:1; margin-left:12px; }.steps span { display:grid; place-items:center; height:27px; width:27px; border-radius:50%; background:#e3ebed; color:#779097; }.steps .is-current { color:var(--ink); }.steps .is-current span { background:var(--brand); color:#fff; }
.workspace { display:block; }.scan-card,.visit-card { background:var(--card); border:1px solid var(--line); border-radius:12px; box-shadow:0 10px 30px #091a350a; }.scan-card { text-align:center; padding:48px clamp(24px,7vw,76px) 36px; }.scan-icon { width:70px; height:70px; margin:auto auto 20px; display:grid; place-items:center; color:var(--brand); background:var(--soft); border-radius:16px; }.scan-icon svg { width:39px; }.scan-card h2,.visit-card h2 { margin:0; letter-spacing:-.025em; }.scan-description { color:var(--muted); margin:8px auto 25px; max-width:480px; }.reader-input textarea { display:block; width:100%; min-height:76px; resize:vertical; padding:16px; border:2px dashed #aac4f6; background:#fbfdff; border-radius:8px; color:var(--ink); text-align:left; outline:none; }.reader-input textarea:focus { border-color:var(--brand); box-shadow:0 0 0 4px #0757ff16; }.reader-status { font-size:14px; color:var(--good); margin:12px 0 22px; }.reader-status span { margin-right:5px; }.secondary-button,.primary-button { border-radius:6px; padding:11px 16px; font-weight:700; border:1px solid #bfcde5; background:#fff; color:var(--ink); }.primary-button { background:var(--brand); border-color:var(--brand); color:#fff; padding-inline:22px; }.primary-button:hover { background:var(--brand-dark); }
.visit-card { margin-top:24px; padding:30px; }.visitor-heading { display:flex; gap:14px; align-items:center; padding-bottom:25px; border-bottom:1px solid var(--line); }.avatar { display:grid; place-items:center; flex:0 0 auto; background:var(--soft); color:var(--brand); height:48px; width:48px; border-radius:50%; font-weight:800; }.visitor-heading p:not(.eyebrow) { margin:3px 0 0; color:var(--muted); font-size:14px; }.verified-badge { margin-left:auto; border-radius:99px; padding:6px 9px; background:#fff5da; color:#856100; font-size:12px; font-weight:750; }.background-check { margin-top:20px; border:1px solid #d8e3f4; border-radius:8px; background:#fbfdff; }.background-check summary { display:flex; justify-content:space-between; align-items:center; padding:13px 15px; color:var(--ink); cursor:pointer; font-size:14px; font-weight:800; }.background-check summary span { color:var(--muted); font-size:12px; font-weight:650; }.background-check[open] summary { border-bottom:1px solid #d8e3f4; }.background-check__content { padding:16px; }.background-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.background-fields label { color:#536987; font-size:12px; font-weight:750; }.background-fields input,.background-fields textarea { display:block; width:100%; margin-top:5px; padding:9px; color:#526889; border:1px solid #d5e0f0; border-radius:6px; background:#f3f6fb; font:inherit; }.background-fields textarea { min-height:68px; resize:vertical; }.background-notice { margin:0; color:#526889; font-size:13px; }.background-alert { color:#b45309; }.visit-form { display:grid; grid-template-columns:1fr 1.3fr 1fr; gap:16px; margin-top:24px; }.visit-form label { color:#3d5660; font-size:13px; font-weight:700; }.visit-form input,.visit-form select { display:block; width:100%; color:var(--ink); background:#fff; border:1px solid #bdcdd1; border-radius:8px; margin-top:7px; padding:11px; }.card-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:25px; }.is-hidden { display:none; }.toast { position:fixed; right:24px; bottom:24px; max-width:350px; padding:14px 18px; background:var(--ink); color:#fff; border-radius:10px; box-shadow:0 12px 32px #172b3260; }.history-drawer { position:fixed; z-index:10; inset:0 0 0 auto; width:min(420px,100vw); overflow:auto; padding:28px; background:#fff; border-left:1px solid var(--line); box-shadow:-16px 0 48px #091a3520; }.drawer-header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }.drawer-header h2 { margin:0; letter-spacing:-.025em; }.drawer-close { width:34px; height:34px; border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink); font-size:25px; line-height:1; }.drawer-description { color:var(--muted); font-size:14px; margin:12px 0 20px; }.history-list { border-top:1px solid var(--line); }.history-item { display:flex; align-items:flex-start; gap:12px; padding:16px 0; border-bottom:1px solid var(--line); }.history-item__avatar { display:grid; place-items:center; flex:0 0 auto; width:36px; height:36px; border-radius:50%; background:var(--soft); color:var(--brand); font-size:12px; font-weight:800; }.history-item strong,.history-item small { display:block; }.history-item small { color:var(--muted); margin-top:3px; font-size:12px; }.muted { color:var(--muted); }
.visit-contact { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:18px 0 0; padding:16px; border:1px solid #d8e3f4; border-radius:9px; background:#fbfdff; }.visit-contact legend { padding:0 6px; color:var(--ink); font-size:13px; font-weight:800; }.visit-contact label { color:#3d5660; font-size:13px; font-weight:700; }.visit-contact input { display:block; width:100%; margin-top:7px; padding:11px; color:var(--ink); background:#fff; border:1px solid #bdcdd1; border-radius:8px; }.delivery-reason-notice { grid-column:1 / -1; display:grid; gap:3px; margin:0; padding:10px 12px; border:1px solid #b9d9ff; border-radius:8px; color:#0757ff; background:#edf6ff; font-size:12px; }.delivery-reason-notice.is-hidden { display:none; }.delivery-reason-notice span { color:#526889; font-size:11px; font-weight:600; }
@media (max-width:720px) { .visit-contact { grid-template-columns:1fr; } }
.visits-screen { padding-top:46px; }.visits-screen__header { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; }.visits-screen__header h1 { margin:0; font-size:clamp(30px,4vw,42px); letter-spacing:-.04em; }.visits-screen__header p:not(.eyebrow) { margin:8px 0 0; color:var(--muted); }.visits-toolbar { display:flex; align-items:center; gap:12px; margin:30px 0 12px; padding:14px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 8px 22px #091a3508; }.range-filters { display:flex; gap:4px; padding:4px; border-radius:8px; background:#f1f5fb; }.range-filter { border:0; border-radius:6px; padding:8px 12px; color:var(--muted); background:transparent; font-size:13px; font-weight:750; }.range-filter.is-active { color:#fff; background:var(--brand); box-shadow:0 2px 5px #0757ff30; }.visit-search { flex:1; }.visit-search input { display:block; width:100%; padding:10px 12px; color:var(--ink); border:1px solid #c6d2e6; border-radius:7px; outline:none; }.visit-search input:focus { border-color:var(--brand); box-shadow:0 0 0 3px #0757ff14; }.visits-status { min-height:21px; margin:0 0 16px; color:var(--muted); font-size:13px; }.visits-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }.visit-record { overflow:hidden; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 10px 28px #091a3509; }.visit-record--blacklist { border-color:#f2b3bb; }.visit-record--delivery { border-color:#b5d9ff; }.visit-record__header { display:flex; align-items:center; gap:11px; padding:18px 18px 12px; }.visit-record__header h2 { margin:0; font-size:17px; letter-spacing:-.02em; }.visit-record__header p,.visit-record__time { margin:2px 0 0; color:var(--muted); font-size:12px; }.visit-state { margin-left:auto; padding:5px 8px; border-radius:99px; background:#e6f3ff; color:#0757ff; font-size:11px; font-weight:800; white-space:nowrap; }.visit-state--finalized { background:#e5f7ef; color:#08794f; }.visit-record__time { margin:0; padding:0 18px 14px; border-bottom:1px solid var(--line); }.visit-record__details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 16px; margin:0; padding:16px 18px; }.visit-record__details div { min-width:0; }.visit-record__details dt { color:var(--muted); font-size:11px; font-weight:750; }.visit-record__details dd { overflow-wrap:anywhere; margin:2px 0 0; color:var(--ink); font-size:13px; font-weight:650; }.visit-record__flags { display:flex; gap:8px; padding:12px 18px; border-top:1px solid var(--line); background:#fbfdff; }.visit-flag { padding:4px 7px; border-radius:5px; background:#edf3f7; color:#526889; font-size:11px; }.visit-flag--alert { background:#fff0f1; color:#b4233c; }.visit-flag--delivery { background:#eaf3ff; color:#0757ff; }
.visit-record__footer { display:flex; align-items:center; justify-content:space-between; gap:10px; border-top:1px solid var(--line); background:#fbfdff; }.visit-record__footer .visit-record__flags { border:0; padding:12px 18px; }.visit-record__actions { display:flex; gap:6px; padding-right:14px; }.icon-button { display:grid; place-items:center; min-width:34px; height:34px; border:1px solid #c6d2e6; border-radius:7px; color:var(--brand); background:#fff; font-size:20px; line-height:1; }.icon-button:hover:not(:disabled) { border-color:var(--brand); background:var(--soft); }.icon-button:disabled { cursor:not-allowed; color:#aebdce; background:#f5f7fa; }.delivery-timer { margin:0 18px 16px; padding:9px 10px; border-radius:7px; color:#0757ff; background:#eaf3ff; font-size:12px; font-weight:800; }.delivery-timer--overdue { color:#b4233c; background:#fff0f1; }.image-modal { position:fixed; z-index:20; inset:0; display:grid; place-items:center; padding:22px; background:#091a3580; }.image-modal.is-hidden { display:none; }.image-modal__dialog { width:min(760px,100%); max-height:92vh; overflow:auto; padding:20px; border-radius:12px; background:#fff; box-shadow:0 24px 64px #091a3566; }.image-modal__dialog header { display:flex; align-items:center; justify-content:space-between; gap:16px; }.image-modal__dialog h2 { margin:0; font-size:20px; }.image-modal__main { display:block; width:100%; max-height:60vh; min-height:180px; margin-top:14px; object-fit:contain; border-radius:8px; background:#f3f6fb; }.image-modal__thumbs { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }.image-modal__thumb { width:74px; height:56px; padding:0; overflow:hidden; border:2px solid transparent; border-radius:6px; background:#f3f6fb; }.image-modal__thumb:focus { border-color:var(--brand); outline:none; }.image-modal__thumb img { width:100%; height:100%; object-fit:cover; }
.screening-overview { display:flex; align-items:center; gap:12px; padding:16px; border:1px solid #cfe7dc; border-radius:10px; background:#f6fcf9; }.screening-overview__icon { display:grid; place-items:center; flex:0 0 auto; width:34px; height:34px; border-radius:50%; color:#08794f; background:#dff5e9; font-weight:900; }.screening-overview__icon.is-alert { color:#b45309; background:#fff1d6; }.screening-overview strong { display:block; font-size:14px; }.screening-overview p { margin:2px 0 0; color:var(--muted); font-size:12px; }.screening-count { margin-left:auto; padding:5px 8px; border-radius:99px; color:#526889; background:#fff; border:1px solid #dbe8e1; font-size:11px; font-weight:750; white-space:nowrap; }.screening-sources { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:14px; }.screening-source { border:1px solid #dce6f3; border-radius:9px; background:#fff; }.screening-source summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px; cursor:pointer; list-style:none; }.screening-source summary::-webkit-details-marker { display:none; }.screening-source summary span { display:grid; gap:2px; }.screening-source summary b { font-size:13px; }.screening-source summary small { color:var(--muted); font-size:11px; font-weight:650; }.screening-status { width:9px; height:9px; border-radius:99px; background:#11a36a; }.screening-status.is-alert { background:#ed9b23; }.screening-status.is-unavailable { background:#a0afc1; }.screening-source__content { padding:0 12px 12px; border-top:1px solid #edf1f7; }.screening-source__fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px 12px; margin:12px 0 0; }.screening-source__fields div { min-width:0; }.screening-source__fields dt { color:var(--muted); font-size:10px; font-weight:750; }.screening-source__fields dd { margin:2px 0 0; overflow-wrap:anywhere; color:var(--ink); font-size:12px; font-weight:650; }.screening-source__empty { margin:12px 0 0; color:var(--muted); font-size:12px; }.screening-evidence { display:inline-block; margin-top:12px; color:var(--brand); font-size:12px; font-weight:750; text-decoration:none; }.screening-warning { margin:12px 0 0; padding:10px 12px; border-radius:7px; color:#9a5b00; background:#fff8e7; font-size:12px; }
.screening-result { margin-top:12px; }.screening-result h4 { margin:0 0 7px; color:#526889; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }.screening-table-wrap { overflow-x:auto; border:1px solid #e3eaf4; border-radius:7px; }.screening-table { width:100%; min-width:360px; border-collapse:collapse; font-size:12px; }.screening-table th { padding:8px; color:#526889; background:#f6f9fd; font-size:10px; font-weight:800; text-align:left; vertical-align:top; }.screening-table td { padding:8px; border-top:1px solid #edf1f7; color:var(--ink); font-weight:600; vertical-align:top; overflow-wrap:anywhere; }.screening-table tr:nth-child(even) td { background:#fcfdff; }
@media (max-width:720px) { .app-shell { padding:0 18px 36px; }.operator { font-size:0; }.operator .link-button,.operator .history-button { font-size:14px; }.welcome { margin-top:35px; }.welcome time { display:none; }.steps li { font-size:12px; }.steps li:not(:last-child)::after { margin-left:6px; }.workspace,.visit-form { grid-template-columns:1fr; }.scan-card { padding:36px 23px; }.visitor-heading { align-items:flex-start; }.verified-badge { margin-left:0; }.card-actions { justify-content:stretch; }.card-actions button { flex:1; }.visits-screen { padding-top:32px; }.visits-screen__header,.visits-toolbar { align-items:stretch; flex-direction:column; }.visits-screen__header .secondary-button { width:100%; }.range-filters { justify-content:space-between; }.range-filter { flex:1; }.visits-grid,.screening-sources { grid-template-columns:1fr; }.visit-record__details,.screening-source__fields { grid-template-columns:1fr; }.screening-overview { align-items:flex-start; }.screening-count { margin-left:0; } }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.blacklist-warning { display:flex; gap:12px; align-items:flex-start; margin-top:18px; padding:14px 16px; border:1px solid #f1b2ba; border-radius:9px; color:#9f1730; background:#fff2f3; }.blacklist-warning > span,.security-alert__icon { display:grid; place-items:center; flex:0 0 auto; width:28px; height:28px; border-radius:50%; color:#fff; background:#d92d4b; font-weight:900; }.blacklist-warning strong { display:block; font-size:14px; }.blacklist-warning p { margin:2px 0 0; font-size:13px; }
.security-alert { position:fixed; z-index:30; inset:0; display:grid; place-items:center; padding:22px; background:#091a3580; }.security-alert.is-hidden { display:none; }.security-alert__panel { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:16px; width:min(620px,100%); padding:22px; border:1px solid #f1b2ba; border-radius:12px; background:#fff; box-shadow:0 24px 64px #091a3566; }.security-alert__icon { width:42px; height:42px; font-size:22px; }.security-alert h2 { margin:0; color:#9f1730; font-size:19px; }.security-alert p { margin:4px 0 0; color:#526889; font-size:14px; }
.delivery-button--active { color:#0757ff; border-color:#75a6ff; background:#eaf3ff; box-shadow:0 0 0 3px #0757ff12; }
.delivery-modal { position:fixed; z-index:20; inset:0; display:grid; place-items:center; padding:22px; background:#091a3580; }.delivery-modal.is-hidden { display:none; }.delivery-modal__dialog { width:min(760px,100%); max-height:92vh; overflow:auto; padding:22px; border-radius:12px; background:#fff; box-shadow:0 24px 64px #091a3566; }.delivery-modal__dialog > header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding-bottom:16px; border-bottom:1px solid var(--line); }.delivery-modal__dialog h2 { margin:0; font-size:20px; }.delivery-modal__dialog header p { margin:4px 0 0; color:var(--muted); font-size:13px; }.delivery-list { display:grid; gap:12px; margin-top:16px; }.delivery-empty { padding:24px 0; text-align:center; }.delivery-card { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; padding:16px; border:1px solid #b9d9ff; border-radius:10px; background:#fbfdff; }.delivery-card--overdue { border-color:#f2b3bb; background:#fffafb; }.delivery-card__main { min-width:0; }.delivery-card__title { display:flex; flex-wrap:wrap; gap:5px; align-items:baseline; }.delivery-card__title strong { font-size:15px; }.delivery-card__title span,.delivery-card__main p { color:var(--muted); font-size:12px; }.delivery-card__main p { margin:6px 0 0; }.delivery-card__main p b { color:var(--ink); }.delivery-card__timer { margin-top:12px !important; color:#0757ff !important; font-weight:800; }.delivery-card--overdue .delivery-card__timer { color:#b4233c !important; }.delivery-progress { height:7px; margin-top:7px; overflow:hidden; border-radius:999px; background:#dce9fb; }.delivery-progress span { display:block; height:100%; border-radius:inherit; background:var(--brand); transition:width .25s linear; }.delivery-card--overdue .delivery-progress span { background:#dc3f56; }.delivery-card__actions { display:flex; align-items:flex-start; gap:6px; }.delivery-details { grid-column:1 / -1; padding-top:14px; border-top:1px solid var(--line); }.delivery-details dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px; margin:0; }.delivery-details dt { color:var(--muted); font-size:11px; font-weight:750; }.delivery-details dd { margin:2px 0 0; overflow-wrap:anywhere; font-size:13px; font-weight:650; }

/* Debe prevalecer sobre .blacklist-warning { display:flex }; de lo contrario
   el aviso se ve aun cuando el backend respondió que la cédula no está listada. */
.blacklist-warning.is-hidden { display:none; }

/* Flujo de registro: los pasos completados conservan un rastro claro. */
.steps .is-complete { color:#26705b; }
.steps .is-complete span { color:#08794f; background:#dff5e9; font-size:0; }
.steps .is-complete span::after { content:"✓"; font-size:15px; font-weight:900; }
.steps .is-complete:not(:last-child)::after { background:#bde6d5; }

.visit-preview { margin-top:24px; padding:30px; border:1px solid var(--line); border-radius:12px; background:var(--card); box-shadow:0 10px 30px #091a350a; }
.visit-preview__header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.visit-preview__header h2 { margin:0; letter-spacing:-.025em; }
.visit-preview__header p:not(.eyebrow) { margin:6px 0 0; color:var(--muted); }
.visit-preview__details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 24px; margin:22px 0 0; }
.visit-preview__details div { min-width:0; padding-bottom:12px; border-bottom:1px solid #edf1f7; }
.visit-preview__details dt { color:var(--muted); font-size:12px; font-weight:750; }
.visit-preview__details dd { margin:3px 0 0; overflow-wrap:anywhere; color:var(--ink); font-size:15px; font-weight:700; }

@media (max-width:720px) { .visit-preview { padding:23px; }.visit-preview__header { align-items:flex-start; flex-direction:column; }.visit-preview__details { grid-template-columns:1fr; gap:12px; } }

/* Historial contextual: se despliega junto al registro, no reemplaza la pantalla. */
.welcome-actions { display:grid; justify-items:end; gap:12px; }
.welcome-actions .history-button.is-active { color:#fff; border-color:var(--brand); background:var(--brand); }
.registration-layout.is-visits-open { display:grid; grid-template-columns:minmax(0,1fr) minmax(360px,430px); align-items:start; gap:24px; }
.app-shell.has-visits-panel { max-width:1440px; }
.registration-layout.is-visits-open .visits-screen { position:sticky; top:18px; max-height:calc(100vh - 36px); overflow:auto; padding:24px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 10px 30px #091a350d; }
.registration-layout.is-visits-open .visits-screen__header { align-items:flex-start; }
.registration-layout.is-visits-open .visits-screen__header h1 { font-size:28px; }
.registration-layout.is-visits-open .visits-screen__header p:not(.eyebrow) { font-size:13px; }
.registration-layout.is-visits-open .visits-screen__header .secondary-button { padding:9px 11px; font-size:12px; white-space:nowrap; }
.registration-layout.is-visits-open .visits-toolbar { flex-wrap:wrap; margin:20px 0 12px; padding:10px; }
.registration-layout.is-visits-open .range-filters { width:100%; }
.registration-layout.is-visits-open .range-filter { flex:1; }
.registration-layout.is-visits-open .visit-search { flex-basis:100%; }
.registration-layout.is-visits-open .visits-toolbar > .secondary-button { flex:1; padding-inline:10px; }
.registration-layout.is-visits-open .visits-grid { grid-template-columns:1fr; gap:12px; }
.registration-layout.is-visits-open .visit-record__header { padding:15px 15px 10px; }
.registration-layout.is-visits-open .visit-record__details { padding:14px 15px; }

@media (max-width:1050px) { .app-shell.has-visits-panel { max-width:1140px; }.registration-layout.is-visits-open { grid-template-columns:1fr; }.registration-layout.is-visits-open .visits-screen { position:static; max-height:none; }.welcome-actions { justify-items:start; }.welcome { align-items:start; } }

.overdue-delivery-modal { position:fixed; z-index:40; inset:0; display:grid; place-items:center; padding:24px; background:#091a35b8; }
.overdue-delivery-modal.is-hidden { display:none; }
.overdue-delivery-modal__panel { width:min(600px,100%); padding:34px; border:1px solid #f1b2ba; border-radius:14px; background:#fff; box-shadow:0 28px 80px #091a3588; }
.overdue-delivery-modal__icon { display:grid; place-items:center; width:48px; height:48px; margin-bottom:18px; border-radius:50%; color:#fff; background:#d92d4b; font-size:26px; font-weight:900; }
.overdue-delivery-modal h2 { margin:0; color:#9f1730; font-size:26px; letter-spacing:-.025em; }
.overdue-delivery-modal > .overdue-delivery-modal__panel > p:not(.eyebrow) { margin:8px 0 0; color:#526889; }
.overdue-delivery-modal__details { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 18px; margin:24px 0; padding:18px; border:1px solid #f2d1d6; border-radius:10px; background:#fff7f8; }
.overdue-delivery-modal__details div { min-width:0; }.overdue-delivery-modal__details dt { color:#8d4051; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; }.overdue-delivery-modal__details dd { margin:3px 0 0; overflow-wrap:anywhere; color:var(--ink); font-size:14px; font-weight:750; }
.overdue-delivery-modal__panel .primary-button { width:100%; padding-block:13px; }
@media (max-width:520px) { .overdue-delivery-modal__panel { padding:26px; }.overdue-delivery-modal__details { grid-template-columns:1fr; } }

.user-menu { position:relative; }
.user-menu__trigger { display:grid; place-items:center; width:38px; height:38px; padding:0; border:1px solid #c9d8f2; border-radius:50%; background:#fff; color:var(--brand); }
.user-menu__trigger:hover, .user-menu__trigger[aria-expanded="true"] { border-color:var(--brand); background:var(--soft); }
.user-menu__trigger:focus-visible { outline:3px solid #0757ff33; outline-offset:2px; }
.user-menu__avatar { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:#fff; background:var(--brand); font-size:11px; font-weight:850; }
.user-menu__popover { position:absolute; z-index:50; top:calc(100% + 10px); right:0; width:240px; padding:16px; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:0 16px 38px #091a3524; }
.user-menu__popover.is-hidden { display:none; }
.user-menu__label { margin:0 0 4px; color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.user-menu__popover strong { display:block; color:var(--ink); font-size:15px; }
.user-menu__citadel { margin:5px 0 14px; color:var(--muted); font-size:13px; }
.user-menu__citadel span { color:var(--ink); font-weight:700; }
.user-menu__logout { width:100%; padding:9px 12px; border:1px solid #c9d8f2; border-radius:6px; background:#fff; color:var(--brand); font-size:13px; font-weight:750; }
.user-menu__logout:hover { border-color:var(--brand); background:var(--soft); }
.form-message { color:var(--muted); }
.form-message.is-pending { color:#526889; }
.form-message.is-warning { color:#996800; }
.form-message.is-error { color:#c81e3a; }
