/* TEC UI v2. Presentation only. Every rule is scoped away from test rooms. */
.tec-app .skip{clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}.tec-app .skip:focus{clip-path:none;width:auto;height:auto;overflow:visible}
.tec-app{--tec-blue:#2AA9D9;--tec-ocean:#4A9FBF;--tec-aqua:#CFEFF8;--tec-mist:#F5FAFC;--tec-deep:#2E6175;--ink:#173c4b;--muted:#536d79;--line:#d5e3e9;--paper:#fff;--radius:8px;--space:24px;margin:0;background:var(--tec-mist);color:var(--ink);font:14px/1.65 'Montserrat','Segoe UI',Arial,sans-serif;font-synthesis:none}
.tec-app *{box-sizing:border-box}.tec-app [hidden]{display:none!important}.tec-app img{max-width:100%;height:auto}.tec-app a{color:var(--tec-deep);text-underline-offset:4px}.tec-app a:hover{text-decoration-thickness:2px}.tec-app h1,.tec-app h2,.tec-app h3{line-height:1.25;color:var(--ink);letter-spacing:-.025em}.tec-app h1{font-size:clamp(29px,3.4vw,42px);margin:12px 0}.tec-app h2{font-size:23px;margin:20px 0 12px}.tec-app h3{font-size:17px;margin:12px 0}.tec-app p{margin:8px 0 16px}.tec-app button,.tec-app input,.tec-app select,.tec-app textarea{font:inherit}.tec-app button,.tec-app .button,.tec-app .btn{min-height:42px;border:1px solid var(--line);border-radius:6px;padding:9px 15px;color:var(--tec-deep);background:white;font-weight:650;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.4}.tec-app button:hover,.tec-app .button:hover,.tec-app .btn:hover{background:var(--tec-aqua);border-color:var(--tec-ocean)}.tec-app button:disabled{opacity:.55;cursor:default}.tec-app .primary,.tec-app .button:not(.secondary),.tec-app .btn:not(.outline){background:var(--tec-deep);border-color:var(--tec-deep);color:#fff}.tec-app :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--tec-blue);outline-offset:3px}.tec-app input:not([type=checkbox]):not([type=radio]),.tec-app select,.tec-app textarea{border:1px solid #adc4cf;border-radius:5px;min-height:42px;padding:9px 12px;background:#fff;color:var(--ink);max-width:100%}.tec-app textarea{resize:vertical}.tec-app input[type=checkbox],.tec-app input[type=radio]{accent-color:var(--tec-deep);width:18px;height:18px}.tec-app label{font-weight:600}.tec-app .eyebrow{font-size:11px;font-weight:750;color:var(--tec-deep);letter-spacing:.14em;text-transform:uppercase}.tec-app .muted,.tec-app .lead{color:var(--muted)}.tec-app .lead{font-size:16px;max-width:680px}.tec-app .editorial{font-family:'Playfair Display','Times New Roman',serif;font-weight:500}.tec-app main{max-width:1184px;margin:0 auto;padding:32px 32px 56px;min-height:68vh}.tec-app .page-heading{margin-bottom:28px;border-bottom:1px solid var(--line);padding-bottom:22px}.tec-app .tec-header{background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:5;padding:0}.tec-app .tec-header-inner{max-width:1280px;padding:16px 32px;margin:auto;display:flex;align-items:center;gap:28px;min-height:80px}.tec-app .tec-brand{display:flex;flex-direction:column;text-decoration:none;flex-shrink:0;line-height:1.1}.tec-app .tec-brand b{font-size:25px;letter-spacing:-1px;color:var(--tec-blue)}.tec-app .tec-brand b span{color:#e71839}.tec-app .tec-brand small{font-size:8px;font-weight:700;letter-spacing:.14em;color:var(--tec-deep);margin-top:6px}.tec-app .tec-nav{display:flex;gap:5px;flex:1;align-items:center;justify-content:center}.tec-app .tec-nav a{padding:9px 11px;white-space:nowrap;text-decoration:none;font-size:13px;font-weight:600;border-bottom:2px solid transparent}.tec-app .tec-nav a[aria-current=page]{border-color:var(--tec-blue);color:var(--ink);background:var(--tec-mist)}.tec-app .tec-nav a:hover{background:var(--tec-mist)}.tec-app .tec-header .login{white-space:nowrap;font-size:12px}.tec-app .tec-footer{max-width:1184px;margin:auto;border-top:1px solid var(--line);padding:20px 32px;display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:12px}.tec-app .tec-footer p{margin:0}.tec-app .skip{position:fixed;top:-100px;left:16px;background:#fff;padding:12px;z-index:100}.tec-app .skip:focus{top:10px}.tec-app .account-panel{border-left:3px solid var(--tec-ocean);background:#fff;padding:14px 18px;font-size:12px;overflow-wrap:anywhere}.tec-app .account-panel strong{font-size:14px}.tec-app .account-panel p{margin:4px 0}.tec-app .account-panel h3{font-size:13px;margin:8px 0 3px}.tec-app .account-panel button,.tec-app .account-panel .resource{font-size:12px;margin:6px 10px 0 0}.tec-app .account-panel>div{padding-top:8px;border-top:1px solid var(--line);margin-top:8px}.tec-app dialog{max-width:min(580px,calc(100% - 32px));border:1px solid var(--line)!important;border-radius:8px!important;background:#fff!important;color:var(--ink)!important;padding:26px!important;box-shadow:0 16px 50px #173c4b25}.tec-app dialog::backdrop{background:#173c4b80}.tec-app dialog h2{font-size:24px}.tec-app dialog button{margin:12px 8px 0 0}.tec-app #tec-payment-navigation{padding:16px 18px!important;margin:22px 0!important;border:1px solid var(--line)!important;border-radius:6px!important;background:white!important;color:var(--ink)!important;display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:24px}.tec-app #tec-payment-navigation h2{font-size:16px!important;margin:0!important}.tec-app #tec-payment-navigation p{font-size:12px;margin:4px 0 0!important;max-width:640px}.tec-app #tec-payment-navigation a{grid-column:2;grid-row:1/3;background:var(--tec-deep)!important;border-radius:5px!important;padding:10px 14px!important;font-size:12px}.tec-app .status-message:not(:empty),.tec-app #status:not(:empty){border-left:3px solid var(--tec-ocean);background:var(--tec-aqua);padding:12px 16px;border-radius:0;margin:16px 0}.tec-app footer{color:var(--muted)}
@media(max-width:1050px){.tec-app .tec-header-inner{gap:16px;padding:16px 24px;flex-wrap:wrap}.tec-app .tec-nav{order:3;flex-basis:100%;justify-content:flex-start;border-top:1px solid var(--line);padding-top:8px}.tec-app .tec-header .login{margin-left:auto}.tec-app .tec-header-inner:has(.login) .tec-brand{margin-right:auto}}
@media(max-width:600px){.tec-app{font-size:14px}.tec-app main{padding:24px 16px 36px}.tec-app h1{font-size:29px}.tec-app h2{font-size:21px}.tec-app .tec-header-inner{padding:13px 16px;gap:12px}.tec-app .tec-brand b{font-size:23px}.tec-app .tec-nav{gap:0;justify-content:space-between;flex-wrap:wrap}.tec-app .tec-nav a{font-size:11px;padding:8px 6px}.tec-app .tec-footer{padding:18px 16px;flex-direction:column;gap:5px}.tec-app .page-heading{margin-bottom:20px;padding-bottom:18px}.tec-app #tec-payment-navigation{grid-template-columns:1fr;gap:8px}.tec-app #tec-payment-navigation a{grid-column:1;grid-row:auto;justify-self:start}.tec-app button,.tec-app .button,.tec-app .btn{min-height:44px}.tec-app .account-panel{padding:12px;font-size:12px}}

.tec-library .library-intro{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:8px 0 24px;border-bottom:1px solid var(--line)}.tec-library .library-intro h1{font-family:'Playfair Display','Times New Roman',serif;font-weight:500}.tec-library .library-intro p{margin-bottom:0}.tec-library .library-count{font-size:12px;color:var(--muted);text-align:right}.tec-library .account-box{margin:20px 0}.tec-library .account-box summary{cursor:pointer;color:var(--tec-deep);font-size:12px;font-weight:650;padding:8px 0}.tec-library .tabs{display:flex;border-bottom:1px solid var(--line);gap:26px;margin-top:26px}.tec-library .tab{border:0;background:transparent;border-radius:0;padding:13px 2px;font-size:13px;border-bottom:3px solid transparent}.tec-library .tab[aria-selected=true]{border-color:var(--tec-blue);color:var(--ink)}.tec-library .panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:24px}.tec-library .panel-heading h2{margin:0;font-size:19px}.tec-library .count{color:var(--muted);font-size:12px}.tec-library .categories{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tec-library .category{font-size:12px;border-radius:5px;min-height:38px}.tec-library .category[aria-pressed=true]{background:var(--tec-deep);color:#fff;border-color:var(--tec-deep)}.tec-library .cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tec-library .card{min-width:0;position:relative;background:#fff;border:1px solid var(--line);border-radius:6px;padding:17px}.tec-library .card h3{font-size:16px;margin:8px 0}.tec-library .card p{font-size:12px;color:var(--muted);margin:6px 0}.tec-library .test-number{font-size:10px;letter-spacing:.12em;color:var(--tec-deep);font-weight:700}.tec-library .card .resource{display:flex;align-items:center;justify-content:space-between;margin-top:15px;border-top:1px solid var(--line);padding-top:12px;color:var(--tec-deep);font-weight:700;font-size:12px;text-decoration:none;min-height:34px;cursor:pointer}.tec-library .card .resource:after{content:'↗';font-size:17px}.tec-library .history-card-summary{padding:8px 0;border-top:1px solid var(--line)}.tec-library .history-card-summary strong{border-radius:3px!important;background:var(--tec-aqua)!important;color:var(--tec-deep)!important;font-size:10px!important;padding:2px 6px!important}.tec-library .history-card-summary span{font-size:11px!important}.tec-library .cards>a{display:block;text-decoration:none}.tec-library .notice{font-size:12px;color:var(--muted);margin:16px 0}.tec-library .cards.cambridge-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.tec-library .book-picker{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;margin:0 0 6px}.tec-library .book-picker button{min-width:46px;font-size:12px}.tec-library .book-picker button[aria-pressed=true]{background:var(--tec-deep);color:#fff;border-color:var(--tec-deep)}.tec-library .book-heading{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:2px;gap:12px}.tec-library .book-heading h3{font-size:24px;font-family:'Playfair Display','Times New Roman',serif;font-weight:500;margin:0}.tec-library .book-heading p{margin:0;font-size:12px;color:var(--tec-deep)}.tec-library .cambridge-test{border-top:3px solid var(--tec-ocean);background:#fff;padding:16px 14px;border-bottom:1px solid var(--line)}.tec-library .cambridge-test>h3{font-size:16px;margin:0 0 14px}.tec-library .cambridge-test .card{border:0;border-top:1px solid var(--line);border-radius:0;padding:12px 0}.tec-library .cambridge-test .card h3{font-size:12px;margin:0;font-weight:600}.tec-library .cambridge-test .card .resource{font-size:11px;padding:3px 0;margin:8px 0 0;border:0;min-height:28px}.tec-library .cambridge-test .card .resource:after{font-size:15px}.tec-library .support{border-top:1px solid var(--line);margin-top:28px;padding-top:16px;color:var(--muted);font-size:12px}.tec-library .support summary{cursor:pointer;font-weight:600}.tec-library .support-content{display:flex;gap:24px;align-items:center;margin-top:12px}.tec-library .support img{width:100px}.tec-library .support dt{font-weight:600}.tec-library .support dd{margin-left:0}.tec-library>nav[aria-label]{max-width:1184px;margin:0 auto;padding:10px 32px!important;border-bottom:1px solid var(--line);font-size:12px}.tec-library .section-back{grid-column:1/-1}.tec-library .placeholder{grid-column:1/-1}
.tec-library .account-box{margin:12px 0}.tec-library .tabs{margin-top:10px}.tec-library .card .resource{min-height:44px}
@media(max-width:900px){.tec-library .cards{grid-template-columns:repeat(2,minmax(0,1fr))}.tec-library .cards.cambridge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.tec-library .library-intro{display:block}.tec-library .library-count{display:none}.tec-library .tabs{gap:0;justify-content:space-between}.tec-library .tab{font-size:11px}.tec-library .categories{gap:6px}.tec-library .category{padding:8px 10px;font-size:11px}.tec-library .cards{grid-template-columns:1fr}.tec-library .card{padding:15px}.tec-library .cards.cambridge-grid{gap:10px}.tec-library .book-picker{gap:5px}.tec-library .book-picker button{min-width:35px;padding:8px}.tec-library .book-heading{display:block}.tec-library .book-heading p{margin-top:8px;font-size:11px}.tec-library .cambridge-test{padding:14px 10px}.tec-library .panel-heading{align-items:flex-start}.tec-library .panel-heading h2{font-size:18px}.tec-library .count{font-size:11px;white-space:nowrap}.tec-library>nav[aria-label]{padding:10px 16px!important}}

.tec-library main{display:flex;flex-direction:column}.tec-library #tec-payment-navigation{order:8}.tec-library .support{order:9}.tec-library>nav[aria-label="Từ vựng cá nhân"]{display:none}

/* UX scale correction. Explicitly limited to site pages, never active test rooms. */
body.tec-app{font-size:16px;line-height:1.65}
.tec-app main{width:100%;max-width:1248px;padding-left:clamp(16px,2.3vw,32px);padding-right:clamp(16px,2.3vw,32px)}
.tec-app .tec-header-inner{max-width:1320px;gap:20px}
.tec-app .tec-nav{gap:4px;flex-wrap:wrap}
.tec-app .tec-nav a,.tec-app .tec-header .login{font-size:15px;min-height:44px;display:inline-flex;align-items:center}
.tec-app :is(button,.button,.btn,input:not([type=checkbox]):not([type=radio]),select,textarea){font-size:16px;min-height:44px}
.tec-app .lead{font-size:17px}
.tec-app :is(.account-panel,.account-panel strong,.account-panel p,.account-panel h3,.account-panel button,.account-panel .resource){font-size:15px}
.tec-app .eyebrow{font-size:12px}
.tec-app :is(.tec-footer,.section-nav,.hero-note,.hero-note p){font-size:14px}
.tec-home :is(.course p,.course a,.about p,.campuses p,.consult p,.consult-actions,.section-heading>p,.text-link){font-size:16px}
.tec-home :is(.roadmap p,figcaption,.portrait span){font-size:14px}
.tec-app #tec-payment-navigation p,.tec-app #tec-payment-navigation a{font-size:15px!important}
.tec-library :is(.account-box summary,.tab,.category,.count,.card p,.card .resource,.book-picker button,.book-heading p,.notice,.support,.library-count){font-size:15px}
.tec-library :is(.card h3,.cambridge-test .card h3){font-size:17px}
.tec-library :is(.history-card-summary strong,.history-card-summary span){font-size:14px!important}
.tec-library .test-number{font-size:12px}
.tec-library .cards{gap:16px}.tec-library .card{padding:20px}
.tec-library .cambridge-test .card .resource{font-size:15px;min-height:44px}
.tec-library :is(.category,.tab,.book-picker button){min-height:44px}
.tec-history :is(.test-card p,.test-card a,.attempt p,.attempt a,.stat span,.score small,summary,.bar .button){font-size:15px}
.tec-history .question h3{font-size:18px}
.tec-history .attempt a{padding:8px 0;min-height:44px;display:inline-flex;align-items:center}
.tec-history .question .explanation{margin-top:20px;border-top:1px solid var(--line);padding-top:16px}
.tec-history .explanation h4{font-size:16px;margin:18px 0 6px}
.tec-history .explanation blockquote{margin:10px 0;padding:12px 16px;border-left:3px solid var(--tec-ocean);background:var(--tec-mist);white-space:pre-wrap;overflow-wrap:anywhere}
.tec-history .review-notice{padding:14px;border-left:3px solid var(--tec-ocean);background:#fff;font-size:15px}
.tec-history .transcript-text{white-space:pre-wrap;overflow-wrap:anywhere}
.tec-vocab-page.tec-app :is(.vocab-filter-bar,#tec-vocab-status,.tec-deck-select,.tec-deck-card h3,.tec-deck-card p,.tec-deck-actions button,.tec-deck-intro,.tec-deck-note,.tec-vocab-card>p,.tec-vocab-card blockquote,.tec-vocab-card>a,.tec-vocab-actions button,.tec-study-head button,.cardtoolbar,.cardtools button,.tip,.session-note,.selfcheck button,.tec-study-head strong,#tec-learn-options button,#tec-test-options button){font-size:15px}
.tec-vocab-page.tec-app :is(.tec-vocab-source,.tag,.flash-counts,main>p:last-child){font-size:13px!important}
.tec-vocab-page.tec-app :is(.tec-deck-select,.tec-deck-actions button,.tec-vocab-actions button,.cardtools button){min-height:44px}
.tec-checkout :is(.free,.notice,.duration,.package p,.package button,.row label,#checkout label,#checkout p,#order-summary,#order-bank,#order-note,#expired-help,#entitlements p,#payment-clock p,.record,.record button,#admin>label,#admin>p){font-size:15px}
.tec-checkout .badge{font-size:13px!important}
.tec-admin :is(label,input,select,button,textarea,td,th,.student,.student p,.muted){font-size:15px}
.tec-app main,.tec-app .account-panel,.tec-app .attempt,.tec-app .record{overflow-wrap:anywhere}
@media(max-width:1100px){.tec-app .tec-header-inner{flex-wrap:wrap}.tec-app .tec-nav{order:3;flex-basis:100%;justify-content:flex-start}.tec-app .tec-header .login{margin-left:auto}}
@media(max-width:600px){.tec-app .tec-nav a{font-size:15px;padding:8px}.tec-app .tec-nav{justify-content:flex-start;gap:0}.tec-library .cards.cambridge-grid{grid-template-columns:1fr}.tec-library .tabs{flex-wrap:wrap;gap:8px}.tec-library .tab{padding:10px 6px}.tec-library .panel-heading{flex-wrap:wrap}.tec-history .stats .stat{min-width:90px;padding:14px 10px}.tec-app .tec-header .login{white-space:normal;max-width:190px}.tec-app .tec-header-inner{padding:14px 16px}}
