
.ntm-shell{max-width:1480px;margin:0 auto;padding:18px 12px 48px;font-family:Arial,"Helvetica Neue",sans-serif;color:#17352a;line-height:1.5}
.ntm-shell *{box-sizing:border-box}
.ntm-nav{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px;padding:9px;background:#f4f8f5;border:1px solid #dbe8df;border-radius:12px}
.ntm-nav a{padding:8px 12px;border-radius:8px;text-decoration:none;color:#174b34;font-weight:700}
.ntm-nav a:hover{background:#e0efe5;text-decoration:none}
.ntm-hero{display:flex;justify-content:space-between;gap:22px;align-items:flex-start;padding:24px;border-radius:18px;background:linear-gradient(135deg,#eef8f0,#f8fbf9);border:1px solid #d8e8dc;margin-bottom:18px}
.ntm-hero-main,.ntm-dashboard-hero{background:linear-gradient(135deg,#e6f5eb 0,#f8fbf9 60%,#edf5ff 100%)}
.ntm-public-hero{background:linear-gradient(135deg,#eef8f0,#f4f9ff)}
.ntm-hero h1{margin:2px 0 8px;font-size:28px;line-height:1.2;color:#123d2a}
.ntm-hero p{margin:0;color:#4c675b;max-width:900px}
.ntm-eyebrow{font-size:12px;letter-spacing:.09em;font-weight:800;color:#2b7a4b;margin-bottom:6px}
.ntm-live{white-space:nowrap;padding:8px 10px;border-radius:999px;background:#fff;border:1px solid #d5e4da;font-size:13px}
.ntm-grid{display:grid;gap:14px}.ntm-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ntm-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ntm-grid-main{grid-template-columns:minmax(0,2fr) minmax(310px,.9fr);align-items:start}
.ntm-kpis{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}
.ntm-card{background:#fff;border:1px solid #dce8e0;border-radius:14px;padding:16px;margin-bottom:14px;box-shadow:0 2px 12px rgba(23,53,42,.045)}
.ntm-card-flat{padding:0;overflow:hidden}.ntm-card h2,.ntm-card h3{margin-top:0}
.ntm-stat{min-height:112px}.ntm-stat-title{font-weight:800;color:#315443}.ntm-stat-warn{border-color:#f0cf9c}.ntm-stat-info{border-color:#bed5ee}
.ntm-num{font-size:31px;line-height:1.05;font-weight:800;color:#17633d;margin-bottom:7px}
.ntm-code{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#668073;font-weight:800;margin-bottom:5px}
.ntm-progress,.ntm-mini-progress{height:9px;background:#edf2ef;border-radius:999px;overflow:hidden;margin:10px 0}
.ntm-progress i,.ntm-mini-progress i{display:block;height:100%;background:linear-gradient(90deg,#2d8a56,#4ba56e);border-radius:999px}
.ntm-mini-progress{width:110px;height:7px;margin:2px 0 5px}
.ntm-meta,.ntm-small{font-size:13px;color:#66796f;margin-top:5px}
.ntm-table-wrap{overflow:auto;background:#fff}.ntm-table{width:100%;border-collapse:collapse;min-width:980px}
.ntm-table th{background:#f1f7f3;text-align:left;padding:11px;border-bottom:1px solid #d9e6de;color:#274c3a;position:sticky;top:0;z-index:1;font-size:13px}
.ntm-table td{padding:11px;border-bottom:1px solid #edf2ef;vertical-align:top}.ntm-table tr:hover td{background:#fbfdfc}
.ntm-badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}
.ntm-badge.success{background:#e2f5e8;color:#176436}.ntm-badge.warning{background:#fff4ce;color:#7b5900}.ntm-badge.danger{background:#fde8e8;color:#a32323}
.ntm-badge.risk{background:#ffe9d8;color:#9a4c00}.ntm-badge.info{background:#e5f0ff;color:#24568d}.ntm-badge.muted{background:#edf0ee;color:#66716b}.ntm-badge.neutral{background:#f0f1f4;color:#5b6068}
.ntm-alert{padding:14px 16px;border-radius:12px;margin-bottom:14px;border:1px solid}.ntm-alert-success{background:#e9f8ee;border-color:#bfe4cb;color:#155d30}
.ntm-alert-warning{background:#fff8dd;border-color:#efd983;color:#725600}.ntm-alert-danger{background:#fff0f0;border-color:#efb6b6;color:#8c2222}.ntm-alert-info{background:#eef5ff;border-color:#bfd3ee;color:#254f7b}
.ntm-btn{display:inline-block;padding:8px 12px;border:1px solid #b8cabe;background:#fff;color:#174b34;border-radius:8px;text-decoration:none;font-weight:800;cursor:pointer}
.ntm-btn:hover{text-decoration:none;filter:brightness(.98)}.ntm-btn-primary{background:#17633d;border-color:#17633d;color:#fff}.ntm-btn-warning{background:#fff3d4;border-color:#e4c678;color:#795700}.ntm-btn-sm{padding:5px 8px;font-size:12px}
.ntm-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}.ntm-form label{display:block;font-weight:700;margin-bottom:12px}
.ntm-form input,.ntm-form select,.ntm-form textarea{display:block;width:100%;margin-top:6px;padding:9px 10px;border:1px solid #c9d8cf;border-radius:8px;background:#fff}
.ntm-check{display:flex!important;align-items:center;gap:8px}.ntm-check input{width:auto!important;margin:0!important}
.ntm-user-strip{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 14px;border-radius:12px;background:#fff;border:1px solid #dce8e0;margin-bottom:12px}
.ntm-subnav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.ntm-subnav a{padding:9px 13px;border:1px solid #d4e2d9;border-radius:9px;color:#315443;text-decoration:none;background:#fff;font-weight:700}
.ntm-subnav a.active{background:#17633d;color:#fff;border-color:#17633d}
.ntm-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:22px 0 10px}.ntm-section-head h2{margin:0 0 2px;color:#173d2b}.ntm-section-head p{margin:0;color:#718178}
.ntm-pill{padding:7px 10px;border-radius:999px;background:#edf5ef;color:#315b43;font-size:12px;font-weight:800;white-space:nowrap}
.ntm-criteria-dashboard{grid-template-columns:repeat(2,minmax(0,1fr))}
.ntm-criterion-card{display:block;text-decoration:none;color:inherit;transition:transform .12s ease,box-shadow .12s ease}.ntm-criterion-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(23,53,42,.08);text-decoration:none;color:inherit}
.ntm-criterion-top{display:flex;justify-content:space-between;gap:12px}.ntm-criterion-top h3{font-size:16px;line-height:1.35;margin:0}
.ntm-circle{min-width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#eef7f1;color:#17633d;font-weight:900;font-size:13px;border:5px solid #d9eddf}
.ntm-circle-lg{min-width:76px;height:76px;font-size:16px}
.ntm-criterion-meta{display:flex;gap:13px;flex-wrap:wrap;font-size:12px;color:#65776d}.ntm-border-danger{border-left:4px solid #d76868}.ntm-border-warning{border-left:4px solid #d5a23c}.ntm-border-success{border-left:4px solid #4c9a68}.ntm-border-info{border-left:4px solid #77a7cf}
.ntm-priority-list{padding:6px 14px}.ntm-priority-item{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 2px;border-bottom:1px solid #edf2ef}.ntm-priority-item:last-child{border-bottom:0}
.ntm-priority-code{width:40px;height:40px;border-radius:10px;background:#edf5ef;display:flex;align-items:center;justify-content:center;font-weight:900;color:#286344}.ntm-priority-content b{font-size:13px;line-height:1.35;display:block}
.ntm-empty,.ntm-empty-state{text-align:center;color:#76847d;padding:26px!important}.ntm-empty-state{display:flex;flex-direction:column;gap:4px}
.ntm-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ntm-list>div{padding:11px;background:#f6faf7;border-radius:10px}.ntm-list b{display:block;font-size:20px;color:#17633d}.ntm-list span{font-size:12px;color:#687a70}
.ntm-list-compact{grid-template-columns:1fr}.ntm-list-compact>div{display:flex;justify-content:space-between;align-items:center}.ntm-list-compact b{font-size:16px}.ntm-list-compact span{text-align:right}
.ntm-step{display:flex;align-items:center;gap:10px;padding:8px 0}.ntm-step b{width:29px;height:29px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#17633d;color:#fff}
.ntm-target{padding:12px;background:#f5faf6;border-radius:10px;color:#264b39}.ntm-review-box{border-left:4px solid #7ca8cf}.ntm-public-box{display:flex;justify-content:space-between;align-items:center;gap:15px;border-left:4px solid #4c9a68}
.ntm-kpi-row{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px}.ntm-kpi-form{padding-left:18px;border-left:1px solid #e3ece6}.ntm-kpi-info h3{margin-bottom:4px}
.ntm-inline-form{display:inline}.ntm-link-btn{border:0;background:transparent;padding:2px 3px;color:#24568d;font-weight:700;cursor:pointer}.ntm-link-success{color:#176436}.ntm-link-warn{color:#9a4c00}
.ntm-task-summary h3{margin-bottom:10px}
@media(max-width:1100px){.ntm-grid-main{grid-template-columns:1fr}.ntm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ntm-kpi-row{grid-template-columns:1fr}.ntm-kpi-form{border-left:0;padding-left:0;border-top:1px solid #e3ece6;padding-top:14px}}
@media(max-width:760px){.ntm-kpis,.ntm-criteria-dashboard,.ntm-grid-2,.ntm-grid-3{grid-template-columns:1fr}.ntm-hero,.ntm-user-strip,.ntm-public-box{display:block}.ntm-live{display:inline-block;margin-top:12px}.ntm-table{min-width:820px}.ntm-list{grid-template-columns:1fr}.ntm-section-head{display:block}.ntm-pill{display:inline-block;margin-top:8px}}


/* v1.2 - dossier/checklist/gap/report */
.ntm-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ntm-checklist{display:grid;gap:9px}.ntm-check-item{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:start;padding:12px;border:1px solid #e0e9e3;border-radius:10px;background:#fff}.ntm-check-item.done{border-left:4px solid #4c9a68}.ntm-check-item.missing{border-left:4px solid #d76868}.ntm-check-icon{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#eef4f0;font-weight:900}.ntm-check-item.done .ntm-check-icon{background:#e2f5e8;color:#176436}.ntm-check-item.missing .ntm-check-icon{background:#fde8e8;color:#a32323}
.ntm-fieldset{padding:12px;border:1px solid #d9e6de;border-radius:10px;margin-bottom:12px;background:#fafcfb}.ntm-checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:9px}.ntm-checkbox-grid .ntm-check{font-weight:500;margin:0;padding:6px;background:#fff;border-radius:7px}
.ntm-gap-item{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(220px,.5fr);gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid #edf2ef}.ntm-gap-item:last-of-type{border-bottom:0}.ntm-add-gap{margin-top:12px}.ntm-danger-text{color:#b52b2b}.ntm-details summary{cursor:pointer;color:#24568d;font-weight:700}.ntm-mini-form{margin-top:8px;padding:10px;background:#f7faf8;border-radius:8px}.ntm-mini-form label{margin-bottom:7px}.ntm-mini-form input,.ntm-mini-form select,.ntm-mini-form textarea{padding:6px 8px}
.ntm-task-link{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid #edf2ef}.ntm-task-link:last-child{border-bottom:0}.ntm-task-link-actions{text-align:right}.ntm-dossier-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 16px}.ntm-dossier-toolbar .ntm-actions{margin:0}.ntm-compact-list{margin:0;padding-left:17px}.ntm-compact-list li{margin:2px 0}.ntm-card-flat .ntm-table-wrap>table{min-width:1100px}
@media(max-width:900px){.ntm-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.ntm-checkbox-grid{grid-template-columns:1fr}.ntm-gap-item{grid-template-columns:1fr}.ntm-dossier-toolbar{display:block}}
@media(max-width:600px){.ntm-grid-4{grid-template-columns:1fr}}


/* v1.3 - legal, period history, unit/village dashboard, frozen dossier */
.ntm-manager-box{margin-top:14px;padding:12px;border:1px dashed #a7c6b2;border-radius:10px;background:#f7fbf8}.ntm-check-admin{border-left:3px solid #c8dccf;margin-bottom:9px}.ntm-add-check{border-left-color:#4c9a68}.ntm-lock-check{align-self:center;margin-top:24px!important}
.ntm-legal-item{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #edf2ef}.ntm-legal-item:last-child{border-bottom:0}.ntm-legal-item .ntm-actions{margin:0;white-space:nowrap}
.ntm-timeline{position:relative;padding-left:10px}.ntm-timeline-item{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;padding:8px 0;border-bottom:1px solid #eef3ef}.ntm-time-dot{width:10px;height:10px;border-radius:50%;background:#3e9360;margin-top:6px;box-shadow:0 0 0 4px #e7f2eb}
.ntm-unit-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ntm-unit-card h3{font-size:16px;margin:0}.ntm-unit-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:10px}.ntm-unit-metrics span{padding:7px 8px;background:#f6faf7;border-radius:8px;font-size:12px}.ntm-unit-metrics b{font-size:15px;color:#17633d;margin-right:3px}
.ntm-village-tabs{display:flex;flex-wrap:wrap;gap:8px}.ntm-village-tabs a{padding:8px 10px;border-radius:8px;background:#f3f7f4;border:1px solid #dae6de;color:#28503b;text-decoration:none;font-weight:700}.ntm-village-tabs a.active{background:#17633d;color:#fff;border-color:#17633d}.ntm-village-tabs small{opacity:.75}
.ntm-snapshot-hash{border-left:4px solid #4c9a68}.ntm-snapshot-hash code{display:block;margin:8px 0;padding:10px;background:#f4f7f5;border-radius:8px;word-break:break-all}.ntm-hash-short{font-size:11px}.ntm-card.ntm-alert-info{background:#eef5ff;border-color:#bfd3ee;color:#254f7b}
@media(max-width:1100px){.ntm-unit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.ntm-unit-grid{grid-template-columns:1fr}.ntm-legal-item{display:block}.ntm-legal-item .ntm-actions{margin-top:8px}}


/* v1.3.01 - 28 thôn/bản và đầu mối nội bộ */
.ntm-village-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:16px}
.ntm-village-card{display:block;text-decoration:none;color:inherit;min-height:170px}
.ntm-village-card:hover{text-decoration:none;color:inherit;box-shadow:0 7px 20px rgba(23,53,42,.09)}
.ntm-village-card.active{border:2px solid #17633d;background:#fbfefc}
.ntm-village-card-top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.ntm-village-card h3{margin:0;font-size:16px;line-height:1.3}
.ntm-village-metrics{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:#61766b}
.ntm-village-metrics b{color:#17633d}
.ntm-village-contact-box{border-left:4px solid #2f6f9f}
.ntm-contact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.ntm-contact-item{padding:12px;border:1px solid #dfe9e2;border-radius:10px;background:#fbfdfc}
.ntm-contact-item.primary{border-color:#83b69a;background:#f1f9f4}
.ntm-contact-phone{font-weight:800;color:#244f3a;margin-top:7px}
.ntm-contact-edit{margin-top:8px}
.ntm-form-pad{padding-top:12px}
@media(max-width:1200px){.ntm-village-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ntm-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.ntm-village-grid,.ntm-contact-grid{grid-template-columns:1fr}}
