:root{--bg:#f5f7fb;--card:#fff;--ink:#111827;--muted:#64748b;--line:#e2e8f0;--brand:#991b1b;--brand2:#d97706;--ok:#047857;--danger:#b91c1c;--shadow:0 20px 55px rgba(15,23,42,.08);--radius:22px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 20% -10%,#fff7ed 0,transparent 28%),var(--bg);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;line-height:1.5}.shell{width:min(1120px,calc(100% - 32px));margin:auto}.narrow{width:min(620px,calc(100% - 32px))}.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-bottom:1px solid rgba(226,232,240,.9)}.topbar-inner{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:12px}.brand-mark,.brand-mini>span{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#7f1d1d,#dc2626 55%,#f59e0b);color:#fff;font-weight:900;font-size:12px;box-shadow:0 8px 22px rgba(153,27,27,.25)}.brand b,.brand small{display:block}.brand small{color:var(--muted);font-size:12px;margin-top:1px}.text-link{color:var(--brand);text-decoration:none;font-weight:700}.main-space{padding:42px 0 64px}.hero{display:grid;grid-template-columns:1fr auto;gap:36px;align-items:end;margin-bottom:30px}.eyebrow,.kicker{font-size:12px;font-weight:900;letter-spacing:.13em;color:var(--brand);text-transform:uppercase}.hero h1,.admin-title h1,.record-head h1{font-size:clamp(30px,5vw,52px);line-height:1.05;margin:10px 0 14px;letter-spacing:-.035em}.hero p{font-size:18px;color:var(--muted);max-width:760px;margin:0}.hero-badge{background:#111827;color:#fff;border-radius:18px;padding:18px 22px;min-width:210px}.hero-badge b,.hero-badge span{display:block}.hero-badge b{font-size:24px}.hero-badge span{color:#cbd5e1;font-size:13px}.stepper{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 18px}.step{padding:13px 14px;background:#e9eef5;border-radius:14px;display:flex;align-items:center;gap:9px;color:#64748b;font-weight:700;font-size:14px}.step i{font-style:normal;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#cbd5e1;color:#fff}.step.active{background:#fff1f2;color:#991b1b}.step.active i,.step.done i{background:var(--brand)}.step.done{background:#ecfdf5;color:#047857}.wizard-card{background:var(--card);border:1px solid rgba(226,232,240,.9);box-shadow:var(--shadow);border-radius:var(--radius);padding:28px}.wizard-step{display:none}.wizard-step.active{display:block}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}.section-head h1,.section-head h2{margin:4px 0 0}.section-head p{margin:0;max-width:430px;color:var(--muted)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid.one{grid-template-columns:1fr}.span-2{grid-column:span 2}label{font-weight:750;font-size:14px;color:#334155}label em{color:#dc2626;font-style:normal}input,select,textarea{width:100%;margin-top:7px;border:1px solid #cbd5e1;background:#fff;border-radius:12px;padding:12px 13px;font:inherit;color:#0f172a;outline:none;transition:.18s}input:focus,select:focus,textarea:focus{border-color:#b91c1c;box-shadow:0 0 0 3px rgba(185,28,28,.1)}textarea{resize:vertical}.subpanel{margin-top:20px;background:#f8fafc;border:1px solid var(--line);border-radius:16px;padding:18px}.subpanel-title{font-weight:900;margin-bottom:14px}.switch-row{display:flex;align-items:center;gap:10px;padding-top:27px;cursor:pointer}.switch-row input{display:none}.switch{width:46px;height:26px;border-radius:99px;background:#cbd5e1;position:relative;transition:.2s}.switch:after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;left:3px;top:3px;transition:.2s;box-shadow:0 2px 5px #0002}.switch-row input:checked+.switch{background:var(--brand)}.switch-row input:checked+.switch:after{transform:translateX(20px)}.actions{display:flex;gap:12px;margin-top:26px;align-items:center}.actions.end{justify-content:flex-end}.actions.between{justify-content:space-between}.actions.center{justify-content:center}.btn{border:0;border-radius:12px;padding:12px 18px;font-weight:850;font-size:14px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:.15s}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:wait;transform:none}.btn.primary{background:linear-gradient(135deg,#7f1d1d,#b91c1c);color:#fff;box-shadow:0 9px 22px rgba(153,27,27,.2)}.btn.ghost{background:#f1f5f9;color:#334155}.btn.wide{width:100%}.mini-btn{border:0;background:#eef2f7;border-radius:9px;padding:7px 10px;font-weight:750;cursor:pointer}.signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.signature-card{border:1px solid var(--line);border-radius:16px;padding:14px;background:#f8fafc}.signature-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.signature-pad{width:100%;height:210px;display:block;background:#fff;border:1px dashed #94a3b8;border-radius:12px;touch-action:none}.signature-card small{display:block;color:var(--muted);margin-top:8px}.doc-tabs{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}.tab{border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 13px;font-weight:800;color:#475569;cursor:pointer}.tab.active{background:#fff1f2;color:#991b1b;border-color:#fecdd3}.paper-stack{display:grid;gap:18px;max-height:70vh;overflow:auto;padding:8px;background:#e2e8f0;border-radius:16px}.paper{position:relative;background:#fff;box-shadow:0 8px 24px #0f172a1f;max-width:780px;margin:auto}.paper img{display:block;width:100%;height:auto}.page-badge{position:absolute;right:10px;bottom:10px;background:#0f172acc;color:#fff;border-radius:8px;padding:5px 8px;font-size:11px}.summary-card{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden}.summary-card>div{background:#fff;padding:15px}.summary-card span,.summary-card b{display:block}.summary-card span{color:var(--muted);font-size:12px;margin-bottom:3px}.consent{margin-top:18px;display:flex;align-items:flex-start;gap:11px;background:#fff7ed;border:1px solid #fed7aa;padding:14px;border-radius:14px}.consent input{width:18px;height:18px;margin:2px 0 0;flex:0 0 auto}.success-panel{text-align:center;padding:30px 10px}.success-icon{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;background:#ecfdf5;color:#047857;font-size:36px;font-weight:900}.success-panel h2{font-size:30px;margin:0 0 8px}.success-panel p{color:var(--muted)}.code-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:560px;margin:20px auto}.code-grid>div{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:16px}.code-grid small,.code-grid strong{display:block}.code-grid small{color:var(--muted)}.code-grid strong{font-size:20px;margin-top:4px;letter-spacing:.04em}.trust-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.trust-row>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.trust-row b,.trust-row span{display:block}.trust-row span{color:var(--muted);font-size:13px;margin-top:4px}.footer{border-top:1px solid var(--line);padding:26px 0;color:#64748b;text-align:center}.hidden{display:none!important}.notice{background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;padding:12px 14px;border-radius:12px;margin:14px 0}.notice.success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.notice.danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}.muted{color:var(--muted)}.install-page{min-height:100vh;display:grid;place-items:center;padding:24px}.install-card{width:min(560px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);padding:28px}.brand-mini{display:flex;align-items:center;gap:12px;margin-bottom:20px}.brand-mini strong,.brand-mini small{display:block}.brand-mini small{color:var(--muted)}.install-card hr{border:0;border-top:1px solid var(--line);width:100%;margin:4px 0}.centered{display:block;text-align:center;margin-top:16px}.record-head,.admin-title{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.record-head h1,.admin-title h1{font-size:36px;margin:6px 0}.record-head p{margin:0;color:var(--muted)}.status{display:inline-flex;padding:7px 11px;border-radius:99px;font-size:12px;font-weight:900;white-space:nowrap}.status-pending{background:#fff7ed;color:#9a3412}.status-approved{background:#ecfdf5;color:#047857}.status-rejected{background:#fef2f2;color:#b91c1c}.record-grid{display:grid;grid-template-columns:360px 1fr;gap:18px;align-items:start}.info-list{margin:0}.info-list>div{padding:12px 0;border-bottom:1px solid var(--line)}.info-list dt{color:var(--muted);font-size:12px}.info-list dd{margin:3px 0 0;font-weight:800}.download-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:15px}.nav-inline{display:flex;gap:18px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}.stats>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}.stats b,.stats span{display:block}.stats b{font-size:30px}.stats span{color:var(--muted)}.filterbar{display:grid;grid-template-columns:1fr 190px auto;gap:10px;margin-bottom:16px}.filterbar input,.filterbar select{margin:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.04em}@media(max-width:800px){.hero{grid-template-columns:1fr}.hero-badge{display:none}.stepper{grid-template-columns:repeat(4,1fr)}.step{justify-content:center;padding:10px}.step span{display:none}.section-head{display:block}.section-head p{margin-top:8px}.form-grid,.signature-grid,.summary-card,.code-grid,.trust-row,.stats{grid-template-columns:1fr}.span-2{grid-column:auto}.switch-row{padding-top:0}.record-grid{grid-template-columns:1fr}.filterbar{grid-template-columns:1fr}.wizard-card{padding:18px}.paper-stack{max-height:64vh}.record-head{align-items:flex-start}.topbar-inner{min-height:64px}.brand small{display:none}.main-space{padding-top:26px}.hero h1{font-size:36px}.actions.between{align-items:stretch}.actions.between .btn{flex:1}.signature-pad{height:180px}}@media(max-width:480px){.shell{width:min(100% - 20px,1120px)}.wizard-card{border-radius:17px;padding:15px}.btn{padding:12px 13px}.actions{gap:8px}.record-head h1{font-size:28px}.nav-inline{gap:10px;font-size:13px}}

/* V2 · Lân Sư Rồng */
.lion-hero{display:grid;grid-template-columns:1fr 240px;gap:34px;align-items:center;margin:4px 0 28px;padding:34px;border-radius:28px;background:linear-gradient(135deg,#2b0a0a,#7f1d1d 58%,#b45309);color:#fff;box-shadow:0 24px 60px rgba(69,10,10,.2);overflow:hidden;position:relative}.lion-hero:after{content:"";position:absolute;width:250px;height:250px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-70px;top:-90px}.lion-hero .eyebrow{color:#fde68a}.lion-hero h1{font-size:clamp(34px,5vw,58px);line-height:1.03;letter-spacing:-.04em;margin:10px 0 15px}.lion-hero p{color:#fee2e2;font-size:17px;max-width:740px}.hero-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.lion-hero .btn.ghost{background:rgba(255,255,255,.13);color:#fff;border:1px solid rgba(255,255,255,.2)}.lion-emblem{width:190px;height:190px;border-radius:50%;display:grid;place-items:center;align-content:center;justify-self:end;background:radial-gradient(circle,#fef3c7,#f59e0b 54%,#7f1d1d 55%);border:10px solid rgba(255,255,255,.13);color:#7f1d1d;box-shadow:inset 0 0 0 2px #fde68a,0 20px 45px #0004}.lion-emblem b{font-size:78px;line-height:1}.lion-emblem span{font-weight:900;font-size:12px;letter-spacing:.09em;text-transform:uppercase}.feature-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}.feature-strip>div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px}.feature-strip b,.feature-strip span{display:block}.feature-strip b{color:#991b1b;font-size:18px}.feature-strip span{color:var(--muted);font-size:12px;margin-top:3px}.public-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.public-head h1{font-size:clamp(34px,5vw,54px);letter-spacing:-.04em;line-height:1.04;margin:8px 0 12px}.public-head p{margin:0;color:var(--muted);max-width:720px}.member-total{background:#111827;color:#fff;border-radius:20px;padding:18px 22px;min-width:170px}.member-total b,.member-total span{display:block}.member-total b{font-size:34px}.member-total span{font-size:12px;color:#cbd5e1}.member-filter{margin-bottom:18px}.member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.member-card{display:flex;gap:14px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:0 12px 30px rgba(15,23,42,.05)}.member-avatar{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(135deg,#7f1d1d,#dc2626 60%,#f59e0b);color:#fff;font-size:27px;font-weight:950}.member-card-body{min-width:0}.member-card h2{font-size:18px;margin:8px 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-code{font-size:12px;color:#64748b;font-weight:800}.member-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.member-meta span{background:#f8fafc;border:1px solid var(--line);border-radius:99px;padding:5px 8px;font-size:11px;color:#475569}.discipline-pill{display:inline-flex;background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;border-radius:99px;padding:4px 8px;font-size:11px;font-weight:900}.empty-state{grid-column:1/-1;text-align:center;background:#fff;border:1px dashed #cbd5e1;border-radius:18px;padding:34px;color:#64748b}.empty-state b,.empty-state span{display:block}.empty-state b{color:#334155;font-size:18px;margin-bottom:4px}.activity-layout{display:grid;grid-template-columns:1.25fr .75fr;gap:22px;align-items:start}.event-list,.announcement-list{display:grid;gap:12px}.event-card{display:flex;gap:15px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px}.event-date{width:62px;height:66px;border-radius:14px;background:#7f1d1d;color:#fff;display:grid;place-items:center;align-content:center;flex:0 0 auto}.event-date b,.event-date span{display:block;line-height:1}.event-date b{font-size:25px}.event-date span{font-size:11px;margin-top:5px}.event-card h3{margin:7px 0 4px}.event-card p{margin:3px 0;color:#475569}.announcement-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:17px}.announcement-card h3{margin:4px 0 8px}.announcement-card p{color:#475569}.announcement-card small{color:#94a3b8}.pin-label{display:inline-flex;border-radius:99px;background:#fef3c7;color:#92400e;padding:4px 8px;font-size:11px;font-weight:900}.admin-two{display:grid;grid-template-columns:390px 1fr;gap:18px;align-items:start}.grow{flex:1;min-width:0}.admin-two .event-card form,.announcement-card form{margin-top:10px}.admin-two .announcement-card+.announcement-card{margin-top:0}
@media(max-width:900px){.lion-hero{grid-template-columns:1fr}.lion-emblem{display:none}.feature-strip{grid-template-columns:1fr 1fr}.member-grid{grid-template-columns:1fr 1fr}.activity-layout,.admin-two{grid-template-columns:1fr}.public-head{align-items:flex-start}.member-total{display:none}}
@media(max-width:620px){.nav-inline{overflow:auto;max-width:62vw;white-space:nowrap}.lion-hero{padding:23px 18px;border-radius:20px}.lion-hero h1{font-size:38px}.feature-strip,.member-grid{grid-template-columns:1fr}.member-card{padding:15px}.public-head h1{font-size:37px}.activity-layout{gap:16px}.filterbar{grid-template-columns:1fr}.feature-strip{gap:8px}}

/* V3.1 hierarchy badges */
.position-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .58rem;border-radius:999px;font-size:.74rem;font-weight:800;letter-spacing:.02em;background:rgba(130,130,130,.12);border:1px solid rgba(130,130,130,.18);white-space:nowrap}.position-leader{font-weight:900}.position-deputy{font-weight:850}.position-member{font-weight:750}.member-card-top{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.member-card-top .member-code{margin-left:auto}.position-kpis{margin-bottom:1rem}
