*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#08080b;color:#f7f7f8}a{color:#c98cff}.auth{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#341047,#08080b 52%)}.auth-card{width:min(430px,100%);padding:30px;border:1px solid #7a00cc;border-radius:22px;background:#111116;box-shadow:0 0 35px #7a00cc33}.auth-card h1{margin-top:0}.auth-card label{display:block;margin:18px 0}.auth-card input{display:block;width:100%;margin-top:7px;padding:13px;border:1px solid #3b3b44;border-radius:10px;background:#08080b;color:white}.button,button{display:inline-block;border:0;border-radius:10px;padding:12px 16px;background:#7a00cc;color:#fff;font-weight:700;text-decoration:none;cursor:pointer}.auth-card button{width:100%}.back{display:block;text-align:center;margin-top:20px}.alert{padding:12px;border-radius:10px;background:#511b28}.top{min-height:64px;padding:16px 5vw;display:flex;align-items:center;justify-content:space-between;gap:15px;border-bottom:1px solid #292932;background:#111116}.panel{width:min(1100px,92%);margin:32px auto}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px}.tile{display:flex;min-height:135px;flex-direction:column;gap:8px;padding:22px;border:1px solid #383842;border-radius:16px;background:#111116;color:white;text-decoration:none}.tile b{font-size:1.2rem}.tile small,.row small{display:block;color:#aaa}.list{display:grid;gap:10px}.row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px;border:1px solid #33333d;border-radius:14px;background:#111116}.empty{padding:22px;border:1px dashed #444;border-radius:14px;color:#bbb}@media(max-width:600px){.top,.row{align-items:flex-start;flex-direction:column}.row form,.row button{width:100%}}

