:root{--bg:#000000;--surface:#1c1c1e;--surface-2:#2c2c2e;--primary:#0074e8;--primary-on:#ffffff;--primary-hover:#0062c4;--accent:#4da3ff;--text-primary:#ffffff;--text-secondary:rgba(235,235,245,0.6);--text-tertiary:rgba(235,235,245,0.55);--border:rgba(84,84,88,0.65);--border-soft:rgba(84,84,88,0.4);--border-strong:rgba(120,120,128,0.8);--radius:14px;--radius-sm:8px;--radius-lg:20px;--screen-px:28px;--green:#30db5b;--amber:#ffd426;--orange:#ffb340;--red:#ff8680;--gray:#b1b1b4;--blue:#6ac4ff;--green-fill:#1e8839;--amber-fill:#8c7500;--orange-fill:#aa6700;--red-fill:#ed0d00;--kh-vang:#e09b00;--kh-vang-on:#1d1d1f;--kh-vang-fg:#9e6d00;--header-bg:rgba(0,0,0,0.72);--thead-bg:var(--surface-2);--row-hover:rgba(118,118,128,0.1);--hover-bg:rgba(118,118,128,0.18);--chip-bg:rgba(118,118,128,0.24);--scrollbar-thumb:rgba(118,118,128,0.4);--overlay:rgba(0,0,0,0.6);--shadow-modal:0 24px 64px rgba(0,0,0,0.6),0 2px 8px rgba(0,0,0,0.4);--shadow-card:0 1px 2px rgba(0,0,0,0.5);--shadow-pop:0 10px 32px rgba(0,0,0,0.55),0 1px 3px rgba(0,0,0,0.4);--tint-primary:rgba(0,116,232,0.18);--tint-primary-soft:rgba(0,116,232,0.1);--tint-primary-border:rgba(0,116,232,0.32);--tint-green:rgba(48,219,91,0.16);--tint-amber:rgba(255,212,38,0.16);--tint-gray:rgba(177,177,180,0.18);--tint-red:rgba(255,134,128,0.16);--tint-red-border:rgba(255,134,128,0.36);--danger-border:rgba(255,134,128,0.45);--ok-border:rgba(48,219,91,0.45);--tint-orange:rgba(255,179,64,0.16);--tint-orange-border:rgba(255,179,64,0.36);--tint-blue:rgba(106,196,255,0.16);--tint-blue-border:rgba(106,196,255,0.4);--badge-expired-fg:#b1b1b4;--form-error-fg:#ff8680;--nav-active-fg:#fff;--swatch-blue:#0074e8;--swatch-indigo:#5e5ce6;--swatch-violet:#b137ef;--swatch-teal:#00a2bf;--swatch-green:#00ac2b;--swatch-pink:#ff375f;--swatch-orange:#d48100}[data-theme=light]{--bg:#f2f2f7;--surface:#ffffff;--surface-2:#f2f2f7;--primary:#0072ef;--primary-on:#ffffff;--primary-hover:#0061cb;--accent:#0040dd;--text-primary:#1d1d1f;--text-secondary:#636366;--text-tertiary:#6e6e73;--border:rgba(60,60,67,0.18);--border-soft:rgba(60,60,67,0.1);--border-strong:rgba(60,60,67,0.36);--green:#1e7333;--amber:#a34900;--orange:#bc3100;--red:#c90014;--gray:#646468;--blue:#0062b0;--green-fill:#1e7333;--amber-fill:#a34900;--orange-fill:#bc3100;--red-fill:#c90014;--kh-vang:#e09b00;--kh-vang-on:#1d1d1f;--kh-vang-fg:#9e6d00;--header-bg:rgba(242,242,247,0.72);--thead-bg:#f2f2f7;--row-hover:rgba(118,118,128,0.06);--hover-bg:rgba(118,118,128,0.1);--chip-bg:rgba(118,118,128,0.12);--scrollbar-thumb:rgba(60,60,67,0.3);--overlay:rgba(0,0,0,0.4);--shadow-modal:0 24px 60px rgba(0,0,0,0.16),0 2px 8px rgba(0,0,0,0.06);--shadow-card:0 1px 2px rgba(0,0,0,0.06);--shadow-pop:0 10px 32px rgba(0,0,0,0.12),0 1px 3px rgba(0,0,0,0.06);--tint-primary:rgba(0,114,239,0.12);--tint-primary-soft:rgba(0,114,239,0.06);--tint-primary-border:rgba(0,114,239,0.24);--tint-green:rgba(30,115,51,0.12);--tint-amber:rgba(163,73,0,0.12);--tint-gray:rgba(100,100,104,0.12);--tint-red:rgba(201,0,20,0.1);--tint-red-border:rgba(201,0,20,0.3);--danger-border:rgba(201,0,20,0.4);--ok-border:rgba(30,115,51,0.4);--tint-orange:rgba(188,49,0,0.1);--tint-orange-border:rgba(188,49,0,0.3);--tint-blue:rgba(0,98,176,0.1);--tint-blue-border:rgba(0,98,176,0.32);--badge-expired-fg:#646468;--form-error-fg:#c90014;--nav-active-fg:var(--accent);--swatch-blue:#0072ef;--swatch-indigo:#5856d6;--swatch-violet:#aa47dc;--swatch-teal:#00a2bf;--swatch-green:#00ac2b;--swatch-pink:#ff2d55;--swatch-orange:#d97f00}:root[data-accent=indigo]{--primary:#5e5ce6;--primary-on:#ffffff;--primary-hover:#3f3de1;--accent:#9795ff;--tint-primary:rgba(94,92,230,0.18);--tint-primary-soft:rgba(94,92,230,0.1);--tint-primary-border:rgba(94,92,230,0.32)}[data-theme=light][data-accent=indigo]{--primary:#5856d6;--primary-on:#ffffff;--primary-hover:#3c39cf;--accent:#3634a3;--tint-primary:rgba(88,86,214,0.12);--tint-primary-soft:rgba(88,86,214,0.06);--tint-primary-border:rgba(88,86,214,0.24)}:root[data-accent=violet]{--primary:#b137ef;--primary-on:#ffffff;--primary-hover:#a416ec;--accent:#da8fff;--tint-primary:rgba(177,55,239,0.18);--tint-primary-soft:rgba(177,55,239,0.1);--tint-primary-border:rgba(177,55,239,0.32)}[data-theme=light][data-accent=violet]{--primary:#aa47dc;--primary-on:#ffffff;--primary-hover:#9c29d6;--accent:#8944ab;--tint-primary:rgba(170,71,220,0.12);--tint-primary-soft:rgba(170,71,220,0.06);--tint-primary-border:rgba(170,71,220,0.24)}:root[data-accent=teal]{--primary:#00a2bf;--primary-on:#ffffff;--primary-hover:#00849b;--accent:#70d7ff;--tint-primary:rgba(0,162,191,0.18);--tint-primary-soft:rgba(0,162,191,0.1);--tint-primary-border:rgba(0,162,191,0.32)}[data-theme=light][data-accent=teal]{--primary:#00a2bf;--primary-on:#ffffff;--primary-hover:#00849b;--accent:#006b9c;--tint-primary:rgba(0,162,191,0.12);--tint-primary-soft:rgba(0,162,191,0.06);--tint-primary-border:rgba(0,162,191,0.24)}:root[data-accent=green]{--primary:#00ac2b;--primary-on:#ffffff;--primary-hover:#008822;--accent:#30db5b;--tint-primary:rgba(0,172,43,0.18);--tint-primary-soft:rgba(0,172,43,0.1);--tint-primary-border:rgba(0,172,43,0.32)}[data-theme=light][data-accent=green]{--primary:#00ac2b;--primary-on:#ffffff;--primary-hover:#008822;--accent:#1e7433;--tint-primary:rgba(0,172,43,0.12);--tint-primary-soft:rgba(0,172,43,0.06);--tint-primary-border:rgba(0,172,43,0.24)}:root[data-accent=pink]{--primary:#ff375f;--primary-on:#ffffff;--primary-hover:#ff1342;--accent:#ff748f;--tint-primary:rgba(255,55,95,0.18);--tint-primary-soft:rgba(255,55,95,0.1);--tint-primary-border:rgba(255,55,95,0.32)}[data-theme=light][data-accent=pink]{--primary:#ff2d55;--primary-on:#ffffff;--primary-hover:#ff0938;--accent:#c10e3f;--tint-primary:rgba(255,45,85,0.12);--tint-primary-soft:rgba(255,45,85,0.06);--tint-primary-border:rgba(255,45,85,0.24)}:root[data-accent=orange]{--primary:#d48100;--primary-on:#ffffff;--primary-hover:#b06b00;--accent:#ffb340;--tint-primary:rgba(212,129,0,0.18);--tint-primary-soft:rgba(212,129,0,0.1);--tint-primary-border:rgba(212,129,0,0.32)}[data-theme=light][data-accent=orange]{--primary:#d97f00;--primary-on:#ffffff;--primary-hover:#b56a00;--accent:#bd3100;--tint-primary:rgba(217,127,0,0.12);--tint-primary-soft:rgba(217,127,0,0.06);--tint-primary-border:rgba(217,127,0,0.24)}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}:root{--fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:17px;--fs-xl:20px;--fs-2xl:22px;--fs-3xl:28px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--control-h:36px}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Segoe UI Variable Text,Segoe UI,system-ui,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--bg);color:var(--text-primary);font-size:var(--fs-base);line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.modal-head h3,.oee-card .oee-value,.stat-card-value,.topbar-left h1,h1,h2,h3{letter-spacing:-.012em}[contenteditable=true]:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--accent)!important;outline-offset:2px}.date-input:focus-within,.field .date-input:focus-within,.field input:focus,.field select:focus,.field textarea:focus,.kh-picker input:focus,.search-box:focus-within,select.filter-select:focus,tbody td input:focus,tbody td select:focus,tbody td textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--tint-primary)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input,select,textarea{font-family:inherit}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.app-shell{display:flex;min-height:100vh}[data-region=sidebar]{width:232px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border-soft);display:flex;flex-direction:column;height:100vh;position:sticky;top:0;overflow-y:auto;transition:width .2s cubic-bezier(.25,.46,.45,.94)}[data-region=sidebar].collapsed{width:68px;overflow-x:hidden}[data-region=sidebar].collapsed .brand{justify-content:center;padding:18px 8px}[data-region=sidebar].collapsed .brand-name{display:none}[data-region=sidebar].collapsed .nav-group-label{margin:14px auto 6px;width:8px;height:8px;padding:0;border-radius:50%;overflow:hidden;text-indent:-999px}[data-region=sidebar].collapsed .nav-item{justify-content:center;padding:9px 0}[data-region=sidebar].collapsed .nav-item .chat-unread,[data-region=sidebar].collapsed .nav-item .nav-item-label,[data-region=sidebar].collapsed .nav-item .num{display:none}.sidebar-collapse-btn{flex-shrink:0;width:26px;height:26px;margin-left:auto;display:flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-tertiary)}.sidebar-collapse-btn:hover{color:var(--text-primary);border-color:var(--border-strong)}[data-region=sidebar].collapsed .sidebar-collapse-btn{margin-left:0}.brand{gap:10px;padding:18px 16px;border-bottom:1px solid var(--border-soft)}.brand,.brand-mark{display:flex;align-items:center}.brand-mark{width:28px;height:28px;border-radius:7px;flex-shrink:0;overflow:hidden;background:linear-gradient(135deg,var(--primary),var(--accent));justify-content:center;font-weight:700;font-size:var(--fs-sm);color:#fff}.brand-mark img{width:100%;height:100%;object-fit:cover}.brand-name{font-weight:600;font-size:var(--fs-base);line-height:1.2}.brand-name span{color:var(--text-tertiary);font-weight:400}.brand-name span,.nav-group-label{display:block;font-size:var(--fs-2xs)}.nav-group-label{margin:14px 0 6px 8px;padding:3px 10px;border-radius:10px;letter-spacing:.02em;color:var(--accent);font-weight:700;background:var(--tint-primary)}.nav-list{list-style:none;padding:0 0 0 8px}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:6px;font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:1px}.nav-item:hover{background:var(--hover-bg);color:var(--text-primary)}.nav-item .dot{width:6px;height:6px;border-radius:50%;background:var(--text-tertiary);flex-shrink:0}.nav-item .nav-icon{flex-shrink:0;opacity:.82;color:var(--text-tertiary);transition:opacity .15s ease,color .15s ease}.nav-item:hover .nav-icon{opacity:1;color:var(--text-primary)}.nav-item.active .nav-icon{opacity:1;color:var(--nav-active-fg)}.nav-item.active{background:var(--tint-primary);color:var(--nav-active-fg);font-weight:600}.nav-item.active .dot{background:var(--accent)}.nav-item .num{margin-left:auto;font-size:var(--fs-2xs);color:var(--text-secondary);background:var(--chip-bg);padding:1px 6px;border-radius:10px}.nav-item.active .num{background:transparent}.nav-item.disabled{opacity:.45;cursor:not-allowed}.nav-item-row{display:flex;align-items:center;gap:2px;margin-bottom:1px}.nav-item-row .nav-item{flex:1 1 auto;margin-bottom:0;min-width:0}.nav-toggle{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:6px;color:var(--text-tertiary);background:transparent;border:none}.nav-toggle:hover{background:var(--hover-bg);color:var(--text-primary)}.nav-toggle .nav-toggle-icon{transition:transform .15s ease}.nav-toggle[aria-expanded=true] .nav-toggle-icon{transform:rotate(180deg)}.nav-sublist{list-style:none;padding:0 8px 2px 20px;margin-bottom:2px}.nav-subitem{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:6px;font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:1px}.nav-subitem-icon{flex-shrink:0;color:var(--text-tertiary);opacity:.85}.nav-subitem:hover .nav-subitem-icon{color:var(--text-primary);opacity:1}.nav-subitem.active .nav-subitem-icon{color:var(--nav-active-fg);opacity:1}.nav-subitem-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.nav-subitem:hover{background:var(--hover-bg);color:var(--text-primary)}.nav-subitem.active{background:var(--tint-primary);color:var(--nav-active-fg);font-weight:600}.nav-subitem .tol-tag{margin-left:auto;flex-shrink:0}.sidebar-footer{margin-top:auto;padding:12px 16px;border-top:1px solid var(--border-soft);font-size:var(--fs-xs);color:var(--text-tertiary)}.sidebar-version{margin-top:6px;font-size:var(--fs-2xs);opacity:.8;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}[data-region=main]{flex:1 1;min-width:0;height:100vh;overflow-y:auto}[data-region=header]{position:sticky;top:0;z-index:5;background:var(--header-bg);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border-soft);padding:14px 28px;display:flex;align-items:center;justify-content:space-between}.topbar-left{border-left:3px solid var(--primary);padding-left:14px}.topbar-left h1{font-size:var(--fs-xl);font-weight:600;letter-spacing:-.02em;line-height:1.25}.topbar-left p{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:2px}.topbar-left .topbar-eyebrow{margin:0 0 2px;font-size:var(--fs-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary)}.topbar-controls-inline,.topbar-right{display:flex;align-items:center;gap:10px}.header-more-menu{position:relative;display:none}.header-more-btn{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer}.header-more-btn:hover{background:var(--tint-primary);color:var(--text-primary)}.header-back-mobile-btn,.header-refresh-btn{display:none}.header-refresh-btn .spin{animation:sync-spin .8s linear infinite;transform-origin:50% 50%}.header-more-panel{position:absolute;top:38px;right:0;min-width:190px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-pop);z-index:45;padding:6px;display:flex;flex-direction:column;gap:2px}.header-more-row{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:8px 10px;border-radius:8px;border:none;background:transparent;cursor:pointer;font-size:var(--fs-sm);color:var(--text-primary)}.header-more-row:hover{background:var(--surface-2)}.header-more-row.logout{color:var(--red)}.header-more-row.logout:hover{background:var(--tint-red)}.header-more-panel .theme-toggle.wide{width:100%;justify-content:flex-start;gap:9px;padding:8px 10px;border-radius:8px;background:transparent;border:none;font-size:var(--fs-sm)}.header-more-panel .theme-toggle.wide:hover{background:var(--surface-2)}.avatar-btn{background:none;border:none;padding:0;cursor:pointer;line-height:0}.screen{padding:var(--sp-5) var(--screen-px,28px) var(--sp-8)}.toolbar-tabs{padding:0 var(--screen-px,28px)}.toolbar-tabs .btn-sm{padding-left:14px}@media (max-width:860px){[data-region=header]{padding:10px 14px;gap:8px}[data-region=header] .topbar-left h1{font-size:var(--fs-sm);max-width:none;overflow:visible;text-overflow:unset;white-space:normal;line-height:1.25}[data-region=header] .topbar-left .topbar-eyebrow{font-size:var(--fs-2xs)}[data-region=header] .topbar-left .topbar-subtitle,[data-region=header] .topbar-right .cell-sub{display:none}[data-region=header] .topbar-right{gap:6px}.screen{padding:14px 12px 40px}.topbar-controls-inline{display:none}.header-more-menu{display:inline-block}.header-back-mobile-btn,.header-refresh-btn{display:flex}[data-region=sidebar]{width:68px!important;overflow-x:hidden}[data-region=sidebar] .brand-name,[data-region=sidebar] .nav-item .chat-unread,[data-region=sidebar] .nav-item .nav-item-label,[data-region=sidebar] .nav-item .num,[data-region=sidebar] .nav-sublist,[data-region=sidebar] .nav-toggle,[data-region=sidebar] .sidebar-collapse-btn,[data-region=sidebar] .sidebar-footer{display:none}[data-region=sidebar] .brand{justify-content:center;padding:18px 8px}[data-region=sidebar] .nav-group-label{margin:14px auto 6px;width:8px;height:8px;padding:0;border-radius:50%;overflow:hidden;text-indent:-999px}[data-region=sidebar] .nav-item{justify-content:center;padding:9px 0}}.mobile-global-nav{display:none;position:fixed;left:0;right:0;bottom:0;z-index:40;height:60px;padding:0 4px;background:var(--surface);border-top:1px solid var(--border);box-shadow:var(--shadow-modal);align-items:center;justify-content:space-around}.mobile-global-nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1 1;padding:6px 0;background:none;border:none;cursor:pointer;color:var(--text-tertiary);font-size:var(--fs-2xs);text-decoration:none}.mobile-global-nav-item.active{color:var(--accent)}.mobile-global-nav-qr{flex-shrink:0;width:52px;height:52px;margin-top:-26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--primary);color:var(--primary-on);border:3px solid var(--surface);box-shadow:var(--shadow-modal);cursor:pointer}.mobile-global-nav-qr:hover{background:var(--primary-hover)}@media (max-width:860px){.mobile-global-nav{display:flex}[data-region=main]{padding-bottom:60px}[data-region=sidebar]{display:none}}.modal-overlay.sheet-bottom{align-items:flex-end;padding:0}.sx-menu-sheet{width:100%;max-height:82vh;display:flex;flex-direction:column;background:var(--surface);border-radius:16px 16px 0 0;box-shadow:var(--shadow-modal)}.sx-menu-sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--border-strong);margin:10px auto 4px;flex-shrink:0}.sx-menu-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:6px 16px 10px;border-bottom:1px solid var(--border);flex-shrink:0}.sx-menu-sheet-head h3{margin:0;font-size:var(--fs-md)}.sx-menu-sheet-body{overflow-y:auto;padding:14px 16px 24px}.mobile-menu-grid{display:flex;flex-wrap:wrap;gap:16px 6px;padding:2px 2px 18px;justify-content:flex-start}.mobile-menu-grid .icon-label-btn{width:72px}.mobile-menu-grid .icon-label-btn .icon-label-circle,.mobile-menu-grid .icon-label-btn:hover .icon-label-circle{background:transparent;border-color:transparent}.mobile-menu-back{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:6px 4px;margin-bottom:4px;border:none;background:none;font-size:var(--fs-md);font-weight:600;color:var(--text-primary);cursor:pointer}.mobile-menu-back:active,.mobile-menu-back:hover{color:var(--accent)}.sx-menu-group+.sx-menu-group{margin-top:20px}.sx-menu-group-label{margin:0 0 10px;font-size:var(--fs-2xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;font-size:var(--fs-sm);font-weight:500;border:1px solid transparent;background:var(--chip-bg);color:var(--text-primary);min-height:32px;white-space:nowrap}.btn:hover{background:var(--hover-bg);border-color:var(--border)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-on)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-ghost{background:transparent;border-color:transparent;color:var(--accent)}.btn-ghost:hover{background:var(--tint-primary-soft);color:var(--accent)}.btn-danger{background:transparent;border-color:var(--danger-border);color:var(--red)}.btn-danger:hover{border-color:var(--red)}.btn-sm{padding:5px 10px;font-size:var(--fs-xs)}.toolbar{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap}.search-box,.toolbar{display:flex;align-items:center}.search-box{gap:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:7px 10px;min-width:240px;color:var(--text-tertiary);font-size:var(--fs-sm)}.search-box input{background:transparent;border:none;outline:none;color:var(--text-primary);font-size:var(--fs-sm);width:100%}input.filter-select,select.filter-select{background:var(--surface-2);border:1px solid var(--border);color:var(--text-secondary);padding:7px 10px;border-radius:10px;font-size:var(--fs-sm);outline:none}select.filter-select option{background:var(--surface);color:var(--text-primary)}.toolbar .spacer{flex:1 1}.toolbar>.btn,.toolbar>.date-range-filter,.toolbar>.filter-select-btn,.toolbar>.search-box,.toolbar>input.filter-select,.toolbar>select.filter-select{min-height:var(--control-h);border-radius:10px}.toolbar>.search-box{padding-top:0;padding-bottom:0}@media (max-width:860px){.toolbar{flex-wrap:wrap;overflow-x:visible}.toolbar::-webkit-scrollbar{display:none}.toolbar>*{order:3;flex-shrink:1}.toolbar>.date-range-filter,.toolbar>.filter-date,.toolbar>.filter-quick-btn,.toolbar>.filter-select-btn,.toolbar>.sep,.toolbar>input.filter-select,.toolbar>select.filter-select{order:1;flex-shrink:0}.toolbar>.search-box{order:2;flex:1 1 100%;min-width:0}}.table-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow-card);overflow:hidden}.table-scroll{overflow-x:auto;overflow-y:auto;max-height:65vh}table{width:100%;border-collapse:collapse}thead th{text-align:left;font-size:var(--fs-xs);letter-spacing:.02em;color:var(--primary-on);font-weight:700;padding:11px 14px;border-bottom:1px solid var(--border-soft);background:var(--primary);white-space:nowrap;top:0;z-index:2;box-shadow:0 1px 0 var(--border-soft),0 4px 10px -6px rgba(0,0,0,.35)}.th-resizable,thead th{position:sticky}.th-resize-handle{position:absolute;top:0;right:0;bottom:0;width:6px;cursor:col-resize;touch-action:none;-webkit-user-select:none;user-select:none}.th-resize-handle:hover{background:rgba(255,255,255,.35)}.th-sort-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer}.th-sort-icon{font-size:var(--fs-2xs);opacity:.75}tbody td{padding:14px 16px;border-bottom:1px solid var(--border-soft);font-size:var(--fs-sm);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .12s ease}tbody tr:hover{background:var(--hover-bg)}tbody tr.dim{opacity:.55}tbody td input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),tbody td select,tbody td textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:6px 10px;color:var(--text-primary);font-size:var(--fs-sm);outline:none;width:100%}tbody td select option{background:var(--surface);color:var(--text-primary)}tbody td input:focus,tbody td select:focus,tbody td textarea:focus{border-color:var(--primary)}tbody td input:disabled,tbody td select:disabled{opacity:.6}.cell-main{font-weight:600;color:var(--text-primary)}.cell-main,.cell-sub{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cell-sub{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:1px}.cell-clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.payload-cell{display:block;width:100%;max-width:420px;text-align:left;background:none;border:0;padding:0;margin:0;color:inherit;font:inherit;cursor:pointer}.payload-cell:hover{color:var(--accent)}td.cell-clamp2,td.cell-main,td.cell-sub{display:table-cell;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-nowrap{white-space:nowrap}.mono,.num-cell{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.num-cell{text-align:right}.badge,td.num-cell{white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:var(--fs-2xs);font-weight:600}.badge .dot{width:6px;height:6px;border-radius:50%}.badge-active{background:var(--tint-green);color:var(--green)}.badge-active .dot{background:var(--green)}.badge-expired{background:var(--tint-gray);color:var(--badge-expired-fg)}.badge-expired .dot{background:var(--gray)}.badge-pending{background:var(--tint-amber);color:var(--amber)}.badge-pending .dot{background:var(--amber)}td.o-sua-tay{background:var(--tint-amber);box-shadow:inset 0 -2px 0 var(--amber)}.nhan-dong-luong{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.badge-info{background:var(--tint-primary);color:var(--accent)}.badge-info .dot{background:var(--accent)}.badge-danger{background:var(--tint-red);color:var(--red)}.badge-danger .dot{background:var(--red)}.loai-inline-btn{background:none;border:none;padding:0;cursor:pointer;border-radius:20px}.loai-inline-btn:hover .badge{filter:brightness(1.15)}.loai-inline-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.loai-inline-select{font-size:var(--fs-2xs);font-weight:600;padding:3px 6px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text-primary)}.meter{height:7px;border-radius:4px;background:var(--tint-gray);overflow:hidden}.meter-fill{height:100%;border-radius:4px;background:var(--primary)}.meter-fill.green{background:var(--green)}.meter-fill.amber{background:var(--amber)}.meter-fill.red{background:var(--red)}.oee-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.oee-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:16px}.oee-card .oee-label{font-size:var(--fs-2xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px}.oee-card .oee-value{font-size:24px;font-weight:700;margin-bottom:10px}.oee-card.total{background:linear-gradient(135deg,var(--tint-primary),transparent);border-color:var(--primary)}@media (max-width:900px){.oee-grid{grid-template-columns:repeat(2,1fr)}}div.row-actions{display:flex;gap:6px;justify-content:center;align-items:center}td.row-actions{text-align:center;white-space:nowrap}td.row-actions .icon-label-btn{display:inline-flex;vertical-align:middle;margin:0 3px}.icon-btn{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;color:var(--text-tertiary);font-size:var(--fs-sm)}.icon-btn:hover{background:var(--surface-2);color:var(--text-primary);border-color:var(--border)}.icon-btn.danger:hover{color:var(--red);border-color:var(--danger-border)}.ma-ten-nv{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ma-nv{font-weight:600}.ten-nv{color:var(--text-secondary);font-weight:400}th.th-chon-in{width:44px}td.cell-chon-in,th.th-chon-in{text-align:center;white-space:nowrap}.chon-in-btn{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);color:var(--accent);cursor:pointer}.chon-in-btn:hover:not(:disabled){background:var(--tint-primary-border)}.chon-in-btn:disabled{opacity:.45;cursor:default}.chon-in-btn[aria-pressed=false]{background:transparent;border-color:var(--border);color:var(--text-tertiary)}.cell-icon-btn{width:26px;height:26px;border-radius:50%;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);color:var(--accent);cursor:pointer}.cell-icon-btn:hover{background:var(--tint-primary-border)}.cell-icon-btn.dang-bat{background:var(--primary);border-color:var(--primary);color:#fff}.cell-icon-btn.dang-bat:hover{background:var(--primary);opacity:.85}.cell-icon-btn:disabled{opacity:.45;cursor:progress}.cell-icon-btn.xanh-duong{background:var(--tint-blue);border-color:var(--tint-blue-border);color:var(--blue)}.cell-icon-btn.xanh-duong:hover{background:var(--tint-blue-border)}.col-chooser{position:relative;display:inline-flex}.col-chooser-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-pop);padding:8px;min-width:220px;max-height:340px;overflow-y:auto}.col-chooser-pop .cc-title{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);padding:4px 6px 8px}.col-chooser-pop .cc-hint{font-size:var(--fs-2xs);color:var(--text-tertiary);padding:0 6px 6px}.col-chooser-pop label{display:flex;align-items:center;gap:8px;padding:5px 6px;font-size:var(--fs-sm);border-radius:6px;cursor:pointer;color:var(--text-secondary)}.col-chooser-pop label:hover{background:var(--surface-2);color:var(--text-primary)}.col-chooser-pop label.cc-row.dragging{opacity:.4}.check-list{display:flex;flex-direction:column;gap:2px;border:1px solid var(--border);border-radius:8px;padding:4px}.check-list label{display:flex;align-items:center;gap:8px;padding:6px 8px;font-size:var(--fs-sm);border-radius:6px;cursor:pointer;color:var(--text-secondary)}.check-list label:hover{background:var(--surface-2);color:var(--text-primary)}.check-list label .check-count{margin-left:auto;color:var(--text-tertiary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@media (max-width:860px){.check-list label{min-height:44px}}.col-chooser-pop .cc-drag-handle{flex-shrink:0;display:inline-flex;color:var(--text-tertiary);cursor:grab}.col-chooser-pop .cc-foot{margin-top:6px;padding-top:8px;border-top:1px solid var(--border-soft);display:flex;gap:6px}.col-chooser-pop .cc-foot button{flex:1 1}.filter-select-pop{max-height:260px;display:flex;flex-direction:column;gap:2px;z-index:60}.filter-select-opt{text-align:left;padding:7px 10px;border-radius:6px;border:none;background:transparent;cursor:pointer;font-size:var(--fs-sm);color:var(--text-secondary)}.filter-select-opt:hover{background:var(--surface-2);color:var(--text-primary)}.filter-select-opt.active{background:var(--tint-primary-soft);color:var(--accent);font-weight:600}.table-footer{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:var(--fs-xs);color:var(--text-tertiary);border-top:1px solid var(--border-soft);flex-wrap:wrap;gap:10px}.pager{display:flex;gap:4px}.pager button{min-width:26px;height:26px;padding:0 6px;border-radius:6px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-secondary);font-size:var(--fs-xs)}.pager button.active{background:var(--primary);border-color:var(--primary);color:var(--primary-on)}.pager button:disabled{opacity:.35;cursor:not-allowed}.tol-tag{font-size:var(--fs-2xs);padding:2px 7px;border-radius:5px;background:var(--chip-bg);color:var(--text-secondary)}.tol-note{gap:6px}.tol-note,.tol-note-btn{display:flex;align-items:center}.tol-note-btn{width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text-tertiary);justify-content:center;cursor:pointer;flex-shrink:0}.tol-note-btn:hover,.tol-note-btn[aria-expanded=true]{background:var(--tint-primary-soft);border-color:var(--tint-primary-border);color:var(--accent)}.stat-card-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-bottom:var(--sp-4)}.stat-card{flex:1 1 180px;max-width:320px;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--border-soft);box-shadow:var(--shadow-card)}.stat-card-label{font-size:var(--fs-xs);color:var(--text-tertiary);margin-bottom:4px}.stat-card-value{font-size:var(--fs-3xl);font-weight:700;color:var(--text-primary);letter-spacing:-.022em;line-height:1.15}.stat-card-icon{color:var(--tint-primary-border);flex-shrink:0}thead tr.th-nhom th{position:static;font-size:var(--fs-xs);padding-top:6px;padding-bottom:6px}@media (max-width:860px){.stat-card-row.gon{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.stat-card-row.gon .stat-card{max-width:none;padding:var(--sp-3)}.stat-card-row.gon .stat-card-value{font-size:var(--fs-xl)}.stat-card-row.gon .stat-card-icon{display:none}}.date-range-filter{display:inline-flex;align-items:center;gap:6px}.date-range-filter-pop{display:flex;flex-direction:column;gap:8px;padding:10px;min-width:270px;max-width:calc(100vw - 32px);max-height:none;z-index:60}.date-range-filter-apply{justify-content:center;margin-top:2px}.date-range-filter-fields{display:flex;gap:6px}.date-range-filter-field{flex:1 1;display:flex;flex-direction:column;gap:2px;text-align:left;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:6px 8px;cursor:pointer}.date-range-filter-field.active{background:var(--tint-primary-soft);border-color:var(--primary)}.date-range-filter-field-label{font-size:var(--fs-2xs);color:var(--text-tertiary)}.date-range-filter-field-value{font-size:var(--fs-sm);color:var(--text-primary);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.date-range-filter-cal{padding-top:2px}.date-input-cal-day.in-range{background:var(--tint-primary-soft);border-radius:0}.date-range-filter-chip{gap:4px;flex-shrink:0;font-size:var(--fs-2xs);font-weight:600;background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);border-radius:999px;padding:4px 6px 4px 10px;white-space:nowrap}.date-range-filter-chip,.date-range-filter-chip button{display:inline-flex;align-items:center;color:var(--accent)}.date-range-filter-chip button{justify-content:center;background:transparent;border:none;cursor:pointer;padding:2px}.date-range-filter-chip button:hover{color:var(--danger,var(--red))}.icon-label-btn.active .icon-label-circle{background:var(--tint-primary);border-color:var(--primary)}.icon-label-btn.active .icon-label-text{color:var(--accent);font-weight:600}@media (min-width:861px){.toolbar{align-items:center}.toolbar .icon-label-btn{flex-direction:row;width:auto;height:36px;flex-shrink:0;gap:7px;padding:0 12px;border-radius:9px;border:1px solid var(--border);background:var(--surface);transition:background .15s ease,border-color .15s ease}.toolbar .icon-label-btn:not(.cta) .icon-label-circle{width:auto;height:auto;flex-shrink:0;background:none;border:none;border-radius:0;color:var(--accent)}.toolbar .icon-label-btn:not(.cta):hover .icon-label-circle{background:none}.toolbar .icon-label-btn:not(.cta):hover{background:var(--surface-2);border-color:var(--text-tertiary)}.toolbar .icon-label-btn:not(.cta) .icon-label-text{white-space:nowrap;font-size:var(--fs-sm);color:var(--text-secondary);max-width:none;word-break:normal;text-align:left}.toolbar .icon-label-btn.active,.toolbar .icon-label-btn.filter-quick-btn.cta{background:var(--tint-primary-soft);border-color:var(--tint-primary-border)}.toolbar .icon-label-btn.active .icon-label-text,.toolbar .icon-label-btn.filter-quick-btn.cta .icon-label-text{color:var(--accent);font-weight:600}.toolbar .btn.btn-sm,.toolbar .filter-select,.toolbar .icon-label-btn.cta,.toolbar .search-box{height:36px}}.role-chip{font-size:var(--fs-xs);font-weight:600;padding:3px 10px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-secondary);text-decoration:line-through}.role-chip.active{background:var(--tint-primary);border-color:var(--tint-primary-border);color:var(--accent);text-decoration:none}.role-chip:disabled{cursor:default;opacity:.7}.role-chip.active.vo-hieu{background:var(--tint-red);border-color:var(--tint-red-border);color:var(--danger,#b42318);-webkit-text-decoration:underline dashed;text-decoration:underline dashed;text-underline-offset:2px}.quyen-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;text-align:left;cursor:pointer;font-family:inherit;font-size:var(--fs-xs);line-height:1.35;padding:3px 9px;border-radius:10px;border:1px solid transparent}.quyen-chip.duoc{background:var(--tint-primary);border-color:var(--tint-primary-border);color:var(--accent)}.quyen-chip.cam{background:var(--tint-red);border-color:var(--tint-red-border);color:var(--danger,var(--red));text-decoration:line-through}.quyen-chip.chua-cau-hinh,.quyen-chip.mac-dinh{border-style:dashed}.quyen-chip:hover{filter:brightness(1.08)}.quyen-chip.view{display:flex;width:100%;font-size:var(--fs-sm);padding:5px 10px}.quyen-chip-ly-do{color:var(--text-tertiary);font-size:var(--fs-xs);font-weight:400;text-decoration:none}.quyen-chip-list{margin-left:18px;margin-top:5px;display:flex;flex-wrap:wrap;gap:6px}.quyen-chip.hai-lop{background:var(--tint-amber);border-color:var(--amber);border-width:2px;color:var(--amber-fill)}.quyen-view-row.cum-hai-lop{border-left:3px solid var(--amber);background:var(--tint-amber);border-radius:8px;padding:6px 8px 8px}.quyen-chip.view.hai-lop{border-color:var(--amber);border-width:2px}.quyen-thu-tu-2lop{margin:6px 0 2px 18px;color:var(--amber-fill)}.quyen-badge-2lop{margin-left:auto;background:var(--tint-amber);border:1px solid var(--amber);color:var(--amber-fill);border-radius:999px;padding:1px 8px;font-size:var(--fs-xs);font-weight:600;text-decoration:none;white-space:nowrap}@keyframes dong-nhay-toi-fade{0%,60%{background:var(--tint-amber)}to{background:transparent}}.dong-nhay-toi>td{animation:dong-nhay-toi-fade 4s ease-out forwards}.dong-nhay-toi>td:first-child{box-shadow:inset 3px 0 0 var(--amber)}.quyen-view-row{padding:8px 14px;border-top:1px solid var(--border-soft)}.quyen-phanhe-head{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;background:none;border:none;cursor:pointer;font-family:inherit;font-size:var(--fs-md);font-weight:600;color:var(--text-primary);text-align:left}.quyen-phanhe-head:hover{background:var(--surface-2)}.quyen-phanhe-caret{color:var(--text-tertiary);width:12px;flex-shrink:0}.quyen-phanhe-ten{flex:1 1;min-width:0}.quyen-dem{font-size:var(--fs-xs);font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}.quyen-dem.duoc{background:var(--tint-primary);color:var(--accent)}.quyen-dem.cam{background:var(--tint-red);color:var(--danger,var(--red))}.ma-tran-quyen .mtq-col-ten{min-width:260px}.ma-tran-quyen .mtq-col-role{min-width:58px}.ma-tran-quyen td.o-chua-cau-hinh{background:var(--tint-red)}.ma-tran-quyen td.o-chua-cau-hinh .cell-sub{color:var(--danger,var(--red));font-weight:700}@media (max-width:860px){.quyen-chip-list{margin-left:8px;gap:5px}.quyen-chip{white-space:normal;overflow-wrap:anywhere;max-width:100%}.quyen-chip.view{flex-direction:column;align-items:flex-start;gap:2px}.quyen-view-row{padding:8px 10px}.toolbar.toolbar-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}}@media (max-width:860px){.toolbar.toolbar-tabs::-webkit-scrollbar{display:none}.toolbar.toolbar-tabs>*{order:0;flex:0 0 auto}.role-chip{font-size:10px;padding:1px 6px;border-radius:8px}td:has(.role-chip),td:has(>.role-chip){line-height:1.5}.screen-block table:has(.role-chip){table-layout:fixed;width:100%}.screen-block table:has(.role-chip) td{overflow-wrap:anywhere}.ma-tran-quyen{font-size:11px;table-layout:fixed;width:max-content}.ma-tran-quyen thead th:first-child{position:sticky;left:0;z-index:4}.ma-tran-quyen .mtq-col-role{width:34px;min-width:34px;padding:4px 2px}.ma-tran-quyen td:not(:first-child){padding:4px 2px}.ma-tran-quyen .mtq-col-ten,.ma-tran-quyen td:first-child{width:130px;min-width:130px;max-width:130px;padding-right:6px}.ma-tran-quyen td:first-child>*{white-space:normal;overflow-wrap:anywhere}}.catalog-note{margin-top:20px}.catalog-note .callout{margin-top:10px}.callout{display:flex;gap:10px;padding:12px 14px;background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);border-radius:var(--radius);font-size:var(--fs-sm);color:var(--text-secondary);margin-top:20px}.callout b{color:var(--text-primary)}.callout.warn{background:var(--tint-red);border-color:var(--tint-red-border)}.empty-state{padding:40px 14px;text-align:center;color:var(--text-tertiary);font-size:var(--fs-sm)}.bao-cao-grid{display:grid;gap:12px;margin-bottom:16px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.bao-cao-card{position:relative;display:flex;align-items:flex-start;gap:12px;padding:14px 16px;min-height:96px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);transition:border-color .15s,box-shadow .15s}.bao-cao-card:hover{border-color:var(--tint-primary-border);box-shadow:var(--shadow-card)}.bao-cao-card-mo{background:none;border:none;padding:0;margin:0;text-align:left;cursor:pointer;font:inherit;color:inherit;min-width:0}.bao-cao-card-mo:after{content:"";position:absolute;inset:0;border-radius:inherit}.bao-cao-card-actions,.bao-cao-quyen{position:relative;z-index:1}.bao-cao-card-mo:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}@supports selector(:has(*)){.bao-cao-card-mo:focus-visible{outline:none}.bao-cao-card:has(.bao-cao-card-mo:focus-visible){outline:2px solid var(--primary);outline-offset:2px}}.bao-cao-card.is-hidden{opacity:.6}.bao-cao-card-icon{flex-shrink:0;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);color:var(--primary)}.bao-cao-card-body{flex:1 1;min-width:0}.bao-cao-card-body .cell-main{min-width:0}.bao-cao-card-body .cell-main,.bao-cao-card-head{display:flex;align-items:flex-start;gap:8px}.bao-cao-card-head .cell-main{flex:1 1}.bao-cao-card-actions{flex-shrink:0;display:flex;gap:4px}.bao-cao-quyen{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.bao-cao-quyen-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border-soft);font-size:var(--fs-2xs);color:var(--text-secondary)}.bao-cao-quyen-chip.dem{background:var(--tint-primary-soft);border-color:var(--tint-primary-border);color:var(--text-primary)}.bao-cao-quyen-chip.dem svg{color:var(--primary)}.bao-cao-quyen-chip.canh-bao{background:var(--tint-amber);border-color:var(--tint-amber-border,var(--border));color:var(--amber)}.bao-cao-quyen-chip{white-space:nowrap;overflow:hidden}.bao-cao-quyen-chip>span{display:inline-flex;align-items:baseline;min-width:0;max-width:220px}.bao-cao-quyen-chip .ma-nv{font-weight:600;flex-shrink:0}.bao-cao-quyen-chip .ten-nv{display:inline;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:720px){.bao-cao-grid{grid-template-columns:1fr}}@media (hover:none){.bao-cao-card-actions .icon-label-btn{min-width:44px;padding-left:8px;padding-right:8px}}.bao-cao-list{display:flex;flex-direction:column}.bao-cao-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border-soft);cursor:pointer}.bao-cao-row:last-child{border-bottom:none}.bao-cao-row:hover{background:var(--surface-2)}.bao-cao-row.active{background:var(--tint-primary-soft)}.bao-cao-row.is-hidden{opacity:.6}.bao-cao-row .bao-cao-row-main{min-width:0}.bao-cao-row .bao-cao-row-main .cell-main{display:flex;align-items:center;gap:8px}.bao-cao-drilldown-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}.bao-cao-drilldown-head h2{font-size:var(--fs-md);font-weight:600;color:var(--text-primary)}.bao-cao-drilldown-head .spacer{flex:1 1}@media (max-width:720px){.bao-cao-drilldown-head{flex-wrap:wrap}.bao-cao-drilldown-head h2{order:-1;flex-basis:100%}}.bao-cao-iframe-wrap{border:1px solid var(--border-soft);border-radius:var(--radius);overflow:hidden;background:var(--surface);margin-bottom:16px}.bao-cao-iframe-wrap iframe{display:block;width:100%;min-height:var(--bc-chieu-cao,480px);border:none}@media (max-width:720px){.bao-cao-iframe-wrap iframe{min-height:max(360px,calc(100dvh - 250px))}}.bao-cao-iframe-wrap.toan-man-hinh{position:fixed;inset:0;z-index:60;margin:0;border:none;border-radius:0}.bao-cao-iframe-wrap.toan-man-hinh iframe{height:100dvh;min-height:100dvh}.bao-cao-thoat-toan-man-hinh{position:fixed;top:calc(env(safe-area-inset-top, 0px) + 10px);right:10px;z-index:61}.bao-cao-error-banner{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;min-height:480px;justify-content:center;padding:20px;color:var(--amber)}@media (max-width:720px){.bao-cao-error-banner{min-height:360px}}.bao-cao-error-banner p{color:var(--text-secondary);font-size:var(--fs-sm);max-width:420px}.hdsd-title{font-size:var(--fs-md);font-weight:600;color:var(--text-primary);margin-bottom:10px}.ProseMirror,.hdsd-content{font-size:var(--fs-base);line-height:1.6;color:var(--text-primary)}.ProseMirror h1,.hdsd-content h1{font-size:var(--fs-xl);font-weight:700;margin:14px 0 8px}.ProseMirror h2,.hdsd-content h2{font-size:var(--fs-lg);font-weight:700;margin:12px 0 6px}.ProseMirror h3,.hdsd-content h3{font-size:var(--fs-md);font-weight:600;margin:10px 0 6px}.ProseMirror p,.hdsd-content p{margin:0 0 10px;text-align:justify}.hdsd-content p:empty:before{content:"\00a0"}.hdsd-content .hd-dau-trang{display:flex;gap:12px;align-items:flex-start;font-size:12px;line-height:1.6;color:#000;text-align:left}.hdsd-content .hd-dau-trang img{width:64px;height:64px;object-fit:contain;flex-shrink:0;margin:0;border-radius:0}.hdsd-content .hd-dau-trang .ten{font-weight:700;font-size:13px}.hdsd-content td:has(>.hd-dau-trang)+td,.hdsd-content td:has(>.hd-dau-trang)+td *{white-space:nowrap}.hdsd-content td:has(>.hd-dau-trang)+td{width:1%}.hdsd-content td:has(img[alt=MA_QR]){width:70px;padding-right:10px}.hdsd-content td:has(img[alt=MA_QR])+td{padding-right:80px}.hdsd-content td:has(img[alt=MA_QR])+td h1{text-align:center}.hdsd-content table.hd-bang-hang{width:100%;border-collapse:collapse;margin:6px 0 4px;font-size:13px;line-height:1.45}.hdsd-content table.hd-bang-hang td,.hdsd-content table.hd-bang-hang th{border:1px solid #000;padding:5px 7px;vertical-align:top;color:#000}.hdsd-content table.hd-bang-hang thead th{background:#f2f2f2;font-weight:700;text-align:center;vertical-align:middle;font-size:12px}.hdsd-content table.hd-bang-hang tfoot td span,.hdsd-content table.hd-bang-hang thead th span{font-weight:400;font-style:italic;font-size:11.5px}.hdsd-content table.hd-bang-hang th.stt{width:6%}.hdsd-content table.hd-bang-hang th.dvt{width:8%}.hdsd-content table.hd-bang-hang th.sl{width:11%}.hdsd-content table.hd-bang-hang th.dg{width:15%}.hdsd-content table.hd-bang-hang th.tt{width:16%}.hdsd-content table.hd-bang-hang td.so{text-align:right;white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hdsd-content table.hd-bang-hang td.giua{text-align:center}.hdsd-content table.hd-bang-hang tfoot td{font-weight:700;text-align:right}.hdsd-content table.hd-bang-hang tr{page-break-inside:avoid;break-inside:avoid}.ProseMirror ol,.ProseMirror ul,.hdsd-content ol,.hdsd-content ul{margin:0 0 10px;padding-left:22px}.ProseMirror li,.hdsd-content li{margin-bottom:4px;text-align:justify}.ProseMirror img,.hdsd-content img{display:block;max-width:100%;border-radius:6px;margin:6px auto}.ProseMirror a,.hdsd-content a{color:var(--accent)}.ProseMirror code,.hdsd-content code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.92em;background:var(--chip-bg);padding:1px 5px;border-radius:4px}.ProseMirror thead th,.hdsd-content thead th{font-weight:700;border-bottom:1px solid var(--border-soft)}.ProseMirror table,.hdsd-content table{width:100%;border-collapse:collapse;margin:0 0 10px;table-layout:auto}.ProseMirror td,.ProseMirror th,.hdsd-content td,.hdsd-content th{border:none;padding:3px 10px 3px 0;text-align:left;vertical-align:top}.ProseMirror td:last-child,.ProseMirror th:last-child,.hdsd-content td:last-child,.hdsd-content th:last-child{padding-right:0}.ProseMirror td p,.ProseMirror th p,.hdsd-content td p,.hdsd-content th p{margin:0 0 4px}.ProseMirror td,.ProseMirror th{border:1px dashed var(--border-soft);padding:6px 10px}.print-sheet h1{text-align:center;margin:4px 0 14px;font-size:var(--fs-2xl)}.ProseMirror:focus{outline:none}.hdsd-layout{display:flex;align-items:flex-start;gap:20px}.hdsd-layout .hdsd-main{flex:1 1 auto;min-width:0}.hdsd-toc{flex:0 0 230px;max-width:260px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:12px;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto}.hdsd-toc-header{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--text-tertiary)}.hdsd-toc ul{list-style:none;display:flex;flex-direction:column;gap:1px}.hdsd-toc li.hdsd-toc-lv2{padding-left:8px}.hdsd-toc li.hdsd-toc-lv3{padding-left:18px}.hdsd-toc button{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;font-family:inherit;font-size:var(--fs-sm);line-height:1.4;color:var(--text-secondary);padding:5px 8px;border-radius:6px}.hdsd-toc li.hdsd-toc-lv3 button{font-size:var(--fs-xs);color:var(--text-tertiary)}.hdsd-toc button:hover{background:var(--surface-2);color:var(--text-primary)}.hdsd-toc button.active{background:var(--tint-primary-soft);color:var(--accent);font-weight:600}@media (max-width:1100px){.hdsd-layout{flex-direction:column}.hdsd-toc{position:static;max-height:260px;max-width:none;flex-basis:auto}}.excel-box,.sync-box{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;padding:10px 14px;background:var(--surface-2);border:1px solid var(--border-soft);border-radius:var(--radius)}.sync-box .src-label,.sync-meta{font-size:var(--fs-xs);color:var(--text-tertiary)}.sync-box .src-label code{background:var(--chip-bg);padding:1px 5px;border-radius:4px}.sync-meta{margin-left:auto}.sync-btn{display:inline-flex;align-items:center;gap:6px;min-width:176px;justify-content:center}.sync-btn .ic.spin{display:inline-block;animation:sync-spin .8s linear infinite}@keyframes sync-spin{to{transform:rotate(1turn)}}.icon-spin{animation:sync-spin 1.8s linear infinite;transform-origin:50% 50%}@media (prefers-reduced-motion:reduce){.icon-spin{animation:none}}.badge.badge-dang-chay,.map-side-row .sr-sub.sr-dang-chay{display:inline-flex;align-items:center;gap:4px}.map-side-row .sr-sub.sr-dang-chay{color:var(--green);font-weight:600}.sync-result{color:var(--green);gap:5px}.btn-excel-tmpl,.btn-excel-upload,.sync-result{font-size:var(--fs-xs);display:inline-flex;align-items:center}.btn-excel-tmpl,.btn-excel-upload{gap:6px;background:transparent;color:var(--text-secondary);padding:6px 14px;border-radius:6px;font-weight:500;cursor:pointer;white-space:nowrap;font-family:inherit;border:1px solid var(--border)}.btn-excel-upload{border-style:dashed}.btn-excel-tmpl:hover,.btn-excel-upload:hover{border-color:var(--primary);color:var(--text-primary)}.btn-excel-upload:disabled{cursor:wait;opacity:.7}.excel-result{display:flex;flex-direction:column;gap:3px;padding:5px 12px;border-radius:8px;font-size:var(--fs-xs);font-weight:500;max-width:420px}.excel-result.ok{background:rgba(34,197,94,.12);color:var(--green);border:1px solid rgba(34,197,94,.35)}.excel-result.err{background:var(--tint-red);color:var(--red);border:1px solid var(--tint-red-border)}.toast-host{position:fixed;right:20px;bottom:20px;z-index:60;display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:8px;background:var(--surface);border:1px solid var(--border-soft);box-shadow:var(--shadow-card);color:var(--green);font-size:var(--fs-sm);font-weight:500}.toast-host span{color:var(--text-primary)}.modal-overlay{position:fixed;inset:0;background:var(--overlay);z-index:70;display:flex;align-items:center;justify-content:center;padding:20px}.detail-panel-backdrop{z-index:55}.modal-card{width:760px;max-width:96vw;max-height:92vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-modal)}.modal-card.narrow{width:460px}.modal-card.wide{width:min(920px,96vw)}.modal-card.xl{width:min(1320px,96vw)}.qr-scanner-overlay{position:fixed;inset:0;z-index:60;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center}.qr-scanner-card{width:min(90vw,400px);background:#000;border-radius:12px;overflow:hidden}.qr-scanner-head{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:rgba(255,255,255,.1);color:#fff}.qr-scanner-head span{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:var(--fs-sm)}.qr-scanner-head button{background:none;border:none;color:#fff;cursor:pointer;display:flex;padding:2px}.qr-scanner-video-wrap{position:relative;aspect-ratio:4/3;background:#111}.qr-scanner-video-wrap video{width:100%;height:100%;object-fit:cover}.qr-scanner-frame{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.qr-scanner-frame div{width:60%;aspect-ratio:1;border:2px solid rgba(255,255,255,.8);border-radius:8px;box-shadow:0 0 0 9999px rgba(0,0,0,.4)}.qr-scanner-detected{background:rgba(0,180,0,.3);font-size:42px;color:#fff}.qr-scanner-detected,.qr-scanner-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.qr-scanner-fallback{flex-direction:column;padding:16px;gap:14px}.qr-scanner-fallback p{color:#f88;margin:0}.qr-scanner-fallback p,.qr-scanner-hint{text-align:center;font-size:var(--fs-xs)}.qr-scanner-hint{padding:10px 14px;color:rgba(255,255,255,.6)}.search-box-icon-btn{background:none;border:none;padding:0;cursor:pointer;color:var(--text-tertiary);display:flex;align-items:center;flex-shrink:0}.search-box-icon-btn:hover{color:var(--text-primary)}.mirror-map-split{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}@media (max-width:1100px){.mirror-map-split{grid-template-columns:1fr}}.mirror-map-split .table-card{margin:0}.split-layout{display:flex;align-items:flex-start;gap:20px}.split-layout .split-main{flex:1 1 auto;min-width:0}.detail-panel{flex:0 0 460px;max-width:46vw;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-modal);position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:hidden;animation:detailPanelIn .18s ease}.detail-panel .modal-body{overflow-y:auto;flex:1 1 auto}@keyframes detailPanelIn{0%{opacity:.4;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}@media (max-width:1100px){.split-layout{flex-direction:column}.detail-panel,.detail-panel.expanded{position:fixed!important;inset:0!important;transform:none!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;flex-basis:auto;border-radius:0;border:none;box-shadow:none;z-index:55}.split-main{display:none}.modal-head h3 .detail-title-sub{display:block;margin-top:3px}}.detail-panel-resizer{position:absolute;left:-6px;top:0;bottom:0;width:12px;cursor:col-resize;z-index:5;display:flex;align-items:center;justify-content:center;background:transparent}.detail-panel-resizer:before{content:"";width:3px;height:40px;border-radius:3px;background:var(--border);transition:background .12s ease}.detail-panel-resizer.resizing:before,.detail-panel-resizer:hover:before{background:var(--primary)}.detail-panel-expand-btn{flex-shrink:0}@media (max-width:1100px){.detail-panel .modal-head .close-x.detail-panel-expand-btn,.detail-panel-resizer{display:none}}.detail-panel .modal-head .close-x{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--accent);background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);transition:background .15s ease,border-color .15s ease,color .15s ease}.detail-panel .modal-head .close-x:hover{background:var(--tint-primary);border-color:var(--tint-primary-border)}.detail-panel.expanded{position:fixed!important;top:50%!important;left:50%;transform:translate(-50%,-50%);width:92vw;max-width:1400px;height:88vh;max-height:88vh;flex-basis:auto;z-index:60}.detail-panel.expanded .detail-panel-resizer{display:none}.modal-head{padding:20px 24px;border-bottom:1px solid var(--border-soft);display:flex;align-items:center;justify-content:space-between}.modal-head h3{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.015em;border-left:3px solid var(--primary);padding-left:10px}.modal-head h3 .detail-title-sub{font-weight:400;font-size:var(--fs-sm);color:var(--text-secondary)}.modal-head h3 .detail-title-hen{display:block;margin-top:6px}.modal-head .close-x{color:var(--text-tertiary);font-size:18px;background:none;border:none}.modal-head.has-quick-actions{flex-direction:column;align-items:stretch;gap:12px}.modal-head-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-body{padding:24px;overflow-y:auto}.modal-head-left{display:flex;align-items:center;gap:12px;min-width:0}.modal-head-left h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar-circle{border-radius:50%;object-fit:cover;flex-shrink:0}.avatar-fallback{border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--primary);color:var(--primary-on);font-weight:600}.quick-actions{display:flex;gap:14px 10px;flex-wrap:wrap;align-items:flex-start}.quick-actions.grid-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:10px 8px;justify-items:center}.quick-actions.grid-actions .icon-label-btn{width:100%;max-width:66px}.icon-label-btn{display:flex;flex-direction:column;align-items:center;gap:5px;width:66px;background:transparent;border:none;cursor:pointer;padding:0}.icon-label-btn .icon-label-circle{width:40px;height:40px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--accent);background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);transition:background .15s ease,border-color .15s ease,color .15s ease}.icon-label-btn:hover .icon-label-circle{background:var(--tint-primary);border-color:var(--tint-primary-border)}.icon-label-btn .icon-label-circle svg{display:block}.icon-label-btn .icon-label-text{font-size:var(--fs-2xs);line-height:1.25;color:var(--text-secondary);text-align:center;max-width:66px;word-break:break-word}.icon-label-btn:hover .icon-label-text{color:var(--text-primary)}.icon-label-btn:disabled{opacity:.4;cursor:not-allowed}.icon-label-btn:disabled:hover .icon-label-circle{background:var(--tint-primary-soft);border-color:var(--tint-primary-border)}.icon-label-btn:disabled:hover .icon-label-text{color:var(--text-secondary)}.row-actions .icon-label-btn.danger:disabled:hover .icon-label-circle{background:var(--tint-red);border-color:var(--danger-border)}.row-actions .icon-label-btn.danger:disabled:hover .icon-label-text{color:var(--text-secondary)}.icon-label-btn.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.day-strip{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;margin-bottom:14px;background:var(--surface-2);border:1px solid var(--border-soft);border-radius:var(--radius)}.day-strip-label{color:var(--text-tertiary);font-size:var(--fs-2xs);margin-right:2px}.day-chip{position:relative;min-width:34px;height:32px;padding:0 7px;border-radius:7px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:var(--fs-xs);font-weight:600;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.day-chip.has{border-color:var(--tint-primary-border);background:var(--tint-primary-soft);color:var(--text-primary)}.day-chip.empty{opacity:.35}.day-chip.on,.day-chip:hover{border-color:var(--primary)}.day-chip.on{background:var(--primary);color:#fff}.day-chip.on small{color:rgba(255,255,255,.8)}.day-chip small{position:absolute;right:3px;bottom:1px;font-size:8.5px;font-weight:500;opacity:.75}.day-chip.clear{min-width:auto;padding:0 12px;font-weight:500}@media (max-width:860px){.day-strip{gap:5px;padding:8px 9px}.day-chip{min-width:38px;height:38px;padding:0 4px}}.cccd-mask .icon-label-btn,.row-actions .icon-label-btn{width:auto;gap:3px}.cccd-mask .icon-label-btn .icon-label-circle,.row-actions .icon-label-btn .icon-label-circle{width:28px;height:28px}.cccd-mask .icon-label-btn .icon-label-text,.row-actions .icon-label-btn .icon-label-text{font-size:var(--fs-2xs);max-width:none;white-space:nowrap}.row-actions .icon-label-btn.danger .icon-label-circle{color:var(--red);background:var(--tint-red);border-color:var(--danger-border)}.row-actions .icon-label-btn.danger:hover .icon-label-circle{color:var(--red);border-color:var(--danger-border)}.row-actions .icon-label-btn.danger:hover .icon-label-text{color:var(--red)}.quick-actions .icon-label-btn.danger .icon-label-circle{color:var(--red);background:var(--tint-red);border-color:var(--danger-border)}.quick-actions .icon-label-btn.danger:hover .icon-label-circle{color:var(--red);border-color:var(--danger-border)}.quick-actions .icon-label-btn.danger:hover .icon-label-text{color:var(--red)}.quick-actions .icon-label-btn.ok .icon-label-circle,.row-actions .icon-label-btn.ok .icon-label-circle{color:var(--green);background:var(--tint-green);border-color:var(--ok-border)}.quick-actions .icon-label-btn.ok:hover .icon-label-circle,.row-actions .icon-label-btn.ok:hover .icon-label-circle{color:var(--green);border-color:var(--ok-border)}.quick-actions .icon-label-btn.ok .icon-label-text,.row-actions .icon-label-btn.ok .icon-label-text{color:var(--green);font-weight:600}.row-actions{gap:4px 12px}.icon-label-btn.compact{width:auto;gap:3px}.icon-label-btn.compact .icon-label-circle{width:28px;height:28px}.icon-label-btn.compact .icon-label-text{font-size:var(--fs-2xs);max-width:none;white-space:nowrap}.icon-label-btn.cta{width:auto;gap:3px}.icon-label-btn.cta .icon-label-circle{width:28px;height:28px;background:var(--primary);border-color:var(--primary);color:var(--primary-on)}.icon-label-btn.cta:hover .icon-label-circle{background:var(--primary-hover);border-color:var(--primary-hover)}.icon-label-btn.cta .icon-label-text{font-size:var(--fs-2xs);max-width:none;white-space:nowrap;color:var(--text-primary);font-weight:600}.icon-label-btn.pdf .icon-label-circle{color:var(--red);background:var(--tint-red);border-color:var(--danger-border)}.icon-label-btn.pdf:hover .icon-label-circle{background:var(--tint-red);border-color:var(--red)}.icon-label-btn.pdf:hover .icon-label-text{color:var(--red)}.icon-label-btn.excel .icon-label-circle{color:var(--orange);background:var(--tint-orange);border-color:var(--tint-orange-border)}.icon-label-btn.excel:hover .icon-label-circle{background:var(--tint-orange);border-color:var(--orange)}.icon-label-btn.excel:hover .icon-label-text{color:var(--orange)}.mat-tien-hero{flex-direction:column;text-align:center;gap:6px;padding:48px 16px}.mat-tien-hero,.mat-tien-scan-btn{display:flex;align-items:center;justify-content:center}.mat-tien-scan-btn{width:132px;height:132px;border-radius:50%;flex-shrink:0;cursor:pointer;color:var(--accent);background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);transition:background .15s ease,border-color .15s ease}.mat-tien-scan-btn:active,.mat-tien-scan-btn:hover{background:var(--tint-primary);border-color:var(--primary)}.mat-tien-hero-label{margin-top:18px;font-size:16px;font-weight:600;color:var(--text-primary)}.mat-tien-hero-hint{font-size:var(--fs-sm);color:var(--text-tertiary);max-width:320px}.mat-tien-result{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:32px 16px;max-width:420px;margin:0 auto}.mat-tien-result .quick-actions{justify-content:center}.qe-preview{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.qe-preview img{width:96px;height:96px;object-fit:cover;border-radius:8px;border:1px solid var(--border);background:var(--surface-2)}.qe-preview-btn{padding:0;border:0;background:none;cursor:zoom-in;line-height:0;border-radius:8px}.qe-preview-btn:focus-visible img,.qe-preview-btn:hover img{border-color:var(--primary);filter:brightness(1.04)}.qe-preview-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.qe-preview .qe-noimg{width:96px;height:96px;border-radius:8px;border:1px dashed var(--border);display:flex;align-items:center;justify-content:center;text-align:center;font-size:var(--fs-2xs);color:var(--text-tertiary);padding:4px}.modal-foot{padding:18px 24px;border-top:1px solid var(--border-soft);display:flex;align-items:center;justify-content:flex-end;gap:12px}.modal-foot .spacer{flex:1 1}.form-section{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:var(--radius);padding:var(--sp-5);margin-bottom:var(--sp-5)}.form-section:last-child{margin-bottom:0}.form-section-title{font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);font-weight:700;margin-bottom:16px}.form-section .form-grid:last-child,.form-section .table-card:last-child{margin-bottom:0}.form-group-label{font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);font-weight:600;margin:26px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border-soft)}.form-group-label:first-child{margin-top:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}@media (max-width:720px){.form-grid{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:6px}.field.wide{grid-column:1/-1}.field label{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:500}.field label .req{color:var(--amber)}.field input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),.field select,.field textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 14px;color:var(--text-primary);font-size:var(--fs-base);outline:none;width:100%}.field select option{background:var(--surface);color:var(--text-primary)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary)}.field input:disabled{opacity:.6}.field textarea{min-height:64px;resize:vertical}.cong-tac{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;min-height:32px}.cong-tac input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}.cong-tac .ranh{position:relative;flex:none;width:40px;height:22px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);transition:background .15s ease,border-color .15s ease}.cong-tac .ranh:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s ease}.cong-tac input:checked+.ranh{background:var(--primary);border-color:var(--primary)}.cong-tac input:checked+.ranh:after{transform:translateX(18px)}.cong-tac input:focus-visible+.ranh{outline:2px solid var(--primary);outline-offset:2px}.cong-tac input:disabled+.ranh{opacity:.5}.cong-tac .chu{font-size:var(--fs-base);color:var(--text-primary)}.cong-tac input:not(:checked)~.chu{color:var(--text-secondary)}.luoi-cong-tac{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 20px}@media (max-width:860px){.luoi-cong-tac{grid-template-columns:1fr}.dung-agent{grid-template-columns:1fr!important}}.field .hint{font-size:var(--fs-2xs);color:var(--text-tertiary)}.field label .hint{display:block;text-transform:none;font-weight:400;letter-spacing:0;margin-top:2px}.date-input{display:flex;align-items:center;gap:2px;position:relative;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:0 6px 0 14px}.date-input:focus-within{border-color:var(--primary)}.date-input.disabled{opacity:.6}.date-input-text{flex:1 1;min-width:0;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:var(--fs-base);padding:10px 0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.date-input-icon-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-tertiary);display:flex;align-items:center;flex-shrink:0}.date-input-icon-btn:hover{color:var(--text-primary)}.date-input-cal{position:absolute;top:calc(100% + 4px);left:0;z-index:30;width:232px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-pop);padding:8px}.date-input-cal-head{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);margin-bottom:6px}.date-input-cal-head button{background:none;border:none;cursor:pointer;color:var(--text-tertiary);display:flex;padding:3px}.date-input-cal-head button:hover{color:var(--text-primary)}.date-input-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.date-input-cal-weekday{font-size:var(--fs-2xs);color:var(--text-tertiary);text-align:center;padding:3px 0}.date-input-cal-day{background:none;border:none;border-radius:5px;padding:5px 0;font-size:var(--fs-xs);color:var(--text-primary);cursor:pointer;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.date-input-cal-day:hover{background:var(--tint-primary-soft)}.date-input-cal-day.active{background:var(--primary);color:var(--primary-on);font-weight:600}.field.checkbox{flex-direction:row;align-items:center;gap:8px}.field.checkbox input{width:15px;height:15px;accent-color:var(--primary)}.field.checkbox label{font-size:var(--fs-sm)}.kh-select{position:relative}.kh-select-input{width:100%}.kh-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;max-height:260px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-pop);padding:4px}.kh-select-dropdown .empty-state{padding:14px 10px;font-size:var(--fs-sm)}.kh-select-dropdown-portal{z-index:160}.nv-multiselect{display:flex;flex-direction:column;gap:8px}.nv-multiselect-search{width:100%;min-width:0}.nv-multiselect-list{max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;background:var(--surface-2)}.nv-multiselect-list .empty-state,.nv-multiselect-list .form-error{padding:14px 10px}.nv-multiselect-row{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:var(--fs-sm);color:var(--text-primary);cursor:pointer;border-bottom:1px solid var(--border-soft)}.nv-multiselect-row:last-child{border-bottom:none}.nv-multiselect-row:hover{background:var(--tint-primary-soft)}.nv-multiselect-row input{width:15px;height:15px;accent-color:var(--primary);flex:none}.nv-multiselect-name{display:flex;flex-direction:column;gap:1px}.nv-multiselect-hint{font-size:var(--fs-2xs);color:var(--text-tertiary)}.nv-single-row{width:100%;background:none;border:none;text-align:left;justify-content:flex-start}.nv-single-check{color:var(--accent);margin-left:auto;flex:none}.nv-single-selected{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);border-radius:6px}.nv-single-selected .nv-multiselect-name{flex:1 1;min-width:0}.sodo-canvas .react-flow__handle{width:10px;height:10px;background:var(--primary);border:2px solid var(--surface)}.sodo-canvas .react-flow__handle:hover{width:14px;height:14px;background:var(--primary-hover)}.sodo-canvas .sodo-drag-handle:hover{background:var(--tint-primary-soft);color:var(--accent);border-color:var(--primary)!important}.sodo-canvas .sodo-drag-handle:active{cursor:grabbing}.sodo-node-tooltip{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:20;width:max-content;max-width:280px;padding:8px 10px;border-radius:8px;background:var(--primary);color:var(--primary-on);font-size:var(--fs-xs);line-height:1.4;text-align:left;box-shadow:var(--shadow-pop);pointer-events:none;white-space:normal}.sodo-minimap{background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:8px;box-shadow:var(--shadow-card)}@media (max-width:860px){.sodo-minimap{display:none!important}}.form-error{margin-bottom:12px;padding:9px 12px;border-radius:6px;background:var(--tint-red);border:1px solid var(--tint-red-border);color:var(--form-error-fg);font-size:var(--fs-sm)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:30px;height:30px;border-radius:6px;background:var(--surface-2);border:1px solid var(--border);color:var(--text-secondary);font-size:var(--fs-base);line-height:1}.theme-toggle:hover{border-color:var(--border-strong);color:var(--text-primary)}.theme-toggle.wide{width:auto;padding:0 10px;font-size:var(--fs-xs)}.accent-picker{display:inline-flex;align-items:center;gap:6px}.accent-swatch{width:16px;height:16px;border-radius:50%;border:2px solid transparent;box-shadow:0 0 0 1px var(--border);cursor:pointer;padding:0;flex-shrink:0}.accent-swatch:hover{box-shadow:0 0 0 1px var(--border-strong)}.accent-swatch.active{border-color:var(--surface);box-shadow:0 0 0 2px var(--text-primary)}.accent-dropdown{position:relative}.accent-dropdown-btn{position:relative;width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);display:flex;align-items:center;justify-content:center;cursor:pointer}.accent-dropdown-btn:hover{background:var(--tint-primary)}.accent-dropdown-panel{position:absolute;top:38px;right:0;min-width:160px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-pop);z-index:40;padding:6px}.accent-dropdown-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:8px 10px;border-radius:8px;border:none;background:transparent;cursor:pointer;font-size:var(--fs-sm);color:var(--text-primary)}.accent-dropdown-item:hover{background:var(--surface-2)}.accent-dropdown-item.active{background:var(--tint-primary);font-weight:600}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:380px;max-width:100%;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;padding:28px 26px;box-shadow:var(--shadow-card)}.login-card .brand{border-bottom:none;padding:0 0 18px}.login-card .login-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.login-card h2{font-size:var(--fs-lg);font-weight:600;margin-bottom:4px}.login-card .sub{font-size:var(--fs-sm);color:var(--text-tertiary);margin-bottom:20px}.login-card .field{margin-bottom:14px}.login-card .btn{width:100%;justify-content:center}.login-version{text-align:center;font-size:var(--fs-2xs);color:var(--text-tertiary);margin-top:16px}.login-quen-mk{display:block;margin:12px auto 0;background:none;border:0;padding:6px 8px;color:var(--primary);font-size:var(--fs-sm);cursor:pointer}.login-quen-mk:hover{text-decoration:underline}.login-quen-mk-box{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--border-strong);background-clip:content-box}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:transparent}@media (max-width:860px){::-webkit-scrollbar{width:0;height:0}}.screen-switcher{display:flex;gap:4px;padding:10px 28px;background:var(--thead-bg);border-bottom:1px solid var(--border-soft);position:sticky;top:0;z-index:4;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;background-repeat:no-repeat;background-image:linear-gradient(to right,var(--thead-bg) 30%,rgba(255,255,255,0)),linear-gradient(to left,var(--thead-bg) 30%,rgba(255,255,255,0)),linear-gradient(to right,rgba(0,0,0,.18),rgba(0,0,0,0)),linear-gradient(to left,rgba(0,0,0,.18),rgba(0,0,0,0));background-position:0,100%,0,100%;background-size:36px 100%,36px 100%,12px 100%,12px 100%;background-attachment:local,local,scroll,scroll}.screen-switcher::-webkit-scrollbar{display:none}.screen-switcher a,.screen-switcher button{background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:6px 12px;border-radius:6px;font-size:var(--fs-xs);font-weight:500;flex:0 0 auto;white-space:nowrap;scroll-margin-inline:28px}.screen-switcher a.active,.screen-switcher button.active{background:var(--tint-primary);border-color:var(--tint-primary-border);color:var(--accent)}.screen-switcher .tag{flex:0 0 auto;margin-left:12px;font-size:var(--fs-2xs);color:var(--text-tertiary);display:flex;align-items:center;white-space:nowrap}.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border-soft);border:1px solid var(--border-soft);border-radius:var(--radius);overflow:hidden;margin-bottom:20px}@media (max-width:900px){.info-grid{grid-template-columns:repeat(2,1fr)}}.info-cell{background:var(--surface);padding:12px 16px}.info-cell .label{font-size:var(--fs-2xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:5px}.info-cell .value{font-size:var(--fs-md);font-weight:600}.info-cell .value.sub{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:400;margin-top:2px}.field .value{font-size:var(--fs-md);font-weight:600}.view-grid{display:flex;flex-direction:column;gap:1px;background:var(--border-soft);border:1px solid var(--border-soft);border-radius:var(--radius);overflow:hidden;margin-bottom:4px}.view-row{display:grid;grid-template-columns:180px 1fr;gap:4px 16px;background:var(--surface);padding:9px 14px;align-items:start}@media (max-width:560px){.view-row{grid-template-columns:1fr}}.view-row .vlabel{font-size:var(--fs-xs);color:var(--text-secondary);font-weight:500}.view-row .vvalue{font-size:var(--fs-sm);color:var(--text-primary);word-break:break-word}.section-title{display:flex;align-items:center;justify-content:space-between;margin:22px 0 10px}.section-title h3{font-size:var(--fs-base);font-weight:600}.section-title .hint{font-size:var(--fs-xs);color:var(--text-tertiary)}.group-row td{background:var(--tint-primary-soft);font-weight:700;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--accent);padding:8px 14px}.lo-tag{font-size:var(--fs-2xs);color:var(--text-tertiary);font-family:monospace}tr.dong-da-nha>td{opacity:.55;text-decoration:line-through}tr.dong-da-nha>td .badge,tr.dong-da-nha>td:last-child{text-decoration:none}.summary-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--surface-2);border-top:1px solid var(--border-soft);font-size:var(--fs-sm);color:var(--text-secondary)}.summary-bar b{color:var(--text-primary)}.signature-box{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border-soft);border-radius:var(--radius);margin-top:10px}.signature-box .sig-mark{width:40px;height:40px;border-radius:6px;background:var(--tint-green);color:var(--green);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.signature-box .sig-mark.pending{background:var(--tint-amber);color:var(--amber)}.signature-box .sig-text b{color:var(--text-primary)}.signature-box .sig-text div{font-size:var(--fs-xs);color:var(--text-secondary)}.sig-canvas-wrap{background:#fff;border:1px solid var(--border-soft);border-radius:var(--radius);overflow:hidden;touch-action:none}.sig-canvas-hint{font-size:var(--fs-xs);color:var(--text-tertiary);text-align:center;margin-top:8px}.kiemke-field{margin-bottom:14px}.kiemke-field label{display:block;font-size:var(--fs-xs);font-weight:600;color:var(--text-secondary);margin-bottom:6px}.kiemke-field input,.kiemke-field select{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:var(--fs-sm);padding:8px 10px}.kiemke-field input[readonly]{color:var(--text-tertiary)}.kiemke-field textarea{width:100%;min-height:64px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:var(--fs-sm);padding:8px 10px;resize:vertical}.warn-box{display:flex;gap:8px;font-size:var(--fs-xs);color:var(--amber);background:var(--tint-amber);border:1px solid var(--tint-amber);padding:10px 12px;border-radius:7px;margin-top:16px}.file-drop{border:1.5px dashed var(--border);border-radius:var(--radius);padding:18px 16px;text-align:center;font-size:var(--fs-sm);color:var(--text-secondary);background:var(--surface-2);cursor:pointer;transition:border-color .12s ease,background .12s ease}.file-drop.dragover,.file-drop:hover{border-color:var(--primary)}.file-drop.dragover{background:var(--tint-primary-soft);color:var(--text-primary)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border-soft);margin-bottom:16px;flex-wrap:wrap}.tab-btn{padding:9px 4px;margin-right:22px;background:transparent;color:var(--text-tertiary);font-size:var(--fs-sm);font-weight:500;border:none;border-bottom:2px solid transparent;position:relative;top:1px}.tab-btn.active{color:var(--text-primary);border-bottom-color:var(--primary)}.tabs.tabs-pill{gap:4px;border-bottom:none;background:var(--surface-2);padding:4px;border-radius:10px;margin-bottom:14px;display:inline-flex;max-width:100%}.tabs.tabs-pill .tab-btn{margin-right:0;padding:7px 14px;border-radius:8px;border-bottom:none;top:0;white-space:nowrap;transition:background .15s ease,color .15s ease}.tabs.tabs-pill .tab-btn:hover{color:var(--text-primary);background:var(--tint-gray)}.tabs.tabs-pill .tab-btn.active{background:var(--surface);color:var(--primary);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08)}@media (max-width:860px){.tabs.tabs-pill{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs.tabs-pill::-webkit-scrollbar{display:none}}.tab-pane{display:none}.tab-pane.active{display:block}.breadcrumb{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-tertiary);margin-bottom:14px}.breadcrumb a{color:var(--text-secondary)}.breadcrumb a:hover{color:var(--accent)}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px;flex-wrap:wrap;gap:12px}.detail-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.detail-title h2{font-size:var(--fs-xl);font-weight:700}.detail-title .code{font-size:var(--fs-sm);color:var(--text-tertiary);font-weight:400;margin-top:3px}.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.kh-picker{position:relative}.kh-picker input{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:var(--fs-sm);padding:8px 10px;outline:none}.kh-picker input:focus{border-color:var(--accent)}.kh-picker-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-pop);max-height:220px;overflow-y:auto}.kh-picker-item{padding:9px 12px;cursor:pointer;border-bottom:1px solid var(--border-soft)}.kh-picker-item:last-child{border-bottom:none}.kh-picker-item:hover{background:var(--surface-2)}.kh-picker-item .kname{font-weight:600;font-size:var(--fs-sm)}.kh-picker-item .ksub{font-size:var(--fs-2xs);color:var(--text-tertiary)}.kh-picked{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:9px 12px;margin-top:8px}.kh-picked .kname{font-weight:600;font-size:var(--fs-base)}.kh-picked .ksub{font-size:var(--fs-xs);color:var(--text-tertiary)}.timeline{position:relative;padding-left:22px}.timeline:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:1px;background:var(--border)}.tl-item{position:relative;padding-bottom:22px}.tl-item:before{content:"";position:absolute;left:-22px;top:3px;width:11px;height:11px;border-radius:50%;background:var(--surface);border:2px solid var(--gray)}.tl-item.current:before{border-color:var(--green);background:var(--green)}.tl-item.pending:before{border-color:var(--amber);background:var(--amber)}.tl-head{display:flex;align-items:center;gap:10px;margin-bottom:3px;flex-wrap:wrap}.tl-head .v{font-weight:700;font-size:var(--fs-base)}.tl-meta{font-size:var(--fs-xs);color:var(--text-tertiary)}.tl-desc{font-size:var(--fs-sm);color:var(--text-secondary);margin-top:4px;max-width:620px}.ship-detail-card{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:var(--radius);padding:12px 14px;margin-bottom:18px}.ship-detail-product{font-weight:600;font-size:var(--fs-base);margin-bottom:10px}.ship-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px 16px}.ship-detail-field{display:flex;flex-direction:column;gap:2px;min-width:0}.ship-detail-label{font-size:var(--fs-2xs);font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text-tertiary)}.ship-detail-value{font-size:var(--fs-sm);font-weight:600;color:var(--text-primary)}.ship-detail-link,.ship-detail-value.strong{color:var(--accent)}.ship-detail-link{display:inline-flex;align-items:center;gap:4px;margin-top:12px;padding-top:10px;width:100%;background:none;border:none;border-top:1px dashed var(--border-soft);font-size:var(--fs-xs);font-weight:600;cursor:pointer}.ship-detail-link:hover{text-decoration:underline}.ship-tracker{display:flex;flex-direction:column}.ship-step{display:flex;gap:12px}.ship-rail{flex-direction:column}.ship-dot,.ship-rail{display:flex;align-items:center;width:26px;flex-shrink:0}.ship-dot{height:26px;border-radius:50%;z-index:1;justify-content:center;color:#fff;background:var(--surface);border:2px solid var(--border);color:var(--text-tertiary)}.ship-line{width:2px;flex:1 1;min-height:26px;margin:2px 0}.ship-line.solid{background:var(--green)}.ship-line.dashed{background-image:linear-gradient(var(--border) 60%,transparent 40%);background-size:2px 9px;background-repeat:repeat-y}.ship-body{flex:1 1;min-width:0;padding-bottom:20px}.ship-step:last-child .ship-body{padding-bottom:0}.ship-title{font-weight:600;font-size:var(--fs-base);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ship-sub{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:2px}.ship-sub.late{color:var(--red)}.ship-tag{font-size:var(--fs-2xs);font-weight:700;letter-spacing:.02em;text-transform:uppercase;padding:1px 7px;border-radius:20px;background:var(--tint-primary-soft);color:var(--accent)}.ship-tag.late{background:var(--tint-red);color:var(--red)}.ship-step.done .ship-dot{background:var(--green-fill);border-color:var(--green-fill);color:#fff}.ship-step.done .ship-title{color:var(--text-primary)}.ship-step.current .ship-dot{background:var(--tint-primary-soft);border-color:var(--primary);color:var(--accent);box-shadow:0 0 0 4px var(--tint-primary-soft)}.ship-step.current .ship-title{color:var(--accent)}.ship-step.current-late .ship-dot{background:var(--tint-red);border-color:var(--red);color:var(--red);box-shadow:0 0 0 4px var(--tint-red)}.ship-step.current-late .ship-title{color:var(--red)}.ship-step.upcoming .ship-sub,.ship-step.upcoming .ship-title{color:var(--text-tertiary)}.avatar-thumb{position:relative;display:inline-flex;width:34px;height:34px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border);flex-shrink:0;align-items:center;justify-content:center;font-size:var(--fs-2xs);font-weight:700;color:#fff;overflow:hidden}.avatar-thumb img{width:100%;height:100%;object-fit:cover}.cell-thumb-text{display:flex;align-items:center;gap:8px;min-width:0}.cell-thumb-text>.cell-thumb-text-noidung{min-width:0;flex:1 1}.avatar-thumb .eye-btn{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);color:#fff;font-size:var(--fs-xs);opacity:0;transition:.12s;border:none;cursor:pointer}.avatar-thumb:hover .eye-btn{opacity:1}@media (hover:none){.avatar-thumb .eye-btn{opacity:1;background:rgba(0,0,0,.25)}}.vt-eye-btn{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:var(--tint-green);color:var(--green);border:1px solid var(--tint-green);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.vt-eye-btn:hover{background:var(--green-fill);color:#fff;border-color:var(--green-fill)}.vt-eye-btn.khong-anh{cursor:not-allowed;opacity:.85}.vt-eye-btn.khong-anh,.vt-eye-btn.khong-anh:hover{background:var(--tint-red);color:var(--red);border-color:var(--tint-red)}.vt-eye-btn svg{display:block}.status-cell{cursor:default}.status-cell.clickable{cursor:pointer}.color-dot{display:inline-block;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--border-strong);vertical-align:middle}.color-pick-wrap{position:relative;display:inline-flex;align-items:center;gap:8px}.color-pick-wrap input[type=color]{position:absolute;inset:0;opacity:0;width:16px;height:16px;cursor:pointer;border:none;padding:0}.color-pick-wrap.readonly input[type=color]{cursor:default;pointer-events:none}.process-note{font-size:var(--fs-xs);color:var(--accent);background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);padding:2px 8px;border-radius:5px;display:inline-block}.mini-toolbar{display:flex;justify-content:flex-end;margin-bottom:8px}.diff-row{display:grid;grid-template-columns:140px 1fr 1fr;gap:10px;padding:8px 0;border-bottom:1px dashed var(--border-soft);font-size:var(--fs-sm);align-items:center}.diff-row:last-child{border-bottom:none}.diff-label,.diff-old{color:var(--text-tertiary)}.diff-old{text-decoration:line-through}.diff-new{color:var(--green);font-weight:600}.diff-headers{display:grid;grid-template-columns:140px 1fr 1fr;gap:10px;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);padding-bottom:6px;border-bottom:1px solid var(--border-soft);margin-bottom:4px}.approver-note textarea{width:100%;min-height:64px;margin-top:8px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:var(--fs-sm);padding:8px 10px;resize:vertical}.field-label{font-size:var(--fs-xs);font-weight:600;color:var(--text-secondary);margin-top:16px;display:block}.lightbox-body{display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg)}.anh-lightbox-card{max-width:96vw;width:auto}.anh-lightbox-body{display:flex;align-items:center;justify-content:center;padding:10px;background:#111827;border-radius:10px;margin:0 14px}.anh-lightbox-body img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:6px}.anh-lightbox-loi{color:#e5e7eb;font-size:var(--fs-sm);padding:40px 20px}@media (max-width:860px){.anh-lightbox-body{margin:0 8px}.anh-lightbox-body img{max-width:calc(100vw - 32px);max-height:70vh}}.lightbox-placeholder{width:100%;min-height:220px;max-height:65vh;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--accent));display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--fs-md);font-weight:700;text-align:center;overflow:hidden;padding:10px}.lightbox-placeholder img{max-width:100%;max-height:65vh;width:auto;height:auto;object-fit:contain;border-radius:6px}.bando-layout{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start}@media (max-width:900px){.bando-layout{grid-template-columns:1fr}}.map-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}.map-toolbar .spacer{flex:1 1}.map-legend{display:flex;align-items:center;gap:14px;font-size:var(--fs-xs);color:var(--text-secondary)}.map-legend .lg-item{display:flex;align-items:center;gap:5px}.map-legend .lg-dot{width:8px;height:8px;border-radius:3px}.mapcanvas-wrap{position:relative;width:100%;height:72vh;max-height:72vh;min-height:300px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);overflow:hidden;cursor:grab}.mapcanvas-wrap:active{cursor:grabbing}.mapcanvas-wrap.chi-xem{touch-action:none;cursor:default}@media (max-width:860px){.mapcanvas-wrap{height:76vh;max-height:76vh;min-height:300px}}.mapcanvas-stage{position:absolute;top:0;left:0;transform-origin:0 0;background-color:var(--surface);background-image:linear-gradient(rgba(127,127,127,.14) 1px,transparent 0),linear-gradient(90deg,rgba(127,127,127,.14) 1px,transparent 0);background-size:20px 20px;box-shadow:0 2px 16px rgba(0,0,0,.25)}.mapcanvas-wrap.drawing{box-shadow:0 0 0 2px var(--tint-primary-border) inset}.mapcanvas-empty{inset:0;justify-content:center;pointer-events:none;text-align:center;padding:16px;color:var(--text-secondary);font-size:var(--fs-sm)}.map-zoom-ctl,.mapcanvas-empty{position:absolute;display:flex;align-items:center}.map-zoom-ctl{right:10px;bottom:10px;z-index:3;gap:2px;padding:3px;background:var(--surface);border:1px solid var(--border);border-radius:999px;box-shadow:0 2px 10px rgba(0,0,0,.22)}.map-zoom-ctl .mz-btn,.map-zoom-ctl .mz-pct{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 6px;background:transparent;border:none;border-radius:999px;color:var(--text-secondary);cursor:pointer}.map-zoom-ctl .mz-pct{font-size:var(--fs-xs);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:46px}.map-zoom-ctl .mz-btn:hover,.map-zoom-ctl .mz-pct:hover{background:var(--tint-primary-soft);color:var(--accent)}@media (max-width:860px){.map-zoom-ctl{top:10px;bottom:auto}}.bando-canvas-col{min-width:0}.map-huong-dan{margin:6px 2px 0;font-size:var(--fs-2xs);line-height:1.35;color:var(--text-tertiary)}.map-side-act{padding:8px 10px 0}.map-side-act .btn{width:100%;justify-content:center}.map-chuyen{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-radius:7px;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:2;border:2px solid rgba(255,255,255,.85);box-shadow:0 2px 8px rgba(0,0,0,.35);transition:box-shadow .15s,transform .15s;text-align:center;padding:2px 4px;box-sizing:border-box}.mapcanvas-wrap.drawing .map-chuyen{cursor:move}.mapcanvas-wrap.drawing .map-chuyen:active{cursor:grabbing;z-index:6}.map-chuyen.running{background:linear-gradient(150deg,#34d17a,var(--green))}.map-chuyen.stopped{background:linear-gradient(150deg,#7c8697,#6b7280)}.map-chuyen.highlighted{box-shadow:0 0 0 3px var(--tint-primary-border),0 2px 10px rgba(0,0,0,.4);z-index:7;transform:translate(-50%,-50%) scale(1.05)}.map-chuyen .chuyen-name{font-size:var(--fs-2xs);font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);line-height:1.15}.map-chuyen .chuyen-status{font-size:var(--fs-2xs);color:rgba(255,255,255,.85);display:inline-flex;align-items:center;gap:3px}.map-chuyen .chuyen-gio{font-size:var(--fs-2xs);font-weight:700;line-height:1.1;color:#fff;background:rgba(0,0,0,.26);border-radius:4px;padding:0 4px}.map-chuyen.co-ca{border-color:var(--amber,#f59e0b)}.map-chuyen.ca-qua-han{border-color:var(--danger,#ef4444);box-shadow:0 0 0 2px rgba(239,68,68,.35),0 2px 8px rgba(0,0,0,.35)}.map-chuyen .chuyen-ca{font-size:var(--fs-2xs);font-weight:600;line-height:1.1;color:#fff;max-width:100%;background:rgba(0,0,0,.34);border-radius:4px;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-chuyen .chuyen-ca.qua-han{background:rgba(239,68,68,.85)}.map-chuyen .chuyen-kh-count{top:-8px;left:-8px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;color:var(--text-primary);border:2px solid rgba(255,255,255,.9);font-size:var(--fs-2xs);font-weight:700;line-height:14px;text-align:center}.map-chuyen .chuyen-kh-count,.map-chuyen .chuyen-resize{position:absolute;background:var(--surface);box-shadow:0 1px 4px rgba(0,0,0,.35)}.map-chuyen .chuyen-resize{right:-6px;bottom:-6px;width:16px;height:16px;border-radius:4px;border:2px solid rgba(255,255,255,.9);cursor:nwse-resize}.map-chuyen .chuyen-resize:after{content:"";position:absolute;inset:3px;border-right:2px solid var(--text-tertiary);border-bottom:2px solid var(--text-tertiary)}.map-chuyen .chuyen-del{position:absolute;top:-8px;right:-8px;width:18px;height:18px;border-radius:50%;background:var(--red-fill);color:#fff;font-size:var(--fs-2xs);line-height:18px;text-align:center;cursor:pointer;border:2px solid var(--bg)}.map-side-panel{display:flex;flex-direction:column;gap:14px}.map-side-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);overflow:hidden}.map-side-head{padding:11px 14px;border-bottom:1px solid var(--border-soft);font-size:var(--fs-sm);font-weight:700;display:flex;align-items:center;justify-content:space-between}.map-side-head .cnt{font-weight:400;color:var(--text-tertiary)}.map-side-search{padding:8px 10px;border-bottom:1px solid var(--border-soft)}.map-side-search input{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:var(--fs-xs);padding:6px 8px}.map-side-list{max-height:260px;overflow-y:auto}.map-side-row{padding:8px 14px;border-bottom:1px solid var(--border-soft);cursor:pointer;font-size:var(--fs-sm);display:flex;align-items:center;justify-content:space-between;gap:6px}.map-side-row:last-child{border-bottom:none}.map-side-row:hover{background:var(--surface-2)}.map-side-row.active{background:var(--tint-primary-soft)}.map-side-row .sr-name{font-weight:600;color:var(--text-primary)}.map-side-row .sr-sub{font-size:var(--fs-2xs);color:var(--text-tertiary)}.map-popover-backdrop{position:fixed;inset:0;z-index:100;background:var(--overlay)}.modal-overlay.vt-lightbox-overlay{z-index:150}.map-popover{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:101;width:480px;max-width:92vw;max-height:86vh;overflow-y:auto;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-modal);padding:16px;font-size:var(--fs-base)}.map-popover .pop-head{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;margin-bottom:10px}.map-popover .pop-name{font-weight:700;font-size:16px;margin-bottom:2px}.map-popover .pop-status{font-size:var(--fs-sm);color:var(--text-tertiary)}.map-popover .pop-kehoach-title{margin-top:14px;padding-top:12px;border-top:1px solid var(--border-soft);font-size:var(--fs-xs);font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px}.map-popover .pop-kehoach-title .hint{text-transform:none;font-weight:400;font-size:var(--fs-2xs);letter-spacing:0}.map-popover .pop-log-title{margin-top:14px;padding-top:12px;border-top:1px solid var(--border-soft);font-size:var(--fs-xs);font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;display:flex;align-items:center;gap:6px}.map-popover .pop-log-list{margin-top:8px;display:flex;flex-direction:column;gap:9px;max-height:170px;overflow-y:auto}.map-popover .pop-log-row{display:flex;gap:8px;align-items:flex-start}.map-popover .pop-log-icon{flex-shrink:0;font-size:var(--fs-sm);opacity:.8}.map-popover .pop-log-main{font-size:var(--fs-sm);color:var(--text-primary)}.map-popover .pop-log-meta{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:3px;display:flex;gap:6px;flex-wrap:wrap}.map-popover .pop-log-tb{font-size:var(--fs-xs);color:var(--amber);margin-top:3px}.map-popover .pop-log-empty{font-size:var(--fs-sm);color:var(--text-tertiary);font-style:italic}.map-popover .pop-kh-deck{margin-top:8px;display:flex;flex-direction:column;gap:7px}.map-popover .pop-kh-card{border-radius:9px;padding:9px 11px;border:1px solid var(--border-soft);background:var(--surface);transition:opacity .15s,border-color .15s;cursor:default}.map-popover .pop-kh-card.dim{opacity:.65}.map-popover .pop-kh-card.active{opacity:1;border-color:var(--green-fill);background:var(--green-fill)}.map-popover .pop-kh-card.ready{opacity:1;border-color:var(--kh-vang);background:var(--kh-vang)}.map-popover .pop-kh-card.blocked{opacity:1;border-color:var(--red-fill);background:var(--red-fill)}.map-popover .pop-kh-card.active,.map-popover .pop-kh-card.blocked,.map-popover .pop-kh-card.ready{color:#fff}.map-popover .pop-kh-card.active :is(.pop-kh-sp,.pop-kh-sl,.pop-kh-sub,.pop-kh-lenh,.pop-kh-lenh span),.map-popover .pop-kh-card.blocked :is(.pop-kh-sp,.pop-kh-sl,.pop-kh-sub,.pop-kh-lenh,.pop-kh-lenh span),.map-popover .pop-kh-card.ready :is(.pop-kh-sp,.pop-kh-sl,.pop-kh-sub,.pop-kh-lenh,.pop-kh-lenh span){color:#fff}.map-popover .pop-kh-card.active :is(.badge,.pop-kh-nvl,.pop-kh-chenlen-btn),.map-popover .pop-kh-card.blocked :is(.badge,.pop-kh-nvl,.pop-kh-chenlen-btn),.map-popover .pop-kh-card.ready :is(.badge,.pop-kh-nvl,.pop-kh-chenlen-btn){background:rgba(255,255,255,.22);color:#fff;border-color:rgba(255,255,255,.45)}.map-popover .pop-kh-card.active .badge .dot,.map-popover .pop-kh-card.blocked .badge .dot,.map-popover .pop-kh-card.ready .badge .dot{background:#fff}.map-popover .pop-kh-card.ready,.map-popover .pop-kh-card.ready :is(.pop-kh-sp,.pop-kh-sl,.pop-kh-sub,.pop-kh-lenh,.pop-kh-lenh span){color:var(--kh-vang-on)}.map-popover .pop-kh-card.ready :is(.badge,.pop-kh-nvl,.pop-kh-chenlen-btn){color:var(--kh-vang-on);border-color:rgba(0,0,0,.28)}.map-popover .pop-kh-card.ready .badge .dot{background:var(--kh-vang-on)}.map-popover .pop-kh-card.active :is(.pop-kh-ibtn,.pop-kh-ibtn-wide),.map-popover .pop-kh-card.blocked :is(.pop-kh-ibtn,.pop-kh-ibtn-wide),.map-popover .pop-kh-card.ready :is(.pop-kh-ibtn,.pop-kh-ibtn-wide){background:#fff;border-color:rgba(255,255,255,.85)}.map-popover .pop-kh-card.active .vt-eye-btn,.map-popover .pop-kh-card.blocked .vt-eye-btn,.map-popover .pop-kh-card.ready .vt-eye-btn{background:#fff;color:var(--kh-vang-fg);border-color:#fff}.map-popover .pop-kh-card.active .vt-eye-btn:hover,.map-popover .pop-kh-card.blocked .vt-eye-btn:hover,.map-popover .pop-kh-card.ready .vt-eye-btn:hover{background:var(--kh-vang);color:var(--kh-vang-on);border-color:var(--kh-vang)}.map-popover .pop-kh-card.active :is(.pop-kh-ibtn,.pop-kh-ibtn-wide):disabled,.map-popover .pop-kh-card.blocked :is(.pop-kh-ibtn,.pop-kh-ibtn-wide):disabled,.map-popover .pop-kh-card.ready :is(.pop-kh-ibtn,.pop-kh-ibtn-wide):disabled{background:rgba(255,255,255,.55);opacity:.6}.map-popover .pop-kh-card.done{opacity:.9}.map-popover .pop-kh-card.collapsed{padding:8px 11px;cursor:pointer}.map-popover .pop-kh-card.collapsed:hover{border-color:var(--border)}.map-popover .pop-kh-collapsed-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.map-popover .pop-kh-collapsed-row .cname{font-size:var(--fs-xs);font-weight:600;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-popover .pop-kh-collapsed-row .ctime{font-size:var(--fs-2xs);color:var(--text-tertiary);flex-shrink:0}.map-popover .pop-kh-lenh{display:flex;align-items:center;justify-content:space-between;gap:6px;font-family:var(--font-mono,monospace);font-size:var(--fs-2xs);font-weight:700;letter-spacing:.02em;margin-bottom:2px}.map-popover .pop-kh-lenh.xuat-ok{color:var(--green)}.map-popover .pop-kh-lenh.xuat-bad{color:var(--red)}.map-popover .pop-kh-chenlen-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:20px;font-family:var(--font-sans,inherit);font-size:var(--fs-2xs);font-weight:600;letter-spacing:normal;background:var(--tint-primary-soft);color:var(--accent);border:1px solid var(--tint-primary-border);cursor:pointer;transition:background .15s ease,border-color .15s ease}.map-popover .pop-kh-chenlen-btn:hover{border-color:var(--primary)}.map-popover .pop-kh-chenlen-btn:disabled{opacity:.45;cursor:not-allowed}.map-popover .pop-kh-chenlen-btn.active{background:var(--primary);color:var(--primary-on);border-color:var(--primary)}.map-popover .pop-kh-top{display:flex;align-items:baseline;gap:8px}.map-popover .pop-kh-sp{flex:1 1;min-width:0;font-size:var(--fs-sm);font-weight:700;color:var(--text-primary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.map-popover .pop-kh-sl{flex-shrink:0;font-size:var(--fs-xs);font-weight:700;color:var(--text-secondary);white-space:nowrap}.map-popover .pop-kh-meta{display:flex;align-items:center;gap:6px;margin-top:3px}.map-popover .pop-kh-card .badge{flex-shrink:0;font-size:var(--fs-2xs);padding:1px 7px}.map-popover .pop-kh-sub{flex:1 1;min-width:0;font-size:var(--fs-2xs);color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-popover .pop-kh-sub.doi-to{cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-underline-offset:2px}.map-popover .pop-kh-nvl{margin-top:6px;padding:4px 8px;border-radius:6px;font-size:var(--fs-2xs);cursor:pointer}.map-popover .pop-kh-nvl.ok{background:var(--tint-green);color:var(--green)}.map-popover .pop-kh-nvl.warn{background:var(--tint-amber);color:var(--amber)}.map-popover .pop-kh-nvl.bad{background:var(--tint-red);color:var(--red)}.map-popover .pop-kh-btnrow{margin-top:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.map-popover .pop-kh-ibtn{padding:12px 0;min-height:52px;font-size:var(--fs-md);border-radius:8px;text-align:center;line-height:1;border:1px solid var(--border);background:var(--surface-2);cursor:pointer;display:flex;align-items:center;justify-content:center}.map-popover .pop-kh-ibtn:disabled{opacity:.35;cursor:not-allowed}.map-popover .pop-kh-ibtn.i-stop{background:var(--tint-gray);color:var(--text-secondary);border-color:var(--border)}.map-popover .pop-kh-ibtn.i-run{background:var(--tint-green);color:var(--green);border-color:rgba(34,197,94,.3)}.map-popover .pop-kh-ibtn.i-end{background:var(--tint-primary);color:var(--accent);border-color:var(--tint-primary-border)}.map-popover .pop-kh-ibtn.i-team{background:var(--tint-orange);color:var(--orange);border-color:var(--tint-orange-border)}.map-popover .pop-kh-ibtn-wide{margin-top:6px;width:100%;padding:12px 0;min-height:52px;font-size:var(--fs-base);font-weight:700;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;background:var(--tint-red);color:var(--red);border:1px solid var(--tint-red-border)}.map-popover .pop-kh-ibtn-wide:disabled{opacity:.35;cursor:not-allowed}.map-popover-backdrop .modal-overlay{z-index:150}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}@media (max-width:900px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}.kpi-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:14px 16px}.kpi-card .kpi-label{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:6px}.kpi-card .kpi-value{font-size:24px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.kpi-card .kpi-value.red{color:var(--red)}.kpi-card .kpi-value.amber{color:var(--amber)}.kpi-card .kpi-sub{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:4px}.rl-wrap{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}@media (max-width:900px){.rl-wrap{grid-template-columns:1fr}}.rl-col{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:var(--radius);padding:12px;max-height:420px;overflow-y:auto}.rl-col .rl-head{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:600;color:var(--text-primary);margin-bottom:8px}.rl-col .rl-head .cnt{background:rgba(255,255,255,.08);color:var(--text-tertiary);padding:1px 7px;border-radius:9px;font-size:var(--fs-2xs)}.rl-row{display:flex;flex-direction:column;gap:3px;padding:8px 6px;border-radius:6px;border-bottom:1px solid var(--border-soft)}.rl-row:last-child{border-bottom:none}.rl-row.clickable{cursor:pointer}.rl-row.clickable:hover{background:var(--surface)}.rl-row .rl-note{font-size:var(--fs-2xs)}.rl-row .rl-note.tinh{color:var(--green)}.rl-row .rl-note.chua{color:var(--text-tertiary)}.rl-row .rl-main{font-size:var(--fs-sm);color:var(--text-primary)}.rl-row .rl-sub{display:flex;gap:10px;font-size:var(--fs-2xs);color:var(--text-tertiary);flex-wrap:wrap}.rl-group-body{padding-left:10px}.tt-pick-table{max-height:260px;overflow-y:auto;border:1px solid var(--border-soft);border-radius:6px}.tt-pick-table table{width:100%;border-collapse:collapse}.tt-pick-table td,.tt-pick-table th{padding:7px 10px;font-size:var(--fs-xs);border-bottom:1px solid var(--border-soft);text-align:left}.tt-pick-table th{position:sticky;top:0;background:var(--surface-2);color:var(--text-tertiary);font-weight:600}.tt-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}@media (max-width:900px){.tt-summary-grid{grid-template-columns:repeat(2,1fr)}}.tt-summary-tile{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:8px;padding:10px 12px}.tt-summary-tile .lbl{font-size:var(--fs-2xs);color:var(--text-tertiary)}.tt-summary-tile .val{font-size:var(--fs-md);font-weight:700;margin-top:3px;font-family:monospace}.huong-dan-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:10px;font-size:var(--fs-base);line-height:1.55}.huong-dan-steps li{padding-left:2px}.huong-dan-steps code{background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);border-radius:4px;padding:1px 5px;font-size:var(--fs-sm)}.link-btn{background:none;border:none;padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}.link-btn:hover{opacity:.8}@media print{.khung-hoi-ai,.no-print,.nut-hoi-ai{display:none!important}body,html{height:auto!important;overflow:visible!important}.app-shell{display:block!important;min-height:0!important}[data-region=main]{height:auto!important;max-height:none!important;overflow:visible!important;padding:0!important;padding:1cm 0!important;-webkit-box-decoration-break:clone;box-decoration-break:clone}.app-shell,.screen,[data-region=main],body,html{background:#fff!important}[data-region=main]:has(.tem-60,.tem-qr-list){padding:0!important}.screen{padding:0!important}.table-card,.table-scroll{overflow:visible!important}.table-scroll{max-height:none!important}.print-sheet{box-shadow:none!important;border:none!important;padding:0!important;max-width:none!important;margin:0!important}.mobile-global-nav,.mobile-global-nav-qr,[data-region=header],[data-region=sidebar]{display:none!important}.cell-clamp2,.cell-main,.cell-sub{display:block!important;-webkit-line-clamp:unset!important;overflow:visible!important;white-space:normal!important}td.cell-clamp2,td.cell-main,td.cell-sub{display:table-cell!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important}}@page{size:A4;margin:0 1cm 0 1.5cm}.print-sheet{--surface:#ffffff;--surface-2:#f2f2f7;--text-primary:#1d1d1f;--text-secondary:#636366;--text-tertiary:#6e6e73;--border:rgba(60,60,67,0.18);--border-soft:rgba(60,60,67,0.1);--border-strong:rgba(60,60,67,0.36);background:#ffffff;color:var(--text-primary);border:1px solid var(--border-soft);border-radius:var(--radius);padding:32px;max-width:780px;margin:0 auto}.print-sheet h2{text-align:center;margin-bottom:4px}.print-sheet .print-sub{text-align:center;color:var(--text-tertiary);margin-bottom:20px}.print-sheet .print-filterline{margin:10px 0 2px;padding:6px 9px;border-radius:4px;background:var(--surface-2);border:1px solid var(--border-soft);font-size:var(--fs-xs);color:var(--text-secondary)}.print-sheet tr.print-grp>td{background:var(--surface-2);padding:7px 5px;line-height:1.5;border-top:2px solid var(--border);border-bottom:1px solid var(--border-soft)}.print-sheet .print-grp-no{display:inline-block;background:var(--text-primary);color:#fff;border-radius:4px;padding:1px 7px;font-weight:700;margin-right:6px;font-size:var(--fs-xs)}.print-sheet .print-grp-ml{font-size:13.5px;font-weight:700}.print-sheet .print-grp-meta{font-weight:400;color:var(--text-secondary);font-size:var(--fs-xs)}.print-sheet .print-tick{display:inline-block;width:12px;height:12px;border:1.3px solid var(--text-secondary);border-radius:2px}.print-sheet .print-sign{display:flex;justify-content:space-between;margin-top:28px;text-align:center;font-size:var(--fs-sm)}.print-sheet .print-sign>div{width:31%}.print-sheet .print-sign small{display:block;color:var(--text-tertiary);font-size:var(--fs-xs);margin-top:2px}.print-sheet .print-sign-line{height:48px}.print-sheet.print-landscape{max-width:1240px}@media screen{.print-sheet.print-landscape{overflow-x:auto}}.print-bl-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:10.5px}.print-bl-table th{text-align:left;padding:5px 4px;border-bottom:2px solid var(--border-strong);font-weight:700;vertical-align:bottom}.print-bl-table td{padding:4px;border-bottom:1px solid var(--border-soft)}.print-bl-table td.num-cell,.print-bl-table th.num-cell{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.print-bl-table tfoot td{border-top:2px solid var(--border-strong);border-bottom:none;font-weight:700;background:var(--surface-2);padding-top:6px}@media print{.print-bl-table thead{display:table-header-group}.print-bl-table tr{break-inside:avoid;page-break-inside:avoid}}.print-sheet .ps-head{display:flex;flex-wrap:wrap;gap:4px 26px}.print-sheet .ps-head>div{min-width:46%}.ps-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:12px}.ps-table td{padding:4px;border-bottom:1px dotted var(--border)}.ps-table td.lbl{color:var(--text-secondary)}.ps-table td.num-cell{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.ps-table tr.ps-grp>td{background:var(--surface-2);font-weight:700;text-transform:uppercase;font-size:var(--fs-2xs);letter-spacing:.04em;padding:5px 4px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.ps-table tr.ps-sum>td{border-top:1.5px solid var(--border-strong);border-bottom:none;font-weight:700}.ps-table tr.ps-final>td{background:var(--text-primary);color:#fff;font-weight:700;font-size:13px;border:none;padding:7px 4px}.print-sheet .print-ky-o{border-bottom:1px dotted var(--border-strong);height:34px}.print-sheet.print-to-page{margin-top:24px}@media print{.print-sheet.print-to-page{break-before:page;page-break-before:always;margin-top:0}.print-sheet tr.print-grp{break-after:avoid;page-break-after:avoid}.print-sheet .print-sign,.print-sheet tr{break-inside:avoid;page-break-inside:avoid}}.print-sheet .print-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--border-soft);font-size:var(--fs-sm)}.print-sheet .print-row .k{color:var(--text-tertiary)}.print-sheet .print-row .v{font-weight:600}.print-qr{display:flex;justify-content:center;margin:20px 0}.print-qr img{width:120px;height:120px}.anh-upload-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.anh-upload-actions .btn{display:inline-flex;align-items:center;gap:6px}.anh-upload-preview{position:relative;display:inline-block}.anh-upload-preview img{max-width:100%;max-height:220px;display:block;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.anh-upload-preview .icon-btn{position:absolute;top:6px;right:6px;background:var(--surface);border-color:var(--border)}.tem-qr-list{display:flex;flex-wrap:wrap;gap:8mm}.tem-qr{width:54mm;height:54mm;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5mm;padding:2mm;text-align:center;overflow:hidden;border:1px dashed var(--border);background:#fff;color:#000}.tem-qr-img{width:34mm;height:34mm;display:block}.tem-qr-ma{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:3.4mm;font-weight:700;letter-spacing:.3mm}.tem-qr-ten{font-size:2.8mm;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tem-qr-vitri{font-size:2.4mm;color:#444}@media print{.tem-qr-list{display:block;gap:0}.tem-qr{border:none;width:100%;height:auto;min-height:0;page-break-after:always;break-after:page}.tem-qr:last-child{page-break-after:auto;break-after:auto}}.qt-sheet{max-width:900px;font-size:var(--fs-xs);color:#111}.qt-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:14px}.qt-head-left{text-align:center;flex:0 0 150px}.qt-kho{font-weight:800;font-size:var(--fs-md);margin-bottom:6px}.qt-qr{width:96px;height:96px}.qt-head-right{flex:1 1}.qt-title{background:#ef8a1f;color:#111;font-weight:800;font-size:var(--fs-xl);text-align:center;padding:10px;border-radius:3px}.qt-meta{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.qt-meta-k{color:#2a6fd4;font-weight:600}.qt-meta-v{font-weight:700}.qt-subtitle{text-align:center;font-size:var(--fs-2xs);color:#666;margin-top:2px}.qt-print-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.qt-print-actions-label{font-weight:600;color:var(--text-secondary);margin-right:2px}.qt-table-scroll{overflow-x:auto}@media print{.qt-table-scroll{overflow-x:visible}}.qt-band{background:#ef8a1f;color:#111;font-weight:700;padding:4px 10px;border-radius:2px}.qt-info{border:1px solid #ddd;border-top:none;padding:8px 10px}.qt-info-row{padding:2px 0}.qt-info-k{color:#666}.qt-table{width:100%;border-collapse:collapse;margin-top:14px}.qt-table th{background:#ef8a1f;color:#111;font-size:var(--fs-2xs);padding:6px 4px;border:1px solid #d9d9d9;text-align:center}.qt-table td{border:1px solid #d9d9d9;padding:5px 4px;vertical-align:middle}.qt-table tfoot td{background:#faf3ea}.qt-lo{font-size:var(--fs-2xs);color:#555;word-break:break-word}.qt-sign{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px;text-align:center}.qt-sign-title{font-size:var(--fs-base);margin-bottom:6px}.qt-sign-by{font-size:var(--fs-2xs);font-weight:700;line-height:1.35}.qt-sign-img{max-width:130px;max-height:60px;object-fit:contain}.qt-sign-empty{color:#6e6e73;font-size:var(--fs-2xs);padding:12px 0}.qt-foot{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}.qt-foot-title{font-weight:700;text-align:center;margin-bottom:8px}.qt-log{font-size:var(--fs-2xs);line-height:1.5}.qt-hinh{max-width:100%;max-height:300px;object-fit:contain;display:block;margin:0 auto}.qt-note{margin-top:14px;font-size:var(--fs-2xs);color:#a15c00}.print-sign-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px;text-align:center;font-size:var(--fs-sm)}.sla-ok{color:var(--green);font-weight:600}.sla-warn{color:var(--amber);font-weight:600}.ma-lenh-da-xuat-kho{color:var(--green)}.sla-late{color:var(--red);font-weight:600}.clickable-row{cursor:pointer}.clickable-row:hover{background:var(--surface-2)}.chat-shell{display:flex;height:calc(100vh - 65px);min-height:420px}.chat-hop-thu{width:208px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border-soft);height:100%;overflow-y:auto;padding:14px 10px;display:flex;flex-direction:column;gap:2px}.chat-hop-thu h2{font-size:var(--fs-sm);font-weight:700;padding:0 8px 10px}.chat-ht-nhom{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);padding:14px 8px 5px}.chat-ht-muc{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:8px;color:var(--text-secondary);font-size:var(--fs-xs);font-weight:500;min-height:34px;width:100%;text-align:left;border:0;background:transparent}.chat-ht-muc:hover{background:var(--hover-bg);color:var(--text-primary)}.chat-ht-muc.active{background:var(--tint-primary);color:var(--primary);font-weight:700}.chat-ht-muc .ic{width:16px;text-align:center;flex-shrink:0;opacity:.8;display:inline-flex;align-items:center;justify-content:center}.chat-ht-muc .ic svg{fill:var(--text-tertiary)}.chat-ht-muc.active .ic svg{fill:var(--primary)}.chat-ht-muc .ten{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-ht-muc .dem{font-size:var(--fs-2xs);color:var(--text-tertiary);flex-shrink:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chat-ht-muc .dem.nhan-manh{color:var(--primary);font-weight:700}.chat-ht-muc.active .dem{color:var(--primary)}@media (max-width:1180px){.chat-hop-thu{display:none}}.chat-kenh-dau{padding:12px 10px 8px;display:flex;flex-direction:column;gap:8px;border-bottom:1px solid var(--border-soft)}.chat-kenh-loc-dang-bat{font-size:var(--fs-2xs);color:var(--primary);background:var(--tint-primary);border:1px solid var(--tint-primary-border);border-radius:999px;padding:4px 10px;text-align:left}.chat-kenh-loc-dang-bat:hover{background:var(--tint-primary-border)}.chat-kenh-ava{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:16px;background:var(--tint-primary);margin-top:1px}.chat-kenh-ava svg{fill:var(--primary)}.chat-kenh-ph{font-size:10px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.03em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-kenh-item.active .chat-kenh-ph{color:var(--primary)}.chat-kenh-sidebar{width:264px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border-soft);display:flex;flex-direction:column;height:100%}.chat-kenh-back-all{display:block;padding:10px 14px;font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border-soft);text-decoration:none;flex-shrink:0}.chat-kenh-back-all:hover{color:var(--accent);background:var(--hover-bg)}.chat-kenh-scroll{flex:1 1;overflow-y:auto;padding:10px 8px 16px}.chat-kenh-group{margin-bottom:4px}.chat-kenh-group-head{display:flex;align-items:center;gap:6px;padding:9px 8px 5px;font-size:var(--fs-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary)}.chat-kenh-item{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:7px 9px;border-radius:7px;margin-bottom:1px;font-size:var(--fs-sm);color:var(--text-secondary);background:transparent;border:none}.chat-kenh-item .hash{color:var(--text-tertiary);font-size:var(--fs-sm);width:14px;text-align:center;flex-shrink:0}.chat-kenh-item{align-items:flex-start}.chat-kenh-item .hash{line-height:1.45}.chat-kenh-item .giua{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:1px}.chat-kenh-item .name,.chat-kenh-item .tin-cuoi{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-kenh-item .tin-cuoi{font-size:var(--fs-2xs);color:var(--text-tertiary)}.chat-kenh-item .phai{display:flex;align-items:center;gap:6px;flex-shrink:0;padding-top:1px}.chat-kenh-item .gio{font-size:var(--fs-2xs);color:var(--text-tertiary);white-space:nowrap}.chat-kenh-item.co-tin-moi .name{font-weight:700;color:var(--text-primary)}.chat-kenh-item.co-tin-moi .tin-cuoi{color:var(--text-secondary)}.chat-kenh-item:hover{background:var(--hover-bg);color:var(--text-primary)}.chat-kenh-item.active{background:var(--tint-primary);color:var(--text-primary);font-weight:600}.chat-kenh-item.active .hash{color:var(--accent)}.chat-kenh-add{display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;font-size:var(--fs-sm);color:var(--text-tertiary);border-radius:7px;background:transparent;border:none;text-align:left}.chat-kenh-add:hover{color:var(--text-secondary);background:var(--hover-bg)}.chat-kenh-add .hash{width:14px;text-align:center}.chat-unread{color:var(--primary-on);background:var(--primary)}.chat-kenh-item .unread,.chat-unread{font-size:var(--fs-2xs);font-weight:700;padding:1px 6px;border-radius:9px;flex-shrink:0}.chat-kenh-item .unread{color:#fff;background:var(--red-fill);min-width:18px;text-align:center}.chat-main-col{flex:1 1;min-width:0;display:flex;flex-direction:column;height:100%;position:relative}.chat-header{padding:13px 22px;border-bottom:1px solid var(--border-soft);display:flex;align-items:center;gap:12px;flex-shrink:0}.chat-header .hash-big{font-size:18px;color:var(--text-tertiary)}.chat-header h1{font-size:var(--fs-md);font-weight:700}.chat-header .sub{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:1px}.chat-header .spacer{flex:1 1}.chat-search-box{min-width:220px}@media (max-width:600px){.chat-header{flex-wrap:wrap}.chat-search-box{min-width:0;flex:1 1 100%;order:3}}.chat-thread-banner{display:flex;align-items:center;gap:8px;padding:8px 22px;background:var(--tint-primary-soft);border-bottom:1px solid var(--tint-primary-border);font-size:var(--fs-xs);color:var(--text-secondary);flex-shrink:0}.chat-thread-banner b{color:var(--text-primary)}.chat-thread-banner a{color:var(--accent);margin-left:auto}.chat-feed{flex:1 1;overflow-y:auto;padding:18px 22px 8px;display:flex;flex-direction:column;gap:10px}.chat-day-sep{display:flex;align-items:center;gap:10px;margin:14px 0 10px;color:var(--text-tertiary);font-size:var(--fs-2xs)}.chat-day-sep:after,.chat-day-sep:before{content:"";flex:1 1;height:1px;background:var(--border-soft)}.chat-msg{display:flex;gap:10px;padding:3px 2px;border-radius:8px;position:relative;max-width:min(760px,82%)}.chat-msg.cua-minh{align-self:flex-end;flex-direction:row-reverse}.chat-msg.co-bieu-do{width:min(760px,100%);max-width:100%}.chat-msg:hover .chat-msg-reply-btn{display:inline-flex}.chat-bong{background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;padding:9px 13px;box-shadow:var(--shadow-card);min-width:0}.chat-msg.cua-minh .chat-bong{background:var(--tint-primary);border-color:var(--tint-primary-border)}.chat-meta-duoi{font-size:var(--fs-2xs);color:var(--text-tertiary);margin-top:4px;padding:0 4px}.chat-msg.cua-minh .chat-meta-duoi{text-align:right}.chat-msg .chat-avatar{width:34px;height:34px;border-radius:9px;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:700;color:#fff;margin-top:2px;background:var(--primary)}.chat-msg .chat-avatar img{width:100%;height:100%;object-fit:cover}.chat-msg .chat-body{flex:1 1;min-width:0;display:flex;flex-direction:column}.chat-msg .chat-row1{display:flex;align-items:baseline;gap:8px}.chat-msg .chat-sender{font-size:var(--fs-sm);font-weight:700}.chat-msg .chat-time{font-size:var(--fs-2xs);color:var(--text-tertiary)}.chat-msg .chat-text{font-size:var(--fs-base);color:var(--text-primary);line-height:1.55;margin-top:2px;white-space:pre-wrap;word-break:break-word}.chat-mention-tag{color:var(--accent);background:var(--tint-primary-soft);padding:0 4px;border-radius:5px;font-weight:600}.chat-msg-reply-btn{display:none;position:absolute;top:4px;right:8px;font-size:var(--fs-2xs);background:var(--surface);border:1px solid var(--border);color:var(--text-tertiary);border-radius:6px;padding:3px 8px}.chat-msg-reply-btn:hover{color:var(--text-primary);border-color:var(--border-strong)}.chat-reply-quote{display:flex;align-items:center;gap:6px;margin-top:5px;padding:5px 9px;background:var(--surface-2);border-radius:4px;font-size:var(--fs-xs);color:var(--text-tertiary);max-width:380px;cursor:pointer}.chat-reply-quote b{color:var(--text-secondary)}.chat-reply-quote{border:none;border-left:2px solid var(--primary);font:inherit;text-align:left;width:fit-content}.chat-reply-quote:hover{background:var(--hover-bg)}.chat-msg-nhay{animation:chatNhayTin 2.5s ease-out}@keyframes chatNhayTin{0%{box-shadow:0 0 0 3px var(--tint-primary-border);background:var(--tint-primary)}30%{box-shadow:0 0 10px 3px var(--tint-primary-soft);background:var(--tint-primary-soft)}to{box-shadow:none;background:transparent}}.chat-attach-chip{display:inline-flex;align-items:center;gap:7px;margin-top:7px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:7px 11px;font-size:var(--fs-xs);max-width:340px;cursor:pointer}.chat-attach-chip:hover{border-color:var(--primary);background:var(--tint-primary-soft)}.chat-attach-chip.chet{cursor:default;opacity:.6}.chat-attach-chip.chet:hover{border-color:var(--border);background:var(--surface-2)}.chat-attach-chip .meta .t1{font-weight:700;color:var(--text-primary);font-size:var(--fs-xs)}.chat-attach-chip .meta .t2{color:var(--text-tertiary);font-size:var(--fs-2xs)}.chat-media-img{max-width:320px;max-height:260px;border-radius:8px;margin-top:7px;display:block;cursor:zoom-in}.chat-media-file{display:inline-flex;align-items:center;gap:8px;margin-top:7px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:var(--fs-sm)}.chat-media-audio{margin-top:7px;max-width:320px}.chat-task-card{margin-top:8px;border:1px solid var(--tint-amber);background:rgba(245,158,11,.06);border-radius:9px;padding:10px 13px;max-width:420px}.chat-task-card .head{display:flex;align-items:center;gap:7px;font-size:var(--fs-xs);font-weight:700;color:var(--amber);text-transform:uppercase;letter-spacing:.03em}.chat-task-card .who-when{display:flex;align-items:center;justify-content:space-between;margin-top:7px;flex-wrap:wrap;gap:6px}.chat-task-card .han{font-size:var(--fs-2xs);margin-top:7px;color:var(--text-tertiary)}.chat-task-card .han.warn{color:var(--red)}.chat-sla-pill{font-size:var(--fs-2xs);font-weight:700;padding:2.5px 9px;border-radius:20px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.chat-sla-pill.dang-lam{background:var(--tint-primary);color:var(--accent)}.chat-sla-pill.qua-han{background:var(--tint-red);color:var(--red)}.chat-sla-pill.hoan-thanh{background:var(--tint-green);color:var(--green)}.chat-sla-pill.da-nhan-viec{background:var(--tint-amber);color:var(--amber)}.chat-sla-pill.bao-spam{background:var(--tint-red);color:var(--red)}.chat-sla-pill .dot{width:5px;height:5px;border-radius:50%;background:currentColor}.chat-sys-msg{align-self:center;max-width:min(620px,86%);display:flex;align-items:center;gap:9px;padding:7px 16px;background:var(--surface-2);border:1px solid var(--border-soft);border-radius:999px;font-size:var(--fs-xs);color:var(--text-secondary);text-align:center}.kenh-info-card{border:1px solid var(--border-soft);border-radius:14px;padding:13px 14px;background:var(--surface);margin-bottom:14px}.kenh-info-head{font-size:var(--fs-sm);font-weight:700;margin-bottom:9px;display:flex;align-items:center;gap:6px}.kenh-info-head .dem{color:var(--text-tertiary);font-weight:500}details.kenh-info-card>summary.kenh-info-head{cursor:pointer;margin-bottom:0;list-style:none}details.kenh-info-card>summary.kenh-info-head::-webkit-details-marker{display:none}details.kenh-info-card>summary.kenh-info-head:after{content:"";margin-left:auto;width:7px;height:7px;border-right:2px solid var(--text-tertiary);border-bottom:2px solid var(--text-tertiary);transform:rotate(45deg) translateY(-2px);transition:transform .15s ease}details.kenh-info-card[open]>summary.kenh-info-head{margin-bottom:9px}details.kenh-info-card[open]>summary.kenh-info-head:after{transform:rotate(-135deg) translateY(-2px)}.kenh-info-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--border-soft)}.kenh-info-row:last-child{border-bottom:0}.kenh-info-row .nhan{flex:1 1;color:var(--text-secondary);font-size:var(--fs-xs)}.kenh-info-row .gt{font-weight:600;font-size:var(--fs-xs)}.kenh-tv{gap:9px;padding:6px 0}.kenh-tv,.kenh-tv .ava{display:flex;align-items:center}.kenh-tv .ava{width:28px;height:28px;border-radius:50%;flex-shrink:0;overflow:hidden;justify-content:center;background:var(--primary);color:#fff;font-size:var(--fs-2xs);font-weight:700}.kenh-tv .ava img{width:100%;height:100%;object-fit:cover}.kenh-tv .ten{flex:1 1;min-width:0;font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kenh-tv .vai{font-size:var(--fs-3xs,10px);font-weight:700;padding:1px 6px;border-radius:999px;background:var(--tint-primary);color:var(--primary);flex-shrink:0}.kenh-tv .ma{font-size:var(--fs-2xs);color:var(--text-tertiary);flex-shrink:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chat-tai-them{align-self:center;font-size:var(--fs-2xs);color:var(--text-tertiary);padding:4px 12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border-soft);margin-bottom:4px}.chat-tai-them.het{opacity:.75}.chat-feed-wrap{position:relative;flex:1 1;min-height:0;display:flex;flex-direction:column}.chat-feed-wrap>.chat-feed{flex:1 1;min-height:0}.chat-tin-moi-pill{position:absolute;left:50%;transform:translateX(-50%);bottom:14px;z-index:20;background:var(--primary);color:var(--primary-on);border:0;border-radius:999px;padding:7px 16px;font-size:var(--fs-xs);font-weight:700;min-height:34px;box-shadow:var(--shadow-pop);display:flex;align-items:center;gap:6px}.chat-tin-moi-pill:hover{background:var(--primary-hover)}.chat-composer-wrap{padding:12px 22px 16px;flex-shrink:0;position:relative}.chat-composer{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-card)}.chat-composer:focus-within{border-color:var(--primary)}.chat-composer textarea{width:100%;background:transparent;border:none;outline:none;resize:none;color:var(--text-primary);font-family:inherit;font-size:var(--fs-base);line-height:1.5;min-height:22px;max-height:100px}.chat-attach-preview{display:flex;align-items:center;gap:8px;padding:6px 9px;background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);border-radius:8px;font-size:var(--fs-xs);color:var(--text-secondary)}.chat-attach-preview .x{margin-left:auto;color:var(--text-tertiary);background:none;border:none}.chat-composer-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chat-composer-toolbar .spacer{flex:1 1}.chat-icon-btn{width:30px;height:30px;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--text-tertiary);display:flex;align-items:center;justify-content:center;font-size:var(--fs-base)}.chat-icon-btn:hover{background:var(--surface);color:var(--text-primary);border-color:var(--border)}.chat-icon-btn:disabled{opacity:.4}.chat-toggle-task{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--text-tertiary);border:1px solid var(--border);padding:5px 10px;border-radius:20px;background:transparent}.chat-toggle-task:hover{color:var(--text-secondary);border-color:var(--border-strong)}.chat-toggle-task.on{color:var(--amber);border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.08)}.chat-send-btn{width:40px;height:40px;border-radius:50%;background:var(--primary);border:none;color:var(--primary-on);display:flex;align-items:center;justify-content:center;font-size:var(--fs-base);margin-left:auto;flex-shrink:0}.chat-send-btn:hover{background:var(--primary-hover)}.chat-send-btn:disabled{opacity:.5}.chat-task-fields{display:flex;gap:10px;padding-top:8px;border-top:1px solid var(--border-soft);align-items:center;flex-wrap:wrap}.chat-task-fields label{font-size:var(--fs-2xs);color:var(--text-tertiary);display:flex;align-items:center;gap:6px}.chat-task-fields input,.chat-task-fields select{background:var(--surface);border:1px solid var(--border);color:var(--text-primary);font-family:inherit;font-size:var(--fs-xs);padding:5px 9px;border-radius:6px;outline:none}.chat-task-nguoinhan{display:flex;flex-direction:column;gap:4px;min-width:220px}.chat-task-nguoinhan label{font-size:var(--fs-2xs);color:var(--text-tertiary)}.chat-mention-pop{position:absolute;bottom:100%;left:22px;margin-bottom:8px;z-index:10;width:240px;max-height:260px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-modal)}.chat-mention-pop .hd{font-size:var(--fs-2xs);color:var(--text-tertiary);padding:8px 12px 4px;text-transform:uppercase;letter-spacing:.04em}.chat-mention-opt{display:flex;align-items:center;gap:9px;padding:7px 12px;font-size:var(--fs-sm);width:100%;text-align:left;background:transparent;border:none;color:var(--text-primary)}.chat-mention-opt:hover{background:var(--tint-primary)}.chat-mention-opt .role{margin-left:auto;font-size:var(--fs-2xs);color:var(--text-tertiary)}.chat-right-panel{width:310px;flex-shrink:0;background:var(--surface);border-left:1px solid var(--border-soft);height:100%;display:flex;flex-direction:column;overflow-y:auto;padding:14px 14px 0}.chat-right-panel .chat-task-panel{width:auto;border-left:0;height:auto;flex:1 1 auto;min-height:0}@media (max-width:1180px){.chat-right-panel{display:none}}.chat-task-panel{width:300px;flex-shrink:0;background:var(--surface);border-left:1px solid var(--border-soft);height:100%;display:flex;flex-direction:column}.chat-task-panel-head{padding:15px 16px 12px;border-bottom:1px solid var(--border-soft)}.chat-task-panel-head h2{font-size:var(--fs-sm);font-weight:700}.chat-task-panel-head .sub{font-size:var(--fs-2xs);color:var(--text-tertiary);margin-top:2px}.chat-tp-tabs{display:flex;gap:4px;padding:10px 12px 0}.chat-tp-tab{font-size:var(--fs-2xs);padding:5px 10px;border-radius:20px;color:var(--text-tertiary);border:1px solid transparent;background:transparent}.chat-tp-tab.active{background:var(--tint-primary);color:var(--text-primary)}.chat-tp-list{flex:1 1;overflow-y:auto;padding:10px 12px 16px;display:flex;flex-direction:column;gap:8px}.chat-tp-card{background:var(--surface-2);border:1px solid var(--border-soft);border-radius:9px;padding:10px 12px;cursor:pointer}.chat-tp-card.done{opacity:.6}.chat-tp-card .txt{font-size:var(--fs-xs);color:var(--text-primary);line-height:1.45}.chat-tp-card .meta-row{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:6px;flex-wrap:wrap}.chat-tp-card .chan{font-size:var(--fs-2xs);color:var(--text-tertiary)}.chat-tp-card .han{font-size:var(--fs-2xs);margin-top:6px;display:flex;align-items:center;gap:5px}.chat-tp-card .han.warn{color:var(--red)}.chat-tp-card .han.ok{color:var(--text-tertiary)}.chat-tp-card .who{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}.chat-tp-card .who .arrow,.chat-tp-card .who .name{font-size:var(--fs-2xs);color:var(--text-tertiary)}.chat-tp-card .actions{display:flex;gap:4px 10px;margin-top:8px;flex-wrap:wrap}@media (max-width:1180px){.chat-task-panel{display:none}}.chat-dong-ds-mobile,.chat-mo-ds-mobile{display:none}@media (max-width:860px){.chat-kenh-sidebar{display:none}.chat-kenh-sidebar.mo-mobile{display:flex;position:absolute;inset:0;z-index:50;width:auto;border-right:0;box-shadow:var(--shadow-pop)}.chat-mo-ds-mobile{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border:0;background:transparent;color:var(--text-secondary);font-size:20px;border-radius:50%}.chat-mo-ds-mobile:hover{background:var(--hover-bg);color:var(--text-primary)}.chat-kenh-sidebar.mo-mobile .chat-dong-ds-mobile{display:block;width:100%;text-align:left;padding:12px 14px;min-height:44px;border:0;border-bottom:1px solid var(--border-soft);background:transparent;color:var(--text-secondary);font-size:var(--fs-xs);font-weight:600}}.chat-shell{position:relative}.cccd-mask{display:inline-flex;align-items:center;gap:6px}.cccd-mask .icon-btn{color:var(--amber)}.cccd-mask .icon-btn:hover,.cccd-mask .icon-label-btn .icon-label-circle,.cccd-mask .icon-label-btn:hover .icon-label-circle{color:var(--amber);border-color:var(--tint-amber);background:var(--tint-amber)}.cccd-mask .icon-label-btn:hover .icon-label-text{color:var(--amber)}.cccd-reveal{font-size:var(--fs-2xl);font-weight:700;letter-spacing:.04em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-primary);margin:6px 0 2px}.header-bell,.header-bell-btn{position:relative}.header-bell-btn{width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:var(--fs-md);cursor:pointer;color:var(--text-secondary)}.header-bell-btn:hover{background:var(--tint-primary)}.header-bell-badge{position:absolute;top:-3px;right:-3px}.header-bell-dropdown{position:fixed;z-index:60}.header-bell-panel{width:340px;max-height:420px;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-pop);padding:6px}@media (max-width:860px){.header-bell-dropdown{inset:0!important;top:0!important;right:0!important;display:flex;align-items:center;justify-content:center;background:var(--overlay);padding:20px}.header-bell-panel{width:100%;max-width:360px;max-height:78vh}}.header-bell-head{font-size:var(--fs-xs);font-weight:700;color:var(--text-secondary);padding:8px 10px 6px}.header-bell-item{display:block;width:100%;text-align:left;padding:9px 10px;border-radius:8px;border:none;background:transparent;cursor:pointer;font-size:var(--fs-xs);color:var(--text-primary)}.header-bell-item:hover{background:var(--surface-2)}.header-bell-item.unread{background:var(--tint-primary)}.header-bell-item .t1{font-weight:600}.header-bell-item .t2{color:var(--text-tertiary);font-size:var(--fs-2xs);margin-top:2px}.header-bell-foot{padding:8px;color:var(--accent);cursor:pointer}.header-bell-empty,.header-bell-foot{text-align:center;font-size:var(--fs-xs)}.header-bell-empty{padding:24px 10px;color:var(--text-tertiary)}.canhan-wrap{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.canhan-card{width:260px;flex-shrink:0;background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:22px 18px;text-align:center}.canhan-avatar-wrap{position:relative;width:72px;margin:0 auto 12px}.canhan-avatar{width:72px;height:72px;border-radius:50%;background:var(--tint-primary);color:var(--accent);font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center;overflow:hidden}.canhan-avatar img{width:100%;height:100%;object-fit:cover}.canhan-avatar-edit{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;border-radius:50%;background:var(--primary);border:2px solid var(--surface);color:var(--primary-on);display:flex;align-items:center;justify-content:center;cursor:pointer}.canhan-avatar-edit:hover{background:var(--primary-hover)}.canhan-avatar-edit input[type=file]{display:none}.canhan-name{font-size:var(--fs-md);font-weight:700}.canhan-role{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:3px}.canhan-status{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-2xs);font-weight:600;color:var(--green);margin-top:10px}.canhan-status .dot{width:6px;height:6px;border-radius:50%;background:currentColor}.canhan-actions{margin-top:14px;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 10px}.canhan-kv{margin-top:16px;text-align:left;border-top:1px solid var(--border-soft);padding-top:12px}.canhan-kv .row{display:flex;justify-content:space-between;gap:8px;padding:4px 0;font-size:var(--fs-xs)}.canhan-kv .lbl{color:var(--text-tertiary)}.canhan-kv .val{color:var(--text-primary);font-weight:500;text-align:right}.canhan-main{flex:1 1;min-width:280px;gap:22px}.canhan-cot-trai,.canhan-main{display:flex;flex-direction:column}.canhan-cot-trai{width:260px;flex-shrink:0;gap:18px}.canhan-cot-trai .callout{display:block}.canhan-cot-trai .section-title{flex-direction:column;align-items:flex-start;gap:2px;margin-top:0}.canhan-cot-trai .section-title .hint{line-height:1.3}.canhan-cot-trai .canhan-card,.canhan-luong{width:100%}.canhan-luong .section-title{margin-bottom:8px}@media (max-width:860px){.canhan-cot-trai{width:100%}}.cv-list{display:flex;flex-direction:column;gap:8px}.cv-card{border:1px solid var(--border-soft);border-radius:10px;background:var(--surface);padding:11px 14px;cursor:pointer;transition:border-color .12s,background .12s}.cv-card:hover{border-color:var(--primary);background:var(--tint-primary-soft)}.cv-top{display:flex;align-items:flex-start;gap:10px}.cv-noi-dung{flex:1 1;font-size:var(--fs-sm);font-weight:600;color:var(--text-primary)}.cv-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;margin-top:7px;font-size:var(--fs-xs);color:var(--text-tertiary)}.cv-meta .cv-kenh{font-family:monospace;white-space:nowrap}.cv-meta .cv-nguoi{display:inline-flex;align-items:baseline;gap:4px;min-width:0}.cv-meta .cv-nguoi .ma-nv{font-size:var(--fs-2xs)}.cv-meta .cv-nguoi .ten-nv{display:inline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cv-meta .spacer{flex:1 1}@media (max-width:860px){.cv-meta{gap:3px 10px}.cv-meta .spacer{display:none}.cv-meta .cv-han{flex-basis:100%}}.cv-doan{display:flex;gap:8px;align-items:flex-start}.cv-doan+.cv-doan{margin-top:8px}.cv-doan.dap{flex-direction:row-reverse}.cv-bong{flex:1 1;min-width:0;padding:8px 10px;border-radius:10px;background:var(--tint-primary);border-left:3px solid var(--primary)}.cv-doan.dap .cv-bong{background:var(--tint-green);border-left:none;border-right:3px solid var(--green)}.cv-bong-dau{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;margin-bottom:3px}.cv-doan.dap .cv-bong-dau{flex-direction:row-reverse}.cv-bong-dau .ten{font-weight:600;font-size:var(--fs-xs);color:var(--text-primary)}.cv-bong-dau .luc,.cv-bong-dau .ma-nv{font-size:var(--fs-2xs)}.cv-bong-dau .luc{color:var(--text-tertiary)}.cv-bong-dau .spacer{flex:1 1}.cv-chip{font-size:var(--fs-2xs);font-weight:700;letter-spacing:.3px;padding:1px 6px;border-radius:999px;background:var(--tint-gray);color:var(--text-secondary);white-space:nowrap}.cv-doan.dap .cv-chip{background:var(--tint-green);color:var(--green)}.cv-bong-lien-mach{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 7px}.cv-bong-lien-mach .cv-bong-ai{flex-shrink:0;font-weight:600;color:var(--text-primary);font-size:var(--fs-xs)}.cv-bong-lien-mach .cv-bong-ai .ten-nv{display:inline;font-weight:400}.cv-bong-lien-mach .cv-bong-noi-dung{flex:1 1 240px;min-width:0}.cv-bong-lien-mach .cv-chip{margin-left:auto}.cv-bong-lien-mach .luc{flex-shrink:0;font-size:var(--fs-2xs);color:var(--text-tertiary)}.cv-bong-noi-dung{font-size:var(--fs-sm);color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.cv-bong-trong{font-size:var(--fs-xs);color:var(--text-tertiary);font-style:italic}.cv-doan .cv-ava-wrap{display:flex;flex-direction:column;align-items:center;gap:2px;width:36px}.cv-doan .cv-ava-nhan{font-size:var(--fs-2xs);color:var(--text-tertiary)}.cv-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.cv-actions .icon-label-btn{flex-direction:row;width:auto;gap:5px;height:32px;padding:0 10px;border-radius:999px}.cv-actions .icon-label-btn .icon-label-text{font-size:var(--fs-xs);white-space:nowrap}.cv-actions .spacer{flex:1 1}.cv-them-phan-hoi{margin-top:6px;font-size:var(--fs-xs);color:var(--text-tertiary)}.cv-card.cv-gon{display:flex;align-items:center;gap:10px;padding:8px 10px;cursor:pointer}.cv-card.cv-gon .cv-kenh{flex-shrink:0}.cv-card.cv-gon .cv-gon-nguoi{flex-shrink:0;max-width:170px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cv-card.cv-gon .cv-gon-noi-dung{flex:2 1;min-width:0;font-size:var(--fs-sm);font-weight:600;color:var(--text-primary)}.cv-card.cv-gon .cv-gon-tra-loi{flex:1 1;min-width:0;font-size:var(--fs-xs);color:var(--text-secondary)}.cv-card.cv-gon .cv-han{flex-shrink:0;white-space:nowrap}.cv-card.cv-gon .chat-sla-pill{flex-shrink:0}@media (max-width:860px){.cv-card.cv-gon .cv-gon-tra-loi,.cv-card.cv-gon .cv-han{display:none}.cv-card.cv-gon .cv-gon-nguoi{max-width:110px}.cv-doan .cv-ava-wrap{width:30px}.cv-actions .spacer{display:none}}.canhan-payroll-row{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--surface);border:1px solid var(--border-soft);border-radius:9px;cursor:pointer;margin-bottom:8px}.canhan-payroll-row:hover{border-color:var(--border-strong)}.canhan-payroll-row .ky{font-size:var(--fs-sm);font-weight:600}.canhan-payroll-row .sub{font-size:var(--fs-2xs);color:var(--text-tertiary);margin-top:2px}.canhan-payroll-row .amt{font-size:var(--fs-base);font-weight:700;color:var(--accent)}@media (max-width:860px){.canhan-card{width:calc(100% + 24px);margin:-14px -12px 0;border-radius:0;border-left:none;border-right:none;border-top:none}.canhan-main{width:100%;min-width:0}}.formula-group{margin-bottom:26px}.formula-group-title{font-size:var(--fs-sm);font-weight:700;color:var(--text-primary);margin-bottom:10px}.formula-group-title .count{color:var(--text-tertiary);font-weight:500}.formula-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;padding:16px 18px;margin-bottom:14px}.formula-card-warning{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs);font-weight:600;color:var(--amber);background:var(--tint-amber);border:1px solid var(--tint-amber-border,var(--border));border-radius:8px;padding:8px 12px;margin-bottom:12px}.formula-card-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.formula-card-name{font-weight:700;font-size:var(--fs-base);color:var(--text-primary)}.formula-card-loc,.formula-card-name{font-family:var(--font-mono,monospace)}.formula-card-loc{font-size:var(--fs-2xs);color:var(--text-tertiary)}.formula-card-desc{margin-top:6px;font-size:var(--fs-sm);color:var(--text-secondary)}.formula-card-why{margin-top:4px;font-size:var(--fs-xs);color:var(--text-tertiary)}.formula-card-why b{color:var(--text-secondary)}.formula-code-wrap{position:relative;margin-top:12px}.formula-code-wrap.collapsed{max-height:320px;overflow:hidden}.formula-code-wrap.collapsed:after{content:"";position:absolute;left:0;right:0;bottom:0;height:60px;background:linear-gradient(to bottom,transparent,var(--surface));pointer-events:none}.formula-code-block{border:1px solid var(--border-soft);border-radius:8px;overflow:auto;font-size:var(--fs-xs)}.formula-code-block pre{margin:0;padding:12px 14px}.formula-code-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.formula-code-block .shiki,.formula-code-block .shiki span{color:var(--shiki-dark)}.formula-code-block pre.shiki{background-color:var(--shiki-dark-bg)!important}[data-theme=light] .formula-code-block .shiki,[data-theme=light] .formula-code-block .shiki span{color:var(--shiki-light)}[data-theme=light] .formula-code-block pre.shiki{background-color:var(--shiki-light-bg)!important}.tem-a5{border:1px dashed var(--border);border-radius:6px;padding:10mm 12mm;display:flex;align-items:center;gap:12mm;box-sizing:border-box;min-height:130mm;background:#fff;color:#000}.tem-a5+.tem-a5{margin-top:6mm}.tem-a5 .tem-qr{width:46mm;height:46mm;flex:0 0 auto}.tem-a5 .tem-fields{flex:1 1 auto;min-width:0}.tem-a5 .tem-masp{font-size:30pt;font-weight:800;line-height:1.1;letter-spacing:.5px}.tem-a5 .tem-tensp{font-size:13pt;margin-top:3mm;line-height:1.35}.tem-a5 .tem-meta{margin-top:6mm;font-size:13pt;display:flex;flex-direction:column;gap:2mm}.tem-a5 .tem-meta b{font-size:15pt}.tem-a5 .tem-meta .k{color:#444;margin-right:3mm}.tem-60{width:60mm;height:60mm;box-sizing:border-box;padding:3mm;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2mm;border:1px dashed var(--border);border-radius:4px;background:#fff;color:#000}.tem-60 .tem-qr{width:38mm;height:38mm}.tem-60 .tem-masp{font-size:12pt;font-weight:800;letter-spacing:.5px;text-align:center}.tem-60 .tem-kcs-label{font-size:8pt;letter-spacing:1px;color:#444;text-transform:uppercase}@media print{.tem-60,.tem-a5{border-color:#999}.tem-a5+.tem-a5{page-break-inside:avoid}.tem-60{border:none}}.line-cards{display:none}.line-card{border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:var(--surface-2)}.line-card+.line-card{margin-top:10px}.line-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.line-card-title{font-size:var(--fs-xs);font-weight:700;color:var(--text-secondary);letter-spacing:.02em}.line-card-tools{display:flex;align-items:center;gap:8px}.line-card-tools .icon-btn{width:40px;height:40px;border-radius:10px;border-color:var(--border)}.line-card-body{flex-direction:column}.line-card-body,.line-card-row{display:flex;gap:10px}.line-card-row>.field{flex:1 1;min-width:0}.line-card-readonly{padding:10px 14px;border-radius:10px;background:var(--surface);display:flex;align-items:center}.line-card-add,.line-card-readonly{border:1px dashed var(--border);color:var(--text-secondary);font-size:var(--fs-base);min-height:44px}.line-card-add{width:100%;margin-top:10px;padding:11px 14px;border-radius:10px;background:none;font-weight:600;cursor:pointer}.line-card-add:hover{border-color:var(--primary);color:var(--accent)}.line-card-hint{margin-top:8px;font-size:var(--fs-2xs);color:var(--text-tertiary)}@media (max-width:860px){.line-table-wrap{display:none}.line-cards{display:block}.table-scroll{-webkit-overflow-scrolling:touch}.table-scroll table{font-size:var(--fs-sm)}.table-scroll thead th{padding:7px 8px;font-size:var(--fs-2xs)}.table-scroll tbody td{padding:6px 8px;white-space:nowrap}.table-scroll tbody td .cell-clamp2,.table-scroll tbody td .cell-main,.table-scroll tbody td .cell-sub{white-space:normal}.modal-overlay{padding:0}.modal-card:not(.narrow){width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;border:none}.modal-card.narrow{max-height:88dvh}.modal-head{padding:14px 16px}.modal-body{padding:16px 14px}.form-section{padding:14px;margin-bottom:14px}.modal-foot{padding:12px 14px calc(12px + env(safe-area-inset-bottom));flex-direction:column-reverse;align-items:stretch;gap:10px;background:var(--surface)}.modal-foot .btn{width:100%;justify-content:center;min-height:44px}.modal-foot .spacer{display:none}.field input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),.field select,.field textarea{font-size:16px;min-height:44px}}.line-card-readonly .cell-clamp2,td .cell-clamp2,td .cell-main>.cell-clamp2{min-width:0}tbody td>div:not(.cell-main):not(.cell-sub):not([class*=badge]):not(.row-actions):not(.cell-thumb-text):not(.cell-thumb-text-noidung):not(.hd-dau-trang){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.form-grid>.form-group-label{grid-column:1/-1}.khong-phai-admin .callout:not(.warn):not(.trang-thai),.khong-phai-admin .catalog-note,.khong-phai-admin .hint,.khong-phai-admin .tol-note{display:none}.sotay-layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:20px;align-items:start}.sotay-noi-dung{min-width:0;display:flex;flex-direction:column;gap:22px}.sotay-muc-luc{position:sticky;top:8px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:12px 10px;box-shadow:var(--shadow-card)}.sotay-muc-luc-dau{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary)}.sotay-muc-luc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.sotay-muc-luc a{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;color:var(--text-secondary);text-decoration:none;font-size:13px;line-height:1.3}.sotay-ml-so,.sotay-muc-luc a:hover{background:var(--tint-primary-soft);color:var(--primary)}.sotay-ml-so{flex:none;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border:1px solid var(--tint-primary-border)}.sotay-doc-nhanh,.sotay-muc{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-card)}.sotay-doc-nhanh h2,.sotay-muc h2{margin:0 0 6px;font-size:17px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sotay-muc-so{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:var(--primary);color:var(--primary-on)}.sotay-muc-dem{font-size:12px;font-weight:500;color:var(--text-tertiary)}.sotay-dan{margin:0 0 14px;color:var(--text-secondary);font-size:13.5px;line-height:1.55}.sotay-2-nhanh{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.sotay-nhanh{border:1px solid var(--tint-primary-border);background:var(--tint-primary-soft);border-radius:10px;padding:12px 14px}.sotay-nhanh h3{margin:0 0 8px;font-size:14px;color:var(--primary)}.sotay-chuoi{margin:0 0 6px;font-size:13px;line-height:1.9}.sotay-chuoi span{color:var(--primary);font-weight:700;padding:0 2px}.sotay-ghi{margin:0;font-size:12.5px;color:var(--text-secondary)}.sotay-dong-chay{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px}.sotay-dong-chay span{padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:600;background:var(--surface-2);border:1px solid var(--border-soft)}.sotay-dong-chay i{color:var(--text-tertiary);font-style:normal}.sotay-dong-chay-cuoi{background:var(--primary)!important;color:var(--primary-on);border-color:var(--primary)!important}.sotay-chu-giai{margin-top:14px;display:grid;gap:6px}.sotay-chu-giai>div{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--text-secondary)}.sotay-the-luoi{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}.sotay-the{border:1px solid var(--border-soft);border-radius:10px;padding:12px 14px;background:var(--surface-2);scroll-margin-top:12px}.sotay-the-dau{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap}.sotay-the-dau h3{margin:0;font-size:14.5px}.sotay-the-badges{display:flex;gap:4px;flex-wrap:wrap}.sotay-badge{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px;border:1px solid var(--border);color:var(--text-secondary);white-space:nowrap}.sotay-badge-tinh-tu-nguon{background:var(--tint-primary-soft);border-color:var(--tint-primary-border);color:var(--primary)}.sotay-badge-snapshot{background:var(--tint-amber);border-color:var(--tint-amber-border)}.sotay-badge-nhap-tay{background:var(--surface);border-style:dashed}.sotay-badge-dinh-danh{opacity:.75}.sotay-badge-track{background:var(--surface);font-weight:600}.sotay-field{margin:8px 0 0;font-size:11.5px;color:var(--text-tertiary)}.sotay-field code,.sotay-the code{font-size:11.5px;background:var(--surface);padding:1px 5px;border-radius:4px;border:1px solid var(--border-soft)}.sotay-y-nghia{margin:8px 0 0;font-size:13px;line-height:1.5}.sotay-khoi{margin-top:10px}.sotay-khoi-nhan{display:block;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:4px}.sotay-cong-thuc{margin:0;padding:8px 10px;border-radius:8px;background:var(--surface);border:1px solid var(--border-soft);font-size:12px;line-height:1.6;white-space:pre-wrap;word-break:break-word;overflow-x:auto}.sotay-nguon{margin:0;padding-left:16px;font-size:12.5px;display:flex;flex-direction:column;gap:2px}.sotay-link{color:var(--primary);text-decoration:none;display:inline-flex;align-items:center;gap:4px}.sotay-link:hover{text-decoration:underline}.sotay-tu-kiem{border-left:3px solid var(--primary);padding-left:10px}.sotay-tu-kiem dl{margin:0;display:grid;grid-template-columns:44px minmax(0,1fr);gap:2px 8px;font-size:12.5px}.sotay-tu-kiem dt{font-weight:700;color:var(--primary)}.sotay-tu-kiem dd{margin:0;line-height:1.5}.sotay-luu-y{margin:10px 0 0;font-size:12.5px;line-height:1.5;color:var(--text-secondary)}.sotay-trong{color:var(--text-tertiary);font-size:13px}.sotay-bang{width:100%;border-collapse:collapse;font-size:12.5px}.sotay-bang td,.sotay-bang th{border:1px solid var(--border-soft);padding:7px 9px;text-align:left;vertical-align:top;line-height:1.45}.sotay-bang thead th{background:var(--thead-bg);font-size:11.5px}.sotay-bang td.num-cell,.sotay-bang th.num-cell{text-align:right;white-space:nowrap}.sotay-cau-hinh{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}.sotay-ch-khoi{border:1px solid var(--border-soft);border-radius:10px;padding:12px 14px;background:var(--surface-2)}.sotay-ch-rong{grid-column:1/-1}.sotay-ch-khoi h3{margin:0 0 10px;font-size:14px}.sotay-dl{margin:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;font-size:13px}.sotay-dl dt{color:var(--text-secondary)}.sotay-dl dd{margin:0;font-weight:600;text-align:right}.sotay-dl em{font-weight:400;font-size:11.5px;color:var(--text-tertiary);font-style:normal;display:block}.sotay-muc.callout{display:block;margin-top:0;color:var(--text-primary);font-size:inherit}.sotay-ra-soat{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:12px;font-size:13px}.sotay-ra-soat p{margin:4px 0;line-height:1.5;color:var(--text-secondary)}.sotay-may-tinh{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.sotay-mt-form .form-grid{margin:0}.sotay-mt-track{display:flex;align-items:center;gap:8px;font-size:13px}.sotay-mt-ket-qua h3{margin:0 0 8px;font-size:14px}.sotay-mt-ngat td{background:var(--surface-2);font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}.sotay-mt-cuoi td{background:var(--tint-primary-soft);font-weight:800;font-size:14px;color:var(--primary)}@media (max-width:1100px){.sotay-may-tinh{grid-template-columns:minmax(0,1fr)}}@media (max-width:860px){.sotay-layout{grid-template-columns:minmax(0,1fr)}.sotay-muc-luc{position:static}.sotay-muc-luc ol{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:6px;padding-bottom:2px}.sotay-muc-luc a{white-space:nowrap;border:1px solid var(--border-soft)}.sotay-the-luoi{grid-template-columns:minmax(0,1fr)}.sotay-doc-nhanh,.sotay-muc{padding:14px}}@media print{.sotay-2-nhanh,.sotay-cau-hinh,.sotay-layout,.sotay-the-luoi{display:block}.sotay-ch-khoi,.sotay-the{break-inside:avoid;page-break-inside:avoid;margin-bottom:8px}.sotay-doc-nhanh,.sotay-muc{break-before:page;page-break-before:always;box-shadow:none;border:0;padding:0}.sotay-doc-nhanh{break-before:auto;page-break-before:auto}.sotay-bang{font-size:10.5px}}.nut-hoi-ai{position:fixed;right:20px;bottom:20px;z-index:40;display:flex;align-items:center;gap:6px;padding:10px 14px;border-radius:999px;border:none;cursor:pointer;background:var(--primary);color:var(--primary-on);box-shadow:var(--shadow-modal);font-weight:600;font-size:var(--fs-sm)}.nut-hoi-ai:hover{background:var(--primary-hover)}.khung-hoi-ai{position:fixed;right:16px;bottom:16px;z-index:55;width:min(440px,calc(100vw - 32px));height:min(640px,calc(100vh - 100px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-modal);overflow:hidden}.khung-hoi-ai .dau{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border-soft)}.khung-hoi-ai .than{flex:1 1;overflow-y:auto;padding:10px 12px}.khung-hoi-ai .chan{padding:8px 10px 10px;border-top:1px solid var(--border-soft)}@media (max-width:860px){.nut-hoi-ai{bottom:calc(72px + env(safe-area-inset-bottom));right:12px;padding:10px}.nut-hoi-ai .chu{display:none}.khung-hoi-ai{inset:0;width:auto;height:auto;border-radius:0}}.kn-list{display:flex;flex-direction:column;gap:var(--sp-3)}.kn-card{display:flex;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.kn-empty{flex-direction:column;align-items:center;gap:var(--sp-2);text-align:center;color:var(--text-secondary);font-size:var(--fs-sm)}.kn-empty-title{font-weight:600;color:var(--text-primary)}.kn-dot{flex-shrink:0;width:10px;height:10px;margin-top:6px;border-radius:50%;background:var(--gray)}.kn-dot-ok{background:var(--green)}.kn-dot-loi{background:var(--red)}.kn-main{flex:1 1;min-width:0}.kn-title{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-2)}.kn-ten{font-weight:700;font-size:var(--fs-md);color:var(--text-primary)}.kn-info{display:grid;grid-template-columns:auto 1fr;column-gap:var(--sp-2);row-gap:2px;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-xs)}.kn-info dt{color:var(--text-secondary)}.kn-info dd{margin:0;color:var(--text-primary);overflow-wrap:anywhere}.kn-meta{color:var(--text-tertiary)}.kn-meta,.kn-test{margin-top:var(--sp-2);font-size:var(--fs-2xs)}.kn-test{display:flex;align-items:flex-start;gap:6px;padding:6px 10px;border-radius:var(--radius-sm);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere}.kn-test svg{flex-shrink:0;margin-top:1px}.kn-test-ok{background:var(--tint-green);color:var(--green)}.kn-test-loi{background:var(--tint-red);color:var(--red)}.kn-actions{display:flex;flex-shrink:0;gap:var(--sp-1)}.kn-actions .spin{animation:sync-spin .8s linear infinite;transform-origin:50% 50%}.kn-pass{position:relative}.kn-pass input{width:100%;padding-right:40px}.kn-pass-eye{position:absolute;top:50%;right:4px;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;background:transparent;color:var(--text-secondary);cursor:pointer}.kn-pass-eye:hover{color:var(--primary)}.field .hint-inline{font-weight:400;color:var(--text-tertiary)}@media (max-width:860px){.kn-card{flex-wrap:wrap;padding:var(--sp-3) var(--sp-4);gap:var(--sp-3)}.kn-main{flex-basis:calc(100% - 30px)}.kn-actions{width:100%;justify-content:flex-end}}.den-mcp{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--text-tertiary);flex:none}.den-mcp.song{background:var(--green-fill);animation:den-mcp-nhap 1.6s ease-in-out infinite}@keyframes den-mcp-nhap{0%,to{box-shadow:0 0 0 0 rgba(34,197,94,.55)}50%{box-shadow:0 0 0 6px rgba(34,197,94,0)}}@media (prefers-reduced-motion:reduce){.den-mcp.song{animation:none}}.lthcv-pop{position:fixed;z-index:60;max-height:360px;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:8px;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop)}.lthcv-pop,.lthcv-tim{background:var(--surface)}.lthcv-tim{position:sticky;top:-8px;z-index:1;margin:-8px -8px 4px;padding:10px 12px;border:0;border-bottom:1px solid var(--border-soft);color:var(--text-primary);outline:none}.lthcv-opt,.lthcv-tim{font-size:var(--fs-sm)}.lthcv-opt{text-align:left;padding:7px 10px;border-radius:6px;border:none;background:transparent;cursor:pointer;color:var(--text-secondary)}.lthcv-opt:hover{background:var(--surface-2);color:var(--text-primary)}.lthcv-opt.active{background:var(--tint-primary-soft);color:var(--accent);font-weight:600}.lthcv-rong{padding:7px 10px;font-size:var(--fs-sm);color:var(--text-tertiary)}@media (max-width:860px){.lthcv-tim{font-size:16px}}.gui-di-bar{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.gui-di-btn{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:4px 10px;border-radius:999px;border:1px solid var(--tint-primary-border);background:var(--tint-primary-soft);color:var(--primary);font-size:var(--fs-xs);font-weight:600;cursor:pointer;text-decoration:none;transition:background .15s ease,border-color .15s ease}.gui-di-btn:hover{background:var(--tint-primary);border-color:var(--primary)}.gui-di-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.gui-di-btn:disabled{opacity:.5;cursor:progress}.gui-di-btn[aria-pressed=true]{background:var(--primary);color:var(--surface);border-color:var(--primary)}.gui-di-bang{margin-top:6px;max-height:260px;overflow:auto}.gui-di-bang table{font-size:var(--fs-xs)}@media (max-width:860px){.gui-di-btn{min-height:40px}}.vp-chat{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--surface)}.vp-chat-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border-soft)}.vp-chat-head-act{display:inline-flex;gap:4px}.vp-chat-ngu-canh{display:flex;align-items:center;gap:6px;margin:8px 10px 0;padding:6px 10px;border-radius:var(--radius-sm);background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);color:var(--primary);font-size:var(--fs-xs);font-weight:600;line-height:1.35}.vp-chat-ngu-canh span{overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.vp-chat-tin{flex:1 1;min-height:0;overflow-y:auto;padding:10px}.vp-chat-trong{display:flex;flex-direction:column;align-items:center;gap:6px;padding:24px 8px;text-align:center;color:var(--text-tertiary);font-size:var(--fs-sm)}.vp-chat-loi{margin:0 10px 6px}.vp-chat-goi-y{display:flex;flex-wrap:wrap;gap:6px;padding:0 10px 6px}.vp-chat-chip{padding:4px 10px;min-height:30px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-secondary);font-size:var(--fs-xs);cursor:pointer}.vp-chat-chip:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.vp-chat-chip:disabled{opacity:.5}.vp-chat-nhap{display:flex;gap:6px;align-items:flex-end;padding:8px 10px;border-top:1px solid var(--border-soft)}.vp-chat-nhap textarea{flex:1 1;min-width:0;resize:none;padding:7px 9px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text-primary);font:inherit;font-size:var(--fs-sm)}.vp-chat-nhap .btn{min-height:38px}@media (max-width:860px){.vp-chat-nhap textarea{font-size:16px;min-height:44px}.vp-chat-chip{min-height:40px}}.vp-cong-cu-luoi{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;margin-bottom:var(--sp-4);max-width:820px}.vp-cong-cu{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 6px 10px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);color:var(--text-primary);cursor:pointer}.vp-cong-cu:hover{border-color:var(--tint-primary-border);background:var(--tint-primary-soft)}.vp-cong-cu:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.vp-cong-cu-icon{width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;color:#fff}.vp-cong-cu-ten{font-size:var(--fs-sm);font-weight:600;text-align:center}.vp-ten-o{display:inline-flex;align-items:center;gap:8px;min-width:180px}.vp-icon-loai{display:inline-flex;flex-shrink:0}.vp-workspace{gap:8px;min-width:0}.vp-workspace,.vp-workspace-loi{display:flex;flex-direction:column}.vp-workspace-loi{align-items:flex-start;gap:10px}.vp-topbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;padding:8px 10px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg)}.vp-topbar .spacer{flex:1 1}.vp-topbar .btn{display:inline-flex;align-items:center;gap:4px}.vp-loai-cham{width:10px;height:10px;border-radius:50%;flex-shrink:0}.vp-ten-tep{display:inline-flex;align-items:center;gap:6px;max-width:min(520px,60vw);background:none;border:1px solid transparent;border-radius:var(--radius-sm);padding:3px 6px;font-weight:700;font-size:var(--fs-md);color:var(--text-primary);cursor:text;text-align:left}.vp-ten-tep:hover{border-color:var(--border)}.vp-ten-form{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.vp-ten-form input{min-width:220px}.vp-badge-pb{font-size:var(--fs-xs);font-weight:700;padding:2px 8px;border-radius:999px;background:var(--tint-primary-soft);color:var(--primary);border:1px solid var(--tint-primary-border)}.vp-lich-su-wrap{position:relative}.vp-lich-su-pop{position:absolute;right:0;top:calc(100% + 6px);z-index:60;width:min(420px,92vw);max-height:60vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:8px}.vp-lich-su-pop ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.vp-lich-su-pop li{padding:8px;border-radius:var(--radius);background:var(--surface-2);display:flex;flex-direction:column;gap:4px}.vp-ls-cuoi,.vp-ls-dau{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vp-ls-cuoi .spacer{flex:1 1}.vp-ls-nguon{font-size:var(--fs-xs);font-weight:600;color:var(--primary)}.vp-tin{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vp-tin>span{flex:1 1}.vp-than{display:flex;gap:0;align-items:stretch;min-width:0}.vp-editor{flex:1 1 auto;min-width:0}.vp-khung-chat{flex:0 0 auto;min-width:300px;margin-left:12px;display:flex;flex-direction:column;height:calc(100vh - 170px);min-height:480px;position:sticky;top:8px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-lg);overflow:hidden}.vp-khung-chat-keo{position:absolute;left:0;top:0;bottom:0;width:6px;cursor:col-resize;z-index:2}.vp-khung-chat-keo:hover{background:var(--tint-primary-soft)}.vp-khung-chat-dau{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 14px;border-bottom:1px solid var(--border-soft)}.vp-khung-chat-dau .spacer{flex:1 1}.vp-khung-chat-than{flex:1 1;min-height:0;display:flex;flex-direction:column}.vp-khung-chat-than>*{flex:1 1;min-height:0}.vp-editor-khung{display:flex;flex-direction:column;gap:8px;min-width:0}.vp-editor-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vp-editor-bar .spacer{flex:1 1}.vp-editor-bar .btn{display:inline-flex;align-items:center;gap:4px}.vp-ghi-chu{margin:0}.vp-univer{height:calc(100vh - 200px);min-height:460px;border:1px solid var(--border-soft);border-radius:var(--radius);overflow:hidden;background:#fff}.vp-seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.vp-seg button{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;font-size:var(--fs-xs);background:var(--surface);color:var(--text-secondary);border:none;cursor:pointer}.vp-seg button+button{border-left:1px solid var(--border)}.vp-seg button.active{background:var(--tint-primary-soft);color:var(--primary);font-weight:600}.vp-fmt-bar{display:flex;flex-wrap:wrap;gap:2px;align-items:center;padding:4px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface);position:sticky;top:0;z-index:3}.vp-fmt-btn{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid transparent;background:none;color:var(--text-secondary);cursor:pointer}.vp-fmt-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text-primary)}.vp-fmt-btn.active{background:var(--tint-primary-soft);color:var(--primary);border-color:var(--tint-primary-border)}.vp-fmt-btn:disabled{opacity:.35;cursor:default}.vp-fmt-sep{width:1px;height:20px;background:var(--border);margin:0 4px}.vp-doc-giay{background:var(--surface-2);padding:16px;border-radius:var(--radius);min-height:calc(100vh - 260px)}.vp-doc-giay .ProseMirror{max-width:820px;margin:0 auto;min-height:calc(100vh - 300px);padding:40px 48px;background:#fff;color:#111;border-radius:4px;box-shadow:var(--shadow-card)}.vp-doc-giay .ProseMirror td,.vp-doc-giay .ProseMirror th{border:1px solid #c8c8cc}.vp-trang{display:flex;gap:12px;align-items:flex-start;min-width:0}.vp-trang-nho{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;width:150px;flex-shrink:0;max-height:calc(100vh - 220px);overflow-y:auto}.vp-trang-nho button{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;padding:4px;background:var(--surface);border:2px solid var(--border-soft);border-radius:var(--radius);cursor:pointer;font-size:var(--fs-xs);color:var(--text-secondary)}.vp-trang-nho button.active{border-color:var(--primary);color:var(--primary)}.vp-trang-nho img{width:100%;height:auto;display:block;background:#fff}.vp-trang-lon{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:6px}.vp-trang-lon>img{max-width:100%;height:auto;align-self:center;background:#fff;box-shadow:var(--shadow-card);border-radius:4px}.vp-slide-chu{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--border-soft);border-radius:var(--radius);background:var(--surface)}.vp-slide-chu textarea{width:100%;resize:vertical}.vp-html-chia{display:grid;grid-template-columns:1fr 1fr;gap:10px;height:calc(100vh - 230px);min-height:420px}.vp-html-chia.vp-html-ma,.vp-html-chia.vp-html-xem{grid-template-columns:1fr}.vp-html-ma{resize:none;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.5;padding:10px;background:var(--surface);color:var(--text-primary);tab-size:2}.vp-html-ma,.vp-html-xem{width:100%;height:100%;border:1px solid var(--border);border-radius:var(--radius)}.vp-html-xem{background:#fff}.vp-pdf-chu pre{white-space:pre-wrap;word-break:break-word;max-height:calc(100vh - 260px);overflow-y:auto;padding:12px;margin:0;background:var(--surface-2);border-radius:var(--radius);font-size:var(--fs-sm)}@media (max-width:1100px){.vp-than{flex-direction:column;gap:12px}.vp-khung-chat{margin-left:0;flex-basis:auto!important;min-width:0;width:100%;position:relative;top:auto;height:70vh;min-height:420px}.vp-khung-chat-keo{display:none}.vp-trang{flex-direction:column}.vp-trang-nho{flex-direction:row;width:100%;max-height:none;overflow-x:auto;overflow-y:hidden}.vp-trang-nho li{flex:0 0 110px}.vp-univer{height:65vh;min-height:380px}.vp-html-chia{grid-template-columns:1fr;grid-template-rows:1fr 1fr;height:auto}.vp-html-chia>*{min-height:320px}.vp-doc-giay{padding:8px}.vp-doc-giay .ProseMirror{padding:20px 16px}}@media (max-width:860px){.vp-cong-cu-luoi{grid-template-columns:repeat(3,1fr)}.vp-ten-tep{max-width:100%}.vp-fmt-btn{width:40px;height:40px}}.dh-ai-khung{display:flex;gap:12px;align-items:flex-start}.dh-ai-so-do{flex:0 0 260px;padding:8px;display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 220px);overflow:auto}.dh-ai-nut{display:flex;align-items:center;gap:6px;padding:6px 8px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;cursor:pointer;font-size:var(--fs-sm)}.dh-ai-nut:hover{background:var(--surface-2)}.dh-ai-nut.on{background:var(--tint-primary-soft);color:var(--primary);font-weight:600}.dh-ai-nut.cap-1{padding-left:20px}.dh-ai-nut.cap-2{padding-left:34px;font-size:var(--fs-xs)}.dh-ai-ten{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dh-ai-ca{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.dh-ai-cot-ca{padding:10px;display:flex;flex-direction:column;gap:8px}.dh-ai-cot-ca>header{gap:2px}.dh-ai-cot-ca>header,.dh-ai-the{display:flex;flex-direction:column}.dh-ai-the{padding:8px;border-radius:8px;background:var(--surface-2);gap:4px}.dh-ai-the-ten{border:0;background:transparent;padding:0;text-align:left;font-weight:600;color:var(--text);cursor:pointer}@media (max-width:860px){.dh-ai-khung{flex-direction:column}.dh-ai-so-do{flex:none;width:100%;max-height:240px}}.qtb{display:grid;grid-template-columns:300px minmax(0,1fr);gap:var(--sp-5);align-items:start;padding:var(--sp-4) var(--screen-px,20px) var(--sp-8)}.qtb-list{position:sticky;top:12px;display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius)}.qtb-list-top{gap:var(--sp-2)}.qtb-list-top,.qtb-search{display:flex;align-items:center}.qtb-search{flex:1 1;min-width:0;gap:6px;padding:0 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-tertiary)}.qtb-search input{flex:1 1;min-width:0;border:0;background:transparent;outline:none;padding:8px 0;color:var(--text-primary)}.qtb-items{display:flex;flex-direction:column;gap:4px}.qtb-item{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;padding:9px 10px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary)}.qtb-item:hover{background:var(--hover-bg)}.qtb-item[aria-current=true]{background:var(--tint-primary-soft);border-color:var(--tint-primary-border)}.qtb-item-ico{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--primary)}.qtb-item-ten{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qtb-item-so{font-size:var(--fs-2xs);color:var(--text-secondary);background:var(--surface-2);border-radius:20px;padding:1px 8px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.qtb-detail{min-width:0;padding:var(--sp-5);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius)}.qtb-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3)}.qtb-head h2{flex:1 1;min-width:200px;margin:0;font-size:var(--fs-xl);text-wrap:balance}.qtb-acts{display:flex;flex-wrap:wrap;gap:4px}.qtb-meta{margin:4px 0 var(--sp-4);font-size:var(--fs-xs);color:var(--text-tertiary)}.qtb-steps{display:flex;flex-direction:column;gap:26px;max-width:880px;margin:0 auto}.qtb-step{--c:var(--swatch-teal);display:grid;grid-template-columns:250px minmax(0,1fr);align-items:center;border-radius:var(--radius)}.qtb-step[data-mau="2"]{--c:var(--swatch-violet)}.qtb-step[data-mau="3"]{--c:var(--swatch-pink)}.qtb-step[data-mau="4"]{--c:var(--swatch-blue)}.qtb-step[data-mau="5"]{--c:var(--swatch-indigo)}.qtb-step[data-mau="6"]{--c:var(--swatch-orange)}.qtb-step[data-mau="7"]{--c:var(--swatch-green)}.qtb-step.rev{grid-template-columns:minmax(0,1fr) 250px}.qtb-step.rev .qtb-side{order:2;justify-content:flex-end;padding:0 78px 0 0}.qtb-step.rev .qtb-card{order:1;text-align:right;padding:18px 30px 18px 20px}.qtb-step.dang-keo{opacity:.45}.qtb-step.keo-toi{outline:2px dashed var(--primary);outline-offset:6px}.qtb-side{position:relative;justify-content:flex-start;padding-left:78px;min-height:128px}.qtb-num,.qtb-side{display:flex;align-items:center}.qtb-num{position:absolute;top:16px;left:0;width:120px;height:46px;padding-left:16px;border-radius:24px 0 0 24px;background:var(--c);color:#fff;font-size:24px;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.qtb-step.rev .qtb-num{left:auto;right:0;justify-content:flex-end;padding:0 16px 0 0;border-radius:0 24px 24px 0}.qtb-ring{position:relative;z-index:1;width:116px;height:116px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-card);display:grid;place-items:center}.qtb-ring:before{content:"";position:absolute;inset:-6px;border-radius:50%;border-left:4px solid transparent;border-bottom:4px solid transparent;border-top:4px solid transparent;border-top-color:var(--c);border-right:4px solid transparent;border-right-color:var(--c);transform:rotate(30deg)}.qtb-step.rev .qtb-ring:before{transform:rotate(-120deg)}.qtb-ring-in{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;background:var(--c);color:#fff}.qtb-card{position:relative;min-width:0;min-height:96px;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:18px 20px 18px 30px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);border:1px solid var(--border-soft)}.qtb-card:before{left:-7px;top:50%;width:13px;height:13px;margin-top:-6px;border-radius:50%}.qtb-card:after,.qtb-card:before{content:"";position:absolute;background:var(--c)}.qtb-card:after{left:12px;right:30%;top:-10px;height:2px;border-radius:2px}.qtb-step.rev .qtb-card:before{left:auto;right:-7px}.qtb-step.rev .qtb-card:after{left:30%;right:12px}.qtb-card h3{margin:0;color:var(--c);font-size:var(--fs-md);font-weight:800;letter-spacing:.03em;text-transform:uppercase;text-wrap:balance}.qtb-card p{margin:0;font-size:var(--fs-sm);white-space:pre-line}.qtb-card p,.qtb-who{color:var(--text-secondary)}.qtb-who{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;max-width:100%;padding:3px 10px 3px 3px;border-radius:20px;background:var(--surface-2);font-size:var(--fs-xs)}.qtb-who b{color:var(--text-primary)}.qtb-who.chua{padding-left:8px;color:var(--red)}.qtb-ra{display:flex;flex-wrap:wrap;gap:6px}.qtb-step.rev .qtb-ra{justify-content:flex-end}.qtb-ra-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:20px;font-size:var(--fs-xs);background:var(--tint-primary-soft);border:1px solid var(--tint-primary-border);color:var(--primary)}.qtb-ra-chip.song-song{background:var(--surface-2);border-style:dashed;color:var(--text-secondary)}.qtb-tool.bat{color:var(--primary)}.qtb-step.rev .qtb-who{align-self:flex-end}.qtb-tools{display:flex;gap:4px;margin-top:4px}.qtb-step.rev .qtb-tools{justify-content:flex-end}.qtb-tool{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--border);background:var(--surface-2);color:var(--text-secondary)}.qtb-tool:disabled{opacity:.35;cursor:not-allowed}.qtb-tool.xoa{color:var(--red)}.qtb-keo{cursor:grab}.qtb-add{align-self:center;display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:1.5px dashed var(--primary);border-radius:24px;background:transparent;color:var(--primary);font-weight:600}.qtb-icon-grid{display:flex;flex-wrap:wrap;gap:6px}.qtb-icon-pick{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);color:var(--text-secondary)}.qtb-icon-pick[aria-pressed=true]{border-color:var(--primary);background:var(--tint-primary-soft);color:var(--primary)}@media (max-width:860px){.qtb{grid-template-columns:minmax(0,1fr);padding:var(--sp-3)}.qtb-list{position:static}.qtb-detail{padding:var(--sp-3)}.qtb-step,.qtb-step.rev{grid-template-columns:72px minmax(0,1fr);gap:12px}.qtb-step.rev .qtb-card,.qtb-step.rev .qtb-side{order:0}.qtb-side,.qtb-step.rev .qtb-side{min-height:0;padding:0;flex-direction:column;justify-content:center;gap:6px}.qtb-num,.qtb-step.rev .qtb-num{position:static;width:auto;height:auto;padding:2px 10px;border-radius:12px;font-size:14px;justify-content:center}.qtb-ring{width:62px;height:62px}.qtb-ring:before{inset:-4px;border-width:3px}.qtb-ring-in{width:44px;height:44px}.qtb-ring-in svg{width:24px!important;height:24px!important}.qtb-card,.qtb-step.rev .qtb-card{text-align:left;padding:14px 16px 14px 22px}.qtb-step.rev .qtb-card:before{left:-7px;right:auto}.qtb-step.rev .qtb-card:after{left:12px;right:30%}.qtb-step.rev .qtb-who{align-self:flex-start}.qtb-step.rev .qtb-tools{justify-content:flex-start}.qtb-keo{display:none}}.chat-rieng{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.chat-sys-the{align-self:center;width:min(620px,92%)}.chat-can-kiem{margin-top:7px;display:flex;align-items:flex-start;gap:6px;padding:6px 9px;border-radius:8px;border:1px solid var(--tint-orange-border);background:var(--tint-orange);font-size:var(--fs-xs);color:var(--text-secondary);overflow-wrap:anywhere}.chat-can-kiem svg{flex:none;margin-top:1px}.chat-the-hanh-dong{margin-top:8px;border:1px solid var(--tint-primary-border);background:var(--tint-primary-soft);border-radius:10px;padding:9px 12px;display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs);min-width:0}.chat-the-hanh-dong .the-dong{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0;overflow-wrap:anywhere}.chat-the-hanh-dong .the-nut{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;align-items:center}.chat-the-hanh-dong code{font-size:var(--fs-2xs)}.chat-the-hanh-dong.gon{margin-top:0;border:none;background:transparent;padding:0}.chat-the-hanh-dong.gon .the-nut{margin-top:0}.table-scroll .chat-the-hanh-dong.gon .the-nut{flex-wrap:nowrap}@media (min-width:601px){.chat-ai-shell .chat-search-box{flex:0 1 240px;min-width:0}}.lich-cong-thang{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:var(--sp-3)}.lich-cong-thang .nhan-thang{font-size:var(--fs-xl);font-weight:700;min-width:140px;text-align:center}.lich-cong-thang .ghi{font-size:var(--fs-xs);color:var(--text-tertiary);margin-left:auto}.lich-cong-chu-thich{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:var(--fs-xs);color:var(--text-secondary);margin-bottom:var(--sp-3)}.lich-cong-chu-thich span{display:inline-flex;align-items:center;gap:6px}.lich-cong-chu-thich i{width:13px;height:13px;border-radius:4px;display:inline-block;border:1px solid var(--border)}.lich-cong{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.lich-cong .thu{font-size:var(--fs-xs);color:var(--text-tertiary);text-align:center;font-weight:600;padding:2px 0}.lich-o{min-height:88px;border-radius:8px;border:1px solid var(--border-soft);background:var(--surface);padding:6px 7px;display:flex;flex-direction:column;gap:2px;position:relative;text-align:left;font:inherit;color:var(--text-primary);cursor:pointer;min-width:0}.lich-o:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.lich-o.trong-luoi{visibility:hidden;cursor:default}.lich-o .so-ngay{font-size:var(--fs-xs);font-weight:700;color:var(--text-secondary)}.lich-o .gia-tri{font-size:var(--fs-lg);font-weight:700;line-height:1.15}.lich-o .phu{font-size:var(--fs-2xs);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lich-o .tc{position:absolute;top:6px;right:7px;font-size:var(--fs-2xs);font-weight:700;color:var(--primary)}.lich-o .nut-bs{margin-top:auto;align-self:flex-start;font-size:var(--fs-2xs);font-weight:600;padding:1px 8px;border-radius:999px;background:var(--red);color:#fff}.lich-o.DU{background:var(--tint-green);border-color:var(--ok-border)}.lich-o.DU .gia-tri{color:var(--green)}.lich-o.THIEU{background:var(--tint-red);border-color:var(--tint-red-border)}.lich-o.THIEU .gia-tri,.lich-o.THIEU .phu{color:var(--red)}.lich-o.CHO_DUYET{background:var(--tint-orange);border:1px dashed var(--orange)}.lich-o.CHO_DUYET .gia-tri,.lich-o.CHO_DUYET .phu{color:var(--orange)}.lich-o.PHEP{background:var(--tint-blue);border-color:var(--tint-blue-border)}.lich-o.PHEP .gia-tri{color:var(--blue);font-size:var(--fs-md)}.lich-o.LE,.lich-o.NGHI{background:var(--tint-gray);border-color:transparent}.lich-o.LE .gia-tri,.lich-o.NGHI .gia-tri{color:var(--text-tertiary);font-size:var(--fs-sm)}.lich-o.KHOAN{background:var(--tint-primary-soft);border-color:var(--tint-primary-border)}.lich-o.KHOAN .gia-tri{color:var(--primary);font-size:var(--fs-md)}.lich-o.TUONG_LAI{opacity:.4}.lich-o.dang-chon{box-shadow:0 0 0 2px var(--primary)}.lich-cong-chi-tiet .dong-nguon{display:flex;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:6px;background:var(--surface-2);font-size:var(--fs-sm);margin-bottom:6px}@media (max-width:860px){.lich-cong{gap:3px}.lich-o{min-height:48px;padding:3px;align-items:center;justify-content:center}.lich-o .so-ngay{position:absolute;top:2px;left:4px;font-size:var(--fs-2xs)}.lich-o .gia-tri{font-size:var(--fs-sm);margin-top:8px}.lich-o .nut-bs,.lich-o .phu,.lich-o .tc{display:none}.lich-cong-thang .ghi{margin-left:0;flex-basis:100%}}.modal-overlay.add-enum-overlay{z-index:155}.col-chooser-pop.tren-modal{z-index:75}tr.tong-nhom-row>td{font-weight:700;background:var(--tint-primary-soft);border-top:1px solid var(--tint-primary-border)}tr.tong-nhom-row>td .cell-sub{font-weight:500}.nv-chi-tiet{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}.nv-menu{position:sticky;top:12px;display:flex;flex-direction:column;gap:2px;padding-right:12px;border-right:1px solid var(--border-soft)}.nv-menu-nhom{font-size:var(--fs-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);margin:12px 8px 4px}.nv-menu-nhom:first-child{margin-top:0}.nv-menu-muc{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:8px;background:none;color:var(--text-secondary);font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer;min-height:34px}.nv-menu-muc:hover{background:var(--tint-gray);color:var(--text-primary)}.nv-menu-muc[aria-current=page]{background:var(--tint-primary);color:var(--text-primary);font-weight:600}.nv-menu-muc:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.nv-dau{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}.nv-avatar{flex:none;display:grid;place-items:center;border-radius:12px;background:var(--tint-primary-soft);color:var(--primary)}.nv-dau-nut{margin:0;padding:0;flex:0 1 auto;justify-content:flex-end}.nv-the-luoi{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:12px}.nv-the .view-row{grid-template-columns:minmax(120px,38%) 1fr}.nv-the{padding:14px 16px}.nv-the h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:var(--fs-md)}.nv-the h3 .spacer{flex:1 1}.nv-chip-ds{display:flex;flex-wrap:wrap;gap:6px}.nv-chip{padding:3px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border-soft);font-size:var(--fs-xs)}button.nav-item.nv-ghim-task-moi{width:100%;background:none;border:none;cursor:pointer;font:inherit;text-align:left;color:var(--text-secondary)}button.nav-item.nv-ghim-task-moi:hover{background:var(--hover-bg);color:var(--text-primary)}.nav-item.nv-ghim-nhom{cursor:default}.nav-item.nv-ghim-nhom:hover{background:none;color:var(--text-secondary)}.modal-card.task-moi{max-width:640px}.task-moi-o{width:100%;min-height:140px;resize:vertical;font-size:var(--fs-md);line-height:1.5}.modal-foot.task-moi-chan{align-items:center}.modal-foot.task-moi-chan .spacer{flex:1 1}.task-dau{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.task-trang{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}.task-luong{gap:12px;min-width:0;max-width:820px}.task-luong,.task-muc{display:flex;flex-direction:column}.task-muc{gap:4px}.task-muc-dau{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.task-bong{border:1px solid var(--border-soft);border-radius:10px;padding:10px 14px;background:var(--surface);overflow-wrap:anywhere}.task-muc.nguoi .task-bong{background:var(--tint-primary-soft);border-color:var(--tint-primary-border)}.task-su-kien{margin:0;padding-left:12px;border-left:2px solid var(--border-soft);font-size:var(--fs-sm);color:var(--text-secondary)}.task-su-kien.loi{border-left-color:var(--red)}.task-dang-lam{display:flex;align-items:center;gap:6px}.task-the-duyet,.task-tra-loi{border:1px solid var(--border-soft);border-radius:10px;padding:10px;background:var(--surface);display:flex;flex-direction:column;gap:8px}.task-the-duyet{border-color:var(--tint-primary-border)}.task-the-duyet textarea,.task-tra-loi textarea{width:100%;resize:vertical}.task-tra-loi-chan{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-tra-loi-chan .spacer{flex:1 1}.task-thuoc-tinh{position:sticky;top:12px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface);padding:12px 14px;max-height:calc(100vh - 24px);overflow-y:auto}.task-tt-dau{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.task-tt-nhom{margin:12px 0 4px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary)}.task-tt .view-row{grid-template-columns:minmax(96px,36%) minmax(0,1fr)}.task-tt .view-row .vvalue{min-width:0}.task-tt .filter-select,.task-tt .view-row input,.task-tt .view-row select{max-width:100%;min-width:0}.task-the{border:1px solid var(--border-soft);border-radius:10px;padding:10px 14px;background:var(--surface);display:flex;flex-direction:column;gap:8px}.task-the.cho{border-color:var(--tint-primary-border);box-shadow:inset 3px 0 0 var(--primary)}.task-the textarea{width:100%;resize:vertical}.task-the-cau{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:10px}.task-the-cau textarea{margin-top:4px}.task-the-lua-chon{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.qd-nhom{display:flex;flex-direction:column;gap:10px;margin:16px 0;max-width:900px}.qd-nhom-ten{margin:0;font-size:var(--fs-md);display:flex;gap:8px;align-items:baseline}.qd-the{border:1px solid var(--border-soft);border-radius:10px;padding:12px 14px;background:var(--surface);display:flex;flex-direction:column;gap:8px}.qd-the textarea{width:100%;resize:vertical}.qd-the>.task-the{border:none;padding:0;box-shadow:none}.qd-trich{max-height:220px;overflow-y:auto}.qd-chan{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;border-top:1px solid var(--border-soft)}.qd-chan .spacer{flex:1 1}.task-canh-form{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--border-soft);border-radius:8px}.task-canh-form label{display:flex;flex-direction:column;gap:2px}.task-canh-form input,.task-canh-form textarea{width:100%}.task-tep{border:1px dashed var(--border-soft);border-radius:10px;padding:10px 14px;gap:8px}.task-tep,.task-tep-ds{display:flex;flex-direction:column}.task-tep-ds{list-style:none;margin:0;padding:0;gap:6px}.task-tep-ds li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.kq-nhom{margin:16px 0}.kq-luoi{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}.kq-the{border:1px solid var(--border-soft);border-radius:10px;padding:10px 12px;background:var(--surface);display:flex;flex-direction:column;gap:6px}.kq-trich{margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.bd-o-so{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:12px}.bd-o{display:flex;flex-direction:column;gap:2px;padding:14px 16px;color:inherit;text-decoration:none}.bd-o b{font-size:var(--fs-xl)}.bd-o:hover{border-color:var(--tint-primary-border)}.bd-chu-giai{display:flex;flex-wrap:wrap;gap:12px;font-size:var(--fs-xs);color:var(--text-secondary);margin-bottom:6px}.bd-chu-giai i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}.bd-cot-khung{display:flex;align-items:flex-end;gap:4px;height:140px;border-bottom:1px solid var(--border-soft);padding-top:4px}.bd-cot{flex:1 1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;position:relative}.bd-cot-chong{display:flex;flex-direction:column-reverse;gap:2px;border-radius:4px 4px 0 0;overflow:hidden;min-height:0}.bd-cot-chong span{display:block;min-height:2px}.bd-cot-nhan{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--text-tertiary);white-space:nowrap}.bd-cot:nth-child(odd) .bd-cot-nhan{visibility:hidden}.bd-bieu-do details{margin-top:24px}.bd-dong{display:flex;gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid var(--border-soft)}.task-chua-doc{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--primary);flex-shrink:0;margin-left:4px}tr.task-dong-moi td{font-weight:600}.nv-chip.task-dang-quyet{border-color:var(--tint-primary-border);background:var(--tint-primary-soft)}.task-nen-thuoc-tinh,.task-nut-thuoc-tinh{display:none}@media (max-width:860px){.task-trang{grid-template-columns:minmax(0,1fr)}.task-nut-thuoc-tinh{display:inline-flex}.task-nen-thuoc-tinh{display:block}.task-thuoc-tinh{display:none;position:fixed;inset:0 0 0 auto;width:min(360px,92vw);max-height:none;border-radius:0;z-index:55;top:0}.task-thuoc-tinh.mo{display:block}.nv-chi-tiet{grid-template-columns:minmax(0,1fr);gap:12px}.nv-menu{position:static;flex-direction:row;overflow-x:auto;padding:0 0 6px;border-right:none;border-bottom:1px solid var(--border-soft)}.nv-menu-nhom{display:none}.nv-menu-muc{width:auto;white-space:nowrap;flex:none;min-height:44px}.nv-the-luoi{grid-template-columns:minmax(0,1fr)}}.sk-chu{flex:none;display:grid;place-items:center;border-radius:10px;font-weight:700;color:var(--text-primary)}.sk-trang{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.sk-rail{position:sticky;top:12px;display:flex;flex-direction:column;gap:12px}.sk-rail .nv-the h3{font-size:var(--fs-sm)}.sk-mo-ta{margin:0;max-width:820px;color:var(--text-secondary)}.sk-mo-ta.gon{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.sk-avatar-ds{display:flex;align-items:center}.sk-avatar-ds .nv-avatar{width:30px;height:30px;border:2px solid var(--surface);margin-left:-6px}.sk-avatar-ds .nv-avatar:first-child{margin-left:0}.sk-tep{display:grid;grid-template-columns:230px minmax(0,1fr);gap:12px;align-items:start}.sk-cay{display:flex;flex-direction:column;gap:1px;border:1px solid var(--border-soft);border-radius:10px;padding:6px;background:var(--surface)}.sk-cay-thu-muc{padding:6px 8px 2px;font-size:var(--fs-2xs);font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.sk-cay-tep{display:flex;align-items:center;gap:6px;padding:6px 8px;border:none;border-radius:6px;background:none;color:var(--text-secondary);text-align:left;cursor:pointer;font-size:var(--fs-sm);min-width:0}.sk-cay-tep span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sk-cay-tep:hover{background:var(--tint-gray);color:var(--text-primary)}.sk-cay-tep[aria-current=true]{background:var(--tint-primary);color:var(--text-primary);font-weight:600}.sk-cay-chon{display:none}.sk-noi-dung{min-width:0;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface)}.sk-noi-dung-dau{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--border-soft)}.sk-noi-dung-dau .spacer{flex:1 1}.sk-noi-dung-than{padding:12px 16px;overflow-wrap:anywhere}.sk-ma{margin:0;white-space:pre-wrap;word-break:break-word}.sk-ma,.sk-soan{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-xs);line-height:1.55}.sk-soan{width:100%;min-height:420px;resize:vertical}.sk-chua-luu{position:sticky;bottom:0;z-index:4;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:10px 12px;border:1px solid var(--tint-primary-border);border-radius:10px;background:var(--surface);box-shadow:0 -4px 14px rgba(0,0,0,.08)}.sk-chua-luu input{flex:1 1 220px;min-width:0}.sk-diff{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-xs);line-height:1.5;border:1px solid var(--border-soft);border-radius:8px;overflow:auto;max-height:560px}.sk-diff-dong{display:grid;grid-template-columns:42px 42px 16px minmax(0,1fr);white-space:pre-wrap;word-break:break-word}.sk-diff-dong>span:not(:last-child){color:var(--text-tertiary);text-align:right;padding-right:6px;-webkit-user-select:none;user-select:none}.sk-diff-dong.them{background:var(--tint-green)}.sk-diff-dong.bot{background:var(--tint-red)}.sk-diff-gon{padding:2px 8px;color:var(--text-tertiary);background:var(--surface-2)}.studio{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr) minmax(0,1.25fr);gap:12px;align-items:start}.studio-cot{min-width:0;display:flex;flex-direction:column;gap:10px;border:1px solid var(--border-soft);border-radius:10px;background:var(--surface);padding:12px}.studio-cot>h3{margin:0;font-size:var(--fs-md);display:flex;align-items:center;gap:8px}.studio-cot>h3 .spacer{flex:1 1}.studio-cot textarea{width:100%;resize:vertical}.studio-tab{display:none}.studio-luot{display:flex;flex-direction:column;gap:6px;max-height:360px;overflow-y:auto}.studio-luot-dong{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px;border:1px solid var(--border-soft);border-radius:8px;background:var(--surface);cursor:pointer;text-align:left;color:inherit}.studio-luot-dong[aria-current=true]{border-color:var(--tint-primary-border);background:var(--tint-primary-soft)}.studio-ket-qua{border-top:1px solid var(--border-soft);padding-top:10px;overflow-wrap:anywhere}.studio-so-sanh{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}.studio-so-sanh>div{min-width:0;border:1px solid var(--border-soft);border-radius:8px;padding:10px;overflow-wrap:anywhere}@media (max-width:1280px){.studio{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.studio>.studio-cot:last-child{grid-column:1/-1}}@media (max-width:860px){.sk-trang{grid-template-columns:minmax(0,1fr)}.sk-rail{position:static}.sk-tep{grid-template-columns:minmax(0,1fr)}.sk-cay{display:none}.sk-cay-chon{display:block;width:100%}.sk-diff-dong{grid-template-columns:30px 30px 14px minmax(0,1fr)}.studio{grid-template-columns:minmax(0,1fr)}.studio>.studio-cot:last-child{grid-column:auto}.studio-tab{display:flex}.studio>.studio-cot:not(.mo){display:none}.studio-so-sanh{grid-template-columns:minmax(0,1fr)}}