/* LANDTREE_PATCH_16_MENU_DEN_TACH_NHOM_2026-10-06 */
@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap');

* { box-sizing: border-box; }

body {
    font-family: 'Be Vietnam Pro', 'Segoe UI', Arial, sans-serif;
    margin: 0;
    background: #f3f6f4;
    color: #1f2937;
    line-height: 1.5;
}

/* ==== Header ==== */
header {
    background: linear-gradient(135deg, #0f3d24 0%, #14532d 55%, #1a6b3a 100%);
    color: #fff;
    padding: 18px 28px;
}
.header-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.brand { display: flex; align-items: center; gap: 12px; }
.brand-icon { font-size: 34px; line-height: 1; }
header h1 { margin: 0; font-size: 22px; font-weight: 800; letter-spacing: 0.3px; }
header p { margin: 2px 0 0 0; color: #bbf7d0; font-size: 13px; }
nav { display: flex; flex-wrap: wrap; gap: 4px; }
nav a {
    color: #eafff0;
    text-decoration: none;
    font-weight: 500;
    font-size: 14px;
    padding: 8px 12px;
    border-radius: 6px;
    transition: background 0.15s ease;
}
nav a:hover { background: rgba(255,255,255,0.15); color: #fff; }

/* ==== Main layout ==== */
main {
    max-width: 1200px;
    margin: 28px auto;
    padding: 0 20px 40px 20px;
}
h2 { color: #14532d; font-weight: 700; margin-top: 0; }
h3 { color: #166534; font-weight: 600; }

.card {
    background: #fff;
    border-radius: 12px;
    padding: 22px 24px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
    margin-bottom: 24px;
    border: 1px solid #eef2ef;
}

/* ==== Hero (trang chu) ==== */
.hero {
    background: linear-gradient(135deg, #eafff0 0%, #f3f6f4 100%);
    border-radius: 14px;
    padding: 32px 28px;
    margin-bottom: 28px;
    border: 1px solid #d7f2e0;
}
.hero h2 { margin-top: 0; font-size: 26px; }
.hero p { color: #374151; max-width: 780px; }

.action-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
    margin-top: 20px;
}
.action-card {
    display: block;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    padding: 18px;
    text-decoration: none;
    color: #1f2937;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.action-card:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,0.08); border-color: #86efac; }
.action-card .icon { font-size: 26px; }
.action-card h4 { margin: 8px 0 4px 0; color: #14532d; }
.action-card p { margin: 0; font-size: 13px; color: #6b7280; }

/* ==== Table ==== */
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { border-bottom: 1px solid #eef2ef; padding: 10px 12px; text-align: left; }
th { background: #f3fbf5; color: #14532d; font-weight: 600; }
tr:hover td { background: #fafefb; }

/* ==== Forms ==== */
label { display: inline-block; min-width: 260px; font-weight: 500; margin-top: 8px; }
input, select, button { padding: 9px 10px; margin: 6px 0; font-size: 14px; font-family: inherit; }
input[type=text], input[type=number] { width: 320px; border: 1px solid #d1d5db; border-radius: 6px; }
input[type=file] { border: 1px solid #d1d5db; border-radius: 6px; background: #fff; }
select { border: 1px solid #d1d5db; border-radius: 6px; background: #fff; }
button {
    background: #14532d;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 9px 20px;
    cursor: pointer;
    margin-top: 12px;
    font-weight: 600;
    transition: background 0.15s ease;
}
button:hover { background: #166534; }

#resultBox { margin-top: 16px; padding: 14px 18px; background: #fff; border-radius: 8px; border: 1px solid #e5e7eb; }
a { color: #166534; }

/* ==== Tabs (trang chi tiet mo hinh) ==== */
.tabs { display: flex; gap: 4px; border-bottom: 2px solid #e5e7eb; margin-bottom: 18px; }
.tab-btn {
    background: none; color: #6b7280; border: none; border-bottom: 3px solid transparent;
    border-radius: 0; padding: 10px 18px; font-weight: 600; margin: 0; cursor: pointer;
}
.tab-btn:hover { background: #f3fbf5; color: #14532d; }
.tab-btn.active { color: #14532d; border-bottom-color: #14532d; }
.tab-panel { display: none; }
.tab-panel.active { display: block; }

/* ==== Footer ==== */
.site-footer {
    text-align: center;
    padding: 18px 20px 26px 20px;
    color: #6b7280;
    font-size: 13px;
    max-width: 1200px;
    margin: 0 auto;
}
.site-footer a { color: #166534; font-weight: 600; }

/* ==== LandTree Student-friendly UI additions ==== */
.eyebrow {
    display:inline-block; font-size:11px; font-weight:800; letter-spacing:1.1px;
    color:#15803d; margin-bottom:6px;
}
.page-intro { margin-bottom:20px; }
.page-intro h2 { font-size:28px; margin:2px 0 8px; }
.page-intro p { max-width:900px; color:#4b5563; margin:0; }
.subtle { color:#6b7280; font-size:13px; }
.hint-text { font-size:11px; color:#15803d; margin-top:3px; font-weight:500; }
.warning-text { color:#b45309; font-size:12px; }
.section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; margin-bottom:14px; }
.section-heading h2 { margin-bottom:0; }
.text-action { font-size:13px; font-weight:700; text-decoration:none; white-space:nowrap; }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.btn-link {
    display:inline-block; background:#14532d; color:#fff; text-decoration:none; font-weight:700;
    padding:10px 16px; border-radius:8px; border:1px solid #14532d;
}
.btn-link:hover { color:#fff; background:#166534; }
.btn-link.secondary { background:#fff; color:#14532d; border-color:#86efac; }
.btn-link.secondary:hover { background:#f0fdf4; }
.workflow-grid {
    display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; margin:16px 0;
}
.workflow-step {
    position:relative; display:block; text-decoration:none; color:#1f2937; background:#fbfefc;
    border:1px solid #dcefe1; border-radius:12px; padding:18px 16px; min-height:180px;
}
.workflow-step:hover { border-color:#4ade80; box-shadow:0 5px 15px rgba(0,0,0,.06); }
.step-number {
    position:absolute; right:12px; top:10px; width:28px; height:28px; display:flex; align-items:center;
    justify-content:center; border-radius:50%; background:#dcfce7; color:#166534; font-size:12px; font-weight:800;
}
.step-icon { font-size:28px; }
.workflow-step h4 { margin:9px 0 5px; color:#14532d; }
.workflow-step p { font-size:12px; color:#6b7280; margin:0; }
.callout { padding:12px 14px; border-radius:8px; margin:12px 0; font-size:13px; border:1px solid; }
.callout.info { background:#eff6ff; border-color:#bfdbfe; color:#1e3a5f; }
.callout.success { background:#f0fdf4; border-color:#86efac; color:#14532d; }
.callout.warning { background:#fffbeb; border-color:#fde68a; color:#713f12; }
.callout.danger { background:#fff5f5; border-color:#fca5a5; color:#991b1b; }
.metric-guide { margin-top:12px; background:#f9fafb; border-left:4px solid #16a34a; padding:10px 12px; font-size:13px; color:#4b5563; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 22px; }
.form-grid .full-width { grid-column:1/-1; }
.form-grid label { display:block; min-width:0; }
.form-grid input[type=text], .form-grid input[type=number] { width:100%; max-width:460px; }
.form-grid small { display:block; color:#6b7280; max-width:520px; }
.table-wrap { width:100%; overflow-x:auto; }
.algorithm-guide { margin:8px 0 12px 260px; max-width:720px; background:#f0fdf4; border:1px solid #bbf7d0; border-radius:8px; padding:10px 12px; font-size:13px; }
.metric-cards { display:grid; grid-template-columns:repeat(3,minmax(150px,1fr)); gap:10px; margin:14px 0; }
.metric-card { background:#f8fafc; border:1px solid #e5e7eb; border-radius:10px; padding:12px 14px; }
.metric-card span { display:block; font-size:12px; color:#6b7280; }
.metric-card b { display:block; font-size:22px; color:#14532d; margin:2px 0; }
.metric-card small { color:#6b7280; }
.purpose-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; margin:14px 0; }
.purpose-grid > div { background:#f9fafb; border:1px solid #e5e7eb; border-radius:9px; padding:12px 14px; }
.purpose-grid b, .purpose-grid span { display:block; }
.purpose-grid span { color:#6b7280; font-size:12px; margin-top:4px; }
.result-success { border-left:5px solid #22c55e; }
button.compact { padding:4px 10px; margin:0; font-size:12px; }
button.danger { background:#b91c1c; }
button.danger:hover { background:#991b1b; }
.account-link { color:#bbf7d0 !important; padding:8px !important; font-size:13px !important; }
.logout-form { display:inline; margin:0; }
.logout-btn { background:transparent; border:1px solid rgba(255,255,255,.4); color:#eafff0; padding:6px 12px; margin:0; font-size:13px; border-radius:6px; }
.logout-btn:hover { background:rgba(255,255,255,.12); }

@media (max-width: 760px) {
    header { padding:14px 16px; }
    main { padding-left:12px; padding-right:12px; }
    .page-intro h2 { font-size:23px; }
    .card { padding:18px 16px; }
    .form-grid { grid-template-columns:1fr; }
    .algorithm-guide { margin-left:0; }
    .metric-cards { grid-template-columns:1fr; }
    .section-heading { flex-direction:column; }
    label { min-width:0; display:block; }
    input[type=text], input[type=number], select { max-width:100%; width:100%; }
}

/* PATCH 03 - Data Health Check */
.health-metrics { display:grid; grid-template-columns:repeat(4,minmax(145px,1fr)); gap:10px; margin:14px 0; }
.health-badge { display:inline-flex; align-items:center; justify-content:center; min-height:30px; padding:5px 11px; border-radius:999px; background:#f3f4f6; border:1px solid #d1d5db; color:#4b5563; font-size:12px; font-weight:800; white-space:nowrap; }
.health-badge.success { background:#f0fdf4; border-color:#86efac; color:#166534; }
.health-badge.warning { background:#fffbeb; border-color:#fcd34d; color:#92400e; }
.health-badge.danger { background:#fff5f5; border-color:#fca5a5; color:#991b1b; }
.health-details { margin-top:14px; border:1px solid #e5e7eb; border-radius:10px; background:#fff; overflow:hidden; }
.health-details summary { cursor:pointer; padding:12px 14px; font-weight:800; color:#14532d; background:#f8fafc; }
.health-details .table-wrap { padding:0 10px 10px; }
.type-badge { display:inline-block; border-radius:999px; padding:3px 8px; font-size:11px; font-weight:800; white-space:nowrap; }
.type-badge.numeric { background:#ecfdf5; color:#166534; }
.type-badge.categorical { background:#eff6ff; color:#1d4ed8; }
.type-badge.mixed { background:#fff7ed; color:#9a3412; }
.health-note { font-size:11px; color:#92400e; margin:2px 0; }
.health-ok { font-size:11px; color:#15803d; font-weight:700; }
#qualityTable th, #qualityTable td { font-size:12px; vertical-align:top; }
@media (max-width: 900px) { .health-metrics { grid-template-columns:repeat(2,minmax(145px,1fr)); } }
@media (max-width: 560px) { .health-metrics { grid-template-columns:1fr; } }

/* PATCH 06 - Visible data preprocessing workflow */
.prep-flow {
    display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:8px 0 14px;
    font-size:12px; color:#6b7280;
}
.prep-step {
    display:inline-flex; align-items:center; padding:5px 9px; border-radius:999px;
    background:#f8fafc; border:1px solid #e5e7eb; color:#475569; font-weight:700;
}
.prep-step.active { background:#ecfdf5; border-color:#86efac; color:#166534; }
.preprocess-panel {
    margin:14px 0; padding:14px 16px; border:1px solid #dbe5df; border-radius:10px; background:#fbfefc;
}
.preprocess-panel h3 { margin:0 0 4px; }
.prep-options { display:grid; grid-template-columns:repeat(3,minmax(210px,1fr)); gap:10px; margin-top:10px; }
.prep-options label {
    min-width:0; display:flex; gap:8px; align-items:flex-start; margin:0; padding:10px 12px;
    border:1px solid #e5e7eb; border-radius:9px; background:#fff; font-weight:400;
}
.prep-options input { width:auto; margin-top:2px; }
.prep-options b, .prep-options small { display:block; }
.prep-options small { color:#6b7280; margin-top:3px; line-height:1.35; }
.prep-explain-grid { display:grid; grid-template-columns:repeat(3,minmax(210px,1fr)); gap:10px; margin-top:10px; }
.prep-explain-grid > div { padding:11px 12px; background:#fff; border:1px solid #e5e7eb; border-radius:9px; }
.prep-explain-grid b, .prep-explain-grid span { display:block; }
.prep-explain-grid span { margin-top:4px; color:#6b7280; font-size:12px; line-height:1.45; }
#cleanPreviewTable th, #cleanPreviewTable td { font-size:12px; white-space:nowrap; }
.encoding-preview { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:10px; padding:12px; }
.encoding-item { border:1px solid #e5e7eb; border-radius:9px; padding:10px 12px; background:#fbfefc; }
.encoding-item b, .encoding-item span, .encoding-item small { display:block; }
.encoding-item span { margin-top:3px; color:#166534; font-size:12px; font-weight:700; }
.encoding-item small { margin-top:4px; color:#6b7280; line-height:1.35; }
@media (max-width: 900px) {
    .prep-options, .prep-explain-grid { grid-template-columns:1fr; }
}


/* PATCH 07 - Full preview + visible standardization */
.full-data-preview {
    max-height: 620px;
    overflow: auto !important;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    margin: 0 10px 10px;
    width: calc(100% - 20px);
    background: #fff;
}
.full-data-preview #cleanPreviewTable { min-width: max-content; }
.full-data-preview #cleanPreviewTable thead th {
    position: sticky; top: 0; z-index: 3; background: #f3fbf5;
    box-shadow: 0 1px 0 #dbe5df;
}
.full-data-preview .row-number-col {
    position: sticky; left: 0; z-index: 2; background: #f8fafc; color: #64748b;
    min-width: 48px; text-align: right; font-variant-numeric: tabular-nums;
}
.full-data-preview thead .row-number-col { z-index: 4; background: #eaf7ee; }
.preview-toolbar {
    display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
    padding:10px 14px 8px;
}
.prep-options-standardize { grid-template-columns:repeat(3,minmax(230px,1fr)); }
.prep-options .select-option { align-items:stretch; }
.prep-options .select-option > span { width:100%; }
.prep-options .select-option select { width:100%; margin-top:8px; }
.compact-callout { margin:10px 0 0; }
@media (max-width: 900px) {
    .prep-options-standardize { grid-template-columns:1fr; }
    .full-data-preview { max-height:520px; }
}


/* PATCH 08 - tabbed import + scalable preview + advanced column preprocessing */
.import-stepper {
    display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:0 0 16px;
    position:sticky; top:0; z-index:20; background:#fff; padding:8px 0;
}
.import-step-tab {
    margin:0; padding:12px 14px; min-height:74px; text-align:left; display:grid;
    grid-template-columns:34px 1fr; grid-template-rows:auto auto; column-gap:10px;
    background:#f8fafc; color:#334155; border:1px solid #dbe5df; border-radius:10px;
}
.import-step-tab:hover { background:#f0fdf4; color:#14532d; }
.import-step-tab.active { background:#ecfdf5; border-color:#4ade80; color:#14532d; box-shadow:0 0 0 2px rgba(34,197,94,.08); }
.import-step-tab > span { grid-row:1/3; align-self:center; display:flex; width:32px; height:32px; align-items:center; justify-content:center; border-radius:50%; background:#dcfce7; font-weight:800; }
.import-step-tab b { font-size:14px; align-self:end; }
.import-step-tab small { font-size:11px; color:#64748b; align-self:start; }
.import-step-panel { display:none; }
.import-step-panel.active { display:block; }
.step-actions { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-top:18px; padding-top:14px; border-top:1px solid #e5e7eb; }
.secondary-action { background:#fff; color:#14532d; border:1px solid #86efac; }
.secondary-action:hover { background:#f0fdf4; color:#14532d; }
.inline-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.top-gap { margin-top:12px; }

.preprocess-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:14px 0; border-bottom:1px solid #e5e7eb; padding-bottom:8px; }
.preprocess-tab { margin:0; padding:8px 12px; background:#fff; color:#475569; border:1px solid #dbe5df; border-radius:8px; font-size:12px; }
.preprocess-tab.active { background:#14532d; color:#fff; border-color:#14532d; }
.preprocess-tab-panel { display:none; }
.preprocess-tab-panel.active { display:block; }
.flush-panel { margin-top:0; }
.quality-table-scroll { max-height:430px; overflow:auto; border:1px solid #e5e7eb; border-radius:8px; }
.quality-table-scroll table { min-width:900px; }
.quality-table-scroll thead th, .role-table-scroll thead th { position:sticky; top:0; z-index:2; background:#f3fbf5; }
.role-table-scroll { max-height:560px; overflow:auto; border:1px solid #e5e7eb; border-radius:8px; }
.role-table-scroll table { min-width:820px; }

.full-data-preview {
    height:520px !important; max-height:520px !important; overflow:auto !important;
    border:1px solid #dbe5df; border-radius:8px; margin:0; width:100%; background:#fff;
}
.full-data-preview #cleanPreviewTable { min-width:max-content; margin:0; }
.full-data-preview #cleanPreviewTable thead th { position:sticky; top:0; z-index:3; background:#f3fbf5; box-shadow:0 1px 0 #dbe5df; }
.full-data-preview .row-number-col { position:sticky; left:0; z-index:2; background:#f8fafc; color:#64748b; min-width:52px; text-align:right; font-variant-numeric:tabular-nums; }
.full-data-preview thead .row-number-col { z-index:4; background:#eaf7ee; }
.preview-toolbar { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:0 0 10px; }
.preview-controls { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.preview-controls label { display:flex; align-items:center; gap:6px; min-width:0; }
.preview-controls select { width:auto; min-width:74px; }
.preview-controls button { min-width:34px; }
#previewPageInfo { font-size:12px; color:#475569; min-width:160px; text-align:center; }

.column-tool { margin-top:16px; padding:16px; border:1px solid #a7f3d0; border-radius:12px; background:#f7fef9; }
.column-tool h3, .column-tool h4 { margin-top:0; }
.column-tool-grid { display:grid; grid-template-columns:repeat(2,minmax(220px,1fr)); gap:12px; margin:10px 0; }
.column-tool-grid.three { grid-template-columns:repeat(3,minmax(190px,1fr)); }
.column-tool-grid.two { grid-template-columns:repeat(2,minmax(220px,1fr)); }
.column-tool-grid label { min-width:0; margin:0; }
.column-tool-grid label > span, .column-tool-grid label > small { display:block; }
.column-tool-grid input[type=text], .column-tool-grid input[type=number], .column-tool-grid select { width:100%; max-width:none; margin-top:6px; }
.check-card { display:flex !important; gap:8px; padding:10px 12px; background:#fff; border:1px solid #e5e7eb; border-radius:9px; }
.check-card input { width:auto !important; margin-top:3px !important; }
.check-card b, .check-card small { display:block; }
.check-card small { color:#6b7280; margin-top:3px; }
.transform-options { margin-top:14px; padding-top:12px; border-top:1px dashed #cbd5e1; }
.column-summary { margin:10px 0; padding:10px 12px; border:1px solid #e2e8f0; border-radius:8px; background:#fff; }
.value-chips { display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
.value-chips > span { padding:3px 7px; border-radius:999px; background:#f1f5f9; color:#334155; font-size:11px; border:1px solid #e2e8f0; }
#categoryAliasRules { width:100%; min-height:110px; resize:vertical; font-family:inherit; padding:9px 10px; border:1px solid #ccc; border-radius:6px; }

@media (max-width:900px){
    .import-stepper { grid-template-columns:1fr; position:static; }
    .column-tool-grid, .column-tool-grid.three, .column-tool-grid.two { grid-template-columns:1fr; }
    .full-data-preview { height:430px !important; max-height:430px !important; }
    .step-actions { flex-direction:column-reverse; align-items:stretch; }
    .step-actions button { width:100%; }
}


/* PATCH 09 - editable data preview + contextual step navigation */
.preview-edit-bar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
    margin:0 0 10px;
    padding:10px 12px;
    border:1px solid #dbe5df;
    border-radius:10px;
    background:#f8fafc;
}
.preview-edit-help { margin:0 0 10px; }
.full-data-preview #cleanPreviewTable td.editable-data-cell {
    background:#fffef5;
    cursor:text;
    min-width:110px;
    outline:none;
}
.full-data-preview #cleanPreviewTable td.editable-data-cell:hover { background:#fff9d8; }
.full-data-preview #cleanPreviewTable td.editable-data-cell:focus {
    background:#fff7c2;
    box-shadow:inset 0 0 0 2px #a16207;
}
.full-data-preview #cleanPreviewTable.is-editing td.editable-data-cell::selection { background:#fde68a; }
.import-context-nav {
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(240px, 1.6fr) minmax(0, 1fr);
    align-items:center;
    gap:12px;
    margin:14px 0 22px;
    padding:14px 16px;
    border:1px solid #dbe5df;
    border-radius:12px;
    background:#ffffff;
    box-shadow:0 4px 16px rgba(15, 23, 42, .04);
}
.import-context-nav #importNavBack { justify-self:start; }
.import-context-nav #importNavNext { justify-self:end; }
.import-nav-center { color:#475569; font-size:13px; text-align:center; line-height:1.45; }
.step-final-actions {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin-top:18px;
    padding-top:14px;
    border-top:1px solid #e5e7eb;
}
@media (max-width: 760px) {
    .import-context-nav { grid-template-columns:1fr; }
    .import-context-nav #importNavBack,
    .import-context-nav #importNavNext { justify-self:stretch; width:100%; }
    .import-nav-center { order:-1; }
    .step-final-actions { flex-direction:column; align-items:stretch; }
    .step-final-actions button { width:100%; }
}

/* PATCH 10 - data grid tools + clearer preprocessing order */
.preprocess-tabs {
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:8px;
    align-items:stretch;
}
.preprocess-tab {
    width:100%;
    min-height:42px;
    text-align:center;
    white-space:normal;
    line-height:1.25;
}
.preview-data-tools[hidden] { display:none !important; }
.preview-data-tools {
    margin:0 0 10px;
    padding:12px;
    border:1px solid #bbf7d0;
    border-radius:10px;
    background:#f7fef9;
}
.preview-tool-row {
    display:flex;
    gap:10px;
    align-items:flex-end;
    flex-wrap:wrap;
}
.preview-tool-row + .preview-tool-row {
    margin-top:10px;
    padding-top:10px;
    border-top:1px dashed #d1fae5;
}
.preview-tool-row label {
    margin:0;
    min-width:160px;
}
.preview-tool-row label > span {
    display:block;
    margin-bottom:5px;
    font-size:12px;
    color:#334155;
}
.preview-tool-row input,
.preview-tool-row select {
    width:100%;
    max-width:none;
    margin:0;
}
.preview-global-search { flex:1 1 360px; }
.replace-row label:first-child { flex:1 1 220px; }
.replace-row label:nth-child(2),
.replace-row label:nth-child(3) { flex:1 1 180px; }
.replace-row label:nth-child(4) { flex:0 1 160px; }
.filter-count-badge {
    display:inline-flex;
    align-items:center;
    min-height:36px;
    padding:6px 10px;
    border-radius:999px;
    border:1px solid #dbe5df;
    background:#fff;
    color:#475569;
    font-size:12px;
    white-space:nowrap;
}
.preview-tool-help {
    margin-top:10px;
    padding:8px 10px;
    border-radius:8px;
    background:#fff;
    border:1px solid #e5e7eb;
    color:#475569;
    font-size:12px;
}
.preview-tool-help code {
    padding:1px 4px;
    border-radius:4px;
    background:#f1f5f9;
    color:#0f172a;
}
.full-data-preview #cleanPreviewTable thead tr:first-child th {
    top:0;
    z-index:5;
}
.full-data-preview #cleanPreviewTable thead tr.preview-filter-row th {
    top:38px;
    z-index:4;
    padding:5px 6px;
    background:#f8fafc;
}
.full-data-preview #cleanPreviewTable thead tr.preview-filter-row .row-number-col {
    z-index:6;
    background:#eef7f1;
}
.column-filter-input {
    width:100%;
    min-width:96px;
    height:30px;
    margin:0;
    padding:4px 7px;
    border:1px solid #cbd5e1;
    border-radius:6px;
    background:#fff;
    font-size:12px;
    font-weight:400;
}
.column-filter-input:focus {
    border-color:#15803d;
    box-shadow:0 0 0 2px rgba(21,128,61,.12);
    outline:none;
}
.sortable-preview-header {
    cursor:pointer;
    user-select:none;
}
.sortable-preview-header:hover { background:#eaf7ee !important; }
.sort-indicator { color:#166534; font-size:10px; }

@media (max-width:900px){
    .preprocess-tabs { grid-template-columns:repeat(2, minmax(0, 1fr)); }
    .preview-tool-row { align-items:stretch; }
    .preview-tool-row label, .preview-global-search, .replace-row label { flex:1 1 100%; min-width:0; }
}
@media (max-width:560px){
    .preprocess-tabs { grid-template-columns:1fr; }
}

/* PATCH 11 - Statistical analysis workspace */
.stats-page-intro { margin-bottom:18px; }
.stats-dataset-row { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.stats-dataset-select { flex:1 1 360px; margin:0; }
.stats-dataset-select select { width:100%; max-width:none; }
.stats-dataset-status { flex:1 1 220px; min-height:42px; display:flex; align-items:center; padding:8px 12px; border:1px solid #e2e8f0; border-radius:9px; background:#f8fafc; color:#475569; }
.stats-meta-grid { display:grid; grid-template-columns:repeat(6,minmax(120px,1fr)); gap:10px; margin-top:14px; }
.stats-meta-grid > div { padding:10px 12px; border:1px solid #dbe5df; border-radius:10px; background:#fbfefc; }
.stats-meta-grid span,.stats-meta-grid b { display:block; }
.stats-meta-grid span { font-size:11px; color:#64748b; text-transform:uppercase; letter-spacing:.03em; }
.stats-meta-grid b { margin-top:4px; color:#14532d; overflow-wrap:anywhere; }
.stats-module-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.stats-module-card { position:relative; min-height:158px; padding:18px 16px 14px 54px; text-align:left; border:1px solid #dbe5df; border-radius:14px; background:#fff; color:#0f172a; box-shadow:0 4px 14px rgba(15,23,42,.04); }
.stats-module-card:hover,.stats-module-card.active { border-color:#15803d; background:#f5fcf7; transform:translateY(-1px); }
.stats-module-card.active { box-shadow:0 0 0 2px rgba(21,128,61,.10),0 8px 22px rgba(15,23,42,.06); }
.stats-module-letter { position:absolute; left:14px; top:14px; width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:#14532d; color:#fff; font-weight:800; }
.stats-module-icon { display:block; font-size:26px; margin-bottom:7px; }
.stats-module-card b,.stats-module-card small,.stats-module-card em { display:block; }
.stats-module-card small { margin-top:6px; color:#64748b; line-height:1.45; }
.stats-module-card em { margin-top:10px; color:#166534; font-style:normal; font-size:11px; font-weight:700; }
.stats-guide-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:12px 0 14px; }
.stats-guide-grid > div { padding:12px; border:1px solid #e2e8f0; border-radius:10px; background:#fff; }
.stats-guide-grid b,.stats-guide-grid span { display:block; }
.stats-guide-grid span { margin-top:5px; color:#166534; font-size:13px; }
.stats-tool-tabs { display:flex; gap:8px; flex-wrap:wrap; margin:0 0 16px; padding-bottom:12px; border-bottom:1px solid #e5e7eb; }
.stats-tool-tab { background:#f8fafc; color:#334155; border:1px solid #cbd5e1; }
.stats-tool-tab.active { background:#14532d; color:#fff; border-color:#14532d; }
.stats-tool-head { display:flex; justify-content:space-between; gap:18px; align-items:flex-start; margin-bottom:14px; }
.stats-tool-head h3 { margin:0 0 5px; }
.stats-tool-head p { margin:0; color:#64748b; max-width:760px; }
.stats-use-note { max-width:360px; padding:9px 11px; border-radius:9px; background:#f0fdf4; border:1px solid #bbf7d0; color:#365314; font-size:12px; }
.stats-form-grid { display:grid; gap:12px; align-items:end; margin-bottom:14px; }
.stats-form-grid.two { grid-template-columns:minmax(260px,1fr) minmax(180px,.65fr); }
.stats-form-grid.three { grid-template-columns:repeat(2,minmax(220px,1fr)) minmax(180px,.65fr); }
.stats-form-grid label { margin:0; }
.stats-form-grid select { width:100%; max-width:none; }
.stats-form-grid select[multiple] { min-height:180px; }
.stats-form-action { display:flex; align-items:flex-end; min-height:68px; }
.stats-form-action button { width:100%; }
.stats-result-area { margin-top:12px; }
.empty-result { padding:28px; border:1px dashed #cbd5e1; border-radius:12px; text-align:center; color:#64748b; background:#f8fafc; }
.stats-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:12px 0; }
.stats-kpi-grid > div { padding:12px; border:1px solid #dbe5df; border-radius:10px; background:#fbfefc; }
.stats-kpi-grid span,.stats-kpi-grid b,.stats-kpi-grid small { display:block; }
.stats-kpi-grid span { font-size:11px; color:#64748b; }
.stats-kpi-grid b { margin:4px 0 2px; color:#14532d; font-size:20px; }
.stats-kpi-grid small { color:#64748b; }
.stats-explain-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:12px 0; }
.stats-explain-grid > div { padding:11px 12px; border-radius:10px; background:#f8fafc; border:1px solid #e2e8f0; }
.stats-explain-grid h4,.stats-explain-grid p { margin:0; }
.stats-explain-grid p { margin-top:5px; color:#334155; }
.stats-chart-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:16px 0; }
.stats-chart-grid > div,.stats-chart-single { border:1px solid #e2e8f0; border-radius:12px; background:#fff; padding:12px; overflow:auto; }
.stats-chart-grid .wide { grid-column:1 / -1; }
.stats-chart-grid h4,.stats-chart-single h4 { margin:0 0 8px; }
.stats-chart-grid canvas,.stats-chart-single canvas { display:block; width:100%; height:auto; min-width:440px; }
.stats-table-section { margin-top:16px; }
.stats-table-section h4 { margin:0 0 8px; }
.table-wrap.tallish { max-height:520px; overflow:auto; }
.crosstab-wrap { max-height:600px; overflow:auto; }
.crosstab-table td small { display:block; color:#64748b; margin-top:3px; white-space:nowrap; }
.stats-footnote { color:#64748b; font-size:12px; }
.stats-details { margin-top:12px; padding:10px 12px; border:1px solid #e2e8f0; border-radius:9px; background:#f8fafc; }
.stats-placeholder-lead { font-size:16px; line-height:1.6; color:#334155; }
.stats-submodel-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:14px; }
.stats-submodel-grid > div { padding:16px; border:1px solid #dbe5df; border-radius:12px; background:#fbfefc; }
.stats-submodel-grid b { color:#14532d; }
.stats-submodel-grid p { color:#475569; min-height:74px; }
.stats-status-chip { display:inline-block; padding:5px 9px; border-radius:999px; background:#e2e8f0; color:#475569; font-size:11px; }
@media(max-width:1050px){
  .stats-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .stats-module-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .stats-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .stats-kpi-grid,.stats-explain-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .stats-submodel-grid{grid-template-columns:1fr;}
}
@media(max-width:720px){
  .stats-module-grid,.stats-guide-grid,.stats-meta-grid,.stats-kpi-grid,.stats-explain-grid,.stats-chart-grid{grid-template-columns:1fr;}
  .stats-chart-grid .wide{grid-column:auto;}
  .stats-form-grid.two,.stats-form-grid.three{grid-template-columns:1fr;}
  .stats-tool-head{flex-direction:column;}
  .stats-use-note{max-width:none;}
}

/* LandTree Statistics PATCH 12 - So sanh nhom & moi lien he */
.stats-form-grid.four { grid-template-columns:repeat(4,minmax(170px,1fr)); }
.stats-subtabs { display:flex; gap:8px; flex-wrap:wrap; margin:8px 0 14px; padding:10px; border:1px solid #e2e8f0; border-radius:10px; background:#f8fafc; }
.stats-subtabs button.active { background:#14532d; color:#fff; border-color:#14532d; }
.stats-np-panel { margin-bottom:14px; padding:12px; border:1px solid #e2e8f0; border-radius:10px; background:#fff; }
.stats-result-area .callout.success { background:#f0fdf4; border-color:#86efac; color:#14532d; }
.stats-result-area table td small { display:block; color:#64748b; margin-top:2px; }
@media (max-width:1050px){ .stats-form-grid.four{grid-template-columns:repeat(2,minmax(0,1fr));} }
@media (max-width:720px){ .stats-form-grid.four{grid-template-columns:1fr;} }

/* PATCH 13 - Trang chu theo ban do cong cu */
.lt-home-hero{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,.75fr);gap:24px;align-items:stretch}
.lt-home-purpose{padding:18px;border:1px solid rgba(22,101,52,.2);border-radius:14px;background:rgba(255,255,255,.78);display:flex;flex-direction:column;gap:9px;align-self:stretch;justify-content:center}
.lt-home-purpose b{color:#14532d;font-size:15px;margin-bottom:3px}.lt-home-purpose span{color:#334155;line-height:1.45}
.lt-home-section{margin-top:18px}.lt-section-lead{margin:5px 0 0;color:#64748b;max-width:880px}
.lt-area-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.lt-area-card{position:relative;display:block;min-height:245px;padding:22px 18px 18px;text-decoration:none;color:#0f172a;border:1px solid #dbe5df;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(15,23,42,.05);transition:.18s ease}
.lt-area-card:hover{transform:translateY(-2px);border-color:#16a34a;box-shadow:0 10px 24px rgba(15,23,42,.08)}
.lt-area-no{position:absolute;right:14px;top:14px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#eaf7ee;color:#166534;font-weight:800}.lt-area-icon{font-size:34px}.lt-area-card h3{margin:12px 0 8px;font-size:19px}.lt-area-card p{color:#475569;line-height:1.55;min-height:96px}.lt-area-card>b{color:#166534}.lt-area-card.stats{background:#f7fbff}.lt-area-card.model{background:#fbfef9}.lt-area-card.result{background:#fffdf7}.lt-mini-links{display:flex;gap:8px;flex-wrap:wrap}.lt-mini-links a{padding:7px 10px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;text-decoration:none;color:#166534;font-weight:700}
.lt-toolgroup-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.lt-toolgroup-card{display:block;padding:16px;border:1px solid #dbe5df;border-radius:14px;background:#fff;text-decoration:none;color:#0f172a}.lt-toolgroup-card:hover{border-color:#16a34a;background:#fbfefc}.lt-toolgroup-card.planned{background:#fafafa}.lt-toolgroup-head{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px}.lt-toolgroup-head>span{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#14532d;color:#fff;font-weight:800}.lt-toolgroup-head b{font-size:15px}.lt-toolgroup-head em{font-size:10px;font-style:normal;padding:4px 7px;border-radius:999px;background:#dcfce7;color:#166534;font-weight:800}.lt-toolgroup-card.planned .lt-toolgroup-head em{background:#e2e8f0;color:#475569}.lt-toolgroup-card p{color:#334155;line-height:1.5;margin:12px 0 7px}.lt-toolgroup-card small{color:#64748b;line-height:1.45}.lt-home-guide{margin-top:14px}
.lt-model-family-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.lt-model-family{padding:18px;border:1px solid #dbe5df;border-radius:14px;background:#fff}.lt-model-family.primary{background:#f5fcf7;border-color:#bbdfc4}.lt-family-icon{font-size:30px}.lt-model-family h3{margin:8px 0}.lt-model-family p{color:#475569;line-height:1.5}.lt-chip-list{display:flex;gap:7px;flex-wrap:wrap}.lt-chip-list span{padding:5px 8px;border-radius:999px;background:#eef2f7;color:#334155;font-size:11px;font-weight:700}.lt-model-family.primary .lt-chip-list span{background:#dcfce7;color:#166534}
.lt-workspace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lt-workspace-pane{border:1px solid #e2e8f0;border-radius:14px;background:#fff;overflow:hidden}.lt-pane-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.lt-pane-head h3{margin:0}.lt-pane-head a{font-weight:700;color:#166534}.lt-home-table{max-height:360px;overflow:auto;border:0;border-radius:0}.lt-workspace-actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:12px}
@media(max-width:1100px){.lt-area-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lt-toolgroup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lt-home-hero{grid-template-columns:1fr}.lt-model-family-grid{grid-template-columns:1fr}}
@media(max-width:720px){.lt-area-grid,.lt-toolgroup-grid,.lt-workspace-grid{grid-template-columns:1fr}.lt-area-card{min-height:auto}.lt-area-card p{min-height:auto}.lt-toolgroup-head{grid-template-columns:34px 1fr}.lt-toolgroup-head em{grid-column:2}.lt-workspace-actions{justify-content:stretch}.lt-workspace-actions .btn-link{flex:1 1 100%;text-align:center}}

/* PATCH 14 - multi-domain LandTree architecture */
html { scroll-behavior:smooth; }
.lt-home-hero-v2 .lt-home-purpose hr { width:100%; border:0; border-top:1px solid #dbe5df; margin:5px 0; }
.lt-home-hero-v2 .lt-home-purpose small { color:#475569; line-height:1.55; }
.lt-layer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.lt-layer-card { position:relative; display:block; min-height:220px; padding:22px 18px 18px; text-decoration:none; color:#0f172a; border:1px solid #dbe5df; border-radius:16px; background:#fff; box-shadow:0 5px 18px rgba(15,23,42,.04); transition:.18s ease; }
.lt-layer-card:hover { transform:translateY(-2px); border-color:#16a34a; box-shadow:0 10px 24px rgba(15,23,42,.08); }
.lt-layer-card.featured { background:#f5fcf7; border-color:#bbdfc4; }
.lt-layer-index { position:absolute; right:14px; top:14px; width:31px; height:31px; display:grid; place-items:center; border-radius:50%; background:#eaf7ee; color:#166534; font-weight:800; }
.lt-layer-icon { font-size:34px; }
.lt-layer-card h3 { margin:12px 0 8px; font-size:19px; }
.lt-layer-card p { color:#475569; line-height:1.55; min-height:74px; }
.lt-layer-card>b { color:#166534; font-size:13px; }

.lt-domain-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.lt-domain-card { display:flex; flex-direction:column; min-height:300px; padding:18px; border:1px solid #e2e8f0; border-radius:15px; background:#fff; box-shadow:0 3px 12px rgba(15,23,42,.035); }
.lt-domain-card.active-domain { border-color:#c9dfcf; background:#fbfefc; }
.lt-domain-card.active-domain.accent { background:#f4fbf6; border-color:#9fd0ad; }
.lt-domain-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.lt-domain-icon { font-size:31px; }
.lt-domain-card h3 { margin:10px 0 7px; font-size:17px; }
.lt-domain-card p { margin:0 0 12px; color:#475569; line-height:1.55; }
.lt-domain-card>a { margin-top:auto; font-weight:800; text-decoration:none; padding-top:12px; }
.lt-domain-card>small { margin-top:auto; padding-top:12px; color:#64748b; line-height:1.45; }
.lt-status { display:inline-flex; align-items:center; border-radius:999px; padding:4px 8px; font-size:10px; font-weight:800; white-space:nowrap; }
.lt-status.ready { background:#dcfce7; color:#166534; }
.lt-status.partial { background:#e0f2fe; color:#075985; }
.lt-status.planned { background:#f1f5f9; color:#475569; }
.lt-status.roadmap { background:#fff7ed; color:#9a3412; }
.lt-domain-tools { display:flex; flex-wrap:wrap; gap:6px; margin-top:2px; }
.lt-domain-tools span { padding:5px 7px; border-radius:999px; background:#f1f5f9; color:#475569; font-size:10px; font-weight:700; }
.lt-domain-card.active-domain .lt-domain-tools span { background:#e8f6ec; color:#166534; }
.lt-shared-engine-note { margin-top:15px; line-height:1.55; }

@media(max-width:1100px){
    .lt-layer-grid,.lt-domain-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:720px){
    .lt-layer-grid,.lt-domain-grid{grid-template-columns:1fr;}
    .lt-layer-card,.lt-domain-card{min-height:auto;}
    .lt-layer-card p{min-height:auto;}
}

/* PATCH 15 - menu cap 2 va cap 3 */
.main-nav{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:4px;
    position:relative;
}
.main-nav .nav-root-link,
.main-nav details>summary{
    color:#eafff0;
    text-decoration:none;
    font-weight:600;
    font-size:13px;
    padding:8px 10px;
    border-radius:7px;
    transition:background .15s ease,color .15s ease;
    white-space:nowrap;
}
.main-nav .nav-root-link:hover,
.main-nav details>summary:hover,
.main-nav details[open]>summary{
    background:rgba(255,255,255,.15);
    color:#fff;
}
.main-nav details{position:relative;margin:0;}
.main-nav details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;}
.main-nav details>summary::-webkit-details-marker{display:none;}
.main-nav .nav-dropdown>summary::after{content:'▾';font-size:10px;opacity:.8;margin-left:2px;}
.main-nav .nav-subdropdown>summary::after{content:none;}
.nav-menu{
    position:absolute;
    top:calc(100% + 7px);
    left:0;
    z-index:1200;
    min-width:260px;
    padding:8px;
    border:1px solid #dbe5df;
    border-radius:11px;
    background:#fff;
    box-shadow:0 16px 36px rgba(15,23,42,.18);
    color:#0f172a;
}
.nav-dropdown:not([open])>.nav-menu,
.nav-subdropdown:not([open])>.nav-menu{display:none;}
.nav-menu a,
.nav-subdropdown>summary,
.nav-logout-btn{
    width:100%;
    display:flex;
    align-items:center;
    gap:8px;
    padding:9px 10px;
    border:0;
    border-radius:7px;
    background:transparent;
    color:#1f2937;
    font:inherit;
    font-size:13px;
    font-weight:500;
    text-align:left;
    text-decoration:none;
    cursor:pointer;
}
.nav-menu a:hover,
.nav-subdropdown>summary:hover,
.nav-subdropdown[open]>summary,
.nav-logout-btn:hover{
    background:#eef9f1;
    color:#14532d;
}
.nav-menu-wide{min-width:330px;}
.nav-menu-apps{min-width:285px;}
.nav-menu-right{left:auto;right:0;}
.nav-menu-separator{height:1px;background:#e5e7eb;margin:6px 4px;}
.nav-subdropdown{position:relative!important;display:block;}
.nav-subdropdown>summary{justify-content:space-between;white-space:nowrap;}
.nav-subdropdown>summary span{color:#64748b;font-weight:800;}
.nav-menu-level-3{
    top:-8px;
    left:calc(100% + 8px);
    min-width:285px;
}
.nav-logout-form{margin:0;}
.nav-logout-btn{color:#991b1b;}
.nav-logout-btn:hover{background:#fef2f2;color:#991b1b;}

@media (min-width:901px){
    .main-nav>.nav-dropdown:hover>.nav-menu{display:block;}
    .main-nav>.nav-dropdown:hover>summary{background:rgba(255,255,255,.15);color:#fff;}
    .nav-subdropdown:hover>.nav-menu{display:block;}
    .nav-subdropdown:hover>summary{background:#eef9f1;color:#14532d;}
}

@media (max-width:900px){
    header{padding:14px 16px;}
    .header-inner{align-items:flex-start;}
    .main-nav{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
    .main-nav .nav-root-link,.main-nav details>summary{justify-content:space-between;padding:9px 10px;background:rgba(255,255,255,.06);}
    .main-nav .nav-root-link{display:flex;align-items:center;}
    .main-nav details{position:static;}
    .main-nav details[open]{grid-column:1/-1;}
    .nav-menu,.nav-menu-level-3,.nav-menu-right{
        position:static;
        width:100%;
        min-width:0;
        margin-top:5px;
        box-shadow:none;
        border-color:rgba(255,255,255,.2);
    }
    .nav-menu-level-2{background:#fff;}
    .nav-menu-level-3{margin:5px 0 2px 12px;width:calc(100% - 12px);background:#f8fafc;}
    .nav-subdropdown>summary{color:#1f2937!important;background:transparent!important;}
}
@media (max-width:520px){
    .main-nav{grid-template-columns:1fr;}
    .main-nav details[open]{grid-column:auto;}
}

/* PATCH 16 - menu chu den va tach Phan tich thong ke theo nhom */
.main-nav .nav-root-link,
.main-nav > details > summary {
    color:#111827 !important;
    background:#ffffff !important;
    border:1px solid rgba(255,255,255,.72);
    box-shadow:0 1px 2px rgba(15,23,42,.08);
}
.main-nav .nav-root-link:hover,
.main-nav > details > summary:hover,
.main-nav > details[open] > summary {
    color:#111827 !important;
    background:#dcfce7 !important;
    border-color:#86efac;
}
.nav-menu,
.nav-menu a,
.nav-menu summary,
.nav-subdropdown > summary,
.nav-menu .nav-logout-btn {
    color:#111827 !important;
}
.nav-menu a:hover,
.nav-subdropdown > summary:hover,
.nav-subdropdown[open] > summary {
    color:#111827 !important;
    background:#ecfdf5 !important;
}
.stats-group-nav{
    display:flex;
    gap:7px;
    flex-wrap:wrap;
    margin:0 0 18px;
    padding:10px;
    background:#fff;
    border:1px solid #e5e7eb;
    border-radius:12px;
    box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.stats-group-nav a{
    color:#111827;
    text-decoration:none;
    font-size:12px;
    font-weight:700;
    padding:8px 10px;
    border-radius:8px;
    background:#f8fafc;
    border:1px solid #e5e7eb;
}
.stats-group-nav a:hover,
.stats-group-nav a.active{
    background:#dcfce7;
    border-color:#86efac;
    color:#14532d;
}
.stats-module-card{
    text-decoration:none;
    color:#111827;
}
@media(max-width:900px){
    .main-nav .nav-root-link,
    .main-nav > details > summary{background:#fff !important;color:#111827 !important;}
    .stats-group-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:560px){
    .stats-group-nav{grid-template-columns:1fr;}
}


/* PATCH 17 - hoan thien D, E, F */
.stats-inline-builder{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:14px 0;padding:12px;border:1px dashed #bbf7d0;background:#f7fff9;border-radius:10px}
.stats-inline-builder label{min-width:250px;flex:1}
.stats-inline-builder small{width:100%;color:#64748b}
.stats-mini-badge{display:inline-block;padding:2px 6px;border-radius:999px;background:#fef3c7;color:#92400e;font-size:10px;font-weight:700}
.loading-strong{font-weight:800;background:#ecfdf5;color:#14532d}
.stats-model-mapping{margin:12px 0}
.stats-mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.stats-equation-list{display:grid;gap:10px;margin:12px 0}
.stats-equation-row{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.6fr) auto;gap:10px;align-items:end;padding:12px;border:1px solid #e2e8f0;border-radius:10px;background:#fafafa}
.stats-equation-result{padding:12px 0;border-bottom:1px solid #e5e7eb}
.stats-action-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:10px 0}
@media(max-width:900px){.stats-mapping-grid{grid-template-columns:1fr 1fr}.stats-equation-row{grid-template-columns:1fr}}
@media(max-width:600px){.stats-mapping-grid{grid-template-columns:1fr}}

/* LANDTREE PATCH 18 - bộ dữ liệu đang phân tích dùng chung */
.stats-dataset-card{border-left:4px solid #2f6f46}
.stats-dataset-status{min-height:38px;display:flex;align-items:center;gap:7px}
.stats-active-dot{width:9px;height:9px;border-radius:50%;background:#2f6f46;display:inline-block;box-shadow:0 0 0 4px rgba(47,111,70,.12)}
.dataset-next-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.dataset-next-actions .secondary-link{background:#fff;color:#111;border:1px solid #cfd6d2}
@media (max-width:720px){.dataset-next-actions{flex-direction:column}.dataset-next-actions a{width:100%;text-align:center}}
