@font-face{font-family:Tinos;font-style:normal;font-weight:400;font-display:swap;src:url(/app/fonts/tinos-vietnamese-400-normal.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:Tinos;font-style:italic;font-weight:400;font-display:swap;src:url(/app/fonts/tinos-vietnamese-400-italic.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:Tinos;font-style:normal;font-weight:700;font-display:swap;src:url(/app/fonts/tinos-vietnamese-700-normal.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:Tinos;font-style:italic;font-weight:700;font-display:swap;src:url(/app/fonts/tinos-vietnamese-700-italic.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:Tinos;font-style:normal;font-weight:400;font-display:swap;src:url(/app/fonts/tinos-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Tinos;font-style:italic;font-weight:400;font-display:swap;src:url(/app/fonts/tinos-latin-ext-400-italic.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Tinos;font-style:normal;font-weight:700;font-display:swap;src:url(/app/fonts/tinos-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Tinos;font-style:italic;font-weight:700;font-display:swap;src:url(/app/fonts/tinos-latin-ext-700-italic.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Tinos;font-style:normal;font-weight:400;font-display:swap;src:url(/app/fonts/tinos-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Tinos;font-style:italic;font-weight:400;font-display:swap;src:url(/app/fonts/tinos-latin-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Tinos;font-style:normal;font-weight:700;font-display:swap;src:url(/app/fonts/tinos-latin-700-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Tinos;font-style:italic;font-weight:700;font-display:swap;src:url(/app/fonts/tinos-latin-700-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{color-scheme:light;--pri:#1a3c5e;--acc:#c0392b;--bg:#f3f5f8;--bdr:#dde3ec;--txt:#25313f;--mut:#6b7c93;--grn:#1e8449;--ylo:#fff8e6;--yb:#e6b74a;--red:#c0392b;--rb:#fdecea;--gb:#e9f7ef;--tm:#1a5fb4;--ns:#7b3fa0}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--txt);font-size:14px}
button,input,select,textarea{font-family:inherit;font-size:14px}
.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
aside{background:#fff;border-right:1px solid var(--bdr);padding:14px 10px;position:sticky;top:0;height:100vh;overflow-y:auto}
.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 14px}.logo{width:34px;height:34px;border-radius:50%;border:2px solid var(--acc);color:var(--acc);font-weight:800;font-size:10px;display:flex;align-items:center;justify-content:center}
.brand b{display:block;font-size:15px}.brand small{color:var(--mut);font-size:11px}
.grp{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--mut);padding:14px 10px 6px;display:flex;align-items:center;gap:6px}
.grp i{width:8px;height:8px;border-radius:2px;display:inline-block}
aside a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:7px;color:var(--txt);text-decoration:none;font-size:13.5px;font-weight:600}
aside a:hover{background:#f1f4f9}aside a.on{background:#e3eaf5;color:var(--pri)}
aside a .code{font-family:ui-monospace,Menlo,monospace;font-size:10.5px;font-weight:700;min-width:40px;text-align:center;padding:1px 4px;border-radius:5px;color:#fff}
aside a .n{margin-left:auto;background:var(--acc);color:#fff;border-radius:9px;font-size:11px;padding:0 6px}
.whobox{border-top:1px solid var(--bdr);margin-top:14px;padding:12px 10px;font-size:12.5px;color:var(--mut)}
.whobox b{display:block;color:var(--txt);font-size:13.5px}
main{padding:22px 28px 60px;max-width:1240px;width:100%}
.crumb{font-size:12px;color:var(--mut);margin-bottom:2px}
.banner{background:var(--ylo);border:1px solid var(--yb);border-radius:8px;padding:9px 14px;margin-bottom:14px;font-size:13px}
.banner.red{background:var(--rb);border-color:#e8a39b}.banner.grn{background:var(--gb);border-color:#9fd6b4}.banner.blue{background:#eef4fe;border-color:#aac4f5}
h1{font-size:22px;margin-bottom:4px}.sub{color:var(--mut);margin-bottom:16px;font-size:13px}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.btn{border:1px solid var(--bdr);background:#fff;color:var(--txt);padding:8px 14px;border-radius:7px;font-weight:600;cursor:pointer;display:inline-flex;gap:6px;align-items:center;text-decoration:none}
.btn:hover{border-color:#9fb3cf}.btn.p{background:var(--pri);border-color:var(--pri);color:#fff}.btn.g{background:var(--grn);border-color:var(--grn);color:#fff}
.btn.r{border-color:var(--red);color:var(--red)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.sm{padding:5px 10px;font-size:12px}
.card{background:#fff;border:1px solid var(--bdr);border-radius:10px;margin-bottom:14px}
.card>.hd{padding:12px 18px;border-bottom:1px solid var(--bdr);display:flex;align-items:center;gap:10px;font-weight:700;color:var(--pri)}
.card>.bd{padding:16px 18px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-bottom:16px}
.tile{background:#fff;border:1px solid var(--bdr);border-radius:10px;padding:14px 16px;cursor:pointer;border-left:4px solid var(--tm)}
.tile.ns{border-left-color:var(--ns)}.tile:hover{box-shadow:0 2px 10px rgba(0,0,0,.06)}
.tile .c{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--mut)}.tile b{display:block;margin:2px 0 8px}
.tile .nums{display:flex;gap:10px;font-size:12px;color:var(--mut)}.tile .nums span b{display:inline;color:var(--txt);margin:0}
table.t{width:100%;border-collapse:collapse}table.t th{text-align:left;font-size:11px;color:var(--mut);text-transform:uppercase;letter-spacing:.4px;padding:9px 12px;border-bottom:1px solid var(--bdr);background:#f8fafc}
table.t td{padding:9px 12px;border-bottom:1px solid #eef1f5;vertical-align:top}table.t tr.click{cursor:pointer}table.t tr.click:hover td{background:#f6f9fd}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}
.st{font-size:12px;font-weight:700;padding:2px 9px;border-radius:10px;white-space:nowrap}
.st.nhap,.st.moi{background:#eef1f5;color:#56657a}.st.cho_duyet{background:#fff1d6;color:#9a6400}.st.tra_lai,.st.tu_choi{background:var(--rb);color:var(--red)}
.st.da_duyet,.st.da_tao{background:var(--gb);color:var(--grn)}.st.da_ky{background:#dff0ff;color:#1b5e9a}.st.huy{background:#eee;color:#999;text-decoration:line-through}
.pn{font-size:11px;font-weight:800;padding:2px 8px;border-radius:10px;color:#fff;letter-spacing:.3px}.pn.SUBE{background:#1a5fb4}.pn.MIMAX{background:#9c3d8f}
.badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:10px;background:var(--pri);color:#fff}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.filters select,.filters input{padding:7px 10px;border:1.5px solid var(--bdr);border-radius:7px;background:#fff}
.layout{display:grid;grid-template-columns:1fr 330px;gap:16px;align-items:start}.side{position:sticky;top:16px}
.steps{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 14px}.steps span{font-size:12px;padding:4px 10px;border-radius:12px;background:#e9edf3;color:var(--mut);font-weight:600}
.steps span.done{background:var(--pri);color:#fff}.steps span.cur{background:#fff;border:1.5px solid var(--pri);color:var(--pri)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 14px}.sp2{grid-column:span 2}.sp3{grid-column:1/-1}
.h{grid-column:1/-1;font-size:12px;font-weight:700;color:var(--pri);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--bdr);padding:8px 0 4px;margin-top:4px}
.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:12px;font-weight:600;color:var(--mut)}
.field input,.field select,textarea{border:1.5px solid var(--bdr);border-radius:7px;padding:8px 10px;width:100%;background:#fff;color:var(--txt)}
.field input:focus,.field select:focus,textarea:focus{outline:none;border-color:#4a90d9;box-shadow:0 0 0 3px rgba(74,144,217,.12)}
.field input:disabled,.field select:disabled,table.prod input:disabled{background:#f4f6f9;color:#45526a}
.afill input{background:var(--ylo)}.hint{font-size:11px;color:#a06c00}.prev{font-size:12px;color:#7d5a00;min-height:15px}
.chk{list-style:none}.chk li{display:flex;gap:8px;padding:4px 0;font-size:13px;line-height:1.4}.chk i{font-style:normal;font-weight:800;width:16px;flex:none;text-align:center}
.chk .error i{color:var(--red)}.chk .warn{color:#8a5a00}.chk .warn i{color:#d4930d}.chk .ok i{color:var(--grn)}
table.prod{width:100%;border-collapse:collapse;font-size:13px}table.prod th{background:#eef1f5;padding:6px;font-size:11px;color:var(--mut);text-align:left}
table.prod td{padding:3px}table.prod input{width:100%;border:1px solid var(--bdr);border-radius:5px;padding:6px 8px}
table.prod td.tt{text-align:right;color:var(--pri);font-weight:600;white-space:nowrap;padding-right:8px}
.sum{background:var(--ylo);border:1px solid var(--yb);border-radius:8px;padding:10px 14px;font-size:13px;line-height:1.7}
.kv{display:grid;grid-template-columns:230px 1fr;gap:4px 14px;font-size:13px}.kv div:nth-child(odd){color:var(--mut)}
.diff li{margin:3px 0 3px 18px;font-size:13px}.empty{color:var(--mut);font-style:italic;padding:8px 0}
.modal{position:fixed;inset:0;background:rgba(20,30,45,.45);display:flex;align-items:center;justify-content:center;z-index:50}
.modal .box{background:#fff;border-radius:12px;padding:22px;max-width:460px;width:92%}.modal h3{margin-bottom:6px}
.choice{display:block;width:100%;text-align:left;border:1.5px solid var(--bdr);background:#fff;border-radius:9px;padding:12px 14px;margin-top:10px;cursor:pointer}
.choice:hover{border-color:var(--pri)}.choice small{display:block;color:var(--mut)}
#toast{position:fixed;bottom:22px;right:22px;color:#fff;padding:11px 18px;border-radius:8px;font-weight:600;box-shadow:0 4px 18px rgba(0,0,0,.2);transform:translateY(120px);opacity:0;transition:.3s;z-index:99;max-width:460px}
#toast.show{transform:none;opacity:1}
.login{max-width:380px;margin:90px auto;background:#fff;border:1px solid var(--bdr);border-radius:12px;padding:28px}.login .field{margin-bottom:12px}
.small{font-size:12px;color:var(--mut)}.copy{display:flex;gap:6px;align-items:center}.copy input{flex:1;padding:7px 9px;border:1.5px solid var(--bdr);border-radius:7px;font-size:12.5px}
@media(max-width:980px){.app{grid-template-columns:1fr}aside{position:static;height:auto}.layout{grid-template-columns:1fr}.side{position:static}.grid{grid-template-columns:1fr 1fr}}

.modal textarea{width:100%;border:1.5px solid var(--bdr);border-radius:7px;padding:8px 10px}
.modal.pv{align-items:stretch;padding:18px}
.pvbox{background:#e9edf3;border-radius:12px;width:100%;max-width:1000px;margin:0 auto;display:flex;flex-direction:column;overflow:hidden}
.pvbar{display:flex;align-items:center;gap:8px;background:#fff;padding:10px 16px;border-bottom:1px solid var(--bdr);flex-wrap:wrap}
.pvscroll{overflow:auto;flex:1;padding:22px 10px}
.paper{background:#fff;width:210mm;max-width:100%;margin:0 auto;padding:18mm 18mm 14mm 25mm;box-shadow:0 2px 14px rgba(0,0,0,.12);position:relative;color:#000}
.paper.draft::before{content:'BẢN NHÁP – CHƯA DUYỆT';position:absolute;left:0;right:0;top:220px;text-align:center;font:bold 64px 'Times New Roman',Tinos,serif;color:rgba(192,57,43,.13);transform:rotate(-32deg);pointer-events:none;z-index:2;white-space:nowrap}
.paper.draft::after{content:'BẢN NHÁP – CHƯA DUYỆT';position:absolute;left:0;right:0;top:900px;text-align:center;font:bold 64px 'Times New Roman',Tinos,serif;color:rgba(192,57,43,.13);transform:rotate(-32deg);pointer-events:none;z-index:2;white-space:nowrap}
.doc{font-family:'Times New Roman',Tinos,serif;font-size:13pt;line-height:1.3}
.doc table{max-width:100%}
.doc .fv{background:#fff4c2;border-radius:2px}
.doc .fv.blank{background:transparent}
.pvfoot{border-top:1px solid #ccc;margin-top:18px;padding-top:6px;font:11px 'Times New Roman',Tinos,serif;color:#555;display:flex;align-items:center}
.paper.draft .pvfoot{color:#c0392b}
@media(max-width:820px){.paper{padding:10mm 8mm}}
/* link nhập thông tin công khai */
#intake{background:#f3f5f8;min-height:100vh}
#intake .wrap{max-width:860px;margin:0 auto;padding:24px 18px 70px}
#intake .top{display:flex;align-items:center;gap:12px;margin-bottom:16px}
#intake .logo{width:40px;height:40px}
#intake h1{font-size:20px}
#intake .card{padding:16px 18px}
#intake .card h2{font-size:14px;color:var(--pri);margin-bottom:10px}
#intake .types{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
#intake .type{border:1.5px solid var(--bdr);border-radius:9px;padding:10px 12px;cursor:pointer;background:#fff;text-align:left}
#intake .type.on{border-color:var(--ns);box-shadow:0 0 0 3px rgba(123,63,160,.12)}
#intake .type b{display:block}#intake .type small{color:var(--mut);display:block;margin-top:3px;line-height:1.4}
#intake .ents{display:flex;gap:10px;flex-wrap:wrap}#intake .ent{border:1.5px solid var(--bdr);border-radius:9px;padding:10px 14px;cursor:pointer;background:#fff}
#intake .ent.on{border-color:var(--pri);box-shadow:0 0 0 3px rgba(26,60,94,.12)}
#intake .field input.err{border-color:var(--red);background:#fff5f5}
#intake .ibtn{border:none;background:var(--pri);color:#fff;padding:12px 18px;border-radius:8px;font-weight:700;cursor:pointer;width:100%;font-size:15px}
#intake .ibtn:disabled{opacity:.5}
#intake .ok{background:#e9f7ef;border:1px solid #9fd6b4;border-radius:10px;padding:18px;text-align:center}#intake .ok b{font-size:20px;display:block;margin:6px 0}
#intake .note{font-size:12px;color:var(--mut);line-height:1.5}#intake .hp{position:absolute;left:-9999px}
#intake .ierr{color:var(--red);font-weight:600;font-size:13px;margin-top:8px}
@media(max-width:700px){#intake .grid{grid-template-columns:1fr}#intake .sp2,#intake .sp3{grid-column:auto}}

.doc.print .fv{background:transparent}
