@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(/assets/inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(/assets/inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(/assets/inter-greek-400-normal-q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(/assets/inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--primary:#004a99;--primary-light:#e0f2fe;--secondary:#f1f5f9;--accent:#10b981;--warning:#f59e0b;--danger:#ef4444;--text-main:#1e293b;--text-muted:#64748b;--white:#fff;--border:#e2e8f0;--sidebar-width:260px}*{box-sizing:border-box;margin:0;padding:0;font-family:Inter,Segoe UI,Tahoma,Geneva,Verdana,sans-serif}body{background-color:var(--secondary);color:var(--text-main);height:100vh;margin:0;overflow:hidden}#app-container{width:100%;height:100vh;display:flex}.main-content{flex-direction:column;flex-grow:1;display:flex;overflow:hidden}header{border-bottom:1px solid var(--border);background:#fff;align-items:center;width:100%;max-width:1400px;margin:0 auto;padding:1.5rem 2rem;display:flex}header h2{text-align:center;flex:1;font-size:1.8rem;font-weight:700}#view-container{flex-direction:column;flex:1;min-height:0;display:flex}.view-area{flex-grow:1;width:100%;max-width:1400px;min-height:0;margin:0 auto;padding:2rem;overflow-y:auto}.sidebar{width:var(--sidebar-width);color:#fff;background-color:#036;flex-direction:column;flex-shrink:0;padding:1.5rem;display:flex}.logo{color:#fff;align-items:center;gap:10px;margin-bottom:4rem;font-size:1.6rem;font-weight:700;text-decoration:none;display:flex}.nav-menu{flex-direction:column;gap:.5rem;list-style:none;display:flex}.nav-link{cursor:pointer;color:#ffffffb3;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;text-decoration:none;transition:all .3s;display:flex}.nav-link:hover,.nav-link.active{background-color:var(--primary);color:#fff}.stats-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem;margin-bottom:2rem;display:grid}.stat-card{border:1px solid var(--border);background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 2px 4px #0000000d}.stat-card .label{color:var(--text-muted);font-size:.8rem;font-weight:600}.stat-card .value{color:var(--primary);margin-top:5px;font-size:1.5rem;font-weight:700}.card{border:1px solid var(--border);background:#fff;border-radius:12px;margin-bottom:2rem;box-shadow:0 4px 6px -1px #0000001a}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.card-header-agenda{flex-wrap:wrap;gap:.5rem}.card-header-controls{flex-wrap:wrap;align-items:center;gap:15px;display:flex}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--text-muted);text-transform:uppercase;background:#f8fafc;padding:1.25rem 1.5rem;font-size:.8rem;font-weight:700}td{border-bottom:1px solid var(--border);padding:.75rem 1.5rem;font-size:.95rem}tr:hover{background-color:#f8fafc}.badge{border-radius:20px;padding:4px 10px;font-size:.75rem;font-weight:600}.badge-ok{color:#b1cfbd;background:#107b37;border:1px solid #14532d}.badge-error{color:#ef4444;background:#fee2e2;border:1px solid #fecdd3}.badge-blue{color:#1e40af;background:#dbeafe}.badge-green{color:#166534;background:#dcfce7;border:1px solid #bbf7d0}.badge-amber{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.badge-red{color:#b91c1c;background:#fee2e2}.badge-purple{color:#6b21a8;background:#f3e8ff}.badge-teal{color:#0f766e;background:#ccfbf1}.badge-indigo{color:#3730a3;background:#e0e7ff}.badge-pink{color:#9d174d;background:#fce7f3}.badge-sillon-1{color:#fff;background:#b31dd8;border:none;font-weight:700}.badge-sillon-2{color:#fff;background:#059669;border:none;font-weight:700}.badge-sillon-3{color:#fff;background:#d97706;border:none;font-weight:700}.badge-sillon-4{color:#fff;background:#dc2626;border:none;font-weight:700}.badge-sillon-5{color:#fff;background:#879111;border:none;font-weight:700}.badge-sillon-6{color:#fff;background:#0824b2;border:none;font-weight:700}.btn{cursor:pointer;border:1px solid var(--border);background:#fff;border-radius:6px;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .2s;display:flex}.btn-primary{background:var(--primary);color:#fff;border:none}.btn-primary:hover{background:#036}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;opacity:0;background:#0f172a66;justify-content:center;align-items:center;width:100%;height:100%;padding:1rem;transition:opacity .3s;display:none;position:fixed;top:0;left:0;overflow-y:auto}.modal-overlay.active{opacity:1;display:flex}.modal-content{background:#fff;border-radius:16px;width:400px;max-width:95%;transition:transform .3s;transform:scale(.95);box-shadow:0 25px 50px -12px #00000040}.modal-overlay.active .modal-content{transform:scale(1)}.modal-header{border-bottom:1px solid var(--border);background:var(--primary);color:#fff;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-header h3{color:#fff;align-items:center;gap:10px;font-size:1.25rem;display:flex}.modal-header button{color:#fff;cursor:pointer;background:0 0;border:none;font-size:1.5rem}.modal-body{padding:1.5rem;overflow-x:hidden}.modal-footer{border-top:1px solid var(--border);background:#f8fafc;border-bottom-right-radius:16px;border-bottom-left-radius:16px;justify-content:flex-end;gap:10px;padding:1rem 1.5rem;display:flex}.modal-form-grid{grid-template-columns:1fr;gap:15px;display:grid}.label{color:var(--text-main);margin-bottom:6px;font-size:.85rem;font-weight:600;display:block}.input-field{border:1px solid var(--border);border-radius:8px;outline:none;padding:10px 12px;font-size:.95rem;transition:all .2s}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}input[type=date].input-field{max-width:100%}.notification{color:#fff;z-index:2000;opacity:0;background:#dc2626;border-radius:12px;align-items:center;gap:16px;max-width:90%;padding:16px 24px;font-size:1.2rem;font-weight:600;transition:opacity .3s,transform .3s;display:none;position:fixed;top:20px;left:50%;transform:translate(-50%)translateY(-20px);box-shadow:0 8px 30px #0003}.notification.show{opacity:1;transform:translate(-50%)translateY(0)}.notification-close{color:#fff;cursor:pointer;opacity:.8;background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1}.notification-close:hover{opacity:1}.login-screen{background:var(--secondary);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-box{text-align:center;background:#fff;border-radius:16px;width:360px;max-width:90vw;padding:3rem 2.5rem;box-shadow:0 20px 60px #0000001a}.login-icon{margin-bottom:1rem}.login-title{color:var(--primary);margin-bottom:.25rem;font-size:1.8rem}.login-subtitle{color:var(--text-muted);margin-bottom:1.5rem;font-size:.9rem}.login-form{flex-direction:column;gap:12px;display:flex}.login-btn{justify-content:center;width:100%;padding:12px;font-size:1rem}.login-error{color:var(--danger);min-height:1.2em;font-size:.85rem;font-weight:600}.hora-minuto-wrapper{align-items:end;gap:2px;display:flex}.hora-minuto-wrapper .hora-input,.hora-minuto-wrapper .min-input{text-align:center;width:80px}.hora-separador{color:var(--text-muted);padding-bottom:10px;font-size:1.3rem;font-weight:700;line-height:1}.detalle-grid{flex-direction:column;gap:1.25rem;display:flex}.detalle-field{flex-direction:column;gap:4px;display:flex}.detalle-label{text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px;font-size:.85rem;font-weight:700}.detalle-value{color:var(--text-main);font-size:1.35rem;font-weight:600}.apt-doc{border-left:4px solid var(--primary);color:#1e40af;background-color:#dbeafe}.apt-student{border-left:4px solid var(--warning);color:#92400e;background-color:#fef3c7}.apt-validating{border-left:4px solid var(--accent);color:#166534;background-color:#dcfce7}.agenda-header-cell{text-align:center;border-bottom:2px solid var(--border);border-right:1px solid var(--border);background:#f8fafc;padding:1rem;font-size:.8rem;font-weight:700}.time-cell{text-align:center;color:var(--text-muted);border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:#fcfcfd;height:80px;padding:1rem;font-size:.8rem;font-weight:700}.slot-cell{border-bottom:1px solid var(--border);border-right:1px solid var(--border);min-height:80px;padding:4px;position:relative}.apt{cursor:pointer;border-radius:6px;flex-direction:column;justify-content:center;height:100%;padding:8px;font-size:.75rem;transition:all .2s;display:flex}.upcoming-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.upcoming-header h2{color:var(--primary);align-items:center;gap:10px;font-size:1.3rem;display:flex}.upcoming-empty{text-align:center;border:2px dashed var(--border);color:var(--text-muted);background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:1rem;padding:4rem 2rem;display:flex}.upcoming-empty p{font-size:1.05rem}.upcoming-day-card{border:1px solid var(--border);background:#fff;border-radius:12px;margin-bottom:1rem;overflow:hidden;box-shadow:0 2px 4px #0000000a}.upcoming-today{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}.upcoming-day-header{border-bottom:1px solid var(--border);background:#f8fafc;align-items:start;padding:1rem 1.25rem;display:flex}.upcoming-day-left{flex-direction:column;flex:1;gap:4px;display:flex}.upcoming-day-badge{background:var(--primary);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:20px;align-self:flex-start;padding:2px 14px;font-size:.75rem;font-weight:700}.upcoming-today .upcoming-day-badge{background:var(--accent)}.upcoming-day-date{color:var(--text-main);font-size:.85rem;font-weight:600}.upcoming-day-today{color:var(--accent);text-transform:uppercase;font-size:.7rem;font-weight:700}.upcoming-day-count{color:var(--text-muted);background:var(--secondary);white-space:nowrap;border-radius:20px;padding:6px 16px;font-size:1rem;font-weight:700}.upcoming-citas-list{padding:.5rem 1.25rem}.upcoming-cita-item{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:12px;padding:.75rem 0;display:flex}.upcoming-cita-item:last-child{border-bottom:none}.upcoming-cita-item:hover{background:#f8fafc}.upcoming-cita-time{color:var(--primary);align-items:center;gap:6px;min-width:70px;font-size:.9rem;font-weight:700;display:flex}.upcoming-cita-name{flex:1;font-size:.95rem;font-weight:500}.view-area:has(.calendario-page){flex-direction:column;display:flex;overflow-y:auto}.calendario-page{flex-direction:column;flex:1;min-height:0;display:flex}.calendario-topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.calendario-nav{align-items:center;gap:8px;display:flex}.calendario-nav .btn{padding:4px 8px}.calendario-month-title{color:var(--text-main);text-transform:capitalize;text-align:center;min-width:200px;font-size:1.4rem;font-weight:700}.calendario-weekdays{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px;display:grid}.calendario-weekdays span{text-transform:uppercase;color:var(--text-muted);text-align:center;background:#f8fafc;border-radius:6px;padding:10px 8px;font-size:.75rem;font-weight:700}.calendario-grid{flex:1;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-cell{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:8px;flex-direction:column;min-height:0;padding:8px;transition:all .15s;display:flex;overflow:hidden}.cal-cell:hover{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary-light)}.cal-cell-other-month{opacity:.35}.cal-cell-other-month:hover{opacity:.6;border-color:var(--text-muted)}.cal-cell-today{border-color:var(--primary);background:#f0f7ff}.cal-cell-has-citas{background:#fafeff}.cal-cell-day{color:var(--text-muted);margin-bottom:4px;padding:2px 4px;font-size:1.1rem;font-weight:700}.cal-cell-today .cal-cell-day{color:var(--primary);font-size:1.2rem}.cal-cell-body{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.cal-cell-count{background:var(--primary-light);color:var(--primary);white-space:nowrap;border-radius:12px;align-items:center;padding:3px 12px;font-size:.8rem;font-weight:700;display:inline-flex}.cal-cell-citas{display:none}.cal-cell-cita{cursor:pointer;background:0 0;border:none;padding:0;font-size:0;transition:all .1s;position:relative}.cal-cell-cita:before{content:"";background:var(--primary);border-radius:50%;width:8px;height:8px;display:block}.cal-cell-cita-cancelada:before{background:var(--danger);opacity:.4}@media (width<=768px){body{font-size:16px;overflow-y:auto}#app-container{flex-direction:column;height:auto;min-height:100vh}.input-field{padding:14px 16px;font-size:18px}.label{font-size:1.1rem}td,th{padding:1rem 1.2rem;font-size:1.1rem}.btn{padding:12px 20px;font-size:1.1rem}.modal-content{width:98%}.upcoming-cita-time,.upcoming-cita-name{font-size:1.2rem}.upcoming-day-date{font-size:1.1rem}.upcoming-day-badge{padding:6px 16px;font-size:.9rem}.upcoming-day-count{font-size:.9rem}.stat-card .value{font-size:1.3rem}.stat-card .label{font-size:.85rem}.card-header-controls{flex-direction:column;align-items:stretch}.card-header-controls h3{text-align:center}.card-header-controls>div{justify-content:center}.pagination-container{text-align:center;flex-direction:column;align-items:center;gap:10px}.sidebar{flex-direction:row;justify-content:space-between;align-items:center;width:100%;height:auto;padding:1rem;position:relative}.menu-toggle{color:#fff;cursor:pointer;background:0 0;border:none;font-size:1.5rem;display:block}.nav-menu{z-index:100;background-color:#004a99;flex-direction:column;gap:.5rem;width:100%;padding:1rem;display:none;position:absolute;top:100%;left:0;box-shadow:0 4px 6px #0000001a}.nav-menu.active{display:flex}.view-area{padding:1rem}table{-webkit-overflow-scrolling:touch;width:100%;display:block;overflow-x:auto}.stats-grid{gap:.5rem}.stat-card{text-align:center;padding:.75rem .5rem}.modal-form-grid>div{min-width:0}.modal-form-grid input,.modal-form-grid select{box-sizing:border-box;min-width:0;max-width:100%}.badge[data-estado]{border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:0;display:inline-flex}.badge[data-estado=Agendado]:after{content:"✓";color:#166534;font-size:16px;font-weight:700}.badge[data-estado=Cancelado]:after{content:"✗";color:#991b1b;font-size:16px;font-weight:700}header h2{font-size:1.5rem}.upcoming-header h2{font-size:1.1rem}.card-header h3{font-size:1rem}.card-header-agenda h3{text-align:center;width:100%}.card-header .btn-primary{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;padding:0;font-size:1.5rem;display:flex}.calendario-month-title{min-width:0;font-size:.85rem}.cal-year{font-size:1.1rem;font-weight:700;display:block}.upcoming-cita-item{flex-wrap:wrap}.upcoming-cita-name{order:-1;width:100%}.upcoming-cita-time{min-width:auto}.calendario-weekdays span{padding:6px 0;font-size:0}.calendario-weekdays span:first-letter{color:var(--text-muted);font-size:.9rem;font-weight:700}.cal-cell{gap:2px;min-height:0;padding:4px}.cal-cell-day{margin-bottom:0;padding:2px 0;font-size:.95rem}.cal-cell-body{display:none}.cal-cell-citas{flex-flow:wrap;flex:1;justify-content:center;align-items:center;gap:3px;display:flex}.cal-cell-cita:nth-child(n+2),.cal-cell-count{display:none}.calendario-topbar{flex-direction:column;align-items:stretch}.calendario-nav{justify-content:center;gap:4px}}@media (width<=1024px){.cal-cell{min-height:0;padding:5px}.cal-cell-day{font-size:1rem}.cal-cell-today .cal-cell-day{font-size:1.1rem}.calendario-month-title{min-width:140px;font-size:1.3rem}}
