/* Canonical owner: theme/assets/design-system/components.css. */
.dttt-quick-link{
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--dttt-space-2);
  padding: var(--dttt-space-2) var(--dttt-space-3);
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.dttt-ui-icon {
  display: inline-block;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  max-width: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: -3px;
}
.dttt-context-toolbar,
.dttt-action-toolbar {
  box-sizing: border-box;
  min-width: 0;
  border: 1px solid var(--dttt-color-border);
  border-radius: var(--dttt-radius-card);
  background: var(--dttt-color-surface);
  box-shadow: var(--dttt-shadow-card);
}
.dttt-context-toolbar :is(a, button, summary),
.dttt-action-toolbar :is(a, button, summary) {
  min-height: var(--dttt-control-lg);
}
.dttt-form { box-sizing: border-box; min-width: 0; }
.dttt-form label { color: var(--dttt-color-ink); font-weight: 700; }
.dttt-form :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: var(--dttt-control-lg);
  border: 1px solid var(--dttt-color-border-strong);
  border-radius: var(--dttt-radius-control);
  background: var(--dttt-color-surface);
  color: var(--dttt-color-ink);
}
.dttt-form :is(input, select, textarea):focus-visible { border-color: var(--dttt-color-primary); box-shadow: var(--dttt-focus-ring); outline: 0; }
.dttt-form textarea { resize: vertical; }
.dttt-form :is(button, .dttt-button) { min-height: var(--dttt-control-lg); border-radius: var(--dttt-radius-button); }
.dttt-form :is(button[type="submit"], input[type="submit"]) { border: 1px solid var(--dttt-color-primary); background: var(--dttt-color-primary); color: #fff; font-weight: 800; cursor: pointer; }
.dttt-form :is(button[type="submit"], input[type="submit"]):hover { background: var(--dttt-color-primary-hover); }
.dttt-form :is(button[type="submit"], input[type="submit"]):focus-visible { box-shadow: var(--dttt-focus-ring); outline: 0; }
.dttt-content-card { box-sizing: border-box; min-width: 0; overflow: hidden; }
.dttt-content-card :where(img, video, iframe) { max-width: 100%; }
.dttt-context-toolbar__toggle { display: none; }
.dttt-context-toolbar__body { display: grid; gap: var(--dttt-space-3); }
.dttt-context-toolbar__body > details { min-width: 0; margin: 0; }
.dttt-context-toolbar__body > details > summary { cursor: pointer; }
.dttt-document-empty {
  display: grid;
  min-height: 180px;
  place-items: center;
  align-content: center;
  gap: var(--dttt-space-2);
  padding: var(--dttt-space-6);
  border: 1px dashed var(--dttt-color-border-strong);
  border-radius: var(--dttt-radius-card);
  background: var(--dttt-color-surface-soft);
  color: var(--dttt-color-muted);
  text-align: center;
}
.dttt-document-empty > span { width: 44px; height: 44px; color: var(--dttt-color-primary); }
.dttt-document-empty strong { color: var(--dttt-color-ink); }
.dttt-context-vault { min-width: 0; margin: 0 0 var(--dttt-space-4); border: 1px solid var(--dttt-color-border); border-radius: var(--dttt-radius-card); background: var(--dttt-color-surface); box-shadow: var(--dttt-shadow-card); overflow: hidden; }
.dttt-context-vault > summary { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 2px var(--dttt-space-3); align-items: center; min-height: 58px; padding: var(--dttt-space-3) var(--dttt-space-4); color: var(--dttt-color-ink); cursor: pointer; list-style: none; }
.dttt-context-vault > summary::-webkit-details-marker { display: none; }
.dttt-context-vault > summary > span { grid-row: 1 / span 2; width: 28px; height: 28px; color: var(--dttt-color-primary); }
.dttt-context-vault > summary strong { font-size: 14px; }
.dttt-context-vault > summary small { color: var(--dttt-color-muted); font-size: 12px; }
.dttt-context-vault[open] > summary { border-bottom: 1px solid var(--dttt-color-border); background: var(--dttt-color-primary-soft); }
.dttt-learning-reader .dttt-entry-content :where(iframe, embed, object) { width: 100%; max-width: 820px; }
.dttt-learning-reader :where(pre, .dttt-code-block) { box-sizing: border-box; width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.dttt-learning-reader :where(pre, .dttt-code-block) code { display: inline-block; min-width: max-content; }
.dttt-footer.dttt-site-footer {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: var(--dttt-space-12) 0 0;
  padding: 0;
  border: 0;
  background: linear-gradient(135deg, #062b55, #083f70 64%, #08778d);
  color: #d8e8f3;
  text-align: left;
}
.dttt-site-footer__inner {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(180px, .7fr) minmax(260px, 1fr);
  gap: var(--dttt-space-10);
  width: min(var(--dttt-content-max), calc(100% - 2 * var(--dttt-gutter-desktop)));
  margin-inline: auto;
  padding-block: var(--dttt-space-12) var(--dttt-space-10);
}
.dttt-site-footer__brand,
.dttt-site-footer__links,
.dttt-site-footer__contact { display: grid; align-content: start; gap: var(--dttt-space-2); }
.dttt-site-footer__brand > strong { color: #fff; font-size: 22px; line-height: 1.2; }
.dttt-site-footer__brand > span { color: #9ed5eb; font-size: 13px; font-weight: 700; }
.dttt-site-footer__brand p { max-width: 520px; margin: var(--dttt-space-2) 0 0; color: #bed4e3; font-size: 14px; line-height: 1.6; }
.dttt-site-footer__links > strong,
.dttt-site-footer__contact > strong { margin-bottom: var(--dttt-space-2); color: #fff; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.dttt-site-footer__links a,
.dttt-site-footer__contact a { box-sizing: border-box; display: flex; min-height: var(--dttt-control-lg); align-items: center; color: #d8e8f3; font-size: 13px; line-height: 1.35; text-decoration: none; }
.dttt-site-footer__links a:hover,
.dttt-site-footer__links a:focus-visible,
.dttt-site-footer__contact a:hover,
.dttt-site-footer__contact a:focus-visible { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.dttt-site-footer__bottom { box-sizing: border-box; display: flex; width: min(var(--dttt-content-max), calc(100% - 2 * var(--dttt-gutter-desktop))); min-height: 58px; align-items: center; justify-content: space-between; gap: var(--dttt-space-4); margin-inline: auto; border-top: 1px solid rgba(255,255,255,.14); color: #9fbccd; font-size: 12px; }
.dttt-stream-kind-thngbo { --dttt-kind-color: var(--dttt-color-notice); }
.dttt-stream-kind-hcliu { --dttt-kind-color: var(--dttt-color-material); }
.dttt-stream-kind-bitp { --dttt-kind-color: var(--dttt-color-assignment); }
.dttt-stream-kind-kimtra { --dttt-kind-color: var(--dttt-color-quiz); }
.dttt-course-type-label,
.dttt-badge,
.dttt-pill {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 24px;
  padding: 4px 8px;
  border-radius: var(--dttt-radius-pill);
  font-size: 12px;
  line-height: 1.2;
  font-weight: 750;
  letter-spacing: .02em;
}
.dttt-button,
.dttt-btn,
button.dttt-button {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--dttt-space-2);
  min-height: var(--dttt-control-lg);
  padding: 0 var(--dttt-space-4);
  border: 1px solid transparent;
  border-radius: var(--dttt-radius-button);
  font-size: 14px;
  line-height: 1.2;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}
.dttt-button--primary,
.dttt-btn-primary { color: white; background: var(--dttt-color-primary); }
.dttt-button--primary:hover,
.dttt-btn-primary:hover { background: var(--dttt-color-primary-hover); }
.dttt-button--secondary,
.dttt-btn-secondary { color: var(--dttt-color-primary); background: white; border-color: var(--dttt-color-border-strong); }
.dttt-button--danger { color: white; background: var(--dttt-color-danger); }
textarea { resize: vertical; }
.dttt-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--dttt-color-border); border-radius: var(--dttt-radius-card); }
.dttt-table-wrap table { width: 100%; border-collapse: separate; border-spacing: 0; }
.dttt-table-wrap thead th { position: sticky; top: 0; z-index: 1; background: var(--dttt-color-canvas); }
@media (max-width: 767px) {
.dttt-context-toolbar__toggle { display: flex; width: 100%; align-items: center; justify-content: center; gap: var(--dttt-space-2); border: 0; border-radius: var(--dttt-radius-button); background: var(--dttt-color-primary-soft); color: var(--dttt-color-primary); font: inherit; font-weight: 800; }
.dttt-context-toolbar__toggle span { width: 22px; height: 22px; }
.dttt-context-toolbar__body { display: none; }
body.dttt-context-overlay-open { overflow: hidden; }
body.dttt-context-overlay-open::before { content: ""; position: fixed; inset: 0; z-index: calc(var(--dttt-z-dock) + 1); background: rgba(6,43,85,.34); backdrop-filter: blur(2px); }
.dttt-context-toolbar__body > details:not([open]) > :not(summary) { display: none; }
.dttt-document-empty { min-height: 132px; padding: var(--dttt-space-4); }
.dttt-form :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) { font-size: 16px; }
.dttt-footer.dttt-site-footer { margin-top: var(--dttt-space-8); }
.dttt-site-footer__inner { grid-template-columns: 1fr; gap: var(--dttt-space-6); width: calc(100% - 2 * var(--dttt-gutter-mobile)); padding-block: var(--dttt-space-8); }
.dttt-site-footer__brand > strong { font-size: 20px; }
.dttt-site-footer__links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dttt-site-footer__links > strong { grid-column: 1 / -1; }
.dttt-site-footer__bottom { width: calc(100% - 2 * var(--dttt-gutter-mobile)); min-height: 72px; align-items: flex-start; flex-direction: column; justify-content: center; gap: 4px; }
body.dttt-has-canonical-quick-access { padding-bottom: calc(var(--dttt-dock-height) + 2 * var(--dttt-dock-inset) + env(safe-area-inset-bottom) + 12px); }
}
.dttt-assessment-landing {
  box-sizing: border-box;
  width: min(920px, calc(100% - 32px));
  margin: 24px auto;
  padding: clamp(20px, 4vw, 34px);
  border: 1px solid var(--dttt-color-border, #d7e5ec);
  border-radius: 18px;
  background: var(--dttt-color-surface, #fff);
  box-shadow: 0 14px 34px rgba(8, 35, 58, .08);
}
.dttt-assessment-kicker { color: var(--dttt-color-primary, #0876b6); font-size: 11px; font-weight: 900; letter-spacing: .1em; }
.dttt-assessment-landing h2 { margin: 7px 0 8px; color: var(--dttt-color-ink, #173e57); font-size: clamp(25px, 4vw, 36px); line-height: 1.12; }
.dttt-assessment-landing > p { color: var(--dttt-color-muted, #6f8796); line-height: 1.55; }
.dttt-assessment-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 20px 0; }
.dttt-assessment-summary > div { display: grid; gap: 5px; padding: 14px; border: 1px solid #deeaef; border-radius: 12px; background: #f7fbfd; }
.dttt-assessment-summary span { color: #6f8796; font-size: 11px; font-weight: 750; }
.dttt-assessment-summary strong { color: #173e57; font-size: 16px; overflow-wrap: anywhere; }
.dttt-assessment-rules { padding: 15px 17px; border-left: 4px solid var(--dttt-color-primary, #0876b6); border-radius: 0 12px 12px 0; background: #eff8fc; color: #315b70; }
.dttt-assessment-rules ul { margin: 8px 0 0; padding-left: 20px; line-height: 1.55; }
.dttt-assessment-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.dttt-button-link{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:var(--dttt-control-lg);background:var(--dttt-orange);color:#fff;padding:0 14px;border-radius:8px;font-weight:750;text-decoration:none}
.dttt-badge{display:inline-block;padding:3px 8px;border-radius:8px;font-size:11px;font-weight:800}
.dttt-badge.is-credit{background:#e6f8f3;color:#087760;border:1px solid #c2f0e3}
.dttt-badge.is-sem{background:#f0effe;color:#5b45b0;border:1px solid #d8d4fa}
.dttt-pdf-controls button,.dttt-pdf-controls .dttt-button{background:#fff;border:1px solid #bcd5e0;border-radius:9px;color:#175878;cursor:pointer;font:800 12px inherit;padding:8px 10px;text-decoration:none}
.dttt-pdf-controls button:hover,.dttt-pdf-controls .dttt-button:hover{background:#eaf6fb}
.dttt-button-secondary:hover,.dttt-button-secondary:focus{background:#f1f5f9}
.dttt-cv-actions .dttt-button{background:#fff;border:0;color:#075687;min-height:42px}
.dttt-cv-actions .dttt-button--primary{background:#f8d66a;color:#16344d}
.dttt-cv-form .dttt-button,.dttt-cv-ai-card .dttt-button{justify-self:start}
.dttt-badge-panel .dttt-cv-count{background:#e9f6fb;border-radius:999px;color:#0878ae;padding:8px 11px}
.dttt-badge-grid{display:grid;gap:9px}
.dttt-badge-card{align-items:center;border:1px solid #dae6ed;border-radius:13px;display:flex;gap:10px;padding:12px}
.dttt-badge-card.is-earned{background:#fff9e7;border-color:#eed88b}
.dttt-badge-card.is-locked{background:#f6f9fb;opacity:.72}
.dttt-badge-medal{align-items:center;background:#dcecf3;border-radius:50%;display:inline-flex;flex:0 0 40px;height:40px;justify-content:center}
.dttt-badge-card.is-earned .dttt-badge-medal{background:#f5cf5e}
.dttt-badge-medal svg{fill:none;height:23px;stroke:#0878ae;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:23px}
.dttt-badge-card.is-earned .dttt-badge-medal svg{stroke:#7a4a00}
.dttt-badge-card strong{display:block;font-size:13px}
.dttt-badge-card p{color:#6b8190;font-size:12px;margin:4px 0 0}
@media(max-width:740px) {
.dttt-cv-actions .dttt-button{flex:1 1 auto;text-align:center}
.dttt-lab-scheduling-panel .dttt-button{width:100%;text-align:center}
}
@media(max-width:680px) {
.dttt-assessment-landing { width: calc(100% - 20px); margin: 14px auto 84px; padding: 18px 15px; border-radius: 15px; }
.dttt-assessment-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dttt-assessment-actions { display: grid; grid-template-columns: 1fr; }
.dttt-assessment-actions .dttt-button { width: 100%; text-align: center; }
.dttt-pdf-controls button,.dttt-pdf-controls .dttt-button{flex:1;min-width:calc(50% - 5px);text-align:center}
.dttt-live-award-actions .dttt-button{flex:1;min-height:44px}
.dttt-mcp-token-row .dttt-button{width:100%}
}
.dttt-button-secondary,.dttt-button-primary{display:inline-flex;padding:12px 16px;border-radius:10px;text-decoration:none;font-weight:800}
.dttt-button-secondary{border:1.5px solid #cbdde6;border-radius:10px;padding:.55rem .9rem;cursor:pointer;font:inherit;font-weight:650;background:#fff;color:var(--dttt-blue)}
.dttt-button-primary{background:var(--dttt-blue);color:#fff}
@media(max-width:800px) {
.dttt-button-secondary{width:100%;justify-content:center}
}
