:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--navy:#1f4d39;--teal:#2d6a4f;--lagoon:#1e3a8a;--cyan:#e4f0e9;--peach:#fdf1dc;--bg:#f4f7f5;--surface:#fff;--surface-2:#edf2ef;--surface-strong:#e2eae5;--surface-navy:var(--navy);--border:#dce5e0;--border-strong:#c2d1c8;--input-bg:var(--surface-strong);--accent-border:#a9c7b6;--scrim:#142d2073;--ink:#1e293b;--ink-muted:#44505f;--ink-faint:#5a6676;--ink-on-navy:#fff;--ink-on-navy-muted:#cfe3d7;--accent:var(--teal);--accent-ink:#fff;--accent-soft:#e4f0e9;--accent-soft-ink:#1f5039;--accent-2:var(--lagoon);--primary:#2d6a4f;--primary-ink:#fff;--primary-hover:#245a42;--primary-active:#1c4835;--nav-bg:var(--navy);--nav-ink:#fff;--nav-ink-muted:var(--ink-on-navy-muted);--nav-border:#ffffff1a;--nav-active-bg:#ffffff24;--nav-active-ink:#fff;--nav-hover-bg:#ffffff14;--ok-bg:#e1f3e8;--ok-ink:#1c6b45;--ok-dot:#2fa860;--warn-bg:#fdf1dc;--warn-ink:#8a5208;--warn-dot:#f59e0b;--bad-bg:#fbe8e8;--bad-ink:#b23a3a;--bad-dot:#dc5353;--info-bg:#e7ecf8;--info-ink:#1e3a8a;--info-dot:#4361c2;--ship-bg:#dff2ef;--ship-ink:#0f5f56;--ship-dot:#1f9c8d;--cathay-bg:#e3ecfc;--cathay-ink:#1e40af;--cathay-dot:#3b6fe0;--dragon-bg:var(--bad-bg);--dragon-ink:var(--bad-ink);--dragon-dot:var(--bad-dot);--nhom-nau-bg:#e1edf4;--nhom-nau-ink:#0369a1;--nhom-nau-border:#0369a1;--nhom-vang-nghe-bg:#e5ecfd;--nhom-vang-nghe-ink:#2563eb;--nhom-vang-nghe-border:#2563eb;--nhom-xanh-reu-bg:#eae9fc;--nhom-xanh-reu-ink:#4f46e5;--nhom-xanh-reu-border:#4f46e5;--nhom-xam-bg:#efe7fd;--nhom-xam-ink:#7c3aed;--nhom-xam-border:#7c3aed;--nhom-xanh-duong-bg:#f7e5fa;--nhom-xanh-duong-ink:#c026d3;--nhom-xanh-duong-border:#c026d3;--nhom-xanh-bien-bg:#fbe5ef;--nhom-xanh-bien-ink:#db2777;--nhom-xanh-bien-border:#db2777;--nhom-cham-bg:#fbe5e5;--nhom-cham-ink:#dc2626;--nhom-cham-border:#dc2626;--nhom-tim-than-bg:#fcebe2;--nhom-tim-than-ink:#ea580c;--nhom-tim-than-border:#ea580c;--nhom-tim-bg:#faefe1;--nhom-tim-ink:#d97706;--nhom-tim-border:#d97706;--nhom-tim-hoa-ca-bg:#f0eae2;--nhom-tim-hoa-ca-ink:#854d0e;--nhom-tim-hoa-ca-border:#854d0e;--nhom-tim-man-bg:#e3f4e9;--nhom-tim-man-ink:#16a34a;--nhom-tim-man-border:#16a34a;--nhom-hong-sen-bg:#eaefe2;--nhom-hong-sen-ink:#4d7c0f;--nhom-hong-sen-border:#4d7c0f;--nhom-hong-bg:#e2f2f1;--nhom-hong-ink:#0d9488;--nhom-hong-border:#0d9488;--nhom-hong-dao-bg:#e1f2f6;--nhom-hong-dao-ink:#0891b2;--nhom-hong-dao-border:#0891b2;--nhom-do-man-bg:#e2e3e5;--nhom-do-man-ink:#0f172a;--nhom-do-man-border:#0f172a;--nhom-vang-dat-bg:#f7ecc9;--nhom-vang-dat-ink:#7a5a06;--nhom-vang-dat-border:#c99a1f;--font-body:"Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-mono:"Cascadia Mono", Consolas, ui-monospace, monospace;--text-xs:11px;--text-sm:12.5px;--text-base:14px;--text-lg:16px;--text-xl:20px;--text-2xl:26px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:8px;--radius:14px;--radius-lg:20px;--radius-pill:999px;--shadow-sm:0 1px 2px #142d200d;--shadow:0 1px 2px #142d200a, 0 6px 16px #142d200f;--shadow-lg:0 4px 10px #142d200f, 0 16px 32px #142d2014;--touch-target:44px;--focus-ring:0 0 0 3px #2d6a4f59;--radius-legacy:var(--radius);--shadow-legacy:var(--shadow)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1210;--surface:#141f1b;--surface-2:#1c2a25;--surface-strong:#24352e;--border:#2e433a;--border-strong:#3f5a4e;--input-bg:var(--surface-strong);--accent-border:#3f6b55;--scrim:#050908b8;--ink:#eef3f0;--ink-muted:#a9b8b0;--ink-faint:#93a59c;--navy:#141f1b;--accent:#7fd1a8;--accent-ink:#0b1210;--accent-soft:#1d3a2d;--accent-soft-ink:#a4e2c1;--accent-2:#b3c3f7;--cyan:#1d3a2d;--peach:#3a2a0e;--primary:#2d6a4f;--primary-ink:#fff;--primary-hover:#35795b;--primary-active:#245a42;--nav-bg:#141f1b;--nav-active-bg:#7fd1a82e;--nav-hover-bg:#ffffff0f;--ok-bg:#12321f;--ok-ink:#86e0a8;--ok-dot:#3fbe73;--warn-bg:#3a2a0e;--warn-ink:#fbc86a;--warn-dot:#f59e0b;--bad-bg:#3d1c1c;--bad-ink:#f4a3a3;--bad-dot:#e06464;--info-bg:#1b2550;--info-ink:#b3c3f7;--info-dot:#7e97e8;--ship-bg:#16302a;--ship-ink:#8fd8d0;--ship-dot:#4fb8ac;--cathay-bg:#16294f;--cathay-ink:#93b4f7;--cathay-dot:#5b8ef0;--dragon-bg:var(--bad-bg);--dragon-ink:var(--bad-ink);--dragon-dot:var(--bad-dot);--nhom-nau-bg:color-mix(in oklab, var(--nhom-nau-ink) 10%, var(--surface));--nhom-nau-ink:#38bdf8;--nhom-nau-border:color-mix(in oklab, var(--nhom-nau-ink) 45%, var(--surface));--nhom-vang-nghe-bg:color-mix(in oklab, var(--nhom-vang-nghe-ink) 10%, var(--surface));--nhom-vang-nghe-ink:#60a5fa;--nhom-vang-nghe-border:color-mix(in oklab, var(--nhom-vang-nghe-ink) 45%, var(--surface));--nhom-xanh-reu-bg:color-mix(in oklab, var(--nhom-xanh-reu-ink) 10%, var(--surface));--nhom-xanh-reu-ink:#818cf8;--nhom-xanh-reu-border:color-mix(in oklab, var(--nhom-xanh-reu-ink) 45%, var(--surface));--nhom-xam-bg:color-mix(in oklab, var(--nhom-xam-ink) 10%, var(--surface));--nhom-xam-ink:#c084fc;--nhom-xam-border:color-mix(in oklab, var(--nhom-xam-ink) 45%, var(--surface));--nhom-xanh-duong-bg:color-mix(in oklab, var(--nhom-xanh-duong-ink) 10%, var(--surface));--nhom-xanh-duong-ink:#e879f9;--nhom-xanh-duong-border:color-mix(in oklab, var(--nhom-xanh-duong-ink) 45%, var(--surface));--nhom-xanh-bien-bg:color-mix(in oklab, var(--nhom-xanh-bien-ink) 10%, var(--surface));--nhom-xanh-bien-ink:#f472b6;--nhom-xanh-bien-border:color-mix(in oklab, var(--nhom-xanh-bien-ink) 45%, var(--surface));--nhom-cham-bg:color-mix(in oklab, var(--nhom-cham-ink) 10%, var(--surface));--nhom-cham-ink:#fb7185;--nhom-cham-border:color-mix(in oklab, var(--nhom-cham-ink) 45%, var(--surface));--nhom-tim-than-bg:color-mix(in oklab, var(--nhom-tim-than-ink) 10%, var(--surface));--nhom-tim-than-ink:#fb923c;--nhom-tim-than-border:color-mix(in oklab, var(--nhom-tim-than-ink) 45%, var(--surface));--nhom-tim-bg:color-mix(in oklab, var(--nhom-tim-ink) 10%, var(--surface));--nhom-tim-ink:#fbbf24;--nhom-tim-border:color-mix(in oklab, var(--nhom-tim-ink) 45%, var(--surface));--nhom-tim-hoa-ca-bg:color-mix(in oklab, var(--nhom-tim-hoa-ca-ink) 10%, var(--surface));--nhom-tim-hoa-ca-ink:#facc15;--nhom-tim-hoa-ca-border:color-mix(in oklab, var(--nhom-tim-hoa-ca-ink) 45%, var(--surface));--nhom-tim-man-bg:color-mix(in oklab, var(--nhom-tim-man-ink) 10%, var(--surface));--nhom-tim-man-ink:#a3e635;--nhom-tim-man-border:color-mix(in oklab, var(--nhom-tim-man-ink) 45%, var(--surface));--nhom-hong-sen-bg:color-mix(in oklab, var(--nhom-hong-sen-ink) 10%, var(--surface));--nhom-hong-sen-ink:#4ade80;--nhom-hong-sen-border:color-mix(in oklab, var(--nhom-hong-sen-ink) 45%, var(--surface));--nhom-hong-bg:color-mix(in oklab, var(--nhom-hong-ink) 10%, var(--surface));--nhom-hong-ink:#2dd4bf;--nhom-hong-border:color-mix(in oklab, var(--nhom-hong-ink) 45%, var(--surface));--nhom-hong-dao-bg:color-mix(in oklab, var(--nhom-hong-dao-ink) 10%, var(--surface));--nhom-hong-dao-ink:#22d3ee;--nhom-hong-dao-border:color-mix(in oklab, var(--nhom-hong-dao-ink) 45%, var(--surface));--nhom-do-man-bg:color-mix(in oklab, var(--nhom-do-man-ink) 10%, var(--surface));--nhom-do-man-ink:#f8fafc;--nhom-do-man-border:color-mix(in oklab, var(--nhom-do-man-ink) 45%, var(--surface));--nhom-vang-dat-bg:color-mix(in oklab, var(--nhom-vang-dat-ink) 10%, var(--surface));--nhom-vang-dat-ink:#e8c866;--nhom-vang-dat-border:color-mix(in oklab, var(--nhom-vang-dat-ink) 45%, var(--surface));--shadow-sm:0 1px 2px #0000004d;--shadow:0 1px 2px #0000004d, 0 6px 18px #00000059;--shadow-lg:0 4px 10px #00000059, 0 16px 32px #0006}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1210;--surface:#141f1b;--surface-2:#1c2a25;--surface-strong:#24352e;--border:#2e433a;--border-strong:#3f5a4e;--input-bg:var(--surface-strong);--accent-border:#3f6b55;--scrim:#050908b8;--ink:#eef3f0;--ink-muted:#a9b8b0;--ink-faint:#93a59c;--navy:#141f1b;--accent:#7fd1a8;--accent-ink:#0b1210;--accent-soft:#1d3a2d;--accent-soft-ink:#a4e2c1;--accent-2:#b3c3f7;--cyan:#1d3a2d;--peach:#3a2a0e;--primary:#2d6a4f;--primary-ink:#fff;--primary-hover:#35795b;--primary-active:#245a42;--nav-bg:#141f1b;--nav-active-bg:#7fd1a82e;--nav-hover-bg:#ffffff0f;--ok-bg:#12321f;--ok-ink:#86e0a8;--ok-dot:#3fbe73;--warn-bg:#3a2a0e;--warn-ink:#fbc86a;--warn-dot:#f59e0b;--bad-bg:#3d1c1c;--bad-ink:#f4a3a3;--bad-dot:#e06464;--info-bg:#1b2550;--info-ink:#b3c3f7;--info-dot:#7e97e8;--ship-bg:#16302a;--ship-ink:#8fd8d0;--ship-dot:#4fb8ac;--cathay-bg:#16294f;--cathay-ink:#93b4f7;--cathay-dot:#5b8ef0;--dragon-bg:var(--bad-bg);--dragon-ink:var(--bad-ink);--dragon-dot:var(--bad-dot);--nhom-nau-bg:color-mix(in oklab, var(--nhom-nau-ink) 10%, var(--surface));--nhom-nau-ink:#38bdf8;--nhom-nau-border:color-mix(in oklab, var(--nhom-nau-ink) 45%, var(--surface));--nhom-vang-nghe-bg:color-mix(in oklab, var(--nhom-vang-nghe-ink) 10%, var(--surface));--nhom-vang-nghe-ink:#60a5fa;--nhom-vang-nghe-border:color-mix(in oklab, var(--nhom-vang-nghe-ink) 45%, var(--surface));--nhom-xanh-reu-bg:color-mix(in oklab, var(--nhom-xanh-reu-ink) 10%, var(--surface));--nhom-xanh-reu-ink:#818cf8;--nhom-xanh-reu-border:color-mix(in oklab, var(--nhom-xanh-reu-ink) 45%, var(--surface));--nhom-xam-bg:color-mix(in oklab, var(--nhom-xam-ink) 10%, var(--surface));--nhom-xam-ink:#c084fc;--nhom-xam-border:color-mix(in oklab, var(--nhom-xam-ink) 45%, var(--surface));--nhom-xanh-duong-bg:color-mix(in oklab, var(--nhom-xanh-duong-ink) 10%, var(--surface));--nhom-xanh-duong-ink:#e879f9;--nhom-xanh-duong-border:color-mix(in oklab, var(--nhom-xanh-duong-ink) 45%, var(--surface));--nhom-xanh-bien-bg:color-mix(in oklab, var(--nhom-xanh-bien-ink) 10%, var(--surface));--nhom-xanh-bien-ink:#f472b6;--nhom-xanh-bien-border:color-mix(in oklab, var(--nhom-xanh-bien-ink) 45%, var(--surface));--nhom-cham-bg:color-mix(in oklab, var(--nhom-cham-ink) 10%, var(--surface));--nhom-cham-ink:#fb7185;--nhom-cham-border:color-mix(in oklab, var(--nhom-cham-ink) 45%, var(--surface));--nhom-tim-than-bg:color-mix(in oklab, var(--nhom-tim-than-ink) 10%, var(--surface));--nhom-tim-than-ink:#fb923c;--nhom-tim-than-border:color-mix(in oklab, var(--nhom-tim-than-ink) 45%, var(--surface));--nhom-tim-bg:color-mix(in oklab, var(--nhom-tim-ink) 10%, var(--surface));--nhom-tim-ink:#fbbf24;--nhom-tim-border:color-mix(in oklab, var(--nhom-tim-ink) 45%, var(--surface));--nhom-tim-hoa-ca-bg:color-mix(in oklab, var(--nhom-tim-hoa-ca-ink) 10%, var(--surface));--nhom-tim-hoa-ca-ink:#facc15;--nhom-tim-hoa-ca-border:color-mix(in oklab, var(--nhom-tim-hoa-ca-ink) 45%, var(--surface));--nhom-tim-man-bg:color-mix(in oklab, var(--nhom-tim-man-ink) 10%, var(--surface));--nhom-tim-man-ink:#a3e635;--nhom-tim-man-border:color-mix(in oklab, var(--nhom-tim-man-ink) 45%, var(--surface));--nhom-hong-sen-bg:color-mix(in oklab, var(--nhom-hong-sen-ink) 10%, var(--surface));--nhom-hong-sen-ink:#4ade80;--nhom-hong-sen-border:color-mix(in oklab, var(--nhom-hong-sen-ink) 45%, var(--surface));--nhom-hong-bg:color-mix(in oklab, var(--nhom-hong-ink) 10%, var(--surface));--nhom-hong-ink:#2dd4bf;--nhom-hong-border:color-mix(in oklab, var(--nhom-hong-ink) 45%, var(--surface));--nhom-hong-dao-bg:color-mix(in oklab, var(--nhom-hong-dao-ink) 10%, var(--surface));--nhom-hong-dao-ink:#22d3ee;--nhom-hong-dao-border:color-mix(in oklab, var(--nhom-hong-dao-ink) 45%, var(--surface));--nhom-do-man-bg:color-mix(in oklab, var(--nhom-do-man-ink) 10%, var(--surface));--nhom-do-man-ink:#f8fafc;--nhom-do-man-border:color-mix(in oklab, var(--nhom-do-man-ink) 45%, var(--surface));--nhom-vang-dat-bg:color-mix(in oklab, var(--nhom-vang-dat-ink) 10%, var(--surface));--nhom-vang-dat-ink:#e8c866;--nhom-vang-dat-border:color-mix(in oklab, var(--nhom-vang-dat-ink) 45%, var(--surface));--shadow-sm:0 1px 2px #0000004d;--shadow:0 1px 2px #0000004d, 0 6px 18px #00000059;--shadow-lg:0 4px 10px #00000059, 0 16px 32px #0006}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased;margin:0;padding:0}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}aside::-webkit-scrollbar-thumb{background:#ffffff2e}aside{scrollbar-color:#ffffff2e transparent}a{color:inherit}h1,h2,h3{color:var(--ink);letter-spacing:-.01em;font-weight:700}::selection{background:var(--accent-soft);color:var(--accent-soft-ink)}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-sm);outline:none}.btn{font:inherit;min-height:var(--touch-target);border-radius:var(--radius-sm);cursor:pointer;border:0;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:13px;font-weight:700;transition:background-color .15s,filter .15s,transform 50ms;display:inline-flex}.btn-primary{background:var(--primary);color:var(--primary-ink)}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:active{background:var(--primary-active)}.btn-secondary{background:var(--accent-soft);color:var(--accent-soft-ink);border:1px solid var(--accent-border)}.btn-secondary:hover{border-color:var(--accent)}.btn-nav-ghost{color:var(--nav-ink-muted);border:1px solid var(--nav-border);background:0 0}.btn-nav-ghost:hover{background:var(--nav-hover-bg);color:var(--nav-ink);border-color:var(--nav-ink-muted)}.btn-danger{background:var(--bad-bg);color:var(--bad-ink)}.btn-danger:hover{filter:brightness(.96)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.kebab-wrap{display:inline-flex;position:relative}.kebab-btn{border-radius:var(--radius-sm);width:32px;height:32px;min-height:0;color:var(--ink-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:17px;line-height:1;display:inline-flex}.kebab-btn:hover,.kebab-btn.active{background:var(--surface-2);color:var(--ink);border-color:var(--border)}.kebab-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:172px;box-shadow:var(--shadow-lg);z-index:20;flex-direction:column;gap:1px;padding:6px;display:flex;position:absolute;top:36px;right:0}.kebab-item{font:inherit;text-align:left;cursor:pointer;color:var(--ink);background:0 0;border:0;border-radius:6px;align-items:center;gap:9px;width:100%;padding:9px 10px;font-size:13px;display:flex}.kebab-item:hover{background:var(--accent-soft);color:var(--accent-soft-ink)}.kebab-item.danger:hover{background:var(--bad-bg);color:var(--bad-ink)}.kebab-item:disabled{opacity:.45;cursor:not-allowed}.kebab-item:disabled:hover{color:var(--ink);background:0 0}.kebab-sep{background:var(--border);height:1px;margin:4px 2px}.btn-icon{border-radius:var(--radius-sm);background:var(--accent-soft);width:38px;height:38px;min-height:0;color:var(--accent-soft-ink);border:1px solid var(--accent-border);cursor:pointer;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon:hover,.btn-icon.active{border-color:var(--accent)}.btn-icon:disabled{opacity:.55;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.input,select.input{border:1px solid var(--border-strong);background:var(--input-bg);color:var(--ink);border-radius:var(--radius-sm);min-height:var(--touch-target);font:inherit;width:100%;padding:10px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:var(--ink-faint);opacity:1}.input:hover{border-color:var(--accent)}.input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input:disabled{opacity:.6;cursor:not-allowed;background:var(--surface-2)}.date-range-row{flex:260px;gap:12px;display:flex}.date-range-row>.field{flex:1;min-width:0}@media (max-width:860px){.date-range-row{flex-basis:100%}}label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;font-weight:700}.field{flex-direction:column;gap:5px;min-width:0;display:flex}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);border-bottom:1px solid var(--border);background:var(--surface-2);white-space:nowrap;padding:10px 16px;font-size:11px;font-weight:700}tbody td{border-bottom:1px solid var(--border);vertical-align:middle;padding:12px 16px}tbody tr:last-child td{border-bottom:0}.row-clickable{cursor:pointer}tbody tr.row-clickable{transition:background-color .12s}tbody tr.row-clickable:hover{background:var(--accent-soft)}.badge{border-radius:var(--radius-pill);align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:700;display:inline-flex}.badge .dot{border-radius:50%;width:6px;height:6px}.badge-ok{background:var(--ok-bg);color:var(--ok-ink)}.badge-ok .dot{background:var(--ok-dot)}.badge-bad{background:var(--bad-bg);color:var(--bad-ink)}.badge-bad .dot{background:var(--bad-dot)}.badge-muted{background:var(--surface-2);color:var(--ink-muted)}.badge-muted .dot{background:var(--ink-muted)}.badge-warn{background:var(--warn-bg);color:var(--warn-ink)}.badge-warn .dot{background:var(--warn-dot)}.badge-info{background:var(--info-bg);color:var(--info-ink)}.badge-info .dot{background:var(--info-dot)}.badge-ship{background:var(--ship-bg);color:var(--ship-ink)}.badge-ship .dot{background:var(--ship-dot)}.badge-cathay{background:var(--cathay-bg);color:var(--cathay-ink)}.badge-cathay .dot{background:var(--cathay-dot)}.badge-dragon{background:var(--dragon-bg);color:var(--dragon-ink)}.badge-dragon .dot{background:var(--dragon-dot)}.group-nhom-bg{border-radius:var(--radius-sm);padding:var(--space-3);border:1.5px solid}.group-nhom-tim-bg{background:var(--nhom-tim-bg);border-color:var(--nhom-tim-border)}.group-nhom-tim-ink{color:var(--nhom-tim-ink)}.group-nhom-tim-dot{background:var(--nhom-tim-ink)}.group-nhom-xanh-duong-bg{background:var(--nhom-xanh-duong-bg);border-color:var(--nhom-xanh-duong-border)}.group-nhom-xanh-duong-ink{color:var(--nhom-xanh-duong-ink)}.group-nhom-xanh-duong-dot{background:var(--nhom-xanh-duong-ink)}.group-nhom-hong-bg{background:var(--nhom-hong-bg);border-color:var(--nhom-hong-border)}.group-nhom-hong-ink{color:var(--nhom-hong-ink)}.group-nhom-hong-dot{background:var(--nhom-hong-ink)}.group-nhom-nau-bg{background:var(--nhom-nau-bg);border-color:var(--nhom-nau-border)}.group-nhom-nau-ink{color:var(--nhom-nau-ink)}.group-nhom-nau-dot{background:var(--nhom-nau-ink)}.group-nhom-xam-bg{background:var(--nhom-xam-bg);border-color:var(--nhom-xam-border)}.group-nhom-xam-ink{color:var(--nhom-xam-ink)}.group-nhom-xam-dot{background:var(--nhom-xam-ink)}.group-nhom-cham-bg{background:var(--nhom-cham-bg);border-color:var(--nhom-cham-border)}.group-nhom-cham-ink{color:var(--nhom-cham-ink)}.group-nhom-cham-dot{background:var(--nhom-cham-ink)}.group-nhom-vang-dat-bg{background:var(--nhom-vang-dat-bg);border-color:var(--nhom-vang-dat-border)}.group-nhom-vang-dat-ink{color:var(--nhom-vang-dat-ink)}.group-nhom-vang-dat-dot{background:var(--nhom-vang-dat-ink)}.group-nhom-vang-nghe-bg{background:var(--nhom-vang-nghe-bg);border-color:var(--nhom-vang-nghe-border)}.group-nhom-vang-nghe-ink{color:var(--nhom-vang-nghe-ink)}.group-nhom-vang-nghe-dot{background:var(--nhom-vang-nghe-ink)}.group-nhom-xanh-bien-bg{background:var(--nhom-xanh-bien-bg);border-color:var(--nhom-xanh-bien-border)}.group-nhom-xanh-bien-ink{color:var(--nhom-xanh-bien-ink)}.group-nhom-xanh-bien-dot{background:var(--nhom-xanh-bien-ink)}.group-nhom-tim-than-bg{background:var(--nhom-tim-than-bg);border-color:var(--nhom-tim-than-border)}.group-nhom-tim-than-ink{color:var(--nhom-tim-than-ink)}.group-nhom-tim-than-dot{background:var(--nhom-tim-than-ink)}.group-nhom-tim-hoa-ca-bg{background:var(--nhom-tim-hoa-ca-bg);border-color:var(--nhom-tim-hoa-ca-border)}.group-nhom-tim-hoa-ca-ink{color:var(--nhom-tim-hoa-ca-ink)}.group-nhom-tim-hoa-ca-dot{background:var(--nhom-tim-hoa-ca-ink)}.group-nhom-tim-man-bg{background:var(--nhom-tim-man-bg);border-color:var(--nhom-tim-man-border)}.group-nhom-tim-man-ink{color:var(--nhom-tim-man-ink)}.group-nhom-tim-man-dot{background:var(--nhom-tim-man-ink)}.group-nhom-hong-sen-bg{background:var(--nhom-hong-sen-bg);border-color:var(--nhom-hong-sen-border)}.group-nhom-hong-sen-ink{color:var(--nhom-hong-sen-ink)}.group-nhom-hong-sen-dot{background:var(--nhom-hong-sen-ink)}.group-nhom-hong-dao-bg{background:var(--nhom-hong-dao-bg);border-color:var(--nhom-hong-dao-border)}.group-nhom-hong-dao-ink{color:var(--nhom-hong-dao-ink)}.group-nhom-hong-dao-dot{background:var(--nhom-hong-dao-ink)}.group-nhom-do-man-bg{background:var(--nhom-do-man-bg);border-color:var(--nhom-do-man-border)}.group-nhom-do-man-ink{color:var(--nhom-do-man-ink)}.group-nhom-do-man-dot{background:var(--nhom-do-man-ink)}.group-nhom-xanh-reu-bg{background:var(--nhom-xanh-reu-bg);border-color:var(--nhom-xanh-reu-border)}.group-nhom-xanh-reu-ink{color:var(--nhom-xanh-reu-ink)}.group-nhom-xanh-reu-dot{background:var(--nhom-xanh-reu-ink)}.role-pill{text-transform:uppercase;letter-spacing:.05em;color:var(--accent-soft-ink);background:var(--accent-soft);border-radius:var(--radius-pill);padding:1px 6px;font-size:10px;font-weight:700}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.error-text{color:var(--bad-ink);font-size:12.5px}.toast-stack{z-index:80;flex-direction:column;gap:8px;max-width:360px;display:flex;position:fixed;top:16px;right:16px}.toast{border-radius:var(--radius);box-shadow:var(--shadow-lg);background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--info-dot);color:var(--ink);white-space:pre-line;align-items:flex-start;gap:10px;padding:12px 14px;font-size:13px;line-height:1.5;animation:.18s ease-out toast-in;display:flex}.toast-error{border-left-color:var(--bad-dot)}.toast-success{border-left-color:var(--ok-dot)}.toast-warning{border-left-color:var(--warn-dot)}.toast-close{cursor:pointer;color:var(--ink-muted);background:0 0;border:none;margin-left:auto;padding:0 0 0 4px;font-size:15px;line-height:1}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.modal-backdrop{background:var(--scrim);z-index:50;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-panel{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);flex-direction:column;gap:14px;width:100%;max-width:420px;max-height:calc(100vh - 32px);padding:20px;display:flex;overflow-y:auto}.modal-panel>h2{cursor:move;-webkit-user-select:none;user-select:none}.chip-filter{background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:2px;width:fit-content;max-width:100%;padding:3px;display:inline-flex;overflow-x:auto}.chip{white-space:nowrap;border-radius:var(--radius-sm);min-height:36px;color:var(--ink-muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;padding:8px 14px;font-size:12.5px;font-weight:600;transition:background-color .15s,color .15s;display:inline-flex}.chip:hover{color:var(--ink)}.chip.on{background:var(--surface);color:var(--accent-soft-ink);box-shadow:var(--shadow-sm);font-weight:700}.panel-info{background:var(--info-bg);color:var(--info-ink);border-radius:var(--radius);padding:var(--space-4)}.panel-peach{background:var(--peach);color:#6a3a28;border-radius:var(--radius);padding:var(--space-4)}@media (max-width:860px){.card:has(table){overflow-x:auto!important}table{min-width:640px}.input,select.input{font-size:16px}.modal-panel{max-width:calc(100vw - 24px)}}.skeleton{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-strong) 50%, var(--surface-2) 75%);background-size:200% 100%;border-radius:6px;animation:1.3s ease-in-out infinite skeleton-shimmer}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}@media (max-width:860px){.modal-backdrop{align-items:flex-end;padding:0}.modal-panel{padding-bottom:calc(20px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;width:100%!important;max-width:none!important;max-height:92dvh!important;transform:none!important}.modal-panel>h2{cursor:default}.modal-panel:before{content:"";background:var(--border-strong);border-radius:2px;flex:none;align-self:center;width:40px;height:4px;margin-bottom:-4px}}.nav-muc-so-len{animation:.18s both nav-muc-so-len}@keyframes nav-muc-so-len{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.nav-muc-so-len{animation:none}}@keyframes quay{to{transform:rotate(360deg)}}.quay{animation:1s linear infinite quay}@media (prefers-reduced-motion:reduce){.quay{animation:none}}
