:root{--ink:#17232d;--muted:#667783;--paper:#f3f6f7;--card:#fff;--line:#dce4e7;--nav:#344b57;--nav-dark:#263943;--accent:#b23a32;--success:#26734d;--shadow:0 12px 30px rgba(31,52,63,.08)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.topbar{min-height:64px;background:var(--nav);color:white;display:flex;align-items:center;padding:0 max(24px,calc((100vw - 1280px)/2));gap:20px;box-shadow:0 2px 10px #0002;position:relative;z-index:20}.brand{font-size:1.3rem;font-weight:800;color:white;text-decoration:none}.topbar nav{display:flex;gap:8px}.topbar nav a,.account a{color:#eaf1f3;text-decoration:none;padding:10px 12px;border-radius:7px}.topbar nav a:hover{background:var(--nav-dark)}.account{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:.9rem}.account form{margin:0}.link-button{border:0;background:none;color:white;text-decoration:underline;cursor:pointer;font:inherit}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.global-patient-search{position:relative;width:min(390px,32vw);margin:0}.global-patient-search input{padding:9px 12px;border:0}.global-patient-results{position:absolute;top:calc(100% + 8px);left:0;width:min(520px,80vw);max-height:min(65vh,620px);overflow:auto;background:white;color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 18px 45px #14242d33}.global-patient-results ul{list-style:none;margin:0;padding:7px}.global-patient-results li+li{border-top:1px solid var(--line)}.global-patient-results a{display:block;padding:8px 10px;color:#246a8a;text-decoration:none;border-radius:6px}.global-patient-results a:hover,.global-patient-results a:focus{background:#eaf1f3}.global-patient-results span{color:var(--muted)}.global-search-empty{margin:0;padding:18px;color:var(--muted)}.page{max-width:1280px;margin:0 auto;padding:42px 24px}.page-narrow{max-width:560px;padding-top:9vh}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:24px;box-shadow:var(--shadow)}.card-heading{margin:-24px -24px 24px;padding:28px 30px;background:var(--nav);color:white;border-radius:12px 12px 0 0}.card-heading h1{margin:.15rem 0;font-size:2rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:800;color:var(--muted);margin:0}.card-heading .eyebrow{color:#bdd0d8}.hero{background:linear-gradient(130deg,#fff,#e7eef0);padding:50px;border-radius:18px;border:1px solid var(--line)}h1{font-size:clamp(2rem,4vw,3.2rem);line-height:1.1;margin:.3rem 0 1rem}h2{margin-top:0}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:24px}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:10px 16px;border:1px solid transparent;text-decoration:none;font-weight:700;cursor:pointer;font:inherit}.button-primary{background:var(--accent);color:white}.button-secondary{background:white;color:var(--ink);border-color:var(--line)}.status-grid,.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}.status-grid .card{display:flex;flex-direction:column}.status-grid span{color:var(--muted)}.page-header{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.page-header h1{margin-bottom:0}.form-grid{display:grid;gap:18px}.form-grid label{font-weight:700;display:grid;gap:7px}.patient-form{grid-template-columns:repeat(2,1fr)}.patient-form .full,.details-grid .full{grid-column:1/-1}input,select,textarea{width:100%;padding:11px 12px;border:1px solid #b9c7cc;border-radius:7px;background:white;color:var(--ink);font:inherit}textarea{min-height:130px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid #bddbe6;border-color:#477d91}.field-error{color:#a52c27;margin:-10px 0 0}.flash{padding:13px 16px;border-radius:8px;margin-bottom:18px}.flash-error{background:#fde5e3;color:#84251f}.flash-success{background:#dff3e8;color:#15583a}.search{margin-bottom:18px}.search label{display:block;font-weight:700;margin-bottom:6px}.search div{display:flex;gap:8px}.table-wrap{overflow:auto;background:white;border:1px solid var(--line);border-radius:12px}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line)}th{background:#e7edef}.empty{text-align:center;color:var(--muted);padding:36px}.details-grid{grid-template-columns:1fr 1fr}.details-grid dl{display:grid;grid-template-columns:150px 1fr;gap:8px}.details-grid dt{font-weight:700}.details-grid dd{margin:0}.preline{white-space:pre-line}.birth-date{display:grid;grid-template-columns:100px auto 100px auto 140px;align-items:end;gap:12px;border:1px solid var(--line);border-radius:9px;padding:16px}.birth-date legend{font-weight:800;padding:0 8px}.birth-date span{padding-bottom:11px}.protected-note,.protected-pathologies{border-left:5px solid #9a7224;background:#fffaf0;padding:14px 16px}.protected-content{margin-top:18px;background:white;border:1px solid var(--line);padding:16px;border-radius:8px}.consultations-section{margin-top:32px}.section-heading{background:var(--nav);color:white;padding:18px 22px;border-radius:12px 12px 0 0}.section-heading h2{margin:.2rem 0 0}.section-heading .eyebrow{color:#bdd0d8}.count-badge{display:inline-flex;min-width:28px;height:28px;padding:0 8px;align-items:center;justify-content:center;background:#16c6c8;color:#10262c;border-radius:999px;font-size:.85rem}.consultation-card{background:#fff1f0;border:1px solid #f0cfcc;border-radius:9px;padding:18px 22px;margin-top:12px}.consultation-card header{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);margin-bottom:10px}.consultation-card header strong{color:var(--ink)}.observation-content{font-size:1.02rem}@media(max-width:900px){.topbar{align-items:flex-start;flex-wrap:wrap;padding:12px 18px}.global-patient-search{order:4;width:100%}.account{margin-left:auto}.global-patient-results{width:100%}}@media(max-width:760px){.topbar nav{order:3;width:100%}.account span{display:none}.page{padding:28px 16px}.patient-form,.status-grid,.details-grid{grid-template-columns:1fr}.birth-date{grid-template-columns:1fr auto 1fr auto 1.4fr}.hero{padding:28px}.page-header{align-items:flex-start;gap:14px;flex-direction:column}}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px}.consultation-actions,.row-actions{display:flex;align-items:center;gap:14px;margin-top:14px}.consultation-actions form,.row-actions form{margin:0}.danger-link{border:0;background:none;color:#a52c27;text-decoration:underline;cursor:pointer;font:inherit;padding:0}.observation-form{padding:0;overflow:hidden}.editor-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:12px;background:#e7edef;border-bottom:1px solid var(--line)}.editor-toolbar button{border:1px solid #aebfc6;background:white;border-radius:6px;padding:7px 10px;cursor:pointer}.clinical-editor{min-height:300px;padding:22px;background:white;outline:none}.clinical-editor:focus{box-shadow:inset 0 0 0 3px #bddbe6}.observation-form textarea[hidden]{display:none}.observation-form .actions{padding:0 22px 22px}.user-form{grid-template-columns:repeat(2,1fr)}.user-form .full{grid-column:1/-1}.checkbox-field{display:flex!important;grid-column:1/-1;grid-template-columns:auto 1fr!important;align-items:center;justify-content:start}.checkbox-field input{width:auto}.password-note{padding:12px;background:#eef3f5;border-radius:7px;color:var(--muted)}.status{display:inline-flex;padding:3px 9px;border-radius:999px;font-size:.85rem;font-weight:700}.status-active{background:#dff3e8;color:#15583a}.status-inactive{background:#eceff0;color:#68757b}@media(max-width:760px){.section-heading{align-items:flex-start;flex-direction:column}.user-form{grid-template-columns:1fr}}
.clinical-pathologies{border-left:5px solid var(--accent)}.pathology-warning{padding:14px 16px;border:1px solid #e1b16b;border-radius:8px;background:#fff4df;color:#704300}.clinical-field-error{margin:12px 22px 0}
.icon-symbols{display:none}.patient-dossier-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:24px;align-items:start}.patient-sidebar{display:grid;gap:18px;position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;overscroll-behavior-y:contain;padding-right:6px;scrollbar-gutter:stable}.patient-identity-card{text-align:center}.patient-identity-card h2{font-size:1.2rem;margin:12px 0 3px}.patient-age{margin:0 0 16px;color:var(--muted);font-weight:700}.patient-avatar{width:112px;height:112px;margin:0 auto;border-radius:50%;display:grid;place-items:center;background:var(--nav);color:white;font-size:2rem;font-weight:800}.patient-detail-row{display:grid;grid-template-columns:32px minmax(0,1fr);gap:8px;align-items:start;text-align:left;padding:9px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.detail-icon,.summary-icon{width:21px;height:21px;margin:2px auto 0;color:var(--nav);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.patient-accordion{padding:0;overflow:hidden}.patient-accordion summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 20px;cursor:pointer;font-size:1.05rem;font-weight:800;list-style:none;user-select:none}.patient-accordion summary::-webkit-details-marker{display:none}.patient-accordion summary>span:first-child{display:flex;align-items:center;gap:8px}.accordion-indicator{width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .15s ease;margin-right:3px}.patient-accordion[open] .accordion-indicator{transform:rotate(225deg)}.patient-accordion-content{padding:0 20px 18px;border-top:1px solid var(--line)}.patient-new-quote{display:block;margin:12px 0 8px;padding:9px 12px;text-align:center;font-size:.88rem}.patient-quote-list{list-style:none;padding:0;margin:0;font-size:.78rem}.patient-quote-list li{padding:9px 0;border-top:1px solid var(--line)}.patient-quote-list li:first-child{border-top:0}.patient-quote-summary{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-items:center}.patient-quote-list time{color:var(--muted)}.patient-quote-list strong{text-align:right;color:var(--accent);font-size:.84rem}.patient-quote-list small{color:var(--muted);text-transform:lowercase}.patient-quote-actions{display:flex;gap:12px;align-items:center;margin-top:5px}.patient-quote-open,.patient-quote-document{color:#246a8a;font:inherit;font-weight:700;text-decoration:none}.patient-quote-document{padding:0;border:0;background:none;cursor:pointer}.patient-quote-open:hover,.patient-quote-open:focus,.patient-quote-document:hover,.patient-quote-document:focus{text-decoration:underline}.quote-document-modal{width:min(1180px,94vw);height:min(900px,92vh);padding:0;border:0;border-radius:12px;box-shadow:0 24px 70px #0007;overflow:hidden}.quote-document-modal::backdrop{background:rgba(18,32,40,.72)}.quote-document-modal header{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;background:var(--nav);color:#fff}.quote-document-modal h2{margin:0;font-size:1rem}.quote-document-modal header button{border:0;background:transparent;color:#fff;font-size:2rem;line-height:1;cursor:pointer}.quote-document-modal iframe{display:block;width:100%;height:calc(100% - 58px);border:0;background:#fff}.patient-clinical-grid{grid-template-columns:1fr;margin-top:0}.patient-clinical-column .consultations-section{margin-top:24px}.audit-confirmation{padding:10px 12px;border-radius:7px;background:#dff3e8;color:#15583a;font-weight:700}@media(max-width:900px){.patient-dossier-layout{grid-template-columns:1fr}.patient-sidebar{position:static;max-height:none;overflow:visible;overscroll-behavior:auto;padding-right:0;grid-template-columns:1fr 1fr}.patient-identity-card,.patient-clinical-column{grid-column:1 / -1}}@media(max-width:600px){.patient-sidebar{grid-template-columns:1fr}.patient-quote-actions{align-items:flex-start;flex-direction:column;gap:5px}}
.password-input-wrap{position:relative;display:block}.password-input-wrap input{padding-right:100px}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#245d75;font:inherit;font-weight:700;cursor:pointer;padding:8px}.password-toggle:hover,.password-toggle:focus{text-decoration:underline}
.form-field{display:grid;align-self:start;gap:5px}.form-field label{align-content:start}.field-label-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.field-requirement{font-size:.74rem;font-weight:800;white-space:nowrap}.field-requirement.required{color:#b3312b}.field-requirement.optional{color:#477d91}.field-feedback{min-height:1.35em;margin:0;font-size:.9rem;font-weight:700}.feedback-success{color:#15583a}.feedback-error{color:#a52c27}.patient-form .birth-date{width:min(100%,620px);justify-self:center;grid-template-columns:90px 16px 90px 16px 130px;justify-content:center}.patient-form .birth-date legend{display:flex;align-items:baseline;gap:12px}.patient-form .birth-date label{align-self:start}@media(max-width:760px){.patient-form .birth-date{grid-template-columns:70px 12px 70px 12px 110px;padding:12px}.field-label-line{gap:7px}.field-requirement{font-size:.68rem}}
.editor-toolbar .dictation-button{margin-left:auto;background:#fff5f4;border-color:#d19590;color:#8d2d27;font-weight:700}.editor-toolbar .dictation-button[aria-pressed="true"]{background:#b23a32;color:white}.dictation-status{align-self:center;min-width:150px;color:var(--muted);font-size:.88rem}
.avatar-reminder{margin-bottom:18px;padding:13px 16px;border:1px solid #d49a45;border-left:5px solid #a76b15;border-radius:8px;background:#fffaf0;color:#62420e}.avatar-reminder a{color:inherit;font-weight:800}.profile-avatar-section{text-align:center;border-bottom:1px solid var(--line);padding-bottom:24px}.profile-avatar{width:144px;height:144px;object-fit:cover;border-radius:50%;display:grid;place-items:center;margin:0 auto 18px}.profile-avatar-placeholder{background:var(--nav);color:white;font-size:2.2rem;font-weight:800}.profile-avatar-section label{max-width:600px;margin:auto}.profile-avatar-section p{color:var(--muted)}.immutable-account-data{padding:14px;background:#eef3f5;border-radius:8px}.consultation-card header{align-items:center}.observation-avatar{width:48px;height:48px;object-fit:cover;border-radius:50%;flex:0 0 48px}.observation-avatar-placeholder{display:grid;place-items:center;background:var(--nav);color:white;font-weight:800}.observation-author-meta{display:grid}.link-action{border:0;background:none;color:#245d75;text-decoration:underline;cursor:pointer;font:inherit;padding:0}.password-checks{margin:0;padding:12px 16px;list-style:none;border:1px solid var(--line);border-radius:8px;background:#f7fafb}.password-checks li{margin:5px 0;color:var(--muted)}.password-checks li.is-valid{color:#26734d}.password-checks li.is-invalid{color:#9a3b32}.password-checks span{display:inline-block;width:1.3em;font-weight:800}
.accounting-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:end}.accounting-filters label{font-weight:700}.accounting-totals{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:20px 0}.accounting-totals article,.account-balance{display:grid;gap:4px}.accounting-totals span,.account-balance span,.account-balance small{color:var(--muted)}.accounting-totals strong,.account-balance strong{font-size:1.7rem}.accounting-section{margin-top:30px}.accounting-section h2{display:flex;gap:10px;align-items:center}.exercise-tabs{display:flex;gap:8px;margin-bottom:18px}.exercise-tabs a{padding:8px 14px;background:white;border:1px solid var(--line);border-radius:7px;color:var(--ink);text-decoration:none}.balance-due{color:var(--accent)}.invoice-summary{display:flex;justify-content:space-between;gap:18px;margin-bottom:18px}.payment-form{max-width:700px}@media(max-width:760px){.accounting-filters,.accounting-totals{grid-template-columns:1fr}.invoice-summary{flex-direction:column}}
.patient-quotes-section{margin-bottom:24px}.section-heading-inline{display:flex;justify-content:space-between;align-items:center;gap:16px}.section-heading-inline h2{margin:0}.quote-exercise{margin-bottom:18px;max-width:520px}.quote-exercise label{font-weight:800}.quote-category{padding:0;margin-bottom:12px;overflow:hidden}.quote-category summary{padding:16px 20px;font-weight:800;cursor:pointer;background:#e7edef}.quote-category summary span{float:right;color:var(--muted);font-weight:500}.quote-category .table-wrap{border:0;border-radius:0}.quote-category input[type=checkbox]{width:22px;height:22px}.quote-category input[type=number]{min-width:76px}.quote-category input[name^=teeth]{min-width:110px}.quote-submit{position:sticky;bottom:12px;background:#fff;padding:14px;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}.quote-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.quote-meta article{display:grid}.quote-meta span{color:var(--muted)}.account-invoice-balance{text-align:right;font-size:1.2rem}.quote-catalog-form{max-width:800px}@media(max-width:760px){.quote-meta{grid-template-columns:1fr 1fr}.section-heading-inline{align-items:flex-start;flex-direction:column}}
.quote-tooth-picker{position:relative;min-width:110px}.quote-tooth-panel{position:fixed;z-index:100;display:none;width:min(520px,calc(100vw - 16px));padding:9px;border:1px solid #9eb1b9;border-radius:10px;background:#fff;box-shadow:0 12px 28px #15283236}.quote-tooth-picker:hover .quote-tooth-panel,.quote-tooth-picker:focus-within .quote-tooth-panel{display:block}.quote-tooth-picker.is-closed .quote-tooth-panel{display:none}.quote-tooth-chart{display:grid;grid-template-columns:1fr 1fr;border-right:1px solid #536a74;border-bottom:1px solid #536a74}.quote-tooth-quadrant{display:grid;grid-template-columns:repeat(8,minmax(27px,1fr));padding:2px 6px 7px}.quote-tooth-quadrant:nth-child(odd){border-right:1px solid #536a74}.quote-tooth-quadrant.quote-tooth-lower{padding-top:7px;padding-bottom:2px}.quote-tooth-quadrant label{display:flex!important;flex-direction:column;align-items:center;gap:3px;margin:0!important;font-size:.76rem;font-weight:750;cursor:pointer}.quote-tooth-quadrant input{width:17px!important;height:17px!important;margin:0;accent-color:#16bec6}.quote-tooth-actions{display:flex;justify-content:flex-end;gap:7px;padding-top:8px}.quote-tooth-actions button{padding:5px 9px;border:1px solid #9eb1b9;border-radius:7px;background:#fff;color:#243b46;font:inherit;font-size:.78rem;cursor:pointer}.quote-tooth-actions .quote-tooth-apply{border-color:#345260;background:#345260;color:#fff}@media(max-width:620px){.quote-tooth-quadrant{grid-template-columns:repeat(8,minmax(25px,1fr));padding-inline:2px}}
.app-shell{width:min(1740px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(0,1380px) 320px;gap:20px;align-items:start;padding-right:20px}.app-shell>.page{width:100%;max-width:none;margin:0}.private-chat{position:sticky;top:16px;display:flex;flex-direction:column;max-height:calc(100vh - 32px);margin-top:24px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}.private-chat>header{padding:16px 18px;background:var(--nav);color:#fff}.private-chat>header div{display:flex;justify-content:space-between;align-items:center}.private-chat>header small{color:#bdd0d8}.chat-users{max-height:230px;overflow-y:auto;overscroll-behavior-y:contain;border-bottom:1px solid var(--line)}.chat-user{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px 12px;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);text-align:left;cursor:pointer}.chat-user:hover,.chat-user:focus,.chat-user.active{background:#edf3f5}.chat-user img,.chat-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover}.chat-avatar{display:grid;place-items:center;background:var(--nav);color:#fff;font-size:.75rem;font-weight:800}.chat-user>span:nth-child(2){display:grid;min-width:0}.chat-user strong{font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-user small{color:var(--muted);font-size:.68rem}.chat-user small.online{color:var(--success);font-weight:800}.chat-unread{display:inline-grid;min-width:21px;height:21px;padding:0 6px;place-items:center;border-radius:999px;background:var(--accent);color:#fff;font-size:.7rem}.chat-conversation{display:flex;flex-direction:column;min-height:280px;overflow:hidden}.chat-conversation[hidden]{display:none}.chat-conversation-heading{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line);font-size:.82rem}.chat-conversation-heading button{border:0;background:none;font:inherit;cursor:pointer}.chat-messages{height:270px;overflow-y:auto;overscroll-behavior-y:contain;padding:10px;background:#f5f7f8}.chat-message{max-width:88%;margin:0 0 8px;padding:7px 9px;border-radius:9px;background:#fff;border:1px solid var(--line)}.chat-message.mine{margin-left:auto;background:#e3eef2}.chat-message p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.78rem}.chat-message time{display:block;margin-top:3px;color:var(--muted);font-size:.62rem;text-align:right}.chat-form{display:grid;grid-template-columns:1fr auto;gap:6px;padding:9px;border-top:1px solid var(--line)}.chat-form textarea{min-height:54px;max-height:110px;padding:8px;font-size:.78rem}.chat-form button{align-self:end;padding:8px;border:0;border-radius:6px;background:var(--nav);color:#fff;font-weight:800;cursor:pointer}.chat-error{margin:0;padding:0 10px 8px;color:#a52c27;font-size:.75rem}.chat-empty{margin:0;padding:20px;color:var(--muted);font-size:.82rem;text-align:center}@media(max-width:1100px){.app-shell{grid-template-columns:1fr;padding-right:0}.private-chat{position:static;max-height:650px;margin:0 24px 30px}.chat-messages{height:300px}}
.quote-status{display:inline-flex!important;width:max-content;max-width:100%;align-items:center;padding:3px 9px;border-radius:999px;background:var(--status-bg,#5f6c73);color:#fff!important;font-size:.72rem;font-weight:800;text-transform:none!important}.quote-status-stand_by{--status-bg:#7b858b}.quote-status-in_progress{--status-bg:#2877a6}.quote-status-reminder{--status-bg:#b3312b}.quote-status-third_party_payment{--status-bg:#d3a514;color:#282000!important}.quote-status-partial_payment{--status-bg:#d77717}.quote-status-paid{--status-bg:#171b1e}.quote-status-archived{--status-bg:#5f6c73}.quote-status sup{margin-left:2px;font-size:.62em;line-height:1;position:relative;top:-.28em}
.dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.dashboard-action{display:flex;align-items:center;gap:18px;color:var(--ink);text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.dashboard-action:hover,.dashboard-action:focus{transform:translateY(-2px);box-shadow:0 16px 36px rgba(31,52,63,.14)}.dashboard-action-icon{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;border-radius:50%;background:var(--nav);color:#fff;font-size:1.45rem;font-weight:800}.dashboard-action>span:last-child{display:grid}.dashboard-action strong{font-size:1.2rem}.dashboard-action small{color:var(--muted)}.business-intro{max-width:900px;color:var(--muted);font-size:1.05rem}.business-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.business-summary-grid h2,.business-section h2{color:var(--nav)}.business-definitions{display:grid;grid-template-columns:max-content 1fr;gap:10px 14px}.business-definitions dt{font-weight:800}.business-definitions dd{margin:0}.business-section{margin-top:20px}.business-section li+li{margin-top:8px}@media(max-width:900px){.business-summary-grid{grid-template-columns:1fr}}@media(max-width:650px){.dashboard-grid{grid-template-columns:1fr}}
.reference-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:20px}.reference-status-card h2,.reference-actions h2,.reference-source-note h2{margin-top:0;color:var(--nav)}.reference-version-date{font-size:1.25rem;font-weight:800}.reference-counts{display:grid;grid-template-columns:1fr auto;gap:7px 16px;margin:0}.reference-counts dt{color:var(--muted)}.reference-counts dd{margin:0;font-weight:800}.reference-update-available{color:#8a4c00}.reference-actions{margin-top:20px}.reference-actions form{margin-top:18px}.reference-source-note{margin-top:20px;border-left:5px solid var(--accent)}@media(max-width:900px){.reference-summary-grid{grid-template-columns:1fr}}
.actual-receipts-card{margin-top:18px}.actual-receipts-card>span,.actual-receipts-card>.balance-due{display:block}.actual-receipts-card>.balance-due{margin:.35rem 0;font-size:1.8rem}.actual-receipts-details{margin-top:16px}.actual-receipts-details>summary{display:inline-flex;cursor:pointer;list-style:none}.actual-receipts-details>summary::-webkit-details-marker{display:none}.actual-receipts-details[open]>summary{margin-bottom:16px}
.patient-account-card{padding:18px 20px}.patient-account-card h2{margin:0 0 8px;font-size:1.05rem}.patient-account-card p{margin:0 0 12px;color:var(--muted);font-size:.82rem}.patient-account-card .button{padding:8px 12px;font-size:.88rem}.quote-exercise-badge{display:inline-flex;width:max-content;align-items:center;padding:2px 7px;border-radius:999px;color:#fff;font-size:.68rem;font-weight:900;text-transform:uppercase}.quote-exercise-prv{background:#8052a3}.quote-exercise-chu{background:#267a58}.quote-document-modal-actions{display:flex;align-items:center;gap:12px}.quote-document-modal header .quote-document-print{border:1px solid #ffffff80;border-radius:6px;padding:7px 12px;background:#fff;color:var(--nav);font-size:.88rem;font-weight:800;line-height:1;cursor:pointer}.quote-document-modal header .quote-document-close{border:0;background:transparent;color:#fff;font-size:2rem;line-height:1;cursor:pointer}.quote-verification-admin{margin-top:36px;padding:16px 20px;font-size:.82rem;color:var(--muted)}.quote-verification-admin h2{margin-bottom:8px;font-size:1rem;color:var(--ink)}.quote-verification-admin p{margin:.4rem 0}.quote-verification-admin .button{padding:7px 11px;font-size:.8rem}
.patient-photo-heading-actions{display:flex;align-items:center;gap:18px}.patient-photo-add{width:38px;height:38px;border:0;border-radius:6px;background:var(--nav);color:#fff;font-size:1.7rem;line-height:1;cursor:pointer}.patient-photo-sidebar-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:12px}.patient-photo-sidebar-thumb,.patient-photo-nav-thumb{position:relative;padding:0;border:2px solid transparent;border-radius:7px;background:#17232d;overflow:hidden;cursor:pointer}.patient-photo-sidebar-thumb img{display:block;width:100%;height:92px;object-fit:cover}.patient-photo-sidebar-thumb span,.patient-photo-nav-thumb span{position:absolute;left:5px;bottom:4px;padding:1px 4px;border-radius:3px;background:#0008;color:#ffe74f;font-size:.62rem;font-weight:900;text-shadow:0 1px 2px #000}.patient-photo-viewer{margin-bottom:24px;padding:18px}.patient-photo-stage{position:relative;display:grid;place-items:center;min-height:280px;max-height:72vh;border-radius:9px;background:#17232d;overflow:hidden}.patient-photo-stage>img{display:block;max-width:100%;max-height:72vh;object-fit:contain}.patient-photo-stage>time{position:absolute;left:18px;bottom:14px;padding:3px 7px;border-radius:4px;background:#0008;color:#ffe74f;font-size:clamp(.8rem,1.5vw,1.15rem);font-weight:900;text-shadow:0 1px 3px #000}.patient-photo-controls{display:flex;justify-content:flex-end;margin:12px 0}.patient-photo-navigation{display:flex;gap:9px;padding:4px 0 8px;overflow-x:auto;overscroll-behavior-x:contain}.patient-photo-nav-thumb{flex:0 0 112px;height:82px}.patient-photo-nav-thumb.active{border-color:#2d849f}.patient-photo-nav-thumb img{display:block;width:100%;height:100%;object-fit:cover}.photo-upload-modal{width:min(720px,94vw);padding:0;border:0;border-radius:12px;box-shadow:0 24px 70px #0007}.photo-upload-modal::backdrop{background:rgba(18,32,40,.72)}.photo-upload-modal>header{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 26px;background:var(--nav);color:#fff}.photo-upload-modal h2{margin:3px 0 0}.photo-upload-modal header .eyebrow{color:#bdd0d8}.photo-upload-modal header button{border:0;background:transparent;color:#fff;font-size:2rem;cursor:pointer}.photo-upload-modal form{display:grid;gap:16px;padding:26px}.photo-upload-modal form>p{margin:0}.photo-format-warning{padding:13px 15px;border-left:5px solid #d49a45;background:#fffaf0;color:#62420e}.photo-selection-summary{color:var(--muted)}@media(max-width:600px){.patient-photo-sidebar-list{grid-template-columns:repeat(3,minmax(0,1fr))}.patient-photo-stage{min-height:210px}.patient-photo-controls{justify-content:stretch}.patient-photo-controls a{width:100%;text-align:center}}
.quote-catalog-search{display:grid;gap:7px;margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff}.quote-catalog-search input{width:100%;min-height:44px}.quote-catalog-search p{margin:0;color:var(--muted);font-size:.86rem}.quote-preview-modal{width:min(820px,94vw);padding:0;border:0;border-radius:14px;box-shadow:0 24px 70px #0007}.quote-preview-modal::backdrop{background:rgba(18,32,40,.72)}.quote-preview-modal header{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;background:var(--nav);color:#fff}.quote-preview-modal header h2,.quote-preview-modal header p{margin:0}.quote-preview-modal header button{border:0;background:transparent;color:#fff;font-size:2rem;cursor:pointer}.quote-preview-content{padding:22px}.quote-preview-account{padding:14px;border:2px solid var(--accent);border-radius:9px;font-size:1.15rem}.quote-document-modal header .quote-document-email{border:1px solid #ffffff80;border-radius:6px;padding:7px 10px;background:#fff;color:var(--nav);font-size:.78rem;font-weight:800;cursor:pointer}.quote-document-missing-email{max-width:290px;color:#fff3b0;font-size:.72rem;font-weight:800;line-height:1.2}.quote-document-modal-actions form{margin:0}@media(max-width:700px){.quote-document-modal header{height:auto;min-height:58px;padding:8px 12px}.quote-document-modal-actions{gap:6px}.quote-document-modal header .quote-document-email,.quote-document-modal header .quote-document-print{padding:6px;font-size:.7rem}.quote-document-missing-email{max-width:180px}.quote-document-modal iframe{height:calc(100% - 72px)}}
.accounting-correction-note{margin:28px 0 0;border-radius:8px}
.patient-correspondents-card .patient-accordion-content{display:grid;gap:14px}.patient-correspondent-item{border:1px solid var(--line);border-radius:9px;background:#f8fafb;padding:14px}.patient-correspondent-item>header{display:grid;gap:2px}.patient-correspondent-item>header small{color:var(--muted)}.patient-correspondent-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}.patient-correspondent-actions form{margin:0}.patient-correspondent-actions .link-button{color:#245d75}.correspondent-mail-history{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.correspondent-mail-history summary{cursor:pointer;font-weight:700}.correspondent-mail-history p{padding:8px 0;margin:0;border-bottom:1px solid var(--line);font-size:.9rem}.template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.mail-template-card header,.mail-template-card footer,.mail-editor-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mail-template-card footer{align-items:center}.mail-template-card footer form{margin:0}.mail-template-preview{white-space:pre-wrap;max-height:220px;overflow:auto;background:#f5f8f9;border-radius:7px;padding:12px}.mail-template-picker{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:18px 0}.mail-template-picker .button{padding:6px 10px}.correspondent-mail-form{margin-top:18px}.mail-editor-heading{align-items:center;margin-bottom:7px}.mail-editor-heading>span{display:flex;align-items:center;gap:8px}.mail-editor-heading small{color:var(--muted)}
.mail-event-detail dl{display:grid;grid-template-columns:140px 1fr;gap:8px 18px}.mail-event-detail dt{font-weight:800}.mail-event-detail dd{margin:0}.mail-event-detail pre{white-space:pre-wrap;font:inherit;background:#f5f8f9;border:1px solid var(--line);border-radius:8px;padding:18px;margin-top:24px}
.correspondent-associate-button,.template-save-button{margin-top:10px;min-width:150px;box-shadow:0 4px 12px #b23a3230}.template-unshare{color:#245d75}.template-variable-help{margin-bottom:18px;background:#f4f8fa}.template-variable-help h2{font-size:1.1rem}.template-variable-help dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin-bottom:0}.template-variable-help dt{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;color:#245d75}.template-variable-help dd{margin:0}.mail-send-preview dl{display:grid;grid-template-columns:120px 1fr;gap:8px 16px}.mail-send-preview dt{font-weight:800}.mail-send-preview dd{margin:0}.mail-preview-body{white-space:pre-wrap;padding:22px;border:1px solid var(--line);border-radius:9px;background:#fff;font-family:Georgia,serif;line-height:1.65}@media(max-width:600px){.template-variable-help dl,.mail-send-preview dl{grid-template-columns:1fr}}
.patient-prescription-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.patient-prescription-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.patient-prescription-item span{display:grid}.patient-prescription-item small{color:var(--muted)}.prescription-template-picker{margin-bottom:18px}.prescription-template-links{display:flex;gap:8px;flex-wrap:wrap}.prescription-builder{display:grid;gap:12px}.prescription-search-results{border:1px solid var(--line);border-radius:9px;overflow:hidden;max-height:340px;overflow-y:auto}.prescription-search-results button{display:grid;width:100%;padding:12px 14px;text-align:left;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}.prescription-search-results button:hover,.prescription-search-results button:focus{background:#eef5f7}.prescription-search-results small{color:var(--muted)}.prescription-lines{display:grid;gap:14px;margin-top:16px}.prescription-line-card{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px;border:1px solid var(--line);border-radius:10px;background:#f8fafb}.prescription-line-card header,.prescription-line-card label:nth-of-type(n+3){grid-column:1/-1}.prescription-line-card header{display:grid;grid-template-columns:1fr auto;gap:2px 12px}.prescription-line-card header small{color:var(--muted)}.prescription-line-card header .prescription-remove{grid-column:2;grid-row:1/3}.prescription-document-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px}.prescription-document-card iframe{width:100%;height:75vh;border:1px solid var(--line);border-radius:8px}.prescription-document-card .actions form{margin:0}.template-action{color:#245d75}@media(max-width:800px){.prescription-document-layout{grid-template-columns:1fr}.prescription-line-card{grid-template-columns:1fr}.prescription-line-card header,.prescription-line-card label{grid-column:1!important}}
.patient-document-item{display:grid;gap:6px;padding:11px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.patient-document-item>span:first-child{display:grid}.patient-document-item small{color:var(--muted)}.patient-document-actions{display:flex;align-items:center;gap:12px}.patient-document-actions form{margin:0}.patient-document-actions button{padding:0;border:0;background:none;cursor:pointer}.document-delete-info{margin-top:14px;font-size:.78rem}.mobile-photo-transfer{padding:20px 26px 0}.mobile-photo-transfer h3{margin:0 0 6px}.mobile-photo-transfer p{margin:0 0 12px}.mobile-photo-qr img{display:block;width:min(230px,70vw);height:auto;margin:12px auto}.photo-upload-progress progress{width:100%}
.programming-page-header{align-items:flex-end}.programming-page-header p:last-child{margin:.3rem 0 0;color:#617480}.programming-form{max-width:1180px;padding:0;overflow:hidden}.programming-steps{display:grid;grid-template-columns:repeat(4,1fr);background:#edf3f5;border-bottom:1px solid #d3dfe3}.programming-step{display:flex;align-items:center;gap:.7rem;padding:1rem;border:0;border-right:1px solid #d3dfe3;background:transparent;color:#617480;text-align:left;cursor:pointer}.programming-step:last-child{border-right:0}.programming-step b{display:grid;place-items:center;width:2rem;height:2rem;flex:0 0 2rem;border:2px solid #9aabb3;border-radius:50%}.programming-step span{font-weight:750}.programming-step.active{background:#fff;color:#14232d}.programming-step.active b{border-color:#16bec6;background:#16bec6;color:#fff}.programming-step.completed b{border-color:#345260;background:#345260;color:#fff}.programming-panel{display:none;padding:2rem 2.25rem}.programming-panel.active{display:block}.programming-panel>header{margin-bottom:1.7rem}.programming-panel>header h2{margin:.2rem 0;font-size:1.8rem}.programming-panel>header p:last-child,.form-help{color:#617480}.programming-form fieldset{min-width:0;margin:0 0 1.5rem;padding:1.25rem;border:1px solid #cbd9de;border-radius:16px;background:#fbfcfd}.programming-form legend{padding:0 .6rem;color:#14232d;font-size:1.15rem;font-weight:850}.required-mark{margin-left:.4rem;padding:.22rem .5rem;border-radius:999px;background:#fff0dc;color:#8d5407;font-size:.72rem;text-transform:uppercase}.programming-location{display:grid;grid-template-columns:1fr 1fr;gap:1rem;background:transparent!important;border:0!important;padding:0!important}.programming-location legend{grid-column:1/-1;padding:0 0 .5rem}.programming-choice{position:relative;display:flex!important;align-items:center;gap:1rem;margin:0!important;padding:1.3rem;border:2px solid #cbd9de;border-radius:16px;background:#fff;cursor:pointer;transition:.15s}.programming-choice:hover{border-color:#6d8792;transform:translateY(-1px)}.programming-choice:has(input:checked){border-color:#16bec6;background:#effcfc;box-shadow:0 0 0 3px rgba(22,190,198,.12)}.programming-choice input{position:absolute;opacity:0}.choice-icon{display:grid;place-items:center;width:3rem;height:3rem;flex:0 0 3rem;border-radius:12px;background:#345260;color:#fff;font-size:1.55rem;font-weight:900}.programming-choice strong,.programming-choice small{display:block}.programming-choice strong{font-size:1.12rem}.programming-choice small{margin-top:.3rem;color:#617480;line-height:1.4}.programming-fields{display:grid;gap:1rem}.programming-fields.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.programming-fields.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.programming-field{display:block!important;margin:0 0 1rem!important}.programming-field>span{display:block;margin-bottom:.45rem;color:#14232d;font-weight:800}.programming-field>span em{font-size:.75rem;color:#8d5407;font-style:normal;text-transform:uppercase}.programming-field input,.programming-field select,.programming-field textarea{display:block;width:100%;min-height:3rem;padding:.75rem .85rem;border:1px solid #aebfc6;border-radius:10px;background:#fff;color:#14232d;font:inherit}.programming-field textarea{resize:vertical}.programming-field input:focus,.programming-field select:focus,.programming-field textarea:focus{border-color:#16bec6;outline:3px solid rgba(22,190,198,.14)}.programming-field small{display:block;margin-top:.35rem;color:#617480}.programming-toggle{display:flex!important;align-items:center;gap:.8rem;margin:1rem 0!important;padding:1rem;border:1px solid #cbd9de;border-radius:12px;background:#fff;cursor:pointer}.programming-toggle input{width:1.3rem;height:1.3rem;accent-color:#16bec6}.programming-toggle strong,.programming-toggle small{display:block}.programming-toggle small{margin-top:.2rem;color:#617480}.programming-toggle.compact{margin:0!important}.programming-route-placeholder{padding:1.5rem;border:2px dashed #aebfc6;border-radius:14px;color:#617480;text-align:center}.programming-route[hidden],.programming-route-placeholder[hidden],.block-central-options[hidden]{display:none!important}.route-heading{display:flex;align-items:center;gap:1rem;margin-bottom:1.3rem;padding:1rem 1.2rem;border-radius:14px;background:#edf3f5}.route-heading h3,.route-heading p{margin:.1rem 0}.route-heading p{color:#617480}.block-central-options{margin:1rem 0;padding:1.2rem;border-left:5px solid #d69b39;border-radius:10px;background:#fff8ec}.block-central-options h4{margin:0 0 1rem}.programming-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.programming-check-grid label{display:flex;align-items:center;gap:.6rem;margin:0!important;padding:.75rem;border:1px solid #d3dfe3;border-radius:10px;background:#fff;cursor:pointer}.programming-check-grid label:has(input:checked){border-color:#16bec6;background:#effcfc}.programming-check-grid input{width:1.15rem;height:1.15rem;accent-color:#16bec6}.dental-chart{position:relative;overflow-x:auto;background:linear-gradient(#fff,#f5f9fa)!important}.dental-chart .form-help{margin:.2rem 0 1rem}.dental-arch{display:grid;grid-template-columns:6.5rem minmax(360px,1fr) 2px minmax(360px,1fr);align-items:center;gap:.55rem;min-width:860px;padding:.7rem 0}.arch-label{font-size:.82rem;font-weight:800;color:#617480;text-transform:uppercase}.dental-quadrant{display:grid;grid-template-columns:repeat(8,minmax(36px,1fr));gap:.3rem}.dental-midline{align-self:stretch;background:#9db0b7}.dental-horizontal{height:2px;min-width:860px;margin-left:7rem;background:#9db0b7}.tooth{position:relative;display:flex!important;flex-direction:column;align-items:center;gap:.28rem;margin:0!important;padding:.35rem .1rem;border-radius:9px;cursor:pointer}.tooth input{position:absolute;opacity:0}.tooth b{font-size:.78rem;color:#526975}.tooth-shape{position:relative;width:27px;height:31px;border:2px solid #637b86;border-radius:45% 45% 38% 38%;background:#fff;transition:.15s}.tooth-shape:after{content:"";position:absolute;left:7px;right:7px;bottom:-7px;height:9px;border-right:2px solid #637b86;border-left:2px solid #637b86;background:#fff;transform:skew(-6deg)}.tooth:hover .tooth-shape{transform:scale(1.08);border-color:#16bec6}.tooth:has(input:checked){background:#dffafb}.tooth input:checked~.tooth-shape,.tooth input:checked+.tooth-shape{border-color:#0a7f86;background:#16bec6}.tooth input:checked~.tooth-shape:after,.tooth input:checked+.tooth-shape:after{border-color:#0a7f86;background:#16bec6}.tooth:has(input:checked) b{color:#075f64;font-weight:900}.dental-legend{display:flex;justify-content:flex-end;gap:1rem;min-width:860px;margin-top:.8rem;color:#617480;font-size:.82rem}.dental-legend span{display:flex;align-items:center;gap:.4rem}.dental-legend i{width:1rem;height:1rem;border:2px solid #637b86;border-radius:40%;background:#fff}.dental-legend i.selected{border-color:#0a7f86;background:#16bec6}.programming-review{display:flex;justify-content:space-between;gap:1rem;padding:1rem;border-radius:12px;background:#edf3f5}.programming-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding:1rem 2.25rem;border-top:1px solid #d3dfe3;background:rgba(255,255,255,.96);box-shadow:0 -8px 20px rgba(29,49,58,.06)}.programming-footer #programming-position{margin-right:auto;color:#617480;font-weight:750}.programming-view iframe{width:100%;height:72vh;border:1px solid #d7e1e5;border-radius:12px;margin-top:1rem}.patient-programming-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid #d7e1e5}.patient-programming-item span,.patient-programming-item small{display:block}@media(max-width:760px){.programming-page-header{align-items:flex-start}.programming-steps{grid-template-columns:repeat(4,1fr)}.programming-step{justify-content:center;padding:.7rem .25rem}.programming-step span{display:none}.programming-panel{padding:1.25rem}.programming-location,.programming-fields.two-columns,.programming-fields.three-columns,.programming-check-grid{grid-template-columns:1fr}.programming-choice{padding:1rem}.programming-footer{padding:1rem 1.25rem}.programming-footer #programming-position{display:none}.programming-footer .button{flex:1}.programming-review{display:block}.dental-arch{grid-template-columns:5rem minmax(340px,1fr) 2px minmax(340px,1fr)}.dental-horizontal{margin-left:5.5rem}}
.quote-item-disabled,.quote-family-disabled{opacity:.45;background:#eef1f2}.quote-item-disabled input,.quote-family-disabled input{cursor:not-allowed}
.document-frame{width:100%;min-height:75vh;margin:1rem 0;border:1px solid #d7e0e4;border-radius:12px;background:#fff}
.observation-disabled-link{color:var(--muted);text-decoration:line-through dotted;cursor:not-allowed;opacity:.72}


.correspondent-associate-actions { display: flex; justify-content: center; margin-top: 1rem; }
.session-timeout-warning { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; background: rgba(15,23,42,.58); }
.session-timeout-warning[hidden] { display: none; }
.session-timeout-warning > div { max-width: 34rem; margin: 1rem; padding: 1.5rem; border-radius: 1rem; background: white; box-shadow: 0 1rem 3rem rgba(0,0,0,.25); }
.disabled-with-tooltip { display: inline-block; cursor: not-allowed; }
.disabled-with-tooltip button { pointer-events: none; }

.dev-role-switcher { display:flex; align-items:center; gap:.4rem; padding:.35rem .55rem; border-radius:.6rem; background:#fff3cd; color:#5c4300; }
.dev-role-switcher label { font-size:.75rem; font-weight:700; }
.dev-role-switcher select { width:auto; min-width:5rem; padding:.35rem; }
.medical-summary-form { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.medical-entry { display:flex; justify-content:space-between; gap:1rem; padding:.8rem; margin:.6rem 0; border-left:5px solid #5b8def; background:#f6f8fb; }
.medical-entry small,.medical-entry p { display:block; margin:.25rem 0 0; }
.medical-alert-important { border-left-color:#e69b00; }
.medical-alert-critical { border-left-color:#ba2d2d; background:#fff2f2; }
.medical-summary { display:flex; flex-wrap:wrap; gap:.5rem; }
.medical-summary span { padding:.3rem .55rem; border-radius:999px; background:#e8f5e9; }


/* Outils DEV et saisie médicale structurée */
.dev-role-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem max(1rem,calc((100vw - 1500px)/2));border-bottom:2px solid #d6a700;background:#fff3cd;color:#493700}
.dev-role-panel>div{display:flex;flex-direction:column;gap:.15rem}.dev-role-panel>div span{font-size:.88rem}
.dev-role-switcher{display:flex;align-items:center;gap:.55rem;padding:0;background:transparent;color:inherit}
.dev-role-switcher label{font-size:.82rem;font-weight:750}.dev-role-switcher select{width:auto;min-width:5.5rem;padding:.45rem}
.dev-role-switcher .button{padding:.48rem .8rem;white-space:nowrap}
.medical-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:1.25rem}
.medical-form-column,.medical-record-column{display:grid;gap:1.25rem}
.medical-reference-field{position:relative}.medical-reference-results{position:absolute;z-index:30;top:100%;right:0;left:0;max-height:20rem;overflow:auto;border:1px solid #b8c8ce;border-radius:.65rem;background:#fff;box-shadow:0 .75rem 2rem rgba(29,49,58,.18)}
.medical-reference-option{display:flex;width:100%;align-items:flex-start;justify-content:space-between;gap:1rem;padding:.7rem .85rem;border:0;border-bottom:1px solid #e1e8eb;background:#fff;color:inherit;text-align:left;cursor:pointer}
.medical-reference-option:hover,.medical-reference-option:focus-visible{background:#e8f7f8}.medical-reference-option small{flex:0 0 auto;color:#617480}
#medical-reference-help{display:block;margin-top:.35rem;color:#617480}
@media(max-width:1050px){.dev-role-panel{align-items:flex-start;flex-direction:column}.medical-workspace{grid-template-columns:1fr}}


/* Ergonomie des éléments médicaux */
.medical-current-summary>h2{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.medical-category-section{padding:1rem 0;border-top:1px solid #d7e1e5}.medical-category-section:first-of-type{border-top:0}
.medical-category-section h3{margin:0 0 .75rem;color:#173e52}.medical-category-section h3 span{font-weight:500;color:#617480}
.medical-entry-body{min-width:0}.medical-entry-actions{display:flex;align-items:center;gap:.8rem;white-space:nowrap}.medical-entry-actions form{margin:0}
.medical-alert-badge{display:inline-flex;align-items:center;margin-left:.55rem;padding:.18rem .48rem;border-radius:999px;font-size:.75rem;font-weight:800;background:#dcecf2;color:#24536a}
.medical-alert-badge-information{background:#dcecf2;color:#24536a}.medical-alert-badge-important{background:#fff0bf;color:#765400}.medical-alert-badge-critical{background:#ffd9d6;color:#92251f}
.patient-medical-negative-summary{margin:0 0 1.25rem;padding:1rem;border:1px solid #d7e1e5;border-radius:.75rem;background:#f7fafb}
.patient-medical-negative-summary h3{margin:0 0 .7rem}.patient-medical-negative-summary form{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}.patient-medical-negative-summary small{display:block;margin-top:.55rem;color:#617480}
.patient-medical-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}
.patient-medical-group{padding:1rem;border:1px solid #d7e1e5;border-radius:.75rem}.patient-medical-group h3{margin:0 0 .7rem;color:#173e52}
.medical-active-field{align-self:end}
@media(max-width:850px){.patient-medical-groups{grid-template-columns:1fr}.medical-entry{align-items:flex-start;flex-direction:column}.medical-entry-actions{width:100%;justify-content:flex-end}}


/* Compacité du formulaire médical et clarification des absences vérifiées */
.medical-entry-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.medical-entry-form-grid .full{grid-column:1/-1}
.medical-entry-form-grid textarea{min-height:8.5rem}
.patient-medical-negative-summary{padding:.8rem 1rem}
.patient-medical-negative-summary>p{margin:.15rem 0 .7rem;color:#526975}
.patient-medical-negative-summary form{gap:.55rem 1rem}
.patient-medical-negative-summary form label{display:flex;align-items:center;gap:.45rem;margin:0}
.patient-medical-negative-summary form input[type=checkbox]{width:auto;margin:0}
.patient-medical-negative-summary .button{padding:.48rem .75rem}
@media(max-width:700px){.medical-entry-form-grid{grid-template-columns:1fr}.medical-entry-form-grid .full{grid-column:auto}}


/* Lecture médicale INF et catégories repliables */
.patient-medical-group{padding:0;overflow:hidden}
.patient-medical-group>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;cursor:pointer;font-weight:800;color:#173e52;list-style:none}
.patient-medical-group>summary::-webkit-details-marker{display:none}
.patient-medical-group>summary:before{content:"▸";margin-right:.25rem;transition:transform .15s}
.patient-medical-group[open]>summary:before{transform:rotate(90deg)}
.patient-medical-group>summary .count-badge{margin-left:auto}
.patient-medical-group-content{padding:0 1rem 1rem}
.patient-medical-group-critical{border-color:#c43a32;box-shadow:inset 4px 0 0 #c43a32}
.medical-summary-readonly{margin:.35rem 0 0}.medical-summary-readonly .empty-inline{background:#eef3f5;color:#617480}
.medical-last-update{margin:1rem 0 0;color:#526975;font-size:.9rem;font-style:italic}
.medical-history-attention{color:#b42318;font-weight:700}


/* Alerte dossier médical non renseigné */
.medical-information-missing-alert{margin:0 0 1rem;padding:.8rem 1rem;border:2px solid #b42318;border-radius:.65rem;background:#fff0ee;color:#b42318;font-weight:900;text-align:center;animation:medical-missing-pulse 1.15s ease-in-out infinite}
@keyframes medical-missing-pulse{0%,100%{opacity:1}50%{opacity:.28}}
@media(prefers-reduced-motion:reduce){.medical-information-missing-alert{animation:none}}
.patient-nir-first{order:-1}.nir-row{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}.nir-row input:first-of-type{width:13ch;box-sizing:content-box}.nir-row input:nth-of-type(2){width:2ch;box-sizing:content-box;text-align:center}.nir-status{color:#52656f;font-weight:700}.nir-status.is-valid{color:#087a42}.nir-status.is-invalid{color:#b42318}


/* Alerte globale des messages non lus et envoi collectif ADMIN */
.chat-message-banner{overflow:hidden;background:#b42318;color:#fff;border-bottom:2px solid #8f1d15;font-weight:900;white-space:nowrap}
.chat-message-banner[hidden]{display:none}
.chat-message-banner span{display:inline-block;min-width:100%;padding:.55rem 1rem;text-align:center;animation:chat-banner-scroll 12s linear infinite}
@keyframes chat-banner-scroll{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}
.chat-bulk{border-bottom:1px solid var(--line);background:#f7fafb}
.chat-bulk summary{padding:.7rem .8rem;cursor:pointer;font-weight:800;color:var(--nav)}
.chat-bulk form{display:grid;gap:.45rem;padding:0 .8rem .8rem}
.chat-bulk label{font-size:.78rem;font-weight:800}
.chat-bulk select{min-height:7rem;padding:.35rem;font-size:.8rem}
.chat-bulk textarea{min-height:5rem;font-size:.82rem}
.chat-bulk button{padding:.5rem;border:0;border-radius:6px;background:var(--accent);color:#fff;font-weight:800;cursor:pointer}
.chat-bulk small{color:var(--muted);font-size:.7rem}
.chat-success{margin:.25rem 0 0;color:var(--success);font-size:.78rem;font-weight:800}
@media(prefers-reduced-motion:reduce){.chat-message-banner span{animation:none}}

.correspondence-pdf-viewer{margin-top:24px}.correspondence-pdf-viewer iframe{display:block;width:100%;height:75vh;border:1px solid var(--line);border-radius:8px;background:#fff}.mail-action-notice{margin-top:24px;margin-bottom:0}

.correspondence-pdf-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.correspondence-pdf-heading h2{margin:0}.mail-send-progress{margin-top:18px;padding:18px;border:2px solid var(--accent);border-radius:10px;background:#eafafa;color:var(--ink)}.mail-send-progress:not([hidden]){display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mail-send-progress span:last-child{width:100%;padding-left:30px;color:var(--muted)}.mail-progress-spinner{display:inline-block;width:18px;height:18px;flex:0 0 18px;border:3px solid currentColor;border-right-color:transparent;border-radius:50%;animation:mail-progress-spin .75s linear infinite}@keyframes mail-progress-spin{to{transform:rotate(360deg)}}.correspondent-mail-actions button:disabled{cursor:not-allowed;opacity:.58;filter:grayscale(.4)}
.patient-correspondence-card>summary{align-items:center}.patient-correspondence-card .correspondent-mail-history>p{margin:.6rem 0}
.choice-card-field{border:0;padding:0;margin:0}.choice-card-field legend{margin-bottom:8px;font-weight:800}.choice-card-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.choice-card-group-wide{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-card{display:flex;align-items:center;gap:10px;padding:14px 16px;border:2px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-weight:700}.choice-card:has(input:checked){border-color:var(--accent);background:#eafafa;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.choice-card input{width:20px;height:20px;margin:0;accent-color:var(--accent)}.prominent-checkbox{display:flex;align-items:flex-start;gap:12px;padding:16px;border:2px solid var(--accent);border-radius:10px;background:#eafafa}.prominent-checkbox input{width:22px;height:22px;flex:0 0 22px;margin-top:2px;accent-color:var(--accent)}.prominent-checkbox span{display:grid;gap:3px}.prominent-checkbox small{color:var(--muted);font-weight:500}.correspondence-pdf-viewer-top{margin-top:0;margin-bottom:24px}@media(max-width:600px){.choice-card-group,.choice-card-group-wide{grid-template-columns:1fr}}
.correspondence-document-modal {
  width: min(1100px, 96vw);
  height: min(92vh, 1000px);
  padding: 0;
  border: 0;
  border-radius: 14px;
  box-shadow: 0 24px 70px rgba(15, 23, 42, .35);
}
.correspondence-document-modal::backdrop { background: rgba(15, 23, 42, .55); }
.correspondence-document-modal > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border);
}
.correspondence-document-modal h2 { margin: 0; }
.correspondence-document-actions { display: flex; align-items: center; gap: .75rem; }
.correspondence-document-close { font-size: 2rem; line-height: 1; text-decoration: none; }
.correspondence-delivery-history { padding: .75rem 1.25rem; background: #f8fafc; }
.correspondence-delivery-history p { margin: .25rem 0; }
.correspondence-document-modal iframe { width: 100%; height: calc(100% - 150px); border: 0; }


.feature-new-badge {
  display: inline-flex;
  align-items: center;
  margin-left: .35rem;
  padding: .08rem .4rem;
  border: 1px solid color-mix(in srgb, var(--accent, #b42318) 35%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent, #b42318) 9%, transparent);
  color: var(--accent, #9f1d16);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.25;
  text-transform: uppercase;
  vertical-align: middle;
}
.pending-mail-resolution {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem 1rem;
}
.pending-mail-resolution p { margin: 0; }
.pending-mail-resolution form {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.button-small {
  min-height: auto;
  padding: .35rem .65rem;
  font-size: .82rem;
}


/* Repères de périmètre visibles uniquement sur le tableau de bord ADMIN. */
.dashboard-action-admin-only {
  border-color: #c4b5fd;
  background: linear-gradient(145deg, #faf8ff, #f2edff);
}
.dashboard-action-admin-only .dashboard-action-icon {
  background: #ede9fe;
  color: #6d28d9;
}
.dashboard-action-secr-shared {
  border-color: #99d8cf;
  background: linear-gradient(145deg, #f5fffd, #e8f8f5);
}
.dashboard-action-secr-shared .dashboard-action-icon {
  background: #d8f3ee;
  color: #087f6a;
}
.medical-information-missing-alert-above {
  grid-column: 1 / -1;
  margin: 0;
}
.patient-medical-overview > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  font-size: 1.2rem;
  font-weight: 700;
  list-style: none;
}
.patient-medical-overview > summary::-webkit-details-marker { display: none; }
.patient-medical-overview-content { margin-top: 1rem; }
.medical-overview-danger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: .35rem;
  font-size: 1.05em;
  filter: saturate(1.15);
}


.medical-danger-count {
  display: inline-flex;
  align-items: center;
  margin-left: .3rem;
  padding: .08rem .42rem;
  border-radius: 999px;
  color: #fff;
  font-size: .68rem;
  font-weight: 750;
  line-height: 1.35;
  vertical-align: middle;
}
.medical-danger-count-important { background: #d97706; }
.medical-danger-count-critical { background: #b42318; }
.medical-negative-disabled {
  color: #667085;
  cursor: not-allowed;
}
.medical-negative-disabled input { accent-color: #98a2b3; }


/* Documents intégrés et modèles d’ordonnances */
.document-modal-card{position:relative}
#correspondent-association-dialog .document-modal-heading{padding-right:3.5rem}
#correspondent-association-dialog .document-modal-close{position:absolute;top:.8rem;right:.8rem;display:grid;place-items:center;width:2.35rem;height:2.35rem;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink);font-size:1.6rem;line-height:1;box-shadow:0 4px 14px rgba(15,23,42,.12)}
#correspondent-association-dialog .document-modal-close:hover,#correspondent-association-dialog .document-modal-close:focus-visible{border-color:var(--accent);background:var(--accent);color:#fff}
.patient-document-viewer-modal{position:fixed;inset:0;z-index:12000;margin:auto;transform:none;overflow:hidden}
.patient-document-viewer-modal>header{position:sticky;top:0;z-index:2;background:#fff}
.patient-document-image-viewer{display:grid;height:calc(100% - 74px);place-items:center;overflow:auto;padding:1rem;background:#eef2f4}
.patient-document-image-viewer img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 3px 18px rgba(15,23,42,.16)}
.patient-document-unsupported{margin:1.25rem;padding:1.5rem;border:2px dashed var(--line);border-radius:12px;background:#f8fafc;text-align:center}
.patient-document-unsupported p{margin:.6rem 0 0;color:var(--muted)}
.prescription-template-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.prescription-template-heading h2,.prescription-template-heading p{margin:.2rem 0}
.prescription-template-form{display:grid;gap:1.25rem}
.prescription-template-metadata{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,1fr);align-items:end;gap:1.25rem}
.prescription-template-preview p{display:grid;gap:.25rem;margin:0;padding:.65rem 0;border-bottom:1px solid var(--line)}
.prescription-template-preview p:last-child{border-bottom:0}
.prescription-template-preview small{color:var(--muted)}
.beta-badge{display:inline-flex;align-items:center;margin-left:.35rem;padding:.12rem .48rem;border:1px solid #d68b21;border-radius:999px;background:#fff3d6;color:#7a4600;font-size:.68rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;vertical-align:middle}
.beta-badge-heading{position:relative;top:-.15em;font-size:.7rem}
.beta-badge-on-primary{border-color:#ffe0a3;background:#fff;color:#754000}
.word-import-introduction{max-width:820px}.word-import-introduction h2{margin-bottom:.5rem}.word-import-form{display:grid;gap:1rem;margin-top:1.4rem}.word-import-form label{display:grid;gap:.55rem;font-weight:800}.word-import-form .actions{margin-top:.25rem}.word-import-review{border-left:5px solid #d68b21;background:#fffaf0}.word-import-review p{margin:.4rem 0 0}.prescription-imported-name{grid-column:1/-1}
@media(max-width:700px){.prescription-template-heading{align-items:stretch;flex-direction:column}.prescription-template-metadata{grid-template-columns:1fr}.correspondence-document-modal>header{align-items:flex-start}.correspondence-document-actions{flex-wrap:wrap;justify-content:flex-end}}
