/* Digital learning tools: shared layout, controls and print foundations. */
.dg-page { --dg-rule:var(--text-faint); overflow-wrap:anywhere; }
.dg-page [hidden] { display:none!important; }
.dg-hero { padding-top:calc(var(--nav-h) + 64px); padding-bottom:38px; }
.dg-kicker { color:var(--accent-ink); font:500 .72rem/1.7 var(--mono); letter-spacing:.08em; text-transform:uppercase; margin-bottom:16px; }
.dg-hero h1 { max-width:870px; font-size:clamp(2.2rem,5.5vw,4.3rem); line-height:1.09; letter-spacing:-.045em; margin-bottom:24px; }
.dg-lead { max-width:720px; color:var(--text-dim); font-size:1.06rem; line-height:1.8; }
.dg-hero .dg-actions { margin-top:26px; }
.dg-subnav { display:flex; flex-wrap:wrap; gap:8px; padding-bottom:30px; }
.dg-subnav a { border:1px solid var(--text-faint); border-radius:6px; padding:10px 13px; min-height:44px; font-size:.78rem; color:var(--text-dim); }
.dg-subnav a[aria-current] { color:var(--accent-ink); border-color:var(--accent-ink); background:var(--surface); font-weight:700; }
.dg-section { padding-top:36px; padding-bottom:36px; }
.dg-section h2 { font-size:clamp(1.5rem,3vw,2rem); line-height:1.25; letter-spacing:-.025em; margin-bottom:18px; }
.dg-section h3 { font-size:1.07rem; line-height:1.4; margin-bottom:12px; }
.dg-section p+p { margin-top:12px; }
.dg-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.dg-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; align-items:start; }
.dg-card,.dg-panel { min-width:0; background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:26px; }
.dg-card { display:flex; flex-direction:column; }
.dg-card p { color:var(--text-dim); font-size:.9rem; }
.dg-card .dg-tag { font:500 .65rem/1.6 var(--mono); color:var(--accent-ink); text-transform:uppercase; letter-spacing:.07em; margin-bottom:20px; }
.dg-card .dg-card-link { margin-top:auto; padding-top:22px; min-height:44px; color:var(--accent-ink); text-decoration:underline; text-underline-offset:4px; font-size:.85rem; }
.dg-panel>p { color:var(--text-dim); }
.dg-muted { color:var(--text-dim); }
.dg-page p a,.dg-page li a,.dg-sources a { color:var(--accent-ink); text-decoration:underline; text-underline-offset:3px; }
.dg-page ul:not([role]),.dg-page ol { padding-left:22px; margin-block:14px; }
.dg-page ul:not([role]) { list-style:disc; }
.dg-page li+li { margin-top:10px; }
.dg-page .dg-card ul { font-size:.9rem; color:var(--text-dim); }
.dg-page button,.dg-page input,.dg-page textarea,.dg-page select { font:inherit; }
.dg-page input:not([type=checkbox]):not([type=radio]),.dg-page textarea,.dg-page select { display:block; width:100%; min-width:0; min-height:46px; background:var(--bg); color:var(--text); border:1px solid var(--dg-rule); border-radius:6px; padding:10px 12px; }
.dg-page textarea { min-height:110px; resize:vertical; line-height:1.6; }
.dg-page input::placeholder,.dg-page textarea::placeholder { color:var(--text-faint); opacity:1; }
.dg-page label { display:block; font-weight:600; margin-bottom:7px; }
.dg-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.dg-field { min-width:0; margin-bottom:20px; }
.dg-field small { display:block; color:var(--text-dim); margin-top:8px; line-height:1.6; }
.dg-page fieldset { min-width:0; border:1px solid var(--border); border-radius:8px; padding:20px; margin-block:18px; }
.dg-page legend { font-weight:700; padding-inline:7px; }
.dg-page button { min-height:44px; border:1px solid var(--text-faint); border-radius:6px; padding:10px 16px; background:var(--surface); color:var(--text); cursor:pointer; }
.dg-page button:hover { border-color:var(--accent-ink); }
.dg-page button:disabled { cursor:default; opacity:.65; }
.dg-page button[aria-pressed=true],.dg-page button[aria-selected=true] { color:var(--accent-ink); border-color:var(--accent-ink); box-shadow:inset 0 -3px var(--accent-ink); font-weight:700; }
.dg-page .btn--primary { background:var(--accent); color:#0b0c10; border-color:var(--accent); }
.dg-page .btn--outline { border-color:var(--text-faint); color:var(--text); background:var(--surface); }
.dg-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-block:18px; }
.dg-actions .btn { white-space:normal; text-align:center; }
.dg-note { border-left:3px solid var(--accent-ink); padding:18px 22px; margin-top:24px; background:var(--surface); font-size:.9rem; color:var(--text-dim); }
.dg-note strong { color:var(--text); }
.dg-page details { border:1px solid var(--border); border-radius:8px; padding:16px 20px; margin-block:14px; }
.dg-page summary { cursor:pointer; font-weight:600; min-height:32px; }
.dg-page details[open]>summary { margin-bottom:16px; }
.dg-page pre { min-width:0; max-width:100%; padding:18px; background:var(--bg); border:1px solid var(--border); border-radius:6px; font: .8rem/1.7 var(--mono); white-space:pre-wrap; overflow-wrap:anywhere; color:var(--text); }
.dg-page code { font-family:var(--mono); font-size:.86em; }
.dg-page [role=status] { min-height:1.6em; }
.dg-page [aria-invalid=true] { border:2px solid var(--bad-ink)!important; }
.dg-sources { border-top:1px solid var(--border); font-size:.9rem; }
.dg-filter-bar { background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:20px; margin-bottom:22px; }
.dg-filter-buttons { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.dg-result-count { margin:12px 0 22px; font: .77rem/1.7 var(--mono); color:var(--text-dim); }
.dg-paths { counter-reset:dg-step; }
.dg-paths>li { counter-increment:dg-step; }
.dg-paths>li::marker { color:var(--accent-ink); font:500 .9rem var(--mono); }
.dg-criteria { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:26px; }
.dg-criteria article { border-top:1px solid var(--border); padding:22px 0; }
.dg-criteria p { color:var(--text-dim); font-size:.92rem; }
.dg-criteria .dg-kicker { margin-bottom:7px; }
.dg-finding dt { font-weight:700; margin-top:16px; }
.dg-finding dd { color:var(--text-dim); margin-top:4px; }
html:not(.js) .dg-hero { padding-top:42px; }
@media(max-width:900px) { .dg-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) {
  .dg-hero { padding-top:calc(var(--nav-h) + 36px); }
  .dg-grid,.dg-two,.dg-fields,.dg-criteria { grid-template-columns:1fr; }
  .dg-card,.dg-panel { padding:22px; }
  .dg-filter-buttons button { flex:1 1 40%; }
}
@media print {
  .dg-hero { padding:0 0 18px!important; }
  .dg-hero h1 { font-size:26pt; }
  .dg-subnav,.dg-filter-bar,.dg-no-print,.dg-actions { display:none!important; }
  .dg-section { padding-block:16px; }
  .dg-grid,.dg-two,.dg-fields,.dg-criteria { display:block; }
  .dg-card,.dg-panel { margin-bottom:14px; padding:14px; border-color:#777; background:#fff; box-shadow:none; }
  .dg-card { break-inside:avoid; }
  .dg-page,.dg-page p,.dg-page a,.dg-page .dg-kicker,.dg-result-count { color:#111!important; }
  .dg-page pre { white-space:pre-wrap; background:#fff; color:#111; }
  .dg-page input,.dg-page select,.dg-page textarea { background:white!important; color:black!important; }
}
