/* 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-home{background:#fff}.tec-home main{max-width:none;padding:0}.tec-home .wrap{max-width:1184px;margin:auto;padding-left:32px;padding-right:32px}.tec-home .section-nav{max-width:1184px;margin:0 auto;display:flex;gap:24px;padding:12px 32px;font-size:11px;border-bottom:1px solid var(--line)}.tec-home .section-nav a{text-decoration:none}.tec-home .menu-toggle{display:none}.tec-home .hero{display:grid;grid-template-columns:1.08fr 1fr;gap:48px;align-items:center;padding-top:42px;padding-bottom:42px}.tec-home .hero h1{font-family:'Playfair Display','Times New Roman',serif;font-size:clamp(34px,4.1vw,54px);font-weight:500;letter-spacing:-.03em;line-height:1.15}.tec-home h1 em,.tec-home h2 em{font-style:normal;color:var(--tec-deep)}.tec-home .hero .lead{font-size:15px;margin:22px 0}.tec-home .actions{display:flex;flex-wrap:wrap;gap:10px}.tec-home .hero-note{display:flex;gap:12px;margin-top:24px;font-size:12px;color:var(--muted)}.tec-home .round-icon{color:var(--tec-deep)}.tec-home .hero-visual{position:relative;margin:0}.tec-home .hero-visual>img{width:100%;height:360px;object-fit:cover;border-radius:4px}.tec-home .photo-label{font-size:9px;letter-spacing:.1em;margin-top:10px;color:var(--muted)}.tec-home .photo-caption{position:absolute;bottom:36px;left:18px;padding:13px 18px;background:white;color:var(--ink);border-left:3px solid var(--tec-blue)}.tec-home .photo-caption span{display:block;font-size:8px;letter-spacing:.12em}.tec-home .photo-caption strong{font-family:'Times New Roman',serif;font-size:18px;font-weight:500}.tec-home .values-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--tec-mist)}.tec-home .values-strip .wrap{display:flex;justify-content:space-between;align-items:center;padding-top:14px;padding-bottom:14px;gap:16px;font-size:10px;font-weight:700;letter-spacing:.08em}.tec-home .values-strip i{font-style:normal;color:var(--tec-ocean)}.tec-home .section{padding-top:52px;padding-bottom:52px;scroll-margin-top:20px}.tec-home .section h2{font:500 clamp(25px,3vw,36px)/1.2 'Playfair Display','Times New Roman',serif;letter-spacing:-.025em;margin:12px 0 20px}.tec-home .intro{display:grid;grid-template-columns:1fr 2fr;gap:36px}.tec-home .intro p{max-width:760px;color:var(--muted)}.tec-home .soft{background:var(--tec-mist)}.tec-home .section-heading{display:flex;justify-content:space-between;gap:28px;align-items:end;margin-bottom:22px}.tec-home .section-heading>p{font-size:12px;color:var(--muted)}.tec-home .text-link{font-weight:650;font-size:12px}.tec-home .courses{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.tec-home .course{padding-top:18px;border-top:2px solid var(--line);display:flex;flex-direction:column}.tec-home .course.featured{border-color:var(--tec-blue)}.tec-home .course-number{font-size:9px;font-weight:700;color:var(--tec-deep);letter-spacing:.06em}.tec-home .course h3{font-size:20px;min-height:48px}.tec-home .course p{font-size:12px;color:var(--muted);flex:1}.tec-home .course a{font-size:12px;font-weight:650}.tec-home .course-watermark{display:none}.tec-home .roadmap{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0}.tec-home .roadmap article{padding:22px 20px;border-right:1px solid var(--line)}.tec-home .roadmap article:first-child{padding-left:0}.tec-home .roadmap article:last-child{border:0}.tec-home .step{font-size:12px;color:var(--tec-ocean)}.tec-home .roadmap p{font-size:10px;font-weight:600;margin:10px 0}.tec-home .roadmap h3{font:500 27px 'Times New Roman',serif}.tec-home .roadmap h3 span{color:var(--tec-ocean)}.tec-home .results-section{background:var(--tec-mist)}.tec-home .results-grid,.tec-home .gallery,.tec-home .campuses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.tec-home figure{margin:0}.tec-home .result button{padding:0;display:block;width:100%;background:white;border-radius:4px;overflow:hidden}.tec-home .result img{height:265px;object-fit:contain;display:block;margin:auto}.tec-home .result .missing{display:flex;min-height:140px;align-items:center;flex-direction:column;justify-content:center}.tec-home figcaption{display:flex;justify-content:space-between;padding:12px 0;gap:10px;font-size:12px}.tec-home figcaption small{color:var(--muted)}.tec-home .center{text-align:center;margin-top:24px}.tec-home .gallery img{height:265px;width:100%;object-fit:cover;border-radius:4px}.tec-home .about{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:center}.tec-home .portrait img{width:100%;max-height:400px;object-fit:cover;object-position:top;border-radius:4px}.tec-home .portrait span{font-size:10px;letter-spacing:.05em;display:block;margin-top:8px}.tec-home .about blockquote{margin:20px 0;padding-left:20px;border-left:2px solid var(--tec-blue);font:24px/1.35 'Times New Roman',serif;color:var(--tec-deep)}.tec-home .about p{color:var(--muted);font-size:13px}.tec-home .campuses img{height:185px;width:100%;object-fit:cover;border-radius:4px}.tec-home .campuses article>div{padding-top:16px}.tec-home .campuses p{font-size:12px;color:var(--muted)}.tec-home .consult{margin-bottom:44px;background:var(--tec-deep);color:#fff;display:flex;justify-content:space-between;gap:36px;padding-top:32px;padding-bottom:32px;border-radius:4px}.tec-home .consult h2,.tec-home .consult h2 em,.tec-home .consult .eyebrow,.tec-home .consult a{color:#fff}.tec-home .consult h2{font:500 32px/1.2 'Times New Roman',serif}.tec-home .consult p{font-size:13px}.tec-home .consult-actions{display:flex;flex-direction:column;justify-content:center;gap:12px;font-size:12px}.tec-home .consult .btn{background:#fff;color:var(--tec-deep)}.tec-home footer{border-top:1px solid var(--line);padding:30px 0;background:var(--tec-mist);font-size:12px}.tec-home .footer-grid{display:grid;grid-template-columns:1.2fr 1fr .7fr .7fr;gap:24px}.tec-home footer .brand{display:flex;text-decoration:none;gap:12px}.tec-home footer .brand img{width:38px;height:42px}.tec-home footer .brand b{font-size:22px;color:var(--tec-blue)}.tec-home footer .brand small{display:block;font-size:8px}.tec-home footer a{display:block;margin:7px 0}.tec-home footer h3{font-size:13px}.tec-home .footer-bottom{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;margin-top:24px}.tec-home .support summary{cursor:pointer}.tec-home #image-viewer img{max-height:75vh;width:auto;display:block;margin:auto}.tec-home #close-image{float:right}.tec-home #account-slot{max-width:1184px;margin:0 auto 26px;padding:0 32px}.tec-home #account-slot .account-panel{background:var(--tec-mist)}
@media(max-width:900px){.tec-home .hero{gap:28px}.tec-home .hero-visual>img{height:330px}.tec-home .courses{grid-template-columns:repeat(2,1fr)}.tec-home .footer-grid{grid-template-columns:1fr 1fr}.tec-home .about{gap:32px}.tec-home .section-heading{align-items:start}}
@media(max-width:600px){.tec-home .wrap{padding-left:16px;padding-right:16px}.tec-home .hero{grid-template-columns:1fr;padding-top:28px;padding-bottom:28px;gap:24px}.tec-home .hero h1{font-size:38px}.tec-home .hero-visual>img{height:235px}.tec-home .hero-note{margin-top:18px}.tec-home .values-strip .wrap{font-size:8px;gap:8px;letter-spacing:0}.tec-home .values-strip i{display:none}.tec-home .section{padding-top:32px;padding-bottom:32px}.tec-home .intro,.tec-home .about{grid-template-columns:1fr;gap:16px}.tec-home .section-heading{display:block}.tec-home .courses{gap:20px 16px}.tec-home .course h3{font-size:18px}.tec-home .roadmap{grid-template-columns:1fr 1fr}.tec-home .roadmap article{padding:16px!important}.tec-home .roadmap article:nth-child(2){border:0}.tec-home .roadmap article:nth-child(n+3){border-top:1px solid var(--line)}.tec-home .gallery,.tec-home .campuses,.tec-home .results-grid{grid-template-columns:1fr;gap:20px}.tec-home .gallery img{height:235px}.tec-home .portrait img{max-height:300px}.tec-home .consult{display:block;margin:0 16px 28px;padding:24px}.tec-home .consult h2{font-size:27px}.tec-home .consult-actions{align-items:start}.tec-home .footer-grid{grid-template-columns:1fr;gap:18px}.tec-home .footer-bottom{display:block}.tec-home .section-nav{display:none;padding:12px 16px;flex-wrap:wrap;gap:14px}.tec-home .section-nav.open{display:flex}.tec-home .menu-toggle{display:inline-flex}.tec-home #account-slot{padding:0 16px}.tec-home .tec-header .login{margin-left:0}.tec-home .tec-header-inner{gap:8px}.tec-home .tec-header .login{font-size:11px;padding:8px}}

/* 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}}