.card{margin:18px 0 30px;padding:22px;border:1px solid #383842;border-radius:16px;background:#111116}.card h2{margin-top:0}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.card label{display:block}.card input:not([type=checkbox]){display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #3b3b44;border-radius:10px;background:#08080b;color:#fff}.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px 16px;margin:12px 0 20px}.perm-title{grid-column:1/-1;margin-top:10px;padding-top:10px;border-top:1px solid #2d2d35;font-weight:800}.check{padding:7px 0}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.actions form{margin:0}.secondary{background:#292933}.success{margin:12px 0;padding:12px;border-radius:10px;background:#173d2a;color:#d8ffe8}

/* V4.2 */
.page-heading,.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:18px}.page-heading h1,.section-head h2{margin:0}.page-heading p,.section-head p{margin:6px 0 0;color:#aaa;max-width:720px}.muted{color:#888;font-weight:400}.form-grid label>small{display:block;margin-top:6px;color:#999}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.choice-card{display:flex!important;align-items:center;gap:11px;padding:13px;border:1px solid #34343e;border-radius:12px;background:#0c0c11;cursor:pointer}.choice-card input{width:18px;height:18px}.choice-card span{display:block}.choice-card small{display:block;margin-top:3px;color:#999}.disabled-choice{opacity:.62}.top-gap{margin-top:18px}.compact{padding:14px}.person-main{min-width:220px}.badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.badge{display:inline-flex;padding:4px 8px;border:1px solid #3a3a45;border-radius:999px;background:#1a1a21;color:#d8d8df;font-size:.78rem}.badge.ok{border-color:#245b3c;color:#bff6d1}.badge.off{border-color:#5d3038;color:#ffc5ce}.permission-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));padding:4px}.perm-title{margin-top:14px;padding:14px 0 4px;font-size:1.05rem;color:#e9d6ff}.check{display:flex!important;align-items:center;gap:8px;padding:9px 10px;border:1px solid #2e2e38;border-radius:10px;background:#0c0c11}.check input{width:17px;height:17px}.card h3{margin-bottom:10px}.row .actions{justify-content:flex-end}@media(max-width:700px){.page-heading,.section-head{align-items:flex-start;flex-direction:column}.person-row{align-items:stretch}.person-row .actions{width:100%}.person-row .actions>*{flex:1}.person-row .actions .button,.person-row .actions button{width:100%;text-align:center}}

/* V4.2.5 */
.device-badge{border-color:#4b3562;color:#e8d2ff}.person-main b{font-size:1.02rem}.person-main small{margin-top:3px}.person-row .actions button{white-space:normal}

/* V4.2.6 - acceso directo y PWA Padres */
.access-ready{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 28px;padding:18px 20px;border:1px solid #28553b;border-radius:16px;background:#10261a}.access-ready strong{font-size:1.05rem;color:#d9ffe5}.access-ready p{margin:6px 0 0;color:#b8c9be;line-height:1.45}.install-button{flex:0 0 auto}.installed-pill{flex:0 0 auto;padding:9px 12px;border-radius:999px;background:#173d2a;color:#d8ffe8;font-weight:700}.install-modal[hidden]{display:none}.install-modal{position:fixed;z-index:9999;inset:0;display:grid;place-items:end center;padding:18px;background:#000a}.install-sheet{position:relative;width:min(520px,100%);padding:26px 22px;border:1px solid #4b3562;border-radius:20px;background:#111116;box-shadow:0 20px 70px #0008}.install-sheet h2{margin:0 42px 12px 0}.install-sheet p{line-height:1.55}.modal-close{position:absolute;right:14px;top:12px;width:38px;height:38px;padding:0;border-radius:50%;font-size:25px;background:#292933}@media(max-width:700px){.access-ready{align-items:stretch;flex-direction:column}.install-button{width:100%}}

/* V4.6.5 - instalación PWA del personal */
.staff-install{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 24px;padding:16px 18px;border:1px solid #4b3562;border-radius:16px;background:#111116}
.staff-install[hidden]{display:none!important}
.staff-install strong{display:block;font-size:1.05rem}
.staff-install small{display:block;margin-top:4px;color:#aaa}
@media(max-width:600px){.staff-install{align-items:stretch;flex-direction:column}.staff-install .button{width:100%}}


/* =========================================================
   V4.8.0 · NORMALIZACIÓN VISUAL
   Capa común para Equipo / Padres / Talleres / formularios.
   Mantiene compatibilidad con clases existentes.
   ========================================================= */
:root{
  --rg-bg:#08080b;
  --rg-surface:#111116;
  --rg-surface-2:#17171d;
  --rg-border:#34343e;
  --rg-border-soft:#282830;
  --rg-text:#f7f7f8;
  --rg-muted:#aaaab3;
  --rg-primary:#7a00cc;
  --rg-primary-soft:#c98cff;
  --rg-success:#1f7a4a;
  --rg-danger:#8d3544;
  --rg-radius:16px;
  --rg-shadow:0 12px 34px rgba(0,0,0,.24);
}
html{background:var(--rg-bg);color-scheme:dark}
body{min-height:100vh;background:
  radial-gradient(circle at 50% -18%,rgba(122,0,204,.13),transparent 34rem),
  var(--rg-bg);color:var(--rg-text);line-height:1.5}
a{transition:opacity .18s ease,transform .18s ease,border-color .18s ease,background .18s ease}
a:hover{opacity:.94}
.top{
  position:relative;z-index:10;min-height:68px;
  padding:15px max(24px,5vw);
  border-bottom:1px solid var(--rg-border-soft);
  background:rgba(17,17,22,.94);
  backdrop-filter:blur(12px)
}
.top>b{font-size:1.02rem;letter-spacing:.01em}
.top a{color:#e7c7ff;text-underline-offset:3px}
.panel{width:min(1120px,92%);margin:34px auto 52px}
.panel>h1,.page-heading h1{letter-spacing:-.025em}
.page-heading{padding-bottom:4px}
.page-heading p,.section-head p,.muted{color:var(--rg-muted)}
.grid{gap:18px}
.tile{
  position:relative;min-height:145px;padding:22px;
  border:1px solid var(--rg-border);border-radius:var(--rg-radius);
  background:linear-gradient(145deg,var(--rg-surface-2),var(--rg-surface));
  box-shadow:0 8px 24px rgba(0,0,0,.14);
  overflow:hidden
}
.tile:after{content:"";position:absolute;inset:auto -35px -55px auto;width:105px;height:105px;border-radius:50%;background:rgba(122,0,204,.08)}
.tile:hover{transform:translateY(-2px);border-color:#5b3b70;box-shadow:var(--rg-shadow)}
.tile b{font-size:1.16rem;line-height:1.25}
.tile small,.row small{color:var(--rg-muted);line-height:1.45}
.card,.row,.empty{
  border-color:var(--rg-border);border-radius:var(--rg-radius);
  background:var(--rg-surface);box-shadow:0 7px 22px rgba(0,0,0,.12)
}
.card{padding:22px}
.row{padding:17px 18px}
.empty{background:#0e0e13;box-shadow:none}
.button,button{
  min-height:42px;border-radius:11px;padding:11px 16px;
  background:var(--rg-primary);box-shadow:none;
  transition:transform .16s ease,filter .16s ease,background .16s ease
}
.button:hover,button:hover{filter:brightness(1.08);transform:translateY(-1px)}
.button:active,button:active{transform:none}
.secondary{background:#292933}
.success{border:1px solid #28583e;background:#122a1d;color:#dcffe8}
.alert{border:1px solid #743545;background:#35151e;color:#ffdce4}
.badge{background:#191920;border-color:#41414c}
.badge.ok{background:#11271b;border-color:#2d6947;color:#c9f7d8}
.badge.off{background:#2a151a;border-color:#713743;color:#ffd0d7}
input,textarea,select{
  font:inherit;color:var(--rg-text);background:#0b0b0f;
  border:1px solid #3b3b44;border-radius:10px;outline:none
}
textarea{display:block;width:100%;margin-top:7px;padding:12px;resize:vertical}
select{padding:11px 12px}
input:focus,textarea:focus,select:focus{border-color:#8f42c2;box-shadow:0 0 0 3px rgba(122,0,204,.14)}
.actions{gap:9px}
.install-modal{backdrop-filter:blur(4px)}
.install-sheet{border-color:#523768;box-shadow:0 24px 80px rgba(0,0,0,.58)}
.staff-install,.access-ready{
  box-shadow:0 8px 24px rgba(0,0,0,.12)
}
.staff-install{background:linear-gradient(135deg,#17131c,#111116);border-color:#493459}
@media(max-width:700px){
  .panel{width:min(100% - 30px,1120px);margin-top:24px}
  .top{padding-left:18px;padding-right:18px}
  .grid{grid-template-columns:1fr;gap:13px}
  .tile{min-height:auto;padding:19px}
  .card{padding:18px}
  .button,button{min-height:44px}
}
