/* Presentación compartida. Los formatos de impresión conservan sus propias reglas. */
@media screen {
  :root { --cream:#f5f3e9; --green:#194f3e; --ink:#19332c; --muted:#687872; --line:#d6dfd6; --badge-bg:#edf3dc; }
  body { background:var(--cream); }
  .topbar { height:auto; min-height:68px; background:var(--cream); 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:#edf4df; font-weight:650; }
  .quick-links a:hover { background:#e1edca; }
  .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:linear-gradient(105deg,#edf4df,#f5f8ec); font:700 23px Georgia,serif; color:var(--green); }
  .dashboard-group-links { padding:0 18px; }
  .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; }
