    :root{--blue:#0A84FF;--blue-dim:#0066CC;--orange:#FF6B00;--green:#30D158;--red:#FF453A;--yellow:#FFD60A;--purple:#BF5AF2;--bg:#0A0C10;--bg2:#111318;--bg3:#181C24;--border:rgba(255,255,255,0.08);--border-hover:rgba(255,255,255,0.2);--text:#E8EAF0;--text-dim:#7A8290;--topbar-bg:rgba(10,12,16,0.95);--nav-bg:rgba(10,12,16,0.97);--mono:'Space Mono',monospace;--sans:'Inter',sans-serif;}
    [data-theme="light"]{--bg:#F2F2F7;--bg2:#FFFFFF;--bg3:#EFEFF4;--border:rgba(0,0,0,0.1);--border-hover:rgba(0,0,0,0.2);--text:#1C1C1E;--text-dim:#6E6E73;--topbar-bg:rgba(242,242,247,0.95);--nav-bg:rgba(242,242,247,0.97);}
    *{margin:0;padding:0;box-sizing:border-box;}
    body{font-family:var(--sans);background:var(--bg);color:var(--text);min-height:100vh;transition:background 0.25s,color 0.25s;}
    input,select,textarea{font-family:var(--sans);font-size:0.875rem;width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:0.65rem 0.9rem;outline:none;transition:border 0.2s;}
    input:focus,select:focus,textarea:focus{border-color:var(--blue);}
    select option{background:var(--bg3);}
    button{cursor:pointer;font-family:var(--sans);font-size:0.85rem;font-weight:500;border:none;border-radius:8px;padding:0.65rem 1.25rem;transition:all 0.2s;}
    .btn-blue{background:var(--blue);color:white;}.btn-blue:hover{background:#2296FF;transform:translateY(-1px);}
    .btn-ghost{background:transparent;color:var(--text-dim);border:1px solid var(--border);}.btn-ghost:hover{border-color:var(--border-hover);color:var(--text);}
    .btn-red{background:rgba(255,69,58,0.15);color:var(--red);border:1px solid rgba(255,69,58,0.25);}.btn-red:hover{background:rgba(255,69,58,0.25);}
    .btn-purple{background:rgba(191,90,242,0.15);color:var(--purple);border:1px solid rgba(191,90,242,0.25);}.btn-purple:hover{background:rgba(191,90,242,0.25);}
    .btn-sm{padding:0.4rem 0.8rem;font-size:0.78rem;}
    #login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;}
    .login-box{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:2.5rem;width:100%;max-width:380px;}
    .login-logo{font-family:var(--mono);font-size:1.2rem;font-weight:700;color:var(--blue);margin-bottom:0.25rem;}
    .login-sub{font-size:0.8rem;color:var(--text-dim);margin-bottom:2rem;}
    .login-box label{font-size:0.72rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.08em;display:block;margin-bottom:0.4rem;margin-top:1rem;}
    .login-err{color:var(--red);font-size:0.8rem;margin-top:0.75rem;display:none;}
    #app{display:none;min-height:100vh;}
    .topbar{position:fixed;top:0;left:0;right:0;z-index:100;background:var(--topbar-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:flex-end;justify-content:space-between;padding:0 1.5rem 0.75rem;padding-top:max(0.75rem, env(safe-area-inset-top));height:calc(56px + env(safe-area-inset-top));}
    .topbar-logo{font-family:var(--mono);font-size:0.95rem;font-weight:700;color:var(--text);letter-spacing:0.08em;}
    .topbar-logo span{color:var(--blue);}
    .topbar-right{display:flex;align-items:center;gap:0.75rem;}
    .topbar-user{font-size:0.78rem;color:var(--text-dim);}
    .master-badge{font-size:0.65rem;font-family:var(--mono);background:rgba(191,90,242,0.15);color:var(--purple);border:1px solid rgba(191,90,242,0.3);border-radius:100px;padding:0.2rem 0.6rem;letter-spacing:0.05em;}
    .main{padding-top:calc(56px + env(safe-area-inset-top));display:grid;grid-template-columns:220px 1fr;min-height:100vh;}
    .sidebar{background:var(--bg2);border-right:1px solid var(--border);padding:1.5rem 0;position:sticky;top:56px;height:calc(100vh - 56px);overflow-y:auto;}
    .sidebar-item{display:flex;align-items:center;gap:0.75rem;padding:0.7rem 1.5rem;font-size:0.85rem;color:var(--text-dim);cursor:pointer;transition:all 0.15s;border-left:3px solid transparent;}
    .sidebar-item:hover{color:var(--text);background:rgba(255,255,255,0.04);}
    .sidebar-item.active{color:var(--blue);border-left-color:var(--blue);background:rgba(10,132,255,0.08);}
    .sidebar-item.master-item{color:var(--purple);}
    .sidebar-item.master-item.active{color:var(--purple);border-left-color:var(--purple);background:rgba(191,90,242,0.08);}
    .sidebar-icon{font-size:1rem;width:20px;text-align:center;}
    .sidebar-section{font-family:var(--mono);font-size:0.6rem;color:var(--text-dim);letter-spacing:0.15em;text-transform:uppercase;padding:1.5rem 1.5rem 0.5rem;opacity:0.5;}
    .content{padding:2rem;background:var(--bg);}
    .page{display:none;}.page.active{display:block;}
    .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:2rem;}
    .stat-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:1.25rem;}
    .stat-label{font-size:0.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:0.5rem;font-family:var(--mono);}
    .stat-num{font-family:var(--mono);font-size:2rem;font-weight:700;}
    .stat-num.blue{color:var(--blue);}.stat-num.green{color:var(--green);}.stat-num.orange{color:var(--orange);}.stat-num.yellow{color:var(--yellow);}.stat-num.purple{color:var(--purple);}
    .table-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;flex-wrap:wrap;gap:1rem;}
    .table-title{font-family:var(--mono);font-size:1rem;font-weight:700;}
    .search-box{position:relative;}.search-box input{width:240px;padding-left:2rem;}
    .search-icon{position:absolute;left:0.7rem;top:50%;transform:translateY(-50%);color:var(--text-dim);font-size:0.9rem;}
    .table-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:12px;overflow:hidden;overflow-x:auto;}
    table{width:100%;border-collapse:collapse;min-width:600px;}
    th{font-family:var(--mono);font-size:0.65rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.1em;padding:0.9rem 1rem;text-align:left;border-bottom:1px solid var(--border);background:var(--bg3);font-weight:400;}
    td{padding:0.85rem 1rem;font-size:0.85rem;border-bottom:1px solid var(--border);vertical-align:middle;}
    tr:last-child td{border-bottom:none;}
    tr:hover td{background:rgba(255,255,255,0.02);}
    .empty-row td{text-align:center;color:var(--text-dim);padding:3rem;}
    .badge{display:inline-flex;align-items:center;font-size:0.7rem;font-family:var(--mono);padding:0.25rem 0.6rem;border-radius:100px;font-weight:700;}
    .badge-recibido{background:rgba(122,130,144,0.15);color:var(--text-dim);border:1px solid rgba(122,130,144,0.3);}
    .badge-diagnostico{background:rgba(255,214,10,0.12);color:var(--yellow);border:1px solid rgba(255,214,10,0.3);}
    .badge-reparacion{background:rgba(10,132,255,0.12);color:var(--blue);border:1px solid rgba(10,132,255,0.3);}
    .badge-listo{background:rgba(48,209,88,0.12);color:var(--green);border:1px solid rgba(48,209,88,0.3);}
    .badge-entregado{background:rgba(255,255,255,0.06);color:var(--text-dim);border:1px solid var(--border);}
    .badge-cotizacion{background:rgba(191,90,242,0.12);color:#bf5af2;border:1px solid rgba(191,90,242,0.3);}
    .badge-crear{background:rgba(48,209,88,0.12);color:var(--green);border:1px solid rgba(48,209,88,0.3);}
    .estado-select{font-size:0.7rem;font-family:var(--mono);font-weight:700;border-radius:100px;padding:0.25rem 0.5rem;border:1px solid;cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%23888'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0.4rem center;padding-right:1.2rem;}
    .estado-select.recibido{background-color:rgba(122,130,144,0.15);color:var(--text-dim);border-color:rgba(122,130,144,0.3);}
    .estado-select.diagnostico{background-color:rgba(255,214,10,0.12);color:var(--yellow);border-color:rgba(255,214,10,0.3);}
    .estado-select.reparacion{background-color:rgba(10,132,255,0.12);color:var(--blue);border-color:rgba(10,132,255,0.3);}
    .estado-select.cotizacion{background-color:rgba(191,90,242,0.12);color:#bf5af2;border-color:rgba(191,90,242,0.3);}
    .estado-select.listo{background-color:rgba(48,209,88,0.12);color:var(--green);border-color:rgba(48,209,88,0.3);}
    .estado-select.entregado{background-color:rgba(255,255,255,0.06);color:var(--text-dim);border-color:var(--border);}
    .badge-editar{background:rgba(10,132,255,0.12);color:var(--blue);border:1px solid rgba(10,132,255,0.3);}
    .badge-eliminar{background:rgba(255,69,58,0.12);color:var(--red);border:1px solid rgba(255,69,58,0.3);}
    .badge-estado{background:rgba(255,214,10,0.12);color:var(--yellow);border:1px solid rgba(255,214,10,0.3);}
    .user-pill{display:inline-flex;align-items:center;gap:0.3rem;font-size:0.75rem;font-family:var(--mono);padding:0.2rem 0.6rem;border-radius:100px;}
    .user-Alan{background:rgba(191,90,242,0.15);color:var(--purple);border:1px solid rgba(191,90,242,0.3);}
    .user-Azul{background:rgba(10,132,255,0.12);color:var(--blue);border:1px solid rgba(10,132,255,0.3);}
    .user-Alonso{background:rgba(48,209,88,0.12);color:var(--green);border:1px solid rgba(48,209,88,0.3);}
    .modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.75);z-index:500;align-items:center;justify-content:center;padding:1rem;}
    .modal-overlay.open{display:flex;}
    .modal{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:2rem;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;}
    .modal-title{font-family:var(--mono);font-size:1rem;font-weight:700;margin-bottom:1.5rem;}
    .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
    .form-grid .full{grid-column:1/-1;}
    .form-group label{font-size:0.72rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.08em;display:block;margin-bottom:0.4rem;}
    .modal-actions{display:flex;gap:0.75rem;justify-content:flex-end;margin-top:1.5rem;}
    .detail-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap;}
    .detail-folio{font-family:var(--mono);font-size:0.7rem;color:var(--blue);letter-spacing:0.15em;text-transform:uppercase;margin-bottom:0.25rem;}
    .detail-name{font-family:var(--mono);font-size:1.3rem;font-weight:700;}
    .detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;}
    .detail-card{background:var(--bg3);border:1px solid var(--border);border-radius:10px;padding:1rem;}
    .detail-card-label{font-size:0.68rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.08em;font-family:var(--mono);margin-bottom:0.35rem;}
    .detail-card-value{font-size:0.9rem;}
    .estado-buttons{display:flex;gap:0.5rem;flex-wrap:wrap;margin-top:0.75rem;}
    .estado-btn{font-size:0.75rem;padding:0.4rem 0.85rem;border-radius:100px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;transition:all 0.2s;}
    .active-recibido{background:rgba(122,130,144,0.2);color:var(--text);border-color:rgba(122,130,144,0.4);}
    .active-diagnostico{background:rgba(255,214,10,0.15);color:var(--yellow);border-color:rgba(255,214,10,0.4);}
    .active-reparacion{background:rgba(10,132,255,0.15);color:var(--blue);border-color:rgba(10,132,255,0.4);}
    .active-listo{background:rgba(48,209,88,0.15);color:var(--green);border-color:rgba(48,209,88,0.4);}
    .active-entregado{background:rgba(255,255,255,0.08);color:var(--text);border-color:rgba(255,255,255,0.2);}
    .audit-row{display:flex;gap:1rem;padding:0.85rem 1rem;border-bottom:1px solid var(--border);align-items:flex-start;}
    .audit-row:last-child{border-bottom:none;}
    .audit-row:hover{background:rgba(255,255,255,0.02);}
    .audit-time{font-family:var(--mono);font-size:0.7rem;color:var(--text-dim);white-space:nowrap;min-width:100px;}
    .audit-detail{font-size:0.83rem;flex:1;}
    .audit-sub{font-size:0.75rem;color:var(--text-dim);margin-top:0.2rem;}
    .stat-num.red{color:var(--red);}
    .badge-ingreso{background:rgba(48,209,88,0.12);color:var(--green);border:1px solid rgba(48,209,88,0.3);}
    .badge-gasto{background:rgba(255,69,58,0.12);color:var(--red);border:1px solid rgba(255,69,58,0.3);}bottom:5rem;right:1rem;z-index:9999;background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:0.9rem 1.25rem;font-size:0.85rem;display:none;max-width:280px;}
    .notif.show{display:block;}
    .notif.success{border-color:rgba(48,209,88,0.4);color:var(--green);}
    .notif.error{border-color:rgba(255,69,58,0.4);color:var(--red);}
    /* Tarjetas ajustables Maestro */
    .ajuste-card{cursor:default;transition:border-color 0.2s,box-shadow 0.2s;}
    .ajuste-card.maestro-editable{cursor:pointer;}
    .ajuste-card.maestro-editable:hover{border-color:rgba(191,90,242,0.4)!important;box-shadow:0 0 0 2px rgba(191,90,242,0.12);}
    .ajuste-hint{font-size:0.6rem;color:rgba(191,90,242,0.7);font-family:var(--mono);margin-left:0.3rem;display:none;}
    .maestro-editable .ajuste-hint{display:inline;}
    /* Calendario */
    .cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:0.2rem;border-radius:6px;cursor:pointer;transition:background 0.15s;position:relative;min-height:34px;}
    .cal-day:hover{background:rgba(255,255,255,0.07);}
    .cal-day.otroMes .cal-num{opacity:0.25;}
    .cal-day.hoy .cal-num{background:var(--blue);color:white;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;}
    .cal-day.seleccionado{background:rgba(10,132,255,0.14);border:1px solid rgba(10,132,255,0.3);}
    .cal-num{font-family:var(--mono);font-size:0.72rem;font-weight:700;line-height:1;margin-top:0.15rem;}
    .cal-dots{display:flex;gap:2px;margin-top:3px;flex-wrap:wrap;justify-content:center;max-width:28px;}
    .cal-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;}
    /* Visita card */
    .visita-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:1rem 1.1rem;margin-bottom:0.7rem;display:grid;grid-template-columns:auto 1fr auto;gap:0.9rem;align-items:centerart;transition:border-color 0.2s;}
    .visita-card:hover{border-color:rgba(255,255,255,0.15);}
    .visita-card.completado{border-left:3px solid var(--green);}
    .visita-card.cancelado{border-left:3px solid var(--red);opacity:0.65;}
    .visita-card.en_camino{border-left:3px solid var(--orange);}
    .visita-card.programado{border-left:3px solid var(--blue);}
    .visita-card.por_programar{border-left:3px solid var(--text-dim);}
    .visita-card.en_proceso{border-left:3px solid var(--yellow);}
    .visita-fecha-col{display:flex;flex-direction:column;align-items:center;min-width:48px;padding-top:0.1rem;}
    .visita-dia-num{font-family:var(--mono);font-size:1.5rem;font-weight:700;line-height:1;color:var(--text);}
    .visita-dia-nombre{font-family:var(--mono);font-size:0.6rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.08em;margin-top:0.1rem;}
    .visita-mes{font-family:var(--mono);font-size:0.58rem;color:var(--blue);margin-top:0.05rem;text-transform:uppercase;}
    .visita-hora-pill{font-family:var(--mono);font-size:0.72rem;background:rgba(10,132,255,0.1);color:var(--blue);border:1px solid rgba(10,132,255,0.25);border-radius:100px;padding:0.15rem 0.5rem;margin-top:0.4rem;white-space:nowrap;}
    .visita-nombre{font-weight:600;font-size:0.92rem;margin-bottom:0.2rem;}
    .visita-desc{font-size:0.78rem;color:var(--text-dim);margin-bottom:0.45rem;line-height:1.4;}
    .visita-info-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;}
    .visita-tag{display:inline-flex;align-items:center;gap:0.25rem;font-size:0.73rem;color:var(--text-dim);}
    .dia-grupo-label{font-family:var(--mono);font-size:0.68rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.12em;padding:0.5rem 0 0.4rem;border-bottom:1px solid var(--border);margin-bottom:0.6rem;margin-top:0.5rem;}
    .dia-grupo-label:first-child{margin-top:0;}
    @media(max-width:900px){#agenda-layout{grid-template-columns:1fr!important;}}
    @media(max-width:768px){.visita-card{grid-template-columns:auto 1fr;}.visita-card > div:last-child{grid-column:1/-1;display:flex;gap:0.5rem;}}

    /* MOBILE CARD LIST — hidden on desktop */
    .mobile-list{display:none !important;}
    .m-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:1rem;margin-bottom:0.75rem;cursor:pointer;transition:border-color 0.2s;}
    .m-card:hover{border-color:rgba(10,132,255,0.3);}
    .m-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.6rem;}
    .m-card-folio{font-family:var(--mono);font-size:0.82rem;color:var(--blue);font-weight:700;}
    .m-card-name{font-size:0.9rem;font-weight:500;margin-bottom:0.2rem;}
    .m-card-phone{font-size:0.8rem;color:var(--blue);}
    .m-card-equipo{font-size:0.82rem;color:var(--text-dim);margin:0.35rem 0;}
    .m-card-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:0.5rem;}
    .m-card-actions{display:flex;gap:0.5rem;margin-top:0.75rem;}
    .m-card-actions button{flex:1;padding:0.55rem;font-size:0.78rem;}
    .categ-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start;}
    .dash-analisis-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;}

    @media(max-width:768px){
      .main{grid-template-columns:1fr;}
      .sidebar{display:none;}
      .form-grid{grid-template-columns:1fr;}
      .detail-grid{grid-template-columns:1fr;}
      .stats-grid{display:grid;grid-template-columns:calc(50% - 0.375rem) calc(50% - 0.375rem);gap:0.75rem;width:100%;box-sizing:border-box;}
      .stat-card{padding:0.875rem;min-width:0;overflow:hidden;box-sizing:border-box;}
      .categ-grid{grid-template-columns:1fr;}
      .dash-analisis-grid{grid-template-columns:1fr;}
      .stat-num{font-size:1.6rem;}
      .content{padding:1rem 0.85rem 5.5rem;overflow-x:hidden;max-width:100vw;box-sizing:border-box;padding-top:calc(1rem + env(safe-area-inset-top));}
      .table-header{flex-direction:column;align-items:flex-start;gap:0.75rem;}
      .table-header > div:last-child{width:100%;flex-wrap:wrap;}
      .table-header > div:last-child input,
      .table-header > div:last-child select{width:100%;}
      .search-box{width:100%;}.search-box input{width:100%;}
      .modal{border-radius:20px 20px 0 0;max-height:94vh;margin-top:auto;width:100%;max-width:100%;}
      .modal-overlay{align-items:flex-end;padding:0;}
      .topbar{padding:0 1rem;}
      .topbar-logo span:last-of-type{display:none;}
      .desktop-table{display:none !important;}
      .mobile-list{display:block !important;}
      .table-wrap{overflow-x:auto;width:100%;}
      td,th{padding:0.7rem 0.5rem;font-size:0.78rem;}
    }
    /* BOTTOM NAV MÓVIL */
    .bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--nav-bg);backdrop-filter:blur(16px);border-top:1px solid var(--border);padding:0.5rem 0;padding-bottom:max(0.5rem, env(safe-area-inset-bottom));}
    .bottom-nav-items{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:0;scrollbar-width:none;}
    .bottom-nav-items::-webkit-scrollbar{display:none;}
    .bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:0.2rem;padding:0.5rem 0;cursor:pointer;color:var(--text-dim);transition:color 0.15s;font-size:0.65rem;font-family:var(--mono);letter-spacing:0.04em;border:none;background:none;flex:0 0 33.333vw;min-width:33.333vw;}
    .bottom-nav-item.active{color:var(--blue);}
    .bottom-nav-item.master{color:var(--purple);}
    .bottom-nav-item.master.active{color:var(--purple);}
    .bottom-nav-icon{font-size:1.25rem;}
    @media(max-width:768px){html,body{overflow-x:hidden;max-width:100vw;} .bottom-nav{display:block;}}
