:root{--bg:#eef4f1;--bg-accent:#d9ebe3;--panel:#ffffffeb;--text:#16302b;--muted:#5b736c;--border:#c5d7cf;--brand:#0f3d3e;--brand-soft:#1b5b5c;--primary:#0f766e;--primary-strong:#0b5f59;--danger:#b42318;--saturday:#e8f1ff;--saturday-edge:#3b82f6;--sunday:#fff1e8;--sunday-edge:#ea580c;--holiday:#f3e8ff;--holiday-edge:#7c3aed;--shadow:0 12px 30px #0f3d3e1a;--radius:14px;color:var(--text);background:radial-gradient(circle at top left, #ffffffb3, transparent 35%), linear-gradient(160deg, var(--bg), var(--bg-accent));background-attachment:fixed;font-family:Manrope,sans-serif}*{box-sizing:border-box}body{min-height:100vh;margin:0}button,input,select,textarea,a.button-link,a.ghost-link{font:inherit}button,a.button-link{cursor:pointer;border:1px solid var(--border);color:var(--text);background:#fff;border-radius:999px;justify-content:center;align-items:center;gap:.35rem;padding:.55rem .95rem;text-decoration:none;display:inline-flex}button.primary,a.button-link.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}button.primary:hover{background:var(--primary-strong)}button.danger{color:var(--danger);background:#fff5f4;border-color:#f3b6b0;font-weight:700}button.danger:hover{background:#fee4e2}button.secondary{background:0 0}.brand-mark,.brand-link{letter-spacing:-.02em;font-family:Fraunces,Georgia,serif;font-weight:700}.brand-mark{color:var(--brand-soft);margin:0 0 .35rem;font-size:1.1rem}.brand-link{color:inherit;font-size:1.15rem;text-decoration:none}.auth-card{background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:min(440px,100% - 2rem);box-shadow:var(--shadow);border:1px solid #fff9;border-radius:22px;margin:10vh auto;padding:2rem}.auth-card h1,.page-intro h1,.toolbar h1,.modal h2{letter-spacing:-.03em;font-family:Fraunces,Georgia,serif}.auth-card form,.modal form{gap:1rem;display:grid}label{gap:.35rem;font-size:.92rem;font-weight:700;display:grid}input,select,textarea{border:1px solid var(--border);background:#fff;border-radius:12px;padding:.7rem .8rem}textarea{resize:vertical;min-height:92px}.message,.sync-status,.privacy-note,.patients-count,.phone-preview{color:var(--muted);font-size:.92rem}.topbar{background:linear-gradient(120deg, var(--brand), var(--brand-soft));color:#fff;box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:1rem;padding:.95rem max(1rem,50vw - 720px);display:flex}.brand-block,.topbar-actions,.toolbar,.toolbar-actions,.filters,.view-switcher,.field-with-action,.legend,.page-intro,.row-actions{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.patient-picker{gap:.45rem;width:100%;display:grid}.patient-picker-controls{align-items:center;gap:.5rem;display:flex}.patient-picker-controls input[type=search]{flex:1;min-width:0}.patient-search-results{border:1px solid var(--border);max-height:220px;box-shadow:var(--shadow);background:#fff;border-radius:12px;overflow:auto}.patient-search-item{border:0;border-bottom:1px solid var(--border);text-align:left;background:#fff;border-radius:0;gap:.15rem;width:100%;padding:.7rem .8rem;display:grid}.patient-search-item:last-child{border-bottom:0}.patient-search-item:hover,.patient-search-item.is-active{background:#eef8f5}.patient-search-item strong{font-weight:800}.patient-search-item span{color:var(--muted);font-size:.82rem}.patient-search-empty{color:var(--muted);gap:.55rem;padding:.8rem;font-size:.9rem;display:grid}.patient-search-empty button{justify-self:start}.selected-patient-label{color:var(--brand-soft);margin:0;font-size:.9rem;font-weight:700}.role-badge,.page-chip{background:#ffffff1f;border:1px solid #ffffff59;border-radius:999px;margin-left:.15rem;padding:.2rem .55rem;font-size:.75rem}.ghost-link{color:#fff;border:1px solid #ffffff59;border-radius:999px;padding:.45rem .85rem;text-decoration:none}.topbar button{color:#fff;background:#ffffff1a;border-color:#ffffff40}.toolbar,.filters,.sync-status,.calendar,.legend,.page-intro,.patients-table-wrap,.patients-count{width:min(1440px,100% - 2rem);margin-left:auto;margin-right:auto}.toolbar{justify-content:space-between;margin-top:1.1rem}.toolbar h1,.page-intro h1{margin:0;font-size:1.55rem}.page-intro{justify-content:space-between;align-items:end;margin-top:1.25rem}.page-intro p{color:var(--muted);margin:.35rem 0 0}.legend{margin-top:.85rem}.legend-item{border:1px solid var(--border);background:#fff;border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .7rem;font-size:.82rem;font-weight:700;display:inline-flex}.legend-item:before{content:"";border-radius:999px;width:.7rem;height:.7rem}.legend-item.saturday:before{background:var(--saturday-edge)}.legend-item.sunday:before{background:var(--sunday-edge)}.legend-item.holiday:before{background:var(--holiday-edge)}.filters{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #ffffffb3;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:.85rem;padding:.9rem;display:grid}.search-field-lg{min-width:min(420px,100%)}.calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem;margin-top:1rem;padding-bottom:2rem;display:grid}.calendar.single-day,.calendar.week-view{grid-template-columns:1fr}.calendar.week-view{grid-template-columns:repeat(7,minmax(0,1fr))}.day{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-height:180px;box-shadow:var(--shadow);border-top:4px solid #0000;padding:.7rem}.day.saturday{background:linear-gradient(180deg, var(--saturday), #fff);border-top-color:var(--saturday-edge)}.day.sunday{background:linear-gradient(180deg, var(--sunday), #fff);border-top-color:var(--sunday-edge)}.day.holiday{background:linear-gradient(180deg, var(--holiday), #fff);border-top-color:var(--holiday-edge)}.day.is-other-month{opacity:.48}.day-heading{justify-content:space-between;align-items:start;gap:.5rem;margin-bottom:.55rem;font-weight:800;display:flex}.day-heading-meta{gap:.15rem;display:grid}.day-tag,.day-capacity{color:var(--muted);font-size:.72rem;font-weight:700}.day-full .day-capacity{color:#9a3412}.day-heading button:disabled{opacity:.35;cursor:not-allowed}.appointment{text-align:left;border:1px solid #cfe7e2;border-left:4px solid var(--primary);background:#f3fbf9;border-radius:12px;gap:.2rem;width:100%;margin:.3rem 0 0;padding:.55rem .65rem;font-size:.84rem;display:grid}.appointment-time{font-weight:800}.appointment-name{font-weight:700}.appointment-phone,.appointment-status,.appointment-author{color:var(--muted);font-size:.8rem}.appointment-author{font-weight:600}.appointment-meta{border:1px solid var(--border);color:var(--muted);background:#f4faf7;border-radius:12px;margin:0;padding:.65rem .8rem;font-size:.9rem}.side-field{border:1px solid var(--border);border-radius:12px;margin:0;padding:.75rem .9rem}.side-field legend{padding:0 .35rem;font-weight:700}.required-mark{color:var(--danger)}.side-options{flex-wrap:wrap;gap:.75rem;display:flex}.side-option{border:1px solid var(--border);background:#fff;border-radius:999px;align-items:center;gap:.4rem;padding:.45rem .8rem;font-weight:700;display:inline-flex}.appointment-phone a{color:var(--brand-soft);font-weight:700;text-decoration:none}.appointment[data-status=cancelled],.appointment[data-status=no_show]{border-left-color:var(--danger);opacity:.85;background:#fff5f4}.appointment[data-status=completed]{background:#f1f8f3;border-left-color:#15803d}.modal{width:min(560px,100% - 2rem);box-shadow:var(--shadow);background:#fff;border:0;border-radius:18px;padding:0}.modal-wide{width:min(680px,100% - 2rem)}.referral-preview{gap:1rem;margin-top:.5rem;display:grid}.referral-upload-row{grid-template-columns:1fr auto;align-items:end;gap:.75rem;display:grid}.referral-file-label{min-width:0}.referral-upload-row .primary{white-space:nowrap;height:fit-content}.modal::backdrop{background:#0f3d3e73}.modal form{padding:1.25rem}.modal header,.modal footer,.modal-footer,.footer-actions{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.modal-footer{width:100%}.footer-actions{margin-left:auto}.modal h2{margin:0}.two-columns{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.is-active{background:var(--brand)!important;border-color:var(--brand)!important;color:#fff!important}.phone-preview{color:var(--brand);background:#eef8f5;border:1px solid #cfe7e2;border-radius:12px;margin:-.35rem 0 0;padding:.65rem .8rem;font-weight:700}.patients-table-wrap{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid #ffffffb3;margin-top:1rem;overflow:auto}.patients-table{border-collapse:collapse;width:100%}.patients-table th,.patients-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:.9rem 1rem}.patients-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f4faf7;font-size:.86rem}.patients-table tr:last-child td{border-bottom:0}.patients-empty{color:var(--muted);padding:1.5rem}.phone-link{color:var(--brand-soft);font-weight:700;text-decoration:none}.patients-count{margin:.5rem auto 0;font-weight:700}.work-briefing{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;width:min(1180px,100% - 2rem);margin:0 auto 1rem;display:grid}.briefing-card{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;gap:.35rem;padding:.85rem 1rem;display:grid}.briefing-card.has-issues{background:#fff8ef;border-color:#d97706}.briefing-card ul{color:#9a3412;margin:.2rem 0 0;padding-left:1.1rem}.briefing-card p{color:var(--muted);margin:0;font-size:.9rem}.day-slots{gap:.55rem;margin-top:.4rem;display:grid}.slot-empty,.slot-filled{text-align:left;border-radius:12px;gap:.2rem;width:100%;padding:.75rem .85rem;display:grid}.slot-empty{color:var(--muted);background:#ffffff8c;border:1px dashed #9bbbb3}.slot-index{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:800}.appointment-actions{margin-top:.2rem}button.linkish{color:var(--brand-soft);background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.appointment-phone.is-missing,.history-phone.is-missing{color:#9a3412;font-weight:700}.history-body{padding:0 1.25rem 1rem}.history-list{gap:.45rem;margin:.5rem 0 0;padding-left:1.1rem;display:grid}.referral-match,.referral-confidence{color:var(--brand);background:#eef7f4;border-radius:12px;margin:0;padding:.7rem .85rem;font-size:.9rem}@media (width<=1100px){.calendar.week-view{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.filters,.calendar{grid-template-columns:repeat(2,1fr)}.work-briefing{grid-template-columns:1fr}}@media (width<=600px){.topbar,.toolbar,.page-intro{flex-direction:column;align-items:flex-start}.filters,.calendar,.two-columns,.calendar.week-view,.referral-upload-row{grid-template-columns:1fr}}
