/* Presentación compartida. Los formatos de impresión conservan sus propias reglas. */
@media screen {
  :root { --cream:#f3f5f3; --green:#194f3e; --ink:#19332c; --muted:#687872; --line:#d6dfd6; --badge-bg:#edf3dc; }
  body { background:var(--cream); }
  .topbar { position:sticky; top:0; z-index:60; height:auto; min-height:68px; background:rgba(243,245,243,.5); color:var(--green); border-bottom:1px solid var(--line); padding-top:10px; padding-bottom:10px; }
  .topbar .brand-home-link { font-family:Georgia,serif; font-size:21px; }
  .topbar .button.ghost { color:var(--green); border-color:var(--green); }
  .topbar .ghost.header-icon-button { border-color:transparent; border-radius:10px; }
  .topbar .header-icon-button:hover { background:#e7edd9; filter:none; }
  .container { padding-top:32px; }
  h1 { color:var(--green); font-size:clamp(2rem,3.8vw,3.2rem); letter-spacing:-.025em; }
  .page-heading { margin-bottom:26px; }
  .eyebrow { color:var(--muted); letter-spacing:.12em; }
  button,.button { border-radius:10px; font-family:inherit; font-weight:600; transition:background-color .15s,box-shadow .15s; }
  button:focus-visible,.button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid var(--lime); outline-offset:3px; }
  .secondary { background:#edf3df; color:var(--green); }
  main .ghost:not(.danger),dialog .ghost:not(.danger) { border-color:var(--line); color:var(--green); background:#f7f9f2; }
  input:not([type=checkbox]):not([type=radio]),select,textarea { border-color:#cbd7ce; border-radius:10px; background-color:#fff; }
  textarea { color:var(--ink); font-family:inherit; }
  input:focus,select:focus,textarea:focus { outline:none; border-color:var(--green); box-shadow:0 0 0 3px #194f3e16; }
  .accordion { border-color:#ccd8cc; border-radius:14px; box-shadow:0 2px 8px #19332c03; }
  .accordion > summary { background:linear-gradient(105deg,#edf4df,#f5f8ec); color:var(--green); padding:17px 22px; font-family:Georgia,serif; font-size:20px; }
  .accordion > summary b,.accordion > summary em { font-family:system-ui,sans-serif; }
  .accordion > summary:hover { background:#e9f1dc; }
  .accordion > .panel { border-top-color:var(--line); }
  thead th { background:#eff4e8; color:var(--green); }
  tbody tr:hover { background:#f8faf4; }
  .student-reference,.report-sheet,.current-class-card,.delivery-section { border-color:#cdd8cd; border-radius:14px; }
  .student-reference { background:#fff; }
  dialog { border:1px solid var(--line); border-radius:16px; color:var(--ink); box-shadow:0 24px 80px #19332c24; }
  dialog::backdrop { background:#152d2559; }
  .login-card { border:1px solid var(--line); box-shadow:0 18px 60px #19332c12; }
  .login-page { background:radial-gradient(ellipse at top left,#e8efd7,transparent 55%),var(--cream); }
  .dashboard-page .welcome-panel { margin-bottom:20px; }
  .dashboard-page .welcome-panel > .muted { display:none; }
  .dashboard-page .home-class-reference { background:#fff; padding:14px; gap:18px; }
  .dashboard-page .home-configuration-button { background:#edf3dc; border:0; }
  .dashboard-page .home-class-reference > span + span { border-left:1px solid var(--line); padding-left:18px; }
  .dashboard-page .home-class-reference strong { color:var(--green); }
  .dashboard-page .home-class-reference > span:first-of-type strong { font-family:Georgia,serif; font-size:17px; font-weight:700; white-space:normal; min-width:180px; }
  .dashboard-search-wrap { position:relative; margin-bottom:20px; }
  .dashboard-search-wrap > svg { position:absolute; left:17px; top:50%; transform:translateY(-50%); pointer-events:none; }
  .dashboard-search-wrap input { min-height:48px; padding-left:49px; border-radius:12px; }
  .dashboard-quick { margin-bottom:20px; }
  .dashboard-quick h2 { margin:0 0 12px; font:700 23px Georgia,serif; color:var(--green); }
  .quick-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
  .quick-links a,.dashboard-group-links a { display:flex; align-items:center; gap:16px; color:var(--green); text-decoration:none; min-width:0; }
  .quick-links a { border:1px solid #ccdcad; border-radius:12px; padding:17px; background:#fff; font-weight:650; }
  .quick-links a:hover { background:#fff; border-color:var(--green); }
  .quick-links a svg,.dashboard-group svg { flex-shrink:0; }
  .quick-links a > span:first-of-type,.dashboard-group-links a > span:first-of-type { flex:1; overflow-wrap:anywhere; }
  .quick-links a > span:last-child,.dashboard-group-links a > span:last-child { font-size:24px; font-weight:400; }
  .dashboard-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .dashboard-group { background:#fff; border:1px solid #cdd8c7; border-radius:14px; overflow:hidden; }
  .dashboard-group h2 { display:flex; align-items:center; gap:16px; margin:0; padding:17px 22px; background:#fff; font:700 23px Georgia,serif; color:var(--green); }
  .dashboard-group-links { padding:0 18px; background:#fff; }
  .dashboard-group-links a { min-height:49px; border-bottom:1px solid var(--line); padding:8px 5px; }
  .dashboard-group-links a:last-child { border-bottom:0; }
  .dashboard-group-links a:hover { background:#f2f6e9; }
  .dashboard-group-links a:focus-visible { outline-offset:-3px; border-radius:5px; }
  [data-menu-group][hidden],[data-menu-link][hidden],#dashboard-quick[hidden],#dashboard-empty[hidden] { display:none; }
  @media(max-width:700px) {
    .topbar { flex-wrap:wrap; gap:6px 12px; padding:10px 16px; }
    .topbar .brand-home-link { font-size:18px; }
    .topbar .userbar { gap:3px; flex-wrap:wrap; }
    .topbar .ghost.header-icon-button { width:40px; min-width:40px; height:40px; }
    .container { padding-top:24px; }
    .accordion > summary { padding:15px 16px; font-size:18px; }
    .quick-links { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .quick-links a { gap:9px; padding:12px; font-size:14px; }
    .dashboard-groups { grid-template-columns:1fr; gap:16px; }
    .dashboard-group h2 { font-size:21px; padding:16px; }
    .dashboard-page .home-class-reference { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 10px; overflow:visible; }
    .dashboard-page .home-configuration-button { grid-column:1; grid-row:1; }
    .dashboard-page .home-class-reference > span:first-of-type { grid-column:2/-1; min-width:0; text-align:left; }
    .dashboard-page .home-class-reference > span:first-of-type strong { min-width:0; font-size:15px; }
    .dashboard-page .home-class-reference > span + span { padding-left:0; border-left:0; min-width:0; }
    .dashboard-page .home-class-reference > span { white-space:normal; }
    .topbar .userbar > span { overflow-wrap:anywhere; max-width:180px; }
  }
  @media(prefers-reduced-motion:reduce) { button,.button { transition:none; } }
}
.visually-hidden { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0; }

/* Botones con el mismo acabado de las acciones de Trabajos de hoy. */
@media screen {
  button,.button,input[type="submit"],input[type="button"],input[type="reset"],summary.icon-button {
    background:transparent !important;
    border:1px solid #b8d4c4 !important;
    border-radius:6px !important;
    color:var(--green,#194f3e) !important;
    font-family:inherit;
    font-weight:600;
    text-decoration:none;
  }
  button.danger,.button.danger,input.danger,summary.icon-button.danger,
  button.review-delete-submission,
  button.modal-close,button[aria-label^="Cerrar"],button[data-close-profile],
  #preview-close-pdf,#close-exam-pdf,#review-files-close,#pending-review-close,
  #delivery-files-dialog form[method="dialog"] button,
  .omr-review-dialog .omr-modal-header button {
    color:var(--danger,#b43d3d) !important;
    border-color:#e7baba !important;
  }
  button:hover:not(:disabled),.button:hover:not([aria-disabled="true"]),
  input[type="submit"]:hover:not(:disabled),input[type="button"]:hover:not(:disabled),
  input[type="reset"]:hover:not(:disabled),summary.icon-button:hover {
    background:#f7f9f2 !important;
    filter:none !important;
  }
}

@media screen {
  #profile-modal button.modal-close,
  #profile-modal button.modal-close:hover:not(:disabled) {
    border:0 !important;
    color:#000 !important;
    background:transparent !important;
  }
}

/* Mantener el cierre del chat blanco sobre su encabezado verde. */
@media screen {
  #school-chat #chat-close,
  #school-chat #chat-close:hover:not(:disabled) {
    background:transparent !important;
    color:#fff !important;
    border:0 !important;
  }
}

/* La acción de cancelar es un enlace: igualar su tipografía con el botón de guardar. */
@media screen {
  #student-form .student-actions>button,
  #student-form .student-actions>a.button {
    font-family:inherit;
    font-size:14px;
    font-weight:600;
    line-height:1.4;
    padding:10px 14px;
    box-sizing:border-box;
    min-height:42px;
    vertical-align:middle;
  }
  #student-form .student-actions>a.button[href="mis_alumnos.php"] {
    color:var(--danger,#b43d3d) !important;
    border-color:#e7baba !important;
  }
}

@media screen {
  #percentage-list>.panel.table-wrap { padding-top:24px; }
}

@media screen {
  .consultation-grade-form{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;margin:0}
  .consultation-grade-form>input[type="number"]{width:90px;min-width:70px;flex:0 1 90px}
  .consultation-grade-form>input[type="number"],.consultation-grade-form>button{height:44px;box-sizing:border-box;margin:0;padding-top:6px;padding-bottom:6px}
  .consultation-grade-form>button{flex-shrink:0;font-size:14px;line-height:1.5}
}

/* Acciones de tablas con las mismas dimensiones que Guardar en la consulta de trabajos. */
@media screen {
  :is(.row-actions,td[data-label="Acciones"]) :is(button,a.icon-button,a.button,input[type="submit"],input[type="button"],summary.icon-button) {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    height:44px !important;
    min-height:44px !important;
    padding:8px !important;
    font-family:inherit;
    font-size:14px !important;
    line-height:1.5 !important;
    vertical-align:middle;
    white-space:nowrap;
  }
}

@media screen {
  table .table-action-icon {
    display:inline-flex;align-items:center;justify-content:center;gap:0;
    width:44px !important;min-width:44px !important;max-width:44px !important;
    height:44px !important;min-height:44px !important;max-height:44px !important;
    padding:8px !important;box-sizing:border-box;vertical-align:middle;flex:0 0 44px !important;
  }
  table .table-action-icon>svg{display:block;width:20px;height:20px;flex-shrink:0;pointer-events:none}
  table summary.table-action-icon{list-style:none}
  table summary.table-action-icon::-webkit-details-marker{display:none}
}

/* Igualar también las acciones que ya tenían iconos antes de la conversión. */
@media screen {
  table button,table a.button,table a.icon-button,table summary.icon-button {
    display:inline-flex;align-items:center;justify-content:center;
    width:44px !important;min-width:44px !important;max-width:44px !important;
    height:44px !important;min-height:44px !important;max-height:44px !important;
    padding:8px !important;box-sizing:border-box;flex:0 0 44px !important;
  }
}

@media screen {
  table button>svg,table a.icon-button>svg,table a.button>svg,table summary.icon-button>svg {
    display:block;width:20px;min-width:20px;height:20px;min-height:20px;flex-shrink:0;
  }
}

@media screen {
  .topbar .review-notifications{position:relative;display:inline-flex;align-items:center;justify-content:center}
  .topbar .review-notifications.has-pending::after{content:"";position:absolute;top:5px;right:5px;width:8px;height:8px;border-radius:50%;background:#b43d3d;border:2px solid var(--cream,#f5f3e9)}
}
