:root{--ink:#16333d;--muted:#60747b;--teal:#0d6d70;--teal-dark:#085557;--teal-soft:#e8f4f2;--line:#dbe5e6;--paper:#fff;--canvas:#f4f7f7;--amber:#8b5b0a;--amber-soft:#fff4d8;--red:#9d3535;--red-soft:#fff0ee;--green:#146b50;--shadow:0 8px 24px rgba(16,48,57,.055);font-family:Inter,"Segoe UI",Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--canvas);font-size:16px;line-height:1.5}a{color:#075c67;text-decoration:none}a:hover{text-decoration:underline;color:#034950}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px} :focus-visible{outline:3px solid #bd6500!important;box-shadow:0 0 0 2px white} .topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:36px;padding:0 max(24px,calc((100% - 1440px)/2));position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);font-weight:750;font-size:16px;line-height:1.15;min-width:215px}.brand:hover{text-decoration:none}.brand small{display:block;font-size:11px;color:var(--muted);font-weight:500;margin-top:5px}.brand-mark{width:39px;height:39px;border-radius:12px;background:#dff1ef;color:var(--teal);display:grid;place-items:center;font-size:22px;font-weight:800}.topbar nav{display:flex;align-self:stretch;align-items:center;gap:6px;flex:1}.topbar nav a{color:#445c63;padding:12px 15px;border-radius:9px;font-weight:600}.topbar nav a:hover,.topbar nav a.active{background:#eaf4f3;color:#075f62;text-decoration:none}.account{display:flex;align-items:center;gap:16px;color:#435b62;font-size:14px}.account form{margin:0}.page{max-width:1440px;padding:34px 32px 65px;margin:0 auto;min-height:calc(100vh - 130px)}.footer{border-top:1px solid var(--line);padding:18px 32px;text-align:center;color:#718187;font-size:12px;background:#fff}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin:4px 0 25px}.page-heading h1{font-size:34px;line-height:1.15;letter-spacing:-.03em;margin:5px 0 4px;font-weight:740}.eyebrow{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:750;color:#0d7775}.muted{color:var(--muted);margin:0}.actions{display:flex;gap:10px;align-items:center}.button{border:1px solid transparent;border-radius:8px;padding:10px 16px;min-height:42px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;text-decoration:none;transition:background .14s ease,border-color .14s ease}.button:hover{text-decoration:none}.button.primary{background:var(--teal);color:white}.button.primary:hover{background:var(--teal-dark)}.button.secondary{background:#fff;color:#26454d;border-color:#cbd9dc}.button.secondary:hover{background:#f2f8f8;border-color:#9fb7ba}.button.full{width:100%;margin-top:20px}.button.tiny{min-height:32px;padding:5px 10px;font-size:13px}.link-button{background:none;border:0;padding:0;color:#0b686b;font-weight:650;cursor:pointer}.link-button:hover{text-decoration:underline}.alerts{display:grid;gap:8px;margin-bottom:18px}.alert{padding:12px 16px;border-radius:8px;border:1px solid #c8dedb;background:#eaf7f4}.alert.error{color:#8a2c2c;background:var(--red-soft);border-color:#f0c8c1}.alert.warning{background:var(--amber-soft);border-color:#eed9a5}.panel{background:var(--paper);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:22px;margin-bottom:20px;min-width:0}.panel h2{font-size:18px;margin:0;font-weight:720;letter-spacing:-.015em}.panel h3{font-size:14px;margin:15px 0 5px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-head .muted{font-size:13px;margin-top:2px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,1fr);gap:0 20px}.panel.wide{grid-row:span 2}.search-panel{padding:13px 17px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);margin-bottom:21px}.search-form{display:flex;align-items:center;gap:12px}.search-form>span{font-size:26px;color:#507177}.search-form input{flex:1;border:0!important;outline:0!important;box-shadow:none!important;padding:8px 0;min-width:100px;font-size:16px}.directory-search{padding:3px 1px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:#63777c;font-size:11px;text-transform:uppercase;letter-spacing:.075em;padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap}td{padding:13px 12px;border-bottom:1px solid #edf1f1;vertical-align:middle}tbody tr:last-child td{border-bottom:0}td strong,td small{display:block}td small{font-size:12px;color:#6c7f84;margin-top:3px}.status{display:inline-flex;align-items:center;border-radius:999px;font-size:12px;font-weight:700;padding:4px 9px;background:#edf2f2;color:#445c62;white-space:nowrap}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;margin-right:7px}.status-booked,.status-to_contact,.status-pending,.status-draft,.status-queued{background:#e8effc;color:#31568c}.status-confirmed,.status-arrived,.status-clean,.status-final,.status-released,.status-completed,.status-active,.status-delivered{background:#e6f5ed;color:#176448}.status-in_progress,.status-contacted,.status-call_again,.status-accepted{background:#e5f5f4;color:#116a6c}.status-cancelled,.status-no_show,.status-failed,.status-quarantined,.status-unknown,.status-declined,.status-unable{background:#fff0ed;color:#9b3e32}.status-closed,.status-inactive,.status-booked{background:#edf1f2;color:#52666b}.badge{font-size:11px;border-radius:20px;padding:4px 9px;font-weight:700}.badge.danger{background:var(--red-soft);color:var(--red)}.empty-state{text-align:center;padding:48px 12px;color:var(--muted)}.empty-state h3{color:var(--ink);margin:10px 0 3px}.empty-state p{margin:0}.empty-state.compact{padding:22px}.empty-icon{height:42px;width:42px;display:inline-grid;place-items:center;border-radius:14px;background:#eaf3f3;color:var(--teal);font-size:26px}.empty-inline{padding:13px 0;margin:0;color:var(--muted);font-size:14px}.list-row{padding:12px 0;border-top:1px solid #edf1f1;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--ink)}.list-row:hover{text-decoration:none}.list-row span:first-child{min-width:0}.list-row strong,.list-row small{display:block}.list-row small{font-size:12px;color:var(--muted);margin-top:2px;white-space:normal}.arrow{font-size:20px;color:var(--teal)}.attention{border-color:#eadfbf}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.result-count{font-size:13px;color:var(--muted);margin:14px 0}.patient-banner{display:flex;align-items:center;gap:16px;padding:23px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);margin:0 0 19px}.avatar{width:54px;height:54px;border-radius:16px;background:#dcefed;color:#0b686b;font-weight:800;font-size:18px;display:grid;place-items:center;flex:none}.patient-title{flex:1;min-width:180px}.patient-title h1{font-size:27px;margin:3px 0;letter-spacing:-.025em}.patient-title p{font-size:14px;color:var(--muted);margin:0}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow:auto}.tabs a{padding:11px 16px;white-space:nowrap;color:#566d73;font-weight:650;border-bottom:3px solid transparent}.tabs a.selected{color:#075f62;border-color:var(--teal)}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.detail-list{display:grid;grid-template-columns:minmax(130px,.75fr) 1.4fr;gap:12px 15px;margin:16px 0 2px;font-size:14px}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;white-space:pre-wrap}.clinical-block{font-size:14px}.clinical-block strong{display:block;color:#455e65;margin-top:10px}.clinical-block p{margin:3px 0 12px}.restricted-note{border-radius:8px;padding:14px;background:#f3f6f6;color:#66797e;font-size:14px}.weight-card{border-top:1px solid var(--line);padding-top:15px;margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:10px}.weight-card strong,.weight-card span{display:block}.next-appointment{display:flex;gap:12px;align-items:center;padding:7px 0}.date-tile{width:52px;height:56px;background:#edf6f4;border-radius:9px;display:grid;align-content:center;justify-items:center;color:#176b6c}.date-tile strong{font-size:20px;line-height:1.1}.date-tile span{font-size:11px;text-transform:uppercase}.next-appointment p{font-size:13px;color:var(--muted);margin:1px 0 5px}.action-panel{display:flex;flex-direction:column}.action-panel h2{margin-bottom:8px}.action-link{padding:11px 0;border-top:1px solid #edf1f1;font-weight:650}.role-tag{background:#e7f1f3;color:#456871;font-size:10px;text-transform:uppercase;letter-spacing:.08em;border-radius:20px;padding:4px 8px}.form-panel{max-width:960px;margin-left:auto;margin-right:auto;padding:28px}.form-section{padding:2px 0 22px;border-bottom:1px solid #edf1f1;margin-bottom:22px}.form-section h2{margin-bottom:5px}.form-section>.muted{font-size:14px;margin-bottom:15px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;margin-top:15px}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,label{font-weight:640;font-size:14px;color:#314e56}.required{color:#a74432;margin-left:4px}.form-control{width:100%;background:#fff;border:1px solid #cbd8da;border-radius:7px;padding:10px 11px;color:#183a43;min-height:42px}.form-control:focus{border-color:#0b7778;box-shadow:0 0 0 3px rgba(13,109,112,.13)}textarea.form-control{resize:vertical;min-height:80px}.help-text{font-size:12px;color:var(--muted);font-weight:400}.errorlist{margin:3px 0 0;padding:0;list-style:none;color:var(--red);font-size:13px}.error-text{display:block;color:var(--red);font-size:12px}.check-field{flex-direction:row;align-items:center;gap:9px}.check-field label{order:2}.check-field input,.check-row input{width:18px;height:18px;accent-color:var(--teal)}.check-row{display:flex;align-items:center;gap:9px;margin:12px 0}.check-row label{font-size:14px}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:17px}.notice{padding:12px 15px;background:#edf7f5;border-left:3px solid #42948b;border-radius:5px;color:#395e61;font-size:13px;margin:12px 0 17px}.back-link{display:inline-block;font-weight:620;margin:0 0 8px;font-size:14px}.calendar-panel{padding:20px}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:19px}.calendar-tabs{display:flex;border:1px solid var(--line);border-radius:9px;padding:3px;gap:1px}.calendar-tabs a{padding:7px 15px;border-radius:6px;color:#536b70;font-size:14px;font-weight:650}.calendar-tabs a.selected{background:var(--teal);color:white}.calendar-nav{display:flex;align-items:center;gap:14px}.calendar-nav>a:not(.button){font-size:21px;font-weight:700}.calendar-nav strong{min-width:130px;text-align:center}.day-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:6px}.day-heading h2{font-size:19px;margin:0}.day-heading p{font-size:13px}.day-grid{max-width:1000px}.time-slot{display:grid;grid-template-columns:75px 1fr;min-height:58px;border-bottom:1px solid #edf1f1}.time-slot time{padding:14px 13px 0 0;text-align:right;color:#5b7278;font-size:13px;font-weight:650;font-variant-numeric:tabular-nums}.slot-content{border-left:1px solid #d7e1e2;padding:4px 8px;position:relative}.slot-content:before{content:"";position:absolute;left:-4px;top:17px;width:7px;height:7px;border-radius:50%;background:#b6cdce}.slot-open{display:block;padding:10px 12px;border:1px dashed transparent;border-radius:7px;color:#628085;font-size:13px}.slot-open:hover{border-color:#9ebec0;background:#f1f8f7;text-decoration:none;color:#075e61}.calendar-appointment{background:#e8f5f3;border-left:3px solid #278985;border-radius:6px;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:15px}.calendar-appointment>a{display:block;flex:1}.calendar-appointment strong,.calendar-appointment span,.calendar-appointment small{display:block}.calendar-appointment strong{font-size:14px}.calendar-appointment span,.calendar-appointment small{font-size:12px;color:#506a70}.status-actions{display:flex;gap:8px}.status-actions form{display:inline}.tiny-link{border:0;background:none;text-decoration:underline;color:#145d62;font-size:12px;cursor:pointer}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.weekday{text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.month-cell{min-height:85px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.month-cell.outside{background:#f8fafa}.day-number{display:block;font-weight:700}.month-hint{font-size:11px;color:#7b8d91}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.week-day{border:1px solid var(--line);border-radius:9px;padding:12px 8px;display:grid;justify-items:center;background:#fff}.week-day span,.week-day small{color:var(--muted);font-size:12px}.week-day strong{font-size:24px}.week-list{margin-top:18px}.week-appointment{display:grid;grid-template-columns:130px 1fr 1fr 80px;gap:12px;align-items:center;padding:13px;border-bottom:1px solid var(--line)}.week-appointment span:first-child{color:var(--muted);font-size:13px}.login-card{max-width:420px;margin:75px auto;background:#fff;border:1px solid var(--line);border-radius:15px;padding:32px;box-shadow:var(--shadow)}.login-card h1{font-size:27px;margin:5px 0}.login-card form{margin-top:24px}.login-card label{display:block;margin:14px 0 6px}.login-card input{width:100%}.public-page{max-width:850px}.public-card{margin:35px auto}.privacy-note{color:#73858a;text-align:center;font-size:12px;margin:20px auto;max-width:600px}.public-header{padding:27px 3px 14px}.public-header h1{font-size:30px;margin:4px 0}.public-header p{color:var(--muted)}.public-documents{padding:8px 22px}.shared-document{display:flex;align-items:center;gap:15px;padding:16px 0;border-bottom:1px solid #edf1f1}.shared-document:last-child{border:0}.shared-document>div:nth-child(2){flex:1}.shared-document strong,.shared-document small{display:block}.shared-document small{color:var(--muted);font-size:13px;margin-top:3px}.file-icon{width:43px;height:48px;border-radius:5px;background:#f9e8e5;color:#9c4538;display:grid;place-items:center;font-size:11px;font-weight:800}.copy-row{display:flex;gap:9px;margin:7px 0}.clean-list{padding-left:20px}.clean-list li{padding:6px}.document-checklist{display:grid;gap:8px}.document-choice{display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:12px;border-radius:8px;cursor:pointer}.document-choice input{width:18px;height:18px;accent-color:var(--teal)}.drop-zone{padding:25px;border:1px dashed #a8c1c2;border-radius:10px;text-align:center;background:#f9fcfc}.drop-icon{font-size:27px;color:var(--teal)}.drop-zone strong{display:block}.drop-zone input[type=file]{display:block;max-width:100%;margin:15px auto}.selected-files{display:grid;gap:7px;text-align:left;margin:12px auto 0;max-width:700px}.upload-row{display:flex;align-items:center;gap:10px;background:white;border:1px solid var(--line);border-radius:7px;padding:8px 10px;font-size:13px}.upload-row span:first-child{flex:1;overflow-wrap:anywhere}.upload-row progress{width:120px;height:10px;accent-color:var(--teal)}.upload-row .upload-state{font-size:12px;color:var(--muted);min-width:90px}.result-panel .result-text{padding:16px;background:#fbfcfc;border:1px solid #edf1f1;border-radius:8px;line-height:1.8}.result-panel .form-grid>div{padding:0 10px}.result-panel p{white-space:pre-wrap}.notice+.form-section{margin-top:19px}.print-actions{display:flex;justify-content:flex-end;gap:10px;margin-bottom:18px}.print-sheet{max-width:940px;margin:0 auto;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);padding:48px;min-height:800px}.print-header{display:flex;justify-content:space-between;border-bottom:2px solid #275e63;padding-bottom:12px;color:#183a43;font-size:15px}.print-sheet h1{font-size:28px;margin:23px 0 5px}.print-sheet h2{font-size:17px;border-bottom:1px solid var(--line);padding-bottom:6px;margin-top:26px}.print-sheet table{margin-top:10px}.print-sheet td,.print-sheet th{padding:9px}.print-sheet p{white-space:pre-wrap}.print-footer{margin-top:45px;border-top:1px solid var(--line);padding-top:9px;color:#667b80;font-size:11px}.inline-form{display:inline}.panel-foot{border-top:1px solid var(--line);margin-top:10px;padding-top:15px}.week-day:hover,.document-choice:hover{background:#f5faf9;text-decoration:none}
@media(max-width:1050px){.topbar{gap:14px;padding:0 20px}.brand{min-width:auto}.brand small{display:none}.topbar nav a{padding:10px}.page{padding:26px 22px}.patient-banner{flex-wrap:wrap}.patient-banner .actions{width:100%;justify-content:flex-end}.dashboard-grid{grid-template-columns:1fr}.panel.wide{grid-row:auto}.profile-grid{gap:0 12px}}
@media(max-width:700px){body{font-size:15px}.topbar{height:auto;min-height:68px;flex-wrap:wrap;gap:2px;padding:10px 14px}.topbar nav{order:3;overflow:auto;width:100%;flex-basis:100%;gap:0}.topbar nav a{font-size:13px;padding:8px 10px}.account{margin-left:auto;font-size:12px}.brand-mark{width:34px;height:34px}.page{padding:22px 13px 45px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:29px}.actions{flex-wrap:wrap;width:100%}.actions .button{flex:1}.panel{padding:17px 14px}.form-panel{padding:20px 15px}.form-grid,.profile-grid{grid-template-columns:1fr}.detail-list{grid-template-columns:1fr;gap:3px}.detail-list dd{margin-bottom:10px}.patient-banner{padding:16px;gap:11px}.patient-title{min-width:calc(100% - 72px)}.patient-title h1{font-size:22px}.patient-banner .actions{justify-content:stretch}.patient-banner .actions .button{font-size:12px;padding:8px}.calendar-toolbar{align-items:flex-start;flex-direction:column}.calendar-nav{width:100%;justify-content:space-between}.calendar-appointment{align-items:flex-start;flex-direction:column}.status-actions{align-self:flex-end}.time-slot{grid-template-columns:52px 1fr}.time-slot time{font-size:12px;padding-right:7px}.week-grid{gap:3px}.week-day{padding:8px 3px}.week-day small{display:none}.week-appointment{grid-template-columns:1fr 1fr;gap:4px 10px}.month-cell{min-height:55px;padding:5px}.month-hint{display:none}.weekday{font-size:9px;padding:7px 1px}.copy-row{flex-direction:column}.copy-row .button{width:100%}.print-sheet{padding:23px 15px;min-height:0}.print-sheet table{font-size:11px}.print-sheet td,.print-sheet th{padding:5px}.account span{max-width:85px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media print{body{background:#fff;font-size:11pt}.topbar,.footer,.no-print,.alerts{display:none!important}.page{max-width:none;padding:0;margin:0;min-height:auto}.print-sheet{max-width:none;border:0;box-shadow:none;padding:0;min-height:0}.print-header{break-inside:avoid}.print-sheet table{break-inside:auto}.print-sheet tr{break-inside:avoid;break-after:auto}.print-sheet th{background:#eee!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-footer{position:fixed;bottom:0}.print-sheet h2{break-after:avoid}}

.drop-zone.dragging{border-color:#0b7778;background:#eff9f8;box-shadow:inset 0 0 0 2px rgba(13,109,112,.12)}.quick-upload{margin-top:16px}.recent-documents{margin-top:5px}