:root{--navy:#102c46;--blue:#1684d6;--teal:#18a79d;--ink:#19334b;--muted:#6c7f91;--line:#dce6ef;--bg:#f4f8fb;--white:#fff;--green:#23875d;--red:#c33d53;--shadow:0 14px 40px #102c4612}*{box-sizing:border-box}body{margin:0;font-family:"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg)}a{color:inherit}.patient-shell{min-height:100vh;display:flex;flex-direction:column}.patient-header{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 max(22px,calc((100vw - 1240px)/2));gap:28px;position:sticky;top:0;z-index:20}.patient-brand{display:flex;align-items:center;gap:11px;text-decoration:none;margin-right:auto}.patient-brand>span{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:linear-gradient(135deg,#36b7e6,var(--teal));color:#fff;font-weight:900}.patient-brand strong,.patient-brand small{display:block}.patient-brand small{color:var(--muted);font-size:.74rem}.patient-nav{display:flex;align-items:center;gap:4px}.patient-nav>a,.patient-nav button{border:0;background:none;padding:10px 11px;border-radius:9px;text-decoration:none;font:inherit;font-size:.85rem;color:#526b80;cursor:pointer}.patient-nav>a:hover,.patient-nav>a.is-active{background:#eaf5fd;color:#126da9}.patient-nav button{color:var(--red)}.patient-menu{display:none;border:0;background:#eaf5fd;border-radius:9px;width:42px;height:42px}.patient-main{width:min(1180px,calc(100% - 36px));margin:0 auto;padding:38px 0 60px;flex:1}.patient-footer{display:flex;justify-content:space-between;padding:22px max(22px,calc((100vw - 1180px)/2));background:#fff;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem}.patient-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px}.patient-hero h1{font-size:2rem;margin:0 0 8px}.patient-hero p{margin:0;color:var(--muted)}.patient-button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:11px;padding:12px 17px;background:var(--blue);color:#fff;text-decoration:none;font:inherit;font-weight:750;cursor:pointer}.patient-button--light{background:#eaf3f9;color:var(--ink)}.patient-button--danger{background:var(--red)}.patient-grid{display:grid;gap:20px}.patient-grid--stats{grid-template-columns:repeat(4,1fr);margin-bottom:22px}.patient-grid--2{grid-template-columns:1.5fr .8fr}.patient-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.patient-card__head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:19px 21px;border-bottom:1px solid var(--line)}.patient-card__head h2{font-size:1.02rem;margin:0}.patient-card__body{padding:21px}.patient-stat{padding:20px}.patient-stat strong,.patient-stat small{display:block}.patient-stat strong{font-size:1.55rem}.patient-stat small{color:var(--muted);margin-top:5px}.patient-list{display:grid}.patient-list>a,.patient-list>div{display:grid;grid-template-columns:95px 1fr auto;gap:15px;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);text-decoration:none}.patient-list>a:last-child,.patient-list>div:last-child{border-bottom:0}.patient-list strong,.patient-list small{display:block}.patient-list small{color:var(--muted);margin-top:4px}.patient-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf2f6;font-size:.74rem;font-weight:700}.patient-badge--confirmed,.patient-badge--completed{background:#e7f7f0;color:var(--green)}.patient-badge--requested,.patient-badge--reschedule_requested{background:#fff4e3;color:#9b600f}.patient-badge--cancelled,.patient-badge--no_show{background:#fdecef;color:var(--red)}.patient-form{display:grid;gap:17px}.patient-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.patient-field{display:grid;gap:7px}.patient-field--full{grid-column:1/-1}.patient-field label{font-size:.84rem;font-weight:700}.patient-field small{color:var(--muted)}.patient-input,.patient-select,.patient-textarea{width:100%;padding:12px;border:1px solid #cbd9e5;border-radius:11px;background:#fff;font:inherit;color:var(--ink);outline:none}.patient-input:focus,.patient-select:focus,.patient-textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1684d61a}.patient-textarea{min-height:120px;resize:vertical}.patient-actions{display:flex;gap:10px;flex-wrap:wrap}.patient-alert{padding:13px 16px;margin-bottom:18px;border-radius:11px}.patient-alert--success{background:#e7f7f0;color:#216b4e}.patient-alert--error{background:#fdecef;color:#983044}.patient-empty{padding:38px;text-align:center;color:var(--muted)}.patient-auth{width:min(480px,calc(100% - 36px));margin:50px auto}.patient-auth h1{margin-top:0}.patient-auth-links{display:flex;justify-content:space-between;gap:12px;margin-top:18px;font-size:.86rem}.patient-slot-grid{display:flex;gap:9px;flex-wrap:wrap}.patient-slot{position:relative}.patient-slot input{position:absolute;opacity:0}.patient-slot span{display:block;padding:10px 13px;border:1px solid #c9dfef;border-radius:9px;color:#146da9;cursor:pointer}.patient-slot input:checked+span{background:var(--blue);color:#fff;border-color:var(--blue)}.patient-note{padding:15px;border-radius:12px;background:#f2f7fb;color:var(--muted);line-height:1.6}.patient-record{padding:18px;border-bottom:1px solid var(--line)}.patient-record:last-child{border-bottom:0}.patient-record h3{margin:0 0 6px}.patient-record small{color:var(--muted)}@media(max-width:980px){.patient-grid--stats{grid-template-columns:repeat(2,1fr)}.patient-grid--2{grid-template-columns:1fr}.patient-menu{display:block}.patient-nav{display:none;position:absolute;top:78px;left:0;right:0;padding:14px;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;align-items:stretch}.patient-menu-open .patient-nav{display:flex}.patient-nav form,.patient-nav button{width:100%;text-align:left}}@media(max-width:600px){.patient-header{padding:0 18px}.patient-brand small{display:none}.patient-main{padding-top:25px}.patient-hero{display:grid}.patient-hero .patient-button{width:100%}.patient-grid--stats,.patient-form-grid{grid-template-columns:1fr}.patient-field--full{grid-column:auto}.patient-list>a,.patient-list>div{grid-template-columns:70px 1fr}.patient-list>a>:last-child,.patient-list>div>:last-child{grid-column:2}.patient-footer{display:grid;gap:8px}}
