.guidebook{--gb-bg:#f4f7fc;--gb-panel:#fff;--gb-text:#172b49;--gb-muted:#52657e;--gb-border:#d8e2ef;--gb-accent:#b74c00;--gb-soft:#fff0e1;--gb-shadow:0 12px 40px #173c6d08;margin:0;background:var(--gb-bg);color:var(--gb-text);font:16px/1.75 'Be Vietnam Pro',system-ui,sans-serif;color-scheme:light}
html[data-theme=dark] .guidebook{--gb-bg:#0f1927;--gb-panel:#19283b;--gb-text:#e3edfb;--gb-muted:#b2c3da;--gb-border:#354b65;--gb-accent:#ffb875;--gb-soft:#352b23;--gb-shadow:none;color-scheme:dark}
.guidebook *{box-sizing:border-box}.guidebook [hidden]{display:none!important}.guidebook a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}.guidebook button,.guidebook input{font:inherit}.guidebook button,.guidebook a{touch-action:manipulation}.guidebook :is(a,button,input,summary):focus-visible{outline:3px solid var(--gb-accent);outline-offset:4px}.gb-skip{position:fixed;top:-100px;left:16px;z-index:10;background:var(--gb-panel);padding:12px}.gb-skip:focus{top:8px}.gb-header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px max(24px,calc((100vw - 1392px)/2));background:var(--gb-panel);border-bottom:1px solid var(--gb-border)}
.gb-brand{display:flex;align-items:center;gap:18px;text-decoration:none;font-weight:700;font-size:21px}.gb-brand>span{border-left:1px solid var(--gb-border);padding-left:18px}.gb-brand span span{display:block;font-size:10px;letter-spacing:.12em;color:var(--gb-muted);font-weight:500}.gb-brand img{object-fit:contain}.gb-actions{display:flex;align-items:center;gap:16px;font-size:14px}.gb-actions>a{padding:10px 0}.gb-actions .theme-toggle{display:flex;align-items:center;gap:8px;min-height:44px;border:1px solid var(--gb-border);border-radius:12px;background:var(--gb-bg);color:var(--gb-text);padding:8px 12px;cursor:pointer}.gb-actions svg{width:20px;height:20px}
.gb-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:48px;max-width:1392px;margin:auto;padding:40px 24px 72px}.gb-sidebar{position:sticky;top:114px;align-self:start;max-height:calc(100dvh - 140px);overflow:auto;padding:4px 10px 10px 0;scrollbar-width:thin}.gb-sidebar summary{font-size:15px;font-weight:700;cursor:pointer;min-height:44px}.gb-sidebar summary span{font-size:12px;color:var(--gb-muted);font-weight:400;margin-left:8px}.gb-sidebar nav{display:grid;gap:5px;margin-top:12px}.gb-sidebar nav a{display:flex;gap:12px;align-items:baseline;text-decoration:none;font-size:13px;line-height:1.6;padding:10px 12px;border-radius:10px;min-height:44px;border:1px solid transparent}.gb-sidebar nav a span{font-size:11px;color:var(--gb-muted);font-variant-numeric:tabular-nums}.gb-sidebar nav a:hover,.gb-sidebar nav a[aria-current=true]{background:var(--gb-panel);border-color:var(--gb-border);color:var(--gb-accent)}.gb-sidebar>p{color:var(--gb-muted);font-size:11px;margin:22px 12px}.gb-content{min-width:0;max-width:920px}.gb-intro{padding:16px 0 30px}.gb-eyebrow,.gb-step{color:var(--gb-accent);font-weight:700;letter-spacing:.1em;font-size:11px}.gb-intro h1{font-size:clamp(32px,4vw,52px);line-height:1.22;letter-spacing:-.045em;margin:18px 0 20px;text-wrap:balance}.gb-intro h1 span{color:var(--gb-accent)}.gb-intro p{max-width:640px;color:var(--gb-muted)}.gb-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px}.gb-tools :is(a,button),.gb-primary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--gb-border);border-radius:12px;padding:10px 16px;background:var(--gb-panel);text-decoration:none;color:var(--gb-text);font-size:13px;font-weight:600;cursor:pointer}.gb-tools button,.gb-primary{background:var(--gb-text);color:var(--gb-panel)}.gb-tools>span{font-size:12px;color:var(--gb-muted)}.gb-search{margin:0 0 28px}.gb-search label{display:block;font-weight:600;font-size:14px;margin-bottom:8px}.gb-search input{width:100%;min-height:52px;padding:12px 16px;background:var(--gb-panel);color:var(--gb-text);border:1px solid var(--gb-border);border-radius:14px}.gb-search input::placeholder{color:var(--gb-muted)}.gb-search p{font-size:12px;color:var(--gb-muted);min-height:21px;margin:5px 0 0}.gb-chapter{background:var(--gb-panel);padding:clamp(24px,4vw,44px);border:1px solid var(--gb-border);border-radius:22px;margin-bottom:24px;box-shadow:var(--gb-shadow);scroll-margin-top:118px;overflow-wrap:anywhere}.gb-chapter h2{font-size:clamp(24px,2.7vw,32px);line-height:1.35;letter-spacing:-.025em;margin:12px 0 16px;text-wrap:balance}.gb-chapter header>p{color:var(--gb-muted);margin-bottom:26px}.gb-chapter section+section{margin-top:28px}.gb-chapter h3{font-size:17px;line-height:1.5;margin:0 0 10px}.gb-chapter p{margin:0 0 14px}.gb-chapter ol{padding-left:26px;margin:12px 0}.gb-chapter li{padding-left:6px;margin-bottom:13px}.gb-chapter li::marker{font-weight:700;color:var(--gb-accent)}.gb-back-top{display:inline-block;font-size:12px;color:var(--gb-muted)!important;margin-top:20px;min-height:44px;padding-top:10px}.gb-table-scroll{overflow-x:auto;border:1px solid var(--gb-border);border-radius:12px}.guidebook table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.6}.guidebook :is(th,td){padding:14px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--gb-border)}.guidebook th{background:var(--gb-soft);font-weight:700}.guidebook td:first-child{width:31%;font-weight:600}.guidebook tr:last-child td{border-bottom:0}.gb-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.gb-end{font-size:13px;color:var(--gb-muted);padding:10px 4px}.gb-locked{max-width:720px;margin:72px auto;padding:32px}.gb-locked h1{font-size:32px;line-height:1.3}.gb-locked p{color:var(--gb-muted)}.gb-locked>a{display:block;width:fit-content;margin-top:18px}
@media(max-width:900px){.gb-layout{grid-template-columns:215px minmax(0,1fr);gap:24px;padding:28px 20px}.gb-sidebar nav a{font-size:12px;padding:9px 6px}.gb-chapter{padding:26px}.gb-header{padding:14px 20px}.gb-tools>span{width:100%}}
@media(max-width:650px){.gb-header{position:relative;padding:14px 16px;gap:12px;flex-wrap:wrap}.gb-brand{font-size:18px;gap:12px}.gb-brand img{width:74px;height:36px}.gb-brand>span{padding-left:12px}.gb-actions{gap:12px;font-size:12px;flex-wrap:wrap}.gb-actions .theme-toggle{font-size:12px;padding:8px}.gb-layout{display:block;padding:20px 16px 48px}.gb-sidebar{position:static;max-height:none;background:var(--gb-panel);border:1px solid var(--gb-border);border-radius:14px;padding:12px 16px;margin-bottom:24px}.gb-sidebar summary{display:list-item;min-height:28px}.gb-sidebar nav{max-height:300px;overflow:auto}.gb-sidebar nav a{font-size:13px}.gb-sidebar>p{display:none}.gb-chapter{padding:24px 20px;border-radius:16px;scroll-margin-top:20px}.gb-intro{padding-top:0}.gb-intro h1{font-size:34px}.gb-chapter h2{font-size:24px}.guidebook{font-size:15px}.guidebook :is(td,th){padding:12px;font-size:13px}.guidebook td:first-child{width:34%}.gb-tools :is(a,button){font-size:12px}.gb-locked{margin:32px 0;padding:24px}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.gb-sidebar a,.gb-tools :is(a,button){transition:background .18s ease,border-color .18s ease}}
@media print{.guidebook{--gb-bg:#fff;--gb-panel:#fff;--gb-text:#000;--gb-muted:#333;--gb-border:#ccc;--gb-accent:#000;--gb-soft:#eee;background:#fff;color:#000;font:11pt/1.5 Arial,sans-serif}.gb-header{position:static;padding:0 0 12px}.gb-actions,.gb-sidebar,.gb-tools,.gb-search,.gb-back-top,.gb-skip,.gb-end{display:none!important}.gb-layout{display:block;padding:0;max-width:none}.gb-content{max-width:none}.gb-intro{padding:0 0 20px}.gb-intro h1{font-size:28pt}.gb-chapter{display:block!important;box-shadow:none;border:0;border-radius:0;margin:0;padding:0;break-before:page}.gb-chapter h2{font-size:22pt}.gb-chapter h3{break-after:avoid}.gb-chapter li,.guidebook tr{break-inside:avoid}.gb-table-scroll{overflow:visible}.guidebook thead{display:table-header-group}@page{margin:18mm}}

/* Entry points on the existing application; no global element overrides. */
.utility-menu-panel a.guidebook-entry,.mobile-nav a.guidebook-entry{display:block;padding:12px 16px;min-height:44px;color:inherit;text-decoration:none;font:inherit;border-radius:10px}.utility-menu-panel a.guidebook-entry:hover{background:var(--surface-soft,#edf3fa)}#portalNav a.guidebook-entry{display:flex;align-items:center;gap:12px;min-height:48px;margin:8px 0;padding:12px 14px;border:1px solid #ffffff40;border-radius:12px;color:#fff;text-decoration:none;font-size:14px}#portalNav a.guidebook-entry svg{width:20px;height:20px;flex:none}.site-footer a.guidebook-entry{display:inline-block;padding:8px 0;min-height:44px;color:inherit}.guidebook-entry:focus-visible{outline:3px solid #ffa353;outline-offset:3px}
@media print{html[data-theme] .guidebook{--gb-bg:#fff;--gb-panel:#fff;--gb-text:#000;--gb-muted:#333;--gb-border:#ccc;--gb-accent:#000;--gb-soft:#eee;color-scheme:light}}
.gb-brand>.gb-logo{position:relative;display:inline-flex;flex:none;padding:0;border:0}.gb-logo img{display:block}@media print{html[data-theme] .gb-logo:after{display:none}}

.guidebook a.gb-primary{background:var(--gb-text);color:var(--gb-panel)}

/* Official paired logo assets keep the complete lockup intact. */
html[data-theme] .gb-logo:after{display:none!important}
.gb-brand .gb-logo img{width:100px;height:auto;max-height:58px;object-fit:contain}
html[data-theme=dark] .gb-logo img{content:url("fpt-schools-white.png")}
@media print{html[data-theme] .gb-logo img{content:normal}}
.gb-search-dock{position:sticky;top:90px;z-index:4;margin:0;background:var(--gb-bg);border-bottom:1px solid var(--gb-border);padding:12px 24px}
.gb-search-dock>div{position:relative;max-width:1344px;margin:auto}.gb-search-dock label{font-size:12px;margin-bottom:5px}.gb-search-field{position:relative}.gb-search-field input{min-height:46px;padding-right:50px}.gb-search-field button{position:absolute;right:5px;top:2px;min-height:42px;width:42px;border:0;background:transparent;color:var(--gb-muted);font-size:24px;cursor:pointer}.gb-search-dock p:empty{display:none}
#guideSearchResults{position:absolute;top:100%;left:0;right:0;max-height:340px;overflow:auto;padding:8px;border:1px solid var(--gb-border);border-radius:12px;background:var(--gb-panel);box-shadow:0 16px 35px #0002}#guideSearchResults a{display:block;text-decoration:none;padding:12px;border-radius:8px;min-height:44px}#guideSearchResults a:hover{background:var(--gb-soft)}#guideSearchResults strong{display:block;font-size:14px}#guideSearchResults small{display:block;color:var(--gb-muted);font-size:12px}#guideSearchResults p{padding:12px}
.gb-sidebar{top:206px;max-height:calc(100dvh - 226px)}.gb-chapter{scroll-margin-top:212px}
#guideAiLauncher{position:fixed;right:20px;bottom:max(20px,env(safe-area-inset-bottom));z-index:20;display:flex;align-items:center;gap:9px;min-height:50px;padding:12px 18px;border:1px solid var(--gb-border);border-radius:28px;background:var(--gb-text);color:var(--gb-panel);font-size:14px;font-weight:700;box-shadow:0 8px 28px #0003;cursor:pointer}#guideAiLauncher svg{width:22px;height:22px}
.gb-assistant{position:fixed;right:20px;bottom:84px;z-index:25;display:flex;flex-direction:column;width:min(440px,calc(100vw - 32px));height:min(660px,calc(100dvh - 110px));border:1px solid var(--gb-border);border-radius:20px;background:var(--gb-panel);box-shadow:0 16px 64px #0004;overflow:hidden}.gb-assistant>header{display:flex;align-items:center;gap:6px;padding:16px;background:var(--gb-panel);border-bottom:1px solid var(--gb-border);flex:none}.gb-assistant header>div{flex:1;min-width:0}.gb-assistant h2{font-size:17px;margin:0}.gb-assistant header p{font-size:11px;color:var(--gb-muted);margin:2px 0 0}.gb-assistant header button{min-width:40px;min-height:44px;border:0;background:var(--gb-bg);color:var(--gb-text);border-radius:10px;cursor:pointer;font-size:21px}#guideAiMessages{flex:1;overflow:auto;padding:18px;min-height:0;overscroll-behavior:contain}.gb-ai-message{padding:12px 14px;margin:0 0 14px;border-radius:12px;background:var(--gb-bg);overflow-wrap:anywhere}.gb-ai-message.user{margin-left:28px}.gb-ai-message strong{font-size:11px;color:var(--gb-muted)}.gb-ai-message p{font-size:14px;line-height:1.8;white-space:pre-wrap;margin:5px 0 0}.gb-ai-welcome{font-size:15px;color:var(--gb-muted)}#guideAiStatus{font-size:12px;margin:0;padding:0 16px;color:var(--gb-muted)}#guideAiStatus:empty{display:none}.gb-assistant form{padding:14px 16px;border-top:1px solid var(--gb-border)}.gb-assistant form label{display:block;font-size:12px;font-weight:600;margin-bottom:6px}.gb-assistant form>div{display:flex;align-items:end;gap:8px}.gb-assistant textarea{font:inherit;font-size:14px;min-width:0;width:100%;resize:vertical;max-height:120px;border:1px solid var(--gb-border);border-radius:12px;padding:10px;background:var(--gb-bg);color:var(--gb-text)}.gb-assistant form button{width:44px;min-width:44px;min-height:44px;border:0;border-radius:12px;background:var(--gb-text);color:var(--gb-panel);cursor:pointer}.gb-assistant button:disabled{opacity:.55;cursor:wait}#guideAiThreads{max-height:180px;overflow:auto;border-bottom:1px solid var(--gb-border);padding:10px}#guideAiThreads button{display:block;text-align:left;background:var(--gb-bg);color:var(--gb-text);border:0;border-radius:8px;padding:10px;margin-bottom:5px;width:100%;min-height:44px;cursor:pointer}.gb-ai-handoff{display:block;padding:12px;margin:8px 0;background:var(--gb-soft);color:var(--gb-text)!important;border-radius:10px;font-size:13px}.gb-ai-related{display:grid;gap:8px;font-size:12px;margin:10px 0 18px}
@media(max-width:650px){.gb-search-dock{top:0;padding:10px 16px}.gb-sidebar{max-height:none}.gb-chapter{scroll-margin-top:106px}.gb-brand .gb-logo img{width:82px;max-height:48px}.gb-assistant{right:12px;bottom:80px;width:calc(100vw - 24px);height:min(620px,calc(100dvh - 100px))}#guideAiLauncher{right:16px;bottom:max(16px,env(safe-area-inset-bottom))}.gb-end{padding-bottom:70px}}
@media print{.gb-search-dock,#guideAiLauncher,.gb-assistant{display:none!important}}
.gb-search-dock{top:var(--gb-header-size,90px)}.gb-sidebar{top:calc(var(--gb-header-size,90px) + 116px)}.gb-chapter{scroll-margin-top:calc(var(--gb-header-size,90px) + 122px)}@media(max-width:650px){.gb-search-dock{top:0}.gb-chapter{scroll-margin-top:106px}}

.gb-content{scroll-margin-top:calc(var(--gb-header-size,90px) + 122px)}@media(max-width:650px){.gb-content{scroll-margin-top:106px}}
