/* DNS practical: the established lab shell with one vertical document scroll. */
body.ifd-dns-active{background:#f4f6f8}
body.ifd-dns-active .md-header,body.ifd-dns-active .md-tabs,body.ifd-dns-active .md-sidebar,body.ifd-dns-active .md-footer,body.ifd-dns-active .ifd-modebar{display:none!important}
body.ifd-dns-active .md-main,body.ifd-dns-active .md-main__inner,body.ifd-dns-active .md-content,body.ifd-dns-active .md-content__inner{margin:0;padding:0;max-width:none}
body.ifd-dns-active #ifd-main-content>h1,body.ifd-dns-active .md-content__inner::before{display:none}
#ifd-dns-investigation{--dn-navy:#071426;--dn-blue:#185fa5;--dn-line:#cbd6df;--dn-muted:#536675;--dn-header:110px;--dn-footer:76px;color:#1b232e;background:#f4f6f8;font:17px/1.6 'Source Serif 4',Georgia,serif;min-height:100vh}
#ifd-dns-investigation *{box-sizing:border-box}
#ifd-dns-investigation h1,#ifd-dns-investigation h2,#ifd-dns-investigation h3,#ifd-dns-investigation h4,#ifd-dns-investigation button,#ifd-dns-investigation label,#ifd-dns-investigation summary,#ifd-dns-investigation .dn-meta,#ifd-dns-investigation table{font-family:Inter,Arial,sans-serif}
#ifd-dns-investigation h2{font-size:25px;line-height:1.3;color:var(--dn-navy);margin:10px 0 18px}
#ifd-dns-investigation h3{font-size:19px;line-height:1.4;margin:20px 0 12px;color:var(--dn-navy)}
#ifd-dns-investigation p{font-size:17px;line-height:1.65;max-width:78ch;margin:12px 0}
#ifd-dns-investigation a{color:var(--dn-blue);text-decoration:underline}
#ifd-dns-investigation button{font-size:15px;line-height:1.4;border:1px solid #91a8ba;color:#102b46;background:#fff;min-height:44px;padding:9px 14px;border-radius:4px;cursor:pointer}
#ifd-dns-investigation button:disabled{opacity:.5;cursor:not-allowed}
#ifd-dns-investigation .primary{background:var(--dn-blue);border-color:var(--dn-blue);color:#fff}
#ifd-dns-investigation :focus-visible{outline:3px solid #185fa5;outline-offset:3px}
#ifd-dns-investigation [tabindex="-1"],#ifd-dns-investigation details{scroll-margin-top:calc(var(--dn-header) + 16px);scroll-margin-bottom:calc(var(--dn-footer) + 16px)}
#ifd-dns-investigation code{font:14px/1.5 ui-monospace,monospace;color:#163951;white-space:normal;overflow-wrap:anywhere;background:#eef3f6;padding:2px 4px}
#ifd-dns-investigation .dn-top{position:sticky;top:0;z-index:5;background:var(--dn-navy);color:white;display:flex;align-items:center;gap:20px;padding:15px 24px;font:14px Inter,Arial,sans-serif}
.dn-top>div:first-child{display:grid;gap:5px;margin-right:auto;min-width:0}
#ifd-dns-investigation .dn-top a{color:#d9e7f4;width:fit-content}
.dn-top>div:first-child>span{text-transform:uppercase;letter-spacing:.05em;font-size:11px;color:#bccbd9}
#ifd-dns-investigation .dn-top h1{color:#fff;font:650 19px/1.35 Inter,Arial,sans-serif;margin:0}
.dn-progress{display:grid;gap:4px;text-align:center}.dn-progress strong{font-size:22px}
#ifd-dns-investigation .dn-top button{background:transparent;color:#fff;border-color:#a7b4c2;white-space:nowrap;font-size:14px}
#ifd-dns-investigation .dn-top :focus-visible{outline-color:#b8e5ff}
.dn-content{max-width:1600px;margin:auto;padding:20px 24px calc(var(--dn-footer) + 24px)}
#ifd-dns-investigation .dn-meta{font-size:13px;line-height:1.5;color:var(--dn-muted)}
#ifd-dns-investigation .dn-kicker{font:12px/1.4 Inter,Arial,sans-serif;color:var(--dn-muted);text-transform:uppercase;letter-spacing:.04em;margin:0}
#ifd-dns-investigation details{background:white;border:1px solid var(--dn-line);border-radius:5px;box-shadow:none;padding:0;margin:16px 0;font-size:17px}
#ifd-dns-investigation details>summary{font-size:16px;line-height:1.5;cursor:pointer;min-height:44px;padding:12px 16px;background:#edf3f7;font-weight:600;margin:0;list-style:revert}
#ifd-dns-investigation details>summary:before{display:none}
#dn-material{max-width:1100px;margin:0 auto 24px!important}
.dn-material-body{padding:20px 26px}.dn-material-body>p{max-width:78ch}
.dn-document{padding:8px 0 20px;border-bottom:1px solid var(--dn-line);margin-bottom:20px}
.dn-document:last-child{border:0;margin-bottom:0}.dn-document header h3{margin-top:8px!important}
.dn-workspace{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(380px,1fr);gap:24px;align-items:start}
#dn-evidence,.dn-task{min-width:0}
.dn-surface,.dn-task{background:#fff;border:1px solid var(--dn-line);border-radius:5px;padding:20px}
.dn-task{position:sticky;top:var(--dn-task-top,calc(var(--dn-header) + 16px))}
.dn-task progress{width:100%;height:5px;display:block;accent-color:var(--dn-blue);margin:12px 0 18px}
.dn-surface-head{border-bottom:1px solid var(--dn-line);padding-bottom:14px;margin-bottom:16px}
#ifd-dns-investigation .dn-surface-head h2{font-size:23px;margin-bottom:8px}
.dn-support>p,.dn-support>dl,.dn-support>.dn-document{margin:16px!important}.dn-support>h3{padding:0 16px}
#ifd-dns-investigation dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
#ifd-dns-investigation dt{font:13px Inter,Arial,sans-serif;color:var(--dn-muted)}
#ifd-dns-investigation dd{margin:4px 0;font:14px/1.5 ui-monospace,monospace;overflow-wrap:anywhere}
.dn-map{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:20px 0 10px}
#ifd-dns-investigation .dn-map button{grid-column:span 2;display:grid;text-align:left;gap:5px;padding:12px 10px;font-size:13px;min-width:0}
#ifd-dns-investigation .dn-map button:nth-child(-n+2){grid-column:span 3}
.dn-map strong{font-size:14px;overflow-wrap:anywhere}.dn-map small{font:12px ui-monospace,monospace}
#ifd-dns-investigation .dn-map .dn-involved{border-color:#185fa5;background:#eef5fa}
#ifd-dns-investigation .dn-map [aria-pressed="true"]{box-shadow:inset 0 -3px #185fa5}
#ifd-dns-investigation .dn-role{font-size:15px;padding:10px 14px;background:#f4f8fb;border-left:3px solid #779bb8}
.dn-controls{padding:14px 0}.dn-experiments{display:grid;gap:10px}.dn-experiments button{text-align:left}
.dn-caches{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.dn-caches>div{background:#f4f7f9;border:1px solid var(--dn-line);padding:14px;min-width:0}.dn-caches h4{font-size:15px;margin:0 0 10px}.dn-caches strong{font:14px Inter,Arial,sans-serif}.dn-caches p{font-size:14px!important;overflow-wrap:anywhere}
.dn-run-tabs{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--dn-line);padding-top:16px}.dn-run-tabs button{font-size:13px!important}.dn-run-tabs [aria-pressed="true"]{background:#102b46!important;color:#fff!important}
#ifd-dns-investigation .dn-trace ol{margin:14px 0;padding-left:24px}.dn-trace li{padding:12px;border-bottom:1px solid var(--dn-line);margin:0}.dn-trace li.dn-current{background:#f1f6fa}.dn-trace li p{font-size:16px!important;margin-bottom:0!important}
.dn-exchange{display:flex;flex-wrap:wrap;gap:6px 16px;font:14px/1.4 Inter,Arial,sans-serif}.dn-exchange span:last-child{color:var(--dn-muted);margin-left:auto}
.dn-empty{padding:12px;background:#f4f7f9}.dn-notice{border-left:3px solid #638778;padding-left:14px}
#dn-assessment{margin-top:24px;padding-top:6px;border-top:1px solid var(--dn-line)}
.dn-field{display:grid;gap:6px;margin:16px 0;font-size:15px;line-height:1.5}
#ifd-dns-investigation input:not([type=radio]):not([type=checkbox]),#ifd-dns-investigation select{font:15px/1.5 Inter,Arial,sans-serif;min-height:44px;width:100%;min-width:0;padding:10px;background:#fff;color:#1b232e;border:1px solid #91a8ba;border-radius:4px}
#ifd-dns-investigation fieldset{border:0;margin:20px 0;padding:0;min-width:0}
#ifd-dns-investigation legend{font-weight:600;font-size:17px;line-height:1.5;margin-bottom:8px}
.dn-choice{display:flex;gap:10px;border:1px solid var(--dn-line);border-radius:4px;padding:12px;margin:10px 0;background:white;font-size:15px;line-height:1.5;cursor:pointer}
#ifd-dns-investigation input[type=radio],#ifd-dns-investigation input[type=checkbox]{width:19px;height:19px;min-width:19px;accent-color:#185fa5;margin-top:3px}
.dn-feedback{margin:18px 0;padding:16px;background:#edf3f8;border-left:3px solid #185fa5;font-size:17px;line-height:1.65}.dn-feedback.correct{background:#eef5f1;border-color:#577363}
.dn-table{overflow-x:auto;width:100%;margin:18px 0;border:1px solid var(--dn-line)}
#ifd-dns-investigation .dn-table table{display:table;border-collapse:collapse;width:100%;min-width:590px;max-width:none;font-size:13px;margin:0;border:0}
#ifd-dns-investigation .dn-table th,#ifd-dns-investigation .dn-table td{padding:10px 8px!important;min-width:0!important;white-space:normal;vertical-align:top;border-bottom:1px solid var(--dn-line);overflow-wrap:normal;word-break:normal}
#ifd-dns-investigation .dn-table th{background:#102b46;color:#fff;font-size:12px}
#ifd-dns-investigation .dn-table td{font-family:ui-monospace,monospace}
.dn-snapshots{display:grid;gap:14px}.dn-snapshots article{border:1px solid var(--dn-line);padding:16px}.dn-snapshots header{display:grid;gap:6px;font:14px Inter,Arial,sans-serif}.dn-snapshots header span{font-size:12px;color:var(--dn-muted)}.dn-snapshots p{font-size:15px!important}
.dn-nav{position:fixed;bottom:0;left:0;right:0;z-index:6;display:flex;gap:16px;align-items:center;justify-content:space-between;padding:12px 24px;background:#fff;border-top:1px solid var(--dn-line)}
.dn-nav>div{display:flex;gap:24px;font:15px Inter,Arial,sans-serif}.dn-debrief{max-width:1100px;margin:auto;background:#fff;padding:24px}.dn-conclusions{display:grid;grid-template-columns:1fr 1fr;gap:24px}.dn-conclusions section{border-top:3px solid #819dab;padding:14px;background:#f4f8fb}.dn-newtab{font-size:13px;white-space:nowrap}
@media(max-width:1000px){.dn-workspace{display:flex;flex-direction:column}.dn-task{position:static;order:-1;width:100%}#dn-evidence{width:100%}.dn-task p{max-width:78ch}}
@media(max-width:700px){#ifd-dns-investigation .dn-top{flex-wrap:wrap;gap:10px;padding:12px}.dn-top>div:first-child{flex-basis:calc(100% - 68px)}#ifd-dns-investigation .dn-top h1{font-size:17px}.dn-progress{margin-left:auto}.dn-content{padding:12px 12px calc(var(--dn-footer) + 20px)}.dn-surface,.dn-task,.dn-material-body{padding:16px}.dn-nav{padding:10px 12px;gap:8px}.dn-nav>div{gap:14px;font-size:13px}#ifd-dns-investigation .dn-nav button{font-size:14px;padding:8px 10px}.dn-conclusions{grid-template-columns:1fr}.dn-map{grid-template-columns:1fr 1fr}#ifd-dns-investigation .dn-map button,#ifd-dns-investigation .dn-map button:nth-child(-n+2){grid-column:span 1}#ifd-dns-investigation .dn-map button:last-child{grid-column:span 2}}
@media(max-width:420px){.dn-caches{grid-template-columns:1fr}#ifd-dns-investigation dl{grid-template-columns:1fr}.dn-nav>div{flex-direction:column;gap:4px}.dn-progress strong{font-size:18px}}
@media print{.dn-top,.dn-nav{position:static!important}.dn-task{position:static}.dn-workspace{display:block}.dn-content{padding-bottom:0}}

/* Keep record references and timestamps readable; long URLs can wrap. */
#ifd-dns-investigation .dn-table th,#ifd-dns-investigation .dn-table td:nth-child(-n+3){white-space:nowrap}
#ifd-dns-investigation .dn-table td:nth-last-child(2),#ifd-dns-investigation .dn-table td:last-child{overflow-wrap:anywhere}

/* DNS lab owns a light reading canvas even while the surrounding site uses
   slate. Keep contrast coherent within every learner document and task panel.
   Scoped to this lab so other activities can choose their own theme. */
#ifd-dns-investigation .dn-content :is(p, li, dt, dd, label, legend),
#ifd-dns-investigation .dn-content details > summary {
  color: #1b232e;
}
#ifd-dns-investigation .dn-content details > summary,
#ifd-dns-investigation .dn-content .dn-meta,
#ifd-dns-investigation .dn-content .dn-kicker {
  opacity: 1;
}
#ifd-dns-investigation .dn-content .dn-meta,
#ifd-dns-investigation .dn-content .dn-kicker,
#ifd-dns-investigation .dn-content dt {
  color: #485e70;
}
