/* Jupdo ecosystem default font (2026-11-14): SF Pro on Apple devices, Inter (SIL Open Font License) elsewhere. */
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/inter-vietnamese.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/inter-latin-ext.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/inter-latin.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{--ink:#102033;--ink2:#465a70;--line:#d8e0e9;--bg:#f4f6f9;--brand:#1c5d99;--good:#1a7f4b;--warn:#a25d00;--bad:#b8322a}
*{box-sizing:border-box}body{margin:0;font:16px/1.6 'SF Pro Text','SF Pro Display',-apple-system,BlinkMacSystemFont,Inter,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--brand)}h1{font-size:1.6rem;margin:.6em 0 .3em}h2{font-size:1.25rem;margin:1.2em 0 .4em}h3{font-size:1.05rem;margin:.2em 0}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}header.top{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
header.top .wrap{display:flex;gap:16px;align-items:center;min-height:54px;flex-wrap:wrap}.logo{font-weight:800;color:var(--ink);text-decoration:none}.logo span{color:var(--brand)}
nav{display:flex;gap:14px;flex:1;justify-content:flex-end;align-items:center;flex-wrap:wrap;font-size:.94rem}nav a{text-decoration:none;color:var(--ink2)}
.btn,button{display:inline-block;border:0;border-radius:8px;padding:9px 15px;font:inherit;font-weight:600;cursor:pointer;background:var(--brand);color:#fff;text-decoration:none}
button.ghost,.btn.ghost{background:#fff;color:var(--brand);border:1px solid var(--brand)}button.small,.btn.small{padding:5px 10px;font-size:.88rem}button:disabled{opacity:.5}
.muted{color:var(--ink2)}.small{font-size:.88rem}.err{color:var(--bad)}.ok{color:var(--good)}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}
.card p{margin:.3em 0}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin:.5em 0}
label{display:flex;flex-direction:column;gap:3px;font-size:.9rem;color:var(--ink2);margin:.55em 0}input,select,textarea{font:inherit;padding:8px 10px;border:1px solid #b8c5d3;border-radius:8px;background:#fff;color:var(--ink);width:100%}
textarea{min-height:84px}.steps{display:flex;gap:6px;flex-wrap:wrap;margin:.6em 0;padding:0;list-style:none}.steps li{font-size:.8rem;border-radius:99px;padding:3px 11px;background:#e4eaf1;color:var(--ink2)}
.steps li.done{background:#dff3e8;color:var(--good)}.steps li.now{background:var(--brand);color:#fff;font-weight:700}
table{border-collapse:collapse;width:100%;background:#fff;border:1px solid var(--line)}th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:.93rem}th{background:#eef2f6}
.scroll{overflow-x:auto}.tag{display:inline-block;font-size:.76rem;border-radius:99px;padding:1px 9px;background:#e4eaf1;color:var(--ink2)}.tag.warn{background:#fff0d6;color:var(--warn)}
.note{background:#fff8e6;border:1px solid #f0d899;border-radius:8px;padding:8px 12px;font-size:.9rem}footer{padding:26px 16px}[hidden]{display:none!important}
.tree,.tree ul{list-style:none;margin:0;padding-left:0}.tree ul{padding-left:22px;border-left:2px solid var(--line);margin-left:10px}.tree li{margin:8px 0}
.dept{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px}.dept h3{display:inline}.dept .people{margin:.4em 0 0;padding-left:18px;font-size:.93rem}
.dept .acts{float:right;display:flex;gap:6px}.facts{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:4px 14px;margin:0}.facts dt{color:var(--ink2)}.facts dd{margin:0}
.two{display:grid;gap:0 14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}label.check{flex-direction:row;gap:8px;align-items:flex-start}label.check input{width:auto;margin-top:5px}
.doc{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px 26px}.doc h2{border-bottom:2px solid var(--line);padding-bottom:4px}.doc h3{margin-top:1.1em}.doc ol,.doc ul{padding-left:22px}
.doc td.num,.doc th.num{text-align:right;white-space:nowrap}.doc tr.sum td{font-weight:700;background:#f6f8fb}.rows td{padding:3px}.rows input,.rows textarea{padding:5px 7px;font-size:.9rem}.rows textarea{min-height:52px}
@media print{header.top,footer,.noprint{display:none!important}body{background:#fff}.doc{border:0;padding:0}.wrap{max-width:none}}
.tag.ok{background:#dff3e8;color:var(--good)}.tag.bad{background:#fde3e1;color:var(--bad)}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:.6em 0}.chips button{background:#fff;color:var(--ink2);border:1px solid var(--line);border-radius:99px;padding:4px 12px;font-size:.86rem;font-weight:500}.chips button.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.role{display:block;text-decoration:none;color:inherit}.role:hover{border-color:var(--brand)}.role .em{font-size:1.5rem;float:left;margin-right:10px}.role h3{font-size:1rem}
.md h1{font-size:1.4rem}.md h2{font-size:1.15rem;border-bottom:1px solid var(--line);padding-bottom:3px}.md h3{font-size:1rem;margin-top:1em}.md pre{background:#0f1b2b;color:#e6edf5;padding:12px 14px;border-radius:8px;overflow-x:auto;font-size:.84rem}
.md code{background:#eaeff5;border-radius:4px;padding:1px 5px;font-size:.88em}.md pre code{background:none;padding:0}.md ul,.md ol{padding-left:22px}.md blockquote{border-left:3px solid var(--line);margin-left:0;padding-left:12px;color:var(--ink2)}
