/* ===== PANEL DE RUTINAS (profesores) ===== */
:root{
  --bg-0:#050505; --bg-1:#0a0a0a; --bg-2:#111; --bg-3:#1a1a1a;
  --line:#1f1f1f; --line-2:#2a2a2a;
  --t1:#f5f5f5; --t2:#a3a3a3; --t3:#6b6b6b;
  --red:#ff1f3d; --red-2:#ff4d63;
  --red-glow:0 0 10px rgba(255,31,61,.5);
  --ff-body:'Inter',sans-serif;
  --ff-mono:'JetBrains Mono',monospace;
}
*,*:before,*:after{box-sizing:border-box}
body{margin:0;background:var(--bg-0);color:var(--t1);font-family:var(--ff-body);font-size:14px;line-height:1.55}
a{color:inherit;text-decoration:none}
.rutinas-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.rut-side{background:#000;border-right:1px solid var(--line);padding:24px 18px;display:flex;flex-direction:column;gap:24px;position:sticky;top:0;height:100vh}
.brand{font-weight:700;font-size:18px;letter-spacing:1px;color:#fff;display:inline-flex}
.brand-omega{color:#fff}
.brand-dot{color:var(--red);margin:0 2px}
.brand-fit{color:var(--t2)}
.rut-menu{display:flex;flex-direction:column;gap:4px;flex:1}
.rut-menu a{padding:10px 12px;border-radius:6px;font-size:13px;color:var(--t2);border-left:2px solid transparent}
.rut-menu a:hover{color:#fff;background:var(--bg-2)}
.rut-menu a.is-active{color:#fff;background:var(--bg-2);border-left-color:var(--red)}
.rut-user{border-top:1px solid var(--line);padding-top:16px;font-size:12px;color:var(--t2)}
.rut-user .ru-name{margin-bottom:6px;color:#fff}
.rut-user .dim{color:var(--t3)}
.ru-out{color:var(--red)}

.rut-main{padding:32px 36px}
.rut-h{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.rut-h h1{margin:0;font-size:26px;color:#fff;font-weight:600}
.rut-h p{margin:6px 0 0;color:var(--t2);font-size:13px}

.btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;padding:8px 16px;border-radius:5px;border:1px solid var(--line-2);background:var(--bg-2);color:#fff;cursor:pointer;transition:.2s}
.btn:hover{border-color:var(--red);box-shadow:var(--red-glow)}
.btn-primary{background:var(--red);border-color:var(--red)}
.btn-primary:hover{filter:brightness(1.1)}
.btn-danger{color:#fcd;border-color:var(--red)}
.btn-sm{padding:5px 10px;font-size:12px}

.panel{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:22px;margin-bottom:18px}
.panel h2{margin:0 0 14px;font-size:18px;color:#fff;font-weight:600}

table.tbl{width:100%;border-collapse:collapse;font-size:13px}
table.tbl th{background:var(--bg-3);color:var(--t2);font-size:11px;letter-spacing:1px;text-transform:uppercase;text-align:left;padding:10px 12px;border-bottom:1px solid var(--line)}
table.tbl td{padding:10px 12px;border-bottom:1px solid var(--line);color:var(--t1);vertical-align:middle}
table.tbl tbody tr:hover{background:var(--bg-3)}
table.tbl img.thumb{width:50px;height:36px;object-fit:cover;border-radius:3px;border:1px solid var(--line)}

.form{display:grid;gap:14px;max-width:780px}
.form-row{display:grid;gap:6px}
.form-row label{font-size:12px;color:var(--t2)}
.form-row input,.form-row textarea,.form-row select{background:var(--bg-1);border:1px solid var(--line-2);color:var(--t1);font-family:inherit;font-size:14px;padding:9px 12px;border-radius:4px}
.form-row input:focus,.form-row textarea:focus,.form-row select:focus{outline:0;border-color:var(--red);box-shadow:0 0 0 3px rgba(255,31,61,.15)}
.form-row textarea{min-height:100px;resize:vertical}
.form .row-2,.form .row-3{display:grid;gap:14px}
.form .row-2{grid-template-columns:1fr 1fr}
.form .row-3{grid-template-columns:1fr 1fr 1fr}
.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}
.form-msg{padding:10px 14px;border-radius:5px;font-size:13px;margin-bottom:12px}
.form-msg.ok{background:rgba(0,200,120,.1);border:1px solid #0c8;color:#9fe}
.form-msg.err{background:rgba(255,31,61,.1);border:1px solid var(--red);color:#fcd}

/* EDITOR DE RUTINA */
.editor-wrap{display:grid;grid-template-columns:1fr 360px;gap:18px}
@media (max-width:1100px){.editor-wrap{grid-template-columns:1fr}}
.editor-days{display:grid;gap:14px}
.editor-day{background:var(--bg-2);border:1px solid var(--line);border-radius:8px}
.editor-day-h{padding:12px 18px;background:var(--bg-3);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.editor-day-h h3{margin:0;font-size:15px;text-transform:uppercase;letter-spacing:1px;color:#fff}
.editor-day-h .day-meta{font-family:var(--ff-mono);font-size:11px;color:var(--t3)}
.editor-day-body{padding:10px;min-height:60px}
.editor-day-body.is-empty{display:flex;align-items:center;justify-content:center;color:var(--t3);font-size:13px;font-style:italic}
.editor-day-body.drag-over{background:rgba(255,31,61,.05);outline:1px dashed var(--red)}
.ej-card{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;background:var(--bg-1);border:1px solid var(--line);border-radius:5px;padding:10px;margin-bottom:8px;cursor:grab}
.ej-card.drag-ghost{opacity:.4}
.ej-card .num{width:42px;height:42px;background:var(--bg-3);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--red);font-family:var(--ff-mono);font-size:14px;border:1px solid var(--line-2)}
.ej-card .nombre{font-weight:600;color:#fff;font-size:13px}
.ej-card .params{font-family:var(--ff-mono);font-size:11px;color:var(--t2);margin-top:2px}
.ej-card .params input{width:50px;background:transparent;border:0;border-bottom:1px dashed var(--line-2);color:#fff;font-family:inherit;font-size:11px;padding:2px 4px;margin:0 4px;text-align:center}
.ej-card .params input:focus{outline:0;border-bottom-color:var(--red)}
.ej-card .actions{display:flex;gap:6px}
.ej-card .actions button{background:transparent;color:var(--t3);border:0;cursor:pointer;font-size:14px;padding:4px 6px}
.ej-card .actions button:hover{color:var(--red)}

.editor-picker{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:16px;position:sticky;top:24px;max-height:calc(100vh - 48px);display:flex;flex-direction:column}
.editor-picker h3{margin:0 0 10px;font-size:14px;color:#fff;text-transform:uppercase;letter-spacing:1px}
.editor-picker .search-box{position:relative}
.editor-picker .search-box input{width:100%;background:var(--bg-1);border:1px solid var(--line-2);color:#fff;padding:9px 12px;border-radius:4px;font-size:13px}
.picker-results{margin-top:12px;flex:1;overflow-y:auto;max-height:60vh}
.picker-results .res{padding:8px 10px;border:1px solid var(--line);border-radius:4px;margin-bottom:6px;cursor:pointer;display:flex;justify-content:space-between;background:var(--bg-1);transition:.15s}
.picker-results .res:hover{border-color:var(--red);background:var(--bg-3)}
.picker-results .res .name{font-weight:500;color:#fff;font-size:13px}
.picker-results .res .grp{font-size:11px;color:var(--t3);font-family:var(--ff-mono)}
.picker-results .empty{color:var(--t3);font-style:italic;padding:14px;text-align:center;font-size:13px}

.pill{display:inline-block;font-size:11px;padding:3px 9px;border-radius:999px;border:1px solid;letter-spacing:.4px}
.pill-ok{color:#0c8;border-color:#0c8}
.pill-warn{color:#f7b500;border-color:#f7b500}
.pill-danger{color:var(--red);border-color:var(--red)}

.cards-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px}
@media (max-width:1100px){.cards-stats{grid-template-columns:repeat(2,1fr)}}
.stat{background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:18px}
.stat .k{font-size:11px;color:var(--t3);letter-spacing:1px;text-transform:uppercase}
.stat .v{font-size:32px;color:#fff;font-weight:700;line-height:1;margin-top:8px}
.stat .v.red{color:var(--red)}

.auth-wrap{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px}
.auth-card{width:100%;max-width:420px;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:36px 32px}
.auth-card h1{font-size:24px;margin:0 0 8px;color:#fff}
.auth-card .auth-sub{color:var(--t2);font-size:13px;margin-bottom:22px}
.auth-card .btn-block{width:100%;justify-content:center}

@media (max-width:880px){
  .rutinas-shell{grid-template-columns:1fr}
  .rut-side{position:relative;height:auto;flex-direction:row;flex-wrap:wrap}
  .rut-menu{flex-direction:row;flex:1 1 100%;flex-wrap:wrap}
}
