:root{--green:#174d46;--teal:#187a70;--mint:#82d6c1;--bg:#f3f6f7;--ink:#263542;--muted:#71808b;--line:#dce4e7;--blue:#5b9bd5;--pink:#e88b9d;--lime:#70b97a;--amber:#e7b35d}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.app{display:flex;min-height:100vh}.side{width:220px;background:linear-gradient(180deg,#123f3a,#173f3b);color:#fff;padding:22px 14px;position:fixed;height:100vh}.brand{font-size:27px;font-weight:800;color:#dcebe7;margin:4px 14px 30px}.brand span{color:#76bcae}.nav button{width:100%;border:0;background:transparent;color:#d8e4e1;text-align:left;padding:14px;border-radius:10px;margin:4px 0;cursor:pointer;font-size:15px}.nav button.active,.nav button:hover{background:#267c70}.nav i{font-style:normal;width:26px;display:inline-block}.main{margin-left:220px;width:calc(100% - 220px);padding:24px 28px}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.search{width:42%;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:white}.user{font-size:14px;color:var(--muted)}.pageTitle h1{margin:0;font-size:28px}.pageTitle p{margin:5px 0 0;color:var(--muted)}.row{display:flex;gap:16px;align-items:center}.primary{background:linear-gradient(135deg,#14665d,#237f73);color:#fff;border:0;padding:13px 22px;border-radius:9px;font-weight:700;cursor:pointer}.ghost{background:white;border:1px solid var(--line);padding:11px 16px;border-radius:9px;cursor:pointer}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:0 4px 18px #19342a0b}.stat b{font-size:30px;display:block;margin-top:7px}.stat small{color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:1px}.agendaLayout{display:grid;grid-template-columns:minmax(650px,1fr) 280px;gap:18px}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:9px;margin:18px 0}.day{background:#fff;border:1px solid var(--line);border-radius:10px;text-align:center;padding:10px;cursor:pointer}.day.active{background:var(--green);color:white}.day b{font-size:21px;display:block}.schedule{background:white;border:1px solid var(--line);border-radius:14px;overflow:auto}.scheduleHead{padding:16px 20px;font-weight:700}.grid{display:grid;grid-template-columns:58px repeat(var(--cols),minmax(185px,1fr));min-width:820px;border-top:1px solid var(--line)}.profHead{padding:12px;border-left:1px solid var(--line);background:#f7faf9}.profHead b{display:block}.profHead span{font-size:12px;color:var(--muted)}.time{height:54px;padding:6px 8px;font-size:12px;color:var(--muted);border-bottom:1px solid #edf1f2}.slot{height:54px;border-left:1px solid var(--line);border-bottom:1px solid #edf1f2;position:relative;cursor:pointer}.slot:hover{background:#f2fbf8}.appt{position:absolute;inset:3px 4px;padding:6px 8px;border-radius:7px;border-left:4px solid var(--blue);background:#e8f2fc;font-size:12px;overflow:hidden;cursor:pointer;z-index:3}.appt.pendiente{background:#fff4db;border-color:var(--amber)}.appt.realizada{background:#e4f5e7;border-color:var(--lime)}.appt.cancelada{background:#fde7ea;border-color:var(--pink)}.rightPanel{display:flex;flex-direction:column;gap:14px}.miniCal{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center;font-size:12px}.miniCal div{padding:7px 2px}.miniCal .today{background:var(--teal);color:white;border-radius:50%}.listItem{padding:11px 0;border-bottom:1px solid var(--line);font-size:13px}.listItem b{display:block}.table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden}.table th,.table td{padding:14px;border-bottom:1px solid var(--line);text-align:left}.table th{font-size:12px;color:var(--muted);text-transform:uppercase}.modal{position:fixed;inset:0;background:#15262288;display:flex;align-items:center;justify-content:center;padding:20px;z-index:10}.modalBox{width:min(680px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;padding:24px;box-shadow:0 20px 60px #0004}.modalBox h2{margin-top:0}.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.formGrid .full{grid-column:1/-1}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:8px}.field textarea{min-height:90px}.modalActions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.patientHeader{display:flex;gap:18px;align-items:center}.avatar{width:62px;height:62px;border-radius:50%;background:var(--mint);display:grid;place-items:center;font-size:24px;font-weight:800}.history{margin-top:22px}.status{padding:5px 9px;border-radius:20px;background:#e8f2fc;font-size:12px;font-weight:700}.empty{padding:45px;text-align:center;color:var(--muted)}@media(max-width:900px){.side{width:70px;padding:12px 7px}.brand{font-size:0;margin:12px 0 25px}.brand:after{content:"FN";font-size:20px}.nav button{font-size:0;text-align:center}.nav i{font-size:19px;width:auto}.main{margin-left:70px;width:calc(100% - 70px);padding:18px}.stats{grid-template-columns:repeat(2,1fr)}.agendaLayout{grid-template-columns:1fr}.search{display:none}.formGrid{grid-template-columns:1fr}}@media(max-width:600px){.main{padding:14px}.stats{grid-template-columns:1fr 1fr}.top{align-items:flex-start}.week{grid-template-columns:repeat(4,1fr)}.day{padding:7px}.rightPanel{display:none}.pageTitle h1{font-size:23px}}