
:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);--bg:#f4f7f5;--card:#fff;--tx:#17211c;--mu:#66756d;--pri:#14573f;--pl:#e3f1ea;--bd:#dde5e0;--am:#fdf0d2;--amt:#8a5a00;--bl:#dcecfb;--blt:#0b62a8}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--bg:#111815;--card:#1a241f;--tx:#e8efeb;--mu:#98a89f;--pri:#3fae82;--pl:#1f3a2e;--bd:#2c3a33;--am:#3d3213;--amt:#f0c25c;--bl:#17334d;--blt:#7bbcf0}}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--tx)}
button,input,select{font:inherit;color:inherit}
.app{display:flex;min-height:100vh}
aside{width:220px;background:var(--card);border-right:1px solid var(--bd);padding:16px 12px;flex-shrink:0}
.logo{font-weight:800;font-size:20px;color:#FFCC00;margin:4px 8px 18px}.logo small{display:block;font-size:10px;color:var(--mu);font-weight:500}
.nav{display:block;width:100%;text-align:left;border:0;background:none;padding:10px 12px;border-radius:8px;cursor:pointer;margin-bottom:4px;font-weight:600}
.nav.on{background:var(--pri);color:#fff}
.cpi{display:inline-flex;vertical-align:middle;cursor:pointer;opacity:.35;margin-left:4px;font-weight:400;font-size:12px;user-select:none}.cpi:hover{opacity:1;color:var(--pri)}
main{flex:1;min-width:0;padding:20px}
.top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}
h1{margin:0;font-size:24px}.sub{color:var(--mu)}
.btn{border:1px solid var(--pri);background:var(--card);color:var(--pri);padding:8px 14px;border-radius:8px;cursor:pointer;font-weight:600}
.btn.p{background:var(--pri);color:#fff}.btn:disabled{opacity:.4;cursor:not-allowed}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.stat,.card{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:14px}
.stat b{display:block;font-size:28px;color:var(--pri)}
.tabs{display:flex;gap:18px;border-bottom:1px solid var(--bd);margin-bottom:12px;overflow-x:auto}
.tab{border:0;background:none;padding:8px 2px;cursor:pointer;color:var(--mu);white-space:nowrap}.tab.on{color:var(--pri);font-weight:700;border-bottom:2px solid var(--pri)}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
input,select{padding:8px 10px;border:1px solid var(--bd);border-radius:8px;background:var(--card)}
.filters input{flex:1;min-width:180px}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;min-width:720px}
th{background:var(--pl);text-align:left;padding:9px 10px;font-size:12px}td{padding:9px 10px;border-bottom:1px solid var(--bd)}
tr.r{cursor:pointer}tr.r:hover{background:var(--pl)}
.badge{padding:3px 9px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap}
.b1{background:var(--pl);color:var(--pri)}.b2{background:var(--am);color:var(--amt)}.b3{background:var(--bl);color:var(--blt)}.b4{background:#e4e6e5;color:#555}.ph{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 14px}.pi{width:110px;text-align:center;font-size:12px}.pi img{width:110px;height:80px;object-fit:cover;border-radius:8px;border:1px solid var(--bd);cursor:zoom-in}.up{cursor:pointer;align-self:center}input[type=checkbox]{padding:0;width:18px;height:18px}@media (prefers-color-scheme:dark){.b4{background:#38403b;color:#c9d1cc}}
.pg{display:flex;gap:6px;justify-content:space-between;align-items:center;margin-top:12px;flex-wrap:wrap}
.pg button{padding:5px 10px;border:1px solid var(--bd);background:var(--card);border-radius:6px;cursor:pointer}.pg .on{background:var(--pri);color:#fff}
.steps{display:flex;margin:14px 0}.st{flex:1;text-align:center;position:relative;font-size:13px}
.st i{display:block;width:22px;height:22px;border-radius:50%;margin:0 auto 4px;background:var(--bd);position:relative;z-index:1}
.st.d i{background:var(--pri)}.st.c i{background:var(--card);border:6px solid var(--pri)}
.st:not(:last-child)::after{content:"";position:absolute;top:11px;left:50%;width:100%;height:2px;background:var(--bd)}.st.d:not(:last-child)::after{background:var(--pri)}
.bar{height:8px;background:var(--bd);border-radius:9px;overflow:hidden;min-width:90px}.bar span{display:block;height:100%;background:var(--pri)}
.warn{background:var(--am);color:var(--amt);padding:10px 14px;border-radius:8px;margin-bottom:12px;font-weight:600}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
label{display:block;font-size:12px;color:var(--mu);margin-bottom:3px}.form input,.form select{width:100%}
.modal{position:fixed;inset:0;background:#0008;display:flex;align-items:center;justify-content:center;padding:16px;z-index:20}
.modal .card{width:min(520px,100%)}
.login{max-width:380px;margin:12vh auto;padding:0 16px}
.role{display:block;width:100%;text-align:left;margin-top:10px;padding:12px;border:1px solid var(--bd);border-radius:10px;background:var(--card);cursor:pointer}.role:hover{border-color:var(--pri)}
.note{font-size:12px;color:var(--mu);margin-top:14px}
@media(max-width:760px){.app{flex-direction:column}aside{width:100%;display:flex;gap:4px;overflow-x:auto;padding:8px}.logo{display:none}.nav{width:auto;white-space:nowrap;margin:0}}

/* ===== Giao diện phong cách Nhật Bản (bật/tắt trong thanh bên) ===== */
body.jp{--bg:#f7f1e6;--card:#fffdf8;--bd:#e4d8c3;--pl:#eef3e6;--th:#f1e8d6;--tx:#2a2420;--mu:#7a6f62;--pri:#1f5a45;--ac:#c8372d;--am:#fbefd0}
@media (prefers-color-scheme:dark){body.jp{--bg:#16130f;--card:#1f1b16;--bd:#3a3329;--pl:#26301f;--th:#2a251d;--tx:#efe7d8;--mu:#a99d8a;--pri:#52b78f;--ac:#e0584d}}
body.jp h1,body.jp h2,body.jp h3,.jpt b{font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP","Source Han Serif",Georgia,serif;letter-spacing:.02em}
body.jp h1::after{content:"";display:block;width:56px;height:3px;border-radius:2px;margin-top:6px;background:linear-gradient(90deg,var(--ac) 0 60%,#FFCC00 60%)}
body.jp aside{background:#173f33 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20' viewBox='0 0 40 20'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.07'%3E%3Ccircle cx='20' cy='20' r='6'/%3E%3Ccircle cx='20' cy='20' r='12'/%3E%3Ccircle cx='20' cy='20' r='18'/%3E%3Ccircle cx='0' cy='10' r='6'/%3E%3Ccircle cx='0' cy='10' r='12'/%3E%3Ccircle cx='40' cy='10' r='6'/%3E%3Ccircle cx='40' cy='10' r='12'/%3E%3C/g%3E%3C/svg%3E");border-right:0;color:#f3ead8}
body.jp .logo small{color:#cbbf9f}
body.jp .nav{color:#f3ead8}body.jp .nav:hover{background:rgba(255,255,255,.08)}
body.jp .nav.on{background:rgba(255,255,255,.13);box-shadow:inset 3px 0 0 var(--ac);color:#fff;border-radius:6px}
body.jp aside .note{color:#d9ceb7}body.jp aside a{color:#ffd966}
body.jp .card,body.jp .stat{border-radius:10px;box-shadow:0 1px 0 rgba(120,90,40,.07),0 6px 18px -12px rgba(120,90,40,.25)}
body.jp .stat{border-top:3px solid var(--ac)}
body.jp th{background:var(--th);color:var(--mu);letter-spacing:.02em}
body.jp .tab.on{border-bottom-color:var(--ac)}
body.jp .btn{border-radius:6px}body.jp .btn.p:hover{filter:brightness(1.12)}
body.jp tr.r:hover{background:var(--th)}
body.jp .warn{border-left:4px solid var(--ac)}
body.jp .role:hover{border-color:var(--ac)}
.jpb{display:none}
body.jp .jpb{display:block;position:relative;height:120px;border-radius:12px;overflow:hidden;margin-bottom:18px;border:1px solid var(--bd)}
.jpb>svg{position:absolute;inset:0;width:100%;height:100%}body.jp .jpb.big+.login .logo{display:none}
.jpt{position:relative;height:100%;padding:34px 24px;color:#3a2c22;background:linear-gradient(90deg,rgba(253,243,230,.95) 0,rgba(253,243,230,.85) 45%,rgba(253,243,230,0) 75%)}.jpt b{display:block;font-size:22px}.jpt span{font-size:13px;color:#6b5646;letter-spacing:.12em}
.jpe{position:absolute;inset:0;padding-bottom:30px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#3a2c22}
.jpe b{font-size:26px;margin-top:6px}.jpe span{font-size:13px;letter-spacing:.14em;color:#6b5646}
body.jp .jpb.big{height:230px;border-radius:0;border:0;margin:0}
body.jp .jpb.big+.login{margin-top:-30px;position:relative}
@media(max-width:760px){body.jp .jpb{height:90px}.jpt{padding:14px 16px}.jpt b{font-size:18px}}

/* ===== Giao diện xanh (mẫu Sankyu): thanh trên cùng, bộ lọc dạng thẻ, bảng gọn ===== */
body.bl{--bg:#f1f4fa;--card:#fff;--pri:#1e3a8a;--pl:#e8eefc;--bd:#e2e7f1;--th:#eaf0fc;--tx:#1f2a44;--mu:#6b778f;--ac:#f59e0b}
@media (prefers-color-scheme:dark){body.bl{--bg:#0f1524;--card:#18203a;--bd:#2a3556;--pl:#1f2a4d;--th:#202c52;--tx:#e6ebf7;--mu:#98a4c4;--pri:#7aa2ff}}
.shell{min-height:100vh;display:flex;flex-direction:column}.shell .app{min-height:0;flex:1}
.tb{display:flex;align-items:center;gap:14px;padding:8px 18px;background:var(--card);border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:15}
.tb .ttl{flex:1;min-width:0}.tb .ttl b{display:block;font-size:16px;color:var(--pri);letter-spacing:.02em;text-transform:uppercase}.tb .ttl span{font-size:11px;color:#e8710a;letter-spacing:.08em}
.tb .gs{position:relative;width:min(280px,30vw)}.tb .gs input{width:100%;padding:7px 10px 7px 30px;border-radius:99px;background:var(--th);border:1px solid var(--bd)}.tb .gs svg{position:absolute;left:10px;top:9px;color:var(--mu)}
.ib{position:relative;width:34px;height:34px;border-radius:10px;border:1px solid var(--bd);background:var(--card);color:var(--pri);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.nbd{display:inline-block;min-width:18px;height:18px;line-height:18px;border-radius:99px;background:#e11d48;color:#fff;font:700 11px/18px system-ui;text-align:center;font-style:normal;padding:0 5px;margin-left:6px}.ib:hover{background:var(--pl)}.ib i{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;border-radius:99px;background:#e11d48;color:#fff;font:700 10px/16px system-ui;text-align:center;font-style:normal;padding:0 3px}
.tb .tbdt{font-size:13px;color:var(--mu);white-space:nowrap;width:auto;height:auto;border:0;display:inline-block;border-radius:0}.tb .lgb2{font-size:12px;font-weight:700;border:1px solid var(--bd);border-radius:99px;padding:4px 10px;color:var(--pri);white-space:nowrap;display:inline-block;position:static;width:auto;height:auto;flex:0 0 auto}.tb>*{flex-shrink:0}.tb>.ttl{flex:1 1 0;min-width:0}.tb .ttl b,.tb .ttl span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb .us{white-space:nowrap}.tb .us div{min-width:0}.tb .gs{flex:0 1 auto;min-width:140px}@media(max-width:1180px){.tb .tbdt{display:none}}@media(max-width:980px){.tb .gs{display:none}}
.tb .us{display:flex;align-items:center;gap:8px}.tb .av{width:32px;height:32px;border-radius:50%;background:var(--pl);color:var(--pri);display:flex;align-items:center;justify-content:center;font-weight:700}
.tb .us small{display:block;font-size:11px;color:var(--mu);line-height:1.1}.tb .us b{font-size:13px;line-height:1.1}
.bell{position:absolute;right:0;top:42px;width:300px;background:var(--card);border:1px solid #f0a3a3;border-radius:12px;box-shadow:0 10px 30px -10px rgba(0,0,0,.3);z-index:30;overflow:hidden}
.bell h5{margin:0;padding:10px 14px;color:#d32f2f;font-size:13px;display:flex;gap:6px;align-items:center}.bell div.bi{padding:10px 14px;border-top:1px solid var(--bd);cursor:pointer;font-size:13px;display:flex;justify-content:space-between;gap:8px}.bell div.bi:hover{background:var(--pl)}
body.bl aside{background:var(--card);padding:14px 10px;width:230px}
body.bl .logo{background:#1e3a8a;border-radius:10px;padding:10px 12px;margin:0 0 14px}body.bl .logo small{color:#c7d2f5}
.gh{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;background:none;padding:10px 12px;margin-top:6px;color:var(--pri);font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:12px;cursor:pointer}
body.bl .nav{padding:8px 12px 8px 22px;font-weight:600;color:var(--tx);font-size:13px}body.bl .nav:hover{background:var(--pl)}body.bl .nav.on{background:var(--pri);color:#fff}
body.bl main{padding:16px 18px}body.bl h1{font-size:21px}
body.bl .card,body.bl .stat{border-radius:12px}body.bl .stat{padding:10px 14px}body.bl .stat b{font-size:22px}
body.bl th{background:var(--th);color:var(--pri);text-align:center;font-weight:700;font-size:13px;padding:9px 8px;position:sticky;top:0}
body.bl td{padding:7px 8px;font-size:13px;vertical-align:middle}body.bl tr.r:hover{background:var(--pl)}
body.bl td:first-child b,body.bl td b.mh{color:var(--pri)}
.fgrid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-bottom:12px}
.fcard{background:var(--card);border:1px solid var(--bd);border-radius:12px;padding:9px 12px}.fcard h4{margin:0 0 6px;color:var(--pri);font-size:13px;display:flex;gap:6px;align-items:center}
.fcard select,.fcard input{width:100%;margin-bottom:4px}.fcard.w2{grid-column:span 2}.fcard .row{display:flex;gap:6px}.fcard .row>*{flex:1;min-width:0}
.xl{border:0;background:none;color:var(--pri);font-weight:700;cursor:pointer;padding:2px 6px;float:right}
.pill{display:inline-flex;border:1px solid var(--bd);border-radius:99px;overflow:hidden}.pill button{border:0;background:var(--card);padding:6px 14px;cursor:pointer;color:var(--mu);font-weight:600}.pill button.on{background:var(--pri);color:#fff}
body.bl td .cpi{opacity:0}body.bl tr:hover td .cpi,body.bl td .cpi:hover{opacity:.55}body.bl td .cpi:hover{opacity:1}
@media(max-width:760px){.tb .tbdt,.tb .lgb2,.tb .gs{display:none}.fcard.w2{grid-column:auto}}

.lgw{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}
body.bl{}body.bl .lgw{background:#e9edf9 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='104' viewBox='0 0 60 104'%3E%3Cg fill='none' stroke='%231e3a8a' stroke-opacity='.06' stroke-width='1.2'%3E%3Cpath d='M30 0l30 17v35L30 69 0 52V17zM30 69v35M0 52L-30 69M60 52l30 17'/%3E%3C/g%3E%3C/svg%3E")}
.lgc{width:min(400px,100%);background:#fafaf5;border:1px solid #dfe4f2;border-radius:26px;padding:30px 30px 22px;box-shadow:0 18px 50px -20px rgba(30,58,138,.35)}
.lgl{display:block;width:76px;height:76px;margin:0 auto 12px;border-radius:50%}
.lgt{text-align:center;font-weight:800;color:#1e3a8a;font-size:18px;letter-spacing:.02em}.lgj{text-align:center;font-weight:700;color:#f59e0b;font-size:13px;margin-top:2px}
.lgd{height:1px;background:#e3e6ee;margin:18px 0 16px}
.lgb{display:block;font-size:11px;font-weight:800;letter-spacing:.06em;color:#4b5775;margin:12px 0 6px}
.lgi{width:100%;padding:12px 14px;border:1px solid #dfe4f2;border-radius:12px;background:#fff;color:#1f2a44;font-size:14px}.lgi:focus{outline:2px solid #3b5bdb55;border-color:#3b5bdb}
.lgp{position:relative}.lgp .lgi{padding-right:42px}.lge{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:none;color:#6b778f;cursor:pointer;padding:6px}
.lgr{color:#b3261e;min-height:1.2em;margin:8px 0 0;font-size:13px}
.lgs{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:13px;background:linear-gradient(90deg,#1e3a8a,#3b5bdb);color:#fff;font-weight:800;font-size:15px;cursor:pointer;box-shadow:0 8px 18px -8px rgba(30,58,138,.7)}.lgs:hover{filter:brightness(1.08)}
.lgv{text-align:center;color:#6b778f;font-size:12px;margin-top:16px}.lgv b{color:#1e3a8a}
.lgn{margin-top:12px;padding-top:12px;border-top:1px dashed #dfe4f2;color:#8a93a8;font-size:11px;line-height:1.5}
body.jp .lgw{min-height:auto;padding-top:0}body.jp .jpe{display:none}body.jp .jpb.big+.lgw .lgc{margin-top:-60px;position:relative}
@media (prefers-color-scheme:dark){body.bl .lgc{background:#18203a;border-color:#2a3556}body.bl .lgt,body.bl .lgv b{color:#9db8ff}body.bl .lgi{background:#0f1524;color:#e6ebf7;border-color:#2a3556}body.bl .lgw{background-color:#0b1020}}

.dg{display:grid;gap:14px;margin-top:14px}.dg.k5{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.dg.r3{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.kp{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}.kp .kh{display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:12px;letter-spacing:.03em;text-transform:uppercase}.kp .kv{font-size:30px;font-weight:800;color:var(--tx)}
.kp .ki{width:30px;height:30px;border-radius:9px;background:var(--pl);display:inline-flex;align-items:center;justify-content:center}
.dc{background:var(--card);border:1px solid var(--bd);border-radius:14px;padding:14px 16px;min-width:0}.dc h4{margin:0;color:var(--pri);font-size:15px}.dc .ds{color:var(--mu);font-size:12px;margin:2px 0 8px}
.dc svg text{fill:var(--mu);font-size:13px}body.bl .dc th{background:none;text-align:left;color:var(--tx);position:static;font-size:12px}.dc td{white-space:nowrap}.dc table{min-width:0;font-size:13px}.dc th{background:none;position:static;text-align:left;color:var(--tx);font-size:12px;border-bottom:1px solid var(--bd)}.dc td{padding:7px 6px}
.dleg{display:grid;grid-template-columns:auto 1fr auto;gap:4px 8px;font-size:13px;margin-top:6px;align-items:center}.dleg i{width:9px;height:9px;border-radius:50%;display:inline-block}.dleg b{text-align:right}
.mb{display:inline-block;height:7px;border-radius:4px;background:var(--bd);width:70px;vertical-align:middle;overflow:hidden}.mb span{display:block;height:100%}
.rk{width:20px;height:20px;border-radius:50%;background:var(--pl);color:var(--pri);font-weight:800;font-size:11px;display:inline-flex;align-items:center;justify-content:center;margin-right:8px}
.hl{padding:2px 10px;border-radius:99px;font-size:11px;font-weight:700;background:#fde8ec;color:#b83a4b}
a.btn{text-decoration:none;display:inline-block}.jpx{display:block;font-weight:500;opacity:.8;font-size:.78em;line-height:1.25;margin-top:1px}.badge .jpx,.btn .jpx,.tab .jpx{display:inline;margin-left:4px}.nav .jpx,.gh .jpx{display:block}body[data-lg=jp] .plt th small{display:none}
.exd{color:#d11a1a;font-weight:700;margin:2px 0 10px;text-align:center;font-size:15px}.pli[list]{text-align:center}
.plsel,.plq{border:1px solid var(--bd);border-radius:10px;padding:8px 10px;font:inherit;background:#fff}.plq{min-width:210px}.btny{background:#FFCC00;color:#1a1a1a;border:0;border-radius:10px;padding:9px 16px;font:inherit;font-weight:700;cursor:pointer}.btny:hover{filter:brightness(.95)}.plcs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:0 0 14px}.plc2{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--bd);border-radius:14px;padding:12px 16px}.plc2 i{font-style:normal;font-size:20px;width:42px;height:42px;border-radius:12px;background:#FFF1C7;display:flex;align-items:center;justify-content:center}.plc2 .pcd{flex:1;display:flex;flex-direction:column}.plc2 strong{font-size:26px;color:var(--pri)}.hd{display:flex;flex-direction:column;line-height:1.25}.hd .jps{font-size:11px;font-weight:500;color:var(--mu)}.pcd .hd .vn{font-weight:700}body[data-lg=jp] .hd .vn{display:none}body[data-lg=jp] .hd .jps{font-size:13px;font-weight:700;color:inherit}.cpt{width:100%;border-collapse:collapse;font-size:13.5px}.cpt th{text-align:left;padding:10px 12px;background:#F4F6FB;border-bottom:1px solid var(--bd);font-size:13px}.cpt td{padding:10px 12px;border-bottom:1px solid var(--bd);vertical-align:middle}.cpt tbody tr{cursor:pointer}.cpt tbody tr:hover td{background:#F8FAFF}.cpt td.tl{text-align:left}.cpt .cl{display:block;font-size:16px;color:var(--pri)}.cpt .cl+span{color:var(--mu);font-size:12.5px}.chp{display:inline-block;padding:3px 10px;border-radius:8px;font-weight:600;margin:1px 2px 1px 0}.chp.y{background:#FFE9B0;color:#5c4300}.chp.b{background:#DCEBFF;color:#17407f}.chp.r{background:#FFD9D9;color:#8a1d1d}.gry{color:#8a90a2;font-size:12.5px}@media(max-width:900px){.plcs{grid-template-columns:repeat(2,1fr)}}
.plw:has(.cpt){border-color:var(--bd);background:#fff}.exf{margin:4px 0 14px}.exf label{font-weight:600;color:var(--mu);margin-left:6px}.exst{border-radius:10px;padding:7px 12px;font:inherit;font-weight:600;border:1px solid #f0d27a;background:#FFF1C7;color:#7a5b00}.exst.o{background:#DDF3E4;border-color:#a8d8b8;color:#17673a}.chp.p{background:#E6DCFF;color:#4b2f9a}.chp.g{background:#D8F2E1;color:#17673a}.chp.o{background:#FFE3CC;color:#8a4b10}.chp.n{background:none;font-weight:700;padding-left:0}.plc2.ex .pcd{flex-direction:row;align-items:center;justify-content:space-between}.plc2.ex .pcd b{display:block}.plc2.ex strong{font-size:28px}@media print{aside,.tb,.top .plb,.plb select,.plb input,.plb button,.plb a,.tabs,.note{display:none!important}.card,.plw{box-shadow:none!important;border:0!important}main{padding:0!important}}
.jtb{border-collapse:collapse;width:100%;table-layout:fixed;min-width:980px;font-size:13px}.jtb th,.jtb td{border:1px solid #cfd8ea;padding:5px;text-align:center;vertical-align:middle;background:#fff}.jtb thead th{background:#0F2150;color:#fff;padding:9px 6px}.jtb td.pn{background:#EEF2FA;font-size:20px;font-weight:700;color:#0F2150}.jtb td.pt{background:#EEF2FA;font-weight:700}.jtb tr.lu td{background:#E7EAF0;font-weight:700;color:#445}.jtb td.em{color:#b0b6c4;cursor:default}.jtb td.em.ed{cursor:pointer}.jtb td.em.ed:hover{background:#F4F8FF}.jl{border-radius:8px;padding:6px 8px;text-align:left;cursor:pointer;line-height:1.35}.jl b{display:block;font-size:13.5px}.jl span{display:block}.jl small{display:block;opacity:.75}.jl.y{background:#FFEFB3}.jl.b{background:#CDE5FF}.jl .jpx{display:block}.jlg{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-top:12px;font-size:13px}.jlg i{display:inline-block;width:22px;height:14px;border-radius:4px;vertical-align:middle;margin-right:6px}
.ttb{border-collapse:separate;border-spacing:0;width:100%;min-width:1260px;table-layout:fixed;font-size:13px}.ttb th,.ttb td{border-right:1px solid #cfd8ea;border-bottom:1px solid #cfd8ea;padding:4px;text-align:center;vertical-align:middle;background:#fff}.ttb thead th{background:#0F2150;color:#fff;padding:8px 4px;border-color:#2b3b6b}.ttb thead tr:nth-child(n+2) th{background:#E9EDF7;color:#0F2150;padding:4px;font-size:12px}.ttb thead tr:nth-child(3) th{font-weight:500;word-spacing:7px;white-space:nowrap;padding:2px 0;font-size:11.5px}.ttb .ccl{display:inline-block;background:#0F2150;color:#fff;border-radius:8px;padding:5px 12px;font-weight:700}.ttb td.sub2{font-size:13px}.dts{display:flex;gap:6px;justify-content:center;align-items:center;padding:7px 0}.dts.nums{padding:0;color:#0F2150}.dts.nums b{width:18px;text-align:center;font-weight:600}.dt{width:18px;height:18px;border-radius:50%;display:inline-block;flex:none;border:2px solid transparent;box-sizing:border-box}.dt.cn{cursor:pointer}.dt.cn:hover{transform:scale(1.25);box-shadow:0 0 0 3px #0F215033}.dt.e{background:#fff;border:2px dashed #cfd6e6}.dt.b{background:#6FA8FF}.dt.y{background:#FFD54A}.dt.g{background:#6FD08C}.dt.p{background:#B39DFB}.dt.r{background:#FF7B7B}.dt.o{background:#FFA24D}.dt.m{background:#F37DB8}.dt.t{background:#3CC6C6}.cls{max-height:320px;overflow-y:auto;border-top:1px solid var(--bd);border-bottom:1px solid var(--bd);margin-bottom:4px;padding-right:4px}.tpk{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tpo{display:flex;align-items:center;gap:10px;text-align:left;padding:9px 12px;border:1px solid var(--bd);border-radius:10px;background:#fff;cursor:pointer;font:inherit;color:inherit}.tpo small{display:block;color:var(--mu);font-size:11.5px}.tpo.on{border-color:var(--pri);background:var(--pl)}.tpo:disabled{opacity:.5;cursor:default}
.tlg{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin:12px 0}.tlg .dt{margin-right:6px;vertical-align:middle}.tstrip{display:flex;gap:14px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--bd);border-radius:12px;padding:10px 14px;font-size:13px}.tstrip b{background:#0F2150;color:#fff;border-radius:8px;padding:8px 14px}.tstrip .lu{background:#FFEBA8;border-radius:8px;padding:5px 10px;font-weight:700}
.plw{max-height:70vh;overflow:auto;border:1px solid #cdb25a;border-radius:10px}.plt{border-collapse:separate;border-spacing:0;min-width:996px;width:100%;font-size:13px;table-layout:fixed}.plt th,.plt td{border-right:1px solid #e3d29a;border-bottom:1px solid #e3d29a;padding:7px 6px;text-align:center;background:#FFF6DC;color:#111;vertical-align:middle}.plt tr>*:last-child{border-right:0}.plt thead th{background:#fff;font-weight:700;color:#111;position:sticky;top:0;z-index:2;border-bottom:2px solid #cdb25a}.plt thead tr:nth-child(2) th{top:0}.plt th small{display:block;font-weight:500;color:#666;font-size:10.5px;margin-top:2px}.plt tbody tr:nth-child(even):not(.plg):not(.pls) td{background:#FFEFC2}.plt tbody tr:not(.plg):not(.pls):hover td{background:#FFE7A3}.plt tr.plg td{background:#F2C230;font-weight:800;letter-spacing:1px;font-size:13px;text-align:left;padding:8px 14px}.plt tr.pls td{background:#fff;font-weight:700;font-size:12px;color:#555}.plt td.pl-l{text-align:left;padding-left:10px}.plt td.pl-z{color:#9a8a55}.plt td.pl-w{color:#b3261e;font-weight:700}.plt td.pl-b{font-weight:700}.plh{font-family:Georgia,"Times New Roman",serif;font-size:24px;margin:0 0 4px;text-align:center}.pli{border:0;background:transparent;text-align:center;font:inherit;padding:5px 2px;width:100%;min-width:0;color:inherit;border-radius:6px}.pli:hover{background:rgba(255,255,255,.7)}.pli:focus{background:#fff;outline:2px solid var(--pri)}select.pli{appearance:none;-webkit-appearance:none;cursor:pointer}.plb{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.pls2{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}.plc{flex:1;min-width:130px;background:#FFF6DC;border:1px solid #e3d29a;border-radius:10px;padding:10px 14px}.plc b{display:block;font-size:22px;color:#6b4e00}.plc span{font-size:12px;color:#7a6a3a}.plseg{display:inline-flex;border:1px solid var(--bd);border-radius:10px;overflow:hidden;background:#fff}.plseg button,.plseg input{border:0;background:#fff;padding:8px 12px;font:inherit;cursor:pointer}.plseg button+*,.plseg input+*{border-left:1px solid var(--bd)}.plwk{font-weight:700;color:var(--pri);background:var(--pl);padding:6px 12px;border-radius:999px}.plbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 12px;background:var(--pl);border-radius:10px;margin:12px 0}@media(max-width:700px){.plh{font-size:18px}.plc{min-width:45%}}
@media(max-width:760px){aside{width:100% !important;max-width:100%;box-sizing:border-box;position:static}.tb{padding:8px 12px;gap:8px}.tb .ttl{display:none}.tb .us>div{display:none}aside .gh,aside .nav,aside .note{flex:none;width:auto;white-space:nowrap;align-self:center}aside .note{display:flex;gap:12px}.nav{padding:8px 12px}.gh{padding:8px 10px}}
#tst{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:#173f33;color:#fff;padding:10px 18px;border-radius:10px;font-size:14px;z-index:80;display:none;max-width:calc(100vw - 32px);box-shadow:0 8px 24px #0004}#tst.err{background:#b83a4b}
#svp{position:fixed;left:calc(12px + env(safe-area-inset-left,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px));padding:5px 12px;border-radius:999px;font-size:12px;z-index:70;display:none;background:#fff;border:1px solid var(--bd);color:#555;box-shadow:0 2px 8px #0002}#svp.ok{color:#1b6b34;border-color:#9bd3ac}#svp.er{color:#a32121;border-color:#f0a3a3}
.skd{position:fixed;inset:0;background:#0008;display:flex;align-items:center;justify-content:center;z-index:90;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
.skb{background:#fff;border-radius:14px;padding:18px 20px;max-width:440px;width:100%;box-shadow:0 20px 50px -10px #0007;max-height:100%;overflow:auto}.skm{white-space:pre-wrap;font-size:15px;line-height:1.5;word-break:break-word}.ska{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}.skb input{width:100%;padding:10px;border:1px solid var(--bd);border-radius:8px;font:inherit}

/* Bản MySQL: ẩn các nút mở Google Sheet cũ (dữ liệu không còn lưu ở đó) */
a[href*="docs.google.com/spreadsheets"]{display:none!important}
