*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,Arial,sans-serif;color:#26364b;background:#f4f6fa;font-size:14px}button,select,input{font:inherit}button,a,select{touch-action:manipulation}button{cursor:pointer}a{color:#51439a}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #00a7d7;outline-offset:3px}.sidebar{width:230px;background:white;position:fixed;inset:0 auto 0 0;padding:26px 16px;border-right:1px solid #e4e8f0;display:flex;flex-direction:column}.logo{width:153px;height:88px;object-fit:contain;margin:0 auto}.brand-caption{text-align:center;font-size:9px;letter-spacing:2px;color:#8090a5;margin:12px 0 28px}.sidebar nav{display:grid;gap:5px}.nav{width:100%;border:0;background:none;text-align:left;padding:12px 14px;color:#637087;border-radius:9px;display:flex;align-items:center;gap:12px;font-weight:600}.nav svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6}.nav.active{background:#eeeaf9;color:#51439a}.nav:hover{background:#f3f4f9}.sidebar-foot{margin-top:auto;padding:20px 5px 0;display:flex;align-items:center;gap:9px;font-size:12px}.sidebar-foot small{display:block;font-size:9px;color:#8190a0;margin-top:4px}.avatar{width:35px;height:35px;border-radius:50%;background:#e9e4f6;color:#51439a;display:grid;place-items:center;font-weight:700}.workspace{margin-left:230px}.demo{padding:9px 28px;font-size:11px;background:#ece8f6;color:#5e527e}.top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:27px 34px 19px;background:#f4f6fa}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#7f8aa1;font-weight:700}h1{font-size:29px;margin:5px 0 0;letter-spacing:-1px}h2{font-size:19px;margin:0 0 7px}h3{font-size:15px;margin:0 0 8px}p{line-height:1.6}.local-label{font-size:11px;color:#708097;display:grid;gap:5px}select,input{border:1px solid #dce2ec;border-radius:7px;padding:9px;background:white;color:#34445c}main{padding:8px 34px 30px;max-width:1600px;margin:auto}.hero{background:#51439a;border-radius:15px;color:white;display:flex;justify-content:space-between;align-items:center;padding:25px 28px;margin-bottom:21px;gap:20px}.hero h2{font-size:24px}.hero p{color:#e3ddf7;margin:5px 0 0}.hero .outline{background:transparent;color:white;border-color:#aaa0cd}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:22px}.metric{background:white;padding:20px;border:1px solid #e5e9f1;border-radius:12px}.metric .label{font-size:12px;color:#718099}.metric strong{display:block;font-size:27px;letter-spacing:-.8px;margin:10px 0 6px}.metric small{font-size:11px;color:#8b96a7}.grid{display:grid;grid-template-columns:1.6fr 1fr;gap:20px}.panel{background:white;border:1px solid #e4e8f0;border-radius:12px;padding:22px;margin-bottom:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:19px}.muted{color:#8190a4;font-size:12px}.btn,.outline{display:inline-block;text-decoration:none;border:1px solid #51439a;background:#51439a;color:white;padding:10px 14px;border-radius:7px;font-weight:600;font-size:12px}.outline{background:white;color:#51439a;border-color:#ded8ed}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:12px}th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#8591a2;background:#f8f9fc}th,td{padding:14px 11px;border-bottom:1px solid #edf0f5}td strong{font-weight:600}.person{background:none;border:0;color:#26364b;font-weight:600;padding:0;text-align:left}.person:hover{text-decoration:underline}.badge{display:inline-block;border-radius:5px;padding:5px 8px;font-size:10px;font-weight:600;background:#eef1f6;color:#68788f}.badge.purple{background:#eee9fa;color:#6550a6}.badge.blue{background:#e2f3fa;color:#007b9e}.badge.green{background:#e5f4ed;color:#287d58}.badge.orange{background:#fff1dc;color:#956323}.status{font-size:11px;padding:6px;max-width:116px}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px;border:1px solid #0002}.dot.g{background:#36a475}.dot.y{background:#e5b342}.dot.r{background:#de6373}.dot.n{background:#cbd2df}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #edf0f5}.row:last-child{border-bottom:0}.row small{display:block;margin-top:4px;color:#8490a4;font-size:11px}.bar{height:7px;background:#eff1f7;border-radius:9px;overflow:hidden;margin:10px 0 20px}.bar span{display:block;height:100%;background:#8c7bc2}.tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.chips{display:flex;gap:8px;flex-wrap:wrap}.hint{padding:14px 16px;background:#eef5f8;border-radius:8px;color:#527080;font-size:12px;line-height:1.6}.empty{padding:30px;text-align:center;color:#8793a6}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.summary>div{padding:15px;background:#f5f6fa;border-radius:9px}.summary strong{display:block;font-size:22px;margin-top:8px}dialog{width:min(840px,94vw);border:0;border-radius:16px;padding:28px;color:#26364b;max-height:90vh;box-shadow:0 20px 70px #18244344}dialog::backdrop{background:#18244377}.dialog-head{display:flex;justify-content:space-between;gap:15px;margin-bottom:24px}dialog h2{margin-top:6px}dialog .panel{padding:16px}#notice{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#26364b;color:white;border-radius:10px;padding:13px 22px;display:none;z-index:5}footer{font-size:10px;color:#8995a7;padding:0 34px 22px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.number{font-size:26px;font-weight:700;color:#51439a}.date{background:#eeeaf9;color:#51439a;border-radius:9px;padding:12px 15px;text-align:center;font-weight:700}.date small{display:block;font-size:10px}.actions{display:flex;gap:10px;flex-wrap:wrap}.flow{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.flow span{background:#f0edf8;padding:8px 11px;border-radius:6px;font-size:11px;color:#65558c}@media(max-width:1050px){.sidebar{width:190px}.workspace{margin-left:190px}.top,main{padding-left:20px;padding-right:20px}.metrics{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.cards{grid-template-columns:1fr}}@media(max-width:650px){.sidebar{position:static;width:auto;padding:10px}.logo{width:100px;height:58px}.brand-caption,.sidebar-foot{display:none}.sidebar nav{display:flex;overflow-x:auto;margin-top:8px}.nav{white-space:nowrap;width:auto;padding:10px}.nav svg{display:none}.workspace{margin-left:0}.top{align-items:flex-start}.top h1{font-size:24px}.local-label select{max-width:155px}.demo{padding:9px 15px}.hero{padding:20px;display:block}.hero .outline{margin-top:15px}.metrics{gap:9px}.metric{padding:14px}.metric strong{font-size:23px}.summary{grid-template-columns:1fr}main{padding:5px 14px}.panel{padding:15px}footer{padding:14px}.top{padding:20px 14px}.panel-head{align-items:flex-start;flex-wrap:wrap}}
.workflow-form{display:grid;gap:16px}.workflow-form label{display:grid;gap:7px;font-size:12px;color:#65748a}.workflow-form input,.workflow-form select,.workflow-form textarea{width:100%;padding:11px;border:1px solid #dce2ec;border-radius:7px;font:inherit;color:#26364b}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-error{color:#b2304b;font-weight:600;margin:0}.receipt header{display:flex;gap:25px;align-items:center}.receipt header img{width:120px}.receipt .summary{margin:18px 0}.receipt .summary strong{font-size:20px}#print-receipt{display:none}@media(max-width:600px){.form-grid{grid-template-columns:1fr}}@media print{@page{size:8.5in 5.5in;margin:10mm}body>aside,body>.workspace,dialog,#notice{display:none!important}#print-receipt{display:block!important;color:#222}#print-receipt .receipt{font-size:10px}#print-receipt .receipt header img{width:100px}#print-receipt .summary strong{font-size:17px}#print-receipt .row{padding:6px 0}#print-receipt .summary{grid-template-columns:repeat(3,1fr)}body{background:white}}
.calendar-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.calendar-tools .tabs{margin:0}.calendar-scroll{overflow:auto;max-height:70vh;border:1px solid #e1deeb;border-radius:8px}.calendar-table{table-layout:fixed;min-width:1000px;white-space:normal}.calendar-table th:first-child{width:64px}.calendar-table th{position:sticky;top:0;z-index:1;background:#eeeaf7}.calendar-table td{vertical-align:top;border:1px solid #e2dfed;height:45px;padding:4px;background:#faf9fd}.cal-card{display:block;width:100%;text-align:left;margin:2px 0 5px;padding:7px;background:#eee8fa;border:1px solid #c9bce7;border-left:3px solid #7560ad;border-radius:5px;color:#34415b;font-size:11px;white-space:normal;overflow-wrap:anywhere}.cal-card strong,.cal-card span{display:block}.cal-card span{font-size:10px;margin-top:4px}.cal-card .dot{width:8px;height:8px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(135px,1fr));min-width:945px}.month-label{padding:12px;text-align:center;background:#eeeaf7;font-weight:600}.month-cell{min-height:120px;padding:6px;border:1px solid #e7e3ee;background:#fff}.month-cell.outside{background:#f3f4f7}.day-number{border:0;background:none;font:inherit;color:#51439a;cursor:pointer;padding:4px;font-weight:600}

.patient-name{background:none;border:0;padding:8px 0;color:#51439a;font:inherit;font-weight:600;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.patient-name:hover{color:#008eb5}.patient-name:focus-visible{outline:2px solid #51439a;outline-offset:4px}

.lens-progress{display:flex;list-style:none;padding:0;gap:12px;margin:24px 0}.lens-progress li{flex:1;border-top:4px solid #dedde8;padding-top:12px;color:#6e7484}.lens-progress li.done{border-color:#16a5bc;color:#51439a}.lens-progress span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eeebf6;margin-right:8px}.lens-progress li.done span{background:#16a5bc;color:white}.lens-progress strong{font-size:12px}@media(max-width:600px){.lens-progress{flex-direction:column}}

/* Estados de cita: independientes del semáforo clínico. */
.event.appointment-state-0,.status-key.appointment-state-0{background:#edf0f4;color:#364152;border-color:#768397}
.event.appointment-state-1,.status-key.appointment-state-1{background:#e3efff;color:#174680;border-color:#2878cc}
.event.appointment-state-2,.status-key.appointment-state-2{background:#fff1cd;color:#704b00;border-color:#d39713}
.event.appointment-state-3,.status-key.appointment-state-3{background:#e1f4e9;color:#18583b;border-color:#29905c}
.event.appointment-state-4,.status-key.appointment-state-4{background:#fde6e9;color:#8d2034;border-color:#d74760}
.status-legend{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 16px}.status-key{padding:6px 10px;border-left:5px solid;border-radius:6px;font-size:12px;font-weight:600}.event[class*="appointment-state-"]{border-left-width:5px}

.appointment-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:7px;vertical-align:middle;border:1px solid #0002}.appointment-dot-0{background:#768397}.appointment-dot-1{background:#2878cc}.appointment-dot-2{background:#d39713}.appointment-dot-3{background:#29905c}.appointment-dot-4{background:#d74760}.clinical-indicator{padding-top:4px}

.settings-nav{margin-top:14px;border-top:1px solid #e5e0ee;padding-top:14px}.settings-nav summary{cursor:pointer;color:#51439a;font-weight:700;padding:12px}.settings-nav .nav{padding-left:28px;font-size:14px}
