@import url(https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap);:root{--bg-dark:#f5f7fa;--bg-card:#fff;--bg-navbar:#fff;--border-color:#dde3ec;--primary:#1687c7;--primary-hover:#1270a8;--success:#2d6a4f;--success-hover:#1e4a36;--danger:#d9534f;--warning:#d99a00;--text-main:#1a2332;--text-muted:#6b7b8f;--accent:#1687c7;--accent-muted:#e8f4fb;--glass-shadow:0 2px 8px rgba(22,135,199,.06);--hover-bg:rgba(22,135,199,.05);--bg-diff-grid:#f5f7fa;--border-diff-grid:#dde3ec;--bg-input:#fff;--bg-th:#f5f7fa;--border-td:#dde3ec;--bg-gradient-1:transparent;--bg-gradient-2:transparent;--bg-image:none;--logo-bg:#fff;--logo-shadow:0 2px 8px rgba(22,135,199,.12);--logo-border:rgba(22,135,199,.2);--btn-primary-bg:#1687c7;--btn-primary-fg:#fff;--btn-primary-hover:#1270a8;--btn-success-bg:#2d6a4f;--btn-success-fg:#fff;--btn-success-hover:#1e4a36;--btn-secondary-bg:#f5f7fa;--btn-secondary-fg:#1a2332;--btn-secondary-border:#dde3ec;--btn-secondary-hover:#e2e8f0;--btn-outline-fg:#1687c7;--btn-outline-hover-bg:#e8f4fb;--btn-outline-hover-fg:#1270a8;--btn-shadow:0 2px 4px rgba(22,135,199,.18);--cat-ocr-bg:rgba(217,83,79,.08);--cat-ocr-fg:#c0392b;--cat-dauthanh-bg:rgba(217,154,0,.1);--cat-dauthanh-fg:#b7790a;--cat-laptu-bg:rgba(147,51,234,.08);--cat-laptu-fg:#7c3aed;--cat-supham-bg:rgba(46,139,87,.08);--cat-supham-fg:#166534;--cat-khoang-bg:rgba(13,148,136,.08);--cat-khoang-fg:#0f766e;--cat-daucau-bg:rgba(217,154,0,.1);--cat-daucau-fg:#b7790a;--cat-viethoa-bg:rgba(79,70,229,.08);--cat-viethoa-fg:#4338ca;--diff-del-bg:#fee2e2;--diff-del-fg:#b91c1c;--diff-ins-bg:#dcfce7;--diff-ins-fg:#166534;--upload-border:rgba(22,135,199,.3);--upload-hover-bg:rgba(22,135,199,.03);--upload-icon-bg:rgba(22,135,199,.08);--upload-shadow:0 4px 12px rgba(22,135,199,.1);--diff-item-ignored-border:#dde3ec;--diff-item-ignored-bg:#f5f7fa;--diff-item-hover-border:rgba(22,135,199,.35);--focus-shadow:0 0 0 2px rgba(22,135,199,.2);--warning-badge-bg:rgba(217,154,0,.08);--warning-badge-fg:#b7790a;--warning-badge-border:rgba(217,154,0,.2)}body[data-theme=dark]{--bg-dark:#0d1117;--bg-card:#161c24;--bg-navbar:#0d1117;--border-color:#243040;--primary:#38b0f0;--primary-hover:#5bc2f5;--success:#34d399;--success-hover:#10b981;--danger:#f87171;--warning:#fbbf24;--text-main:#e8edf3;--text-muted:#8b98a8;--accent:#38b0f0;--accent-muted:rgba(56,176,240,.12);--glass-shadow:0 20px 25px -5px rgba(0,0,0,.5),0 8px 10px -6px rgba(0,0,0,.5);--hover-bg:rgba(56,176,240,.07);--bg-diff-grid:#0d1117;--border-diff-grid:#243040;--bg-input:#161c24;--bg-th:#0d1117;--border-td:#243040;--bg-gradient-1:rgba(56,176,240,.03);--bg-gradient-2:rgba(52,211,153,.01);--bg-image:none;--logo-bg:hsla(0,0%,100%,.1);--logo-shadow:0 2px 12px rgba(56,176,240,.2);--logo-border:rgba(56,176,240,.25);--btn-primary-bg:#1687c7;--btn-primary-fg:#fff;--btn-primary-hover:#38b0f0;--btn-success-bg:#34d399;--btn-success-fg:#0d1117;--btn-success-hover:#5cdba7;--btn-secondary-bg:#161c24;--btn-secondary-fg:#e8edf3;--btn-secondary-border:#243040;--btn-secondary-hover:#243040;--btn-outline-fg:#8b98a8;--btn-outline-hover-bg:rgba(56,176,240,.08);--btn-outline-hover-fg:#38b0f0;--btn-shadow:0 4px 12px rgba(56,176,240,.2);--cat-ocr-bg:hsla(0,91%,71%,.15);--cat-ocr-fg:#fca5a5;--cat-dauthanh-bg:rgba(251,191,36,.15);--cat-dauthanh-fg:#fde047;--cat-laptu-bg:rgba(168,85,247,.15);--cat-laptu-fg:#d8b4fe;--cat-supham-bg:rgba(52,211,153,.15);--cat-supham-fg:#a7f3d0;--cat-khoang-bg:rgba(14,165,233,.15);--cat-khoang-fg:#7dd3fc;--cat-daucau-bg:rgba(251,191,36,.15);--cat-daucau-fg:#fde047;--cat-viethoa-bg:rgba(99,102,241,.15);--cat-viethoa-fg:#c7d2fe;--diff-del-bg:rgba(220,38,38,.15);--diff-del-fg:#fca5a5;--diff-ins-bg:rgba(52,211,153,.18);--diff-ins-fg:#a7f3d0;--upload-border:rgba(56,176,240,.4);--upload-hover-bg:rgba(56,176,240,.05);--upload-icon-bg:rgba(56,176,240,.12);--upload-shadow:0 0 20px rgba(56,176,240,.15);--diff-item-ignored-border:hsla(0,0%,100%,.1);--diff-item-ignored-bg:hsla(0,0%,100%,.02);--diff-item-hover-border:rgba(56,176,240,.4);--focus-shadow:0 0 0 2px rgba(56,176,240,.25);--warning-badge-bg:rgba(251,191,36,.12);--warning-badge-fg:#fbbf24;--warning-badge-border:rgba(251,191,36,.25)}*{margin:0;padding:0;box-sizing:border-box;font-family:Be Vietnam Pro,Inter,-apple-system,BlinkMacSystemFont,sans-serif}body{background-color:#f5f7fa;background-color:var(--bg-dark);background-image:none;background-image:var(--bg-image);color:#1a2332;color:var(--text-main);min-height:100vh;display:flex;flex-direction:column}.app-container{max-width:1440px;margin:0 auto;width:100%;padding:12px 20px;flex:1;display:flex;flex-direction:column;grid-gap:12px;gap:12px}.glass-card{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid #dde3ec;border:1px solid var(--border-color);box-shadow:0 2px 8px rgba(22,135,199,.06);box-shadow:var(--glass-shadow);padding:24px}.glass-card,.navbar{background:#fff;background:var(--bg-card);border-radius:16px}.navbar{justify-content:space-between;padding:12px 20px;backdrop-filter:blur(12px);border:1px solid #dde3ec;border:1px solid var(--border-color)}.logo,.navbar{display:flex;align-items:center}.logo{grid-gap:16px;gap:16px}.brand-logo{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:#1687c7;background:var(--primary);color:#fff;border-radius:8px;font-family:Be Vietnam Pro,Inter,sans-serif;font-weight:800;font-size:18px;position:relative;box-shadow:0 2px 4px rgba(22,135,199,.18);box-shadow:var(--btn-shadow)}.brand-logo-img{width:36px;height:36px;-o-object-fit:contain;object-fit:contain;margin-right:4px;background:#fff;background:var(--logo-bg);border:1px solid rgba(22,135,199,.2);border:1px solid var(--logo-border);border-radius:8px;box-shadow:0 2px 8px rgba(22,135,199,.12);box-shadow:var(--logo-shadow);padding:3px;transition:all .2s ease}.logo-text-d{font-size:20px;margin-bottom:-1px;font-weight:800}.logo-check{position:absolute;bottom:-1px;right:-1px;background:#2d6a4f;background:var(--success);color:#fff;border-radius:50%;width:15px;height:15px;font-size:9px;display:flex;align-items:center;justify-content:center;border:2px solid #fff;border:2px solid var(--bg-card);font-weight:900}.logo-text h1{font-size:20px;font-weight:700;color:#1a2332;color:var(--text-main)}.logo-text span{font-size:12px;color:#6b7b8f;color:var(--text-muted)}.nav-btn,.nav-tabs{display:flex;grid-gap:8px;gap:8px}.nav-btn{background:transparent;border:none;color:#6b7b8f;color:var(--text-muted);padding:8px 14px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;align-items:center}.nav-btn:hover{color:#1a2332;color:var(--text-main);background:rgba(22,135,199,.05);background:var(--hover-bg)}.nav-btn.active{color:#fff;background:#1687c7;background:var(--primary);box-shadow:0 2px 4px rgba(22,135,199,.18);box-shadow:var(--btn-shadow)}.btn{padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;border:none;cursor:pointer;display:inline-flex;align-items:center;grid-gap:8px;gap:8px;transition:all .2s ease}.btn-primary{background:#1687c7;background:var(--btn-primary-bg);color:#fff;color:var(--btn-primary-fg);border:1px solid transparent}.btn-primary:hover{background:#1270a8;background:var(--btn-primary-hover);transform:translateY(-1px)}.btn-success{background:#2d6a4f;background:var(--btn-success-bg);color:#fff;color:var(--btn-success-fg);border:1px solid transparent}.btn-success:hover{background:#1e4a36;background:var(--btn-success-hover);transform:translateY(-1px)}.btn-secondary{background:#f5f7fa;background:var(--btn-secondary-bg);border:1px solid #dde3ec;border:1px solid var(--btn-secondary-border);color:#1a2332;color:var(--btn-secondary-fg)}.btn-secondary:hover{background:#e2e8f0;background:var(--btn-secondary-hover)}.btn-outline{background:transparent;border:1px solid #dde3ec;border:1px solid var(--border-color);color:#1687c7;color:var(--btn-outline-fg)}.btn-outline:hover{background:#e8f4fb;background:var(--btn-outline-hover-bg);color:#1270a8;color:var(--btn-outline-hover-fg)}.upload-container{display:grid;grid-template-columns:1.1fr 1.3fr;grid-gap:20px;gap:20px;width:100%;max-width:1100px;margin:0 auto;align-items:stretch}@media (max-width: 992px){.upload-container{grid-template-columns:1fr}}.upload-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:48px 32px;border:2px dashed rgba(22,135,199,.3);border:2px dashed var(--upload-border);transition:all .3s ease;cursor:pointer;height:100%;border-radius:16px}.upload-card.dragover,.upload-card:hover{border-color:#1687c7;border-color:var(--primary);background:rgba(22,135,199,.03);background:var(--upload-hover-bg);box-shadow:0 4px 12px rgba(22,135,199,.1);box-shadow:var(--upload-shadow)}.upload-icon-wrapper{width:70px;height:70px;border-radius:50%;background:rgba(22,135,199,.08);background:var(--upload-icon-bg);color:#1687c7;color:var(--primary);font-size:32px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.upload-card h2{font-size:20px;margin-bottom:8px;color:#1a2332;color:var(--text-main)}.upload-card p{color:#6b7b8f;color:var(--text-muted);font-size:13.5px;margin-bottom:20px}.demo-panel{grid-gap:24px;gap:24px;padding:32px 28px;text-align:left}.demo-panel,.demo-section{display:flex;flex-direction:column}.demo-section{grid-gap:12px;gap:12px}.demo-section-title{font-size:15px;font-weight:700;display:flex;align-items:center;grid-gap:8px;gap:8px;color:#1a2332;color:var(--text-main);margin:0}.demo-comparison{display:flex;align-items:center;grid-gap:10px;gap:10px;background:#e8f4fb;background:var(--accent-muted);border:1px solid #dde3ec;border:1px solid var(--border-color);padding:14px;border-radius:12px;width:100%}.comparison-box{flex:1;display:flex;flex-direction:column;grid-gap:6px;gap:6px}.comparison-label{font-size:10px;font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:4px;width:-moz-max-content;width:max-content;letter-spacing:.5px}.label-before{background:rgba(220,38,38,.1);color:#b91c1c}body[data-theme=dark] .label-before{background:rgba(239,68,68,.15);color:#fca5a5}.label-after{background:rgba(22,163,74,.1);color:#166534}body[data-theme=dark] .label-after{background:rgba(16,185,129,.15);color:#6ee7b7}.comparison-text{font-size:13px;line-height:1.45;color:#1a2332;color:var(--text-main);margin:0}.text-error{-webkit-text-decoration:underline wavy #ef4444;text-decoration:underline wavy #ef4444;color:#fca5a5;font-weight:600}.text-success{background:rgba(16,185,129,.2);color:#6ee7b7;padding:0 4px;border-radius:4px;font-weight:600}.comparison-arrow{display:flex;align-items:center;justify-content:center;color:#6b7b8f;color:var(--text-muted);font-size:16px;padding:0 4px}.usp-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-top:8px}@media (max-width: 576px){.usp-grid{grid-template-columns:1fr}}.usp-item{display:flex;grid-gap:10px;gap:10px;align-items:flex-start;background:hsla(0,0%,100%,.02);border:1px solid hsla(0,0%,100%,.05);padding:10px;border-radius:8px;transition:all .2s ease}.usp-item:hover{background:hsla(0,0%,100%,.04);border-color:rgba(6,182,212,.25);transform:translateY(-1px)}body[data-theme=light] .usp-item{background:rgba(0,0,0,.01);border-color:rgba(0,0,0,.04)}body[data-theme=light] .usp-item:hover{background:rgba(0,0,0,.02);border-color:rgba(6,182,212,.25)}.usp-icon{font-size:15px;width:28px;height:28px;border-radius:6px;background:#e8f4fb;background:var(--accent-muted);color:#1687c7;color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.usp-content h4{font-size:13.5px;font-weight:650;color:#1a2332;color:var(--text-main);margin:0 0 3px}.usp-content p{font-size:11.5px;color:#6b7b8f;color:var(--text-muted);line-height:1.35;margin:0}.icon-check{color:#2d6a4f;color:var(--success);font-size:15px;margin-top:2px}.free-badge{display:flex;align-items:center;grid-gap:6px;gap:6px;padding:6px 14px;background:rgba(229,57,53,.07);border:1.5px solid rgba(229,57,53,.28);border-radius:9999px;font-size:13px;font-weight:600;transition:all .25s ease;box-shadow:0 2px 8px rgba(229,57,53,.1);cursor:default;letter-spacing:.01em}.free-badge>span:last-child{background:linear-gradient(135deg,#e53935,#f9a825);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.free-badge:hover{background:rgba(229,57,53,.12);border-color:rgba(229,57,53,.45);box-shadow:0 4px 14px rgba(229,57,53,.18);transform:translateY(-1px)}.free-badge-icon{animation:gift-bounce 2.4s ease-in-out infinite;font-size:16px;line-height:1;display:inline-flex}@keyframes gift-bounce{0%,to{transform:translateY(0) rotate(0deg)}20%{transform:translateY(-3px) rotate(-8deg)}40%{transform:translateY(-2px) rotate(8deg)}60%{transform:translateY(-1px) rotate(-4deg)}80%{transform:translateY(0) rotate(0deg)}}.loading-card{text-align:center;padding:50px 20px}.spinner{width:48px;height:48px;border:4px solid hsla(0,0%,100%,.1);border-top-color:#1687c7;border-top:4px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.session-dashboard{display:flex;flex-direction:column;grid-gap:12px;gap:12px}.summary-card{display:flex;justify-content:space-between;align-items:center}.summary-meta h3{font-size:16px;margin-bottom:2px}.summary-meta span{font-size:12px;color:#6b7b8f;color:var(--text-muted)}.badge-status{display:inline-flex;align-items:center;grid-gap:4px;gap:4px;margin-top:0;padding:3px 8px;border-radius:6px;font-size:11.5px;font-weight:600;background:#e8f4fb;background:var(--accent-muted);color:#1687c7;color:var(--accent)}.badge-active{background:rgba(22,163,74,.08)!important;color:#2d6a4f!important;color:var(--success)!important;border:1px solid rgba(22,163,74,.2)!important}.badge-inactive{background:rgba(100,116,139,.08)!important;color:#6b7b8f!important;color:var(--text-muted)!important;border:1px solid rgba(100,116,139,.2)!important}.chip{background:#fff;background:var(--bg-card);border:1px solid #dde3ec;border:1px solid var(--border-color);color:#6b7b8f;color:var(--text-muted);padding:5px 12px;border-radius:6px;font-size:12.5px;cursor:pointer;transition:all .2s ease}.chip:hover{color:#1a2332;color:var(--text-main);background:rgba(22,135,199,.05);background:var(--hover-bg)}.chip.active{background:#e8f4fb;background:var(--accent-muted);border-color:#1687c7;border-color:var(--primary);color:#1687c7;color:var(--primary);font-weight:600}.diff-item{border-radius:12px;padding:12px 16px;transition:all .2s ease}.diff-item,.diff-item-header{margin-bottom:8px}.diff-category-badge{padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;white-space:nowrap}.cat-ocr{background:rgba(217,83,79,.08);background:var(--cat-ocr-bg);color:#c0392b;color:var(--cat-ocr-fg)}.cat-dauthanh{background:rgba(217,154,0,.1);background:var(--cat-dauthanh-bg);color:#b7790a;color:var(--cat-dauthanh-fg)}.cat-laptu{background:rgba(147,51,234,.08);background:var(--cat-laptu-bg);color:#7c3aed;color:var(--cat-laptu-fg)}.cat-supham{background:rgba(46,139,87,.08);background:var(--cat-supham-bg);color:#166534;color:var(--cat-supham-fg)}.diff-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;background:#f5f7fa;background:var(--bg-diff-grid);padding:10px;border-radius:8px;border:1px solid #dde3ec;border:1px solid var(--border-diff-grid)}.diff-col{font-size:13.5px;line-height:1.55}.diff-col-title{font-size:11px;font-weight:700;color:#6b7b8f;color:var(--text-muted);text-transform:uppercase;margin-bottom:4px}.diff-del{background:#fee2e2;background:var(--diff-del-bg);color:#b91c1c;color:var(--diff-del-fg);text-decoration:line-through}.diff-del,.diff-ins{padding:2px 4px;border-radius:3px}.diff-ins{background:#dcfce7;background:var(--diff-ins-bg);color:#166534;color:var(--diff-ins-fg);font-weight:600}.toggle-switch{display:flex;align-items:center;grid-gap:8px;gap:8px;font-size:13px;color:#6b7b8f;color:var(--text-muted);cursor:pointer}.toggle-switch input{width:18px;height:18px;accent-color:#2d6a4f;accent-color:var(--success);cursor:pointer}.rules-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.table-responsive{overflow-x:auto}.rules-table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}.rules-table th{background:#f5f7fa;background:var(--bg-th);color:#6b7b8f;color:var(--text-muted);padding:12px 16px;font-weight:600;border-bottom:1px solid #dde3ec;border-bottom:1px solid var(--border-color)}.rules-table td{padding:12px 16px;border-bottom:1px solid #dde3ec;border-bottom:1px solid var(--border-td)}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-card{width:100%;max-width:500px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.btn-close{background:transparent;border:none;color:#6b7b8f;color:var(--text-muted);font-size:24px;cursor:pointer}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;color:#6b7b8f;color:var(--text-muted);margin-bottom:6px}.form-group input,.form-group select{width:100%;padding:10px 14px;background:#fff;background:var(--bg-input);border:1px solid #dde3ec;border:1px solid var(--border-color);border-radius:8px;color:#1a2332;color:var(--text-main);font-size:14px}.modal-footer{display:flex;justify-content:flex-end;grid-gap:12px;gap:12px;margin-top:24px}.footer{text-align:center;color:#6b7b8f;color:var(--text-muted);font-size:13px;padding:12px;margin-top:auto}.summary-card{flex-direction:column!important;align-items:stretch!important;grid-gap:10px!important;gap:10px!important;padding:12px 18px!important}.summary-meta{justify-content:space-between}.summary-meta,.summary-meta h3{display:flex;align-items:center}.summary-meta h3{grid-gap:8px;gap:8px}.progress-wrapper{display:flex;flex-direction:column;grid-gap:3px;gap:3px}.progress-label{display:flex;justify-content:space-between;font-size:11.5px;color:#6b7b8f;color:var(--text-muted)}.progress-pct{font-weight:700;color:#1a2332;color:var(--text-main)}.progress-bar-track{width:100%;height:6px;background:hsla(0,0%,100%,.07);border-radius:100px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:100px;background:#1687c7;background:var(--accent);transition:width .4s ease,background .4s ease}.action-toolbar{display:flex;flex-wrap:wrap;grid-gap:8px;gap:8px}.action-toolbar .btn{padding:6px 12px;font-size:13px;border-radius:8px;grid-gap:6px;gap:6px}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.alert-banner{background:rgba(239,68,68,.1)!important;border-color:rgba(239,68,68,.3)!important;padding:10px 16px!important;display:flex;align-items:center;grid-gap:10px;gap:10px;font-size:13px;color:#fca5a5}.filter-section{flex-direction:column}.filter-group,.filter-section{display:flex;grid-gap:8px;gap:8px}.filter-group{align-items:flex-start;flex-wrap:wrap}.filter-label{font-size:11px;font-weight:700;color:#6b7b8f;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding-top:6px;white-space:nowrap}.filter-chips{display:flex;flex-wrap:wrap;grid-gap:6px;gap:6px}.chip-ocr.active{background:rgba(217,83,79,.08);background:var(--cat-ocr-bg);border-color:#c0392b;border-color:var(--cat-ocr-fg);color:#c0392b;color:var(--cat-ocr-fg)}.chip-dauthanh.active{background:rgba(217,154,0,.1);background:var(--cat-dauthanh-bg);border-color:#b7790a;border-color:var(--cat-dauthanh-fg);color:#b7790a;color:var(--cat-dauthanh-fg)}.chip-laptu.active{background:rgba(147,51,234,.08);background:var(--cat-laptu-bg);border-color:#7c3aed;border-color:var(--cat-laptu-fg);color:#7c3aed;color:var(--cat-laptu-fg)}.chip-supham.active{background:rgba(46,139,87,.08);background:var(--cat-supham-bg);border-color:#166534;border-color:var(--cat-supham-fg);color:#166534;color:var(--cat-supham-fg)}.chip-khoang.active{background:rgba(13,148,136,.08);background:var(--cat-khoang-bg);border-color:#0f766e;border-color:var(--cat-khoang-fg);color:#0f766e;color:var(--cat-khoang-fg)}.chip-daucau.active{background:rgba(217,154,0,.1);background:var(--cat-daucau-bg);border-color:#b7790a;border-color:var(--cat-daucau-fg);color:#b7790a;color:var(--cat-daucau-fg)}.chip-viethoa.active{background:rgba(79,70,229,.08);background:var(--cat-viethoa-bg);border-color:#4338ca;border-color:var(--cat-viethoa-fg);color:#4338ca;color:var(--cat-viethoa-fg)}.chip-context.active{background:#e8f4fb;background:var(--accent-muted);border-color:#1687c7;border-color:var(--accent);color:#1a2332;color:var(--text-main)}.nav-bar{display:flex;align-items:center;grid-gap:12px;gap:12px;padding:8px 16px!important;flex-wrap:wrap;position:relative;z-index:4;transition:z-index 0s}.nav-bar:hover{z-index:150}.btn-nav{padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;border:1px solid #dde3ec;border:1px solid var(--border-color);background:hsla(0,0%,100%,.05);color:#1a2332;color:var(--text-main);cursor:pointer;display:inline-flex;align-items:center;grid-gap:6px;gap:6px;transition:all .2s ease}.btn-nav:hover:not(:disabled){background:rgba(22,135,199,.05);background:var(--hover-bg);border-color:#1687c7;border-color:var(--accent);color:#1687c7;color:var(--accent)}.btn-nav:disabled{opacity:.35;cursor:not-allowed}.nav-counter{font-size:13.5px;color:#1a2332;color:var(--text-main);min-width:100px;text-align:center}.nav-hint{font-size:12px;color:#6b7b8f;color:var(--text-muted);margin-left:auto;font-style:italic}.diff-item{border-radius:14px;border:1px solid #dde3ec;border:1px solid var(--border-color);padding:18px 20px;margin-bottom:12px;transition:all .25s ease;background:#fff;background:var(--bg-card)}.diff-item:hover{border-color:rgba(22,135,199,.35);border-color:var(--diff-item-hover-border);box-shadow:0 2px 8px rgba(22,135,199,.06);box-shadow:var(--glass-shadow)}.diff-item-active{border-color:var(--accent)!important}.diff-item-accepted{border-color:#2d6a4f;border-color:var(--success)}.diff-item-ignored{border-color:#dde3ec!important;border-color:var(--diff-item-ignored-border)!important;background:#f5f7fa!important;background:var(--diff-item-ignored-bg)!important;opacity:.65}.diff-item-ignored:hover{opacity:.85}.toggle-switch.toggle-ignore input{accent-color:#64748b!important}.diff-item-header{justify-content:space-between;margin-bottom:14px;grid-gap:12px;gap:12px}.diff-item-header,.diff-item-meta{display:flex;align-items:center;flex-wrap:wrap}.diff-item-meta{grid-gap:10px;gap:10px}.diff-index-badge{background:#e8f4fb;background:var(--accent-muted);color:#1687c7;color:var(--accent);font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;min-width:28px;text-align:center}.diff-location{font-size:12px;color:#6b7b8f;color:var(--text-muted);display:flex;align-items:center;grid-gap:6px;gap:6px}.cat-khoang{background:rgba(13,148,136,.08);background:var(--cat-khoang-bg);color:#0f766e;color:var(--cat-khoang-fg)}.cat-daucau{background:rgba(217,154,0,.1);background:var(--cat-daucau-bg);color:#b7790a;color:var(--cat-daucau-fg)}.cat-viethoa{background:rgba(79,70,229,.08);background:var(--cat-viethoa-bg);color:#4338ca;color:var(--cat-viethoa-fg)}.diff-text{font-size:14px;line-height:1.7;margin-bottom:10px;word-break:break-all;overflow-wrap:anywhere}.diff-match-badge{display:inline-flex;align-items:center;grid-gap:6px;gap:6px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:6px}.diff-match-del{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca}body[data-theme=dark] .diff-match-del{background:rgba(220,38,38,.15);color:#fca5a5;border-color:rgba(239,68,68,.25)}.diff-match-ins{background:#dcfce7;color:#166534;border:1px solid #bbf7d0;width:100%}body[data-theme=dark] .diff-match-ins{background:rgba(52,211,153,.15);color:#a7f3d0;border-color:rgba(52,211,153,.25)}.diff-edit-row{display:flex;align-items:center;grid-gap:8px;gap:8px;margin-top:6px}.diff-replacement-input{background:transparent;border:none;outline:none;color:#166534;font-size:13px;font-weight:600;font-family:inherit;flex:1;min-width:80px}body[data-theme=dark] .diff-replacement-input{color:#a7f3d0}.diff-replacement-input::-moz-placeholder{color:rgba(22,101,52,.4);font-weight:400}.diff-replacement-input::placeholder{color:rgba(22,101,52,.4);font-weight:400}body[data-theme=dark] .diff-replacement-input::-moz-placeholder{color:rgba(52,211,153,.4)}body[data-theme=dark] .diff-replacement-input::placeholder{color:rgba(52,211,153,.4)}.btn-save-replacement{background:rgba(22,163,74,.1);border:1px solid rgba(22,163,74,.3);color:#166534;font-size:12px;font-weight:600;padding:4px 10px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;grid-gap:5px;gap:5px;white-space:nowrap;transition:all .2s ease;animation:fadeIn .15s ease}body[data-theme=dark] .btn-save-replacement{background:rgba(52,211,153,.15);border-color:rgba(52,211,153,.35);color:#34d399}.btn-save-replacement:hover{background:rgba(22,163,74,.18);transform:translateY(-1px)}body[data-theme=dark] .btn-save-replacement:hover{background:rgba(52,211,153,.25)}.diff-item-footer{display:flex;justify-content:flex-end;margin-top:12px;padding-top:10px;border-top:1px solid hsla(0,0%,100%,.05)}.btn-jump{background:transparent;border:1px solid #dde3ec;border:1px solid var(--border-color);color:#6b7b8f;color:var(--text-muted);font-size:12px;padding:5px 12px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;grid-gap:6px;gap:6px;transition:all .2s ease}.btn-jump:hover{color:#1687c7;color:var(--accent);border-color:#1687c7;border-color:var(--accent);background:rgba(22,135,199,.05);background:var(--hover-bg)}@keyframes fadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.diff-list{max-height:60vh;overflow-y:auto;padding-right:8px;display:flex;flex-direction:column;grid-gap:12px;gap:12px}.diff-list::-webkit-scrollbar{width:6px}.diff-list::-webkit-scrollbar-track{background:transparent;border-radius:10px}.diff-list::-webkit-scrollbar-thumb{background:#dde3ec;background:var(--border-color);border-radius:10px}.diff-list::-webkit-scrollbar-thumb:hover{background:#6b7b8f;background:var(--text-muted)}.disabled-switch{opacity:.45;cursor:not-allowed!important}.disabled-switch input{cursor:not-allowed!important;pointer-events:none}.warning-badge{background:rgba(245,158,11,.15);color:#fcd34d;font-size:11px;font-weight:700;padding:3px 8px;border-radius:6px;display:inline-flex;align-items:center;grid-gap:4px;gap:4px;border:1px solid rgba(245,158,11,.25);animation:fadeIn .3s ease}@media (max-width: 768px){.diff-grid{grid-template-columns:1fr}.action-toolbar,.summary-meta{flex-direction:column}.summary-meta{grid-gap:10px;gap:10px}.nav-hint{display:none}.filter-group{flex-direction:column}.navbar{padding:10px 14px;border-radius:12px}.navbar>div:last-child{grid-gap:6px;gap:6px}.logo{grid-gap:10px;gap:10px;flex-shrink:0}.logo-text span{display:none}.logo-text h1{font-size:15px}.brand-logo-img{width:30px;height:30px}.nav-btn{font-size:0;padding:8px 10px;grid-gap:0;gap:0;min-width:36px;justify-content:center}.nav-btn i{font-size:15px}.free-badge{padding:6px 8px}.free-badge>span:last-child{display:none}.theme-toggle-btn{width:36px;height:36px}}@media (max-width: 480px){.navbar{padding:8px 12px}.free-badge{display:none}}.theme-toggle-btn{background:transparent;border:1px solid #dde3ec;border:1px solid var(--border-color);color:#6b7b8f;color:var(--text-muted);width:40px;height:40px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;transition:all .2s ease}.theme-toggle-btn:hover{color:#1a2332;color:var(--text-main);border-color:#1687c7;border-color:var(--primary);transform:translateY(-1px)}.btn-ignore-forever,.theme-toggle-btn:hover{background:rgba(22,135,199,.05);background:var(--hover-bg)}.btn-ignore-forever{border:1px solid #dde3ec;border:1px solid var(--border-color);color:#6b7b8f;color:var(--text-muted);font-size:12px;font-weight:600;padding:6px 12px;border-radius:4px;cursor:pointer;display:inline-flex;align-items:center;grid-gap:6px;gap:6px;transition:all .15s ease}.btn-ignore-forever:hover{background:rgba(22,135,199,.05);background:var(--hover-bg);border-color:#1687c7;border-color:var(--primary);color:#1a2332;color:var(--text-main)}.user-counter{display:flex;align-items:center;grid-gap:8px;gap:8px;padding:6px 12px;background:rgba(22,135,199,.08);border:1px solid rgba(22,135,199,.2);border-radius:9999px;font-size:13px;font-weight:500;color:#1687c7;color:var(--primary);transition:all .3s ease}.pulse-indicator{width:8px;height:8px;background-color:#2d6a4f;background-color:var(--success);border-radius:50%;position:relative;display:inline-block}.pulse-indicator:after{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border-radius:50%;border:2px solid #2d6a4f;border:2px solid var(--success);opacity:0;animation:pulse 2s ease-out infinite}@keyframes pulse{0%{transform:scale(.6);opacity:.8}to{transform:scale(1.6);opacity:0}}.custom-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(15,23,42,.75);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:2000}.custom-modal{max-width:480px;width:90%;padding:28px;border:1px solid #dde3ec;border:1px solid var(--border-color);box-shadow:0 20px 40px rgba(0,0,0,.4);animation:modalFadeIn .3s cubic-bezier(.16,1,.3,1)}@keyframes modalFadeIn{0%{transform:translateY(15px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header-warning{display:flex;align-items:center;grid-gap:12px;gap:12px;margin-bottom:16px}.modal-header-warning i{font-size:24px;color:#d99a00;color:var(--warning)}.modal-header-warning h3{font-size:19px;font-weight:750;margin:0;color:#1a2332;color:var(--text-main)}.modal-body p{font-size:14px;line-height:1.6;color:#6b7b8f;color:var(--text-muted);margin:0 0 12px}.modal-body p.text-muted{font-size:12.5px;opacity:.85}.modal-footer-custom{display:flex;justify-content:flex-end;grid-gap:12px;gap:12px;margin-top:24px}.modal-footer-custom.stacked{flex-direction:column;width:100%;grid-gap:10px;gap:10px}.modal-footer-custom.stacked .btn{width:100%;justify-content:center}.summary-modal-content{text-align:center;max-width:500px}.summary-success-header{margin-bottom:24px}.summary-success-header h3{font-size:22px;font-weight:750;color:#1a2332;color:var(--text-main);margin:0 0 6px}.summary-success-header p{font-size:13.5px;color:#6b7b8f;color:var(--text-muted);margin:0}.success-icon-wrapper{width:60px;height:60px;border-radius:50%;background:rgba(16,185,129,.12);color:#2d6a4f;color:var(--success);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-size:28px}.summary-stats-box{background:rgba(0,0,0,.18);border:1px solid #dde3ec;border:1px solid var(--border-color);border-radius:12px;padding:16px 20px;text-align:left;margin-bottom:24px;display:flex;flex-direction:column;grid-gap:10px;gap:10px}body[data-theme=light] .summary-stats-box{background:rgba(0,0,0,.02)}.summary-stats-row{display:flex;justify-content:space-between;font-size:13.5px;color:#1a2332;color:var(--text-main)}.summary-stats-row span i{width:16px;margin-right:4px}.summary-stats-row.file-row{border-top:1px solid #dde3ec;border-top:1px solid var(--border-color);padding-top:10px;margin-top:6px}.summary-stats-row.file-row .file-label{color:#6b7b8f;color:var(--text-muted)}.summary-stats-row.file-row .file-name{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:#1687c7;color:var(--primary);text-align:right}.progress-stats{display:flex;align-items:center;grid-gap:20px;gap:20px;font-size:12.5px;color:#6b7b8f;color:var(--text-muted)}.stat-item{display:flex;align-items:baseline;grid-gap:5px;gap:5px;cursor:help}.stat-num{font-size:14.5px;font-weight:750;color:#1a2332;color:var(--text-main)}.stat-desc{font-size:11.5px;color:#6b7b8f;color:var(--text-muted)}.text-success-light{color:#166534}body[data-theme=dark] .text-success-light{color:#34d399}.context-select-wrapper{position:relative;display:inline-block}.context-select{background:hsla(0,0%,100%,.05);border:1px solid #dde3ec;border:1px solid var(--border-color);border-radius:8px;color:#1a2332;color:var(--text-main);padding:5px 32px 5px 12px;font-size:13px;font-weight:500;cursor:pointer;outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;transition:all .2s ease}.context-select option{background-color:#1e293b!important;color:#f8fafc!important}body[data-theme=light] .context-select{background:rgba(0,0,0,.02)}body[data-theme=light] .context-select option{background-color:#fff!important;color:#0f172a!important}.context-select:hover{background:rgba(22,135,199,.05);background:var(--hover-bg)}.context-select:focus,.context-select:hover{border-color:#1687c7;border-color:var(--primary)}.context-select:focus{box-shadow:0 0 0 2px rgba(22,135,199,.2);box-shadow:var(--focus-shadow)}.context-select-wrapper:after{content:"▼";font-size:9px;position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#6b7b8f;color:var(--text-muted);pointer-events:none}.nav-hint-btn{position:relative;display:inline-flex;align-items:center;grid-gap:6px;gap:6px;padding:6px 12px;background:hsla(0,0%,100%,.04);border:1px solid #dde3ec;border:1px solid var(--border-color);border-radius:8px;font-size:12.5px;font-weight:600;color:#6b7b8f;color:var(--text-muted);cursor:pointer;transition:all .2s ease}body[data-theme=light] .nav-hint-btn{background:rgba(0,0,0,.02)}.nav-hint-btn:hover{color:#1a2332;color:var(--text-main);background:hsla(0,0%,100%,.08);border-color:#1687c7;border-color:var(--primary)}.nav-hint-btn:hover .nav-hint-popup{display:flex}.nav-hint-popup{display:none;position:absolute;bottom:calc(100% + 8px);right:0;background:#fff;background:var(--bg-card);border:1px solid #dde3ec;border:1px solid var(--border-color);border-radius:10px;padding:12px;width:250px;flex-direction:column;grid-gap:8px;gap:8px;box-shadow:0 10px 25px rgba(0,0,0,.35);z-index:100;cursor:default;animation:tooltipFadeIn .2s ease}@keyframes tooltipFadeIn{0%{transform:translateY(5px);opacity:0}to{transform:translateY(0);opacity:1}}.shortcut-row{display:flex;justify-content:space-between;align-items:center;font-size:12px}.shortcut-row span:first-child{background:#e8f4fb;background:var(--accent-muted);padding:2px 6px;border-radius:4px;font-family:monospace;font-weight:700;color:#1687c7;color:var(--accent)}.shortcut-row span:last-child{color:#6b7b8f;color:var(--text-muted)}.diff-item-active{border-color:#1687c7!important;border-color:var(--primary)!important;box-shadow:0 0 0 2px rgba(22,135,199,.2)!important;box-shadow:var(--focus-shadow)!important;transform:scale(1.002)}.conf-high{background:rgba(220,38,38,.08)!important;color:#b91c1c!important;border:1px solid rgba(220,38,38,.2)!important;padding:3px 8px!important;border-radius:4px!important;font-size:11px!important;font-weight:700!important;text-transform:uppercase!important}body[data-theme=dark] .conf-high{background:rgba(239,68,68,.15)!important;color:#fca5a5!important;border-color:rgba(239,68,68,.3)!important}.conf-med{background:rgba(217,119,6,.08)!important;color:#92400e!important;border:1px solid rgba(217,119,6,.2)!important;padding:3px 8px!important;border-radius:4px!important;font-size:11px!important;font-weight:700!important;text-transform:uppercase!important}body[data-theme=dark] .conf-med{background:rgba(245,158,11,.15)!important;color:#fcd34d!important;border-color:rgba(245,158,11,.3)!important}.conf-low{background:rgba(22,135,199,.08)!important;color:#1270a8!important;border:1px solid rgba(22,135,199,.2)!important;padding:3px 8px!important;border-radius:4px!important;font-size:11px!important;font-weight:700!important;text-transform:uppercase!important}body[data-theme=dark] .conf-low{background:rgba(56,176,240,.12)!important;color:#7dd3fc!important;border-color:rgba(56,176,240,.25)!important}.conf-badge{opacity:.85;font-weight:500;font-size:9.5px;margin-left:2px;text-transform:none!important}.nav-status-text{font-weight:600;font-size:12.5px}.dropdown-menu-container{position:relative;display:inline-block}.dropdown-menu-list{position:absolute;top:calc(100% + 6px);left:0;background:#fff;background:var(--bg-card);border:1px solid #dde3ec;border:1px solid var(--border-color);border-radius:8px;box-shadow:0 10px 20px rgba(0,0,0,.35);z-index:1500;display:flex;flex-direction:column;padding:4px 0;min-width:180px;overflow:hidden;animation:menuFadeIn .15s ease}@keyframes menuFadeIn{0%{transform:translateY(5px);opacity:0}to{transform:translateY(0);opacity:1}}.dropdown-menu-list.card-menu{left:auto;right:0}.menu-item{background:transparent;border:none;color:#1a2332;color:var(--text-main);font-size:13px;font-weight:500;padding:8px 16px;text-align:left;cursor:pointer;display:flex;align-items:center;grid-gap:8px;gap:8px;width:100%;transition:all .15s ease}.menu-item i{width:14px;text-align:center;opacity:.75}.menu-item:hover{background:rgba(22,135,199,.05);background:var(--hover-bg);color:#1687c7;color:var(--primary)}.card-action-bar{display:flex;grid-gap:8px;gap:8px;align-items:center}.custom-checkbox-label{display:inline-flex;align-items:center;grid-gap:6px;gap:6px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:12.5px;font-weight:600;color:#6b7b8f;color:var(--text-muted);padding:6px 10px;border-radius:6px;border:1px solid transparent;transition:all .2s ease}.custom-checkbox-label:hover:not(.disabled){color:#1a2332;color:var(--text-main);background:hsla(0,0%,100%,.03)}body[data-theme=light] .custom-checkbox-label:hover:not(.disabled){background:rgba(0,0,0,.02)}.custom-checkbox-label.checked{color:#2d6a4f!important;color:var(--success)!important}.custom-checkbox-label.ignore-label.checked{color:#1a2332!important;color:var(--text-main)!important}.custom-checkbox-label.disabled{opacity:.4;cursor:not-allowed}.checkbox-box{display:inline-flex;align-items:center;justify-content:center;font-size:15px;transition:transform .15s ease}.custom-checkbox-label:active .checkbox-box:not(.disabled){transform:scale(.92)}.checkbox-text{line-height:1}.btn-card-more{padding:6px 10px;font-size:12.5px;font-weight:600;border-radius:6px;cursor:pointer;border:1px solid #dde3ec;border:1px solid var(--border-color);background:transparent;color:#6b7b8f;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-card-more:hover{border-color:#1687c7;border-color:var(--primary);color:#1a2332;color:var(--text-main);background:rgba(22,135,199,.05);background:var(--hover-bg)}@media (max-width: 1440px){.app-container{padding:8px 12px}.glass-card{padding:16px}.rules-header{margin-bottom:12px}.rules-table td,.rules-table th{padding:8px 12px;font-size:13px}.diff-item{padding:12px!important}.diff-col{font-size:13px}}