@font-face{font-family:"Euclid Flex";src:url("/fonts/EuclidFlexRegular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Euclid Flex";src:url("/fonts/EuclidFlexMedium.ttf") format("truetype");font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:"Euclid Flex";src:url("/fonts/EuclidFlexSemiBold.ttf") format("truetype");font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:"Euclid Flex";src:url("/fonts/EuclidFlexBold.ttf") format("truetype");font-style:normal;font-weight:700;font-display:swap}
:root{font-family:"Euclid Flex",ui-sans-serif,system-ui,sans-serif;color:#342a2e;background:#fbf7f5;font-size:16px;--wine:#94163e;--wine-dark:#741030;--pink:#efd8d9;--blush:#f8ebec;--cream:#fffaf3;--line:#eadfe0;--muted:#776c70;--card:#fff;--shadow:0 12px 32px #5121350d}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ba7390;outline-offset:2px}.auth{min-height:100vh;display:grid;grid-template-columns:minmax(340px,42%) 1fr;background:white}.auth-art{background:linear-gradient(148deg,var(--auth-start),var(--auth-mid) 64%,var(--auth-end));padding:clamp(32px,6vw,90px);display:flex;flex-direction:column;justify-content:space-between}.auth-art img{width:min(100%,370px);mix-blend-mode:multiply}.auth-art blockquote{font-family:"Euclid Flex",sans-serif;font-size:clamp(29px,3vw,49px);line-height:1.12;color:var(--wine);margin:30px 0}.auth-art small{color:var(--muted)}.auth-form{max-width:500px;width:100%;margin:auto;padding:40px}.auth-form h1,.page-title{font-family:"Euclid Flex",sans-serif;font-weight:400;letter-spacing:-.035em;color:var(--auth-heading)}.auth-form h1{font-size:42px;margin:0 0 10px}.auth-form p{color:var(--muted);line-height:1.55}.segmented{display:flex;background:var(--auth-switch);padding:5px;border-radius:13px;margin:30px 0}.segmented button{border:0;background:none;border-radius:10px;padding:11px;flex:1;color:#6c555d;font-size:14px;font-weight:700}.segmented .active{background:#fff;color:var(--wine);box-shadow:0 2px 8px #69102f19}.field{display:grid;gap:7px;margin:16px 0}.field label{font-size:14px;color:#54454a;font-weight:650}.field input,.field select,.field textarea,.search{width:100%;border:1px solid #d9cdd0;border-radius:11px;background:#fff;padding:12px 14px;color:#382d31;min-height:47px}.field textarea{resize:vertical;min-height:120px}.field small,.hint{color:var(--muted);font-size:13px;line-height:1.5}.btn{border:0;border-radius:11px;background:var(--wine);color:white;padding:12px 17px;font-weight:700;min-height:45px}.btn:hover{background:var(--wine-dark)}.btn:disabled{opacity:.45;cursor:default}.btn.ghost{background:#f7ecef;color:var(--wine)}.btn.light{background:white;color:var(--wine);border:1px solid var(--line)}.text-btn{border:0;background:none;color:var(--wine);font-weight:700;padding:8px}.full{width:100%}.error{padding:12px 15px;background:#fff1f0;border:1px solid #f0c7c4;color:#992d30;border-radius:10px;margin:12px 0}.success{padding:12px 15px;background:#ecf8f0;border:1px solid #b5dfc6;color:#286947;border-radius:10px;margin:12px 0}.shell{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:24px 16px;display:flex;flex-direction:column;gap:18px}.brand{display:flex;align-items:center;gap:11px;padding:9px 10px 26px;border-bottom:1px solid var(--line)}.brand img{height:53px;width:60px;object-fit:cover;object-position:center 17%;border-radius:8px}.brand strong{display:block;font-family:"Euclid Flex",sans-serif;font-size:17px;color:var(--wine);line-height:1.1}.brand span{display:block;font-size:12px;color:var(--muted);margin-top:4px}.nav{display:grid;gap:4px}.nav button{border:0;background:transparent;text-align:left;border-radius:11px;padding:13px 14px;color:#66585e;font-weight:650}.nav button.active{background:var(--blush);color:var(--wine)}.nav button:hover{background:#fbf2f3}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:18px 10px 0;color:var(--muted);font-size:14px}.sidebar-bottom strong{display:block;color:#46383c}.main{padding:32px clamp(20px,4vw,62px) 70px;max-width:1600px;width:100%;margin:0 auto}.top{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:26px}.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--wine);font-weight:800}.page-title{font-size:clamp(32px,3vw,46px);margin:7px 0 5px}.subtle{color:var(--muted);margin:0;line-height:1.5}.top-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.grid{display:grid;gap:17px}.two{grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr)}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow);min-width:0}.card h2{font-family:"Euclid Flex",sans-serif;font-size:23px;font-weight:400;color:#4d2c39;margin:0 0 17px}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.stat{background:var(--cream);border:1px solid #f1e7df;border-radius:16px;padding:20px}.stat strong{font-family:"Euclid Flex",sans-serif;font-size:33px;font-weight:400;color:var(--wine);display:block;margin-top:12px}.stat span{font-size:14px;color:#685c5f}.row{display:flex;align-items:center;gap:13px;border-top:1px solid #f1e9e9;padding:16px 0}.row:first-of-type{border-top:0}.row-main{flex:1;min-width:0}.row-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-main small{display:block;color:var(--muted);margin-top:5px;font-size:13px}.time{min-width:58px;color:var(--wine);font-weight:800}.pill{display:inline-flex;border-radius:30px;background:#f4e5e9;color:#8d2145;padding:5px 10px;font-size:12px;font-weight:750;white-space:nowrap}.pill.completed,.pill.done{background:#eaf5ed;color:#27734b}.pill.cancelled,.pill.no_show,.pill.skipped{background:#f4f1f1;color:#756a6d}.empty{color:var(--muted);background:#fcf8f8;border:1px dashed #e8d6d9;border-radius:13px;padding:24px;line-height:1.5}.list-button{background:none;border:0;text-align:left;width:100%;padding:0;color:inherit}.list-button:hover strong{color:var(--wine)}.toolbar{display:flex;gap:12px;align-items:center;margin:18px 0;flex-wrap:wrap}.toolbar .search{max-width:380px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:620px}.table th{text-align:left;color:var(--muted);font-size:13px;font-weight:700;padding:13px;border-bottom:1px solid var(--line)}.table td{padding:15px 13px;border-bottom:1px solid #f4eded}.table tr:last-child td{border:0}.table button{border:0;background:none;color:var(--wine);font-weight:700}.back{border:0;background:none;color:var(--wine);padding:0;font-weight:700;margin-bottom:12px}.profile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.profile-meta{display:flex;gap:15px;flex-wrap:wrap;color:var(--muted);font-size:14px;margin-top:11px}.timeline{border-left:2px solid #ead8dd;margin:13px 0 0 9px;padding-left:23px}.timeline-item{position:relative;padding:2px 0 23px}.timeline-item:before{content:'';position:absolute;left:-31px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--wine);border:3px solid white;box-shadow:0 0 0 1px #dfc6ce}.timeline-item strong{display:block}.timeline-item p{white-space:pre-wrap;color:#5b4e54;line-height:1.55;margin:9px 0}.timeline-item small{color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tag{background:#f9eff1;color:#79374d;border-radius:7px;padding:6px 9px;font-size:12px}.modal-bg{position:fixed;inset:0;background:#21161bc2;z-index:10;display:grid;place-items:center;padding:18px}.modal{background:white;border-radius:20px;padding:25px;width:min(560px,100%);max-height:92vh;overflow:auto;box-shadow:0 30px 90px #0004}.modal h2{font-family:"Euclid Flex",sans-serif;color:#4d2c39;font-size:30px;font-weight:400;margin:0 0 15px}.modal-top{display:flex;align-items:start;justify-content:space-between;gap:10px}.close{border:0;background:#f8eff1;border-radius:50%;width:34px;height:34px;color:var(--wine);font-size:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.checks{display:grid;gap:9px;margin:12px 0}.checks label{display:flex;align-items:center;gap:10px;font-size:14px}.checks input{accent-color:var(--wine);width:18px;height:18px}.patient-view{max-width:850px;margin:0 auto;padding:32px 20px 70px}.patient-header{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding-bottom:20px}.patient-header img{width:180px}.patient-hero{background:linear-gradient(120deg,#97173e,#731235);border-radius:20px;color:white;padding:32px;margin:28px 0}.patient-hero h1{font-family:"Euclid Flex",sans-serif;font-size:35px;font-weight:400;margin:6px 0}.patient-hero p{margin:0;color:#fbe4ea}.patient-view h2{font-family:"Euclid Flex",sans-serif;color:#502c3a;font-weight:400}.patient-appointment{display:flex;gap:16px;align-items:center}.datebox{width:70px;min-width:70px;background:#f7e8eb;border-radius:10px;text-align:center;padding:9px;color:var(--wine)}.datebox strong{display:block;font-size:23px}.datebox small{font-size:12px;text-transform:uppercase}.footer-note{font-size:13px;color:var(--muted);margin-top:30px}@media(max-width:900px){.two{grid-template-columns:1fr}.shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:2;padding:8px 16px;flex-direction:row;align-items:center;overflow:auto}.brand{padding:0;border:0;min-width:175px}.brand img{width:43px;height:43px}.brand strong{font-size:15px}.brand span,.sidebar-bottom{display:none}.nav{display:flex;white-space:nowrap}.nav button{padding:10px}.main{padding-top:23px}}@media(max-width:620px){.auth{grid-template-columns:1fr}.auth-art{min-height:160px;padding:22px;display:block}.auth-art img{width:165px}.auth-art blockquote,.auth-art small{display:none}.auth-form{padding:26px}.top,.profile-head{align-items:flex-start;flex-direction:column}.three{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.card{padding:18px}.main{padding:19px 15px 50px}.patient-header img{width:140px}}
/* Reusable practice palettes. The supplied Angela logo is designed for the default palette. */
:root[data-theme="oceano"]{--wine:#176177;--wine-dark:#104a5c;--pink:#d8ebef;--blush:#e8f3f5;--cream:#f5fbfc;--line:#d9e6e9}
:root[data-theme="ciruela"]{--wine:#673a71;--wine-dark:#4d2957;--pink:#e6d9e9;--blush:#f3ebf5;--cream:#faf7fb;--line:#e6dfe9}
:root[data-theme="jade"]{--wine:#246b5c;--wine-dark:#174f43;--pink:#d7ece5;--blush:#eaf5ef;--cream:#f7fbf7;--line:#dae8e1}
:root[data-theme="terracota"]{--wine:#a34f38;--wine-dark:#7c3b2b;--pink:#f0dcd4;--blush:#faeee9;--cream:#fff9f5;--line:#eeded6}
:root[data-theme="grafito"]{--wine:#414d61;--wine-dark:#2e394c;--pink:#dfe5ec;--blush:#eff2f6;--cream:#fafbfc;--line:#e0e5ea}
:root[data-theme="azul"]{--wine:#245784;--wine-dark:#183f63;--pink:#cddfeb;--blush:#e7f1f8;--cream:#f6faff;--line:#d2e2ee;--muted:#60728a;--shadow:0 12px 32px #24466c12;--auth-start:#f8fbff;--auth-mid:#e3eff9;--auth-end:#c6dcec;--auth-heading:#1f3d5b;--auth-switch:#eaf2f9}
:root{--auth-start:#fff8f7;--auth-mid:#f3e0e3;--auth-end:#e8c6cf;--auth-heading:#512839;--auth-switch:#f6eeee}
:root[data-theme="oceano"],:root[data-theme="ciruela"],:root[data-theme="jade"],:root[data-theme="terracota"],:root[data-theme="grafito"]{--auth-start:var(--cream);--auth-mid:var(--blush);--auth-end:var(--pink);--auth-heading:var(--wine-dark);--auth-switch:var(--blush)}
.patient-picker{position:relative}.patient-results{border:1px solid var(--line);border-radius:10px;background:white;max-height:220px;overflow-y:auto;box-shadow:var(--shadow);margin-top:5px}.patient-results[hidden]{display:none}.patient-results button{display:block;width:100%;border:0;border-bottom:1px solid #f1e9e9;background:white;text-align:left;padding:10px 13px;color:#483b40}.patient-results button:hover,.patient-results button:focus-visible{background:var(--blush)}.patient-results small{color:var(--muted)}.patient-results .hint{padding:14px}
/* Directory heading and search sit on one centered line, with room before the list. */
.card-header{align-items:center;margin-bottom:19px}.card-header h2{margin:0}.card-header>.search{width:min(380px,100%);flex:0 1 380px}
@media(max-width:620px){.card-header{align-items:stretch;flex-direction:column;gap:14px}.card-header>.search{width:100%;max-width:none;flex:auto}}
/* Keep labels and their controls in separate rows, including nested-label forms. */
.field{gap:9px}.field label{display:grid;gap:9px;line-height:1.4}.field input,.field select,.field textarea{display:block;width:100%;margin:0}
.phone-control{display:flex;align-items:center;min-height:47px;border:1px solid #d9cdd0;border-radius:11px;background:#fff;overflow:hidden}.phone-control span{align-self:stretch;display:flex;align-items:center;padding:0 14px;background:var(--blush);border-right:1px solid #d9cdd0;color:var(--wine);font-weight:700;white-space:nowrap}.field .phone-control input{min-width:0;flex:1;width:100%;border:0;border-radius:0;outline:0}.phone-control:focus-within{outline:3px solid #ba7390;outline-offset:2px}
/* Space the home summary cards from the agenda below, including older app.js copies. */
.grid.three + .grid.two{margin-top:36px !important}
/* Align the sign-out link with the name and role in the sidebar footer. */
.sidebar-bottom .text-btn{display:block;padding:8px 0;text-align:left}
/* Full-width practice brand in the desktop sidebar. */
.brand{flex-direction:column;align-items:stretch;gap:10px;text-align:center}.brand img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center;border-radius:0}.brand strong{white-space:nowrap;font-size:16px}.brand span{margin-top:5px}
@media(max-width:900px){.brand{flex-direction:row;align-items:center;text-align:left;min-width:220px;gap:10px}.brand img{width:43px;height:43px;object-fit:cover;border-radius:8px}.brand strong{font-size:14px}.brand span{display:block;font-size:12px;margin-top:2px}}
/* Weekly appointment planner. */
.agenda-card{padding:22px 0}.agenda-card>.card-header{padding:0 22px}.agenda-switch{width:auto;margin:0}.agenda-switch button{min-width:76px}.agenda-list-filter{padding:0 22px}.agenda-card #agenda-list{padding:0 22px}.week-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:5px 22px 18px}.week-nav{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.week-nav .btn{min-height:38px;padding:7px 12px}.week-nav strong{margin-left:10px;color:#563540;font-size:15px}.week-scroll{max-height:72vh;overflow:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.week-grid{display:grid;grid-template-columns:60px repeat(7,minmax(150px,1fr));min-width:1110px}.week-corner,.week-day-head{position:sticky;top:0;z-index:3;height:62px;background:#fff;border-bottom:1px solid var(--line)}.week-corner{left:0;z-index:5}.week-day-head{display:flex;flex-direction:column;align-items:center;justify-content:center;border-left:1px solid var(--line);gap:2px}.week-day-head span{font-size:13px;color:var(--muted);text-transform:uppercase;font-weight:700}.week-day-head strong{font-size:19px;color:#563540}.week-day-head.today{background:var(--blush)}.week-day-head.today strong{color:var(--wine)}.week-axis{position:sticky;left:0;z-index:2;background:#fff}.week-axis span{position:absolute;left:8px;transform:translateY(-50%);font-size:12px;color:var(--muted)}.week-axis span:first-child{transform:none}.week-track{position:relative;border-left:1px solid var(--line);background-image:linear-gradient(to bottom,var(--line) 1px,transparent 1px);background-size:100% 76px}.week-track.weekend{background-color:#fdfafb}.week-event{position:absolute;z-index:1;display:flex;flex-direction:column;gap:3px;overflow:hidden;padding:6px 7px;border:1px solid #dcb6c2;border-left:3px solid var(--wine);border-radius:7px;background:#f8e9ee;color:#5a2a3c;text-align:left;font-size:12px;line-height:1.2}.week-event:hover,.week-event:focus-visible{z-index:2;background:#f3dce4}.week-event strong,.week-event span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.week-event.completed{background:#e8f4ec;border-color:#b7dcc5;border-left-color:#39865a;color:#24543a}.week-event.cancelled,.week-event.no_show{background:#f3f0f0;border-color:#d9d1d2;border-left-color:#998d90;color:#74696d}.week-event.cancelled{text-decoration:line-through}@media(max-width:620px){.week-toolbar{align-items:flex-start;flex-direction:column}.agenda-card>.card-header{flex-direction:row;align-items:center}.week-grid{grid-template-columns:52px repeat(7,minmax(145px,1fr));min-width:1067px}}
/* Give the weekly planner enough visible height for several appointment hours. */
.week-scroll{height:620px;max-height:none}.week-axis span:first-child{transform:translateY(5px)}
@media(max-width:620px){.week-scroll{height:520px}}
/* Each hour has its own row; labels no longer rely on absolute positioning. */
.week-axis{display:flex;flex-direction:column}.week-hour{flex:0 0 76px;border-top:1px solid var(--line);padding:6px 5px 0 8px;font-size:12px;line-height:1.2;color:var(--muted);white-space:nowrap}
/* Wrap long patient names inside weekly appointment cards. */
.week-event{padding:4px 6px}.week-event strong{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.15}
/* The weekly planner uses one table row per hour, so labels and appointments share a grid. */
.planner-table{width:100%;min-width:1110px;border-collapse:separate;border-spacing:0;table-layout:fixed}.planner-table th,.planner-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.planner-table tr>*:first-child{width:74px}.planner-table thead th{position:sticky;top:0;z-index:3;height:62px;background:#fff;text-align:center;vertical-align:middle}.planner-table thead th:first-child{left:0;z-index:5;font-size:13px;color:var(--muted)}.planner-table thead th.today{background:var(--blush)}.planner-table thead th span{display:block;font-size:13px;color:var(--muted);text-transform:uppercase}.planner-table thead th strong{display:block;font-size:19px;color:#563540}.planner-table thead th.today strong{color:var(--wine)}.planner-table tbody th{position:sticky;left:0;z-index:2;background:#fff;padding:9px 6px;text-align:left;vertical-align:top;font-size:13px;font-weight:500;color:var(--muted)}.planner-table tbody td{height:88px;padding:3px;vertical-align:top;background:#fff}.planner-table tbody td:nth-last-child(-n+2){background:#fdfafb}.planner-event{display:flex;flex-direction:column;gap:3px;width:100%;margin:0 0 3px;padding:6px 7px;border:1px solid #dcb6c2;border-left:3px solid var(--wine);border-radius:7px;background:#f8e9ee;color:#5a2a3c;text-align:left;line-height:1.2}.planner-event:hover,.planner-event:focus-visible{background:#f3dce4}.planner-event strong{font-size:12px}.planner-event span{font-size:13px;font-weight:700;white-space:normal;overflow-wrap:anywhere}.planner-event small{font-size:12px;white-space:normal;overflow-wrap:anywhere}.planner-event.completed{background:#e8f4ec;border-color:#b7dcc5;border-left-color:#39865a;color:#24543a}.planner-event.cancelled,.planner-event.no_show{background:#f3f0f0;border-color:#d9d1d2;border-left-color:#998d90;color:#74696d}.planner-event.cancelled{text-decoration:line-through}
/* Four distinct drop targets per hour keep the selected start time precise. */
.planner-table tr>*:first-child{width:auto}.planner-table thead th:first-child,.planner-table tbody th{width:74px}.planner-table tbody td.planner-slot{height:34px;padding:2px 4px;transition:background .12s}.planner-table tbody tr:not(.planner-hour-start) td{border-bottom:1px dashed #eee5e7}.planner-table tbody tr.planner-hour-start>*{border-top:1px solid var(--line)}.planner-slot-time{display:block;color:#aa9aa0;font-size:10px;line-height:1.15}.planner-slot:has(.planner-event) .planner-slot-time{display:none}.planner-slot.drop-target{background:#f3e0e7;outline:2px solid var(--wine);outline-offset:-2px}.planner-event{cursor:grab}.planner-event:active{cursor:grabbing}.planner-event.dragging{opacity:.45}
/* One separator per row: dashed quarters, solid hour boundary. */
.planner-table tbody tr.planner-hour-start>*{border-top:0}.planner-table tbody tr td.planner-slot{border-bottom:1px dashed #eee5e7}.planner-table tbody tr.planner-hour-end td.planner-slot{border-bottom:1px solid var(--line)}.planner-table tbody th{font-size:11px}.planner-slot-time{font-size:9px}
/* Consultation linked to a specific appointment. */
.consultation-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:18px;align-items:start}.consultation-layout .card-header{align-items:start;flex-wrap:wrap}.consultation-layout .card h3{font-size:16px;margin:22px 0 10px}.consultation-layout textarea{min-height:175px}.consultation-layout .checks{margin:12px 0 22px}.consultation-previous{border-top:1px solid var(--line);padding:15px 0}.consultation-previous small,.consultation-previous strong{display:block}.consultation-previous small{color:var(--muted)}.consultation-previous strong{margin-top:5px}.consultation-previous p{white-space:pre-wrap;color:#5b4e54;line-height:1.5;overflow-wrap:anywhere}@media(max-width:900px){.consultation-layout{grid-template-columns:1fr}}
/* Appointment cells span as many aligned quarter-hour rows as their duration. */
.planner-table tbody td.planner-slot{height:52px}.planner-table tbody td.planner-slot.occupied{position:relative;padding:0}.planner-slot.occupied:not(.conflict) .planner-event{position:absolute;inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);margin:0;overflow:auto}.planner-slot.conflict{padding:4px}.planner-slot.conflict .planner-event{position:relative;margin:0 0 4px}.planner-table tbody tr.planner-hour-end td.planner-slot:not(.hour-boundary){border-bottom:1px dashed #eee5e7}.planner-table tbody tr td.planner-slot.hour-boundary{border-bottom:1px solid var(--line)}
/* Keep home appointment actions compact and recognizably clickable. */
.appointment-row{align-items:flex-start}.appointment-row .row-main strong{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}.appointment-row .row-main small{overflow-wrap:anywhere}.appointment-row .pill{margin-top:2px}.appointment-action{display:inline-flex;align-items:center;margin-top:10px;padding:6px 10px;border:1px solid #d9afbd;border-radius:8px;background:#f9edf1;color:var(--wine);font-family:inherit;font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap;cursor:pointer}.appointment-action:hover,.appointment-action:focus-visible{background:#efd7e0;border-color:var(--wine);outline-offset:2px}
.patient-results .create-patient-link{display:inline;width:auto;margin-left:7px;padding:0;border:0;background:transparent;color:var(--wine);font:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.patient-results .create-patient-link:hover,.patient-results .create-patient-link:focus-visible{background:transparent;color:var(--wine-dark)}
/* Past days are shaded by date; this also works when appointment cells span rows. */
.planner-table thead th.past{background:#f0eeee}.planner-table thead th.past span,.planner-table thead th.past strong{color:#8e8588}.planner-table tbody td.planner-slot{background:#fff}.planner-table tbody td.planner-slot.weekend{background:#fdfafb}.planner-table tbody td.planner-slot.past{background:#f2f0f0}.planner-table tbody td.planner-slot.past .planner-slot-time{color:#a69fa1}
.planner-table tbody td.planner-slot.drop-target{background:#f3e0e7}
/* Appointment modal: separate navigation from save/cancel decisions. */
.appointment-links{display:flex;gap:22px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);margin-top:22px;padding-top:14px}.appointment-link{border:0;background:transparent;color:var(--wine);font-family:inherit;font-size:13px;font-weight:650;padding:5px 0;cursor:pointer}.appointment-link span{font-size:15px;margin-left:3px}.appointment-link:hover,.appointment-link:focus-visible{text-decoration:underline;text-underline-offset:4px}.appointment-form-actions{align-items:center;gap:18px;margin-top:16px}.appointment-form-actions .text-btn{padding:9px 6px;font-size:14px;font-weight:600}.appointment-form-actions .btn{min-width:102px}
/* Center the logo and footer on the full width of the pink sign-in panel. */
.auth-art{align-items:center;text-align:center}.auth-art img{display:block;margin-inline:auto}.auth-art small{display:block;width:100%;text-align:center}
@media(max-width:620px){.auth-art small{display:none}}
.timeline-meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.visit-entry{border:0;background:transparent;color:var(--wine);font-family:inherit;font-size:13px;font-weight:700;padding:4px 0;cursor:pointer}.visit-entry:hover,.visit-entry:focus-visible{text-decoration:underline;text-underline-offset:4px}.visit-entry span{margin-left:3px}
.pregnancy + .pregnancy{border-top:1px solid var(--line);margin-top:20px;padding-top:20px}.pregnancy-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:10px}.pregnancy-delete{border:0;background:transparent;color:var(--muted);font-family:inherit;font-size:12px;padding:8px 0;cursor:pointer}.pregnancy-delete:hover,.pregnancy-delete:focus-visible{color:var(--wine);text-decoration:underline;text-underline-offset:3px}.milestone-status{border:0;border-radius:999px;background:#f4e5e9;color:var(--wine);font-family:inherit;font-size:12px;font-weight:700;white-space:nowrap;padding:6px 11px;cursor:pointer}.milestone-status:hover,.milestone-status:focus-visible{background:#ebd3dc}.milestone-status.done{background:#eaf5ed;color:#27734b}.milestone-status.done:hover,.milestone-status.done:focus-visible{background:#d6ebdc}

.consultation-section{border-top:1px solid var(--line);margin-top:24px;padding-top:4px}.consultation-section .field textarea{min-height:115px}.consultation-checks{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}.consultation-checks label{line-height:1.35}.consultation-measures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}@media(max-width:620px){.consultation-checks,.consultation-measures{grid-template-columns:1fr}}
.consultation-locked{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#faf3f5;border:1px solid var(--line);border-radius:12px;padding:12px 15px;margin:18px 0;color:var(--wine);font-weight:700}.consultation-locked .btn{white-space:nowrap}.consultation-layout fieldset{border:0;padding:0;margin:0;min-width:0}.consultation-layout fieldset:disabled input,.consultation-layout fieldset:disabled textarea{background:#faf7f7;color:#50474a;opacity:1}.consultation-layout fieldset:disabled input[type=checkbox]{opacity:.7}.visit-revisions{border-top:1px solid var(--line);margin-top:25px;padding-top:8px}.visit-revisions p{font-size:13px;color:var(--muted);margin:7px 0}@media(max-width:620px){.consultation-locked{align-items:flex-start;flex-direction:column}}
#weekly-agenda-print,#patient-report-print,#lab-order-print,#prescription-print{display:none}
@media print{
  @page{size:letter;margin:18mm 15mm 24mm}
  html,body{background:#fff!important;margin:0;padding:0}
  #app{display:none!important}
  #weekly-agenda-print,#patient-report-print,#lab-order-print,#prescription-print{display:block!important;color:#92123e;font-family:"Euclid Flex",sans-serif;font-size:10pt;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  .paper-header{text-align:center;padding-top:0}
  .paper-header img{display:block;width:45mm;height:auto;margin:0 auto 2mm}
  .paper-header p{font-size:8pt;margin:0 0 3mm}
  .paper-header h1{font-size:15pt;letter-spacing:.015em;margin:3mm 0 3mm;font-weight:700}
  .paper-header .paper-range{font-size:10pt;margin-bottom:5mm}
  .paper-body{border:1px solid #efd8dc;border-radius:9px;padding:5mm 7mm;margin:0 5mm 12mm}
  .paper-day{break-inside:avoid;page-break-inside:avoid;margin:0 0 4mm}
  .paper-day:last-child{margin-bottom:0}
  .paper-day h2{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid #eed8dc;padding:0 0 1.6mm;margin:0 0 1.5mm;font-size:10pt}
  .paper-day h2 span{font-weight:400;font-size:8pt;color:#855e6b}
  .paper-appointment{display:grid;grid-template-columns:25mm 1fr 22mm;align-items:baseline;gap:3mm;padding:1.8mm 1mm;border-bottom:1px solid #f7ebee;break-inside:avoid;page-break-inside:avoid}
  .paper-appointment:last-child{border-bottom:0}
  .paper-appointment time{font-weight:700;white-space:nowrap}
  .paper-appointment strong{display:block;font-size:9pt;overflow-wrap:anywhere}
  .paper-appointment small{display:block;font-size:8pt;margin-top:.5mm;overflow-wrap:anywhere}
  .paper-status{font-size:7pt;text-align:right;color:#855e6b}
  .paper-empty{font-size:8pt;margin:2mm 1mm 3mm;color:#9a7580}
  .paper-footer{position:fixed;bottom:3mm;left:0;right:0;text-align:center;background:#fff;font-size:7.5pt;line-height:1.5;break-inside:avoid;page-break-inside:avoid}
  .paper-footer span{display:block;white-space:normal;overflow-wrap:anywhere}
  .report-body{color:#64243a;padding:6mm 7mm 10mm}
  .report-body h2{font-size:11pt;color:#92123e;margin:0 0 3mm}
  .report-patient,.report-pregnancies{border-bottom:1px solid #efd8dc;padding:0 0 4mm;margin-bottom:5mm;break-inside:avoid}
  .report-patient p,.report-pregnancies p{margin:0;font-size:9pt;line-height:1.5;overflow-wrap:anywhere}
  .report-visits>h2{margin-bottom:4mm}
  .report-visits>h2 span{font-weight:400}
  .report-consultation{border-top:1px solid #efd8dc;padding:4mm 0;break-inside:auto}
  .report-consultation h3{display:flex;justify-content:space-between;align-items:baseline;gap:5mm;font-size:10pt;color:#92123e;margin:0 0 2mm;break-after:avoid;page-break-after:avoid}
  .report-consultation h3 span{font-size:8pt;font-weight:400;white-space:nowrap}
  .report-field{font-size:9pt;line-height:1.45;margin:2mm 0;overflow-wrap:anywhere}
  .report-field strong{color:#92123e}
  .report-field p{white-space:pre-wrap;margin:1mm 0 2mm;color:#64243a}
  .lab-order-body{min-height:145mm;padding:8mm 9mm 12mm;color:#64243a}
  .lab-order-patient{border-bottom:1px solid #efd8dc;padding-bottom:5mm;margin-bottom:7mm}
  .lab-order-patient h2,.lab-order-tests h2{font-size:11pt;color:#92123e;margin:0 0 3mm}
  .lab-order-patient p{font-size:9pt;line-height:1.5;margin:0}
  .lab-order-tests ul{list-style:none;margin:4mm 0;padding:0}
  .lab-order-tests li{padding:2.5mm 0;border-bottom:1px solid #f3e5e8;break-inside:avoid}
  .lab-order-tests li::before{content:"•";margin-right:3mm;color:#92123e}
  .lab-order-doctor{margin:16mm 0 0;text-align:right;font-weight:700}
  .lab-order-doctor small{font-size:8pt;font-weight:400}
}

.profile-appointments-heading{margin-bottom:17px;flex-wrap:wrap}.profile-appointments-heading h2{margin:0}.profile-appointments-heading .btn{min-height:36px;padding:7px 13px;font-size:13px}

.cedula-warning{font-size:13px;line-height:1.4;color:var(--wine)}.cedula-warning.visible{padding:10px 12px;background:#fff2f4;border:1px solid #ebc6cf;border-radius:9px}.cedula-warning .text-btn{padding:0;margin-left:4px;text-decoration:underline;text-underline-offset:2px}

.planner-table tbody td.planner-slot.bookable{cursor:pointer}.planner-table tbody td.planner-slot.bookable:hover,.planner-table tbody td.planner-slot.bookable:focus-visible{background:#faedf1;outline:2px solid #b85b7d;outline-offset:-2px}

.patient-previous-appointments{margin-top:24px}
/* Patient self-booking and staff review. */
.booking-type-control{position:relative}.booking-type-control select{appearance:none;-webkit-appearance:none;padding-right:65px}.booking-type-control::after{content:"";position:absolute;right:44px;top:50%;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;color:#62545a;transform:translateY(-70%) rotate(45deg);pointer-events:none}
.booking-auth{max-width:560px}.booking-steps{font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--wine);margin:10px 0 18px}.booking-slots{border:0;padding:0;margin:20px 0 14px;min-width:0}.booking-slots legend{font-weight:700;font-size:14px;margin-bottom:12px}.booking-slots>p{color:var(--muted);font-size:14px}.booking-slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.booking-slot{position:relative;cursor:pointer}.booking-slot input{position:absolute;opacity:0;width:1px;height:1px}.booking-slot span{display:block;text-align:center;border:1px solid #dec9cf;border-radius:10px;padding:10px 5px;color:var(--wine);font-weight:700;background:#fff}.booking-slot input:checked+span{background:var(--wine);color:#fff;border-color:var(--wine)}.booking-slot input:focus-visible+span{outline:3px solid #ba7390;outline-offset:2px}.booking-existing,.booking-success{background:#fff3f5;border:1px solid #e7cbd3;border-radius:12px;padding:16px;margin:15px 0;line-height:1.5}.booking-existing .text-btn{display:block;margin-top:8px;padding:0}.booking-success h2{margin-top:0}.booking-success p{line-height:1.55}.booking-review{border:1px solid #e7cbd3;border-radius:14px;background:#fff9fa;padding:18px;margin:20px 0}.booking-review h3{color:var(--wine);margin:0 0 5px;font-size:18px}.booking-review-row{display:flex;justify-content:space-between;align-items:center;gap:18px;border-top:1px solid #eddee2;padding:15px 0}.booking-review-row:first-of-type{margin-top:12px}.booking-review-row strong,.booking-review-row small{display:block}.booking-review-row small{color:var(--muted);line-height:1.5;margin-top:4px}.booking-review-actions{display:flex;gap:8px;flex-wrap:wrap}.booking-review-actions .btn{min-height:36px;padding:8px 12px;font-size:13px}.notice-badge{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;padding:2px 6px;border-radius:12px;background:var(--wine);color:#fff;font-size:12px;vertical-align:middle}.booking-home-alert{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:24px;padding:16px 18px;border:1px solid #e7cbd3;border-radius:12px;background:#fff7f9;color:var(--wine)}.booking-home-alert .btn{min-height:35px}.planner-event.pending{background:#fff2e5;border-color:#ecd3b8;border-left-color:#c6843f;color:#70502e;cursor:pointer}.planner-event.pending:hover{background:#f9e6d1}.patient-booking-action{display:flex;justify-content:flex-end;margin:0 0 18px}.patient-pending{margin-bottom:24px}.patient-booking-card{margin-top:25px}.patient-booking-card h1{font-size:33px;font-weight:500;color:#512839;margin:8px 0 20px}@media(max-width:620px){.booking-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.auth-form .segmented button{padding:9px 4px;font-size:12px}.booking-review-row,.booking-home-alert{align-items:flex-start;flex-direction:column}}
.agenda-card .booking-review{margin:44px 22px 28px}
.booking-home-alert + .grid.two{margin-top:32px !important}
.planner-event.blocked{background:#f0ecef;border-color:#d8ccd2;border-left-color:#8b7882;color:#5a5057;cursor:pointer}.planner-event.blocked:hover{background:#e7dfe3}.agenda-block-row{background:#faf7f8}.agenda-block-row .row-main small{overflow-wrap:anywhere}
.overdue-panel{margin:24px 0 32px;padding:18px;border:1px solid #ebd5cd;border-radius:14px;background:#fffbf8}.agenda-card .overdue-panel{margin:24px 22px 28px}.overdue-heading h2{margin:0;color:var(--wine);font-size:18px}.overdue-heading p{margin:6px 0 12px;color:var(--muted);font-size:14px}.overdue-row{display:flex;justify-content:space-between;align-items:center;gap:18px;border-top:1px solid #ebded8;padding:13px 0}.overdue-row strong,.overdue-row small{display:block}.overdue-row small{color:var(--muted);margin-top:4px}.overdue-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.overdue-actions .btn{min-height:36px;padding:8px 12px;font-size:13px}.overdue-more{margin-top:10px}.overdue-panel + .grid.two{margin-top:32px !important}@media(max-width:720px){.overdue-row{align-items:flex-start;flex-direction:column}}
.week-context{display:flex;flex-direction:column;align-items:flex-end;gap:3px;text-align:right;font-size:12px;color:var(--muted)}.week-context strong{color:var(--wine);font-size:14px}.block-until[hidden]{display:none}@media(max-width:800px){.week-context{align-items:flex-start;text-align:left}}
.profile-record-meta{margin:-8px 0 22px;color:var(--muted);font-size:12px;line-height:1.5;overflow-wrap:anywhere}.profile-record-meta strong{font-weight:600;color:var(--wine)}.medical-history-note,.lab-date-field{margin-top:16px}.medical-history-note[hidden],.lab-date-field[hidden]{display:none}.lab-section fieldset{border:0;margin:0;padding:0;min-width:0}.lab-print-button{margin-top:10px}
.profile-address{margin:-12px 0 22px;color:var(--muted);font-size:13px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.obstetric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;margin:16px 0}.obstetric-entry{padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#fff}.obstetric-entry>label{display:flex;align-items:center;gap:9px;font-size:14px;cursor:pointer}.obstetric-entry input[type=checkbox]{accent-color:var(--wine)}.obstetric-number{margin-top:12px}.obstetric-number[hidden]{display:none}.obstetric-number input{max-width:180px}.obstetric-notes{margin-top:18px}@media(max-width:620px){.obstetric-grid{grid-template-columns:1fr}}
.brand-wordmark{display:block;max-width:100%;color:var(--wine-dark);font-family:"Euclid Flex",sans-serif;font-size:1.5rem;font-weight:700;line-height:1.2;overflow-wrap:anywhere;text-align:center}
.paper-header .paper-doctor-name{font-size:14pt;font-weight:700;margin:0 auto 4mm;color:#92123e;text-align:center}

:root[data-theme="azul"] .segmented button{color:#506b83}:root[data-theme="azul"] .segmented .active{color:var(--wine);box-shadow:0 2px 8px #214b7519}:root[data-theme="azul"] .field label{color:#35516a}:root[data-theme="azul"] .field input,:root[data-theme="azul"] .field select,:root[data-theme="azul"] .field textarea{border-color:#cadbe8}:root[data-theme="azul"] .auth-form{color:#24384c}

.prescription-row{border:1px solid var(--line);border-radius:12px;padding:16px;margin:14px 0}.prescription-row-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.prescription-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.prescription-grid .span{grid-column:1/-1}.prescription-section .field textarea{min-height:75px}@media(max-width:620px){.prescription-grid{grid-template-columns:1fr}}@media print{.prescription-item{break-inside:avoid;border-bottom:1px solid #efd8dc;padding:3mm 0}.prescription-item h2{font-size:11pt;color:#92123e;margin:0 0 2mm}.prescription-item p{line-height:1.55;margin:0}.prescription-notes{white-space:pre-wrap;break-inside:avoid}}

/* Patient portal follows the active practice theme. */
.patient-hero{background:linear-gradient(120deg,var(--wine),var(--wine-dark))}.patient-hero .eyebrow{color:var(--pink)}.patient-hero p{color:#fff;opacity:.9}.patient-view h2{color:var(--wine-dark)}.patient-view .datebox{background:var(--blush);color:var(--wine)}.patient-view .empty{background:var(--cream);border-color:var(--line)}
/* Consultation workspace: patient, consultation, details and documents. */
.consultation-patient-zone{margin-bottom:20px}.consultation-patient-zone h2{margin:5px 0 10px;color:var(--wine-dark)}.patient-facts{display:flex;gap:8px 20px;flex-wrap:wrap;font-size:14px;color:var(--muted)}.consultation-workspace{min-width:0}.consultation-workspace .consultation-locked{margin-top:0}.consultation-summary-zone{margin-bottom:20px}.consulta-summary-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:7px}.consulta-summary-heading h2{margin-bottom:0;color:var(--wine-dark)}.consultation-summary-zone textarea{min-height:125px}.consultation-documents-zone>h2{margin:8px 0 18px;color:var(--wine-dark);font-size:21px}.consultation-tabs{display:flex;gap:6px;overflow:auto;padding-bottom:9px;border-bottom:1px solid var(--line);margin-bottom:20px}.consultation-tabs button{flex:0 0 auto;border:1px solid transparent;border-radius:9px;padding:10px 12px;background:transparent;color:var(--muted);font-size:13px;font-weight:650}.consultation-tabs button[aria-selected=true]{background:var(--blush);border-color:var(--line);color:var(--wine)}.consultation-tabs button:hover{color:var(--wine)}.consultation-panel[hidden],.study-editor[hidden],#rest-fields[hidden]{display:none!important}.consultation-panel .consultation-section{border:0;padding:0;margin:0}.consultation-panel>h3,.study-selection h3{margin-top:4px}.clinical-evaluation{border:1px solid var(--line);border-radius:12px;padding:15px;margin-bottom:24px}.clinical-evaluation>summary,.report-section>summary{cursor:pointer;font-weight:650;color:var(--wine-dark);line-height:1.4}.clinical-evaluation .consultation-section{border-top:1px solid var(--line);margin-top:20px}.study-selection .checks{gap:12px}.study-editor{border:1px solid var(--line);border-radius:14px;padding:18px;margin:20px 0;background:var(--card)}.study-editor-heading{display:flex;justify-content:space-between;gap:12px;align-items:start}.study-editor-heading h3{margin:5px 0 8px!important;color:var(--wine-dark)}.study-editor-heading small{color:var(--muted);font-size:12px;max-width:170px;line-height:1.5}.study-editor-heading .btn{font-size:12px;min-height:34px;padding:8px 11px;white-space:nowrap}.report-section{border-top:1px solid var(--line);padding:14px 0}.report-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.report-wide{grid-column:1/-1}.report-fields .field{margin:12px 0}.report-fields textarea{min-height:85px}.external-exam-row{border:1px solid var(--line);border-radius:12px;padding:0 16px 10px;margin:15px 0}.rest-toggle{display:flex;gap:10px;align-items:center;font-size:14px;margin:20px 0}.rest-toggle input{accent-color:var(--wine);width:18px;height:18px}.consulta-save-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:20px 0;padding:17px 20px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.consulta-save-bar p{font-size:13px;color:var(--muted);margin:0}.consultation-history{position:sticky;top:20px}.consultation-layout fieldset:disabled input,.consultation-layout fieldset:disabled textarea,.consultation-layout fieldset:disabled select{background:var(--cream);color:var(--muted)}
@media(max-width:1100px){.consultation-layout{grid-template-columns:minmax(0,1fr)}.consultation-history{position:static}.consultation-tabs{flex-wrap:wrap}.study-editor-heading{flex-wrap:wrap}}@media(max-width:620px){.report-fields{grid-template-columns:1fr}.consultation-patient-zone .card-header{align-items:start;flex-wrap:wrap}.consulta-save-bar{align-items:start;flex-direction:column}.study-editor{padding:14px}.patient-facts{gap:8px 14px}}
#clinical-document-print{display:none}
@media print{
 #clinical-document-print{display:block!important;color:var(--wine-dark);font-family:"Euclid Flex",sans-serif;font-size:10pt;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 .paper-practice-name{font-weight:700;font-size:12pt;margin:2mm 0}.clinical-document-body{color:#333;padding:5mm 6mm}.document-patient{border-bottom:1px solid var(--line);padding-bottom:3mm;margin-bottom:4mm;break-inside:avoid}.document-patient h2{font-size:11pt;margin:0 0 2mm;color:var(--wine-dark)}.document-patient p{font-size:8pt;line-height:1.5;margin:0}.document-report-section{margin:0 0 4mm}.document-report-section h2{font-size:10pt;margin:3mm 0 2mm;color:var(--wine);break-after:avoid}.document-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5mm 5mm;margin:0}.document-report-grid>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2mm;border-bottom:1px solid var(--line);padding:1.5mm 0;break-inside:avoid;font-size:8pt}.document-report-grid dt{font-weight:650;overflow-wrap:anywhere}.document-report-grid dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.document-report-grid>div.document-wide{grid-column:1/-1;grid-template-columns:1fr}.document-wide dd{line-height:1.5}.document-signature{margin-top:10mm;text-align:right;break-inside:avoid;font-size:9pt}.document-notes{white-space:pre-wrap;line-height:1.6;overflow-wrap:anywhere}.rest-document{min-height:80mm;line-height:1.8}.rest-document p{white-space:pre-wrap}.paper-header,.paper-footer{color:var(--wine)}.paper-body{border-color:var(--line)}
}

@media print{#weekly-agenda-print,#patient-report-print,#lab-order-print,#prescription-print{color:var(--wine)}.lab-order-body,.report-body{color:var(--wine-dark)}.lab-order-patient h2,.lab-order-tests h2,.prescription-item h2,.report-body h2{color:var(--wine)}.paper-day h2,.lab-order-patient,.prescription-item,.report-patient,.report-pregnancies{border-color:var(--line)}.lab-order-tests li::before{color:var(--wine)}}
/* Compact consultation controls; keep separation between zones. */
#unlock-visit-form{margin-bottom:22px}.consultation-summary-zone .clinical-evaluation{margin:16px 0 0}.consultation-summary-zone fieldset{border:0;padding:0;margin:0;min-width:0}.consultation-workspace .field{margin:8px 0;gap:5px}.consultation-workspace .form-grid,.prescription-grid,.report-fields{row-gap:0}.consultation-workspace .field input,.consultation-workspace .field select{min-height:42px;padding:9px 12px}.prescription-row{padding:14px;margin:12px 0}.prescription-row-heading{margin-bottom:6px}.prescription-grid .field textarea{min-height:60px}.rx-schedule{display:grid;grid-template-columns:minmax(65px,.7fr) minmax(0,1.3fr);gap:8px}.lab-other-toggle{display:flex;align-items:center;gap:10px;margin:13px 0;font-size:14px}.lab-other-toggle input{accent-color:var(--wine);width:18px;height:18px}.lab-other-field textarea{min-height:65px}.study-editor .report-fields .field{margin:7px 0}.study-editor .report-fields .field small{font-size:11px}.study-editor input[readonly]{background:var(--cream);color:var(--muted)}.document-signature-image{display:block;width:125px;height:60px;object-fit:contain;margin:5mm 0 0 auto}.signature-placeholder{display:block;margin-top:4mm;font-size:8pt}.lab-order-doctor .document-signature-image{margin-left:auto}
@media print{.document-signature-image{max-width:35mm;max-height:17mm;break-inside:avoid}.signature-placeholder{font-size:8pt}}

.consultation-workspace .checks{margin:10px 0 14px}

/* Hidden conditional controls must override grid/flex field styles. */
[hidden]{display:none!important}
.consultation-payment{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}.consultation-payment h3{margin:4px 0 8px}.consultation-pdf-actions{display:flex;align-items:center;gap:10px}.consultation-pdf-actions .btn{font-size:13px}

.consultation-side{display:grid;gap:18px;align-content:start;position:sticky;top:20px}.consultation-side .consultation-history{position:static}.consultation-payment-card fieldset{border:0;padding:0;margin:0;min-width:0}.consultation-payment-card .consultation-payment{border:0;padding:0;margin:0}.consultation-payment-card .form-grid{grid-template-columns:1fr}.consultation-payment-card .hint{margin-bottom:0}.document-actions,.document-share-actions{display:inline-flex;align-items:center;gap:9px;flex-wrap:wrap}.document-share-actions{margin-left:8px}.document-share-actions .text-btn{font-size:12px;padding:7px 3px}.share-status{font-size:13px;color:var(--muted)}
@media(max-width:1100px){.consultation-side{position:static}}
@media print{.paper-header img{width:45mm;max-height:27mm;object-fit:contain}.paper-body{border-color:var(--line);border-radius:3mm}.paper-header h1{font-size:14pt}.paper-range{color:var(--wine)}.document-patient,.lab-order-patient{border-color:var(--line)}.paper-practice-name,.paper-header>p:not(.paper-range){display:none}.document-signature{margin-top:16mm}.lab-order-doctor,.document-signature{color:var(--wine)}}

.settings-account{display:flex;gap:24px;flex-wrap:wrap;color:var(--muted)}#settings-form .card{margin:18px 0}.settings-image{border-top:1px solid var(--line);margin-top:20px;padding-top:12px}.settings-image-preview{display:flex;align-items:center;gap:15px;margin-top:12px}.settings-image-preview img{width:180px;height:100px;object-fit:contain;border:1px solid var(--line);border-radius:10px;background:white}.settings-patient-access{margin-top:24px;overflow-wrap:anywhere}.auth-form a{color:var(--wine)}

.sidebar-settings{display:block;font-size:12px!important;font-weight:500!important;color:var(--muted)!important;padding:7px 0;margin:9px 0}.sidebar-settings:hover,.sidebar-settings.current{color:var(--wine)!important;text-decoration:underline;text-underline-offset:3px}.settings-tools{margin:18px 0}.settings-tools summary{cursor:pointer;font-weight:600;color:var(--wine-dark)}.settings-tools details>.card{border:0;box-shadow:none;margin:15px 0 0;padding:0}.settings-tools details>.card-header{margin-top:16px}.settings-tools h2{font-size:20px}
@media(max-width:900px){.sidebar-bottom{display:flex;align-items:center;gap:12px;flex-shrink:0;border:0;padding:0;margin-left:auto;white-space:nowrap}.sidebar-identity{display:none}.sidebar-bottom .text-btn{font-size:12px}.sidebar-bottom .sidebar-settings{margin:0;padding:7px 0}}

.psa-tracker{align-self:start;min-width:0}.psa-tracker svg{display:block;width:100%;height:auto;margin:18px 0}.psa-axis{fill:none;stroke:var(--muted,#74869a);stroke-width:1}.psa-grid{stroke:#d9e2ea;stroke-dasharray:3 4}.psa-line{fill:none;stroke:var(--accent,#245784);stroke-width:2.5}.psa-point{fill:var(--accent,#245784)}.psa-tracker svg text{font:10px Euclid,Arial,sans-serif;fill:currentColor}.psa-values{max-height:240px;overflow:auto}.psa-values>div{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid #d9e2ea;font-size:.85rem}.history-detail{max-width:460px;margin-top:12px}.psa-field{max-width:320px;margin-top:16px}

/* Compact agenda: one consistent height for every 15-minute row. */
.planner-table tbody td.planner-slot{height:38px}.planner-table thead th{height:52px}.planner-table thead th strong{font-size:16px}.planner-table thead th span{font-size:11px}.planner-table tbody th{font-size:10px;white-space:nowrap;padding:8px 5px}.planner-table thead th:first-child,.planner-table tbody th{width:78px}.planner-event{gap:2px;padding:4px 5px}.planner-event strong{font-size:10px}.planner-event span{font-size:12px}.planner-event small{font-size:10px}.week-toolbar{padding-bottom:12px}.week-scroll{height:min(560px,68vh)}
.consultation-step-footer{display:flex;justify-content:flex-end;border-top:1px solid var(--line);padding-top:16px;margin-top:20px}.consultation-panel{scroll-margin-top:24px}.consulta-completion{padding:18px;margin-top:20px;border:1px solid var(--line);border-radius:12px;background:var(--blush)}.study-price-form{display:flex;align-items:end;gap:12px;margin:14px 0}.study-price-form label{flex:1;display:grid;gap:6px}.study-price-form input{max-width:160px;padding:10px;border:1px solid var(--line);border-radius:8px}.study-price-form [role=status]{font-size:12px;max-width:180px}.charge-alert{display:flex;align-items:center;justify-content:space-between;padding:18px;margin-top:22px;border:1px solid var(--line);border-radius:12px;background:var(--blush)}.charge-row{padding:20px 0;border-bottom:1px solid var(--line)}.charge-items>div{display:flex;justify-content:space-between;gap:20px;padding:7px 0}.charge-items{margin-top:16px}.charge-row h3{margin:0 0 6px}@media(max-width:620px){.study-price-form{flex-wrap:wrap}.study-price-form label{flex-basis:100%}.charge-alert{gap:15px;align-items:start;flex-direction:column}}

.charge-method{display:block;border:1px solid var(--line);border-radius:8px;padding:8px;margin-top:5px;font:inherit;background:white}.charge-row .form-actions{align-items:center;flex-wrap:wrap}

.charge-summary{margin:8px 0 0;font-size:14px}

/* Keep each conditional detail with its checkbox, and prevent checkbox shrink. */
.history-option{min-width:0;align-self:start}.consultation-checks .clinical-checkbox{display:flex;align-items:flex-start;gap:10px}.clinical-checkbox span{min-width:0;overflow-wrap:anywhere}.checks input[type=checkbox],.obstetric-entry input[type=checkbox],.lab-other-toggle input[type=checkbox],.rest-toggle input[type=checkbox]{width:18px;height:18px;min-width:18px;min-height:18px;flex:0 0 18px;padding:0;margin:2px 0 0;accent-color:var(--wine)}.history-option .history-detail{margin:10px 0 0 28px;max-width:none}.history-detail label{font-size:13px}.history-detail input{min-height:40px}.history-detail input[type=number]{max-width:160px}.previous-consultation-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.previous-consultation-link{padding:7px 10px;min-height:32px;font-size:12px;white-space:nowrap}.charge-total{text-align:right}.charge-total small{display:block;margin-bottom:5px}.charge-total strong{font-size:22px;color:var(--wine)}.charge-payment-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0 4px;margin-top:16px;border-top:1px solid var(--line)}.charge-payment-status{display:grid;justify-items:start;gap:8px}.charge-payment-status small{font-size:12px;color:var(--muted)}.charge-payment-controls{display:flex;align-items:flex-end;gap:12px}.charge-payment-controls label{font-size:12px;font-weight:600;color:var(--muted);display:grid;gap:6px;min-width:210px}.charge-payment-controls .charge-method{margin:0;height:42px;min-height:42px;font-size:14px;border-radius:9px;padding:8px 12px}.charge-payment-controls .btn{height:42px;min-height:42px;padding:10px 15px;font-size:14px;white-space:nowrap}.charge-error{color:#a52d49;font-size:13px}.charge-payment-bar>.btn{height:42px;min-height:42px;font-size:14px}@media(max-width:800px){.charge-payment-bar{align-items:flex-start;flex-direction:column}.charge-payment-controls{width:100%;flex-wrap:wrap}.charge-payment-controls label{flex:1}.charge-payment-controls .btn{flex-shrink:0}}@media(max-width:480px){.charge-payment-controls label,.charge-payment-controls .btn{width:100%}}

.directory-pagination{display:flex;justify-content:space-between;align-items:center;gap:18px;border-top:1px solid var(--line);margin-top:14px;padding-top:18px;font-size:13px;color:var(--muted)}.directory-pagination>div{display:flex;align-items:center;gap:12px}.directory-pagination .btn{font-size:13px;min-height:36px;padding:8px 12px}.booking-type-description{margin:6px 0 0;padding:12px 14px;border-radius:9px;background:var(--blush);font-size:14px;line-height:1.5;white-space:pre-wrap}.block-remove-actions{display:flex;gap:18px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}@media(max-width:650px){.directory-pagination{align-items:start;flex-direction:column}.directory-pagination>div{width:100%;justify-content:space-between;gap:8px}}

/* Consistent inset arrows on single-choice dropdowns. */
select:not([multiple]):not([size]),select[size="1"],.booking-type-control select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%235b626d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:12px 8px;padding-right:44px}
.booking-type-control::after{display:none}

.profile-head{align-items:flex-start;gap:24px}.profile-head>.top{flex:1;min-width:0}.profile-head .page-title{font-size:clamp(28px,3vw,40px);overflow-wrap:anywhere}.profile-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;padding-top:24px}.profile-actions .btn,.profile-action-menu summary{min-height:40px;padding:10px 14px;font-size:14px}.profile-action-menu{position:relative}.profile-action-menu summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--wine);font-weight:600;display:flex;gap:18px;align-items:center}.profile-action-menu summary::-webkit-details-marker{display:none}.profile-action-menu summary:focus-visible{outline:2px solid var(--wine);outline-offset:3px}.profile-action-options{position:absolute;right:0;top:calc(100% + 8px);z-index:8;min-width:230px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 25px #00000012}.profile-action-options button{display:block;width:100%;border:0;background:transparent;color:var(--ink);text-align:left;padding:12px;border-radius:7px;font:inherit;font-size:14px;cursor:pointer}.profile-action-options button:hover,.profile-action-options button:focus-visible{background:var(--blush)}.charges-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,260px);gap:16px;margin:0 0 18px}.charges-toolbar .field{margin:0}@media(max-width:850px){.profile-head{flex-direction:column}.profile-actions{padding-top:0;flex-wrap:wrap}.charges-toolbar{grid-template-columns:1fr}.profile-action-options{right:0}}

.required-mark{color:inherit;font-weight:700;white-space:pre}.step-field-error{font-size:13px;margin:6px 0}

.form-grid,.prescription-grid{align-items:start}.field{align-content:start}.step-field-error{display:block;font-size:13px;line-height:1.4;color:#9b2929;margin:3px 0 0;padding:0;background:transparent;border:0;border-radius:0}.field:has(.medication-results){position:relative}.medication-results{position:absolute;top:100%;left:0;right:0;z-index:20;background:#fff;border:1px solid var(--line,#b9cad9);border-radius:10px;box-shadow:0 8px 22px #00000014;max-height:260px;overflow:auto}.medication-results button{display:block;width:100%;padding:11px 14px;text-align:left;border:0;background:#fff;color:inherit}.medication-results button:hover,.medication-results button:focus{background:var(--blush,#eef4fa)}.medication-results strong,.medication-results small{display:block}.medication-results small{margin-top:3px;color:var(--muted,#52687b);font-size:12px}.rx-instruction-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.rx-instruction-actions>span{font-size:13px;margin-right:6px}.rx-instruction-actions .btn{font-size:12px;min-height:30px;padding:5px 9px}

.rx-instruction-actions .btn.selected,.rx-instruction-actions .btn[aria-pressed="true"]{background:var(--wine);border-color:var(--wine);color:#fff}
.consulta-save-bar>.btn{white-space:nowrap;flex-shrink:0;width:auto}
.consultation-checks:has([name="labs_requested"]){grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:8px 24px}
.consultation-checks:has([name="labs_requested"]) .clinical-checkbox{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;min-height:44px;line-height:1.45;padding:6px 0}
.consultation-checks:has([name="labs_requested"]) .clinical-checkbox span{overflow-wrap:anywhere}
@media(max-width:650px){.consultation-checks:has([name="labs_requested"]){grid-template-columns:1fr}.consultation-checks:has([name="labs_requested"]) .clinical-checkbox{min-height:0}}

.sidebar-secretary{background:var(--blush);border-right:2px solid var(--pink)}
.sidebar-doctor{background:var(--card)}
.nav .patient-entry-link{display:block;padding:12px 14px;border:1px solid var(--line);border-radius:10px;font-size:14px;font-weight:650;margin-top:8px;color:var(--wine);background:var(--card)}
.sidebar-identity{border-top:1px solid var(--line);padding-top:14px}

.patient-entry-shortcut{display:flex;align-items:center;gap:6px;margin-top:8px}
.nav .patient-entry-shortcut .patient-entry-link{margin-top:0;flex:1;min-width:0;font-size:13px;padding:10px}
.copy-patient-link{border:1px solid var(--line);background:var(--card);color:var(--wine);border-radius:9px;padding:10px 7px;font-size:12px;white-space:nowrap;min-height:40px}

.agenda-range-controls{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:12px 0 18px}
.agenda-range-controls summary{cursor:pointer;font-size:14px;font-weight:650;color:var(--wine)}
#agenda-range-form{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
#agenda-range-form .field{flex:1;min-width:160px;margin:12px 0}
#agenda-range-form .hint,#agenda-range-form .error{flex-basis:100%;margin:0}

/* Inset the visible-hours control from the agenda edges. */
.agenda-card > .agenda-range-controls{margin-left:20px;margin-right:20px}
@media(max-width:650px){.agenda-card > .agenda-range-controls{margin-left:12px;margin-right:12px}}

#agenda-range-form{align-items:flex-end}
#agenda-range-form>.btn{margin-bottom:12px;white-space:nowrap}

.profile-action-menu summary{display:flex;align-items:center;justify-content:center;gap:18px}
.profile-action-menu summary>span{display:inline-flex;align-items:center;justify-content:center;line-height:1;align-self:center}
.agenda-weekdays{border:0;padding:0;margin:16px 0 0;flex-basis:100%}
.agenda-weekdays legend{font-size:14px;font-weight:650;margin-bottom:9px}
.agenda-weekdays>div{display:flex;flex-wrap:wrap;gap:7px}
.agenda-weekdays label{position:relative;cursor:pointer}
.agenda-weekdays input{position:absolute;opacity:0;width:1px;height:1px}
.agenda-weekdays span{display:block;padding:8px 14px;border:1px solid var(--line);border-radius:9px;font-size:13px;background:var(--card)}
.agenda-weekdays input:checked+span{background:var(--wine);border-color:var(--wine);color:white}
.agenda-weekdays input:focus-visible+span{outline:2px solid var(--wine);outline-offset:3px}
.planner-slot.nonworking{background:var(--blush);cursor:default}
