:root{--color-primary:#082f49;--color-primary-dark:#061f33;--color-gold:#c6a15b;--color-bg:#f7f8fa;--color-bg-warm:#fbfaf7;--color-surface:#fff;--color-surface-elevated:#fbfcfe;--color-border:#d8dee6;--color-text:#17202a;--color-muted:#667085;--color-danger:#b42318;--color-success:#027a48;--color-warning:#a15c07;--radius-card:8px;--shadow-soft:0 8px 24px #0f172a14;--shadow-premium:0 18px 44px #082f4921;--font-scale:1;--font-size-base:calc(16px * var(--font-scale));--font-size-sm:calc(.875rem * var(--font-scale));--font-size-lg:calc(1.125rem * var(--font-scale));--control-height:calc(42px * var(--font-scale));--control-padding-x:calc(14px * var(--font-scale));--control-padding-y:calc(10px * var(--font-scale));--space-xs:calc(4px * var(--font-scale));--space-sm:calc(8px * var(--font-scale));--space-md:calc(16px * var(--font-scale));--space-lg:calc(24px * var(--font-scale));--space-xl:calc(32px * var(--font-scale))}:root[data-ui-scale="100"]{--font-scale:1}:root[data-ui-scale="125"]{--font-scale:1.25}:root[data-ui-scale="150"]{--font-scale:1.5}*{box-sizing:border-box}html{min-height:100%}body{background:radial-gradient(circle at top left, #c6a15b1f, transparent 32rem), linear-gradient(180deg, var(--color-bg-warm), var(--color-bg));min-height:100%;color:var(--color-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:var(--font-size-base);margin:0;line-height:1.5}button,input,select,textarea{font:inherit}a{color:inherit}:focus-visible{outline-offset:2px;outline:3px solid #c6a15bcc}.public-shell{flex-direction:column;min-height:100vh;display:flex}.public-shell__header,.topbar{justify-content:space-between;align-items:center;gap:var(--space-lg);padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;display:flex}.public-shell__brand,.sidebar__brand{color:var(--color-primary);gap:2px;text-decoration:none;display:grid}.public-shell__brand{column-gap:var(--space-sm);grid-template-columns:auto 1fr;align-items:center}.public-shell__brand-mark{width:calc(42px * var(--font-scale));height:calc(42px * var(--font-scale));background:var(--color-primary);color:var(--color-gold);border-radius:50%;grid-row:span 2;place-items:center;font-weight:900;display:grid}.public-shell__brand strong,.sidebar__brand strong{font-size:calc(1.2rem * var(--font-scale));letter-spacing:0}.public-shell__content{width:min(760px,100% - 32px);margin:var(--space-xl) auto}.public-shell__content--wide{width:min(1180px,100% - 32px)}.app-shell{grid-template-columns:minmax(220px,280px) minmax(0,1fr);min-height:100vh;display:grid}.app-shell__main{flex-direction:column;min-width:0;display:flex}.app-shell__content{min-width:0;padding:var(--space-xl)}.sidebar{background:var(--color-primary);color:#fff;min-height:100vh;max-height:100vh;padding:var(--space-lg);overflow-y:auto}.sidebar__brand{color:#fff;margin-bottom:var(--space-xl)}.sidebar__nav{gap:var(--space-sm);display:grid}.sidebar__link{padding:var(--control-padding-y) var(--control-padding-x);border-radius:var(--radius-card);color:#ffffffdb;text-decoration:none;display:block}.sidebar__link[data-active=true],.sidebar__link:hover{color:#fff;background:#ffffff24}.topbar{z-index:10;position:sticky;top:0}.topbar h1{font-size:calc(1.35rem * var(--font-scale));color:var(--color-primary);margin:0}.topbar__eyebrow{color:var(--color-muted);font-size:var(--font-size-sm);margin:0}.font-scale{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.font-scale__label{color:var(--color-muted);font-size:var(--font-size-sm)}.font-scale__options{gap:var(--space-xs);flex-wrap:wrap;display:flex}.font-scale__button,.ui-button{min-height:var(--control-height);border-radius:var(--radius-card);border:1px solid var(--color-border);padding:var(--control-padding-y) var(--control-padding-x);cursor:pointer;background:var(--color-surface);color:var(--color-text);white-space:normal}.font-scale__button[data-active=true]{border-color:var(--color-gold);color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-gold)}.ui-button{border:0;font-weight:700;transition:border-color .16s,box-shadow .16s,background .16s}.ui-button[data-variant=primary]{background:var(--color-primary);color:#fff;box-shadow:0 10px 22px #082f492e}.ui-button[data-variant=secondary]{color:var(--color-primary);background:#eef2f6}.ui-button[data-variant=danger]{background:var(--color-danger);color:#fff}.ui-button:disabled,.field__control:disabled{cursor:not-allowed;opacity:.58}.ui-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:var(--space-lg)}.ui-card:hover,.doctor-card:hover,.appointments-panel:hover,.patient-action-card:hover{box-shadow:var(--shadow-premium)}.ui-card h2{margin:0 0 var(--space-sm);color:var(--color-primary);font-size:calc(1.25rem * var(--font-scale))}.ui-card[data-tone=warning]{border-color:#a15c0759}.page-copy{color:var(--color-muted);margin-top:0}.state-message{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-card);margin:0;font-weight:700}.room-selection-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.room-choice-card{gap:var(--space-md);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);background:linear-gradient(#fffffff5,#f8fafcfa);grid-template-columns:minmax(92px,116px) minmax(0,1fr);align-items:start;display:grid}.room-choice-card[data-selected=true]{border-color:var(--color-gold);box-shadow:0 0 0 1px #c6a15b59, var(--shadow-premium)}.room-choice-card[data-disabled=true]{opacity:.92}.room-choice-card__media{aspect-ratio:4/3;border-radius:calc(var(--radius-card) - 2px);background:var(--color-surface-elevated);width:100%;overflow:hidden}.room-choice-card__media img{object-fit:cover;width:100%;height:100%;display:block}.room-choice-card__fallback{width:100%;height:100%;color:var(--color-muted);background:linear-gradient(135deg, #082f4914, #c6a15b1f), var(--color-surface-elevated);place-items:center;font-weight:700;display:grid}.room-choice-card__body{gap:var(--space-sm);min-width:0;display:grid}.room-choice-card__header{justify-content:space-between;gap:var(--space-sm);flex-wrap:wrap;align-items:flex-start;display:flex}.room-choice-card__header h3{color:var(--color-primary);font-size:calc(1.02rem * var(--font-scale));margin:0}.room-choice-card__header p,.room-choice-card__description,.room-choice-card__meta{color:var(--color-muted);font-size:var(--font-size-sm);margin:0}.room-choice-card__resources{gap:var(--space-xs);flex-wrap:wrap;display:flex}.room-choice-card__resource{border:1px solid var(--color-border);background:var(--color-surface);font-size:calc(.78rem * var(--font-scale));color:var(--color-text);border-radius:999px;padding:.2rem .55rem}.room-choice-card__actions{gap:var(--space-sm);flex-wrap:wrap;align-items:center;display:flex}.state-message--error{color:var(--color-danger);background:#b423181a}.state-message--success{color:var(--color-success);background:#027a481a}.stack{gap:var(--space-md);display:grid}.stack--compact{gap:var(--space-sm)}.text-muted{color:var(--color-muted)}.page-grid{gap:var(--space-lg);display:grid}.form-grid{grid-template-columns:repeat(auto-fit, minmax(calc(180px * var(--font-scale)), 1fr));gap:var(--space-md);display:grid}.patient-search-results{gap:var(--space-sm);display:grid}.patient-search-result,.patient-selected-card{width:100%;padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text)}.patient-search-result{gap:var(--space-xs);text-align:left;cursor:pointer;display:grid}.patient-search-result[data-active=true],.patient-search-result:hover{border-color:var(--color-gold);box-shadow:inset 0 0 0 1px var(--color-gold)}.patient-search-result span,.patient-search-result small{color:var(--color-muted)}.patient-selected-card{gap:var(--space-md);background:var(--color-surface-elevated);grid-template-columns:minmax(0,1fr);display:grid}.patient-selected-card h3,.patient-selected-card p{margin:0}.patient-selected-card__badges{align-content:start;gap:var(--space-xs);flex-wrap:wrap;display:flex}.patient-selected-card__dependents,.patient-selected-card__actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.patient-selected-card__actions{align-items:center}.patient-search-empty{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-md);border:1px dashed var(--color-border);border-radius:var(--radius-card);flex-wrap:wrap;display:flex}.patient-home,.profile-shell{gap:var(--space-xl);display:grid}.patient-home__hero,.profile-hero{gap:var(--space-md);padding:var(--space-xl);border-radius:var(--radius-card);background:linear-gradient(135deg, #082f49f5, #061f33eb), var(--color-primary);color:#fff;box-shadow:var(--shadow-premium);border:1px solid #c6a15b57;display:grid}.patient-home__hero h1,.profile-hero h1{max-width:820px;font-size:calc(1.9rem * var(--font-scale));margin:0;line-height:1.15}.patient-home__hero p,.profile-hero p{color:#ffffffd6;max-width:720px;margin:0}.patient-home__hero-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.patient-quick-grid{grid-template-columns:repeat(auto-fit, minmax(calc(210px * var(--font-scale)), 1fr));gap:var(--space-md);display:grid}.patient-action-card{gap:var(--space-xs);min-height:calc(126px * var(--font-scale));padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-primary);cursor:pointer;text-align:left;box-shadow:var(--shadow-soft);display:grid}.patient-action-card span{color:var(--color-gold);font-size:var(--font-size-sm);text-transform:uppercase;font-weight:900}.patient-action-card strong{font-size:var(--font-size-lg);line-height:1.2}.check-row{align-items:flex-start;gap:var(--space-sm);color:var(--color-text);font-weight:700;display:flex}.check-row input{width:calc(18px * var(--font-scale));height:calc(18px * var(--font-scale));margin-top:calc(3px * var(--font-scale))}.slot-list{gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.action-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fit, minmax(calc(180px * var(--font-scale)), 1fr));display:grid}.profile-readonly{gap:var(--space-sm);margin:var(--space-md) 0;flex-wrap:wrap;font-weight:700;display:flex}.profile-readonly span{padding:calc(7px * var(--font-scale)) calc(11px * var(--font-scale));border-radius:var(--radius-card);color:#fff;background:#ffffff1a;border:1px solid #ffffff38}.profile-form-panel{gap:var(--space-lg);padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-soft);display:grid}.profile-form-panel h2{color:var(--color-primary);margin:0}.patient-appointments-page{gap:var(--space-xl);display:grid}.booking-hero{gap:var(--space-lg);padding:var(--space-xl);border-radius:var(--radius-card);background:linear-gradient(135deg, #082f49f5, #061f33f0), var(--color-primary);color:#fff;box-shadow:var(--shadow-premium);border:1px solid #c6a15b61;display:grid;position:relative;overflow:hidden}.booking-hero:after{content:"";right:var(--space-xl);top:var(--space-xl);width:calc(120px * var(--font-scale));height:calc(120px * var(--font-scale));pointer-events:none;border:1px solid #c6a15b47;border-radius:50%;position:absolute}.booking-hero__copy{z-index:1;max-width:760px;position:relative}.booking-hero__eyebrow{margin:0 0 var(--space-xs);color:var(--color-gold);font-size:var(--font-size-sm);text-transform:uppercase;font-weight:800}.booking-hero h1{font-size:calc(2rem * var(--font-scale));margin:0;line-height:1.12}.booking-hero p{color:#ffffffd6;margin-bottom:0}.booking-hero__metrics{gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.booking-hero__metrics span{padding:calc(7px * var(--font-scale)) calc(11px * var(--font-scale));color:#ffffffe6;font-size:var(--font-size-sm);background:#ffffff1a;border:1px solid #ffffff38;border-radius:999px;font-weight:800}.booking-search{gap:var(--space-md);padding:var(--space-md);border-radius:var(--radius-card);z-index:1;background:#ffffff1a;border:1px solid #fff3;grid-template-columns:minmax(260px,1.5fr) minmax(190px,.7fr) auto;align-items:end;display:grid;position:relative}.booking-search .field__label{color:#fff}.doctor-results{gap:var(--space-md);display:grid}.doctor-card{gap:var(--space-lg);padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-soft);grid-template-columns:auto minmax(0,1fr) minmax(280px,.75fr);align-items:start;transition:box-shadow .16s,border-color .16s;display:grid}.doctor-card__media{width:calc(86px * var(--font-scale));height:calc(86px * var(--font-scale));color:var(--color-primary);font-weight:800;font-size:calc(1.25rem * var(--font-scale));background:linear-gradient(135deg,#fff,#eef2f6);border:2px solid #c6a15b73;border-radius:50%;place-items:center;display:grid;overflow:hidden}.doctor-card__media img{object-fit:cover;width:100%;height:100%}.doctor-card__body{gap:var(--space-md);min-width:0;display:grid}.doctor-card__header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);flex-wrap:wrap;display:flex}.doctor-card h2{color:var(--color-primary);font-size:calc(1.35rem * var(--font-scale));margin:0;line-height:1.2}.doctor-card p{margin:var(--space-xs) 0 0;color:var(--color-muted)}.doctor-card__meta{gap:var(--space-sm);flex-wrap:wrap;display:flex}.doctor-card__meta span{padding:calc(6px * var(--font-scale)) calc(10px * var(--font-scale));border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-muted);font-size:var(--font-size-sm);background:#fbfcfe;font-weight:700}.doctor-card__schedule{gap:var(--space-sm);min-width:0;padding:var(--space-md);border-radius:var(--radius-card);background:var(--color-surface-elevated);border:1px solid #082f4914;display:grid}.doctor-card__schedule-head{color:var(--color-primary);font-size:var(--font-size-sm);font-weight:900}.doctor-card__hint{color:var(--color-muted);font-size:var(--font-size-sm);margin:0}.premium-slot-list{grid-template-columns:repeat(auto-fit, minmax(calc(82px * var(--font-scale)), 1fr));gap:var(--space-xs);display:grid}.premium-slot{min-height:var(--control-height);border-radius:var(--radius-card);color:var(--color-primary);cursor:pointer;background:#f8fafc;border:1px solid #082f492e;font-weight:800;transition:background .16s,border-color .16s,box-shadow .16s}.premium-slot:hover,.premium-slot[data-selected=true]{border-color:var(--color-gold);box-shadow:inset 0 0 0 1px var(--color-gold);background:#c6a15b24}.appointments-panel,.empty-panel{gap:var(--space-md);padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-soft);transition:box-shadow .16s;display:grid}.appointments-panel__header{justify-content:space-between;align-items:flex-start;gap:var(--space-md);flex-wrap:wrap;display:flex}.appointments-panel h2{color:var(--color-primary);margin:0}.text-link{min-height:var(--control-height);color:var(--color-primary);cursor:pointer;text-decoration:underline;-webkit-text-decoration-color:var(--color-gold);text-decoration-color:var(--color-gold);text-underline-offset:4px;background:0 0;border:0;font-weight:800}.empty-panel{color:var(--color-muted)}.empty-panel strong{color:var(--color-primary)}.reception-toolbar{gap:var(--space-md);grid-template-columns:minmax(220px,1fr) repeat(2,minmax(160px,.45fr));align-items:end;display:grid}.reception-summary,.queue-box{gap:var(--space-xs);min-height:var(--control-height);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-elevated);display:grid}.reception-summary strong,.queue-box strong{color:var(--color-primary);font-size:var(--font-size-lg)}.reception-summary span,.queue-box span{color:var(--color-muted);font-size:var(--font-size-sm);font-weight:700}.reception-operational-grid{gap:var(--space-lg);grid-template-columns:minmax(260px,.8fr) minmax(0,1fr);display:grid}.reception-doctor-list{gap:var(--space-sm);display:grid}.reception-doctor-card{gap:var(--space-xs);width:100%;padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text);cursor:pointer;text-align:left;display:grid}.reception-doctor-card[data-active=true]{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.reception-doctor-card strong{color:var(--color-primary)}.reception-doctor-card span,.reception-doctor-card small{color:var(--color-muted);font-weight:700}.queue-grid{grid-template-columns:repeat(auto-fit, minmax(calc(170px * var(--font-scale)), 1fr));gap:var(--space-md);display:grid}.reception-actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.reception-actions .ui-button{min-width:calc(96px * var(--font-scale))}.doctor-workbench{align-content:start}.doctor-toolbar{gap:var(--space-md);flex-wrap:wrap;align-items:end;display:flex}.doctor-toolbar .field{flex:200px}.doctor-summary,.doctor-focus-card{gap:var(--space-xs);min-height:var(--control-height);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-elevated);display:grid}.doctor-summary strong,.doctor-focus-card strong{color:var(--color-primary);font-size:var(--font-size-lg)}.doctor-summary span,.doctor-focus-card span,.muted-text{color:var(--color-muted);font-size:var(--font-size-sm);font-weight:700}.doctor-focus-grid{grid-template-columns:repeat(auto-fit, minmax(calc(280px * var(--font-scale)), 1fr));gap:var(--space-lg);display:grid}.doctor-focus-card{min-height:calc(150px * var(--font-scale));align-content:start}.doctor-actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.doctor-actions .ui-button{min-width:calc(96px * var(--font-scale))}.exam-grid{grid-template-columns:repeat(auto-fit, minmax(calc(210px * var(--font-scale)), 1fr));gap:var(--space-sm);display:grid}.exam-grid__notes{grid-column:1/-1}.print-actions{margin-bottom:var(--space-md);justify-content:flex-end;display:flex}.print-preview{gap:var(--space-lg);max-width:820px;padding:var(--space-xl);border:1px solid var(--color-border);border-radius:var(--radius-card);color:var(--color-text);background:#fff;margin:0 auto;display:grid}.print-preview__header,.print-preview__footer{gap:var(--space-xs);color:var(--color-muted);text-align:center;display:grid}.print-preview__header strong{color:var(--color-primary);font-size:var(--font-size-lg)}.print-preview__body h2{color:var(--color-primary);text-align:center}.print-preview__content{min-height:calc(180px * var(--font-scale));margin-top:var(--space-lg);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-card);white-space:pre-wrap}.field{gap:var(--space-xs);display:grid}.field__label{color:var(--color-text);font-weight:700}.field__control{width:100%;min-height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--control-padding-y) var(--control-padding-x);color:var(--color-text);background:var(--color-surface)}.field__control--textarea{min-height:calc(130px * var(--font-scale));resize:vertical}.field__control[aria-invalid=true]{border-color:var(--color-danger)}.field__error{color:var(--color-danger);font-size:var(--font-size-sm)}.ui-badge{min-height:calc(28px * var(--font-scale));padding:calc(4px * var(--font-scale)) calc(10px * var(--font-scale));font-size:var(--font-size-sm);color:var(--color-muted);background:#eef2f6;border-radius:999px;align-items:center;font-weight:700;display:inline-flex}.ui-badge[data-tone=success]{color:var(--color-success);background:#027a481f}.ui-badge[data-tone=danger]{color:var(--color-danger);background:#b423181f}.ui-badge[data-tone=warning]{color:var(--color-warning);background:#a15c071f}.modal-backdrop{padding:var(--space-md);z-index:9999;background:#061f337a;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-card);width:min(720px,100%);max-height:min(720px,100vh - 32px);box-shadow:var(--shadow-soft);z-index:10000;overflow-y:auto}.modal__header{justify-content:space-between;gap:var(--space-md);padding:var(--space-lg);border-bottom:1px solid var(--color-border);display:flex}.modal__content{padding:var(--space-lg)}.table-wrapper{width:100%;overflow-x:auto}.ui-table{border-collapse:collapse;background:var(--color-surface);width:100%;min-width:640px}.ui-table th,.ui-table td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);text-align:left}.ui-table th{color:var(--color-muted);font-size:var(--font-size-sm)}.tabs{gap:var(--space-xs);display:flex;overflow-x:auto}.tabs__button{min-height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--radius-card);padding:var(--control-padding-y) var(--control-padding-x);background:var(--color-surface);color:var(--color-text)}.tabs__button[data-active=true]{border-color:var(--color-primary);color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}@media print{body{background:#fff}:is(.sidebar,.topbar,.print-actions,.ui-card:not(:has(.print-preview))){display:none}.app-shell{display:block}.app-shell__content,.ui-card{padding:0}.ui-card{box-shadow:none;border:0}.print-preview{max-width:none;box-shadow:none;border:0}}@media (width<=820px){.app-shell{grid-template-columns:1fr}.sidebar{min-height:auto;max-height:42vh}.public-shell__header,.topbar{flex-direction:column;align-items:flex-start}.app-shell__content{padding:var(--space-md)}.booking-search,.doctor-card,.reception-toolbar,.reception-operational-grid,.doctor-toolbar,.doctor-focus-grid{grid-template-columns:1fr}.doctor-card__media{width:calc(72px * var(--font-scale));height:calc(72px * var(--font-scale))}}@media (width>=821px) and (width<=1120px){.booking-search,.doctor-card{grid-template-columns:1fr}}.calendar-container{gap:var(--space-md);padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);display:grid}.calendar__header{justify-content:space-between;align-items:center;display:flex}.calendar__title{font-size:var(--font-size-lg);color:var(--color-primary);margin:0}.calendar__weekdays{text-align:center;font-weight:700;font-size:var(--font-size-sm);color:var(--color-muted);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-xs);grid-template-columns:repeat(7,1fr);display:grid}.calendar__grid{background:var(--color-border);border:1px solid var(--color-border);border-radius:4px;grid-template-columns:repeat(7,1fr);gap:2px;display:grid;overflow:hidden}.calendar__day{aspect-ratio:1;background:var(--color-surface);cursor:pointer;border:0;flex-direction:column;justify-content:center;align-items:center;padding:4px;transition:background .16s,color .16s;display:flex}.calendar__day.empty{background:var(--color-bg);cursor:default}.calendar__day:disabled{color:var(--color-muted);opacity:.4;cursor:not-allowed}.calendar__day.available{color:var(--color-primary);font-weight:700}.calendar__day.available:hover{background:#c6a15b1a}.calendar__day.selected{background:var(--color-gold)!important;color:#fff!important}.calendar__day-number{font-size:var(--font-size-base)}.calendar__day-slots{text-transform:uppercase;color:var(--color-muted);font-size:10px}.calendar__day.selected .calendar__day-slots{color:#fffc}.patient-shell{background:var(--color-bg);grid-template-columns:minmax(240px,300px) minmax(0,1fr);min-height:100vh;display:grid}.patient-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);min-height:100vh;max-height:100vh;padding:var(--space-lg);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.patient-sidebar__header{margin-bottom:var(--space-xl)}.patient-sidebar__brand{align-items:center;gap:var(--space-sm);color:var(--color-primary);margin-bottom:var(--space-lg);display:flex}.patient-sidebar__brand-mark{background:var(--color-primary);color:#fff;border-radius:var(--radius-card);justify-content:center;align-items:center;width:32px;height:32px;font-size:1.2rem;font-weight:900;display:flex}.patient-sidebar__brand-text{flex-direction:column;line-height:1.1;display:flex}.patient-sidebar__brand-text strong{letter-spacing:.5px;font-size:1.15rem}.patient-sidebar__brand-text span{color:var(--color-muted);font-size:.75rem}.patient-sidebar__user{align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-surface-elevated);border-radius:var(--radius-card);border:1px solid var(--color-border);display:flex}.patient-sidebar__avatar,.patient-topbar__avatar{background:var(--gradient-primary);color:#fff;width:48px;height:48px;box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;font-size:1.15rem;font-weight:700;display:flex}.patient-sidebar__user-info{flex-direction:column;line-height:1.2;display:flex}.patient-sidebar__user-greeting{color:var(--color-muted);font-size:.75rem}.patient-sidebar__user-name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-size:1rem;overflow:hidden}.patient-sidebar__nav{gap:var(--space-xs);flex-direction:column;flex:1;display:flex}.patient-sidebar__link{text-align:left;width:100%;padding:var(--control-padding-y) var(--control-padding-x);border-radius:var(--radius-card);color:var(--color-muted);cursor:pointer;background:0 0;border:0;font-weight:600;text-decoration:none;transition:all .18s;display:block}.patient-sidebar__link:hover{background:var(--color-surface-elevated);color:var(--color-primary)}.patient-sidebar__link[data-active=true]{background:var(--color-primary);box-shadow:var(--shadow-sm);color:#fff!important}.patient-sidebar__footer{margin-top:var(--space-lg);border-top:1px solid var(--color-border);padding-top:var(--space-md);gap:var(--space-md);flex-direction:column;display:flex}.patient-shell__main{flex-direction:column;min-width:0;display:flex}.patient-shell__content{min-width:0;padding:var(--space-xl);width:100%;max-width:1200px;margin:0 auto}.patient-topbar,.patient-topbar__nav{display:none}@media (width<=900px){.patient-shell{grid-template-columns:1fr}.patient-sidebar{display:none}.patient-topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-md) var(--space-lg);z-index:100;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.patient-topbar__brand{align-items:center;gap:var(--space-sm);color:var(--color-primary);cursor:pointer;background:0 0;border:0;font-size:1.25rem;display:flex}.patient-topbar__brand-mark{background:var(--color-primary);color:#fff;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;font-size:1rem;font-weight:900;display:flex}.patient-topbar__user{align-items:center;gap:var(--space-sm);display:flex}.patient-topbar__greeting{font-size:var(--font-size-sm);color:var(--color-muted)}.patient-topbar__avatar{width:32px;height:32px;font-size:var(--font-size-sm)}.patient-topbar__nav{gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--color-surface-elevated);border-bottom:1px solid var(--color-border);z-index:99;scrollbar-width:none;display:flex;position:sticky;top:60px;overflow-x:auto}.patient-topbar__nav::-webkit-scrollbar{display:none}.patient-topbar__link{white-space:nowrap;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-card);font-size:var(--font-size-sm);color:var(--color-muted);cursor:pointer;background:0 0;border:0;font-weight:600}.patient-topbar__link[data-active=true]{background:var(--color-primary);color:#fff}.patient-topbar__link--logout{color:var(--color-danger)}}.patient-action-card{transition:all .2s}.patient-action-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--color-primary)!important;background:var(--color-surface-elevated)!important}.next-appointment-card{transition:all .2s}.next-appointment-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)!important}.patient-page{gap:var(--space-xl);display:grid}.patient-kicker{margin:0 0 var(--space-xs);color:var(--color-gold);font-size:var(--font-size-sm);text-transform:uppercase;font-weight:900}.patient-section-hero,.patient-hero-solid{gap:var(--space-lg);padding:var(--space-xl);border-radius:var(--radius-card);background:linear-gradient(135deg, #082f49fa, #061f33f0), var(--color-primary);color:#fff;box-shadow:var(--shadow-premium);border:1px solid #c6a15b57;display:grid}.patient-section-hero h1,.patient-hero-solid h1{max-width:840px;font-size:calc(2rem * var(--font-scale));color:#fff;margin:0;line-height:1.14}.patient-section-hero p:not(.patient-kicker),.patient-hero-solid p:not(.patient-kicker){color:#ffffffe0;max-width:760px;margin:0}.patient-hero-solid{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:end}.patient-search-panel,.patient-booking-search{gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);background:#fffffff5;border:1px solid #ffffff2e;display:grid}.patient-search-panel .field__label,.patient-booking-search .field__label{color:var(--color-primary)}.patient-quick-actions{grid-template-columns:repeat(auto-fit, minmax(calc(190px * var(--font-scale)), 1fr));gap:var(--space-md);display:grid}.patient-quick-action{gap:var(--space-xs);min-height:calc(140px * var(--font-scale));padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text);text-align:left;cursor:pointer;box-shadow:var(--shadow-soft);display:grid}.patient-quick-action:hover{box-shadow:var(--shadow-premium);border-color:#c6a15b8c}.patient-quick-action span{color:var(--color-gold);font-size:var(--font-size-sm);text-transform:uppercase;font-weight:900}.patient-quick-action strong{color:var(--color-primary);font-size:var(--font-size-lg)}.patient-quick-action p,.patient-mini-list span,.patient-doctor-card__specialty,.patient-dependent-card__meta,.patient-appointment-card__meta,.patient-empty-state p{color:var(--color-muted)}.patient-dashboard-main{gap:var(--space-lg);grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);align-items:start;display:grid}.patient-dashboard-main--single{grid-template-columns:minmax(0,1fr)}.patient-dashboard-main__feature,.patient-dashboard-main__aside,.patient-empty-state,.patient-dependent-card,.patient-appointment-card,.patient-doctor-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-soft)}.patient-dashboard-main__feature,.patient-dashboard-main__aside{gap:var(--space-md);padding:var(--space-lg);display:grid}.patient-section-heading{justify-content:space-between;gap:var(--space-md);align-items:start;display:flex}.patient-section-heading h2,.patient-dashboard-main__aside h2{color:var(--color-primary);margin:0}.patient-mini-list{gap:var(--space-sm);display:grid}.patient-mini-list button{padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-elevated);color:var(--color-text);text-align:left;cursor:pointer;gap:2px;display:grid}.patient-empty-state{justify-items:start;gap:var(--space-sm);padding:var(--space-xl);background:linear-gradient(135deg, #ffffffeb, #f7f9fbf5), var(--color-surface);border-style:dashed;display:grid}.patient-empty-state__mark{width:calc(44px * var(--font-scale));height:calc(44px * var(--font-scale));color:var(--color-primary);background:#c6a15b26;border-radius:50%;place-items:center;font-weight:900;display:grid}.patient-empty-state h2{color:var(--color-primary);margin:0}.patient-dependent-grid,.patient-appointment-list,.patient-doctor-results{gap:var(--space-md);display:grid}.patient-dependent-card{gap:var(--space-md);padding:var(--space-lg);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;display:grid}.patient-dependent-card__icon{width:calc(54px * var(--font-scale));height:calc(54px * var(--font-scale));background:var(--color-primary);color:#fff;border-radius:50%;place-items:center;font-weight:900;display:grid}.patient-dependent-card h3,.patient-appointment-card h3,.patient-doctor-card h2,.patient-booking-confirm h3{color:var(--color-primary);margin:0}.patient-dependent-card__meta,.patient-appointment-card__meta,.patient-doctor-card__chips{gap:var(--space-xs);flex-wrap:wrap;display:flex}.patient-dependent-card__meta span,.patient-doctor-card__chips span{padding:calc(6px * var(--font-scale)) calc(10px * var(--font-scale));border:1px solid var(--color-border);background:var(--color-surface-elevated);border-radius:999px}.patient-appointment-card{grid-template-columns:minmax(120px,auto) minmax(0,1fr);display:grid;overflow:hidden}.patient-appointment-card__date{align-content:center;gap:var(--space-xs);padding:var(--space-lg);background:linear-gradient(180deg, #082f49f5, #061f33f5), var(--color-primary);color:#fff;display:grid}.patient-appointment-card__date strong{font-size:var(--font-size-lg);text-transform:capitalize}.patient-appointment-card__body{gap:var(--space-md);min-width:0;padding:var(--space-lg);display:grid}.patient-appointment-card__header{justify-content:space-between;gap:var(--space-md);align-items:start;display:flex}.patient-appointment-card__actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.patient-section-hero--booking{grid-template-columns:minmax(0,1fr)}.patient-booking-search{max-width:720px}.patient-doctor-card{padding:var(--space-lg);cursor:pointer}.patient-doctor-card__main{gap:var(--space-lg);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.patient-doctor-card__actions{justify-content:flex-end;gap:var(--space-sm);flex-wrap:wrap;display:flex}.patient-doctor-card__photo{width:calc(88px * var(--font-scale));height:calc(88px * var(--font-scale));color:var(--color-primary);font-size:calc(1.45rem * var(--font-scale));background:#082f4914;border:3px solid #c6a15b59;border-radius:50%;place-items:center;font-weight:900;display:grid;overflow:hidden}.patient-doctor-card__photo img{object-fit:cover;width:100%;height:100%}.patient-doctor-card__content{gap:var(--space-xs);min-width:0;display:grid}.patient-doctor-card__schedule{gap:var(--space-lg);margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-border);grid-template-columns:minmax(280px,.8fr) minmax(260px,1fr);display:grid}.patient-doctor-card__notice{padding:var(--space-sm);border:1px dashed var(--color-border);border-radius:var(--radius-card);color:var(--color-muted)}.patient-slot-grid{grid-template-columns:repeat(auto-fill, minmax(calc(82px * var(--font-scale)), 1fr));gap:var(--space-sm);display:grid}.patient-slot-grid button,.patient-choice-list button{min-height:var(--control-height);padding:var(--control-padding-y) var(--control-padding-x);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-elevated);color:var(--color-text);cursor:pointer;font-weight:800}.patient-slot-grid button[data-selected=true],.patient-choice-list button[data-selected=true]{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.patient-booking-confirm{gap:var(--space-lg);display:grid}.patient-booking-confirm__summary{padding:var(--space-md);border-radius:var(--radius-card);background:var(--color-surface-elevated);border:1px solid #c6a15b57}.patient-choice-list{gap:var(--space-sm);display:grid}.patient-choice-list button{text-align:left;gap:2px;display:grid}.patient-choice-list span{color:inherit;opacity:.78;font-weight:600}.patient-booking-confirm__actions{justify-content:flex-end;gap:var(--space-sm);flex-wrap:wrap;display:flex}.patient-doctor-detail{gap:var(--space-lg);display:grid}.patient-doctor-detail__hero{gap:var(--space-lg);padding:var(--space-lg);border-radius:var(--radius-card);background:var(--color-surface-elevated);border:1px solid #c6a15b57;grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.patient-doctor-detail__photo{width:calc(104px * var(--font-scale));height:calc(104px * var(--font-scale));background:var(--color-primary);color:#fff;font-size:calc(1.7rem * var(--font-scale));border:3px solid #c6a15b6b;border-radius:50%;place-items:center;font-weight:900;display:grid;overflow:hidden}.patient-doctor-detail__photo img{object-fit:cover;width:100%;height:100%}.patient-doctor-detail__bio{padding:var(--space-md);border-left:4px solid var(--color-gold);border-radius:var(--radius-card);background:var(--color-surface-elevated)}.patient-doctor-detail__facts{grid-template-columns:repeat(auto-fit, minmax(calc(180px * var(--font-scale)), 1fr));gap:var(--space-sm);margin:0;display:grid}.patient-doctor-detail__facts div{padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.patient-doctor-detail__facts dt{color:var(--color-muted);font-size:var(--font-size-sm);text-transform:uppercase;font-weight:800}.patient-doctor-detail__facts dd{margin:var(--space-xs) 0 0;color:var(--color-primary);font-weight:800}.patient-doctor-detail__actions{justify-content:flex-end;gap:var(--space-sm);flex-wrap:wrap;display:flex}.doctor-profile-photo-panel{align-items:center;gap:var(--space-lg);margin-top:var(--space-lg);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-elevated);display:flex}.doctor-profile-photo-panel__avatar{width:calc(72px * var(--font-scale));height:calc(72px * var(--font-scale));background:var(--color-primary);color:#fff;font-size:calc(1.25rem * var(--font-scale));border:3px solid #c6a15b73;border-radius:50%;flex:none;place-items:center;font-weight:900;display:grid;overflow:hidden}.doctor-profile-photo-panel__avatar img{object-fit:cover;width:100%;height:100%}.doctor-profile-photo-panel__content{gap:var(--space-xs);display:grid}.doctor-profile-photo-panel__content p{color:var(--color-primary);margin:0;font-weight:900}.doctor-profile-photo-panel__upload{width:fit-content;min-height:var(--control-height);padding:var(--control-padding-y) var(--control-padding-x);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-primary);cursor:pointer;align-items:center;font-weight:800;display:inline-flex}.doctor-profile-photo-panel__upload input{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=980px){.patient-hero-solid,.patient-dashboard-main,.patient-doctor-card__schedule,.patient-doctor-card__main,.patient-dependent-card,.patient-doctor-detail__hero{grid-template-columns:1fr}.patient-doctor-card__actions{justify-content:flex-start}}@media (width<=720px){.patient-section-hero,.patient-hero-solid,.patient-dashboard-main__feature,.patient-dashboard-main__aside,.patient-doctor-card,.patient-dependent-card{padding:var(--space-md)}.patient-appointment-card{grid-template-columns:1fr}.patient-appointment-card__date{grid-template-columns:auto auto;justify-content:space-between}.patient-appointment-card__header{flex-direction:column}}.datepicker-dropdown{z-index:50;margin-top:var(--space-xs);padding:var(--space-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-premium);width:320px;position:absolute;top:100%;left:0}.datepicker-inline-container{margin-top:var(--space-xs);padding:var(--space-sm);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft)}.relative{position:relative}
