:root{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#173a39;background:#f3f6f3;font-size:16px;line-height:1.5;--brand:#176b60;--line:#d7e3de}*{box-sizing:border-box}body{margin:0}.top{padding:16px max(20px,calc((100vw - 1220px)/2));display:flex;justify-content:space-between;gap:20px;align-items:center;background:white;border-bottom:1px solid var(--line);font-size:13px;letter-spacing:.03em}.top a{color:var(--brand);text-decoration:none}main{max-width:1260px;margin:auto;padding:32px 20px 60px}h1{font-size:36px;line-height:1.1;margin:8px 0}h2{font-size:21px;margin:8px 0 16px}h3{font-size:17px}.eyebrow{font-size:12px;letter-spacing:.13em;font-weight:750;color:var(--brand);margin:0}.muted,footer{color:#586e69;font-size:14px}.heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;margin:18px 0}.toolbar{display:flex;gap:14px;flex-wrap:wrap;align-items:end}.toolbar>label{flex:1;min-width:130px}label{display:block;font-size:14px;font-weight:600;margin:10px 0}.check{display:flex;align-items:center;gap:10px}.check input{width:auto}input,select,textarea{display:block;width:100%;font:inherit;color:inherit;padding:11px;border:1px solid #9eafa9;border-radius:7px;background:white;margin-top:6px;min-height:44px}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid #61b6a9;outline-offset:2px}button{font:inherit;font-weight:600;border:1px solid var(--brand);border-radius:8px;padding:10px 16px;min-height:44px;background:var(--brand);color:white;cursor:pointer}button:disabled{opacity:.5;cursor:wait}.secondary{background:white;color:var(--brand)}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.tabs{display:flex;gap:6px;margin:24px 0 8px;border-bottom:1px solid var(--line);padding-bottom:10px}.tabs button{border:0;background:transparent;color:#47615a}.tabs .selected{background:#dcefe8;color:#144b40}.warning,.error{padding:12px;border-radius:8px;background:#fff0d3;color:#745219}.error{background:#ffe6e3;color:#8a2924}#notice:empty,#form-notice:empty{display:none}.scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}th,td{border-bottom:1px solid var(--line);padding:12px;vertical-align:top}th{font-weight:650;color:#536961;background:#f7faf8}.week{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:10px;overflow:auto;padding-bottom:12px}.day-column{background:white;border:1px solid var(--line);border-radius:12px;padding:12px}.slot{border-top:1px solid var(--line);padding:12px 0}.slot-time{display:flex;justify-content:space-between;gap:8px;font-size:14px}.slot-time button{min-height:30px;padding:3px 8px;font-size:12px}.appointment{border-left:3px solid #369280;padding:10px;margin:9px 0;background:#f1f7f4;border-radius:5px;overflow-wrap:anywhere}.appointment.cancelled{opacity:.65;border-color:#8e9a96}.appointment p{margin:3px 0}.appointment .actions{margin-top:10px;gap:5px}.appointment button{font-size:12px;min-height:34px;padding:5px 8px}.badge{display:inline-block;border-radius:20px;background:#e2ebe6;padding:2px 8px;font-size:12px}.blocked{font-size:13px;color:#825728;background:#fff4df;padding:7px;border-radius:5px}dialog{border:1px solid var(--line);border-radius:16px;padding:24px;max-width:760px;width:calc(100% - 28px);max-height:90vh;overflow:auto;box-shadow:0 20px 100px #18392d35}dialog::backdrop{background:#173a3960}dialog h2{margin:0 0 12px}dialog textarea{resize:vertical}#patient-results button{display:block;width:100%;text-align:left;margin:4px 0;background:#edf5ef;color:#173a39;border:0}summary{cursor:pointer;font-weight:600}.booking main{max-width:600px;padding-top:36px}.booking .top{justify-content:center}.booking h1{font-size:34px}.booking button{min-height:48px}.booking .card{padding:24px}.booking footer{margin-top:30px;text-align:center}a{color:var(--brand)}[hidden]{display:none!important}@media(max-width:650px){main{padding:24px 14px}.heading{align-items:start;flex-wrap:wrap}h1{font-size:30px}.tabs{overflow:auto}.tabs button{white-space:nowrap;padding:10px}.card{padding:16px}.toolbar>label{min-width:130px}.top span{font-size:11px}.week{grid-template-columns:repeat(5,230px)}.actions{gap:7px}dialog{padding:18px}.booking .card{padding:18px}}@media print{body{background:white;color:black}.top,.tabs,.toolbar,details,button,#notice,#calendar-warning,.eyebrow,.heading>button{display:none!important}main{padding:0;max-width:none}.heading p{display:none}.card,.day-column{border:0;padding:0}.appointment{break-inside:avoid;background:none;margin:2px 0;padding:5px}.slot{padding:3px 0}#agenda-title{font-size:20px}.muted{font-size:12px}dialog{display:none}footer{display:none}}
@media(max-width:650px){.booking .toolbar{display:block}}

.week{grid-template-columns:repeat(7,minmax(180px,1fr))}.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.month-weekday{text-align:center;font-size:13px;font-weight:700}.month-date{min-width:0;min-height:85px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:5px}.month-date strong{font-size:20px}.month-date span{font-size:12px;font-weight:400}.month-date.is-today{border:2px solid var(--brand);background:#e1f2eb}#link-patient-fields{max-width:520px}@media(max-width:650px){.month-calendar{gap:4px}.month-date{min-height:64px;padding:6px 2px}.month-date strong{font-size:16px}.month-date span{font-size:10px}.month-weekday{font-size:11px}}

.agenda-admin main{padding-top:18px}.agenda-admin h1{font-size:30px}.agenda-admin .tabs{margin:14px 0 6px}.agenda-admin .card{margin:10px 0;padding:14px}.agenda-admin .heading p{margin:5px 0}.agenda-admin #agenda-title{font-size:17px;margin:12px 0}.agenda-admin .week{grid-template-columns:repeat(5,minmax(160px,1fr));gap:7px}.agenda-admin .day-column{padding:7px}.agenda-admin .day-column h3{font-size:13px;margin:4px 0 8px}.agenda-admin .slot{padding:3px 0;min-height:34px}.agenda-admin .slot-time{align-items:center;font-size:12px;gap:4px}.agenda-admin .slot-time .muted{font-size:11px;margin-left:auto}.agenda-admin .slot-time .slot-add{font-size:23px;line-height:1;font-weight:800;min-height:28px;width:30px;padding:0;border:0;background:transparent;color:var(--brand)}.agenda-admin .slot-add:hover{background:#e1f2eb}.agenda-admin .appointment{margin:3px 0;padding:4px 6px}.agenda-admin .appointment .appointment-open{display:block;text-align:left;width:100%;background:none;border:0;color:#173a39;font-size:12px;font-weight:700;padding:2px 0;min-height:24px}.agenda-admin .appointment .muted{font-size:11px;margin:1px 0}.agenda-admin .appointment>button:not(.appointment-open){font-size:10px;padding:2px 4px;min-height:24px}.agenda-admin .blocked{font-size:11px;margin:2px 0;padding:3px}.agenda-admin .month-calendar{grid-template-columns:repeat(5,minmax(0,1fr))}.danger{background:#a33838;border-color:#a33838;color:white}.agenda-admin #grid>.day-column .slot{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.agenda-admin #grid>.day-column .slot-time{min-width:100px}.agenda-admin #grid>.day-column .appointment{min-width:180px}.agenda-admin dialog .actions{margin-top:12px}
.agenda-admin .top{padding-top:10px;padding-bottom:10px}.agenda-admin main{padding-top:12px;padding-bottom:24px}.agenda-admin .heading>.eyebrow,.agenda-admin .heading .eyebrow{display:none}.agenda-admin .heading h1{font-size:27px;margin:4px 0}.agenda-admin .heading .muted{font-size:12px}.agenda-admin .tabs{margin-top:8px;padding-bottom:6px}.agenda-admin .tabs button{min-height:34px;padding:5px 12px}.agenda-admin #agenda-panel>.card{padding:8px 12px;margin:6px 0}.agenda-admin #agenda-panel .toolbar label{font-size:12px;margin:4px 0}.agenda-admin #agenda-panel .toolbar input,.agenda-admin #agenda-panel .toolbar select,.agenda-admin #agenda-panel .toolbar button{min-height:34px;padding:5px 8px;font-size:13px}.agenda-admin .week .slot:has(>.blocked){display:flex;align-items:center;gap:6px;flex-wrap:wrap}.agenda-admin .week .slot:has(>.blocked)>.slot-time{flex:0 0 auto}.agenda-admin .week .slot>.blocked{flex:1;margin:0;line-height:1.1;font-size:10px}.agenda-admin .week .slot:has(>.blocked)>.appointment{flex-basis:100%}
