@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-vietnamese-400-normal-TxZB8OSn.woff2)format("woff2"),url(/assets/public-sans-vietnamese-400-normal-BO1meqcx.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-ext-400-normal-mk90oQqJ.woff2)format("woff2"),url(/assets/public-sans-latin-ext-400-normal-B02wwOdZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Public Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/public-sans-latin-400-normal-8Rpg0ruU.woff2)format("woff2"),url(/assets/public-sans-latin-400-normal-SBbinRkI.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-vietnamese-500-normal-DjztbcKe.woff2)format("woff2"),url(/assets/public-sans-vietnamese-500-normal-CXYe29CY.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-ext-500-normal-DC-z7ASZ.woff2)format("woff2"),url(/assets/public-sans-latin-ext-500-normal-BHCCp-na.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Public Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/public-sans-latin-500-normal-NlrCPXnF.woff2)format("woff2"),url(/assets/public-sans-latin-500-normal-vCxiVFAq.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-vietnamese-600-normal-P4BtCUdw.woff2)format("woff2"),url(/assets/public-sans-vietnamese-600-normal-CcnAzmUX.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-ext-600-normal-DchWdWJ_.woff2)format("woff2"),url(/assets/public-sans-latin-ext-600-normal-DfkbVac2.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Public Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/public-sans-latin-600-normal-Fru-LXNs.woff2)format("woff2"),url(/assets/public-sans-latin-600-normal-BR59oU-I.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-vietnamese-700-normal-D97ShjGS.woff2)format("woff2"),url(/assets/public-sans-vietnamese-700-normal-Dq5VrXjD.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-ext-700-normal-CgolUQuG.woff2)format("woff2"),url(/assets/public-sans-latin-ext-700-normal-jWHjnMgZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Public Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/public-sans-latin-700-normal-BqJmxWdE.woff2)format("woff2"),url(/assets/public-sans-latin-700-normal-Dm-oTPSL.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-ui:"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--n-0:#fff;--n-25:#fbfaf8;--n-50:#f5f3ef;--n-100:#ece8e1;--n-150:#e0dbd1;--n-200:#d1cabb;--n-300:#b3a892;--n-400:#8f8267;--n-500:#6f6450;--n-600:#564c3c;--n-700:#423a2e;--n-800:#2e2921;--n-900:#1c1915;--p-100:#dbe4f0;--p-300:#7f9dc4;--p-500:#2c4a75;--p-600:#1f3a5f;--p-700:#172c48;--p-800:#111f34;--p-900:#0c1723;--a-300:#e8c477;--a-500:#c1892f;--a-600:#a06f22;--s-info:#2563a8;--s-info-bg:#e4eefa;--s-success:#1a7a4c;--s-success-bg:#e2f4ea;--s-warning:#a3660b;--s-warning-bg:#fbeed7;--s-danger:#b02a23;--s-danger-bg:#fbe6e4;--s-neutral:#6f6450;--s-neutral-bg:#ece8e1;--bg:var(--n-50);--surface:var(--n-0);--surface-alt:var(--n-25);--border:var(--n-150);--border-strong:var(--n-200);--text:var(--n-800);--text-muted:var(--n-500);--text-inverse:var(--n-0);--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--shadow-sm:0 1px 2px #1c19150f;--shadow-md:0 4px 14px #1c191517;--shadow-pop:0 12px 32px #0d1a2b2e;--sidebar-w:244px;--sidebar-w-collapsed:60px;--topbar-h:56px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-ui);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}p{margin:0}a{color:var(--p-600)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}table{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}::selection{background:var(--a-300);color:var(--p-900)}*{scrollbar-width:thin;scrollbar-color:var(--n-300) transparent}.shell{grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;grid-template-areas:"sidebar topbar""sidebar main";height:100vh;transition:grid-template-columns .28s cubic-bezier(.4,0,.2,1);display:grid}.shell--collapsed{grid-template-columns:var(--sidebar-w-collapsed) 1fr}.sidebar{background:linear-gradient(190deg, var(--p-600) 0%, var(--p-800) 65%, var(--p-900) 100%);color:var(--text-inverse);border-right:1px solid #00000040;flex-direction:column;grid-area:sidebar;display:flex;overflow:hidden auto}.sidebar__brand{height:var(--topbar-h);box-sizing:border-box;box-shadow:var(--shadow-sm);border-bottom:1px solid #ffffff1a;flex-shrink:0;align-items:center;gap:10px;padding:0 14px;display:flex}.sidebar__toggle{border-radius:var(--radius-sm);color:#aebdd2;cursor:pointer;background:0 0;border:none;flex-shrink:0;place-items:center;width:26px;height:26px;margin-left:auto;transition:background-color .15s,color .15s,transform .15s;display:grid}.sidebar__toggle:hover{color:var(--text-inverse);background:#ffffff1a;transform:scale(1.08)}.sidebar__toggle:active{transform:scale(.94)}.sidebar__toggle--solo{width:30px;height:30px;margin:0 auto}.sidebar__mark{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--a-500), var(--a-600));width:30px;height:30px;color:var(--p-900);font-weight:700;font-family:var(--font-mono);flex-shrink:0;place-items:center;font-size:13px;display:grid}.sidebar__brand-text{opacity:1;min-width:0;max-width:180px;transition:opacity .18s,max-width .22s cubic-bezier(.4,0,.2,1);overflow:hidden}.sidebar__brand-name{color:var(--text-inverse);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.sidebar__brand-sub{color:var(--a-300);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:10.5px}.sidebar__nav{flex-direction:column;flex:1;gap:2px;padding:10px 8px;display:flex}.sidebar__group-label{text-transform:uppercase;letter-spacing:.08em;color:#7e93b0;white-space:nowrap;opacity:1;max-height:28px;padding:14px 10px 5px;font-size:10px;font-weight:700;transition:opacity .15s,max-height .2s,padding .2s;overflow:hidden}.sidebar__link{border-radius:var(--radius-sm);color:#a9bad2;white-space:nowrap;align-items:center;gap:10px;padding:8px 10px;font-size:13px;font-weight:500;text-decoration:none;transition:background-color .18s cubic-bezier(.4,0,.2,1),color .18s cubic-bezier(.4,0,.2,1),transform .18s cubic-bezier(.4,0,.2,1);display:flex;position:relative}.sidebar__link svg{flex-shrink:0;width:16px;height:16px;transition:transform .18s cubic-bezier(.4,0,.2,1)}.sidebar__link:hover{color:#e4ebf3;background:#ffffff0f;transform:translate(2px)}.sidebar__link:hover svg{transform:scale(1.08)}.sidebar__link.active{background:var(--p-500);color:var(--text-inverse);font-weight:600}.sidebar__link.active:hover{transform:none}.sidebar__link-label{opacity:1;max-width:180px;transition:opacity .15s,max-width .22s cubic-bezier(.4,0,.2,1);overflow:hidden}.sidebar .sidebar__user-menu{color:#d7e2f0;background:#00000029;border-top:1px solid #ffffff17;border-radius:0;flex-shrink:0;margin:0;padding:12px 16px}.sidebar .sidebar__user-menu:hover{background:#ffffff1a}.sidebar .sidebar__user-menu .user-menu__avatar{background:linear-gradient(135deg, var(--a-500), var(--a-600));color:var(--p-900)}.sidebar .sidebar__user-menu .user-menu__name{color:#eef2f7}.sidebar .sidebar__user-menu .user-menu__role{color:#93a7c3}.sidebar .sidebar__user-menu .user-menu__logout{opacity:.55;transition:opacity .15s,transform .15s}.sidebar .sidebar__user-menu:hover .user-menu__logout{opacity:1;transform:translate(1px)}.shell--collapsed .sidebar .sidebar__user-menu{justify-content:center;padding:12px 0}.shell--collapsed .sidebar .sidebar__user-menu .user-menu__text,.shell--collapsed .sidebar .sidebar__user-menu .user-menu__logout{display:none}.topbar-clock{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-alt);cursor:default;align-items:center;gap:9px;padding:4px 12px;display:flex}.topbar-clock__time{font-family:var(--font-mono);color:var(--text);letter-spacing:.01em;font-size:13px;font-weight:700}.topbar-clock__meta{flex-direction:column;gap:1px;line-height:1.2;display:flex}.topbar-clock__date{color:var(--text-muted);font-size:10px}.topbar-clock__shift{letter-spacing:.03em;text-transform:uppercase;color:var(--p-700);font-size:9.5px;font-weight:700}.topbar-clock__shift--night{color:var(--a-600,#a3660b)}.shell--collapsed .sidebar{overflow:visible}.shell--collapsed .sidebar__brand-text,.shell--collapsed .sidebar__link-label{opacity:0;max-width:0}.shell--collapsed .sidebar__group-label{opacity:0;max-height:0;padding-top:0;padding-bottom:0}.shell--collapsed .sidebar__nav{padding:10px 8px}.shell--collapsed .sidebar__link{justify-content:center;gap:0;padding:9px 0}.shell--collapsed .sidebar__link:hover{transform:none}.topbar{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);z-index:1;grid-area:topbar;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:0 18px;display:grid;position:relative}.topbar__left{justify-self:start;align-items:center;gap:14px;min-width:0;display:flex}.topbar__center{justify-self:center}.topbar-search{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-alt);width:280px;height:32px;color:var(--text-muted);cursor:pointer;align-items:center;gap:8px;padding:0 10px;font-size:12.5px;transition:border-color .15s,background-color .15s;display:flex}.topbar-search:hover{border-color:var(--p-500);background:var(--surface)}.topbar-search span{text-align:left;flex:1}.topbar-search__kbd{font-family:var(--font-mono);background:var(--surface);border:1px solid var(--border-strong);color:var(--text-muted);border-radius:3px;padding:1px 5px;font-size:10px}.topbar__title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.topbar__breadcrumb{color:var(--text-muted);font-size:12px}.topbar__right{flex-shrink:0;justify-self:end;align-items:center;gap:10px;display:flex}.unit-switch{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);background:var(--surface-alt);align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:flex}.user-menu{border-radius:var(--radius-md);cursor:pointer;border:1px solid #0000;align-items:center;gap:8px;padding:4px 8px 4px 4px;display:flex}.user-menu:hover{background:var(--surface-alt);border-color:var(--border)}.user-menu__avatar{background:var(--p-100);width:28px;height:28px;color:var(--p-700);border-radius:50%;place-items:center;font-size:11.5px;font-weight:700;display:grid}.user-menu__name{font-size:12.5px;font-weight:600;line-height:1.2}.user-menu__role{color:var(--text-muted);font-size:10.5px;line-height:1.2}.main{grid-area:main;padding:20px 24px 40px;overflow-y:auto}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.page-header__title{color:var(--text);font-size:19px;font-weight:700}.page-header__desc{color:var(--text-muted);margin-top:3px;font-size:12.5px}.page-header__actions{gap:8px;display:flex}.grid{gap:14px;display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (width<=1100px){.grid-cols-4{grid-template-columns:repeat(2,1fr)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.card__title{font-size:13px;font-weight:600}.card__body{padding:16px}.stat{flex-direction:column;gap:4px;padding:14px 16px;display:flex}.stat__label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:11px;font-weight:600}.stat__value{font-family:var(--font-mono);color:var(--text);font-size:25px;font-weight:600;line-height:1.1}.stat__meta{color:var(--text-muted);font-size:11.5px}.stat__meta--up{color:var(--s-success)}.stat__meta--down{color:var(--s-danger)}.stat__meta--warn{color:var(--s-warning)}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;height:32px;padding:0 12px;font-size:12.5px;font-weight:600;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.btn svg{width:14px;height:14px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--p-600);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background:var(--p-700)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-alt)}.btn-accent{background:var(--a-500);color:var(--p-900)}.btn-accent:hover:not(:disabled){background:var(--a-600)}.btn-danger{background:var(--s-danger);color:var(--text-inverse)}.btn-danger:hover:not(:disabled){filter:brightness(1.08)}.btn-ghost{color:var(--text-muted);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-alt);color:var(--text)}.btn-sm{height:26px;padding:0 8px;font-size:11.5px}.btn-icon{width:30px;padding:0}.field{flex-direction:column;gap:4px;display:flex}.field__label{color:var(--text-muted);font-size:11.5px;font-weight:600}.field__label .req{color:var(--s-danger)}.field__error{color:var(--s-danger);font-size:11px}.field__hint{color:var(--text-muted);font-size:11px}.input,.select,.textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);height:32px;color:var(--text);width:100%;padding:0 10px}.textarea{resize:vertical;height:auto;min-height:64px;padding:8px 10px}.input:focus,.select:focus,.textarea:focus{border-color:var(--p-500);box-shadow:0 0 0 3px var(--p-100);outline:none}.input.has-error,.select.has-error{border-color:var(--s-danger)}.input:disabled,.select:disabled{background:var(--surface-alt);color:var(--text-muted)}.form-grid{grid-template-columns:repeat(2,1fr);gap:12px 16px;display:grid}.form-grid--3{grid-template-columns:repeat(3,1fr)}.form-grid__full{grid-column:1/-1}.form-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;margin-top:18px;padding-top:14px;display:flex}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:2px 8px;font-size:11px;font-weight:600;line-height:1.6;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge-info{background:var(--s-info-bg);color:var(--s-info)}.badge-success{background:var(--s-success-bg);color:var(--s-success)}.badge-warning{background:var(--s-warning-bg);color:var(--s-warning)}.badge-danger{background:var(--s-danger-bg);color:var(--s-danger)}.badge-neutral{background:var(--s-neutral-bg);color:var(--s-neutral)}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow-x:auto}.table-scroll{overflow-y:auto}.table-scroll__sentinel{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);padding:8px;font-size:11px}table.dtable{border-collapse:collapse;width:100%;font-size:12.5px}.dtable thead th{z-index:1;text-align:left;background:var(--surface-alt);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;padding:9px 12px;font-size:10.5px;font-weight:700;position:sticky;top:0}.dtable thead th:hover{color:var(--text)}.dtable tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:9px 12px}.dtable tbody tr:last-child td{border-bottom:none}.dtable tbody tr:hover{background:var(--surface-alt)}.dtable tbody tr.clickable{cursor:pointer}.table-toolbar{justify-content:space-between;align-items:center;gap:10px;padding:10px 4px;display:flex}.table-toolbar__search{width:260px}.table-footer{border-top:1px solid var(--border);color:var(--text-muted);justify-content:space-between;align-items:center;padding:8px 12px;font-size:11.5px;display:flex}.empty-state{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:48px 20px;display:flex}.empty-state svg{width:30px;height:30px;color:var(--n-300);margin-bottom:4px}.empty-state__title{color:var(--text);font-size:13px;font-weight:600}.overlay{z-index:100;background:#17141073;justify-content:center;align-items:flex-start;padding:5vh 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.dialog{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);width:100%;max-width:640px;margin-top:auto;margin-bottom:auto}.dialog--wide{max-width:920px}.dialog__header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.dialog__title{font-size:14.5px;font-weight:700}.dialog__body{max-height:70vh;padding:18px;overflow-y:auto}.stepper{flex-wrap:wrap;align-items:center;gap:0;display:flex}.stepper__step{align-items:center;gap:8px;padding:6px 12px 6px 0;display:flex}.stepper__dot{background:var(--n-100);width:22px;height:22px;color:var(--text-muted);border:2px solid var(--n-150);border-radius:50%;flex-shrink:0;place-items:center;font-size:10px;font-weight:700;display:grid}.stepper__step.done .stepper__dot{background:var(--s-success);border-color:var(--s-success);color:var(--text-inverse)}.stepper__step.active .stepper__dot{background:var(--p-600);border-color:var(--p-600);color:var(--text-inverse)}.stepper__step.blocked .stepper__dot{background:var(--s-danger-bg);border-color:var(--s-danger);color:var(--s-danger)}.stepper__label{color:var(--text-muted);font-size:11.5px;font-weight:600}.stepper__step.active .stepper__label,.stepper__step.done .stepper__label{color:var(--text)}.stepper__connector{background:var(--n-150);flex-shrink:0;width:24px;height:2px}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:16px;display:flex}.tab{color:var(--text-muted);cursor:pointer;border-bottom:2px solid #0000;padding:8px 12px;font-size:12.5px;font-weight:600}.tab:hover{color:var(--text)}.tab.active{color:var(--p-600);border-bottom-color:var(--p-600)}.toast-stack{z-index:200;flex-direction:column;gap:8px;width:300px;display:flex;position:fixed;bottom:18px;right:18px}.toast{border-radius:var(--radius-md);background:var(--p-900);color:var(--text-inverse);box-shadow:var(--shadow-pop);align-items:flex-start;gap:8px;padding:10px 12px;font-size:12.5px;display:flex}.toast-success{background:#0f4a2e}.toast-danger{background:#5a1a15}.toast-warning{background:#5a3c0a}.text-muted{color:var(--text-muted)}.text-danger{color:var(--s-danger)}.text-success{color:var(--s-success)}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.gap-6{gap:6px}.gap-8{gap:8px}.gap-12{gap:12px}.breadcrumb{align-items:center;gap:4px;min-width:0;font-size:12.5px;display:flex;overflow:hidden}.breadcrumb__item{white-space:nowrap;align-items:center;gap:4px;display:flex}.breadcrumb__sep{color:var(--text-muted);opacity:.6;flex-shrink:0}.breadcrumb__link{color:var(--text-muted);font-weight:500;text-decoration:none}.breadcrumb__link:hover{color:var(--p-600)}.breadcrumb__current{color:var(--text);text-overflow:ellipsis;font-weight:600;overflow:hidden}.notif-badge{background:var(--s-danger);color:#fff;border-radius:999px;place-items:center;min-width:15px;height:15px;padding:0 3px;font-size:9.5px;font-weight:700;line-height:1;display:grid;position:absolute;top:2px;right:2px}.notif-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:320px;max-height:380px;box-shadow:var(--shadow-pop);z-index:60;position:absolute;top:40px;right:0;overflow-y:auto}.notif-panel__header{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);padding:10px 14px;font-size:11px;font-weight:700}.notif-panel__empty{text-align:center;color:var(--text-muted);padding:24px 14px;font-size:12.5px}.notif-panel__item{cursor:pointer;border-bottom:1px solid var(--border);color:var(--text);align-items:flex-start;gap:8px;padding:10px 14px;font-size:12.5px;display:flex}.notif-panel__item:last-child{border-bottom:none}.notif-panel__item:hover{background:var(--surface-alt)}.notif-panel__item svg{color:var(--text-muted);flex-shrink:0;margin-top:1px}.col-unit-header{align-items:center;gap:4px;display:inline-flex}.unit-toggle{border:1px solid var(--border-strong);background:var(--surface);color:var(--p-600);text-transform:none;letter-spacing:normal;cursor:pointer;border-radius:3px;padding:1px 3px;font-size:10px;font-weight:700}.unit-toggle:hover{border-color:var(--p-500);background:var(--p-100)}.unit-toggle__static{color:var(--text-muted);font-size:10.5px;font-weight:600}.print-preview-wrap{max-width:800px;margin:0 auto}.printable-doc{color:#14181f;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;padding:40px 44px;font-size:12.5px}.doc__letterhead{border-bottom:2px solid #14181f;justify-content:space-between;align-items:center;margin-bottom:18px;padding-bottom:16px;display:flex}.doc__brand{align-items:center;gap:10px;display:flex}.doc__brand-mark{background:linear-gradient(135deg, var(--a-500), var(--a-600));color:#14181f;width:34px;height:34px;font-weight:700;font-family:var(--font-mono);border-radius:6px;place-items:center;font-size:13px;display:grid}.doc__brand-name{font-size:15px;font-weight:700}.doc__brand-address{color:#5a5346;font-size:10.5px}.doc__title{text-align:right}.doc__title-main{text-transform:uppercase;letter-spacing:.04em;font-size:16px;font-weight:700}.doc__title-sub{color:#5a5346;margin-top:2px;font-size:11px}.doc__meta{border-bottom:1px solid #d8d2c4;grid-template-columns:repeat(3,1fr);gap:10px 20px;margin-bottom:18px;padding-bottom:14px;display:grid}.doc__meta-item{flex-direction:column;gap:2px;display:flex}.doc__meta-label{text-transform:uppercase;letter-spacing:.05em;color:#8a8270;font-size:9.5px;font-weight:700}.doc__meta-value{font-size:12.5px;font-weight:600}.doc__table{border-collapse:collapse;width:100%;margin-bottom:20px;font-size:12px}.doc__table th{text-align:left;text-transform:uppercase;letter-spacing:.03em;background:#f1ede2;border:1px solid #d8d2c4;padding:6px 8px;font-size:10px}.doc__table td{border:1px solid #d8d2c4;padding:6px 8px}.doc__signatures{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px;display:grid}.doc__signature-line{color:#5a5346;text-align:center;border-top:1px solid #14181f;padding-top:6px;font-size:10.5px}.doc__footer{color:#8a8270;text-align:center;border-top:1px solid #d8d2c4;margin-top:28px;padding-top:10px;font-size:9.5px}@media print{@page{size:A4;margin:14mm 12mm}body *{visibility:hidden}.printable-doc,.printable-doc *{visibility:visible}.printable-doc{width:100%;position:absolute;top:0;left:0}.no-print{display:none!important}}
