:root{--navy:#092e56;--navy2:#0d416f;--navydeep:#061d39;--gold:#d9b56b;--goldlite:#f2ddaa;--ink:#18253b;--muted:#69758a;--line:#e4eaf0;--bg:#f7f9fb;--pale:#eaf2f8;--white:#fff;--radius:16px;--shadow:0 12px 34px rgba(14,41,67,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--bg);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:15px;line-height:1.65}a{text-decoration:none;color:inherit}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}img{max-width:100%}.container{width:min(1180px,calc(100% - 48px));margin:auto}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.25;letter-spacing:-.033em}h1{font-size:clamp(35px,5vw,64px)}h2{font-size:clamp(26px,3vw,37px)}h3{font-size:19px}p{color:var(--muted)}.skip-link{position:absolute;z-index:100;top:-80px;left:16px;background:#fff;padding:9px}.skip-link:focus{top:8px}.site-header{background:var(--navydeep);position:relative;z-index:10}.header-inner{min-height:200px;display:flex;gap:35px;align-items:center;justify-content:space-between;padding:18px 0}.brand{display:flex;gap:13px;align-items:center;color:white;flex-shrink:0}.brand img{height:128px;width:128px}.brand-wordmark{display:flex;flex-direction:column;line-height:1.26}.brand-wordmark strong{font-size:19px;letter-spacing:.1em}.brand-wordmark em{font-style:normal;color:var(--gold)}.brand-wordmark small{font-size:9px;letter-spacing:.13em;color:#bfd2e1}.main-nav{display:flex;align-items:center;gap:24px}.nav-link{font-size:13px;font-weight:600;color:#cddaea;white-space:nowrap}.nav-link:hover,.nav-link.is-active{color:var(--goldlite)}.nav-user{display:flex;align-items:center;gap:7px;color:white;font-size:12px}.nav-user form{margin:0}.nav-username{max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-dot{display:flex;justify-content:center;align-items:center;border-radius:50%;background:#1f5684;width:29px;height:29px;color:white;font-weight:700}.tiny-link{background:none;border:0;color:var(--goldlite);font-size:12px;padding:4px}.mobile-toggle{display:none;border:0;background:transparent;color:white;font-size:25px}.demo-banner{background:#fff6d9;text-align:center;padding:9px 16px;font-size:12px;color:#775819;border-bottom:1px solid #f1dd9f}.notice{max-width:1180px;width:calc(100% - 48px);margin:18px auto -4px;background:#e8f5ec;color:#176139;border:1px solid #b9e3c3;border-radius:10px;padding:11px 16px;font-size:13px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 21px;border-radius:9px;font-weight:700;font-size:13px;border:1px solid transparent;transition:transform .15s,background .15s}.button:hover{transform:translateY(-1px)}.button-small{padding:9px 14px}.button-primary{color:white;background:var(--navy)}.button-primary:hover{background:var(--navy2)}.button-secondary{background:white;color:var(--navy);border-color:#cbd8e6}.button-ghost{background:transparent;color:#fff;border:1px solid #547493}.button-outline-light{background:transparent;color:white;border-color:#567493}.button-gold{background:var(--goldlite);color:#14334c}.button-danger{background:#b43e45;color:white}.hero{background:linear-gradient(115deg,#071e3b 1%,#0c3e69 58%,#0b365f);color:white;overflow:hidden;position:relative}.hero:before{content:"";position:absolute;width:650px;height:650px;border-radius:50%;right:-280px;top:-260px;border:2px solid rgba(226,199,135,.16);box-shadow:0 0 0 65px rgba(255,255,255,.025),0 0 0 132px rgba(255,255,255,.016)}.hero:after{content:"";position:absolute;right:5%;bottom:-2px;width:40%;height:66%;background:repeating-linear-gradient(90deg,transparent 0 37px,rgba(221,231,240,.04) 38px 39px);transform:skew(-12deg);pointer-events:none}.hero-content{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:35px;min-height:500px;position:relative;z-index:1;padding-top:42px;padding-bottom:42px}.hero-copy{max-width:680px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.22em;color:#b99145;text-transform:uppercase;margin-bottom:18px}.hero .eyebrow{color:var(--goldlite)}.hero h1{font-size:clamp(38px,5.2vw,67px);max-width:720px;margin-bottom:17px}.hero h1 span{color:var(--goldlite)}.hero p{max-width:590px;color:#d1e0ee;font-size:16px;line-height:1.85;margin-bottom:28px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-visual{min-height:340px;display:flex;align-items:center;justify-content:center}.anniversary{width:min(375px,100%);aspect-ratio:1;position:relative;display:grid;place-items:center}.anniversary:before{content:"";position:absolute;inset:8%;border:1px solid rgba(232,198,127,.38);border-radius:50%}.anniversary:after{content:"";position:absolute;inset:0;border:1px dashed rgba(232,198,127,.25);border-radius:50%}.anniversary-inner{text-align:center;display:flex;flex-direction:column;line-height:1.1}.anniversary-inner strong{font-family:Georgia,serif;font-size:clamp(88px,12vw,157px);color:var(--goldlite);font-weight:400;letter-spacing:-.06em}.anniversary-inner span{font-family:Georgia,serif;font-size:27px;color:#fff;letter-spacing:.17em}.anniversary-inner small{font-size:11px;margin-top:16px;letter-spacing:.2em;color:#bacddd}.laurel{position:absolute;bottom:5%;color:rgba(229,193,107,.65);font-family:Georgia,serif;font-size:110px;transform:rotate(-20deg)}.laurel.left{left:0}.laurel.right{right:0;transform:scaleX(-1) rotate(-20deg)}.section{padding:72px 0}.section-white{background:white}.section-header{display:flex;gap:25px;justify-content:space-between;align-items:end;margin-bottom:30px}.section-header h2{margin-bottom:8px}.section-header p{margin-bottom:0}.text-link{font-size:13px;color:var(--navy);font-weight:800}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:-31px;position:relative;z-index:2}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 34px;box-shadow:var(--shadow)}.stat strong{display:block;color:var(--navy);font-size:36px;line-height:1.2}.stat span{color:var(--muted);font-size:13px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.feature{padding:26px;border-radius:14px;border:1px solid var(--line);background:white}.feature-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:#e8f0f7;color:var(--navy);font-size:22px;margin-bottom:17px}.feature h3{margin-bottom:8px}.feature p{font-size:13px;margin:0}.term-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.term-card{min-height:190px;position:relative;background:linear-gradient(145deg,#fff,#f8fbfd);border:1px solid var(--line);border-radius:14px;padding:25px;display:flex;flex-direction:column;justify-content:space-between;transition:border .15s,transform .15s}.term-card:hover{border-color:#9db9d0;transform:translateY(-2px)}.term-number{font-size:10px;color:#b08b45;letter-spacing:.2em;font-weight:800}.term-card strong{font-size:27px;color:var(--navy);margin-top:7px}.term-foot{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;border-top:1px solid var(--line);padding-top:13px;margin-top:23px}.term-foot b{color:var(--navy);font-size:18px}.members-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.member-card{background:white;border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;align-items:center;gap:14px;position:relative;transition:border .15s,transform .15s}.member-card:hover{border-color:#acc5d8;transform:translateY(-2px)}.member-avatar{flex-shrink:0}.portrait{object-fit:cover;display:grid;place-items:center;flex-shrink:0;border-radius:12px;width:70px;height:80px}.portrait-fallback{background:linear-gradient(145deg,#d8e7f0,#aac1d5);color:var(--navy);font-weight:800;font-size:21px}.portrait-large{width:170px;height:190px;border-radius:18px;font-size:47px}.portrait-small{width:45px;height:52px;border-radius:8px;font-size:16px}.member-meta{display:flex;flex-direction:column;min-width:0;gap:2px}.member-name{font-weight:800;font-size:15px;line-height:1.4;color:#162f4f}.member-sub{color:var(--muted);font-size:12px}.role-tag{margin-top:5px;display:inline-block;width:fit-content;background:#f3ead4;color:#835f20;border-radius:7px;padding:3px 8px;font-size:11px;line-height:1.5;font-weight:600}.card-arrow{color:#9cb1c2;margin-left:auto;align-self:flex-start}.cta-band{border-radius:20px;background:linear-gradient(100deg,#0b335b,#155481);color:white;display:flex;align-items:center;justify-content:space-between;padding:38px 43px;gap:25px}.cta-band h2{font-size:29px;margin-bottom:9px}.cta-band p{color:#c6d6e4;margin-bottom:0;max-width:610px}.cta-band .button{flex-shrink:0}.page-heading{background:linear-gradient(120deg,#eaf1f7,#f8fbff);padding:45px 0 48px;border-bottom:1px solid #e3ebf1}.page-heading h1{font-size:clamp(35px,4vw,51px);color:var(--navy);margin-bottom:12px}.page-heading p{max-width:750px;font-size:15px;margin-bottom:0}.breadcrumbs{font-size:12px;color:#78889b;margin-bottom:27px}.breadcrumbs a:hover{color:var(--navy)}.content-area{padding:44px 0 85px}.search-bar{padding:20px;background:#fff;border:1px solid var(--line);border-radius:13px;display:flex;gap:12px;align-items:end;margin-bottom:24px}.search-bar .form-field{flex:1;margin:0}.search-bar label{font-size:12px}.form-field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.form-field label{font-weight:750;font-size:13px;color:#213753}.form-field input,.form-field select,.form-field textarea,.role-edit-row input,.role-edit-row select{width:100%;border:1px solid #d6e0e9;border-radius:9px;background:white;color:#18253b;padding:12px 13px;outline:0;min-height:45px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus,.role-edit-row input:focus,.role-edit-row select:focus{border-color:#447fac;box-shadow:0 0 0 3px rgba(68,127,172,.12)}.field-hint{font-size:11px;color:#8793a3}.filters-count{font-size:13px;color:var(--muted);margin-bottom:18px}.detail-layout{display:grid;grid-template-columns:320px 1fr;gap:26px}.detail-card,.panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:30px;box-shadow:0 6px 22px rgba(22,47,71,.025)}.profile-sidebar{text-align:center}.profile-sidebar .portrait{margin:0 auto 20px}.profile-sidebar h2{font-size:23px}.profile-sidebar p{font-size:13px}.profile-facts{text-align:left;border-top:1px solid var(--line);padding-top:15px}.profile-facts div{display:flex;justify-content:space-between;gap:10px;font-size:13px;margin:10px 0}.profile-facts strong{color:#273c59}.small-title{font-size:15px;font-weight:800;color:var(--navy);margin-bottom:14px}.timeline{position:relative;border-left:2px solid #d9e6ef;padding-left:25px;margin-left:8px}.timeline-item{position:relative;padding-bottom:23px}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";position:absolute;left:-32px;top:7px;width:11px;height:11px;background:var(--gold);border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #d8bc80}.timeline-item strong{display:block;color:var(--navy);font-size:17px}.timeline-item span{display:block;font-size:13px;color:var(--muted)}.detail-main section+section{margin-top:28px;padding-top:26px;border-top:1px solid var(--line)}.detail-main p{font-size:14px}.auth-wrap{width:min(490px,calc(100% - 40px));margin:62px auto 92px}.auth-wrap .panel h1{font-size:32px;margin-bottom:10px;color:var(--navy)}.auth-wrap .panel p{font-size:13px}.form-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.form-wide{width:min(820px,100%);margin:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.role-edit-row{display:grid;grid-template-columns:190px 1fr 35px;gap:10px;margin-bottom:10px}.remove-row{border:1px solid var(--line);background:#f6f9fb;border-radius:8px;font-size:22px;color:#9d4a52}.checkbox-row{display:flex;align-items:flex-start;gap:11px;font-size:12px;color:var(--muted);margin-bottom:16px}.checkbox-row input{margin-top:4px}.info-box{border:1px solid #c9dce8;background:#eff6fa;color:#294b67;padding:14px 16px;border-radius:10px;font-size:12px;margin:16px 0}.error-box{border:1px solid #e9bec1;background:#fff0f0;color:#973c46;padding:13px 15px;border-radius:10px;margin-bottom:20px}.empty-state{background:white;border:1px dashed #cedce6;border-radius:16px;padding:45px 25px;text-align:center}.empty-icon{font-size:42px;color:#a9beca}.empty-state h3{margin:6px 0}.empty-state p{max-width:530px;margin:0 auto 15px;font-size:13px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:13px;background:#fff}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid #ebeff2;vertical-align:middle}th{background:#f5f8fb;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#65788d}tr:last-child td{border-bottom:0}.table-action{color:var(--navy);font-weight:800}.status{border-radius:99px;padding:3px 9px;font-size:11px;font-weight:750;white-space:nowrap}.status-pending{background:#fff2d4;color:#996a17}.status-approved,.status-active{background:#e1f3e8;color:#29744c}.status-rejected,.status-disabled{background:#ffe5e7;color:#a8424c}.admin-layout{display:grid;grid-template-columns:230px 1fr;gap:25px}.sidebar{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;height:fit-content}.sidebar a{display:block;padding:11px 13px;border-radius:8px;font-size:13px;font-weight:650;color:#39516b}.sidebar a:hover,.sidebar a.on{background:#edf3f8;color:#123b62}.dashboard-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:24px}.metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:21px}.metric strong{font-size:27px;display:block;color:var(--navy)}.metric span{font-size:12px;color:var(--muted)}.admin-main h2{font-size:24px}.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.inline-form input,.inline-form select{border:1px solid #d5e0e9;border-radius:6px;padding:7px 8px;min-width:90px;max-width:200px}.inline-form .button{padding:7px 10px}.payload-list{margin:0;padding-left:17px;font-size:13px}.payload-list li{margin-bottom:7px}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.muted{color:var(--muted)}.small{font-size:12px}.section-divider{border:0;border-top:1px solid var(--line);margin:23px 0}.footer{background:#061e38;color:#d5e3ee;padding-top:56px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:65px}.footer-title{font-size:19px;font-weight:900;letter-spacing:.08em;color:#fff}.footer-title span{color:var(--gold)}.footer p{font-size:12px;max-width:410px;color:#aabed0;margin-top:10px}.footer-grid strong{font-size:13px;display:block;margin-bottom:10px;color:#fff}.footer-grid a{font-size:12px;display:block;color:#aabed0;padding:4px 0}.footer-bottom{padding:19px 0;border-top:1px solid #203f5b;font-size:11px;color:#90a9bd;margin-top:44px}.right{text-align:right}.mb0{margin-bottom:0}.mt20{margin-top:20px}.mb20{margin-bottom:20px}.source-note{color:#9a7c45;font-size:12px}.section-caption{font-size:12px;color:var(--muted);margin-bottom:20px}
@media(max-width:1050px){.main-nav{gap:14px}.nav-link{font-size:12px}.brand-wordmark small{font-size:8px}.brand-wordmark strong{font-size:16px}.header-inner{gap:10px}.member-card{padding:15px}.members-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.container{width:min(100% - 32px,1180px)}.header-inner{min-height:170px;padding:14px 0}.brand img{width:150px;height:150px}.mobile-toggle{display:block}.main-nav{display:none;position:absolute;top:70px;left:0;right:0;background:var(--navydeep);padding:12px 20px 25px;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 12px 20px #0013}.main-nav.nav-open{display:flex}.main-nav .nav-link{padding:12px 10px;border-bottom:1px solid #26435d}.main-nav .button{margin-top:14px}.nav-user{padding:12px}.hero-content{grid-template-columns:1fr;gap:0;padding-top:55px}.hero-visual{display:none}.hero h1{font-size:45px}.hero{min-height:440px}.stats{grid-template-columns:repeat(3,1fr)}.stat{padding:18px}.stat strong{font-size:26px}.feature-grid{grid-template-columns:1fr 1fr}.term-grid{grid-template-columns:1fr 1fr}.detail-layout{grid-template-columns:1fr}.admin-layout{grid-template-columns:1fr}.sidebar{display:flex;overflow:auto;gap:10px}.sidebar a{white-space:nowrap}.footer-grid{grid-template-columns:1fr 1fr;gap:25px}.footer-grid>div:first-child{grid-column:span 2}}
@media(max-width:560px){.container{width:calc(100% - 28px)}.brand-wordmark strong{font-size:15px}.brand-wordmark small{letter-spacing:.04em}.hero-content{min-height:405px}.hero h1{font-size:39px}.hero p{font-size:14px}.hero-actions{align-items:stretch;flex-direction:column}.section{padding:48px 0}.stats{grid-template-columns:1fr;gap:8px;margin-top:-20px}.stat{display:flex;gap:15px;align-items:center;padding:15px 18px}.stat strong{font-size:23px}.section-header{align-items:flex-start;flex-direction:column;gap:10px}.feature-grid,.term-grid,.members-grid,.form-grid,.review-grid,.dashboard-metrics{grid-template-columns:1fr}.feature{padding:20px}.term-card{min-height:160px}.cta-band{padding:28px;display:block}.cta-band .button{margin-top:17px}.search-bar{display:block}.search-bar .button{width:100%;margin-top:12px}.page-heading{padding:32px 0}.content-area{padding:28px 0 60px}.panel,.detail-card{padding:22px}.role-edit-row{grid-template-columns:1fr 35px}.role-edit-row select{grid-column:1 / -1}.role-edit-row input{grid-column:1}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.auth-wrap{margin:32px auto 66px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.term-card,.member-card{transition:none}}

/* =========================================================
   KỶ YẾU CÔNG TRÌNH · THIẾT KẾ XANH DƯƠNG SÁNG
   Typographic system: Vietnamese-compatible native UI fonts,
   no remote font dependency (usable offline / intranet).
   ========================================================= */
:root {
  --navy: #1269bb;
  --navy2: #0f80d8;
  --navydeep: #0b5daf;
  --blue: #1285e3;
  --blue-lt: #43b4ef;
  --gold: #d6a44a;
  --goldlite: #ffdb94;
  --ink: #173454;
  --muted: #607891;
  --line: #dbeaf5;
  --bg: #f4faff;
  --pale: #eaf6ff;
  --radius: 20px;
  --shadow: 0 16px 38px rgba(20,112,193,.085);
  --font-ui: "Segoe UI Variable Text", "Be Vietnam Pro", "Segoe UI", Arial, sans-serif;
  --font-display: "Segoe UI Variable Display", "Aptos Display", "Segoe UI", Arial, sans-serif;
}
html{scroll-padding-top:90px}
body{font-family:var(--font-ui);background:var(--bg);color:var(--ink);font-size:15px;line-height:1.75;letter-spacing:-.005em}
h1,h2,h3,.brand-wordmark strong,.stat strong{font-family:var(--font-display);letter-spacing:-.035em}
h1,h2{font-weight:780}
h3{font-weight:730}
button,input,textarea,select{font-family:var(--font-ui)}
:focus-visible{outline:3px solid #f9bd57;outline-offset:3px}
a:focus-visible{border-radius:5px}
.container{width:min(1210px,calc(100% - 56px))}
.site-header{background:#fff;border-bottom:1px solid #d4e8f6;box-shadow:0 2px 17px rgba(31,113,185,.06);position:sticky;top:0}
.header-inner{min-height:83px;gap:26px}
.brand{color:#165b9b;gap:12px}
.brand img{width:188px;height:188px;filter:drop-shadow(0 8px 18px rgba(30,125,201,.16))}
.brand-wordmark strong{font-size:18px;font-weight:830;letter-spacing:.015em;color:#164b82}
.brand-wordmark em{color:#1682d3}
.brand-wordmark small{color:#7b94aa;font-size:9px;letter-spacing:.12em;font-weight:750}
.main-nav{gap:8px}
.nav-link{font-size:13px;color:#426383;font-weight:730;position:relative;padding:10px 13px;border-radius:10px;transition:background .15s,color .15s}
.nav-link:hover,.nav-link.is-active{color:#0b6bc5;background:#edf7ff}
.nav-user{color:#294b6b;padding-left:6px}
.user-dot{background:#dcefff;color:#1265b3}
.nav-user .tiny-link{color:#1379c9}
.mobile-toggle{color:#1468b1;background:#eff7ff;border:1px solid #d7eafa;border-radius:11px;width:44px;height:43px}
.button{border-radius:12px;font-size:13px;letter-spacing:0;font-weight:740;min-height:43px}
.button-primary{background:linear-gradient(125deg,#157cd3,#0c6dbb);box-shadow:0 5px 13px rgba(13,109,187,.13)}
.button-primary:hover{background:linear-gradient(125deg,#0f6cbe,#075eab)}
.button-outline-light{background:#eff7ff;color:#116dc0;border-color:#cce6fa}
.button-outline-light:hover{background:#dcefff}
.button-gold{background:#fff2cb;color:#124f8c;box-shadow:0 6px 20px rgba(4,60,103,.09)}
.button-gold:hover{background:#ffe3a6}
.button-ghost{border-color:rgba(255,255,255,.65);color:#fff;background:rgba(255,255,255,.08)}
.button-secondary{color:#115fa7;border-color:#d4e7f7;background:#f9fcff}
.button-secondary:hover{background:#eef7fe}
.tiny-link{font-weight:730}
.demo-banner{background:#fff9e8;color:#866324;border-color:#f6e3a6;font-size:12px;line-height:1.5}
.hero{background:linear-gradient(120deg,#1675ce 0%,#118bdd 54%,#48b7ed 100%);min-height:560px}
.hero:before{top:-390px;right:-100px;width:850px;height:850px;border:1px solid rgba(255,255,255,.20);box-shadow:0 0 0 75px rgba(255,255,255,.025),0 0 0 150px rgba(255,255,255,.026)}
.hero:after{right:0;width:46%;height:75%;opacity:.35;background:repeating-linear-gradient(90deg,transparent 0 45px,rgba(255,255,255,.07) 46px 47px)}
.hero-content{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);min-height:560px;padding-top:62px;padding-bottom:86px;gap:20px}
.hero-copy{max-width:700px}
.hero .eyebrow{color:#f8e9b6;margin-bottom:21px;font-size:11px;letter-spacing:.14em;font-weight:800}
.hero h1{font-size:clamp(43px,5.3vw,70px);font-weight:820;line-height:1.13;letter-spacing:-.058em;margin-bottom:20px;text-shadow:0 3px 15px rgba(0,57,100,.12)}
.hero h1 span{color:#fff0c1}
.hero p{color:#f1faff;font-size:16px;line-height:1.85;max-width:600px;margin-bottom:26px}
.hero-actions{gap:11px;margin-top:22px}
.hero-search{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.25);border-radius:17px;padding:12px 13px 13px;box-shadow:0 8px 26px rgba(0,65,122,.09);max-width:606px}
.hero-search>label{display:block;color:#e6f5ff;font-size:10px;font-weight:800;letter-spacing:.135em;margin:0 2px 7px}
.hero-search-control{display:flex;align-items:center;gap:9px;background:#fff;border-radius:11px;padding:5px 5px 5px 13px;min-height:51px}
.hero-search-control>span{font-size:25px;color:#56a0d5;line-height:1}
.hero-search-control input{flex:1;border:0;min-width:0;outline:0;padding:9px 0;font-size:13px;color:#214f7b;background:transparent}
.hero-search-control input:focus{box-shadow:none}
.hero-search-control input::placeholder{color:#8fa8bb}
.hero-search-control button{border:0;background:#0c71c5;color:#fff;font-size:12px;font-weight:760;border-radius:9px;padding:11px 17px;white-space:nowrap}
.hero-search-control button:hover{background:#065aa3}
.hero-visual{position:relative;min-height:390px;isolation:isolate}
.hero-deco-ring{position:absolute;width:420px;height:420px;max-width:105%;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:radial-gradient(circle,rgba(255,255,255,.11) 0%,rgba(255,255,255,.05) 57%,transparent 60%);box-shadow:0 0 0 25px rgba(255,255,255,.03),0 0 0 75px rgba(255,255,255,.025)}
.anniversary{z-index:1;width:min(370px,100%)}
.anniversary:before{border:1px solid rgba(255,242,192,.60)}
.anniversary:after{border:1px dashed rgba(255,255,255,.31)}
.anniversary-inner strong{font-family:var(--font-display);font-weight:800;letter-spacing:-.08em;color:#fff8e3;font-size:clamp(115px,12vw,166px)}
.anniversary-inner span{font-family:var(--font-ui);font-weight:800;font-size:26px;letter-spacing:.25em;color:#fff}
.anniversary-inner small{color:#f8faff;font-size:10px;font-weight:750;letter-spacing:.15em}
.laurel{color:#ffe1a0}
.stats{margin-top:-52px;gap:17px}
.stat{border:1px solid #e2eef8;border-radius:18px;padding:28px 34px;background:#fff;box-shadow:0 10px 34px rgba(13,89,155,.09);position:relative;overflow:hidden}
.stat:before{content:"";position:absolute;left:0;top:0;width:5px;height:100%;background:linear-gradient(180deg,#1e99e4,#91d9f6)}
.stat strong{font-weight:820;color:#126fbe;letter-spacing:-.055em;font-size:39px}
.stat span{color:#6887a2;font-size:13px;font-weight:600}
.section{padding:77px 0}
.section-white{background:#fff}
.section-header h2{color:#164b7a;line-height:1.25}
.section-header p{color:#738ca4;max-width:610px}
.eyebrow{color:#1679c4;font-size:10px;font-weight:850;letter-spacing:.18em}
.text-link{color:#1178c9;font-weight:760}
.feature-grid{gap:19px}
.feature,.term-card,.member-card{border-color:#deedf7;box-shadow:0 8px 25px rgba(14,90,153,.035);border-radius:17px}
.feature{padding:28px;transition:transform .2s,box-shadow .2s,border-color .2s}
.feature:hover,.member-card:hover,.term-card:hover{border-color:#98cdf3;box-shadow:0 12px 33px rgba(18,114,187,.11);transform:translateY(-3px)}
.feature-icon{width:56px;height:56px;color:#1381d5;font-size:27px;border-radius:15px;background:linear-gradient(140deg,#e4f3ff,#f2fbff)}
.feature h3{color:#1c517e;font-size:19px}
.feature p{font-size:13px;line-height:1.7;color:#7690a7}
.term-card{padding:28px;min-height:205px;background:linear-gradient(140deg,#fff 0%,#f3faff 100%)}
.term-card:before{content:"";position:absolute;right:22px;top:25px;width:33px;height:33px;border-radius:50%;background:#e4f3ff}
.term-number{color:#338dce;font-size:10px;letter-spacing:.14em}
.term-card strong{color:#1a659f;font-size:28px;font-weight:790;letter-spacing:-.035em}
.term-foot{color:#7290a9}
.term-foot b{color:#1686d4}
.member-card{background:#fff;padding:19px;min-height:125px;align-items:center}
.member-name{font-size:15px;font-weight:800;color:#224f78}
.member-sub{font-size:12px;color:#8194a7}
.member-card .card-arrow{color:#4ca5dd;font-size:17px}
.portrait{border-radius:13px}
.portrait-fallback{background:linear-gradient(140deg,#d2efff,#a7d7f6);color:#1366ae;font-weight:800}
.role-tag{color:#9a6b19;background:#fff5df}
.cta-band{background:linear-gradient(105deg,#176fc4,#1f99e6 75%,#63c1ec);border-radius:23px;padding:43px 45px;box-shadow:0 14px 32px rgba(30,126,201,.13)}
.cta-band .eyebrow{color:#fff0b9}
.cta-band h2{color:#fff;font-size:30px}
.cta-band p{color:#e4f4ff}
.page-heading{background:linear-gradient(110deg,#e3f3ff,#f5fbff 65%,#e5f5ff);border-bottom:1px solid #d4e9f8;padding:50px 0 51px}
.page-heading h1{color:#175991;font-size:clamp(34px,4vw,49px);font-weight:790}
.page-heading p{color:#6989a7}
.breadcrumbs{color:#86a1b9}
.breadcrumbs a:hover{color:#0b79c9}
.content-area{padding:47px 0 90px}
.search-bar,.panel,.detail-card,.table-wrap,.sidebar{border-color:#d9eaf7;border-radius:17px;box-shadow:0 7px 26px rgba(30,108,164,.04)}
.search-bar{padding:23px}
.form-field label{font-size:13px;color:#235781;font-weight:750}
.form-field input,.form-field textarea,.form-field select,.role-edit-row select,.role-edit-row input{border-color:#cfe3f3;border-radius:10px;background:#fff;color:#214463}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus,.role-edit-row select:focus,.role-edit-row input:focus{border-color:#1c90dd;box-shadow:0 0 0 3px rgba(24,142,217,.12)}
.field-hint{font-size:12px;color:#8098ad}
.detail-card,.panel{padding:29px}
.profile-sidebar h2{color:#195a91}
.profile-facts{border-color:#e1eef8}
.timeline{border-color:#b9e0f9}
.timeline-item:before{background:#268dd2;border-color:#fff;box-shadow:0 0 0 1px #b8e0f6}
.timeline-item strong{color:#165c9a}
.auth-wrap .panel h1,.small-title{color:#125e9d}
.info-box{background:#edf8ff;border-color:#c7e7f9;color:#255b84}
.empty-state{border-color:#cde6f8}
.empty-icon{color:#4da7e1}
.sidebar{padding:17px}
.sidebar a{color:#446f92;border-radius:10px;font-weight:700}
.sidebar a:hover,.sidebar a.on{background:#e4f3ff;color:#0f76c6}
.metric{border-color:#d9eaf6;border-radius:15px;background:linear-gradient(125deg,#fff,#f6fbff)}
.metric strong{color:#187bc9}
.table-wrap th{background:#edf7ff;color:#5781a4;font-size:11px}
th,td{border-bottom-color:#e8f2f9}
.table-action{color:#0e77bf}
.history-entry{background:#fff;border:1px solid #d8eaf6;border-radius:14px;margin:0 0 13px;padding:0 20px;box-shadow:0 6px 20px rgba(19,89,146,.04)}
.history-entry summary{display:flex;align-items:center;gap:14px;flex-wrap:wrap;list-style:none;cursor:pointer;padding:20px 0}
.history-entry summary::-webkit-details-marker{display:none}
.history-entry-name{color:#194f7e;font-weight:800;min-width:135px}
.history-type{background:#e8f5ff;color:#1b72b0;border-radius:99px;padding:3px 11px;font-size:12px;font-weight:750}
.history-date{color:#748ba0;font-size:12px}
.history-expand{color:#147fcd;font-size:12px;font-weight:750;margin-left:auto}
.history-entry>.small{margin-top:0}
.history-entry .review-grid{margin-bottom:20px}
.history-entry .panel{background:#f8fcff;padding:21px}
.history-entry .panel h3{font-size:16px}
.history-field{padding:7px 0;display:grid;grid-template-columns:148px minmax(0,1fr);gap:14px;border-bottom:1px solid #e5f0f8;font-size:12px;overflow-wrap:anywhere}
.history-field strong{color:#315f87}
.history-field span{color:#51738f}
.footer{background:linear-gradient(125deg,#0e5799,#0b4481);color:#f8fcff;padding-top:62px}
.footer-title{font-size:20px;letter-spacing:.02em}
.footer-title span{color:#ffdc8b}
.footer p,.footer-grid a{color:#c7e5f8;font-size:12px}
.footer-grid strong{color:#fff}
.footer-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.18);font-size:12px;margin-top:42px;padding:22px 0;color:#c3e2f4}
.footer-bottom strong{color:#fff;font-weight:700}
@media(max-width:1050px){
  .brand-wordmark strong{font-size:16px}
  .main-nav{gap:3px}
  .nav-link{padding:8px 9px;font-size:12px}
  .hero h1{font-size:clamp(38px,5vw,58px)}
}
@media(max-width:800px){
  .container{width:min(100% - 36px,1210px)}
  .site-header{position:relative}
  .main-nav{top:72px;background:#fff;padding:14px 22px 25px;border-top:1px solid #e7f1f8;box-shadow:0 20px 30px rgba(26,94,148,.10)}
  .main-nav .nav-link{border-color:#edf3f9;color:#3c6184;font-size:14px;padding:12px}
  .main-nav .nav-link:hover,.main-nav .nav-link.is-active{color:#0b74c2}
  .main-nav .button{align-self:flex-start}
  .nav-user{color:#235f96}
  .hero{min-height:auto}
  .hero-content{grid-template-columns:1fr;padding-top:67px;padding-bottom:83px;min-height:0}
  .hero-copy{max-width:100%}
  .hero h1{font-size:clamp(42px,8vw,61px)}
  .hero-visual{display:none}
  .stats{grid-template-columns:repeat(3,1fr);margin-top:-40px}
  .stat{padding:22px}
  .stat strong{font-size:30px}
  .footer-grid{gap:28px}
}
@media(max-width:560px){
  body{font-size:14px}
  .container{width:calc(100% - 30px)}
  .brand{gap:9px}
  .brand img{width:155px;height:155px}
  .brand-wordmark strong{font-size:14px}
  .brand-wordmark small{letter-spacing:.04em;font-size:8px}
  .header-inner{min-height:69px}
  .main-nav{top:69px}
  .hero-content{padding-top:53px;padding-bottom:70px;min-height:0}
  .hero h1{font-size:clamp(39px,10vw,52px);line-height:1.14}
  .hero p{font-size:14px;line-height:1.8}
  .hero-search{padding:9px;max-width:100%}
  .hero-search-control{gap:4px;padding-left:9px}
  .hero-search-control input{font-size:12px}
  .hero-search-control button{padding:11px 11px;font-size:11px}
  .hero-actions{flex-direction:column}
  .hero-actions .button{width:100%}
  .stats{grid-template-columns:1fr;gap:8px;margin-top:-25px}
  .stat{padding:14px 21px;min-height:72px}
  .stat strong{font-size:26px;min-width:57px}
  .stat span{font-size:12px}
  .section{padding:55px 0}
  .section-header h2{font-size:27px}
  .feature{padding:24px}
  .term-card{min-height:170px}
  .term-card strong{font-size:26px}
  .member-card{min-height:100px}
  .cta-band{padding:29px 25px}
  .cta-band h2{font-size:25px}
  .page-heading{padding:32px 0 38px}
  .page-heading h1{font-size:34px}
  .search-bar{padding:18px}
  .form-field{margin-bottom:15px}
  .panel,.detail-card{padding:22px}
  .history-field{grid-template-columns:1fr;gap:2px}
  .history-entry summary{gap:7px}
  .history-expand{width:100%;margin-left:0}
  .footer-bottom{flex-direction:column;gap:6px}
}
@media(prefers-reduced-motion:reduce){.feature{transition:none}}

/* KỶ YẾU TƯƠNG TÁC · MOBILE BOOK: desktop giữ giao diện tra cứu truyền thống */
.mobile-book{display:none}
@media(max-width:767px){
  html.book-enhanced .desktop-story{display:none}
  html.book-enhanced .mobile-book{display:block}
  html.book-enhanced body:has(.mobile-book){background:#e9f5ff}
  html.book-enhanced body:has(.mobile-book) .footer{display:none}
  html.book-enhanced body:has(.mobile-book) .site-header{box-shadow:0 2px 10px rgba(12,112,194,.06)}
  .mobile-book{width:min(100%,540px);margin:0 auto;padding:13px 15px 17px;color:#163e64}
  .book-edition{display:flex;align-items:center;justify-content:center;gap:9px;text-align:center;color:#3979ac;letter-spacing:.115em;font-weight:800;font-size:9px;min-height:29px}
  .book-edition-line{height:1px;background:linear-gradient(90deg,transparent,#9dcced);width:36px}
  .book-edition-line:last-child{transform:rotate(180deg)}
  .book-stage{position:relative;margin:7px auto 0;height:clamp(400px,calc(100dvh - 219px),790px);width:100%;max-width:510px;perspective:1900px;transform-style:preserve-3d;border-radius:5px 20px 20px 5px;isolation:isolate;box-shadow:0 15px 28px rgba(9,83,147,.23),-7px 6px 0 rgba(20,112,194,.18);background:#f5faff;touch-action:pan-y;user-select:none;-webkit-user-select:none;overflow:hidden}
  .book-stage::before{content:"";position:absolute;top:0;bottom:0;left:0;width:12px;background:linear-gradient(90deg,#1c75bd,#91c7e5,transparent);z-index:40;pointer-events:none;opacity:.7}
  .book-leaf{position:absolute;inset:0;z-index:1;background:#fff;transform-origin:0 50%;transform:rotateY(0deg);backface-visibility:hidden;-webkit-backface-visibility:hidden;transition:transform .72s cubic-bezier(.2,.72,.15,1);border-radius:3px 18px 18px 3px;overflow:hidden;pointer-events:none}
  .book-leaf.is-turned{transform:rotateY(-179deg)}
  .book-leaf.is-current{pointer-events:auto}
  .book-leaf::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,88,151,.10),transparent 6%,transparent 93%,rgba(27,84,139,.065));z-index:3;pointer-events:none}
  .book-leaf::after{content:"";position:absolute;inset:0;border:1px solid rgba(91,156,196,.24);border-left:0;border-radius:3px 18px 18px 3px;pointer-events:none;z-index:3}
  .book-page-shell{display:flex;flex-direction:column;height:100%;background:radial-gradient(circle at 105% 0%,rgba(182,221,249,.15),transparent 43%),#fff;position:relative}
  .book-page-inner{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:clamp(24px,5vh,45px) clamp(23px,7vw,42px) 24px;scrollbar-width:thin;scrollbar-color:#c8e3f3 transparent;user-select:text;-webkit-user-select:text}
  .book-paper-corner{position:absolute;bottom:0;right:0;border-bottom:24px solid #e7f3fb;border-left:24px solid transparent;z-index:4;pointer-events:none;filter:drop-shadow(-2px -2px 2px rgba(20,105,174,.11))}
  .book-page-kicker{font-size:9px;letter-spacing:.17em;font-weight:850;color:#2886c7;text-transform:uppercase;margin-bottom:13px}
  .book-page-title{font-family:var(--font-display);font-weight:850;font-size:clamp(27px,8vw,36px);line-height:1.12;letter-spacing:-.047em;color:#1265ae;margin:0 0 18px}
  .book-page-content{font-size:13px;line-height:1.75;color:#416687}
  .book-page-content p{font-size:13px;line-height:1.78;color:#52718f}
  .book-page-mark{flex:0 0 auto;border-top:1px solid #e3eff8;margin:0 27px;padding:10px 0 12px;display:flex;justify-content:space-between;gap:10px;font-size:8px;letter-spacing:.055em;color:#8aa9be;font-weight:700}
  .book-leaf-cover .book-page-shell{background:radial-gradient(circle at 70% 24%,rgba(166,226,255,.45),transparent 43%),linear-gradient(146deg,#0879cd 5%,#1e9ee6 57%,#5dc6ed 100%)}
  .book-leaf-cover .book-page-kicker,.book-leaf-cover .book-page-mark{color:#e2f5ff}
  .book-leaf-cover .book-page-mark{border-color:rgba(255,255,255,.28)}
  .book-leaf-cover .book-page-title{color:white;font-size:clamp(29px,8.2vw,39px);text-shadow:0 3px 10px rgba(10,80,139,.1)}
  .book-leaf-cover .book-page-content,.book-leaf-cover .book-page-content p{color:#f1faff}
  .book-leaf-cover .book-paper-corner{border-bottom-color:#d5effc}
  .book-cover-emblem{border:1px solid rgba(255,255,255,.43);width:min(58vw,224px);aspect-ratio:1;margin:7px auto 18px;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;box-shadow:0 0 0 11px rgba(255,255,255,.09),inset 0 0 38px rgba(255,255,255,.06)}
  .book-cover-emblem::before{content:"";position:absolute;inset:13px;border-radius:50%;border:1px dashed rgba(255,255,255,.6)}
  .book-cover-emblem strong{font-family:Georgia,serif;font-size:clamp(84px,23vw,115px);line-height:1;color:#ffebbb;letter-spacing:-.11em;margin-right:12px;font-weight:700}
  .book-cover-emblem>span:last-child{font-weight:800;font-size:17px;color:white;letter-spacing:.38em;margin-left:8px;line-height:1.1}
  .book-cover-ornament{position:absolute;top:15px;color:#ffe6aa;font-size:17px}
  .book-cover-quote{text-align:center;font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:clamp(17px,5vw,21px);line-height:1.45;color:white}
  .book-cover-quote em{color:#fff0bc;font-style:normal}
  .book-cover-sub{text-align:center;margin:14px 0 0;font-size:12px!important}
  .book-cover-rule{text-align:center;color:#ffe3a7;margin-top:12px;letter-spacing:9px}
  .book-lead{font-size:14px!important;line-height:1.9!important;color:#4a6c89!important;margin:0 0 18px}
  .book-leaf-cover .book-lead{color:#e9f8ff!important}
  .book-button{display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:12px;border:1px solid #b9daf1;background:#f0f8ff;color:#176baa;padding:12px 16px;font-size:12px;font-weight:800;margin-top:10px;min-height:47px}
  .book-button-primary{background:linear-gradient(110deg,#087bd0,#2d9ce1);border-color:transparent;color:white;box-shadow:0 7px 20px rgba(15,123,201,.14)}
  .book-page-actions{margin-top:18px}
  .book-search{display:flex;flex-direction:column;gap:9px;background:rgba(239,248,255,.87);padding:15px;border:1px solid #d3ebfa;border-radius:15px;margin:17px 0}
  .book-search label{color:#2f6f9f;font-weight:760;font-size:11px}
  .book-search input,.book-search select,.book-hide-form textarea{width:100%;background:white;color:#244b6c;border:1px solid #bfdff0;border-radius:9px;min-height:42px;font-size:13px;padding:9px 11px;min-width:0}
  .book-search button,.book-hide-form button{border:0;border-radius:9px;padding:11px 14px;min-height:43px;background:#137dc8;color:white;font-size:12px;font-weight:800}
  .book-numbers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:18px 0}
  .book-numbers>div{display:flex;align-items:center;flex-direction:column;border-radius:12px;border:1px solid #d4e9f6;padding:12px 4px;background:#f8fcff}
  .book-numbers strong{font-size:27px;line-height:1.15;color:#1585cc}
  .book-numbers span{font-size:10px;color:#6487a3}
  .book-quote{font:italic 16px Georgia,serif;color:#417da6;text-align:center;padding:15px 12px;border-top:1px solid #d5eaf8;border-bottom:1px solid #d5eaf8}
  .book-term,.book-person{display:flex;align-items:center;gap:11px;border:1px solid #deedf7;border-radius:13px;background:#fbfdff;padding:12px;margin:10px 0;min-height:78px;color:#19547d}
  .book-term-icon{height:34px;width:34px;border-radius:11px;display:grid;place-items:center;background:#e6f5ff;color:#1985c9;flex:0 0 auto}
  .book-term>div{display:flex;flex-direction:column;min-width:0;line-height:1.3;gap:3px;flex:1}
  .book-term small{font-size:9px;letter-spacing:.1em;color:#65a5cf;font-weight:800}
  .book-term strong{font-size:19px;color:#146aaa;line-height:1.2}
  .book-term>div span{font-size:11px;color:#759ab4}
  .book-term b,.book-person-arrow{margin-left:auto;color:#459ccc}
  .book-person-picture .portrait-small{width:48px;height:57px;border-radius:9px}
  .book-person-body{min-width:0;display:flex;flex:1;flex-direction:column;gap:1px}
  .book-person-body strong{font-size:13px;color:#26587f;line-height:1.3}
  .book-person-body small{font-size:11px;color:#7393aa;line-height:1.4}
  .book-person-role{font-size:10px;color:#a0782b}
  .book-instruction{color:#eaf8ff!important;background:rgba(255,255,255,.11);border-radius:12px;padding:14px;margin:18px 0}
  .book-chapter-mark{font-family:Georgia,serif;text-align:center;font-size:68px;color:#fff0b3;line-height:1.3;margin:16px 0}
  .book-empty{border:1px dashed #beddf1;background:#f2faff;border-radius:13px;padding:22px 15px;text-align:center;margin:20px 0}
  .book-empty>span{display:block;color:#268cca;font-size:33px}
  .book-empty strong{display:block;color:#176da7}
  .book-empty p{margin:7px 0 0}
  .book-reading-count{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);padding:11px;border-radius:11px;margin-top:16px;font-weight:750;text-align:center;color:inherit}
  .book-leaf:not(.book-leaf-cover) .book-reading-count{background:#edf8ff;border-color:#d4ebf9;color:#347aa9}
  .book-calligraphy{font:italic 26px/1.5 Georgia,serif;color:#185e95;text-align:center;padding:15px 0 28px}
  .book-tribute{border-top:1px solid #cde7f8;border-bottom:1px solid #cde7f8;text-align:center;padding:15px 0;color:#4689b9;font-size:12px}
  .book-profile-portrait{text-align:center;margin:2px auto 9px}
  .book-profile-portrait .portrait-large{margin:auto;width:117px;height:134px;box-shadow:0 8px 20px rgba(1,85,163,.19);border:3px solid rgba(255,255,255,.75);font-size:38px}
  .book-profile-name{color:#fff!important;font-size:23px;text-align:center;margin-bottom:4px}
  .book-profile-description{text-align:center!important;color:#e6f5ff!important;font-size:12px!important}
  .book-profile-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:23px}
  .book-profile-facts>div{background:rgba(255,255,255,.15);padding:10px 3px;border-radius:10px;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0}
  .book-profile-facts span{font-size:10px;color:#dfecfb}
  .book-profile-facts strong{font-size:13px;color:#fff;max-width:100%;overflow-wrap:anywhere}
  .book-role{display:flex;gap:12px;border-bottom:1px solid #e1eff8;padding:14px 0}
  .book-role>span{color:#258acb}
  .book-role>div{display:flex;flex-direction:column;gap:4px}
  .book-role strong{color:#175f97;font-size:13px}
  .book-role a{font-size:12px;color:#598aab}
  .book-memory{font-size:13px;white-space:normal;line-height:1.95;color:#416988;border-left:3px solid #b2ddfa;padding:10px 15px;background:#f8fcff;border-radius:0 10px 10px 0}
  .book-hide-form{margin-top:20px;display:flex;flex-direction:column;gap:9px;padding:15px;background:#f4faff;border:1px solid #d4e7f6;border-radius:13px}
  .book-hide-form label{font-size:12px;font-weight:770;color:#2b6b9f}
  .book-hide-form textarea{resize:vertical}
  .book-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 6px 5px}
  .book-nav-button{flex:0 0 auto;width:47px;height:47px;border-radius:50%;border:1px solid #aad7f3;display:grid;place-items:center;font-size:22px;color:#1678c8;background:#fff;box-shadow:0 3px 11px rgba(24,119,189,.08)}
  .book-nav-button:not(:disabled):active{transform:scale(.96);background:#dff1ff}
  .book-nav-button:disabled{opacity:.32;box-shadow:none;cursor:default}
  .book-progress{text-align:center;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:1px}
  .book-progress>span{font-size:11px;font-weight:750;color:#46799f;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .book-progress>strong{font-size:12px;color:#1a77b9;letter-spacing:.07em}
  .book-progress-track{background:#c5e3f7;border-radius:99px;width:100%;max-width:130px;height:4px;overflow:hidden;margin-top:3px}
  .book-progress-track span{height:100%;display:block;width:0;background:#1b94db;transition:width .3s}
  .book-swipe-tip{text-align:center;font-size:10px;color:#6a99b8;letter-spacing:.01em;margin-top:5px}
  .book-rights{text-align:center;font-size:10px;color:#4c88b4;margin-top:5px;font-weight:700}
  @media(max-height:680px){.book-stage{height:clamp(385px,calc(100dvh - 205px),600px)}.book-page-inner{padding-top:18px}.book-cover-emblem{width:140px;margin-bottom:11px}.book-cover-emblem strong{font-size:71px}.book-cover-emblem>span:last-child{font-size:13px}.book-cover-quote{font-size:17px}}
}
@media(prefers-reduced-motion:reduce){
  .book-leaf{transition:none!important}
  .book-progress-track span{transition:none!important}
}

/* Dễ đọc hơn: tiêu đề cấp 3, mô tả và ghi chú tiếng Việt. */
h3{font-size:22px;line-height:1.35;letter-spacing:-.025em}
.hero p{font-size:18px;line-height:1.8;max-width:640px}
.section-header p,.cta-band p{font-size:16px;line-height:1.8}
.feature p{font-size:15px;line-height:1.75}
.page-heading p{font-size:17px;line-height:1.75}
.stat span{font-size:15px}
.member-sub,.term-foot{font-size:14px}
.field-hint{font-size:14px;line-height:1.6;color:#5d7b95}
.form-field label{font-size:15px}
.form-field>label+.field-hint{margin-top:-2px}
.role-edit-row select[name="position"]{color:#214463;font-weight:650}
.role-edit-row select{min-width:0}
@media(max-width:767px){
  body{font-size:16px}
  h3{font-size:21px}
  .hero p{font-size:16px;line-height:1.8}
  .section-header p,.cta-band p,.page-heading p{font-size:16px}
  .feature p{font-size:15px}
  .book-page-kicker{font-size:10px;letter-spacing:.13em}
  .book-page-content,.book-page-content p{font-size:15px;line-height:1.7}
  .book-lead{font-size:16px!important;line-height:1.75!important}
  .book-cover-quote{font-size:clamp(20px,5.7vw,24px);line-height:1.4}
  .book-cover-sub{font-size:14px!important;line-height:1.6}
  .book-search label,.book-hide-form label{font-size:13px}
  .book-search input,.book-search select,.book-hide-form textarea{font-size:16px}
  .book-button,.book-search button,.book-hide-form button{font-size:14px}
  .book-term>div span,.book-person-body small{font-size:13px}
  .book-person-body strong{font-size:15px}
  .book-person-role{font-size:12px}
  .book-page-mark{font-size:9px}
  .book-swipe-tip,.book-rights{font-size:12px}
}
@media(max-width:360px){
  .book-page-inner{padding:21px 19px 18px}
  .book-page-title{font-size:clamp(26px,8vw,32px)}
  .book-cover-emblem{width:min(49vw,178px);margin-bottom:12px}
  .book-cover-emblem strong{font-size:clamp(70px,21vw,95px)}
  .book-lead{font-size:15px!important}
}

/* Hàng chức vụ trên điện thoại: tên nhiệm kỳ ở dòng đầu, chức vụ và nút xóa ở dòng sau. */
@media(max-width:560px){
  .role-edit-row{grid-template-columns:minmax(0,1fr) 40px;align-items:center;gap:9px}
  .role-edit-row select[name="term_id"]{grid-column:1/-1;grid-row:1}
  .role-edit-row select[name="position"]{grid-column:1;grid-row:2}
  .role-edit-row .remove-row{grid-column:2;grid-row:2;width:40px;min-height:44px}
}

/* TANG KICH THUOC CHU TOAN DIEN · VAN BAN, GHI CHU VA KY YEU MOBILE
   Khong anh huong co so du lieu va xu ly nghiep vu. */
body{font-size:17px;line-height:1.78}
main p,.panel p,.detail-card p,.content-area p{font-size:17px;line-height:1.8}
h3,.feature h3{font-size:23px;line-height:1.34}
.hero p{font-size:20px;line-height:1.75;max-width:655px}
.section-header p,.cta-band p{font-size:18px;line-height:1.76}
.feature p{font-size:17px;line-height:1.75}
.page-heading p{font-size:18px;line-height:1.75}
.stat span,.member-sub,.term-foot,.member-name{font-size:16px}
.term-number,.eyebrow{font-size:13px}
.term-foot b{font-size:20px}
.breadcrumbs,.filters-count,.text-link,.nav-link,.sidebar a{font-size:15px}
.button,.tiny-link{font-size:15px}
.hero-search>label,.hero-search-control input,.hero-search-control button{font-size:15px}
.form-field label,.search-bar label{font-size:16px}
.form-field input,.form-field textarea,.form-field select,.role-edit-row select,.role-edit-row input{font-size:17px;line-height:1.55;min-height:48px}
.field-hint,.small,.info-box,.notice,.error-box{font-size:15px;line-height:1.65}
.role-tag{font-size:13px}
.profile-sidebar p,.profile-facts div,.metric span{font-size:15px}
.table-wrap table{font-size:15px}
.table-wrap th{font-size:14px}
.table-action{font-size:15px}
.history-entry .panel h3{font-size:19px}
.history-type,.history-date,.history-expand,.history-field{font-size:14px}
.footer p,.footer-grid a,.footer-bottom{font-size:15px;line-height:1.7}
.brand-wordmark small{font-size:11px}
.nav-user,.tiny-link{font-size:14px}

@media(max-width:800px){
  .main-nav .nav-link{font-size:16px}
}
@media(max-width:767px){
  body{font-size:17px}
  main p,.panel p,.detail-card p,.content-area p{font-size:17px;line-height:1.78}
  h3,.feature h3{font-size:22px}
  .hero p,.section-header p,.cta-band p,.page-heading p{font-size:18px}
  .feature p{font-size:17px}
  .hero-search-control input,.hero-search-control button{font-size:15px}
  .stat span,.member-sub,.term-foot{font-size:15px}
  .book-edition{font-size:12px;letter-spacing:.08em}
  .book-page-inner{padding:clamp(20px,4vh,35px) clamp(19px,5.3vw,31px) 20px}
  .book-page-kicker{font-size:12px;line-height:1.5;letter-spacing:.11em}
  .book-page-title{font-size:clamp(28px,8vw,36px);line-height:1.16}
  .book-page-content,.book-page-content p{font-size:17px;line-height:1.69}
  .book-lead{font-size:18px!important;line-height:1.7!important}
  .book-cover-quote{font-size:clamp(21px,5.8vw,25px);line-height:1.4}
  .book-cover-sub{font-size:16px!important;line-height:1.62}
  .book-search label,.book-hide-form label{font-size:16px}
  .book-search input,.book-search select,.book-hide-form textarea{font-size:17px;line-height:1.5;min-height:46px}
  .book-button,.book-search button,.book-hide-form button{font-size:16px;line-height:1.45}
  .book-term{padding:13px}
  .book-term small{font-size:12px;letter-spacing:.06em}
  .book-term>div span,.book-person-body small{font-size:15px;line-height:1.47}
  .book-term strong{font-size:21px}
  .book-person-body strong{font-size:17px;line-height:1.4}
  .book-person-role{font-size:14px}
  .book-numbers span{font-size:13px;text-align:center}
  .book-page-mark{font-size:11px;line-height:1.45;letter-spacing:0}
  .book-swipe-tip,.book-rights{font-size:14px;line-height:1.5}
  .book-progress>span,.book-progress>strong{font-size:14px}
  .book-tribute,.book-profile-description{font-size:15px!important}
  .book-profile-facts span{font-size:13px}
  .book-profile-facts strong,.book-role strong{font-size:15px}
  .book-role a{font-size:14px}
  .book-memory{font-size:17px;line-height:1.8}
  .book-hide-form label{font-size:16px}
  .book-reading-count{font-size:15px}
  .book-profile-name{font-size:24px}
  .book-empty p{font-size:16px}
  .book-quote{font-size:18px;line-height:1.65}
  .book-leaf-cover .book-page-content p{font-size:17px}
}
@media(max-width:360px){
  .book-page-inner{padding:18px 17px 16px}
  .book-page-title{font-size:clamp(27px,8vw,32px)}
  .book-lead{font-size:17px!important}
  .book-page-content,.book-page-content p{font-size:16px}
  .book-cover-emblem{width:min(45vw,160px);margin-bottom:10px}
  .book-cover-emblem strong{font-size:clamp(65px,20vw,86px)}
  .book-page-mark{margin:0 17px}
}
@media(max-width:360px){
  .header-inner{gap:6px}
  .brand{gap:7px}
}

/* Tư liệu & nhận diện gương mặt — cùng hệ màu xanh dương của kỷ yếu */
.archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:23px;margin-bottom:34px}
.archive-card{background:#fff;border:1px solid #cbdff1;border-radius:17px;overflow:hidden;box-shadow:0 9px 24px rgba(20,94,164,.065);transition:transform .2s,box-shadow .2s;color:#173e67;text-decoration:none}
.archive-card:hover{transform:translateY(-4px);box-shadow:0 16px 32px rgba(20,94,164,.14)}
.archive-thumb{background:linear-gradient(135deg,#d8ebfd,#e9f6ff);aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden}
.archive-thumb img{width:100%;height:100%;object-fit:cover}
.archive-document-glyph{font-size:76px;color:#277fc8;line-height:1}
.archive-card-body{padding:20px}
.archive-type,.archive-detail-kicker{display:inline-block;color:#167acb;font-size:13px;letter-spacing:.035em;font-weight:800;margin-bottom:7px}
.archive-card h3{font-size:21px;line-height:1.3;margin:0 0 9px;color:#145792}
.archive-card p{font-size:16px;line-height:1.65;color:#496983;margin:0 0 14px;min-height:30px}
.archive-meta{border-top:1px solid #e1edf5;display:flex;gap:12px;justify-content:space-between;padding-top:10px;font-size:14px;color:#557795}
.archive-toolbar{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap;gap:15px;background:#f4faff;padding:20px 22px;border:1px solid #cee6fa;border-radius:14px}
.archive-toolbar form{display:flex;align-items:end;gap:13px;flex-wrap:wrap}
.archive-toolbar label,.archive-mark-form label,.archive-hide label,.archive-editor label{display:flex;flex-direction:column;gap:7px;font-size:16px;color:#2a5172;font-weight:750}
.archive-toolbar select,.archive-mark-form select,.archive-mark-form input,.archive-hide input,.archive-editor input{min-height:44px;border-radius:9px;border:1px solid #aac9dd;background:white;padding:9px 12px;font:inherit;color:#264966}
.archive-detail{max-width:1080px;margin:0 auto;padding:28px}
.archive-detail .archive-photo-wrap{margin:12px auto 24px}
.archive-photo-wrap{position:relative;max-width:100%;width:fit-content;overflow:hidden;border-radius:11px;background:#eef6ff;line-height:0}
.archive-photo-wrap>img{display:block;max-width:100%;height:auto;max-height:78vh;margin:0 auto}
.person-marker{position:absolute;transform:translate(-50%,-50%);width:35px;height:35px;min-width:35px;border:2px solid white;border-radius:50%;background:#066ec8;color:#fff;line-height:1;font-weight:850;font-size:14px;box-shadow:0 2px 9px #0a376f99;cursor:pointer;z-index:2}
.person-marker:hover,.person-marker:focus-visible{background:#f2ae40;color:#163c61;outline:2px solid white;outline-offset:2px}
.archive-person{display:flex;align-items:center;gap:12px;border-bottom:1px solid #e5edf7;padding:13px 6px;scroll-margin-top:105px;font-size:17px}
.archive-person:target,.archive-person.is-highlighted{background:#e9f4fe;border-radius:9px}
.archive-person>b{min-width:33px;color:#1680c4}
.archive-person>span{flex:1;min-width:0}.archive-person small{display:block;font-size:15px;color:#587590;font-weight:400;margin-top:3px}
.archive-person>a{font-size:15px;color:#087ac1}
.archive-people-list{padding:0;margin:10px 0 22px;list-style:none}
.archive-detail h2{font-size:25px;color:#154f89}
.archive-description{font-size:18px;line-height:1.75;color:#315672;padding:12px 0 20px}
.archive-facts{display:flex;flex-wrap:wrap;gap:20px;margin-top:10px;font-size:16px;color:#456784}
.archive-download{text-align:center;background:#edf7ff;border-radius:15px;padding:32px}
.archive-download h2{overflow-wrap:anywhere}.archive-download .archive-document-glyph{display:block}
.archive-hide{display:flex;gap:12px;align-items:end;flex-wrap:wrap;border-top:1px solid #e2ebf3;margin-top:25px;padding-top:25px}
.archive-hide label{flex:1;min-width:190px}
.archive-term-section{padding:20px 0 55px}.archive-term-empty{font-size:17px;border:1px dashed #b8d8ef;padding:25px;border-radius:14px}
.archive-term-empty a{color:#0b71b9;font-weight:800}
.archive-editor{display:grid;gap:22px}.archive-editor>.archive-photo-wrap{justify-self:center}
.archive-editor .archive-mark-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;background:#f3faff;border-radius:12px;padding:22px}
.archive-mark-form .archive-coordinate{grid-column:1/-1;font-size:16px}
.archive-mark-form button{align-self:end;justify-self:start}.archive-editor-list{font-size:16px}
.archive-editor-list button{background:#fff;border:1px solid #d1e3f2;border-radius:7px;padding:6px 10px;color:#ae3846;cursor:pointer}
.archive-editor-entry{display:flex;align-items:center;gap:13px;border-bottom:1px solid #e4edf4;padding:9px}
.archive-editor-entry strong{color:#1b669c}.archive-editor-entry span{flex:1}
.archive-review-image{width:100%;max-height:520px;object-fit:contain;background:#eaf5fc;border-radius:11px}
.archive-review-people{font-size:17px;line-height:1.8}
.book-archive-photo{width:100%;max-height:200px;object-fit:contain;border-radius:9px;margin:5px 0}
.book-archive-item{display:block;padding:11px;background:#f3faff;border:1px solid #daecfa;border-radius:12px;margin:0 0 12px;text-decoration:none;color:#215e93}
.book-archive-item strong{display:block;font-size:17px}.book-archive-item small{font-size:14px}
@media(max-width:900px){.archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-toolbar{align-items:stretch}}
@media(max-width:630px){.archive-grid{grid-template-columns:1fr;gap:15px}.archive-toolbar,.archive-toolbar form{display:flex;flex-direction:column;align-items:stretch}.archive-card h3{font-size:21px}.archive-card p{font-size:17px}.archive-detail{padding:15px}.archive-detail .archive-photo-wrap>img{max-height:65vh}.archive-editor .archive-mark-form{grid-template-columns:1fr;padding:15px}.archive-mark-form .archive-coordinate{grid-column:auto}.person-marker{width:32px;height:32px;min-width:32px}.archive-person{font-size:16px;flex-wrap:wrap}.archive-facts{flex-direction:column;gap:5px}}

@media(min-width:901px){.feature-grid:has(.feature:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}}


/* HEADER KY YEU: LOGO GAP 1,5 LAN, TEN VA KHẨU HIỆU DỄ ĐỌC */
.site-header .header-inner{min-height:104px;gap:18px}
.site-header .brand{gap:16px;min-width:0}
.site-header .brand img{width:75px;height:75px;object-fit:contain;flex:0 0 75px;filter:drop-shadow(0 3px 7px rgba(17,107,181,.10))}
.site-header .brand-wordmark{min-width:0;line-height:1.24;gap:4px}
.site-header .brand-wordmark strong{font-size:clamp(22px,1.8vw,26px);letter-spacing:0;font-weight:850;line-height:1.16}
.site-header .brand-wordmark small{font-size:14px;letter-spacing:.015em;line-height:1.38;font-weight:760;color:#426b8f}
/* Khi menu nhiều mục (kể cả quản trị), ưu tiên không để chữ va vào menu. */
@media (min-width:1121px) and (max-width:1450px){
  .site-header .header-inner{flex-wrap:wrap;justify-content:space-between;row-gap:0;padding-top:8px;padding-bottom:8px}
  .site-header .main-nav{margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
}
@media (min-width:801px) and (max-width:1120px){
  .site-header .header-inner{flex-wrap:wrap;row-gap:4px;justify-content:space-between;padding-top:9px;padding-bottom:8px}
  .site-header .main-nav{width:100%;justify-content:flex-end;flex-wrap:wrap}
  .site-header .brand-wordmark strong{font-size:25px}
}
@media (max-width:800px){
  .site-header .header-inner{min-height:94px;gap:12px;padding-top:9px;padding-bottom:9px}
  .site-header .brand{gap:12px;flex:1 1 auto;min-width:0}
  .site-header .brand img{width:63px;height:63px;flex-basis:63px}
  .site-header .brand-wordmark strong{font-size:23px;letter-spacing:-.012em}
  .site-header .brand-wordmark small{font-size:13px;letter-spacing:0}
  .site-header .mobile-toggle{flex:0 0 44px}
  .site-header .main-nav{top:100%}
}
@media (max-width:560px){
  .site-header .header-inner{min-height:88px;gap:9px}
  .site-header .brand{gap:9px}
  .site-header .brand img{width:62px;height:62px;flex-basis:62px}
  .site-header .brand-wordmark strong{font-size:19px;line-height:1.16;letter-spacing:-.02em}
  .site-header .brand-wordmark strong em{display:block}
  .site-header .brand-wordmark small{font-size:12.5px;letter-spacing:-.005em;line-height:1.22}
}
@media (max-width:360px){
  .site-header .header-inner{gap:6px}
  .site-header .brand{gap:7px}
  .site-header .brand-wordmark strong{font-size:18px}
  .site-header .brand-wordmark small{font-size:12px;line-height:1.18}
}



/* Cân đối lại logo: đúng 50% so với kích thước ảnh logo V4.4. */
.site-header .header-inner{min-height:124px;padding:10px 0;gap:18px;align-items:center}
.site-header .brand{gap:14px;align-items:center;min-width:0}
.site-header .brand img{display:block;width:93.75px;height:93.75px;flex:0 0 93.75px;max-width:none;object-fit:contain}
.site-header .brand-wordmark{min-width:0;line-height:1.24}
.site-header .brand-wordmark strong{font-size:27px;line-height:1.18}
.site-header .brand-wordmark small{font-size:16px;line-height:1.36}
@media (min-width:801px) and (max-width:1350px){
  .site-header .header-inner{flex-wrap:wrap;row-gap:0}
  .site-header .main-nav{flex:1 0 100%;justify-content:flex-end;flex-wrap:wrap;padding-bottom:8px}
}
@media (max-width:800px){
  .site-header .header-inner{min-height:112px;position:relative;padding:10px 0;gap:0}
  .site-header .brand{flex:1 1 100%;width:100%;gap:10px;padding-right:45px}
  .site-header .brand img{width:77.5px;height:77.5px;flex:0 0 77.5px}
  .site-header .brand-wordmark{flex:1 1 0;min-width:0;padding-top:0}
  .site-header .brand-wordmark strong{font-size:20px;line-height:1.14}
  .site-header .brand-wordmark strong em{display:block}
  .site-header .brand-wordmark small{font-size:12.5px;line-height:1.25;white-space:normal;max-width:none}
  .site-header .mobile-toggle{position:absolute;top:12px;right:0;display:block;width:43px;height:43px;margin:0;z-index:2;align-self:auto}
  .site-header .main-nav{top:100%}
}
@media (max-width:360px){
  .site-header .header-inner{min-height:115px}
  .site-header .brand{gap:8px}
  .site-header .brand-wordmark strong{font-size:17px}
  .site-header .brand-wordmark small{font-size:11.5px}
}


/* Ten kỷ yếu trong header: một nội dung thống nhất; giữ nguyên logo V4.5. */
.site-header .brand-wordmark .brand-title{
  display:block; color:#165b9b; font-family:var(--font-display),Inter,"Segoe UI",Arial,sans-serif;
  font-size:clamp(20px,1.9vw,25px); line-height:1.24; font-weight:820;
  letter-spacing:-.012em; text-transform:none; text-wrap:balance; overflow-wrap:break-word;
}
@media(max-width:800px){
  .site-header .brand-wordmark .brand-title{font-size:19px;line-height:1.27;letter-spacing:-.016em}
}
@media(max-width:560px){
  .site-header .brand-wordmark .brand-title{font-size:17.5px;line-height:1.29}
}
@media(max-width:360px){
  .site-header .brand-wordmark .brand-title{font-size:16px;line-height:1.29;letter-spacing:-.02em}
}


/* Tieu de dau trang tach rieng thanh hai dong co dinh. */
.site-header .brand-wordmark{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;min-width:0}
.site-header .brand-wordmark .brand-title{display:block;margin:0;color:#165b9b;font-size:clamp(21px,1.85vw,25px);line-height:1.2;font-weight:830;letter-spacing:-.015em;text-transform:none;text-wrap:pretty}
.site-header .brand-wordmark .brand-subtitle{display:block;color:#6686a5;font-size:clamp(15px,1.2vw,17px);line-height:1.25;font-weight:780;letter-spacing:.025em;white-space:normal}
@media(max-width:800px){
  .site-header .brand-wordmark{gap:5px}
  .site-header .brand-wordmark .brand-title{font-size:19px;line-height:1.2}
  .site-header .brand-wordmark .brand-subtitle{font-size:15px;line-height:1.24}
}
@media(max-width:360px){
  .site-header .brand-wordmark .brand-title{font-size:16px;line-height:1.2}
  .site-header .brand-wordmark .brand-subtitle{font-size:14px}
}
