/* Trường Phổ Thông Triệu Sơn: shared identity for public pages and the school workspace. */
:root{--school-primary:#b3261e;--school-primary-dark:#7a1a14;--school-accent:#e8a317;--school-ink:#3b2622;--school-muted:#7d6660;--school-bg:#fbf7f4;--school-line:#efe1db;--school-tint:#fbeeea;--school-tint-2:#f7ddd6;--school-blue:var(--school-primary);--school-blue-dark:var(--school-primary-dark);--school-red:var(--school-accent);--navy:var(--school-primary-dark);--red:#c62828;--red2:#d84338;--red-dk:#8e1b16;--gold:#fff;--sidebar-bg:var(--school-primary-dark);--bs-primary:#b3261e;--bs-primary-rgb:179,38,30;--bs-link-color:#b3261e;--bs-link-hover-color:#7a1a14}
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:#c62828;--bs-btn-border-color:#c62828;--bs-btn-hover-bg:#a31f1f;--bs-btn-hover-border-color:#a31f1f}
.form-control,.form-select{border-color:#ead2cb;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 #b3261e1c}
.card,.search-card,.summary-list,.news-card{border-radius:18px;box-shadow:0 6px 24px #7a1a1409;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:#fbf1ee}
.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:#fdf8f6;border-radius:9px;padding:.55rem .85rem}
.lk-nav a:hover,.header-nav a:hover{background:#fbeeea;color:var(--school-blue)}
.lk-banner,.portal-banner{background:linear-gradient(115deg,#7a1a14,#b3261e)!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 #7a1a140b}
.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,#7a1a14,#b3261e);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:#fbeeea}
.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 #7a1a1420}
.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:#fcebe7}
.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 #7a1a1408;transition:transform .2s,box-shadow .2s}
.p-card:hover,.w-card:hover{transform:translateY(-5px);box-shadow:0 16px 35px #7a1a1414;border-color:#e6b9ae}
.p-card .p-card-icon,.w-card .w-card-icon{background:#fbeeea;color:var(--school-blue)}
.p-card.pc-tuition .p-card-icon{background:#fdf1dc;color:#b57d0c}
.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:#fbeeea}
.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-primary-dark);color:#fff}
#sidebar{background:linear-gradient(180deg,#7a1a14,#9c2019)}
#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:#f5c9a8}#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%,#fbe2dc,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 #7a1a1418}
.login-header{background:linear-gradient(135deg,#7a1a14,#b3261e);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:#fbeeea}
.nav-links a.is-active{background:#fbeeea!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%,#fbe2dc,transparent 60%),#fdf8f6;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:#fbeeea!important;border:1px solid #f2d5ce!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-primary);color:#fff;border-radius:12px;padding:.85rem 1.4rem}
.hero-btns .btn-ghost{color:var(--school-blue);border:1px solid #ead2cb;background:#fff;border-radius:12px;padding:.85rem 1.4rem}
.hero-btns .btn-ghost:hover{background:#fbeeea;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 #7a1a1420}
.hero-seal{position:absolute;right:20px;top:-12px;width:100px;height:100px;border-radius:50%;border:6px solid #fff;box-shadow:0 8px 25px #7a1a141a}
.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 #7a1a1410;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 #7a1a1410}.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 #7a1a1408;border-radius:18px}
.strength-card:hover,.prog-card:hover{box-shadow:0 16px 35px #7a1a1414}.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,#7a1a14,#b3261e)}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}}

/* Triệu Sơn: viền vàng cho logo tròn + chữ trên nền vàng đủ tương phản */
.lk-logo,.header-logo,.login-logo,.hero-seal,.sidebar-school-logo{box-shadow:0 0 0 2px #f5d27a}
.hero-note{border-left-color:var(--school-accent)}
/* Nút viền / chữ "primary" của Bootstrap theo màu trường (dongbacga xanh trùng mặc định nên không cần) */
.btn-outline-primary{--bs-btn-color:var(--school-primary);--bs-btn-border-color:var(--school-primary);--bs-btn-hover-bg:var(--school-primary);--bs-btn-hover-border-color:var(--school-primary);--bs-btn-hover-color:#fff;--bs-btn-active-bg:var(--school-primary-dark);--bs-btn-active-border-color:var(--school-primary-dark);--bs-btn-active-color:#fff;--bs-btn-disabled-color:var(--school-primary);--bs-btn-disabled-border-color:var(--school-primary)}
.btn-check:checked+.btn-outline-primary{background:var(--school-primary);border-color:var(--school-primary);color:#fff}
.text-primary{color:var(--school-primary)!important}.bg-primary{background-color:var(--school-primary)!important}.border-primary{border-color:var(--school-primary)!important}
.link-primary{color:var(--school-primary)!important}.form-check-input:checked{background-color:var(--school-primary);border-color:var(--school-primary)}
.page-link{color:var(--school-primary)}.page-link:hover{color:var(--school-primary-dark)}
.nav-pills .nav-link.active{background:var(--school-primary)}
:root{--bs-link-color-rgb:179,38,30;--bs-link-hover-color-rgb:122,26,20;--bs-primary-text-emphasis:#7a1a14;--bs-primary-bg-subtle:#fbeeea;--bs-primary-border-subtle:#f2c9c1}
