@font-face{font-family:"TIS Portal Poppins";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/poppins-400.woff2") format("woff2")}
@font-face{font-family:"TIS Portal Poppins";font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/poppins-500.woff2") format("woff2")}
@font-face{font-family:"TIS Portal Poppins";font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/poppins-600.woff2") format("woff2")}
@font-face{font-family:"TIS Portal Poppins";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/poppins-700.woff2") format("woff2")}

.tis-hub{--hub-navy:#082653;--hub-blue:#145e9b;--hub-gold:#d6a62a;--hub-gold-ink:#856118;--hub-ink:#102b4e;--hub-muted:#596c83;--hub-border:#d8e3ee;--hub-bg:#f3f7fb;width:100%;max-width:1240px;min-width:0;margin:24px auto 48px;color:var(--hub-ink);font-family:"TIS Portal Poppins","Poppins","Avenir Next",Arial,sans-serif;font-size:16px;line-height:1.6;overflow-wrap:break-word;-webkit-font-smoothing:antialiased}
.tis-hub,.tis-hub *{box-sizing:border-box}
.tis-hub h2,.tis-hub h3,.tis-hub h4,.tis-hub p{font-family:inherit}
.tis-hub__brand h2,.tis-hub__login h3,.tis-hub__identity h2,.tis-hub__welcome h3,.tis-hub__service h4,.tis-hub__unavailable h3{color:var(--hub-ink);font-weight:600;line-height:1.2;letter-spacing:-.035em}
.tis-hub__brand p,.tis-hub__login p,.tis-hub__identity p,.tis-hub__welcome p,.tis-hub__service p,.tis-hub__unavailable p,.tis-hub__notice p{margin:0}
.tis-hub a,.tis-hub button,.tis-hub input,.tis-hub select{font-family:inherit}
.tis-hub button,.tis-hub select{cursor:pointer}
.tis-hub [hidden]{display:none!important}
.tis-hub a:focus-visible,.tis-hub button:focus-visible,.tis-hub input:focus-visible,.tis-hub select:focus-visible{outline:3px solid var(--hub-blue);outline-offset:4px}
.tis-hub__auth{display:grid;grid-template-columns:1fr 1fr;max-width:1120px;min-height:540px;margin:auto;overflow:hidden;border:1px solid var(--hub-border);border-radius:24px;background:#fff;box-shadow:0 18px 65px rgba(8,38,83,.09)}
.tis-hub__brand{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;overflow:hidden;padding:52px 48px;background:linear-gradient(150deg,#082653 10%,#0d3e70 100%);color:#fff}
.tis-hub__brand:after{position:absolute;right:-115px;bottom:-140px;width:360px;height:360px;border:1px solid rgba(214,166,42,.3);border-radius:50%;box-shadow:0 0 0 36px rgba(255,255,255,.025),0 0 0 72px rgba(255,255,255,.018);content:"";pointer-events:none}
.tis-hub__brand>*{position:relative;z-index:1}
.tis-hub__crest{display:block;width:96px;height:96px;margin:0 0 30px;object-fit:contain}
.tis-hub .tis-hub__eyebrow,.tis-hub .tis-hub__kicker{margin:0 0 12px;font-size:11px;font-weight:700;letter-spacing:.13em;line-height:1.55;text-transform:uppercase}
.tis-hub .tis-hub__eyebrow{color:#f2ce67}
.tis-hub .tis-hub__kicker{color:var(--hub-gold-ink)}
.tis-hub__brand h2{max-width:9ch;margin:0 0 22px;color:#fff;font-size:clamp(38px,4.2vw,54px);font-weight:600;line-height:1.08;letter-spacing:-.045em}
.tis-hub .tis-hub__brand-intro{max-width:26ch;margin-bottom:10px;font-size:18px;line-height:1.5;color:#fff}
.tis-hub .tis-hub__brand-detail{max-width:33ch;color:#ced9e8;font-size:14px;line-height:1.7}
.tis-hub__brand-services{display:flex;flex-wrap:wrap;gap:14px 26px;margin-top:36px;padding-top:22px;border-top:1px solid rgba(255,255,255,.18);width:100%;color:#eff4fc;font-size:12px;font-weight:500}
.tis-hub__brand-services span{display:inline-flex;align-items:center;gap:9px}
.tis-hub__brand-services svg{width:19px;height:19px;color:#f2ce67}
.tis-hub__login{align-self:center;min-width:0;padding:52px 48px}
.tis-hub__login h3{margin:0 0 14px;font-size:30px}
.tis-hub .tis-hub__description{margin:0 0 30px;color:var(--hub-muted);font-size:14px;line-height:1.75}
.tis-hub__form{display:grid;gap:20px;margin:0}
.tis-hub__field{min-width:0}
.tis-hub__field label{display:block;margin:0 0 8px;color:var(--hub-ink);font-size:13px;font-weight:600}
.tis-hub__field input,.tis-hub__field select{display:block;width:100%;height:52px;min-width:0;margin:0;padding:12px 14px;border:1px solid #bacbdb;border-radius:10px;background:#fff;color:var(--hub-ink);box-shadow:none;font-size:16px;line-height:1.5;transition:border-color 150ms ease,box-shadow 150ms ease}
.tis-hub__field input:hover,.tis-hub__field select:hover{border-color:#7994af}
.tis-hub__field input:focus,.tis-hub__field select:focus{border-color:var(--hub-blue);box-shadow:0 0 0 3px rgba(20,94,155,.12)}
.tis-hub__pin-wrap{position:relative}
.tis-hub__pin-wrap.is-enhanced input{padding-right:98px}
.tis-hub .tis-hub__pin-toggle{position:absolute;top:4px;right:4px;display:flex;align-items:center;justify-content:center;min-width:80px;min-height:44px;margin:0;padding:7px 10px;border:0;border-radius:7px;background:transparent;color:var(--hub-blue);box-shadow:none;font-size:12px;font-weight:600;line-height:1.4;text-transform:none}
.tis-hub .tis-hub__pin-toggle:hover{background:#edf4fb;color:var(--hub-navy)}
.tis-hub .tis-hub__button{display:inline-flex;align-items:center;justify-content:center;gap:12px;max-width:100%;min-height:48px;margin:0;padding:12px 20px;border:1px solid transparent;border-radius:10px;box-shadow:none;font-size:14px;font-weight:600;letter-spacing:0;line-height:1.5;text-align:center;text-decoration:none;text-transform:none;white-space:normal;transition:background 150ms ease,border-color 150ms ease,box-shadow 150ms ease}
.tis-hub .tis-hub__button svg{flex:0 0 auto;width:19px;height:19px}
.tis-hub .tis-hub__button--primary{border-color:var(--hub-navy);background:var(--hub-navy);color:#fff}
.tis-hub .tis-hub__button--primary:hover{border-color:var(--hub-blue);background:var(--hub-blue);color:#fff;box-shadow:0 6px 16px rgba(8,38,83,.1)}
.tis-hub .tis-hub__sign-in{justify-content:space-between;width:100%;margin-top:4px;padding:14px 20px}
.tis-hub .tis-hub__help{margin-top:24px;padding-top:21px;border-top:1px solid #e8eef5;color:var(--hub-muted);font-size:12px;line-height:1.8}
.tis-hub__notice{max-width:1120px;margin:0 auto 20px;padding:16px 20px;border:1px solid #e6c574;border-left:4px solid var(--hub-gold);border-radius:10px;background:#fff9e8;color:#634714;font-size:14px;line-height:1.6}
.tis-hub--signed-in{padding:26px;border:1px solid var(--hub-border);border-radius:24px;background:var(--hub-bg)}
.tis-hub__header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:8px 8px 25px}
.tis-hub__identity{display:flex;align-items:center;gap:17px;min-width:0}
.tis-hub__identity img{width:62px;height:62px;flex:0 0 62px;object-fit:contain}
.tis-hub__identity .tis-hub__kicker{margin-bottom:4px;font-size:10px;letter-spacing:.1em}
.tis-hub__identity h2{margin:0;font-size:27px}
.tis-hub .tis-hub__identity-name{margin-top:6px;color:var(--hub-muted);font-size:13px;overflow-wrap:anywhere}
.tis-hub__logout{flex-shrink:0;margin:0}
.tis-hub .tis-hub__button--quiet{border-color:#c6d5e4;background:#fff;color:var(--hub-navy)}
.tis-hub .tis-hub__button--quiet:hover{border-color:#7e9ab8;background:#eaf1f8;color:var(--hub-navy)}
.tis-hub__nav{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:6px;border:1px solid var(--hub-border);border-radius:12px;background:#fff}
.tis-hub__nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border:1px solid transparent;border-radius:8px;color:var(--hub-muted);font-size:13px;font-weight:600;line-height:1.5;text-decoration:none}
.tis-hub__nav a:hover{background:#edf3fa;color:var(--hub-navy)}
.tis-hub__nav a[aria-current="page"]{background:var(--hub-navy);color:#fff}
.tis-hub__welcome{padding:37px 8px 27px}
.tis-hub__welcome .tis-hub__kicker{margin-bottom:9px}
.tis-hub__welcome h3{margin:0 0 12px;font-size:clamp(25px,3vw,34px)}
.tis-hub__welcome>p:last-child{color:var(--hub-muted);font-size:14px}
.tis-hub__services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.tis-hub__service{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:30px;border:1px solid var(--hub-border);border-radius:16px;background:#fff;box-shadow:0 4px 14px rgba(8,38,83,.025)}
.tis-hub__service-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;margin-bottom:23px;border-radius:14px;background:#eaf1fa;color:var(--hub-navy)}
.tis-hub__service-icon svg{width:26px;height:26px}
.tis-hub__service--eca .tis-hub__service-icon{background:#fff4cf;color:#856118}
.tis-hub__service h4{margin:0 0 13px;font-size:24px}
.tis-hub .tis-hub__service-description{max-width:37ch;margin:0 0 27px;color:var(--hub-muted);font-size:14px;line-height:1.8}
.tis-hub__service>.tis-hub__button{width:100%;justify-content:space-between;margin-top:auto}
.tis-hub .tis-hub__service-note{margin:-5px 0 22px;padding:12px 14px;border-radius:8px;background:#fff8e3;color:#634714;font-size:12px;line-height:1.7}
.tis-hub .tis-hub__button--disabled{justify-content:center;border-color:#d8e1eb;background:#e8eef5;color:#52647b;cursor:not-allowed;opacity:1}
.tis-hub .tis-hub__footer-note{margin:24px 10px 0;color:var(--hub-muted);font-size:12px;text-align:center}
.tis-hub__module{min-width:0;margin-top:24px}
.tis-hub__module>.tis-tbp-portal{max-width:none;margin:0}
.tis-hub__unavailable{margin-top:24px;padding:28px;border:1px solid var(--hub-border);border-radius:14px;background:#fff}
.tis-hub__unavailable h3{margin:0 0 12px;font-size:24px}
.tis-hub__unavailable p{color:var(--hub-muted)}

@media(max-width:960px){.tis-hub__brand{padding:40px 32px}.tis-hub__login{padding:40px 32px}.tis-hub__auth{min-height:520px}.tis-hub__service{padding:25px}.tis-hub__service h4{font-size:22px}}
@media(max-width:720px){.tis-hub{margin:16px auto 30px}.tis-hub__auth{grid-template-columns:1fr;min-height:0;border-radius:18px}.tis-hub__brand{display:grid;grid-template-columns:58px minmax(0,1fr);gap:0 16px;align-items:center;padding:26px 25px}.tis-hub__crest{grid-row:1/3;width:58px;height:58px;margin:0}.tis-hub .tis-hub__eyebrow{align-self:end;margin:0 0 6px;font-size:9px;letter-spacing:.11em}.tis-hub__brand h2{align-self:start;max-width:none;margin:0;font-size:30px}.tis-hub .tis-hub__brand-intro{grid-column:1/-1;max-width:none;margin:17px 0 0;font-size:15px}.tis-hub .tis-hub__brand-detail{grid-column:1/-1;max-width:none;margin-top:4px;font-size:12px}.tis-hub__brand-services{display:none}.tis-hub__login{padding:28px 25px}.tis-hub__login h3{font-size:27px}.tis-hub .tis-hub__description{margin-bottom:22px;font-size:13px}.tis-hub__form{gap:18px}.tis-hub--signed-in{padding:14px;border-radius:18px}.tis-hub__header{gap:12px;padding:5px 2px 20px}.tis-hub__identity{gap:12px}.tis-hub__identity img{width:48px;height:48px;flex-basis:48px}.tis-hub__identity .tis-hub__kicker{font-size:8px;letter-spacing:.08em}.tis-hub__identity h2{font-size:21px}.tis-hub .tis-hub__identity-name{font-size:12px}.tis-hub__logout .tis-hub__button{padding:10px 12px;font-size:12px}.tis-hub__nav{gap:3px;padding:4px}.tis-hub__nav a{flex:1 1 auto;padding:10px;font-size:12px}.tis-hub__welcome{padding:28px 4px 22px}.tis-hub__welcome h3{font-size:26px}.tis-hub__services{grid-template-columns:1fr;gap:16px}.tis-hub__service{padding:24px}.tis-hub__service-icon{width:46px;height:46px;margin-bottom:18px}.tis-hub__service h4{font-size:23px}.tis-hub .tis-hub__service-description{max-width:none;margin-bottom:23px}.tis-hub__module{margin-top:18px}}
@media(max-width:380px){.tis-hub__brand,.tis-hub__login{padding:23px 19px}.tis-hub__brand h2{font-size:27px}.tis-hub__identity img{display:none}.tis-hub .tis-hub__sign-in{font-size:13px;padding:14px}.tis-hub__nav a{padding:9px 7px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.tis-hub *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Portal pages need application space, even inside a theme's narrow article column.
 * JavaScript refines these viewport gutters using clientWidth (excluding scrollbars)
 * and the actual content offset. The CSS fallback assumes a centred theme column. */
.tis-hub[data-tis-hub]{
	--hub-font:"TIS Portal Poppins","Poppins","Avenir Next",Arial,sans-serif;
	--hub-max-width:1120px;
	display:block;
	width:min(var(--hub-max-width),calc(100vw - 48px));
	max-width:none;
	margin-left:calc((100% - min(var(--hub-max-width),calc(100vw - 48px))) / 2);
	margin-right:0;
	text-align:left;
	white-space:normal;
	container-type:inline-size;
	container-name:tis-hub;
}
.tis-hub[data-tis-hub].tis-hub--signed-in{--hub-max-width:1600px;padding:clamp(16px,2vw,30px)}
.tis-hub[data-tis-hub].is-layout-ready{width:var(--hub-width);margin-left:var(--hub-offset)}
/* Direct font declarations also defeat `pre *` / `code *` theme rules. Merely
 * inheriting the font lets those rules reintroduce monospace on nested labels. */
.tis-hub[data-tis-hub],
.tis-hub[data-tis-hub] :where(div,section,article,aside,header,footer,nav,form,h1,h2,h3,h4,h5,h6,p,span,a,label,button,input,select,textarea,small,strong,em,ul,ol,li,dl,dt,dd,table,thead,tbody,tr,th,td,details,summary){
	font-family:var(--hub-font)!important;
	white-space:normal;
}
.tis-hub[data-tis-hub] textarea{white-space:pre-wrap}
/* These classes are added only to code/pre elements that actually contain a hub.
 * Do not reset all preformatted content, or any unrelated theme containers. */
pre.tis-hub-shortcode-wrapper,
code.tis-hub-shortcode-wrapper{
	display:block!important;
	width:100%;
	max-width:none!important;
	min-width:0;
	margin:0!important;
	padding:0!important;
	border:0!important;
	border-radius:0!important;
	background:transparent!important;
	box-shadow:none!important;
	overflow:visible!important;
	white-space:normal!important;
}
.tis-hub[data-tis-hub] .tis-hub__header{gap:20px;padding:3px 4px 22px}
.tis-hub[data-tis-hub] .tis-hub__brand h2{font-size:clamp(38px,4.2vw,54px)!important;line-height:1.08!important}
.tis-hub[data-tis-hub] .tis-hub__login h3{font-size:30px!important;line-height:1.2!important}
.tis-hub[data-tis-hub] .tis-hub__identity h2{font-size:clamp(22px,2.1vw,32px)!important;line-height:1.2!important}
.tis-hub[data-tis-hub] .tis-hub__welcome h3{font-size:clamp(25px,3vw,34px)!important;line-height:1.2!important}
.tis-hub[data-tis-hub] .tis-hub__service h4,
.tis-hub[data-tis-hub] .tis-hub__unavailable h3{font-size:24px!important;line-height:1.2!important}
.tis-hub[data-tis-hub] .tis-hub__identity>div{min-width:0}
.tis-hub[data-tis-hub] .tis-hub__notice{max-width:none}
.tis-hub[data-tis-hub] .tis-hub__module{margin-top:20px}
.tis-hub[data-tis-hub] .tis-hub__module :where(.tis-asab-shell,.tis-asab-card,.tis-asab-table-wrap,.tis-asab-calendar,.tis-asab-calendar-grid,.tis-asab-stats,.tis-asab-teacher-class-grid){min-width:0;max-width:100%}

/* Native ECA screens remain fully functional; the hub supplies the surrounding
 * brand and welcome header, so avoid a second padded dashboard inside a box. */
.tis-hub .tis-hub__module>.tis-asab-portal.is-authenticated{
	width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;
}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated>.tis-asab-dashboard-shell{
	width:100%;max-width:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;
}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated>.tis-asab-language-switcher{
	max-width:none;margin:0 0 12px;padding:0;color:var(--hub-muted);font-size:12px;
}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated>.tis-asab-language-switcher a{
	min-width:44px;min-height:44px;border:1px solid var(--hub-border);background:#fff;color:var(--hub-navy);box-shadow:none;
}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated>.tis-asab-language-switcher a.is-active{background:var(--hub-navy);color:#fff}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-portal-header{
	display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px;min-height:0;margin:0 0 16px;padding:0 3px;border:0;border-radius:0;background:transparent;box-shadow:none;color:var(--hub-ink);overflow:visible;
}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-portal-header::after{display:none}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-portal-header .tis-asab-portal-crest,
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-portal-header .tis-asab-eyebrow,
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-portal-header h2{display:none}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-portal-header>form{display:none}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-portal-header p{margin:0;color:var(--hub-muted);font-size:12px;overflow-wrap:anywhere}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-portal-header .tis-asab-button-secondary{min-height:44px;padding:9px 14px;border-color:var(--hub-border);background:#fff;font-size:12px;white-space:nowrap}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-portal-nav{flex-wrap:wrap;gap:4px;margin-bottom:18px;padding:5px;border-radius:12px;box-shadow:none}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-portal-nav a{min-height:44px;padding:10px 14px;font-size:13px}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-section-head{gap:14px}
.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-card{box-shadow:0 3px 14px rgba(8,38,83,.035)}
.tis-hub .tis-hub__module .tis-tbp-portal{width:100%;max-width:none}
.tis-hub[data-tis-hub] .tis-hub__connection>p{max-width:70ch;font-size:14px;line-height:1.75}
.tis-hub[data-tis-hub] .tis-hub__connection>p+p{margin-top:12px}
.tis-hub[data-tis-hub] .tis-hub__connection>.tis-hub__button{margin-top:20px}
.tis-hub[data-tis-hub] .tis-hub__legacy-access{margin-top:26px;padding-top:22px;border-top:1px solid var(--hub-border)}
.tis-hub[data-tis-hub] .tis-hub__legacy-access h4{margin:0 0 10px;font-size:19px!important;line-height:1.3!important}
.tis-hub[data-tis-hub] .tis-hub__legacy-access p{max-width:70ch;margin:0 0 18px;font-size:14px;line-height:1.75}

/* The school's theme calls its normal reading-width article `tis-prose`.
 * Only unified portal pages receive this body class; ordinary pages are untouched. */
body.tis-school-theme.tis-school-portal-page .tis-default-main{padding-top:clamp(24px,4vw,56px);padding-bottom:48px}
body.tis-school-theme.tis-school-portal-page .tis-default-main>.tis-prose{width:100%;max-width:1664px;padding-left:32px;padding-right:32px}
body.tis-school-theme.tis-school-portal-page .tis-default-main>.tis-prose>.tis-default-heading{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
body.tis-school-theme.tis-school-portal-page .tis-default-main>.tis-prose>p:empty,
body.tis-school-theme.tis-school-portal-page .tis-default-main>.tis-prose>code:empty,
body.tis-school-theme.tis-school-portal-page .tis-default-main>.tis-prose>pre:empty{display:none}

@container tis-hub (max-width:900px){
	.tis-hub__module .tis-asab-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
	.tis-hub__module .tis-asab-teacher-class-grid{grid-template-columns:1fr}
	.tis-hub__module .tis-asab-section-head{flex-wrap:wrap}
	.tis-hub__module .tis-asab-calendar-controls,.tis-hub__module .tis-asab-calendar-navigation{flex-wrap:wrap}
}
@container tis-hub (max-width:520px){
	.tis-hub__module .tis-asab-stats{grid-template-columns:1fr}
	.tis-hub__module .tis-asab-section-head{align-items:stretch;flex-direction:column}
	.tis-hub__module .tis-asab-card{padding:16px}
	.tis-hub__module .tis-asab-portal-activity-carousel>.tis-asab-activity-card{flex-basis:calc(100% - 6px);min-width:0;max-width:348px}
}
@media(max-width:720px){
	.tis-hub[data-tis-hub]{width:calc(100vw - 24px);margin-left:calc((100% - (100vw - 24px)) / 2)}
	.tis-hub[data-tis-hub].tis-hub--signed-in{padding:14px}
	.tis-hub[data-tis-hub] .tis-hub__header{align-items:flex-start;gap:12px;padding:3px 0 18px}
	.tis-hub[data-tis-hub] .tis-hub__brand h2{font-size:30px!important}
	.tis-hub[data-tis-hub] .tis-hub__login h3{font-size:27px!important}
	.tis-hub[data-tis-hub] .tis-hub__identity h2{font-size:21px!important}
	.tis-hub[data-tis-hub] .tis-hub__welcome h3{font-size:26px!important}
	.tis-hub[data-tis-hub] .tis-hub__service h4{font-size:23px!important}
	.tis-hub[data-tis-hub] .tis-hub__module{margin-top:16px}
	.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-portal-nav{gap:2px}
	.tis-hub .tis-hub__module .tis-asab-portal.is-authenticated .tis-asab-portal-nav a{flex:1 1 auto;padding:9px 10px;font-size:12px;text-align:center}
	body.tis-school-theme.tis-school-portal-page .tis-default-main>.tis-prose{padding-left:12px;padding-right:12px}
}
@media(max-width:420px){
	.tis-hub[data-tis-hub].tis-hub--signed-in{padding:12px;border-radius:14px}
	.tis-hub[data-tis-hub] .tis-hub__header{flex-wrap:wrap}
	.tis-hub[data-tis-hub] .tis-hub__identity{flex:1 1 170px}
	.tis-hub[data-tis-hub] .tis-hub__logout{margin-left:auto}
}
/* One portal language choice covers the shared shell and both embedded services. */
.tis-hub[data-tis-language] .tis-hub__languages { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:6px; margin:0 0 20px; font-size:13px; line-height:1.5; }
.tis-hub[data-tis-language] .tis-hub__languages>span { color:#53657d; margin-right:8px; }
.tis-hub[data-tis-language] .tis-hub__languages a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 14px; border:1px solid #cfdae9; border-radius:10px; background:#fff; color:#173557; font-weight:600; text-decoration:none; box-sizing:border-box; }
.tis-hub[data-tis-language] .tis-hub__languages a[aria-current] { background:#0b2850; border-color:#0b2850; color:#fff; }
.tis-hub[data-tis-language] .tis-hub__languages a:focus-visible { outline:3px solid #ba943d; outline-offset:3px; }
.tis-hub[data-tis-language] .tis-hub__module--eca .tis-asab-language-switcher { display:none!important; }
.tis-hub[data-tis-language="th"] { --hub-font:Tahoma,"Noto Sans Thai",sans-serif; font-family:var(--hub-font); }
.tis-hub[data-tis-language="zh"] { --hub-font:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif; font-family:var(--hub-font); }
.tis-hub[data-tis-language="th"] :is(h2,h3,h4,label,button,a),.tis-hub[data-tis-language="zh"] :is(h2,h3,h4,label,button,a) { letter-spacing:normal; }
@media(max-width:480px) { .tis-hub[data-tis-language] .tis-hub__languages { justify-content:flex-start; gap:5px; } .tis-hub[data-tis-language] .tis-hub__languages>span { width:100%; } .tis-hub[data-tis-language] .tis-hub__languages a { padding:8px 10px; } }
