/* Canonical owner: theme/assets/public-portal.css. */
.dttt-home-layout .dttt-public-layout>.dttt-public-aside{min-width:0}
/* Public shell contract: the main column already sits inside the 1180px grid; do not add a second inner gutter. */
.dttt-public-layout > .dttt-main-workspace{width:100%;margin-inline:0}
.dttt-feed-stat,.dttt-reaction-button{align-items:center;display:inline-flex;gap:5px}
.dttt-learning-reader .dttt-single-card { width: min(820px, 100%); }
.dttt-public-customizer-preview .dttt-account { font-size: 0; }
.dttt-public-customizer-preview .dttt-account::after { content: "Đăng nhập hệ thống"; font-size: 14px; }
.dttt-public-shell{max-width:1180px;margin:0 auto;padding:42px 24px 70px}
.dttt-public-archive-head,.dttt-public-reading-head{border-bottom:1px solid var(--dttt-border);margin-bottom:26px;padding-bottom:22px}
.dttt-public-archive-head h1,.dttt-public-reading h1{font-size:clamp(30px,4vw,46px);letter-spacing:-1px;line-height:1.15;margin:7px 0 0}
.dttt-public-archive-head p,.dttt-public-reading-lead{color:var(--dttt-muted);font-size:17px;line-height:1.65;margin:12px 0 0;max-width:760px}
.dttt-public-card-grid{display:grid;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}
.dttt-public-card-image{aspect-ratio:16/9;background:#e8f1f8;display:block;overflow:hidden}
.dttt-public-card-image img{display:block;height:100%;object-fit:cover;width:100%}
.dttt-public-card-body{display:flex;flex:1;flex-direction:column;padding:18px}
.dttt-public-card-meta{align-items:center;display:flex;gap:10px;justify-content:space-between}
.dttt-public-card-meta time{color:var(--dttt-muted);font-size:12px}
.dttt-public-card h2{font-size:20px;line-height:1.35;margin:12px 0 9px}
.dttt-public-card h2 a{color:inherit;text-decoration:none}
.dttt-public-card h2 a:hover{text-decoration:underline;text-underline-offset:3px}
.dttt-public-card p{color:var(--dttt-muted);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-height:1.55;margin:0;overflow:hidden}
.dttt-public-card-more{color:var(--dttt-blue);font-size:14px;font-weight:800;margin-top:auto;padding-top:16px;text-decoration:none}
.dttt-public-card-more:hover{text-decoration:underline;text-underline-offset:3px}
.dttt-public-pagination{margin-top:28px}
.dttt-public-reading{background:#fff;border:1px solid var(--dttt-border);border-radius:16px;margin:0 auto;max-width:min(calc(var(--dttt-reader-max, 820px) + 96px),var(--dttt-content-max, 1180px));padding:clamp(24px,5vw,54px)}
.dttt-public-reading .dttt-thumb{border-radius:12px;display:block;height:auto;margin:24px 0;max-width:100%}
.dttt-public-reading .dttt-feed-meta{color:var(--dttt-muted);font-size:14px;margin:12px 0 0}
.dttt-public-reading .dttt-panel{box-shadow:none;margin:24px 0}
.dttt-public-reading .dttt-panel h2{margin-top:0}
.dttt-public-reading>p,.dttt-public-reading>ul,.dttt-public-reading>ol,.dttt-public-reading>h2,.dttt-public-reading>h3{max-width:min(var(--dttt-reader-max, 820px),100%)}
.dttt-public-reading>p,.dttt-public-reading li{line-height:1.8}
.dttt-public-gate{background:linear-gradient(135deg,#062b55,#0755a5);border-radius:16px;color:#fff;margin:0 auto;max-width:720px;padding:clamp(26px,5vw,48px)}
.dttt-public-gate h2{font-size:30px;margin:0 0 10px}
.dttt-public-gate p{color:#d8e8f8;line-height:1.65;margin:0 0 20px}
.dttt-public-gate .dttt-button{background:#fff;color:#0755a5;display:inline-block;font-weight:800;padding:11px 15px;text-decoration:none}
@media(max-width:820px) {
.dttt-public-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.dttt-public-shell{padding:30px 16px 82px}
}
.dttt-public-reading img,.dttt-public-reading figure,.dttt-public-reading iframe,.dttt-public-reading table{box-sizing:border-box;max-width:100%}
.dttt-public-reading img{height:auto}
.dttt-public-reading figure{margin-left:0;margin-right:0}
.dttt-public-reading iframe{max-width:100%;width:100%}
.dttt-public-reading table{display:block;overflow-x:auto}
.dttt-public-reading .dttt-content-figure{background:#f4f8fa;border:1px solid #d8e5eb;border-radius:14px;clear:both;display:block;float:none;margin:28px auto 34px;max-width:720px;overflow:hidden;padding:0;position:static}
.dttt-public-reading .dttt-content-image{background:#edf3f6;clear:both;display:block;float:none;height:auto;margin:0 auto;max-height:520px;max-width:100%;object-fit:contain;position:static;width:auto}
.dttt-public-reading .dttt-content-figure figcaption{color:#627d8e;font-size:12px;line-height:1.45;padding:10px 14px;text-align:center}
.dttt-public-reading>p:has(>img:only-child),.dttt-public-reading>p:has(>.dttt-content-image:only-child){clear:both;display:flow-root;margin:26px auto 34px;max-width:720px;position:static}
.dttt-public-reading>p>img:only-child,.dttt-public-reading>p>.dttt-content-image:only-child{border:1px solid #d8e5eb;border-radius:12px;clear:both;display:block;float:none;margin:0 auto;max-height:520px;max-width:100%;object-fit:contain;position:static;width:auto}
.dttt-entry-content>p:has(>img:only-child),.dttt-entry-content>p:has(>a:only-child>img:only-child){clear:both;display:flow-root;margin:26px auto 34px;max-width:720px;position:static}
.dttt-entry-content>p>img:only-child,.dttt-entry-content>p>a:only-child>img:only-child{border:1px solid #d8e5eb;border-radius:12px;box-sizing:border-box;clear:both;display:block;float:none;height:auto;margin:0 auto;max-height:520px;max-width:100%;object-fit:contain;position:static;width:auto}
.dttt-entry-content .gallery{box-sizing:border-box;clear:both;display:grid;float:none;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin:30px auto 34px;max-width:720px;position:static;width:100%}
.dttt-entry-content .gallery-item{box-sizing:border-box;display:block;float:none;margin:0;max-width:100%;padding:0;width:auto}
.dttt-entry-content .gallery-icon,.dttt-entry-content .gallery-icon>a{display:block;line-height:0}
.dttt-entry-content .gallery-icon img{border:1px solid #d8e5eb;border-radius:12px;box-sizing:border-box;display:block;float:none;height:auto;margin:0;max-height:270px;max-width:100%;object-fit:cover;position:static;width:100%}
.dttt-entry-content .gallery-caption{color:#627d8e;font-size:12px;line-height:1.45;margin-top:7px;text-align:center}
.dttt-entry-content .dttt-content-figure{background:#f4f8fa;border:1px solid #d8e5eb;border-radius:14px;box-sizing:border-box;clear:both;display:block;float:none;margin:28px auto 34px;max-width:720px;overflow:hidden;padding:0;position:static}
.dttt-entry-content .dttt-content-image{background:#edf3f6;clear:both;display:block;float:none;height:auto;margin:0 auto;max-height:520px;max-width:100%;object-fit:contain;position:static;width:auto}
.dttt-entry-content .dttt-content-figure figcaption{color:#627d8e;font-size:12px;line-height:1.45;padding:10px 14px;text-align:center}
.dttt-public-contact,
.dttt-single-aside .dttt-public-contact {
  box-sizing: border-box;
}
.dttt-public-contact { padding: 24px; }
.dttt-public-contact h2 { color: var(--dttt-ink, #14243a); font-size: 24px; line-height: 1.25; margin: 6px 0 8px; }
.dttt-public-contact p { color: var(--dttt-muted, #5e7180); margin: 0; }
.dttt-public-contact .dttt-phone-grid { display: grid; gap: 8px; margin-top: 20px; }
.dttt-public-contact .dttt-phone-grid > a { align-items: center; border-radius: 12px; display: flex; gap: 10px; min-height: 52px; padding: 8px 10px; text-decoration: none; }
.dttt-public-contact .dttt-phone-grid > a:hover,
.dttt-public-contact .dttt-phone-grid > a:focus-visible { background: #eef7fc; }
.dttt-public-contact .dttt-phone-grid .dttt-icon { align-items: center; background: #eef7fc; border-radius: 10px; color: var(--dttt-primary, #0876b6); display: inline-flex; flex: 0 0 32px; height: 32px; justify-content: center; width: 32px; }
.dttt-public-contact .dttt-phone-grid span { display: grid; gap: 2px; min-width: 0; }
.dttt-public-contact .dttt-phone-grid strong { color: var(--dttt-ink, #14243a); font-size: 13px; line-height: 1.2; }
.dttt-public-contact .dttt-phone-grid small { color: var(--dttt-muted, #5e7180); font-size: 12px; line-height: 1.3; overflow-wrap: anywhere; }
.dttt-public-contact .dttt-contact-details { border-top: 1px solid var(--dttt-border, #e2ecf2); margin-top: 18px; padding-top: 16px; }
.dttt-public-contact .dttt-contact-details summary { color: var(--dttt-primary, #0876b6); cursor: pointer; font-size: 14px; font-weight: 700; list-style: none; }
.dttt-public-contact .dttt-contact-details summary::-webkit-details-marker { display: none; }
.dttt-public-contact .dttt-contact-details summary span { float: right; font-size: 18px; line-height: 1; }
.dttt-public-contact .dttt-panel.dttt-contact { background: transparent; border: 0; box-shadow: none; margin: 16px 0 0; padding: 0; }
.dttt-public-contact .dttt-panel.dttt-contact h2 { display: none; }
.dttt-public-archive { background: var(--dttt-canvas, #f5f8fa); min-height: 50vh; }
.dttt-public-archive-hero { background: var(--dttt-ink, #14243a); color: #fff; }
.dttt-public-archive-hero__inner { box-sizing: border-box; display: block; margin: 0 auto; max-width: var(--dttt-content-max, 1180px); padding: 48px clamp(16px, 4vw, 50px); }
.dttt-public-archive-hero__copy { box-sizing: border-box; max-width: 760px; min-width: 0; }
.dttt-public-archive-hero__copy > * { max-width: 100%; }
.dttt-public-archive-hero__copy .dttt-archive-search { max-width: 680px; }
.dttt-public-archive-hero .dttt-eyebrow { color: #bde7fa; }
.dttt-public-archive-hero h1 { color: #fff; font-size: clamp(28px, 4vw, 42px); line-height: 1.12; margin: 8px 0 12px; }
.dttt-public-archive-hero p { color: #d9edf6; font-size: 16px; margin: 0; max-width: 64ch; }
.dttt-archive-search { align-items: stretch; display: flex; gap: 8px; margin-top: 24px; max-width: 680px; }
.dttt-archive-search input { background: #fff; border: 1px solid rgba(255,255,255,.35); border-radius: 9px; color: var(--dttt-ink, #14243a); flex: 1 1 auto; font-size: 16px; min-height: 44px; min-width: 0; padding: 10px 13px; }
.dttt-archive-search button { background: var(--dttt-primary, #0876b6); border: 1px solid #5fc1eb; border-radius: 9px; color: #fff; cursor: pointer; font-size: 14px; font-weight: 700; min-height: 44px; padding: 10px 16px; }
.dttt-archive-search button:hover,
.dttt-archive-search button:focus-visible { background: #0a8bcf; }
.dttt-public-archive-layout { align-items: start; display: grid; gap: 24px; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); margin: 0 auto; max-width: var(--dttt-content-max, 1180px); padding: 32px clamp(16px, 4vw, 50px) 48px; }
.dttt-public-archive-results { min-width: 0; }
.dttt-public-archive .dttt-section-head { align-items: end; display: flex; justify-content: space-between; margin-bottom: 18px; }
.dttt-public-archive .dttt-section-head h2 { color: var(--dttt-ink, #14243a); font-size: 24px; line-height: 1.25; margin: 6px 0 0; }
.dttt-archive-result-count { color: var(--dttt-muted, #5e7180); font-size: 13px; }
.dttt-public-archive-grid { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dttt-public-card {flex-direction:column;min-height:100%; display: flex; min-width: 0; overflow: hidden; }
.dttt-public-card__media { background: #eaf2f6; display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.dttt-public-card__image { display: block; height: 100%; object-fit: cover; width: 100%; }
.dttt-public-card__body { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; padding: 18px; }
.dttt-public-card__meta,
.dttt-related-card__meta { align-items: center; color: var(--dttt-muted, #5e7180); display: flex; font-size: 12px; gap: 8px; justify-content: space-between; }
.dttt-public-card__meta span,
.dttt-related-card__meta span { color: var(--dttt-primary, #0876b6); font-weight: 700; letter-spacing: .04em; }
.dttt-public-card__title { font-size: 18px; line-height: 1.35; margin: 10px 0 8px; }
.dttt-public-card__title a { color: var(--dttt-ink, #14243a); text-decoration: none; }
.dttt-public-card__title a:hover,
.dttt-public-card__title a:focus-visible { color: var(--dttt-primary, #0876b6); }
.dttt-public-card__excerpt { color: var(--dttt-muted, #5e7180); font-size: 14px; line-height: 1.5; margin: 0; }
.dttt-public-card__read { align-items: center; color: var(--dttt-primary, #0876b6); display: inline-flex; font-size: 13px; font-weight: 700; gap: 6px; margin-top: auto; padding-top: 16px; text-decoration: none; }
.dttt-public-card__read svg { display: block; flex: 0 0 18px; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dttt-public-card__read:hover span,
.dttt-public-card__read:focus-visible span { transform: translateX(3px); }
.dttt-public-card__read span { transition: transform 160ms ease; }
.dttt-public-empty { background: #fff; border: 1px solid var(--dttt-border, #e2ecf2); border-radius: 16px; padding: 28px; }
.dttt-public-empty h3 { color: var(--dttt-ink, #14243a); margin: 0 0 8px; }
.dttt-public-empty p { color: var(--dttt-muted, #5e7180); margin: 0 0 18px; }
.dttt-public-archive .navigation.pagination { margin-top: 24px; }
.dttt-public-archive .navigation.pagination .nav-links { align-items: center; display: flex; flex-wrap: wrap; gap: 7px; }
.dttt-public-archive .navigation.pagination .page-numbers { align-items: center; border: 1px solid var(--dttt-border, #e2ecf2); border-radius: 8px; color: var(--dttt-ink, #14243a); display: inline-flex; min-height: 40px; padding: 0 12px; text-decoration: none; }
.dttt-public-archive .navigation.pagination .page-numbers.current,
.dttt-public-archive .navigation.pagination .page-numbers:hover,
.dttt-public-archive .navigation.pagination .page-numbers:focus-visible { background: var(--dttt-primary, #0876b6); border-color: var(--dttt-primary, #0876b6); color: #fff; }
.dttt-single-wrapper {
  box-sizing: border-box;
  align-items: start;
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr) 320px;
  width: min(var(--dttt-content-max, 1180px), calc(100% - 48px));
  margin: 0 auto;
  max-width: none;
  padding: 32px 0 48px;
}
.dttt-single-card {
  min-width: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.dttt-single-article { background: var(--dttt-surface, #fff); border: 1px solid var(--dttt-border, #e2ecf2); border-radius: 16px; box-shadow: var(--dttt-shadow-card, 0 8px 24px rgba(20, 36, 58, .08)); padding: clamp(20px, 4vw, 48px); }
.dttt-single-title { color: var(--dttt-ink, #14243a); font-size: clamp(28px, 4vw, 44px); line-height: 1.12; margin: 12px 0 10px; }
.dttt-single-meta { align-items: center; color: var(--dttt-muted, #5e7180); display: flex; flex-wrap: wrap; gap: 6px; }
.dttt-single-thumb { border-radius: 12px; display: block; height: auto; margin: 24px auto; max-height: 520px; max-width: 100%; object-fit: contain; }
.dttt-single-article > .dttt-image-placeholder { box-sizing: border-box; border-radius: 12px; margin: 24px auto; max-width: 720px; min-height: 220px; }
.dttt-single-content .dttt-content-image-fallback { align-items: stretch; background: #f6fafc; border: 1px solid var(--dttt-border, #e2ecf2); border-radius: 12px; display: flex; justify-content: center; margin: 16px 0; min-height: 220px; overflow: hidden; padding: 12px; }
.dttt-single-content .dttt-content-image-fallback > .dttt-image-placeholder { border-radius: 8px; min-height: 190px; }
.dttt-public-card__media > .dttt-image-placeholder,
.dttt-related-card__media > .dttt-image-placeholder { height: 100%; min-height: 0; }
.dttt-related-posts { margin-top: 28px; }
.dttt-related-posts .dttt-section-head h2 { color: var(--dttt-ink, #14243a); font-size: 24px; margin: 6px 0 0; }
.dttt-related-posts-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.dttt-related-card { background: var(--dttt-surface, #fff); border: 1px solid var(--dttt-border, #e2ecf2); border-radius: 14px; min-width: 0; overflow: hidden; }
.dttt-related-card__media { aspect-ratio: 16 / 9; background: #eaf2f6; display: block; overflow: hidden; }
.dttt-related-card__image { display: block; height: 100%; object-fit: cover; width: 100%; }
.dttt-related-card__body { padding: 14px; }
.dttt-related-card__title { color: var(--dttt-ink, #14243a); font-size: 16px; font-weight: 600; line-height: 1.35; margin: 10px 0 0; }
.dttt-related-card:hover .dttt-related-card__title,
.dttt-related-card:focus-visible .dttt-related-card__title { color: var(--dttt-primary, #0876b6); }
.dttt-single-aside .dttt-public-contact { margin: 0; }
.dttt-public-archive a:focus-visible,
.dttt-single-wrapper a:focus-visible,
.dttt-public-contact a:focus-visible,
.dttt-public-contact summary:focus-visible { outline: 3px solid #f2b544; outline-offset: 3px; }
@media (min-width: 768px) and (max-width: 1023px) {
.dttt-public-archive-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dttt-related-posts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.dttt-public-archive-layout { grid-template-columns: minmax(0, 1fr) 270px; }
.dttt-single-wrapper { grid-template-columns: minmax(0, 1fr) 270px; width: calc(100% - 48px); }
}
.dttt-context-toolbar {
  box-sizing: border-box;
  display: flex;
  min-height: 56px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 14px;
  padding: 7px;
  border: 1px solid var(--dttt-border, #e2ecf2);
  border-radius: 14px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 9px 24px rgba(20,36,58,.08);
}
.dttt-context-toolbar .dttt-single-back {
  box-sizing: border-box;
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  border-radius: 9px;
  color: var(--dttt-primary, #0876b6);
  font-size: 13px;
  font-weight: 750;
  text-decoration: none;
}
.dttt-context-toolbar .dttt-single-back:hover,
.dttt-context-toolbar .dttt-single-back:focus-visible { background: #eef7fc; }
.dttt-context-toolbar .dttt-ui-icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; }
.dttt-context-toolbar .dttt-single-kind { margin-right: 8px; }
.dttt-action-toolbar {
  padding: 0;
  overflow: hidden;
}
.dttt-action-toolbar .dttt-contact-head {
  padding: 22px;
  background: linear-gradient(135deg, #073d70, #0a69a8);
}
.dttt-action-toolbar .dttt-contact-head .dttt-eyebrow,
.dttt-action-toolbar .dttt-contact-head h2,
.dttt-action-toolbar .dttt-contact-head p { color: #fff; }
.dttt-action-toolbar .dttt-contact-head h2 { margin: 6px 0 7px; }
.dttt-action-toolbar .dttt-contact-head p { font-size: 13px; opacity: .84; }
.dttt-action-toolbar .dttt-phone-grid { display: grid; grid-template-columns: 1fr; gap: 7px; margin: 0; padding: 16px; }
.dttt-action-toolbar .dttt-phone-grid > a { min-width: 0; }
.dttt-action-toolbar .dttt-contact-details { margin: 0; padding: 0 16px 16px; border: 0; }
.dttt-action-toolbar .dttt-contact-details summary { box-sizing: border-box; min-height: 44px; padding: 12px; border-radius: 10px; background: #eef7fc; }
.dttt-action-toolbar .dttt-contact-details[open] summary { margin-bottom: 2px; background: #e4f3fa; }
.dttt-action-toolbar .dttt-contact-details[open] summary span { transform: rotate(45deg); }
.dttt-action-toolbar .dttt-form-shell { margin: 0; padding: 16px; border: 0; border-radius: 0; background: #fff; box-shadow: none; }
.dttt-action-toolbar .dttt-form-shell > h2 { display: none; }
.dttt-action-toolbar .dttt-contact-form { display: grid; gap: 13px; min-width: 0; }
.dttt-action-toolbar .dttt-contact-form > p,
.dttt-action-toolbar .dttt-contact-grid > p { min-width: 0; margin: 0; }
.dttt-action-toolbar .dttt-contact-grid { display: grid; grid-template-columns: 1fr; gap: 13px; }
.dttt-action-toolbar .dttt-contact-form label { display: block; color: #29475d; font-size: 12px; font-weight: 750; line-height: 1.4; }
.dttt-action-toolbar .dttt-contact-form input:not([type="hidden"]):not([type="checkbox"]),
.dttt-action-toolbar .dttt-contact-form select,
.dttt-action-toolbar .dttt-contact-form textarea {
  box-sizing: border-box;
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  margin: 6px 0 0;
  padding: 10px 11px;
  border: 1px solid #c7d8e3;
  border-radius: 9px;
  background: #fff;
  color: #14243a;
  font: inherit;
  font-size: 14px;
  line-height: 1.35;
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
}
.dttt-action-toolbar .dttt-contact-form textarea { min-height: 116px; resize: vertical; }
.dttt-action-toolbar .dttt-contact-form input:focus,
.dttt-action-toolbar .dttt-contact-form select:focus,
.dttt-action-toolbar .dttt-contact-form textarea:focus { border-color: #0876b6; background: #fbfdff; box-shadow: 0 0 0 3px rgba(8,118,182,.14); outline: 0; }
.dttt-action-toolbar .dttt-contact-form label:has(input[type="checkbox"]) { display: grid; grid-template-columns: 18px minmax(0,1fr); gap: 9px; align-items: start; color: #536b7b; font-size: 11px; font-weight: 600; line-height: 1.5; }
.dttt-action-toolbar .dttt-contact-form input[type="checkbox"] { width: 18px; height: 18px; margin: 1px 0 0; accent-color: #0876b6; }
.dttt-action-toolbar .dttt-contact-form .dttt-honeypot { display: none; }
.dttt-action-toolbar .dttt-contact-form .dttt-button { display: inline-flex; width: 100%; min-height: 44px; align-items: center; justify-content: center; margin: 0; padding: 10px 16px; border: 0; border-radius: 10px; background: #0876b6; color: #fff; font-size: 13px; font-weight: 800; cursor: pointer; transition: background-color 160ms ease, transform 100ms ease, box-shadow 160ms ease; }
.dttt-action-toolbar .dttt-contact-form .dttt-button:hover,
.dttt-action-toolbar .dttt-contact-form .dttt-button:focus-visible { background: #06669e; box-shadow: 0 8px 20px rgba(8,118,182,.22); outline: 0; }
.dttt-action-toolbar .dttt-contact-form .dttt-button:active { transform: scale(.985); }
.dttt-action-toolbar .dttt-success { margin: 0 0 13px; padding: 11px 12px; border: 1px solid #bfe7d2; border-radius: 9px; background: #eaf8f1; color: #176744; font-size: 12px; line-height: 1.5; }
.dttt-single-aside { min-width: 0; position: sticky; top: 88px; display: grid; gap: 18px; }
.dttt-related-toolbar { margin: 0; padding: 16px; border: 1px solid var(--dttt-border, #e2ecf2); border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(20,36,58,.07); }
.dttt-related-toolbar__head { margin-bottom: 12px; }
.dttt-related-toolbar__head h2 { margin: 5px 0 0; color: var(--dttt-ink, #14243a); font-size: 19px; }
.dttt-related-toolbar .dttt-related-posts-grid { display: grid; gap: 9px; grid-template-columns: 1fr; }
.dttt-related-toolbar .dttt-related-card { display: grid; min-height: 74px; grid-template-columns: 82px minmax(0,1fr); color: inherit; text-decoration: none; }
.dttt-related-toolbar .dttt-related-card__media { width: 82px; height: 74px; aspect-ratio: auto; }
.dttt-related-toolbar .dttt-related-card__body { display: grid; align-content: center; gap: 5px; padding: 9px 10px; }
.dttt-related-toolbar .dttt-related-card__meta { display: block; color: var(--dttt-muted, #5e7180); font-size: 10px; line-height: 1.25; }
.dttt-related-toolbar .dttt-related-card__title { display: -webkit-box; margin: 0; overflow: hidden; font-size: 13px; font-weight: 750; line-height: 1.3; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.dttt-archive-head{background:#eaf2f9;border-bottom:1px solid #d5e0ea}
.dttt-archive-head>div{max-width:1180px;margin:auto;padding:34px 24px}
.dttt-archive-head h1{margin:5px 0 0;font-size:34px}
.dttt-archive-head p{color:#68798e;margin-bottom:0}
.dttt-inline-contact .dttt-phone-grid{grid-template-columns:1fr}
.dttt-inline-contact .dttt-phone-grid a{grid-template-columns:36px 1fr;display:grid}
.dttt-inline-contact .dttt-phone-grid strong{font-size:11px;font-weight:650;color:var(--dttt-muted);text-transform:uppercase;letter-spacing:.5px}
.dttt-inline-contact .dttt-phone-grid small{font-size:15px;font-weight:800;color:var(--dttt-blue);margin-top:2px;letter-spacing:.2px}
.dttt-contact-details{border-top:1px solid var(--dttt-border)}
.dttt-contact-details summary{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;cursor:pointer;color:var(--dttt-blue);font-size:13px;font-weight:800;list-style:none}
.dttt-contact-details summary::-webkit-details-marker{display:none}
.dttt-contact-details[open] summary span{transform:rotate(45deg)}
.dttt-contact-details summary span{font-size:18px;transition:.2s}
.dttt-inline-contact{padding:0;overflow:hidden;border:0;box-shadow:0 10px 28px rgba(18,48,78,.1);background:#fff;color:var(--dttt-text)}
.dttt-contact-head{padding:20px;background:linear-gradient(135deg,#062b55,#0755a5);color:#fff}
.dttt-contact-head .dttt-eyebrow{color:#75dfef}
.dttt-contact-head h3{font-size:22px;margin:5px 0}
.dttt-contact-head p{font-size:13px;color:#d5e7fa;margin:0}
.dttt-phone-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px}
.dttt-phone-grid a{display:flex;align-items:center;gap:8px;background:#edf6ff;border:1px solid #d6e7f7;border-radius:10px;padding:10px;color:inherit;text-decoration:none}
.dttt-phone-grid b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--dttt-blue);color:#fff}
.dttt-phone-grid strong,.dttt-phone-grid small{display:block}
.dttt-phone-grid small{font-size:11px;color:var(--dttt-blue);margin-top:2px}
.dttt-inline-contact .dttt-panel{border:0;border-radius:0;box-shadow:none;margin:0;padding:12px}
.dttt-inline-contact .dttt-panel h2{font-size:17px;margin:0 0 8px}
.dttt-inline-contact .dttt-contact p{margin:8px 0;font-size:12px}
.dttt-inline-contact .dttt-button{width:100%;background:var(--dttt-orange)}
.dttt-inline-contact .dttt-success{background:#e5f7ee;padding:10px;border-radius:8px}
.dttt-inline-contact .dttt-facebook-link{background:#eef3ff;border-color:#d8e1fb}
.dttt-inline-contact .dttt-facebook-link b{background:#1877f2;font-family:Arial,sans-serif;font-size:20px;text-transform:lowercase}
.dttt-inline-contact .dttt-facebook-link small{font-size:12px}
.dttt-guest-layout .dttt-feature-grid{grid-template-columns:1.25fr 1fr}
.dttt-guest-layout .dttt-feature-grid article.is-lead{grid-row:span 3}
.dttt-guest-layout .dttt-public-aside{position:sticky;top:88px;max-height:calc(100vh - 100px);overflow:auto;scrollbar-width:thin}
.dttt-schedule-widget{padding:0;overflow:hidden;border:0;box-shadow:0 10px 28px rgba(18,48,78,.1)}
.dttt-schedule-links{padding:6px 12px}
.dttt-schedule-links a{display:grid;grid-template-columns:42px 1fr 18px;align-items:center;gap:10px;padding:13px 8px;border-top:1px solid var(--dttt-border);text-decoration:none;transition:.18s}
.dttt-schedule-links a:first-child{border-top:0}
.dttt-schedule-links a:hover{background:#f3f8fd;border-radius:9px;transform:translateX(2px)}
.dttt-schedule-links b{width:40px;height:40px;border-radius:10px;background:#e6f1ff;color:var(--dttt-blue);display:grid;place-items:center;font-size:11px;letter-spacing:.4px}
.dttt-schedule-links a:nth-child(2) b{background:#e3f8f3;color:#087d68}
.dttt-schedule-links a:nth-child(3) b{background:#fff2e8;color:#bd591d}
.dttt-schedule-links a:nth-child(4) b{background:#f2ebff;color:#7142a8}
.dttt-schedule-links strong,.dttt-schedule-links small{display:block}
.dttt-schedule-links strong{font-size:14px}
.dttt-schedule-links small{font-size:11px;color:var(--dttt-muted);margin-top:3px;line-height:1.35}
.dttt-schedule-links i{font-style:normal;color:#8ca0b3}
.dttt-feed-filter{display:flex;gap:7px;overflow:auto;margin-bottom:14px}
.dttt-feed-filter a{background:#fff;border:1px solid var(--dttt-border);border-radius:20px;padding:8px 13px;color:inherit;text-decoration:none;white-space:nowrap}
.dttt-feed-meta{display:flex;align-items:center;gap:10px;color:var(--dttt-muted);font-size:13px}
.dttt-feed-meta div{flex:1}
.dttt-feed-meta strong{display:block;color:var(--dttt-text)}
.dttt-feed-actions{border-top:1px solid var(--dttt-border);padding-top:11px;color:var(--dttt-muted);display:flex;gap:22px;font-size:13px}
.dttt-feature-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:16px}
.dttt-feature-grid article{background:#fff;border:1px solid var(--dttt-border);border-radius:14px;overflow:hidden}
.dttt-feature-grid article.is-lead{grid-row:span 2}
.dttt-feature-grid article>div{padding:17px}
.dttt-feature-image{display:block;aspect-ratio:16/9;background:#dfe8f1;overflow:hidden}
.dttt-feature-image img{width:100%;height:100%;object-fit:cover}
.dttt-feature-grid h2{font-size:18px;margin:10px 0 7px}
.dttt-feature-grid .is-lead h2{font-size:25px}
.dttt-feature-grid h2 a{color:inherit;text-decoration:none}
.dttt-feature-grid p{color:var(--dttt-muted);line-height:1.5;margin-bottom:0}
.dttt-public-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px}
.dttt-public-aside{position:sticky;top:90px;height:max-content}
.dttt-contact-widget{background:var(--dttt-deep);color:#fff;border:0}
.dttt-contact-widget p{color:#c8daee;line-height:1.5}
.dttt-feed-actions a{color:var(--dttt-blue);font-weight:750;text-decoration:none}
.dttt-resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.dttt-resource-grid>a{background:#fff;border:1px solid var(--dttt-border);border-radius:13px;padding:18px;color:inherit;text-decoration:none}
.dttt-resource-grid>a>span{font-size:10px;font-weight:850;color:var(--dttt-cyan)}
.dttt-resource-grid h3{margin:9px 0}
.dttt-resource-grid p{color:var(--dttt-muted);line-height:1.5}
.dttt-feed-filter-popover{position:relative;flex:0 0 auto}
.dttt-feed-filter-trigger{align-items:center;background:#f7fafc;border:1px solid #cfdee7;border-radius:10px;box-sizing:border-box;color:#294d62;cursor:pointer;display:inline-flex;font-size:12px;font-weight:850;gap:5px;min-height:44px;padding:0 12px;white-space:nowrap}
.dttt-feed-filter-trigger span{font-size:16px;line-height:1}
.dttt-feed-filter-trigger:hover,.dttt-feed-filter-trigger[aria-expanded=true]{background:#e7f1f6;border-color:#9fc0cf;color:#103e56}
.dttt-public-gate-title{color:#173f59;font-size:24px;font-weight:850;line-height:1.2;margin:0 0 8px}
.dttt-public-gate>p:not(.dttt-public-gate-title){color:#687e8b;font-size:14px;line-height:1.55}
@media(max-width:720px) {
.dttt-feed-filter-trigger{padding:9px 10px}
}
@media(max-width:430px) {
.dttt-feed-filter-trigger{font-size:11px;padding:9px 8px}
.dttt-feed-filter-trigger span{font-size:15px}
}
.dttt-public-mobile-nav{box-shadow:0 -4px 18px rgba(0,0,0,.08);display:none}
main.dttt-public-shell>.dttt-portal.dttt-student-dashboard .dttt-public-reading-head{display:none}
.dttt-author-edit-cta{align-items:center;background:#eef8fd;border:1px solid #b9dceb;border-radius:12px;display:flex;gap:10px;justify-content:space-between;margin:0 auto 16px;max-width:860px;padding:10px 13px}
.dttt-author-edit-cta span{color:#0876b6;font-size:10px;font-weight:850;letter-spacing:.08em}
.dttt-author-edit-cta a{align-items:center;background:#0876b6;border-radius:8px;box-sizing:border-box;color:#fff;display:inline-flex;font-size:12px;font-weight:800;justify-content:center;min-height:44px;padding:0 11px;text-decoration:none}
.dttt-author-edit-cta a:hover{background:#075f91}
@media(max-width:520px) {
.dttt-phone-grid{grid-template-columns:1fr}
.dttt-author-edit-cta{align-items:flex-start;flex-direction:column}
.dttt-author-edit-cta a{width:100%;text-align:center}
}
.dttt-feed-pagination{align-items:center;background:#f7fbfd;border:1px solid #d8e7ed;border-radius:12px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);margin:12px 0 4px;padding:9px 12px}
.dttt-feed-pagination a{align-items:center;box-sizing:border-box;color:#0b6f98;display:inline-flex;font-size:12px;font-weight:850;gap:5px;min-height:44px;padding:0 4px;text-decoration:none}
.dttt-feed-pagination a:last-child{justify-content:flex-end;text-align:right}
.dttt-feed-pagination a:focus-visible{outline:3px solid rgba(8,118,182,.25);outline-offset:3px}
.dttt-feed-pagination strong{color:#5c7888;font-size:11px;text-align:center;white-space:nowrap}
.dttt-public-curriculum{background:#f4f9fb;box-sizing:border-box;margin:0 auto;max-width:1180px;padding:20px 0 42px}
.dttt-public-curriculum-hero{align-items:flex-start;background:linear-gradient(135deg,#07547b,#0876b6 58%,#13a0b0);border-radius:20px;box-shadow:0 16px 34px rgba(12,78,105,.16);box-sizing:border-box;color:#fff;display:flex;gap:24px;justify-content:space-between;margin-bottom:16px;padding:28px 30px}
.dttt-public-curriculum-kicker{display:block;font-size:11px;font-weight:900;letter-spacing:.08em;opacity:.82}
.dttt-public-curriculum-hero h1{font-size:clamp(25px,3vw,38px);letter-spacing:-.035em;line-height:1.08;margin:9px 0 10px;max-width:680px}
.dttt-public-curriculum-hero p{font-size:14px;line-height:1.55;margin:0;max-width:680px;opacity:.9}
.dttt-public-curriculum-stats{display:grid;flex:0 0 270px;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}
.dttt-public-curriculum-stats span{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);border-radius:13px;display:grid;padding:12px 9px;text-align:center}
.dttt-public-curriculum-stats strong{font-size:23px;line-height:1.05}
.dttt-public-curriculum-stats small{font-size:10px;font-weight:800;margin-top:4px}
.dttt-public-curriculum-toolbar{align-items:end;background:#fff;border:1px solid #d7e7ed;border-radius:15px;box-shadow:0 7px 20px rgba(20,70,95,.05);display:grid;gap:12px;grid-template-columns:minmax(0,2fr) repeat(2,minmax(150px,1fr)) auto;margin-bottom:16px;padding:15px}
.dttt-public-curriculum-toolbar label{display:grid;gap:6px}
.dttt-public-curriculum-toolbar label>span{color:#436779;font-size:11px;font-weight:850}
.dttt-public-curriculum-toolbar input,.dttt-public-curriculum-toolbar select{background:#fff;border:1px solid #c9dce5;border-radius:9px;box-sizing:border-box;color:#244b62;font:inherit;min-height:40px;padding:8px 10px;width:100%}
.dttt-public-curriculum-toolbar input:focus,.dttt-public-curriculum-toolbar select:focus{border-color:#0876b6;box-shadow:0 0 0 3px rgba(8,118,182,.12);outline:0}
.dttt-public-curriculum-result{color:#0876b6;font-size:11px;font-weight:850;margin:0 0 8px;white-space:nowrap}
.dttt-public-curriculum-grid{display:grid;gap:11px;grid-template-columns:repeat(3,minmax(0,1fr))}
.dttt-public-curriculum-card{background:#fff;border:1px solid #d9e8ed;border-left:4px solid #0d83b7;border-radius:14px;box-shadow:0 5px 15px rgba(20,70,95,.045);box-sizing:border-box;min-width:0;padding:14px}
.dttt-public-curriculum-card[hidden]{display:none}
.dttt-public-curriculum-card-head{align-items:center;display:flex;justify-content:space-between;gap:8px}
.dttt-public-curriculum-code{color:#0876b6;font-size:11px;font-weight:900;letter-spacing:.04em}
.dttt-public-curriculum-semester{background:#eaf6fa;border-radius:999px;color:#17698e;font-size:10px;font-weight:900;padding:4px 7px}
.dttt-public-curriculum-card h2{color:#204b64;font-size:15px;line-height:1.3;margin:10px 0 11px}
.dttt-public-curriculum-card-meta{align-items:center;display:flex;flex-wrap:wrap;gap:5px}
.dttt-public-curriculum-card-meta>span:not(.dttt-public-curriculum-type){background:#f6fafb;border:1px solid #e0edf1;border-radius:999px;color:#557582;font-size:10px;font-weight:750;padding:4px 6px}
.dttt-public-curriculum-type{border-radius:999px;font-size:10px;font-weight:900;padding:4px 7px}
.dttt-public-curriculum-type.type-lt{background:#e8f2ff;color:#1f64a3}
.dttt-public-curriculum-type.type-th{background:#fff3df;color:#9a6012}
.dttt-public-curriculum-type.type-lt-th{background:#eaf8ef;color:#267348}
.dttt-public-curriculum-dept{color:#79919c;font-size:10px;font-weight:800;margin:10px 0 0}
.dttt-public-curriculum-empty{background:#fff;border:1px dashed #a9cbd8;border-radius:12px;color:#5b7885;margin:16px 0;padding:18px;text-align:center}
.dttt-public-curriculum-note{background:#eef8fb;border:1px solid #cde4eb;border-radius:14px;color:#557582;font-size:11px;line-height:1.55;margin-top:16px;padding:14px 16px}
.dttt-public-curriculum-note strong{color:#155a78}
.dttt-public-curriculum-note p{margin:5px 0 0}
@media(max-width:980px) {
.dttt-public-curriculum{padding-left:16px;padding-right:16px}
.dttt-public-curriculum-hero{display:grid}
.dttt-public-curriculum-stats{flex-basis:auto;width:100%}
.dttt-public-curriculum-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}
.dttt-public-curriculum-result{margin:0 0 8px}
}
@media(max-width:640px) {
.dttt-public-curriculum{padding:10px 10px 32px}
.dttt-public-curriculum-hero{border-radius:15px;padding:20px 17px}
.dttt-public-curriculum-hero h1{font-size:27px}
.dttt-public-curriculum-hero p{font-size:12px}
.dttt-public-curriculum-stats strong{font-size:20px}
.dttt-public-curriculum-toolbar{grid-template-columns:1fr;padding:12px}
.dttt-public-curriculum-result{margin:0}
.dttt-public-curriculum-grid{grid-template-columns:1fr}
.dttt-public-curriculum-card h2{font-size:16px}
}
.dttt-public-footer-links{align-items:center;border-top:1px solid var(--dttt-border,#d8e6ed);display:flex;gap:8px;justify-content:center;margin:22px auto 0;max-width:1180px;padding:14px 16px;position:static}
.dttt-public-footer-links a{color:#557483;font-size:12px;font-weight:800;padding:7px 10px;text-decoration:none}
.dttt-public-footer-links a:hover,.dttt-public-footer-links a:focus-visible{background:#edf7fb;border-radius:8px;color:#0876b6;outline:0}
@media(max-width:620px) {
.dttt-public-mobile-nav{min-height:60px;padding-bottom:env(safe-area-inset-bottom)}
}
@media (max-width:680px) {
.dttt-guest-layout .dttt-feature-grid{grid-template-columns:1fr}
.dttt-public-mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--dttt-border);z-index:30;justify-content:space-around;padding:10px}
.dttt-public-mobile-nav a{color:inherit;text-decoration:none;font-size:12px;font-weight:700}
.dttt-feature-grid,.dttt-resource-grid{grid-template-columns:1fr}
.dttt-feed-pagination{gap:8px;grid-template-columns:1fr 1fr;margin-left:0;margin-right:0;padding:8px 10px}
.dttt-feed-pagination strong{grid-column:1/-1;grid-row:1;order:-1}
.dttt-feed-pagination a{font-size:11px}
.dttt-feed-pagination a:last-child{justify-content:flex-end;text-align:right}
.dttt-public-footer-links{flex-wrap:wrap;margin-top:16px;padding:12px 10px}
.dttt-public-footer-links a{font-size:11px}
.dttt-staff-board .dttt-resource-grid{gap:12px}
.dttt-staff-board .dttt-resource-grid>a{padding:15px 16px;border-radius:16px}
.dttt-staff-board .dttt-resource-grid h3{font-size:20px;line-height:1.2;margin:7px 0}
.dttt-staff-board .dttt-resource-grid p{font-size:14px;line-height:1.42;margin:0}
}
.dttt-inline-contact .dttt-contact{background:#fff;color:#18354d}
.dttt-inline-contact .dttt-contact h2{color:#18354d;line-height:1.25}
.dttt-inline-contact .dttt-contact label{color:#36536a;display:block;font-size:12px;font-weight:700;line-height:1.45}
.dttt-inline-contact .dttt-contact input:not([type=checkbox]),.dttt-inline-contact .dttt-contact select,.dttt-inline-contact .dttt-contact textarea{margin-top:3px;font-size:12px;appearance:none;background:#fff;border:1px solid #c8d9e6;border-radius:9px;box-sizing:border-box;color:#18354d;display:block;font:inherit;margin:5px 0 0;min-height:40px;padding:9px 10px;width:100%}
.dttt-inline-contact .dttt-contact select{appearance:auto}
.dttt-inline-contact .dttt-contact textarea{min-height:104px;resize:vertical}
.dttt-inline-contact .dttt-contact input:focus,.dttt-inline-contact .dttt-contact select:focus,.dttt-inline-contact .dttt-contact textarea:focus{border-color:#0876b6;box-shadow:0 0 0 3px rgba(8,118,182,.14);outline:0}
.dttt-inline-contact .dttt-contact-grid{display:grid;gap:10px;grid-template-columns:1fr}
.dttt-inline-contact .dttt-contact-grid p{margin:0}
.dttt-inline-contact .dttt-contact .dttt-honeypot{display:none}
.dttt-inline-contact .dttt-contact label:has(input[type=checkbox]){align-items:flex-start;display:flex;gap:8px;font-size:11px;font-weight:600}
.dttt-inline-contact .dttt-contact input[type=checkbox]{accent-color:#0876b6;flex:0 0 auto;margin:3px 0 0}
.dttt-inline-contact .dttt-contact .dttt-button{align-items:center;border:0;border-radius:9px;display:flex;font-size:13px;font-weight:800;justify-content:center;line-height:1.2;min-height:42px;padding:10px 12px;width:100%}
@media(min-width:901px) {
.dttt-public-aside:has(.dttt-inline-contact){max-height:calc(100vh - 100px);overflow-y:auto;scrollbar-width:thin;align-self:start;max-height:calc(100vh - 32px);overflow-y:auto;position:sticky;top:16px}
.dttt-public-aside:has(.dttt-contact-details[open]){max-height:none;overflow:visible;position:static;max-height:calc(100vh - 32px);overflow-y:auto;position:sticky;top:16px}
}
.dttt-feed-filters a{align-items:center;background:#fff;border:1px solid #cfdee8;border-radius:999px;color:#4f687b;display:inline-flex;font:inherit;font-size:13px;font-weight:780;justify-content:center;line-height:1.2;min-height:38px;padding:9px 13px;text-decoration:none;transition:background-color .18s cubic-bezier(.23,1,.32,1),border-color .18s cubic-bezier(.23,1,.32,1),color .18s cubic-bezier(.23,1,.32,1),transform .18s cubic-bezier(.23,1,.32,1)}
.dttt-feed-filters a:hover,.dttt-feed-filters a:focus-visible{border-color:#64afd5;color:#006fa9;outline:0;transform:translateY(-1px)}
.dttt-feed-filters a.is-active{background:#0876b6;border-color:#0876b6;color:#fff;box-shadow:0 5px 13px rgba(8,118,182,.18)}
.dttt-feed-media{aspect-ratio:16/8;background:#edf4f8;display:block;overflow:hidden}
.dttt-feed-media img{display:block;height:100%;object-fit:cover;transition:transform .32s cubic-bezier(.23,1,.32,1);width:100%}
@media(prefers-reduced-motion:reduce) {
.dttt-public-card__read span { transition: none; }
.dttt-feed-filters a{transition:none;transform:none}
.dttt-feed-media img{transition:none}
}
.dttt-single-redirect { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; margin: 40px auto; max-width: 800px; padding: 24px; }
.dttt-single-redirect p { margin: 0; }

.dttt-public-session-list{display:grid;gap:8px}
.dttt-public-session-list article{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:12px;border:1px solid var(--dttt-line,#dce5ef);border-radius:12px;background:#fff}
.dttt-public-session-list article>span{flex:1 1 260px;color:var(--dttt-ink-soft,#536579);font-size:13px}
.dttt-public-session-list article form{margin-left:auto}
.dttt-public-session-page{width:min(100%,760px);margin:48px auto;padding:0 16px;box-sizing:border-box}
.dttt-public-session-card{display:grid;gap:16px;padding:clamp(20px,5vw,36px);border:1px solid var(--dttt-line,#dce5ef);border-radius:20px;background:#fff;box-shadow:0 12px 32px rgba(20,54,83,.08)}
.dttt-public-session-card h1,.dttt-public-session-card h2,.dttt-public-session-card p{margin:0;overflow-wrap:anywhere}
.dttt-public-consent{display:grid;gap:10px;padding:16px;border-radius:14px;background:#f4f8fc}
.dttt-public-attendance-form{display:grid;gap:14px}
.dttt-public-attendance-form label{display:grid;gap:6px;font-weight:700;color:var(--dttt-ink-soft,#536579)}
.dttt-public-attendance-form input[type=text],.dttt-public-attendance-form input[type=email]{width:100%;box-sizing:border-box}
@media(max-width:420px) {
.dttt-public-session-page{margin:24px auto;padding:0 16px}
.dttt-public-session-card{padding:18px 16px;border-radius:16px}
}
:root{
  --dttt-public-content-max: 1180px;
  --dttt-public-gap: 24px;
  --dttt-content-max:1180px;--dttt-reader-max:820px;--dttt-gutter-mobile:16px;--dttt-gutter-tablet:24px;
  --dttt-primary:#0876B6;--dttt-primary-hover:#06669E;--dttt-ink:#14243A;--dttt-muted:#5E7180;
  --dttt-surface:#fff;--dttt-canvas:#F5F8FA;--dttt-border:#E2ECF2;--dttt-nav-border:#D4E5EE;
  --dttt-content-notice:#0876B6;--dttt-content-material:#7657C8;--dttt-content-assignment:#E58A15;--dttt-content-quiz:#D64545;--dttt-content-attendance:#168C8C;
  --dttt-success:#2F9B68;--dttt-danger:#C93636;--dttt-warning:#B86B00;
  --dttt-shadow-card:0 6px 20px rgba(18,52,74,.08);--dttt-shadow-float:0 8px 28px rgba(18,52,74,.12);
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden}
body{background:var(--dttt-canvas);color:var(--dttt-ink)}
.dttt-ui-icon{display:inline-block;fill:none;height:18px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;vertical-align:-.2em;width:18px;flex:0 0 auto}
.dttt-icon{align-items:center;display:inline-flex;justify-content:center}
.dttt-kpi-icon .dttt-ui-icon{height:22px;width:22px}
.dttt-kpi-icon{align-items:center;display:inline-flex;justify-content:center}
.dttt-qr-rendered{height:auto;max-width:100%;width:100%;image-rendering:auto}
canvas.dttt-qr-rendered,.dttt-qr-rendered canvas,.dttt-qr-rendered.dttt-qr-canvas{display:none}
img.dttt-qr-rendered,.dttt-qr-rendered img,.dttt-qr-image{display:block}
  .dttt-home-layout .dttt-news-stream { padding: 0; }

.dttt-home-layout .dttt-feed-badge { margin-left: auto; padding: 5px 8px; border-radius: 999px; background: #e9f7ef; color: #16714a; font-size: 10px; }
.dttt-home-layout .dttt-feed-stat,
.dttt-home-layout .dttt-reaction-button { display: inline-flex; align-items: center; gap: 6px; color: var(--home-muted); font-size: 12px; }
.dttt-home-layout .dttt-reaction-button { min-height: 36px; padding: 0 8px; border: 0; border-radius: 8px; background: transparent; cursor: pointer; }
.dttt-home-layout .dttt-reaction-button:hover { background: #eef7fc; color: var(--home-blue); }
.dttt-home-layout .dttt-feed-stat .dttt-ui-icon,
.dttt-home-layout .dttt-reaction-button .dttt-ui-icon { width: 18px; height: 18px; }
.dttt-home-layout .dttt-reaction-button em { font-style: normal; }
.dttt-home-layout .dttt-feed-load { display: block; min-height: 44px; margin: 22px auto 0; padding: 0 18px; border: 1px solid var(--home-border); border-radius: 10px; background: #fff; color: var(--home-blue); font-weight: 750; cursor: pointer; }
.dttt-home-layout .dttt-public-aside { position: sticky; top: 92px; }
.dttt-home-layout .dttt-public-contact { padding: 0; border: 1px solid var(--home-border); border-radius: 18px; background: #fff; box-shadow: 0 8px 24px rgba(17,54,80,.055); overflow: hidden; }
.dttt-home-layout .dttt-public-contact .dttt-contact-head { padding: 22px; background: linear-gradient(135deg,#073d70,#0a69a8); }
.dttt-home-layout .dttt-public-contact .dttt-contact-head .dttt-eyebrow,
.dttt-home-layout .dttt-public-contact .dttt-contact-head h2,
.dttt-home-layout .dttt-public-contact .dttt-contact-head p { color: #fff; }
.dttt-home-layout .dttt-public-contact .dttt-contact-head h2 { margin: 6px 0 7px; font-size: 24px; }
.dttt-home-layout .dttt-public-contact .dttt-contact-head p { margin: 0; font-size: 13px; opacity: .82; }
.dttt-home-layout .dttt-public-contact .dttt-phone-grid { display: grid; grid-template-columns: 1fr; gap: 7px; padding: 16px; }
.dttt-home-layout .dttt-public-contact .dttt-phone-grid > a { display: flex; min-height: 54px; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 11px; color: var(--home-ink); text-decoration: none; }
.dttt-home-layout .dttt-public-contact .dttt-phone-grid > a:hover { background: #eef7fc; }
.dttt-home-layout .dttt-public-contact .dttt-phone-grid .dttt-icon { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border-radius: 10px; background: #e7f3f9; color: var(--home-blue); }
.dttt-home-layout .dttt-public-contact .dttt-phone-grid span { display: grid; }
.dttt-home-layout .dttt-public-contact .dttt-phone-grid strong { font-size: 13px; }
.dttt-home-layout .dttt-public-contact .dttt-phone-grid small { color: var(--home-muted); font-size: 12px; }
.dttt-home-layout .dttt-public-contact .dttt-contact-details { margin: 0; padding: 0 16px 16px; border: 0; }
.dttt-home-layout .dttt-public-contact .dttt-contact-details summary { box-sizing: border-box; min-height: 44px; padding: 12px; border-radius: 10px; background: #eef7fc; color: var(--home-blue); font-size: 13px; font-weight: 750; cursor: pointer; }
.dttt-feed-meta .dttt-avatar,.dttt-feed-meta>div>strong{display:none}
.dttt-feed-meta>div:before{color:#29445f;content:'Bộ môn ĐTVT';display:block;font-size:12px;font-weight:800}
.dttt-feed-order-note{color:#607486;font-size:12px;line-height:1.45;max-width:255px;text-align:justify}
.dttt-feed-badge{background:#edf5f9;border-radius:999px;color:#126a91;font-size:11px;font-weight:850;margin-left:auto;padding:6px 9px;white-space:nowrap}
.dttt-feed-badge.is-da-ghim{background:#fff4df;color:#a45b00}
.dttt-feed-badge.is-noi-bat{background:#e7f5ff;color:#006ca5}
.dttt-feed-badge.is-moi{background:#edfbf7;color:#087766}
.dttt-feed-load{background:#fff;border:1px solid #bed5e4;border-radius:10px;color:#076da9;cursor:pointer;display:block;font:inherit;font-weight:800;margin:20px auto 4px;padding:11px 18px}
.dttt-feed-load:hover,.dttt-feed-load:focus-visible{background:#eef8fc;outline:0}
.dttt-feed-load[hidden]{display:none}
.dttt-feed-sentinel{height:1px}
.dttt-feed-empty{background:#fff;border:1px dashed #c9dbe6;border-radius:14px;color:#607486;padding:24px;text-align:center}
.dttt-guest-layout>.dttt-public-aside{position:sticky;grid-column:auto;grid-row:auto;top:88px}
.dttt-guest-layout>.dttt-public-aside .dttt-contact-widget p{text-align:justify}
@media(max-width:740px) {
.dttt-public-card-grid{grid-template-columns:1fr}
.dttt-public-reading{border-radius:13px;padding:24px 18px}
.dttt-public-archive-head h1,.dttt-public-reading h1{font-size:30px}
.dttt-public-gate h2{font-size:26px}
.dttt-public-reading .dttt-content-figure{border-radius:11px;margin:20px auto 28px}
.dttt-public-reading .dttt-content-image{max-height:360px}
.dttt-public-reading>p:has(>img:only-child),.dttt-public-reading>p:has(>.dttt-content-image:only-child){margin:20px auto 28px}
.dttt-public-reading>p>img:only-child,.dttt-public-reading>p>.dttt-content-image:only-child{max-height:360px}
.dttt-entry-content>p:has(>img:only-child),.dttt-entry-content>p:has(>a:only-child>img:only-child){margin:20px auto 28px}
.dttt-entry-content>p>img:only-child,.dttt-entry-content>p>a:only-child>img:only-child{max-height:360px}
.dttt-entry-content .gallery{gap:10px;margin:22px auto 28px}
.dttt-entry-content .gallery-icon img{max-height:190px}
.dttt-entry-content .dttt-content-figure{border-radius:11px;margin:20px auto 28px}
.dttt-entry-content .dttt-content-image{max-height:360px}
.dttt-feed-filters a{flex:0 0 auto;min-height:42px;padding:10px 14px}
.dttt-feed-media{aspect-ratio:16/9}
.dttt-public-session-list article form{width:100%;margin-left:0}
.dttt-public-session-list article form .dttt-button{width:100%;text-align:center}
.dttt-feed-badge{font-size:10px}
}

/* Canonical Guest homepage layout: page geometry belongs to Public Portal, not Hero. */
.dttt-home-layout {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px;
  width: min(var(--home-max), calc(100% - 2 * var(--home-gutter)));
  max-width: none;
  margin: 0 auto 48px;
  padding: 0;
  align-items: start;
}
.dttt-home-layout > main { min-width: 0; }
@media (max-width: 900px) {
.dttt-guest-layout>.dttt-public-aside .dttt-widget{margin-bottom:12px}
.dttt-contact-details:not([open]) .dttt-panel{display:none}
.dttt-phone-grid{grid-template-columns:1fr 1fr}
.dttt-inline-contact .dttt-phone-grid strong{font-size:10px}
.dttt-inline-contact .dttt-phone-grid small{font-size:14px}
.dttt-guest-layout .dttt-public-aside{position:static;max-height:none;overflow:visible}
.dttt-guest-layout .dttt-feature-grid{grid-template-columns:1fr 1fr}
.dttt-guest-layout .dttt-feature-grid article.is-lead{grid-column:1/-1;grid-row:auto}
.dttt-feature-grid{grid-template-columns:1fr 1fr}
.dttt-feature-grid article.is-lead{grid-column:1/-1}
.dttt-public-aside{position:static}
.dttt-resource-grid{grid-template-columns:repeat(2,1fr)}
.dttt-home-layout .dttt-public-aside { position: static; }
.dttt-home-layout .dttt-public-contact .dttt-phone-grid { grid-template-columns: repeat(3, 1fr); }
.dttt-guest-layout>.dttt-public-aside{order:-1;grid-column:1;grid-row:auto;position:static}
.dttt-feed-order-note{display:none}
  .dttt-home-layout { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
.dttt-public-archive-layout { display: block; padding-bottom: 32px; }
.dttt-single-wrapper { display: block; width: calc(100% - 24px); padding: 16px 0 32px; }
.dttt-public-archive-layout > .dttt-public-aside,
  .dttt-single-aside { margin-top: 24px; position: static; }
.dttt-public-archive-grid { grid-template-columns: minmax(0, 1fr); }
.dttt-public-card__media { aspect-ratio: 16 / 9; }
.dttt-related-posts-grid { grid-template-columns: minmax(0, 1fr); }
.dttt-public-archive .dttt-section-head { align-items: start; flex-direction: column; gap: 6px; }
.dttt-archive-search { flex-direction: column; }
.dttt-archive-search button { width: 100%; }
.dttt-public-archive-hero__inner { padding-bottom: 32px; padding-top: 32px; }
.dttt-public-archive-hero__copy { max-width: none; }
.dttt-single-article { padding: 20px 16px; }
.dttt-single-title { font-size: 28px; }
.dttt-public-contact { padding: 20px 16px; }
.dttt-context-toolbar { min-height: 52px; margin-bottom: 10px; border-radius: 12px; }
.dttt-context-toolbar .dttt-single-back { min-height: 40px; padding-inline: 9px; }
.dttt-context-toolbar .dttt-single-back span { max-width: 210px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dttt-related-toolbar { padding: 14px; }
.dttt-action-toolbar .dttt-form-shell { padding: 14px; }
.dttt-action-toolbar .dttt-contact-form input:not([type="hidden"]):not([type="checkbox"]),
  .dttt-action-toolbar .dttt-contact-form select,
  .dttt-action-toolbar .dttt-contact-form textarea { font-size: 16px; }
.dttt-home-layout .dttt-public-contact .dttt-phone-grid { grid-template-columns: 1fr; }
  .dttt-home-layout { width: calc(100% - 24px); margin-bottom: 28px; }
}

/* Canonical public shell geometry. */
.dttt-public-shell > .dttt-public-layout { max-width: var(--dttt-shell-max); }
