/* Đông Bắc Ga: shared identity for public pages and the school workspace. */
:root{--school-blue:#356ba3;--school-blue-dark:#183c64;--school-red:#ce302b;--school-ink:#20344b;--school-muted:#61748a;--school-bg:#f3f7fc;--school-line:#dfe8f2;--navy:var(--school-blue-dark);--red:var(--school-red);--red2:#df4540;--red-dk:#a42320;--gold:#fff;--sidebar-bg:var(--school-blue-dark);--bs-primary:#356ba3;--bs-primary-rgb:53,107,163;--bs-link-color:#356ba3;--bs-link-hover-color:#183c64}
body{font-family:'Segoe UI',Arial,sans-serif;color:var(--school-ink);background:var(--school-bg);line-height:1.6;-webkit-font-smoothing:antialiased}
a,button,input,select,textarea{touch-action:manipulation}
a:focus-visible,button:focus-visible{outline:3px solid var(--school-blue);outline-offset:4px}
.btn{border-radius:10px;font-weight:600;transition:background .2s,box-shadow .2s,transform .2s}
.btn-primary{--bs-btn-bg:var(--school-blue);--bs-btn-border-color:var(--school-blue);--bs-btn-hover-bg:var(--school-blue-dark);--bs-btn-hover-border-color:var(--school-blue-dark);--bs-btn-active-bg:var(--school-blue-dark)}
.btn-danger{--bs-btn-bg:var(--school-red);--bs-btn-border-color:var(--school-red);--bs-btn-hover-bg:#af2521;--bs-btn-hover-border-color:#af2521}
.form-control,.form-select{border-color:#ccd9e7;border-radius:10px;min-height:44px;color:var(--school-ink)}
.form-control:focus,.form-select:focus{border-color:var(--school-blue);box-shadow:0 0 0 .2rem #356ba31c}
.card,.search-card,.summary-list,.news-card{border-radius:18px;box-shadow:0 6px 24px #183c6409;border-color:var(--school-line)}
.table{--bs-table-color:var(--school-ink);--bs-table-border-color:var(--school-line)}
.table th{color:var(--school-blue-dark);background:#eef4fb}
.table td,.table th{padding:.8rem}
.lk-header,.portal-header{background:#fff;color:var(--school-blue-dark);box-shadow:0 1px 0 var(--school-line);border-top:4px solid var(--school-blue)}
.lk-hi,.header-inner{max-width:1200px;margin:auto;padding:1rem 1.5rem}
.lk-logo,.header-logo,.navbar-brand img{border-radius:50%;background:#fff;filter:none;object-fit:contain}
.lk-btext p,.header-brand-text p{color:var(--school-muted);opacity:1}
.lk-nav,.header-nav{flex-wrap:wrap}
.lk-nav a,.header-nav a{color:var(--school-blue-dark);border:1px solid var(--school-line);background:#f7f9fc;border-radius:9px;padding:.55rem .85rem}
.lk-nav a:hover,.header-nav a:hover{background:#eaf1fa;color:var(--school-blue)}
.lk-banner,.portal-banner{background:linear-gradient(115deg,#183c64,#356ba3)!important;padding:3.25rem 1.5rem!important;border-bottom:4px solid var(--school-red)}
.lk-wave,.pb-wave{display:none}
.lkb-text h2{font-size:clamp(1.7rem,3vw,2.4rem);letter-spacing:-.035em}
.lkb-text p{font-size:.95rem;opacity:.88}
.lkb-icon-wrap{background:#ffffff14;border-radius:20px}
.lk-main,.portal-main{padding-top:2rem;padding-bottom:4rem}
.lk-layout>*{min-width:0}
.search-card{border:1px solid var(--school-line);border-top:3px solid var(--school-blue);box-shadow:0 8px 32px #183c640b}
.search-card .card-body{padding:1.5rem}
.sec-lbl,.section-lbl,.ns-head{color:var(--school-muted);font-size:.75rem;letter-spacing:.08em}
.info-card{background:linear-gradient(125deg,#183c64,#356ba3);box-shadow:none;border-radius:16px}
.ns-item{border:1px solid var(--school-line);box-shadow:none;padding:.9rem;margin-bottom:.6rem;border-radius:12px}
.ns-date,.ns-empty{color:var(--school-muted)}
.ns-more{color:var(--school-blue);background:#e8f0fa}
.s-lbl,.filter-label{color:var(--school-muted)}
.filter-btn{padding:.35rem .8rem;min-height:36px}
.filter-btn.active{background:var(--school-blue);border-color:var(--school-blue)}
.btn-pay-all{background:var(--school-blue);box-shadow:0 3px 12px #183c6420}
.btn-pay-all:hover{background:var(--school-blue-dark)}
.btn-pay-month{color:var(--school-blue);border-color:var(--school-blue)}
.btn-pay-month:hover{background:var(--school-blue);color:#fff}
.cat-btn:hover,.cat-btn.active,.pagination .page-item.active .page-link{background:var(--school-blue);border-color:var(--school-blue);color:#fff}
.lk-footer,.portal-footer{background:#fff;color:var(--school-muted);border-top:1px solid var(--school-line);padding:1.5rem}
.tt-table{min-width:760px}.tt-table td{height:88px}.tt-subject{color:var(--school-blue-dark)}
.tt-hover-table tbody tr:hover td,.tt-hover-table td[data-day].hover-col,.tt-hover-table th[data-day].hover-col{background:#eaf2fc}
.tt-hover-table td[data-day]:hover{box-shadow:inset 0 0 0 2px var(--school-blue)}
.timetable-scroll{overflow-x:auto;border-radius:16px;-webkit-overflow-scrolling:touch}
.p-card,.w-card{border:1px solid var(--school-line);border-radius:20px;box-shadow:0 6px 24px #183c6408;transition:transform .2s,box-shadow .2s}
.p-card:hover,.w-card:hover{transform:translateY(-5px);box-shadow:0 16px 35px #183c6414;border-color:#a9c4e0}
.p-card .p-card-icon,.w-card .w-card-icon{background:#eaf1fa;color:var(--school-blue)}
.p-card.pc-tuition .p-card-icon{background:#fff0ef;color:var(--school-red)}
.p-card .p-card-body h3,.w-card .w-card-body h3{color:var(--school-blue-dark)}
.p-card .p-card-cta,.w-card .w-card-cta{color:var(--school-blue);background:#edf3fb}
.p-card:hover .p-card-cta,.w-card:hover .w-card-cta{background:var(--school-blue);color:#fff}
.p-card.pc-tuition:hover .p-card-cta{background:var(--school-red);color:#fff}
#sidebar{background:linear-gradient(180deg,#183c64,#285987)}
#sidebar .nav-link{border-radius:9px;padding:.7rem 1rem}#sidebar .nav-link.active{background:#ffffff1c;box-shadow:inset 3px 0 var(--school-red)}
#sidebar .nav-section{color:#c0d3e8}#topbar{padding:.9rem 1.5rem;border-color:var(--school-line)}
.sidebar-school-logo{width:40px;height:40px;border-radius:50%;margin-right:9px;float:left}
body.school-login{background:radial-gradient(ellipse at 10% 0%,#dbe9f9,transparent 60%),var(--school-bg);padding:24px}
.login-card{max-width:440px;border:1px solid var(--school-line);border-radius:24px;box-shadow:0 24px 70px #183c6418}
.login-header{background:linear-gradient(135deg,#183c64,#356ba3);padding:2rem;border-bottom:4px solid var(--school-red)}
.login-logo{width:80px;height:80px;border-radius:50%}
/* Editorial landing page */
#navbar{background:#ffffffed;border-top:4px solid var(--school-blue);border-bottom:1px solid var(--school-line);padding:.85rem 0;box-shadow:none;backdrop-filter:blur(16px)}
#navbar .brand-text{color:var(--school-blue-dark)}#navbar .brand-text .sub{color:var(--school-muted);opacity:1}
.nav-links a{color:var(--school-ink);font-weight:600}.nav-links a:hover{color:var(--school-blue);background:#eaf1fa}
.nav-links a.is-active{background:#eaf1fa!important;color:var(--school-blue)!important}
.nav-links .btn-portal{background:var(--school-blue);color:#fff!important;border-radius:10px}.nav-links .btn-portal:hover{background:var(--school-blue-dark)}
.navbar-toggler{border-color:var(--school-line)}.navbar-toggler span{background:var(--school-blue)}
#hero{min-height:660px;background:radial-gradient(ellipse at 85% 15%,#deebfa,transparent 60%),#f6f9fd;color:var(--school-blue-dark);padding:5rem 0 4rem}
#hero h1{font-size:clamp(2.5rem,5.3vw,4.6rem);letter-spacing:-.05em;line-height:1.12}#hero h1 span{color:var(--school-blue)}
#hero .hero-badge{background:#e6eef9!important;border:1px solid #cedff1!important;color:var(--school-blue);animation:none!important;font-weight:600;padding:.5rem .9rem}
#hero .hero-badge i{color:var(--school-red)!important}
#hero .slogan{color:var(--school-muted);font-size:1.1rem;font-weight:500;border-left:3px solid var(--school-red);opacity:1;margin:1.5rem 0}
.hero-description{max-width:490px;color:var(--school-muted);margin-bottom:1.8rem}
.hero-btns .btn-main{background:var(--school-red);color:#fff;border-radius:12px;padding:.85rem 1.4rem}
.hero-btns .btn-ghost{color:var(--school-blue);border:1px solid #c3d4e7;background:#fff;border-radius:12px;padding:.85rem 1.4rem}
.hero-btns .btn-ghost:hover{background:#eaf1fa;border-color:var(--school-blue)}
.hero-visual{position:relative;padding:18px 0 24px 20px}
.hero-photo{width:100%;height:370px;object-fit:cover;border-radius:100px 24px 24px 24px;border:8px solid #fff;box-shadow:0 24px 55px #183c6420}
.hero-seal{position:absolute;right:20px;top:-12px;width:100px;height:100px;border-radius:50%;border:6px solid #fff;box-shadow:0 8px 25px #183c641a}
.hero-note{position:absolute;bottom:0;left:0;background:#fff;border:1px solid var(--school-line);border-left:4px solid var(--school-red);border-radius:14px;padding:1rem 1.5rem;box-shadow:0 10px 30px #183c6410;text-align:left}
.hero-note strong{display:block;color:var(--school-blue-dark)}.hero-note span{font-size:.8rem;color:var(--school-muted)}
.hero-particles,.hero-wave,.hero-scroll-hint{display:none}
.quick-access{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:3rem}
.quick-access a{display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--school-line);border-radius:16px;padding:1.15rem 1.4rem;color:var(--school-blue-dark);text-decoration:none;transition:transform .2s,box-shadow .2s}
.quick-access a:hover{transform:translateY(-3px);box-shadow:0 10px 25px #183c6410}.quick-access i{font-size:1.5rem;color:var(--school-blue)}.quick-access a:first-child>i{color:var(--school-red)}
.quick-access strong,.quick-access small{display:block}.quick-access small{color:var(--school-muted)}.quick-access .bi-arrow-up-right{margin-left:auto;font-size:1rem}
#stats{background:var(--school-blue-dark);padding:2rem 0}#stats .stat-num{color:#fff}#stats svg{display:none}
.section-title,.prog-card-body h5,.news-card .card-title{color:var(--school-blue-dark)}.section-title span{color:var(--school-blue)}.divider{background:var(--school-red)}
#strengths,#contact,#admission{background:var(--school-bg)}.strength-card{border-top:3px solid var(--school-blue);box-shadow:0 6px 24px #183c6408;border-radius:18px}
.strength-card:hover,.prog-card:hover{box-shadow:0 16px 35px #183c6414}.about-year-badge{background:var(--school-blue)}
.img-curtain{background:linear-gradient(135deg,var(--school-blue-dark),var(--school-blue))}
#portal-cta{background:linear-gradient(120deg,#183c64,#356ba3)}footer:not(.lk-footer):not(.portal-footer){background:var(--school-blue-dark)}
.fab-feedback{background:var(--school-blue)}
@media(max-width:991.98px){#navCollapse{background:#fff!important}.nav-links{gap:.5rem}#hero{padding:3rem 0}.hero-visual{max-width:620px;margin:1.5rem auto 0}.hero-photo{height:330px}}
@media(max-width:575.98px){.lk-hi,.header-inner{flex-wrap:wrap;padding:1rem}.lk-nav,.header-nav{width:100%}.lk-nav a{flex:1;text-align:center}.lk-nav a span{display:inline}.lk-banner,.portal-banner{padding:2rem 1rem!important}.lkb-inner{gap:1rem}.lkb-icon-wrap{width:48px;height:48px;font-size:1.5rem}.lkb-text{flex:1;min-width:200px}.lk-main{padding:1.25rem .85rem 3rem}.quick-access{grid-template-columns:1fr;margin-top:2rem;gap:.65rem}.hero-photo{height:260px;border-radius:60px 20px 20px 20px}.hero-seal{width:76px;height:76px}.hero-note{padding:.75rem 1rem}.hero-btns a{flex:1;text-align:center;font-size:.9rem!important}.navbar-brand .brand-text .name{font-size:.8rem}.search-card .card-body{padding:1rem}.table td,.table th{padding:.6rem}.fab-stack{right:.65rem;bottom:.75rem}.fab-btn{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}[data-aos]{opacity:1!important;transform:none!important}.nav-links li{opacity:1}}
@media print{body{background:#fff}.lk-header,.lk-banner,.lk-footer,.news-sidebar,.search-card{display:none}.lk-main{max-width:none;padding:0}.tt-table{min-width:0}.tt-table td{height:auto}.timetable-scroll{overflow:visible}}
