*{box-sizing:border-box}
:root{
    --bg:#f4f6f8;
    --surface:#fff;
    --text:#17212b;
    --muted:#667085;
    --line:#e5e7eb;
    --primary:#163c66;
    --primary-dark:#0f2d4f;
    --danger:#b42318;
    --danger-soft:#fef3f2;
    --warning:#b54708;
    --warning-soft:#fffaeb;
    --type-sm:11px;
    --type-md:13px;
    --type-lg:13px;
}
html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:var(--bg)}
a{color:inherit;text-decoration:none}
button,input,select,textarea,option{font-family:Arial,Helvetica,sans-serif;font-size:inherit}
button,input{font:inherit}
.app-shell{min-height:100vh;display:grid;grid-template-columns:245px 1fr}
.sidebar{background:#102f50;color:#fff;padding:22px 16px}
.brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px}
.brand-mark{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#fff;color:#102f50;font-weight:800}
.brand strong,.brand small{display:block}
.brand small{opacity:.7;margin-top:3px}
.nav{display:grid;gap:7px}
.nav a,.nav-disabled{padding:12px 14px;border-radius:9px}
.nav a:hover,.nav a.active{background:rgba(255,255,255,.13)}
.nav-disabled{display:flex;justify-content:space-between;opacity:.5}
.nav-disabled small{font-size:11px}
.main{min-width:0}
.topbar{height:84px;padding:16px 30px;background:#fff;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.topbar h1{font-size:13px;margin:0 0 5px}
.topbar p{margin:0;color:var(--muted);font-size:13px}
.user-box{display:flex;align-items:center;gap:18px}
.user-box strong,.user-box small{display:block;text-align:right}
.user-box small{color:var(--muted);margin-top:3px}
.content{padding:26px 30px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-bottom:18px}
.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px}
.stat-card span{color:var(--muted);font-size:13px}
.stat-card strong{display:block;font-size:13px;margin-top:10px}
.stat-card.danger{border-left:4px solid var(--danger)}
.stat-card.warning{border-left:4px solid var(--warning)}
.grid-2{display:grid;grid-template-columns:1.25fr .75fr;gap:18px;margin-bottom:18px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:18px}
.panel-head{display:flex;justify-content:space-between;margin-bottom:14px}
.panel h2{font-size:13px;margin:0 0 5px}
.panel p{margin:0;color:var(--muted);font-size:13px}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:12px 10px;border-top:1px solid var(--line);vertical-align:top}
th{font-size:11px;color:var(--muted);font-weight:600}
td{font-size:13px}
td small{display:block;color:var(--muted);margin-top:4px}
.badge{display:inline-block;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:700}
.badge-danger{background:var(--danger-soft);color:var(--danger)}
.timeline{display:grid;gap:13px}
.timeline-item{display:grid;grid-template-columns:82px 1fr;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.timeline-date{font-weight:700;font-size:11px}
.timeline-item strong{font-size:13px}
.timeline-item p{margin-top:4px}
.empty-state{padding:28px;text-align:center;color:var(--muted);background:#f8fafc;border-radius:10px}
.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.check-grid div{padding:12px;background:#f8fafc;border-radius:8px;font-size:13px}
.btn{border:0;border-radius:8px;padding:9px 13px;cursor:pointer}
.btn-primary{background:var(--primary);color:#fff}
.btn-primary:hover{background:var(--primary-dark)}
.btn-light{background:#eef2f6;color:#344054}
.btn-danger{background:#fee4e2;color:#b42318}
.btn-danger:hover{background:#fecdca;color:#912018}
.btn-block{width:100%;padding:12px}
.login-page{min-height:100vh;display:grid;place-items:center;background:#eef2f6;padding:24px}
.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px;box-shadow:0 18px 50px rgba(16,24,40,.08)}
.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.login-brand h1{font-size:13px;margin:0 0 4px}
.login-brand p{margin:0;color:var(--muted);font-size:13px}
.login-card label{display:block;font-size:13px;font-weight:600;margin:14px 0 7px}
.login-card input{width:100%;padding:12px;border:1px solid #d0d5dd;border-radius:8px;outline:none}
.login-card input:focus{border-color:#6b8daf;box-shadow:0 0 0 3px rgba(22,60,102,.09)}
.alert{padding:11px 12px;border-radius:8px;font-size:13px;margin-bottom:12px}
.alert-danger{background:var(--danger-soft);color:var(--danger)}
.login-foot{text-align:center;color:var(--muted);font-size:11px;margin:18px 0 0}
@media(max-width:1050px){
    .cards{grid-template-columns:repeat(2,1fr)}
    .grid-2{grid-template-columns:1fr}
}
@media(max-width:760px){
    .app-shell{grid-template-columns:1fr}
    .sidebar{display:none}
    .topbar{height:auto;padding:16px;align-items:flex-start}
    .content{padding:16px}
    .cards{grid-template-columns:1fr}
    .check-grid{grid-template-columns:1fr}
    .user-box{gap:8px}
    .user-box div{display:none}
}


/* ==========================================================
   STEP 7 - PROJECT MANAGEMENT
   ========================================================== */
.alert-success{background:#ecfdf3;color:#027a48}
.global-alert{margin-bottom:16px}
.btn-secondary{background:#e9eef4;color:#344054}
.btn-small{padding:6px 9px;font-size:11px}
.page-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}
.page-note{margin:5px 0 0;color:var(--muted);font-size:13px;max-width:800px}
.back-link{display:inline-block;color:var(--primary);font-size:13px;font-weight:600;margin-bottom:8px}
.cards-compact .stat-card{padding:16px 18px}
.cards-compact .stat-card strong{font-size:13px}
.filter-bar{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:18px;display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:10px;align-items:end}
.filter-bar label,.form-field label{display:block;font-size:11px;font-weight:700;color:#344054;margin-bottom:6px}
.filter-bar input,.filter-bar select,.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid #d0d5dd;border-radius:8px;padding:10px;background:#fff;color:var(--text);outline:none}
.filter-bar input:focus,.filter-bar select:focus,.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#6b8daf;box-shadow:0 0 0 3px rgba(22,60,102,.08)}
.form-field label span{color:var(--danger)}
.table-title{font-weight:700;color:#163c66}
.project-name-line{display:flex;gap:8px}
.tree-mark{color:#98a2b3;font-size:13px;line-height:1.1}
.component-row td:first-child{padding-left:22px}
.actions-cell{white-space:nowrap}
.badge-success{background:#ecfdf3;color:#027a48}
.badge-warning{background:#fffaeb;color:#b54708}
.badge-info{background:#eff8ff;color:#175cd3}
.badge-neutral{background:#f2f4f7;color:#475467}
.text-danger{color:var(--danger)!important}
.pagination{display:flex;gap:6px;justify-content:flex-end;margin-top:16px}
.pagination a{min-width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;font-size:13px;background:#fff}
.pagination a.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.project-form{display:grid;gap:18px}
.form-section{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px}
.form-section-muted{background:#f8fafc}
.section-title{margin-bottom:16px}
.section-title h2{margin:0 0 4px;font-size:13px}
.section-title p{margin:0;color:var(--muted);font-size:13px}
.form-grid{display:grid;gap:14px}
.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.form-span-2{grid-column:span 2}
.form-field textarea{resize:vertical}
.field-error{font-size:11px;color:var(--danger);margin-top:5px}
.form-actions{display:flex;justify-content:flex-end;gap:8px;padding-bottom:18px}
.check-line{display:flex;gap:10px;align-items:flex-start;font-size:13px}
.check-line input{width:auto;margin-top:3px}
.check-line span{display:block}
.check-line small{display:block;color:var(--muted);font-weight:400;margin-top:3px}
.check-line.compact{align-self:end;padding:10px 0}
.project-heading h2{font-size:13px;margin:3px 0 5px}
.project-heading p{color:var(--muted);margin:0}
.eyebrow{font-size:11px;font-weight:800;color:var(--primary);text-transform:uppercase;letter-spacing:.04em}
.project-status-strip{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 15px;margin-bottom:18px;font-size:13px}
.project-status-strip > span:not(.badge){padding-left:12px;border-left:1px solid var(--line)}
.project-detail-grid{grid-template-columns:1.1fr .9fr}
.detail-list{margin:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.detail-list>div{padding:12px 8px;border-bottom:1px solid var(--line)}
.detail-list dt{font-size:11px;color:var(--muted);margin-bottom:5px}
.detail-list dd{margin:0;font-size:13px;font-weight:600}
.description-box{margin-top:16px;padding:14px;background:#f8fafc;border-radius:10px;font-size:13px}
.description-box p{margin:8px 0 0;color:var(--text);line-height:1.6}
.mini-list{display:grid;gap:8px}
.mini-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--line);border-radius:10px}
.mini-list strong,.mini-list small{display:block}
.mini-list small{color:var(--muted);margin-top:4px}
.inline-create{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}
.inline-create summary,.history-box summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--primary)}
.inline-form{display:grid;grid-template-columns:1.3fr 1fr .8fr .7fr;gap:12px;margin-top:14px;padding:14px;background:#f8fafc;border-radius:10px;align-items:end}
.history-box{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
@media(max-width:1200px){.filter-bar{grid-template-columns:2fr repeat(2,1fr)}.filter-bar .btn{width:100%}.inline-form{grid-template-columns:1fr 1fr}.project-detail-grid{grid-template-columns:1fr}}
@media(max-width:760px){.page-actions{display:block}.page-actions>.btn{margin-top:12px}.filter-bar{grid-template-columns:1fr}.form-grid-2{grid-template-columns:1fr}.form-span-2{grid-column:auto}.detail-list{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr}.project-status-strip>span:not(.badge){border-left:0;padding-left:0}.project-table th:nth-child(4),.project-table td:nth-child(4),.project-table th:nth-child(5),.project-table td:nth-child(5){display:none}}

/* ==========================================================
   STEP 8 - TASK MANAGEMENT
   ========================================================== */
.alert-warning{background:var(--warning-soft);color:var(--warning)}
.inline-link{color:var(--primary);font-size:13px;font-weight:700}
.action-group{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.field-help{display:block;color:var(--muted);font-size:11px;margin-top:6px;line-height:1.45}
.task-filter-bar{grid-template-columns:1.7fr 1.5fr repeat(4,1fr) auto}
.task-table td{vertical-align:middle}
.task-table small .badge{margin-top:6px}
.row-overdue{background:#fffafa}
.task-status-strip{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 15px;margin-bottom:18px}
.task-detail-grid{grid-template-columns:1.1fr .9fr}
.task-description{background:#f8fafc;border-radius:10px;padding:15px;line-height:1.65;font-size:13px;margin-bottom:15px}
.task-description.muted{color:var(--muted)}
.task-detail-list{grid-template-columns:1fr 1fr}
.latest-update-box{display:grid;gap:8px}
.latest-update-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}
.latest-update-box p{color:var(--text);line-height:1.6;margin:0 0 8px}
.assignment-list{display:grid;gap:9px}
.assignment-item{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.assignment-title{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.assignment-item small{display:block;color:var(--muted);margin-top:5px}
.muted-item{background:#f8fafc;opacity:.78}
.task-assignment-form{grid-template-columns:1.4fr .8fr .8fr 1.1fr auto}
.update-create{margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.update-create summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--primary);margin-bottom:14px}
.task-update-form{background:#f8fafc;border-radius:12px;padding:16px;margin-top:12px}
.info-note{background:#eff8ff;color:#175cd3;border-radius:8px;padding:11px 12px;font-size:13px;line-height:1.45}
.compact-actions{padding:12px 0 0}
.task-timeline{position:relative;margin-top:8px}
.task-timeline:before{content:"";position:absolute;left:10px;top:6px;bottom:6px;width:2px;background:#e4e7ec}
.task-timeline-item{position:relative;display:grid;grid-template-columns:22px 1fr;gap:12px;padding-bottom:18px}
.task-timeline-marker{width:12px;height:12px;border-radius:50%;background:#175cd3;border:3px solid #d1e9ff;margin:5px 0 0 5px;z-index:1}
.pending-update .task-timeline-marker{background:#b54708;border-color:#fef0c7}
.task-timeline-content{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff}
.pending-update .task-timeline-content{background:#fffcf5;border-color:#fedf89}
.timeline-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:5px}
.timeline-source{font-size:11px;color:var(--muted);margin-bottom:9px}
.task-timeline-content p{margin:0 0 9px;line-height:1.6;font-size:13px}
.next-action{background:#f8fafc;border-radius:8px;padding:10px;font-size:13px;line-height:1.5;margin-top:8px}
.source-note{display:block;color:var(--muted);margin-top:9px}
.verify-form{margin-top:12px}
.task-form select[multiple]{min-height:160px}
@media(max-width:1300px){.task-filter-bar{grid-template-columns:1.5fr 1.4fr repeat(2,1fr)}.task-assignment-form{grid-template-columns:1fr 1fr}.task-detail-grid{grid-template-columns:1fr}}
@media(max-width:760px){.task-filter-bar{grid-template-columns:1fr}.task-detail-list{grid-template-columns:1fr}.task-assignment-form{grid-template-columns:1fr}.assignment-item{align-items:flex-start;flex-direction:column}.action-group{margin-top:12px}.task-table th:nth-child(3),.task-table td:nth-child(3),.task-table th:nth-child(6),.task-table td:nth-child(6){display:none}}

.row-late-completed{background:#fffaf0}


/* Step 9 - Issues */
.issue-filter-bar{grid-template-columns:1.4fr 1.25fr repeat(7,minmax(135px,1fr));align-items:end}
.issue-table td{min-width:120px}
.issue-table td:first-child{min-width:260px}
.issue-table td:nth-child(2){min-width:240px}
.issue-form textarea{resize:vertical}
@media(max-width:1350px){
    .issue-filter-bar{grid-template-columns:repeat(4,minmax(150px,1fr))}
}
@media(max-width:900px){
    .issue-filter-bar{grid-template-columns:repeat(2,minmax(140px,1fr))}
}
@media(max-width:560px){
    .issue-filter-bar{grid-template-columns:1fr}
}


/* ==========================================================
   STEP 10 - PROJECT PROGRESS & MILESTONES
   ========================================================== */
.progress-filter-bar{grid-template-columns:1.6fr repeat(4,minmax(150px,1fr)) auto}
.progress-table td{vertical-align:middle}
.progress-table td:first-child{min-width:260px}
.progress-table td:nth-child(2),.progress-table td:nth-child(3){min-width:180px}
.milestone-form textarea{resize:vertical}
.milestone-timeline{display:grid;gap:0;margin-top:4px}
.milestone-item{display:grid;grid-template-columns:28px 1fr;gap:10px;position:relative;padding-bottom:14px}
.milestone-line{position:relative;display:flex;justify-content:center}
.milestone-line:after{content:"";position:absolute;top:16px;bottom:-14px;width:2px;background:#e4e7ec}
.milestone-item:last-child .milestone-line:after{display:none}
.milestone-dot{position:relative;z-index:1;width:14px;height:14px;border-radius:50%;margin-top:13px;border:3px solid #fff;box-shadow:0 0 0 2px #d0d5dd;background:#98a2b3}
.milestone-dot.badge-success{background:#12b76a;box-shadow:0 0 0 2px #a6f4c5}
.milestone-dot.badge-info{background:#2e90fa;box-shadow:0 0 0 2px #b2ddff}
.milestone-dot.badge-neutral{background:#98a2b3;box-shadow:0 0 0 2px #e4e7ec}
.milestone-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px}
.milestone-overdue .milestone-card{background:#fffafa;border-color:#fecdca}
.milestone-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}
.milestone-head strong{font-size:13px}
.milestone-badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.milestone-dates{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:10px}
.milestone-card p{margin:10px 0 0;line-height:1.55;font-size:13px}
.milestone-card>small{display:block;color:var(--muted);margin-top:8px}
.milestone-actions{margin-top:10px}
@media(max-width:1200px){.progress-filter-bar{grid-template-columns:repeat(3,minmax(150px,1fr))}}
@media(max-width:760px){
    .progress-filter-bar{grid-template-columns:1fr}
    .milestone-head{display:block}
    .milestone-badges{justify-content:flex-start;margin-top:8px}
    .milestone-dates{display:grid;gap:6px}
}


/* ==========================================================
   STEP 11 - MEETINGS
   ========================================================== */
.meeting-filter-bar{grid-template-columns:1.7fr 1fr 1fr 1fr auto}
.meeting-table td{vertical-align:middle}
.meeting-table td:first-child{min-width:280px}
.meeting-form textarea{resize:vertical}
.meeting-task-add{margin:0 0 18px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.meeting-task-add>summary{cursor:pointer;font-weight:700;padding:13px 15px}
.meeting-task-add>form{padding:0 15px 15px}
.meeting-task-table td:first-child{min-width:145px}
.meeting-task-table td:nth-child(2){min-width:290px}
.meeting-task-table td:nth-child(3){min-width:170px}
.meeting-task-table td:nth-child(5){min-width:160px}
.meeting-history{display:grid;gap:9px}
.meeting-history-item{display:grid;grid-template-columns:90px 1fr auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:#fff}
.meeting-history-item:hover{background:#f8fafc}
.meeting-history-date{font-weight:700;font-size:11px}
.meeting-history-item strong{font-size:13px}
.meeting-history-item small{display:block;color:var(--muted);margin-top:4px}
.meeting-dashboard-list{display:grid;gap:8px}
.meeting-dashboard-item{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.meeting-dashboard-item:hover{background:#f8fafc}
.meeting-dashboard-date{text-align:center;border-right:1px solid var(--line);padding-right:10px}
.meeting-dashboard-date strong,.meeting-dashboard-date small{display:block}
.meeting-dashboard-date strong{font-size:13px}
.meeting-dashboard-date small{color:var(--muted);margin-top:3px}
.meeting-dashboard-item>div:last-child>strong{font-size:13px}
.meeting-dashboard-item>div:last-child>small{display:block;color:var(--muted);margin-top:4px}
@media(max-width:1050px){
    .meeting-filter-bar{grid-template-columns:repeat(2,minmax(150px,1fr))}
}
@media(max-width:650px){
    .meeting-filter-bar{grid-template-columns:1fr}
    .meeting-history-item{grid-template-columns:1fr}
}


/* ==========================================================
   STEP 12 - DOCUMENTS
   ========================================================== */
.document-filter-bar{grid-template-columns:1.7fr 1fr 1.3fr 1fr 1fr 1fr auto}
.document-table td{vertical-align:middle}
.document-table td:first-child{min-width:300px}
.document-table td:nth-child(3){min-width:180px}
.document-table td:nth-child(4){min-width:180px}
.document-form textarea{resize:vertical}
.form-divider{border:0;border-top:1px solid var(--line);margin:24px 0}
.form-section-title{font-size:13px;margin:0 0 14px}
.file-summary{padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:#f8fafc}
.document-file-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.document-link-add{margin-bottom:18px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.document-link-add>summary{cursor:pointer;font-weight:700;padding:13px 15px}
.document-link-add>form{padding:0 15px 15px}
.document-link-list{display:grid;gap:9px}
.document-link-item{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.document-link-item>div:first-child{min-width:0}
.document-link-item .table-title{display:inline-block;margin-left:7px}
.document-link-item small{display:block;color:var(--muted);margin-top:5px}
.document-mini-list{display:grid;gap:8px}
.document-mini-item{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:11px 13px}
.document-mini-item>div:first-child{min-width:0}
.document-mini-item div>div{font-size:13px;margin-top:3px}
.document-mini-item small{display:block;color:var(--muted);margin-top:4px}
.document-mini-actions{flex:0 0 auto}
.table-actions{display:flex;gap:6px;flex-wrap:wrap}
.row-inactive{opacity:.62;background:#f8fafc}
@media(max-width:1250px){
    .document-filter-bar{grid-template-columns:repeat(3,minmax(150px,1fr))}
}
@media(max-width:760px){
    .document-filter-bar{grid-template-columns:1fr}
    .document-link-item,.document-mini-item{display:block}
    .document-link-item form,.document-mini-actions{margin-top:10px}
}


/* ==========================================================
   STEP 13 - ORGANIZATIONS & USERS
   ========================================================== */
.nav-section{font-size:11px;text-transform:uppercase;letter-spacing:.08em;opacity:.55;padding:18px 14px 5px;font-weight:700}
.organization-filter-bar{grid-template-columns:1.8fr 1.2fr 1fr auto}
.user-filter-bar{grid-template-columns:1.7fr 1.2fr 1.6fr 1fr auto}
.organization-table td,.user-table td{vertical-align:middle}
.organization-table td:first-child,.user-table td:first-child{min-width:260px}
.organization-form textarea,.user-form textarea{resize:vertical}
.password-page-wrap{max-width:700px;margin:0 auto}
.password-panel{padding:26px}
.admin-quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.admin-quick-grid a{display:block;border:1px solid var(--line);border-radius:12px;padding:16px;background:#f8fafc}
.admin-quick-grid a:hover{background:#f1f5f9}
.admin-quick-grid strong,.admin-quick-grid small{display:block}
.admin-quick-grid small{color:var(--muted);margin-top:5px}
@media(max-width:1000px){
    .organization-filter-bar,.user-filter-bar{grid-template-columns:repeat(2,minmax(150px,1fr))}
}
@media(max-width:650px){
    .organization-filter-bar,.user-filter-bar,.admin-quick-grid{grid-template-columns:1fr}
}


/* ==========================================================
   STEP 14 - AUDIT LOGS
   ========================================================== */
.audit-filter-bar{grid-template-columns:1.7fr 1.15fr 1.25fr 1.45fr 1fr 1fr 1.1fr auto}
.audit-table td{vertical-align:middle}
.audit-table td:first-child{min-width:115px}
.audit-table td:nth-child(2){min-width:180px}
.audit-table td:nth-child(4){min-width:180px}
.audit-table td:nth-child(5){min-width:260px}
.audit-table small{display:block;color:var(--muted);margin-top:4px}
.row-security-alert{background:#fff5f5}
.audit-diff-table td{vertical-align:top}
.audit-diff-table td:first-child{min-width:180px;width:22%}
.audit-diff-table td:nth-child(2),.audit-diff-table td:nth-child(3){width:39%}
.audit-diff-table pre{white-space:pre-wrap;word-break:break-word;margin:0;font:inherit;font-size:11px;line-height:1.5;background:transparent}
.audit-diff-table td:first-child small{display:block;color:var(--muted);margin-top:4px}
.audit-raw-data>summary{cursor:pointer;font-weight:700}
.audit-raw-data .grid-2{margin-top:14px}
.audit-raw-data pre{white-space:pre-wrap;word-break:break-word;max-height:420px;overflow:auto;background:#0f172a;color:#e2e8f0;padding:14px;border-radius:9px;font-size:11px}
.audit-mini-list{display:grid;gap:8px}
.audit-mini-item{display:grid;grid-template-columns:92px 1fr auto;gap:13px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:11px 13px;background:#fff}
.audit-mini-time strong,.audit-mini-time small{display:block}
.audit-mini-time small,.audit-mini-main small{color:var(--muted);margin-top:3px}
.audit-mini-main>strong{display:block;font-size:13px;margin-top:5px}
.audit-mini-main .badge{margin-right:5px}
.audit-immutability-note{margin-top:16px}
.audit-dashboard-list{display:grid;gap:8px}
.audit-dashboard-item{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.audit-dashboard-item:hover{background:#f8fafc}
.audit-dashboard-item.security-alert{border-color:#fecdca;background:#fffafa}
.audit-dashboard-item>div>strong{font-size:13px;margin-left:7px}
.audit-dashboard-item>div>small{display:block;color:var(--muted);margin-top:5px}
.admin-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1450px){.audit-filter-bar{grid-template-columns:repeat(4,minmax(150px,1fr))}}
@media(max-width:900px){.audit-filter-bar{grid-template-columns:repeat(2,minmax(150px,1fr));}.audit-mini-item{grid-template-columns:1fr auto}.audit-mini-time{display:flex;gap:8px}}
@media(max-width:650px){.audit-filter-bar{grid-template-columns:1fr}.audit-mini-item{grid-template-columns:1fr}.admin-quick-grid{grid-template-columns:1fr}}

/* ==========================================================
   STEP 15 - QUANTITATIVE PROGRESS REPORTS
   ========================================================== */
.report-filter-bar{grid-template-columns:1.5fr 1.5fr 1.2fr 1fr 1fr 1fr auto}
.progress-report-table td{vertical-align:middle}
.progress-report-table td:first-child{min-width:290px}
.progress-report-table td:nth-child(2){min-width:180px}
.report-form-panel{padding:0;overflow:hidden}
.progress-report-form{padding:0}
.report-form-section{padding:22px 24px;border-bottom:1px solid var(--line)}
.report-form-section:last-of-type{border-bottom:0}
.report-section-head{margin-bottom:18px}
.report-section-head>div{display:flex;gap:12px;align-items:flex-start}
.report-section-number{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#eef4ff;color:#175cd3;font-weight:800;flex:0 0 auto}
.report-section-head h3{margin:0;font-size:13px}
.report-section-head p{margin:4px 0 0;color:var(--muted);font-size:11px}
.report-subhead{font-size:13px;margin:18px 0 10px;padding-bottom:7px;border-bottom:1px dashed var(--line)}
.form-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.form-span-3{grid-column:1/-1}
.progress-report-form>.form-actions{padding:18px 24px}
.report-kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.report-kpi-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:15px}
.report-kpi-card>span{display:block;color:var(--muted);font-size:11px}
.report-kpi-card>strong{display:block;font-size:13px;margin:7px 0}
.report-kpi-card>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.report-kpi-card small{color:var(--muted)}
.compact-report-kpis{margin-bottom:18px}
.gpm-report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.gpm-report-group{border:1px solid var(--line);border-radius:10px;padding:14px;background:#fafafa}
.gpm-report-group h3{margin:0 0 10px;font-size:13px}
.verify-report-bar{display:flex;justify-content:space-between;gap:16px;align-items:center;border:1px solid #fec84b;background:#fffaeb;border-radius:12px;padding:14px 16px;margin-bottom:16px}
.verify-report-bar strong,.verify-report-bar small{display:block}
.verify-report-bar small{color:#7a5b00;margin-top:4px}
.row-pending-report{background:#fffcf5}
.report-history-wrap{margin-top:12px}
.report-history-table td{vertical-align:middle}
@media(max-width:1200px){.report-filter-bar{grid-template-columns:repeat(3,minmax(160px,1fr))}}
@media(max-width:900px){.form-grid-3,.report-kpi-grid,.gpm-report-grid{grid-template-columns:1fr}.form-span-3{grid-column:auto}}
@media(max-width:650px){.report-filter-bar{grid-template-columns:1fr}.report-form-section{padding:18px 16px}.progress-report-form>.form-actions{padding:16px}.verify-report-bar{display:block}.verify-report-bar button{margin-top:12px}}


/* STEP 15.1 - compact weekly entry */
.compact-result-panel{padding:0;overflow:hidden}
.weekly-result-form{padding:0}
.report-entry-summary{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:10px;padding:16px 20px;background:#f8fafc;border-bottom:1px solid var(--line)}
.report-entry-summary>div{min-width:0}
.report-entry-summary span,.report-entry-summary strong{display:block}
.report-entry-summary span{font-size:11px;color:var(--muted);margin-bottom:3px}
.report-entry-summary strong{font-size:13px}
.compact-info{margin:14px 20px 0}
.compact-entry-section{padding:18px 20px;border-bottom:1px solid var(--line)}
.compact-entry-section:last-of-type{border-bottom:0}
.compact-entry-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:12px}
.compact-entry-head h3{margin:0;font-size:13px}
.compact-entry-head>div{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.compact-entry-head>div span{font-size:11px;color:var(--muted);background:#f8fafc;border:1px solid var(--line);border-radius:999px;padding:5px 8px}
.compact-entry-row{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(240px,1.2fr);gap:12px;align-items:stretch}
.auto-preview-box{border:1px dashed var(--line);border-radius:10px;background:#fbfdff;padding:12px 14px;display:flex;flex-direction:column;justify-content:center}
.auto-preview-box span,.auto-preview-box small{color:var(--muted);font-size:11px}
.auto-preview-box strong{font-size:13px;margin:4px 0}
.live-field-preview{display:block;margin-top:6px;color:var(--muted)}
.reporting-unlock-panel{border-style:dashed}
.weekly-plan-form .report-form-section{padding:20px 22px}
@media(max-width:850px){
    .report-entry-summary{grid-template-columns:1fr}
    .compact-entry-head{display:block}
    .compact-entry-head>div{justify-content:flex-start;margin-top:8px}
    .compact-entry-row{grid-template-columns:1fr}
}


/* ==========================================================
   STEP 16 - COMMAND DASHBOARD
   ========================================================== */
.command-dashboard-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:18px;
    margin-bottom:18px;
}
.command-dashboard-head h2{
    margin:4px 0 6px;
    font-size:13px;
}
.command-dashboard-head p{
    margin:0;
    color:var(--muted);
    font-size:13px;
}
.command-week-filter{
    display:flex;
    align-items:flex-end;
    gap:8px;
    min-width:255px;
}
.command-week-filter label{
    display:block;
    font-size:11px;
    font-weight:700;
    color:var(--muted);
}
.command-week-filter select{
    width:100%;
    border:1px solid #d0d5dd;
    border-radius:8px;
    padding:9px 10px;
    background:#fff;
}
.command-kpi-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:12px;
    margin-bottom:18px;
}
.command-kpi-card{
    display:block;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:14px 15px;
    min-width:0;
}
.command-kpi-card:hover{
    border-color:#b8c5d3;
}
.command-kpi-card>span,
.command-kpi-card>small{
    display:block;
}
.command-kpi-card>span{
    color:var(--muted);
    font-size:11px;
    font-weight:700;
}
.command-kpi-card>strong{
    display:block;
    margin:6px 0 4px;
    font-size:13px;
}
.command-kpi-card>small{
    color:var(--muted);
    font-size:11px;
    line-height:1.4;
}
.command-kpi-danger{
    background:#fff8f7;
    border-color:#fecdca;
}
.command-kpi-warning{
    background:#fffcf5;
    border-color:#fedf89;
}
.command-section{
    margin-bottom:18px;
}
.command-section-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:10px;
}
.command-section-head h2{
    margin:0 0 4px;
    font-size:13px;
}
.command-section-head p{
    margin:0;
    color:var(--muted);
    font-size:11px;
    line-height:1.5;
    max-width:900px;
}
.weekly-performance-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.weekly-performance-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:15px;
}
.weekly-performance-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
}
.weekly-performance-top span,
.weekly-performance-top strong,
.weekly-performance-top small{
    display:block;
}
.weekly-performance-top>div>span{
    color:var(--muted);
    font-size:11px;
    font-weight:700;
}
.weekly-performance-top strong{
    font-size:13px;
    margin:5px 0;
}
.weekly-performance-top small{
    color:var(--muted);
    font-size:11px;
}
.command-progress-track{
    height:7px;
    border-radius:999px;
    overflow:hidden;
    background:#eef2f6;
}
.command-progress-track>span{
    display:block;
    height:100%;
    border-radius:inherit;
    background:#5b7fa3;
}
.org-weekly-entry-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:10px;
}
.org-weekly-entry-card{
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:14px;
    display:grid;
    gap:10px;
}
.org-weekly-entry-card strong,
.org-weekly-entry-card small{
    display:block;
}
.org-weekly-entry-card small{
    margin-top:4px;
    color:var(--muted);
}
.command-project-table-wrap{
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
}
.command-project-table{
    min-width:1220px;
}
.command-project-table th{
    white-space:nowrap;
}
.command-project-table td{
    vertical-align:top;
    min-width:125px;
}
.command-project-table td:first-child{
    min-width:275px;
}
.command-project-table td:nth-child(5){
    min-width:210px;
}
.command-project-table td:last-child{
    min-width:220px;
}
.command-project-table tr.command-alert-danger td:first-child{
    border-left:4px solid #d92d20;
}
.command-project-table tr.command-alert-warning td:first-child{
    border-left:4px solid #f79009;
}
.command-project-table tr.command-alert-good td:first-child{
    border-left:4px solid #12b76a;
}
.command-row-meta{
    display:flex;
    gap:5px;
    flex-wrap:wrap;
    margin-top:8px;
}
.command-metric strong,
.command-metric small,
.command-metric .badge{
    display:block;
}
.command-metric strong{
    font-size:13px;
}
.command-metric small{
    color:var(--muted);
    margin:4px 0 6px;
}
.command-metric .badge{
    width:max-content;
}
.command-cumulative{
    display:grid;
    grid-template-columns:72px 1fr auto;
    gap:6px;
    align-items:center;
    padding:4px 0;
    border-bottom:1px dashed #eaecf0;
}
.command-cumulative:last-child{
    border-bottom:0;
}
.command-cumulative small{
    color:var(--muted);
    font-size:11px;
}
.command-cumulative strong{
    font-size:11px;
}
.command-cumulative span{
    font-size:11px;
    color:#475467;
}
.command-backlog{
    display:grid;
    gap:6px;
}
.command-backlog a{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    border:1px solid var(--line);
    border-radius:7px;
    padding:6px 7px;
    font-size:11px;
    background:#fff;
}
.command-backlog strong{
    font-size:11px;
}
.command-reasons{
    padding-left:16px;
    margin:8px 0;
    color:#475467;
    font-size:11px;
    line-height:1.45;
}
.missing-plan-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:9px;
}
.missing-plan-grid a{
    background:#fff;
    border:1px solid #fedf89;
    border-radius:10px;
    padding:12px;
}
.missing-plan-grid strong,
.missing-plan-grid span,
.missing-plan-grid small{
    display:block;
}
.missing-plan-grid span{
    font-size:11px;
    margin:4px 0;
}
.missing-plan-grid small{
    color:var(--muted);
}
.command-action-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.command-action-panel{
    margin:0;
}
.command-action-panel .panel-head h2{
    font-size:13px;
}
.command-list{
    display:grid;
    gap:7px;
}
.command-list>a{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    border:1px solid var(--line);
    border-radius:9px;
    padding:10px;
}
.command-list>a:hover{
    background:#f8fafc;
}
.command-list strong,
.command-list small{
    display:block;
}
.command-list strong{
    font-size:11px;
    line-height:1.4;
}
.command-list small{
    color:var(--muted);
    margin-top:4px;
    font-size:11px;
}
.command-list-badges{
    display:grid;
    gap:5px;
    justify-items:end;
}
.unit-attention-table td{
    vertical-align:middle;
}
.unit-attention-table td:first-child{
    min-width:260px;
}
.unit-attention-table td:first-child strong,
.unit-attention-table td:first-child small{
    display:block;
}
.unit-attention-table td:first-child small{
    color:var(--muted);
    margin-top:3px;
}
.command-rule-panel{
    margin-bottom:18px;
}
.command-rule-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.command-rule-grid>div{
    border:1px solid var(--line);
    border-radius:10px;
    padding:12px;
    background:#f8fafc;
}
.command-rule-grid p{
    margin:8px 0 0;
    font-size:11px;
    color:#475467;
    line-height:1.5;
}
@media(max-width:1400px){
    .command-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .command-action-grid{grid-template-columns:1fr}
}
@media(max-width:1000px){
    .command-dashboard-head{align-items:flex-start;flex-direction:column}
    .command-week-filter{width:100%;min-width:0}
    .weekly-performance-grid{grid-template-columns:1fr}
    .command-rule-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
    .command-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .command-section-head{display:block}
    .command-section-head .inline-link{display:inline-block;margin-top:8px}
}
@media(max-width:460px){
    .command-kpi-grid{grid-template-columns:1fr}
}


/* ==========================================================
   STEP 17 - MEETING BRIEFING / PRINT REPORT
   ========================================================== */
.command-head-actions{
    display:flex;
    align-items:flex-end;
    gap:10px;
}
.briefing-toolbar{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:16px;
    margin-bottom:16px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:14px;
}
.briefing-filter-form{
    display:grid;
    grid-template-columns:minmax(320px,1.7fr) minmax(220px,1fr) auto;
    align-items:end;
    gap:10px;
    flex:1;
}
.briefing-filter-form label{
    display:block;
    font-size:11px;
    font-weight:700;
    color:var(--muted);
    margin-bottom:5px;
}
.briefing-filter-form select{
    width:100%;
    border:1px solid #d0d5dd;
    border-radius:8px;
    background:#fff;
    padding:9px 10px;
}
.briefing-toolbar-actions{
    display:flex;
    gap:8px;
    flex:0 0 auto;
}
.briefing-copy-source{
    position:absolute;
    left:-9999px;
    top:-9999px;
    width:1px;
    height:1px;
    opacity:0;
}
.briefing-paper{
    max-width:1050px;
    margin:0 auto;
    background:#fff;
    border:1px solid var(--line);
    border-radius:12px;
    padding:34px 40px 40px;
    box-shadow:0 1px 3px rgba(16,24,40,.04);
    color:#101828;
}
.briefing-document-head{
    text-align:center;
    padding-bottom:22px;
    border-bottom:2px solid #101828;
    margin-bottom:24px;
}
.briefing-org-line{
    font-size:11px;
    font-weight:700;
    letter-spacing:.04em;
    margin-bottom:12px;
}
.briefing-document-head h1{
    font-size:13px;
    margin:0 0 8px;
    letter-spacing:.02em;
}
.briefing-document-head h2{
    font-size:13px;
    margin:0 0 13px;
    font-weight:700;
}
.briefing-meeting-meta{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px 18px;
    font-size:11px;
    color:#344054;
    margin-bottom:10px;
}
.briefing-period{
    font-size:11px;
    color:#475467;
}
.briefing-section{
    margin:0 0 25px;
}
.briefing-section>h3{
    font-size:13px;
    margin:0 0 12px;
    line-height:1.5;
}
.briefing-section h4{
    font-size:11px;
    margin:14px 0 8px;
}
.briefing-number-list{
    margin:0;
    padding-left:22px;
}
.briefing-number-list li{
    margin-bottom:7px;
    font-size:11px;
    line-height:1.6;
    text-align:justify;
}
.briefing-summary-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:9px;
    margin-top:14px;
}
.briefing-summary-grid>div{
    border:1px solid var(--line);
    border-radius:9px;
    padding:11px;
    background:#fafafa;
}
.briefing-summary-grid span,
.briefing-summary-grid strong,
.briefing-summary-grid small{
    display:block;
}
.briefing-summary-grid span{
    color:var(--muted);
    font-size:11px;
}
.briefing-summary-grid strong{
    font-size:13px;
    margin:4px 0 2px;
}
.briefing-summary-grid small{
    color:#475467;
    font-size:11px;
}
.briefing-table{
    width:100%;
    border-collapse:collapse;
    font-size:11px;
}
.briefing-table th,
.briefing-table td{
    border:1px solid #d0d5dd;
    padding:7px 8px;
    vertical-align:top;
    line-height:1.45;
}
.briefing-table th{
    background:#f2f4f7;
    font-weight:700;
    text-align:left;
}
.briefing-table td strong,
.briefing-table td small{
    display:block;
}
.briefing-table td small{
    color:#667085;
    margin-top:3px;
}
.briefing-table td ul{
    margin:5px 0 0;
    padding-left:15px;
}
.briefing-table td li{
    margin-bottom:2px;
}
.briefing-project-table th:first-child{width:24%}
.briefing-project-table th:nth-child(2){width:24%}
.briefing-project-table th:nth-child(3){width:22%}
.briefing-project-table th:nth-child(4){width:12%}
.briefing-project-table th:nth-child(5){width:18%}
.briefing-agenda{
    border-left:3px solid #98a2b3;
    padding:9px 12px;
    background:#f9fafb;
    font-size:11px;
    line-height:1.6;
}
.briefing-subsection{
    margin-top:12px;
    border:1px dashed #d0d5dd;
    padding:10px 12px;
    border-radius:8px;
}
.briefing-subsection ul{
    margin:6px 0 0;
    padding-left:20px;
    font-size:11px;
}
.briefing-empty{
    color:#667085;
    font-size:11px;
    font-style:italic;
}
.briefing-warning-text{
    margin-top:5px;
    font-weight:700;
    color:#b54708;
}
.briefing-danger-text{
    margin-top:4px;
    font-weight:700;
    color:#b42318;
}
.briefing-issue-block{
    border:1px solid #d0d5dd;
    border-radius:8px;
    padding:11px 12px;
    margin-bottom:9px;
    break-inside:avoid;
}
.briefing-issue-title{
    display:flex;
    justify-content:space-between;
    gap:12px;
    font-size:11px;
}
.briefing-issue-title span{
    font-weight:700;
    color:#b42318;
    white-space:nowrap;
}
.briefing-issue-meta{
    color:#667085;
    font-size:11px;
    margin-top:5px;
}
.briefing-issue-block p{
    font-size:11px;
    line-height:1.55;
    margin:8px 0 0;
    text-align:justify;
}
.briefing-conclusion-section{
    border:1px solid #fedf89;
    background:#fffcf5;
    border-radius:9px;
    padding:14px 16px;
}
.briefing-auto-note{
    font-size:11px;
    color:#7a5b00;
    margin-bottom:10px;
}
.briefing-conclusion-list{
    margin:0;
    padding-left:22px;
}
.briefing-conclusion-list li{
    margin-bottom:10px;
}
.briefing-conclusion-list p{
    font-size:11px;
    line-height:1.6;
    margin:0;
    text-align:justify;
}
.briefing-conclusion-list small{
    display:block;
    margin-top:3px;
    color:#667085;
}
.briefing-appendix{
    margin-top:32px;
    padding-top:18px;
    border-top:1px dashed #98a2b3;
}
.briefing-footer-note{
    border-top:1px solid #d0d5dd;
    padding-top:12px;
    margin-top:30px;
}
.briefing-footer-note p{
    margin:0;
    font-size:11px;
    color:#667085;
    line-height:1.5;
    font-style:italic;
}
.copy-success{
    outline:2px solid #12b76a;
}
@media(max-width:1000px){
    .command-head-actions{
        width:100%;
        flex-wrap:wrap;
    }
    .briefing-toolbar{
        align-items:stretch;
        flex-direction:column;
    }
    .briefing-filter-form{
        grid-template-columns:1fr;
    }
    .briefing-toolbar-actions{
        justify-content:flex-end;
    }
    .briefing-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .briefing-paper{
        padding:24px 20px;
    }
}
@media(max-width:600px){
    .briefing-summary-grid{
        grid-template-columns:1fr;
    }
    .briefing-toolbar-actions{
        display:grid;
        grid-template-columns:1fr 1fr;
    }
}
@media print{
    @page{
        size:A4 portrait;
        margin:14mm 12mm 15mm;
    }
    body{
        background:#fff !important;
        color:#000 !important;
        font-family:Arial,Helvetica,sans-serif;
        font-size:11pt;
    }
    .sidebar,
    .topbar,
    .no-print,
    .global-alert,
    .briefing-toolbar,
    .main>.content>.alert{
        display:none !important;
    }
    .app-shell,
    .main,
    .content{
        display:block !important;
        width:auto !important;
        margin:0 !important;
        padding:0 !important;
        min-height:0 !important;
        background:#fff !important;
    }
    .briefing-paper{
        max-width:none;
        width:100%;
        margin:0;
        padding:0;
        border:0;
        border-radius:0;
        box-shadow:none;
        color:#000;
    }
    .briefing-document-head{
        margin-bottom:18px;
        padding-bottom:12px;
    }
    .briefing-document-head h1{
        font-size:17pt;
    }
    .briefing-document-head h2{
        font-size:13pt;
    }
    .briefing-section{
        margin-bottom:16px;
    }
    .briefing-section>h3{
        font-size:11.5pt;
    }
    .briefing-number-list li,
    .briefing-agenda,
    .briefing-issue-block p,
    .briefing-conclusion-list p{
        font-size:10.5pt;
    }
    .briefing-table{
        font-size:8.7pt;
    }
    .briefing-table th,
    .briefing-table td{
        padding:4px 5px;
        border-color:#666;
    }
    .briefing-table th{
        background:#f0f0f0 !important;
        -webkit-print-color-adjust:exact;
        print-color-adjust:exact;
    }
    .briefing-summary-grid{
        grid-template-columns:repeat(4,1fr);
    }
    .briefing-summary-grid>div{
        background:#fff;
        border-color:#888;
        padding:7px;
    }
    .briefing-conclusion-section{
        background:#fff;
        border:1px solid #777;
    }
    .briefing-issue-block,
    .briefing-conclusion-list li,
    .briefing-summary-grid>div{
        break-inside:avoid;
    }
    a{
        color:#000 !important;
        text-decoration:none !important;
    }
}

/* ==========================================================
   GIAI ĐOẠN TỐI ƯU 01 - HEADER / SIDEBAR / DASHBOARD DỰ ÁN
   ========================================================== */
.app-shell{
    transition:grid-template-columns .2s ease;
}
.sidebar{
    min-width:0;
    overflow-x:hidden;
    overflow-y:auto;
    transition:padding .2s ease, width .2s ease, transform .22s ease;
}
.sidebar-collapsed{
    grid-template-columns:0 1fr;
}
.sidebar-collapsed .sidebar{
    width:0;
    padding-left:0;
    padding-right:0;
    overflow:hidden;
}
.sidebar-collapsed .sidebar .brand,
.sidebar-collapsed .sidebar .nav{
    opacity:0;
    pointer-events:none;
}
.sidebar-backdrop{display:none}

.topbar{
    min-height:86px;
    height:auto;
    padding:14px 28px;
    gap:22px;
    background:rgba(255,255,255,.98);
    box-shadow:0 1px 0 rgba(16,24,40,.03);
    position:relative;
    z-index:30;
}
.topbar-left{
    min-width:0;
    display:flex;
    align-items:center;
    gap:14px;
    flex:1;
}
.sidebar-toggle{
    width:40px;
    height:40px;
    flex:0 0 40px;
    border:1px solid #d8dee7;
    border-radius:10px;
    display:grid;
    place-items:center;
    background:#fff;
    color:#344054;
    cursor:pointer;
    transition:.18s ease;
}
.sidebar-toggle:hover{
    background:#f6f8fb;
    border-color:#bfc9d5;
    color:#163c66;
}
.sidebar-toggle svg{width:20px;height:20px}
.topbar-heading{min-width:0}
.topbar-heading h1{
    margin:0 0 6px;
    max-width:980px;
    color:#102f50;
    font-size:13px;
    line-height:1.3;
    letter-spacing:.018em;
    font-weight:800;
}
.topbar-heading p{
    display:flex;
    align-items:center;
    gap:6px;
    margin:0;
    color:#667085;
    font-size:11px;
    font-weight:600;
}
.topbar-heading p svg{width:15px;height:15px;color:#8090a3}

.account-menu{position:relative;flex:0 0 auto}
.account-trigger{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:48px;
    padding:5px 8px 5px 6px;
    border:1px solid transparent;
    border-radius:12px;
    background:transparent;
    color:#17212b;
    cursor:pointer;
    text-align:left;
    transition:.18s ease;
}
.account-trigger:hover,
.account-menu.open .account-trigger{
    background:#f6f8fb;
    border-color:#e2e8f0;
}
.account-avatar{
    width:36px;
    height:36px;
    border-radius:50%;
    display:grid;
    place-items:center;
    flex:0 0 36px;
    background:linear-gradient(145deg,#173e69,#0f2e50);
    color:#fff;
    font-size:13px;
    font-weight:800;
    box-shadow:0 3px 9px rgba(15,45,79,.16);
}
.account-avatar-large{width:42px;height:42px;flex-basis:42px;font-size:13px}
.account-trigger-copy strong,
.account-trigger-copy small{display:block;text-align:left;white-space:nowrap}
.account-trigger-copy strong{font-size:13px;color:#17212b}
.account-trigger-copy small{font-size:11px;color:#667085;margin-top:3px}
.account-chevron{width:17px;height:17px;color:#98a2b3;transition:transform .18s ease}
.account-menu.open .account-chevron{transform:rotate(180deg)}
.account-dropdown{
    position:absolute;
    right:0;
    top:calc(100% + 8px);
    z-index:100;
    width:310px;
    background:#fff;
    border:1px solid #e2e8f0;
    border-radius:14px;
    box-shadow:0 18px 46px rgba(16,24,40,.14);
    overflow:hidden;
}
.account-dropdown-head{
    display:flex;
    align-items:center;
    gap:11px;
    padding:15px 16px 13px;
    background:linear-gradient(180deg,#fbfcfe,#f7f9fc);
    border-bottom:1px solid #edf0f4;
}
.account-dropdown-head strong,
.account-dropdown-head small{display:block}
.account-dropdown-head strong{font-size:13px}
.account-dropdown-head small{font-size:11px;color:#667085;margin-top:3px}
.account-info-list{padding:8px 16px}
.account-info-list>div{
    display:grid;
    grid-template-columns:74px 1fr;
    gap:10px;
    padding:7px 0;
    font-size:11px;
}
.account-info-list span{color:#98a2b3}
.account-info-list strong{font-size:11px;font-weight:700;color:#344054;overflow-wrap:anywhere}
.account-actions{
    border-top:1px solid #edf0f4;
    padding:7px;
    display:grid;
    gap:2px;
}
.account-actions a,
.account-actions button{
    width:100%;
    border:0;
    background:transparent;
    color:#344054;
    display:flex;
    align-items:center;
    gap:9px;
    padding:9px 10px;
    border-radius:8px;
    font-size:11px;
    font-weight:600;
    cursor:pointer;
    text-align:left;
}
.account-actions a:hover,
.account-actions button:hover{background:#f4f6f8;color:#102f50}
.account-actions svg{width:17px;height:17px;color:#667085}

/* Dashboard tabs */
.project-dashboard-toolbar{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
    margin:-4px 0 14px;
    border-bottom:1px solid #dfe5ec;
}
.project-dashboard-tabs{
    min-width:0;
    display:flex;
    gap:5px;
    overflow-x:auto;
    padding:0 0 0;
    scrollbar-width:thin;
}
.project-dashboard-tab{
    position:relative;
    display:flex;
    align-items:center;
    min-height:46px;
    max-width:390px;
    padding:9px 14px 11px;
    border-radius:9px 9px 0 0;
    color:#667085;
    font-size:11px;
    font-weight:700;
    line-height:1.35;
    background:transparent;
    white-space:nowrap;
    transition:.16s ease;
}
.project-dashboard-tab:hover{background:#eef3f8;color:#163c66}
.project-dashboard-tab.active{
    color:#102f50;
    background:#fff;
}
.project-dashboard-tab.active:after{
    content:"";
    position:absolute;
    left:10px;
    right:10px;
    bottom:-1px;
    height:3px;
    border-radius:3px 3px 0 0;
    background:#1f5f9e;
}
.project-tab-empty{padding:13px 0;color:#98a2b3;font-size:11px}
.project-dashboard-controls{
    display:flex;
    align-items:flex-end;
    gap:8px;
    padding-bottom:7px;
    flex:0 0 auto;
}
.dashboard-week-select{display:flex;align-items:center;gap:7px}
.dashboard-week-select label{font-size:11px;font-weight:700;color:#667085;white-space:nowrap}
.dashboard-week-select select{
    border:1px solid #d0d5dd;
    border-radius:8px;
    background:#fff;
    color:#344054;
    padding:8px 9px;
    font-size:11px;
    font-weight:600;
}

.project-dashboard-intro{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:13px;
}
.project-dashboard-code{
    color:#667085;
    font-size:11px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
    margin-bottom:4px;
}
.project-dashboard-intro h2{
    margin:0 0 8px;
    color:#102f50;
    font-size:13px;
    line-height:1.35;
}
.project-dashboard-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px 12px;
    color:#667085;
    font-size:11px;
}
.project-dashboard-intro-actions{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    justify-content:flex-end;
}
.dashboard-data-time{
    background:#eef2f6;
    color:#667085;
    border-radius:999px;
    padding:7px 10px;
    font-size:11px;
    font-weight:700;
}

.project-master-kpis{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
    margin-bottom:12px;
}
.project-master-card{
    min-width:0;
    min-height:150px;
    display:flex;
    flex-direction:column;
    background:#fff;
    border:1px solid #e2e8f0;
    border-top:3px solid #64748b;
    border-radius:10px;
    padding:13px 14px 12px;
    box-shadow:0 2px 5px rgba(16,24,40,.035);
}
.project-master-card.card-investment{border-top-color:#475569}
.project-master-card.card-capital{border-top-color:#3b82f6}
.project-master-card.card-disbursement{border-top-color:#10b981}
.project-master-card.card-construction{border-top-color:#f59e0b}
.project-master-card.card-gpmb{border-top-color:#8b5cf6}
.project-master-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
    min-height:30px;
}
.project-master-card-head>span:first-child{
    color:#64748b;
    font-size:11px;
    text-transform:uppercase;
    font-weight:800;
    line-height:1.3;
}
.project-master-icon{
    min-width:25px;
    height:24px;
    border-radius:7px;
    display:grid;
    place-items:center;
    background:#f3f6f9;
    color:#64748b;
    font-size:11px;
    font-weight:900;
}
.card-capital .project-master-icon{background:#eff6ff;color:#2563eb}
.card-disbursement .project-master-icon{background:#ecfdf3;color:#059669}
.card-construction .project-master-icon{background:#fffaeb;color:#d97706}
.card-gpmb .project-master-icon{background:#f5f3ff;color:#7c3aed}
.project-master-value{
    color:#1e293b;
    font-size:13px;
    line-height:1;
    font-weight:800;
    margin:9px 0 12px;
    white-space:nowrap;
}
.project-master-value small{
    color:#98a2b3;
    font-size:11px;
    font-weight:700;
    margin-left:3px;
}
.project-master-foot{
    margin-top:auto;
    border-top:1px dashed #e4e7ec;
    padding-top:9px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:7px;
    font-size:11px;
}
.project-master-foot span{color:#667085}
.project-master-foot strong{color:#344054;font-size:11px;text-align:right}
.project-master-foot .project-master-foot-value{color:#344054;font-size:11px;font-weight:400;text-align:right;white-space:nowrap}
.project-master-foot-stack{display:block}
.project-master-foot-stack>div:first-child{display:flex;justify-content:space-between;gap:8px}
.project-mini-progress,
.project-micro-progress{
    width:100%;
    overflow:hidden;
    background:#edf1f5;
    border-radius:999px;
}
.project-mini-progress{height:5px;margin-top:7px}
.project-micro-progress{height:3px;margin-top:3px}
.project-mini-progress>span,
.project-micro-progress>span{display:block;height:100%;border-radius:inherit;background:#3b82f6}
.card-disbursement .project-mini-progress>span{background:#10b981}
.card-construction .project-mini-progress>span{background:#f59e0b}
.gpmb-kpi-lines{display:grid;gap:9px;margin-top:7px}
.gpmb-kpi-line-main{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto auto;
    align-items:baseline;
    column-gap:6px;
    font-size:11px;
}
.gpmb-kpi-lines span{color:#667085}
.gpmb-kpi-lines strong{font-size:11px;color:#344054;white-space:nowrap}
.gpmb-inline-delta{
    display:inline-flex;
    align-items:center;
    justify-content:flex-end;
    gap:2px;
    min-width:38px;
    font-size:10px;
    font-weight:400;
    white-space:nowrap;
}
.gpmb-inline-delta .delta-icon{color:inherit;font-size:10px}
.gpmb-kpi-lines>div:nth-child(1) .project-micro-progress>span{background:#10b981}
.gpmb-kpi-lines>div:nth-child(2) .project-micro-progress>span{background:#8b5cf6}
.gpmb-kpi-lines>div:nth-child(3) .project-micro-progress>span{background:#3b82f6}

.project-operational-strip{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:8px;
    margin-bottom:12px;
}
.project-operational-strip a{
    background:#fff;
    border:1px solid #e2e8f0;
    border-radius:9px;
    padding:9px 11px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    font-size:11px;
    color:#667085;
}
.project-operational-strip a:hover{border-color:#bdc9d6;background:#fbfcfd}
.project-operational-strip strong{font-size:13px;color:#344054}
.project-operational-strip .attention{border-color:#fecdca;background:#fffafa}
.project-operational-strip .attention strong{color:#b42318}

.project-chart-grid{display:grid;gap:12px;margin-bottom:12px}
.project-chart-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.project-chart-panel{
    background:#fff;
    border:1px solid #e2e8f0;
    border-radius:10px;
    padding:14px 15px 13px;
    box-shadow:0 2px 5px rgba(16,24,40,.03);
    min-width:0;
}
.project-chart-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    border-bottom:1px solid #edf0f3;
    padding-bottom:9px;
    margin-bottom:11px;
}
.project-chart-head h3{
    margin:0 0 3px;
    color:#1e293b;
    font-size:11px;
    text-transform:uppercase;
    font-weight:800;
    letter-spacing:.012em;
}
.project-chart-head p{margin:0;color:#667085;font-size:11px;line-height:1.45}
.chart-current-stat{
    flex:0 0 auto;
    background:#f6f8fb;
    color:#667085;
    border:1px solid #e5e9ef;
    border-radius:999px;
    padding:5px 8px;
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
}
.capital-chart-layout{
    display:grid;
    grid-template-columns:minmax(210px,.75fr) minmax(0,2.25fr);
    gap:18px;
    height:230px;
}
.capital-donut-box,
.capital-year-box,
.project-chart-canvas,
.gpmb-donut-canvas{position:relative;min-width:0}
.project-chart-canvas{height:230px}
.project-gpmb-panel{margin-bottom:18px}
.gpmb-donut-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}
.gpmb-donut-item{text-align:center;min-width:0}
.gpmb-donut-item h4{margin:0 0 5px;color:#475569;font-size:11px}
.gpmb-donut-canvas{height:170px}
.gpmb-donut-item small{display:block;margin-top:3px;color:#667085;font-size:11px;font-weight:600}
.dashboard-secondary-section{margin-top:20px}
.dashboard-secondary-section>.command-section-head{padding-top:5px}
.dashboard-unit-table-wrap{background:#fff;border:1px solid #e2e8f0;border-radius:10px}

@media(max-width:1450px){
    .project-master-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
    .project-master-card.card-gpmb{grid-column:span 2}
}
@media(max-width:1180px){
    .project-dashboard-toolbar{align-items:stretch;flex-direction:column;gap:7px}
    .project-dashboard-controls{justify-content:flex-end}
    .project-chart-grid-2{grid-template-columns:1fr}
    .capital-chart-layout{grid-template-columns:1fr 2fr}
}
@media(max-width:900px){
    .topbar-heading h1{font-size:13px}
    .account-trigger-copy{display:none}
    .project-master-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
    .project-master-card.card-gpmb{grid-column:span 2}
    .project-operational-strip{grid-template-columns:repeat(2,1fr)}
    .project-dashboard-intro{flex-direction:column}
    .project-dashboard-intro-actions{justify-content:flex-start}
    .gpmb-donut-grid{grid-template-columns:1fr 1fr 1fr}
}
@media(max-width:760px){
    .app-shell{grid-template-columns:1fr!important}
    .sidebar{
        display:block;
        position:fixed;
        left:0;
        top:0;
        bottom:0;
        width:245px;
        z-index:120;
        transform:translateX(-102%);
        box-shadow:12px 0 30px rgba(16,24,40,.18);
    }
    .app-shell.sidebar-mobile-open .sidebar{transform:translateX(0)}
    .app-shell.sidebar-mobile-open .sidebar-backdrop{
        display:block;
        position:fixed;
        inset:0;
        z-index:110;
        border:0;
        background:rgba(15,23,42,.36);
    }
    .sidebar-collapsed .sidebar{width:245px;padding:22px 16px}
    .sidebar-collapsed .sidebar .brand,
    .sidebar-collapsed .sidebar .nav{opacity:1;pointer-events:auto}
    .topbar{padding:12px 14px;min-height:74px;align-items:center}
    .topbar-left{gap:9px}
    .topbar-heading h1{font-size:13px;margin-bottom:4px}
    .topbar-heading p{font-size:11px}
    .account-trigger{padding:4px}
    .account-chevron{display:none}
    .account-dropdown{position:fixed;right:12px;left:12px;top:72px;width:auto}
    .content{padding:15px}
    .project-dashboard-controls{align-items:stretch;flex-direction:column}
    .dashboard-week-select{justify-content:space-between}
    .dashboard-week-select select{flex:1}
    .project-dashboard-tab{max-width:290px}
    .project-master-kpis{grid-template-columns:1fr}
    .project-master-card.card-gpmb{grid-column:auto}
    .project-operational-strip{grid-template-columns:1fr 1fr}
    .capital-chart-layout{grid-template-columns:1fr;height:auto}
    .capital-donut-box{height:190px}
    .capital-year-box{height:210px}
    .gpmb-donut-grid{grid-template-columns:1fr}
    .gpmb-donut-canvas{height:155px}
    .project-chart-head{display:block}
    .chart-current-stat{display:inline-block;margin-top:7px}
}
@media(max-width:480px){
    .project-operational-strip{grid-template-columns:1fr}
    .project-dashboard-intro h2{font-size:13px}
}

/* ==========================================================
   DASHBOARD OPTIMIZATION - 2026-08-13
   Chỉ tối ưu module Điều hành, không thay đổi kết cấu nghiệp vụ.
   ========================================================== */

/* Header Điều hành: tiêu đề và ngày căn giữa, giữ nút sidebar và tài khoản hai bên. */
.topbar-dashboard{
    min-height:88px;
    position:relative;
}
.topbar-dashboard .topbar-left{
    flex:0 0 auto;
    z-index:2;
}
.topbar-dashboard .topbar-heading{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    width:min(900px,calc(100% - 430px));
    text-align:center;
    pointer-events:none;
}
.topbar-dashboard .topbar-heading h1{
    max-width:none;
    margin:0 0 6px;
    text-align:center;
    font-size:13px;
    line-height:1.28;
    letter-spacing:.02em;
}
.topbar-dashboard .topbar-heading p{
    justify-content:center;
}
.topbar-dashboard .account-menu{
    margin-left:auto;
    z-index:3;
}

/* Project tabs: không scroll, tự xuống dòng nếu có thêm dự án chính. */
.project-dashboard-toolbar{
    display:block;
    margin:-4px 0 13px;
    border-bottom:1px solid #dfe5ec;
}
.project-dashboard-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
    overflow:visible;
    scrollbar-width:none;
}
.project-dashboard-tabs::-webkit-scrollbar{display:none}
.project-dashboard-tab{
    max-width:none;
    white-space:normal;
}
.project-dashboard-controls,
.dashboard-week-select,
.project-dashboard-code,
.project-dashboard-meta,
.project-dashboard-intro-actions,
.project-operational-strip{
    display:none!important;
}
.project-dashboard-intro{
    display:block;
    margin:0 0 11px;
}
.project-dashboard-intro h2{
    margin:0;
    font-size:13px;
    line-height:1.4;
    font-weight:800;
    color:#163c66;
}

/* 5 KPI cards điều hành cân đối trên một hàng ở màn hình rộng. */
.project-master-kpis{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:10px;
    margin-bottom:13px;
}
.project-master-card{
    min-height:148px;
    padding:12px 13px 11px;
}
.project-master-card.card-operations{border-top-color:#dc2626}
.card-operations .project-master-icon{background:#fef2f2;color:#b42318}
.project-operation-kpi-list{
    display:grid;
    gap:5px;
    margin-top:5px;
}
.project-operation-kpi-list>a,
.project-operation-kpi-list>div{
    min-height:25px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:4px 6px;
    border-radius:6px;
    background:#f8fafc;
    color:#667085;
    font-size:11px;
}
.project-operation-kpi-list>a:hover{background:#f1f5f9;color:#163c66}
.project-operation-kpi-list strong{
    color:#344054;
    font-size:13px;
}
.project-operation-kpi-list .operation-attention{
    background:#fff1f0;
    color:#b42318;
}
.project-operation-kpi-list .operation-attention strong{color:#b42318}

/* Chart layout lấy tinh thần file test.php nhưng thu gọn, chống chồng canvas. */
.dashboard-full-chart-panel{
    margin-bottom:12px;
    overflow:hidden;
}
.dashboard-full-chart-panel canvas{
    display:block;
    width:100%!important;
    max-width:100%;
}
.dashboard-chart-subbox{
    min-width:0;
    position:relative;
}
.dashboard-chart-subbox>h4{
    margin:0 0 8px;
    text-align:center;
    font-size:11px;
    font-weight:700;
    color:#475569;
}
.capital-chart-layout{
    grid-template-columns:minmax(210px,.8fr) minmax(0,2.2fr);
    height:230px;
    gap:18px;
}
.capital-donut-box,
.capital-year-box{height:200px}
.dashboard-chart-scroll{
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    padding-bottom:4px;
    scrollbar-width:thin;
}
.dashboard-long-chart-inner,
.dashboard-biweekly-chart-inner{
    height:245px;
    position:relative;
}
.dashboard-long-chart-inner-construction{
    min-width:860px;
}
.dashboard-disbursement-layout{
    display:grid;
    grid-template-columns:minmax(220px,.72fr) minmax(0,2.28fr);
    gap:18px;
    align-items:stretch;
}
.dashboard-disbursement-donut{
    border-right:1px solid #edf0f3;
    padding-right:14px;
}
.dashboard-donut-large{
    height:215px;
    position:relative;
}
.project-gpmb-panel{margin-bottom:12px}
.gpmb-donut-grid{
    gap:20px;
}
.gpmb-donut-canvas{
    height:165px;
}
.dashboard-funnel-chart{
    height:305px;
    position:relative;
}
.dashboard-step-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin:0 0 8px;
}
.dashboard-step-tab{
    border:1px solid #d0d5dd;
    background:#f8fafc;
    color:#475467;
    border-radius:6px;
    padding:6px 9px;
    font-size:11px;
    font-weight:700;
    cursor:pointer;
    transition:.15s ease;
}
.dashboard-step-tab:hover{background:#eef2f6}
.dashboard-step-tab.active{
    background:#7556c7;
    border-color:#7556c7;
    color:#fff;
}
.dashboard-step-chart-status{
    min-height:20px;
    margin-bottom:4px;
    color:#667085;
    font-size:11px;
    font-weight:600;
}
.dashboard-route-legend{
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:16px;
    margin:4px 0 18px;
    color:#475569;
    font-size:11px;
    font-weight:700;
}
.dashboard-route-legend span{display:flex;align-items:center;gap:6px}
.route-legend-color{
    display:inline-block;
    width:13px;
    height:13px;
    border-radius:3px;
}
.route-done{background:#10b981}
.route-progress{background:#cbd5e1}
.route-stuck{
    background:#f59e0b;
    background-image:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(255,255,255,.38) 4px,rgba(255,255,255,.38) 8px);
}
.dashboard-route-wrap{
    padding:12px 10px 30px;
}
.dashboard-route-track{
    display:flex;
    width:100%;
    min-height:40px;
    overflow:hidden;
    border:2px solid #e2e8f0;
    border-radius:999px;
    background:#f8fafc;
    box-shadow:inset 0 2px 4px rgba(16,24,40,.06);
}
.dashboard-route-segment{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:11px;
    font-weight:800;
    white-space:nowrap;
    overflow:hidden;
}
.dashboard-route-segment.done{background:#10b981;color:#fff}
.dashboard-route-segment.progress{background:#cbd5e1;color:#475569}
.dashboard-route-scale{
    position:relative;
    height:26px;
    margin-top:5px;
}
.dashboard-route-scale span{
    position:absolute;
    transform:translateX(-50%);
    padding-top:10px;
    color:#667085;
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
}
.dashboard-route-scale span:before{
    content:"";
    position:absolute;
    left:50%;
    top:0;
    width:1px;
    height:7px;
    background:#98a2b3;
}
.dashboard-route-scale span:first-child{transform:none}
.dashboard-route-scale span:first-child:before{left:0}
.dashboard-route-scale span:last-child{transform:translateX(-100%)}
.dashboard-route-scale span:last-child:before{left:100%}
.dashboard-route-note{
    margin-top:4px;
    color:#98a2b3;
    font-size:11px;
    text-align:center;
}
.dashboard-route-status-inline{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:nowrap;
    gap:5px 9px;
    margin-top:6px;
    overflow-x:auto;
    padding-bottom:2px;
    color:#667085;
    font-size:11px;
    line-height:1.35;
}
.dashboard-route-status-inline span{white-space:nowrap}
.dashboard-route-status-inline strong{color:#344054;font-weight:600}
.dashboard-route-status-inline>b{color:#c0c8d2;font-weight:400}
.dashboard-chart-empty{
    min-height:130px;
    display:grid;
    place-items:center;
    color:#98a2b3;
    font-size:11px;
    border:1px dashed #d0d5dd;
    border-radius:8px;
    background:#fbfcfd;
}

/* Footer toàn ứng dụng. */
.app-footer{
    margin:26px -30px -30px;
    padding:15px 30px 17px;
    border-top:1px solid #e2e8f0;
    background:#f8fafc;
    text-align:center;
    color:#667085;
}
.app-footer strong,
.app-footer span{display:block}
.app-footer strong{
    color:#344054;
    font-size:11px;
    letter-spacing:.02em;
}
.app-footer span{
    margin-top:4px;
    font-size:11px;
}

@media(max-width:1250px){
    .project-master-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
    .project-master-card.card-gpmb{grid-column:auto}
}
@media(max-width:1180px){
    .topbar-dashboard .topbar-heading{width:calc(100% - 310px)}
    .topbar-dashboard .account-trigger-copy{display:none}
    .dashboard-disbursement-layout{grid-template-columns:1fr}
    .dashboard-disbursement-donut{border-right:0;border-bottom:1px solid #edf0f3;padding:0 0 12px}
    .dashboard-donut-large{height:190px}
}
@media(max-width:900px){
    .topbar-dashboard .topbar-heading{width:calc(100% - 175px)}
    .topbar-dashboard .topbar-heading h1{font-size:13px}
    .topbar-dashboard .topbar-heading p{font-size:11px}
    .project-master-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
    .capital-chart-layout{grid-template-columns:1fr;height:auto}
    .capital-donut-box,.capital-year-box{height:200px}
}
@media(max-width:760px){
    .dashboard-long-chart-inner-construction{
        height:320px;
    }
    .dashboard-long-chart-inner-construction canvas{
        height:100%!important;
    }
    .topbar-dashboard{min-height:76px}
    .topbar-dashboard .topbar-heading{width:calc(100% - 145px)}
    .topbar-dashboard .topbar-heading h1{font-size:11px;line-height:1.25}
    .topbar-dashboard .topbar-heading p{font-size:11px}
    .project-dashboard-tab{font-size:11px;min-height:40px;padding:7px 9px 9px}
    .project-master-kpis{grid-template-columns:1fr}
    .gpmb-donut-grid{grid-template-columns:1fr}
    .dashboard-funnel-chart{height:360px}
    .app-footer{margin:22px -15px -15px;padding:14px 15px}
}

/* ==========================================================
   DASHBOARD OPTIMIZATION - 2026-08-14
   KPI tuần, lọc dự án thành phần, việc cần xử lý & login.
   ========================================================== */
.project-master-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:30px;
    height:30px;
    flex:0 0 30px;
}
.project-master-icon svg{
    width:18px;
    height:18px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.card-investment .project-master-icon{background:#f1f5f9;color:#475569}
.card-capital .project-master-icon{background:#eff6ff;color:#2563eb}
.card-disbursement .project-master-icon{background:#ecfdf3;color:#059669}
.card-construction .project-master-icon{background:#fffaeb;color:#d97706}
.card-gpmb .project-master-icon{background:#f5f3ff;color:#7c3aed}
.card-operations .project-master-icon{background:#fef2f2;color:#b42318}

.component-investment-list{
    display:grid;
    gap:4px;
    margin-top:8px;
    padding-top:7px;
    border-top:1px dashed #e2e8f0;
}
.component-investment-list>div{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:7px;
    font-size:11px;
    line-height:1.3;
}
.component-investment-list span{
    min-width:0;
    color:#667085;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.component-investment-list .component-investment-value{
    flex:0 0 auto;
    color:#344054;
    font-size:11px;
    font-weight:400;
    text-align:right;
    white-space:nowrap;
}
.component-investment-empty{
    margin-top:8px;
    padding-top:7px;
    border-top:1px dashed #e2e8f0;
    color:#98a2b3;
    font-size:11px;
}

.project-master-change{
    display:flex;
    align-items:center;
    gap:5px;
    min-height:22px;
    margin:5px 0 6px;
    font-size:11px;
    font-weight:400;
    line-height:1.3;
}
.project-master-change .delta-icon{
    font-size:11px;
    line-height:1;
}
.delta-good{color:#067647}
.delta-bad{color:#b42318}
.delta-neutral{color:#667085}

.project-operation-kpi-list>a{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
        "label value"
        "delta delta";
    row-gap:2px;
    padding:5px 7px;
}
.project-operation-kpi-list>a>span{grid-area:label}
.project-operation-kpi-list>a>strong{grid-area:value}
.project-operation-kpi-list .operation-delta{
    grid-area:delta;
    display:block;
    font-size:11px;
    font-weight:650;
    line-height:1.2;
}
.project-operation-kpi-list .operation-attention .operation-delta.delta-good{color:#067647}
.project-operation-kpi-list .operation-attention .operation-delta.delta-bad{color:#b42318}
.project-operation-kpi-list .operation-attention .operation-delta.delta-neutral{color:#667085}

.project-chart-head{
    align-items:center;
}
.dashboard-chart-scope{
    display:flex;
    align-items:center;
    gap:7px;
    flex:0 0 auto;
}
.dashboard-chart-scope label{
    color:#667085;
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
}
.dashboard-chart-scope-select{
    max-width:235px;
    min-width:155px;
    height:30px;
    border:1px solid #d0d5dd;
    border-radius:7px;
    background:#fff;
    color:#344054;
    padding:4px 28px 4px 8px;
    font-size:11px;
    font-weight:650;
    outline:none;
}
.dashboard-chart-scope-select:focus{
    border-color:#6b8daf;
    box-shadow:0 0 0 2px rgba(22,60,102,.08);
}
.dashboard-weekly-disbursement-inner{
    height:245px;
    position:relative;
}

.dashboard-immediate-actions>.command-section-head h2{
    text-transform:uppercase;
    letter-spacing:.02em;
    color:#1e293b;
}
.dashboard-immediate-actions{
    scroll-margin-top:90px;
}
#dashboard-action-tasks,
#dashboard-action-issues,
#dashboard-action-recommendations{
    scroll-margin-top:92px;
}
.command-recommendation-list p{
    margin:5px 0 0;
    color:#667085;
    font-size:11px;
    line-height:1.4;
}

/* Login: cho phép trình duyệt/password manager ghi nhớ đăng nhập an toàn. */
.login-remember-row{
    display:flex!important;
    align-items:flex-start;
    gap:9px;
    margin:14px 0 16px!important;
    padding:10px 11px;
    border:1px solid #e4e7ec;
    border-radius:8px;
    background:#f8fafc;
    cursor:pointer;
}
.login-card .login-remember-row input{
    width:16px;
    height:16px;
    margin:2px 0 0;
    padding:0;
    flex:0 0 16px;
    accent-color:#163c66;
}
.login-remember-row span{
    display:block;
    min-width:0;
}
.login-remember-row strong,
.login-remember-row small{
    display:block;
}
.login-remember-row strong{
    font-size:11px;
    color:#344054;
    font-weight:700;
}
.login-remember-row small{
    margin-top:3px;
    font-size:11px;
    color:#667085;
    line-height:1.4;
}

@media(max-width:1180px){
    .project-chart-head{align-items:flex-start}
    .dashboard-chart-scope{align-self:flex-start}
}
@media(max-width:760px){
    .project-chart-head{display:flex;flex-direction:column}
    .dashboard-chart-scope{width:100%;justify-content:space-between;margin-top:7px}
    .dashboard-chart-scope-select{max-width:none;flex:1}
}

/* ==========================================================
   DASHBOARD GPMB FILTERS - tối ưu Điều hành
   ========================================================== */
.project-chart-head-filtered{
    align-items:flex-start;
    gap:14px;
}
.dashboard-gpmb-filters{
    display:grid;
    grid-template-columns:minmax(160px,1.25fr) minmax(145px,1fr) minmax(125px,.8fr);
    gap:7px;
    align-items:end;
    flex:0 0 auto;
    min-width:470px;
}
.dashboard-gpmb-filters.has-scope-filter{
    grid-template-columns:minmax(150px,1fr) minmax(210px,1.35fr) minmax(145px,.95fr) minmax(125px,.8fr);
    min-width:720px;
}
.dashboard-gpmb-filter-field label{
    display:block;
    margin-bottom:4px;
    color:#667085;
    font-size:11px;
    font-weight:750;
    line-height:1.1;
}
.dashboard-gpmb-filter-field select{
    width:100%;
    height:31px;
    border:1px solid #d0d5dd;
    border-radius:7px;
    background:#fff;
    color:#344054;
    padding:4px 26px 4px 8px;
    font-size:11px;
    font-weight:650;
    outline:none;
}
.dashboard-gpmb-filter-field select:focus{
    border-color:#6b8daf;
    box-shadow:0 0 0 2px rgba(22,60,102,.08);
}
@media(max-width:900px){
    .dashboard-gpmb-filters.has-scope-filter{
        grid-template-columns:repeat(2,minmax(150px,1fr));
        min-width:0;
        width:100%;
    }
}
.gpmb-overview-layout{
    display:grid;
    grid-template-columns:minmax(210px,.72fr) minmax(360px,1.28fr);
    gap:24px;
    align-items:center;
    min-height:220px;
}
.gpmb-overview-donut-box{
    height:205px;
    position:relative;
    min-width:0;
}
.gpmb-overview-summary{
    display:grid;
    gap:13px;
}
.gpmb-overview-context{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding-bottom:9px;
    border-bottom:1px solid #eef2f6;
}
.gpmb-overview-context span{
    color:#163c66;
    font-size:11px;
    font-weight:800;
}
.gpmb-overview-context strong{
    color:#667085;
    font-size:11px;
    text-align:right;
}
.gpmb-overview-numbers{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
}
.gpmb-overview-numbers>div{
    border:1px solid #e4e7ec;
    border-radius:9px;
    background:#fbfcfd;
    padding:11px 12px;
}
.gpmb-overview-numbers span,
.gpmb-overview-numbers strong{
    display:block;
}
.gpmb-overview-numbers span{
    color:#667085;
    font-size:11px;
    font-weight:700;
    margin-bottom:5px;
}
.gpmb-overview-numbers strong{
    color:#1d2939;
    font-size:13px;
}
.gpmb-overview-legend{
    display:flex;
    align-items:center;
    gap:18px;
    flex-wrap:wrap;
    color:#475467;
    font-size:11px;
    font-weight:700;
}
.gpmb-overview-legend span{
    display:flex;
    align-items:center;
    gap:6px;
}
.gpmb-legend-dot{
    width:11px;
    height:11px;
    border-radius:3px;
    display:inline-block;
}
.gpmb-legend-done{background:#10b981}
.gpmb-legend-pending{background:#e8edf3;border:1px solid #d0d5dd}
.route-advance{
    background:#3b82f6;
    background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.18),rgba(255,255,255,.18) 5px,rgba(255,255,255,.42) 5px,rgba(255,255,255,.42) 9px);
}
.dashboard-route-segment.advance{
    background:#3b82f6;
    color:#fff;
    background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.10),rgba(255,255,255,.10) 6px,rgba(255,255,255,.28) 6px,rgba(255,255,255,.28) 11px);
}
@media(max-width:1180px){
    .project-chart-head-filtered{display:block}
    .dashboard-gpmb-filters{min-width:0;width:100%;margin-top:9px}
}
@media(max-width:760px){
    .dashboard-gpmb-filters{grid-template-columns:1fr}
    .gpmb-overview-layout{grid-template-columns:1fr;gap:10px}
    .gpmb-overview-donut-box{height:175px}
    .gpmb-overview-numbers{grid-template-columns:1fr}
    .gpmb-overview-context{display:block}
    .gpmb-overview-context strong{margin-top:4px;text-align:left;display:block}
}
.dashboard-route-status-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    margin:0 10px 8px;
}
.dashboard-route-status-grid>div{
    border:1px solid #e4e7ec;
    border-radius:8px;
    padding:8px 10px;
    background:#fbfcfd;
}
.dashboard-route-status-grid span,
.dashboard-route-status-grid strong{display:block}
.dashboard-route-status-grid span{font-size:11px;color:#667085;font-weight:700;margin-bottom:3px}
.dashboard-route-status-grid strong{font-size:11px;color:#344054}
@media(max-width:760px){
    .dashboard-route-status-grid{grid-template-columns:1fr}
}


/* Tối ưu Tổng quan lũy kế GPMB: giữ nguyên 03 biểu đồ tròn, chỉ bổ sung chú thích. */
.gpmb-overview-legend-centered{
    justify-content:center;
    margin-top:12px;
    padding-top:10px;
    border-top:1px dashed #e4e7ec;
}


/* ==========================================================
   THI CÔNG - MÀN HÌNH 1: DANH MỤC GÓI THẦU XÂY LẮP
   ========================================================== */
.package-page-actions{align-items:center}
.package-summary-cards{grid-template-columns:repeat(4,minmax(0,1fr))}
.package-filter-bar{grid-template-columns:2fr 1.5fr 1fr 1fr auto}
.construction-package-table td:nth-child(1){min-width:95px}
.construction-package-table td:nth-child(2){min-width:260px}
.construction-package-table td:nth-child(3){min-width:240px}
.construction-package-table td:nth-child(4){min-width:150px;white-space:nowrap}
.construction-package-table td:nth-child(5),
.construction-package-table td:nth-child(6){min-width:125px;white-space:nowrap}
.construction-package-table td:nth-child(7){min-width:130px}

.package-detail-actions{align-items:center}
.package-detail-hero{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:14px;
    padding:20px 22px;
    margin-bottom:16px
}
.package-detail-hero h2{margin:5px 0 6px;font-size:13px}
.package-detail-hero p{margin:0;color:var(--muted);font-size:13px}
.package-detail-code{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:5px 9px;
    border-radius:7px;
    background:#eef4fa;
    color:var(--primary);
    font-size:11px;
    font-weight:800;
    letter-spacing:.03em
}
.package-detail-status{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.package-detail-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.package-detail-kpis .stat-card strong{
    font-size:13px;
    line-height:1.25;
    overflow-wrap:anywhere
}
.package-detail-kpis .package-date-value{font-size:13px}
.package-detail-kpis .package-contractor-value{font-size:13px}

.package-detail-grid{grid-template-columns:1.1fr .9fr}
.entity-detail-list{
    margin:0;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    border:1px solid var(--line);
    border-radius:10px;
    overflow:hidden
}
.entity-detail-list>div{
    padding:12px 14px;
    border-bottom:1px solid var(--line);
    min-width:0
}
.entity-detail-list>div:nth-child(odd){border-right:1px solid var(--line)}
.entity-detail-list>div:nth-last-child(-n+2){border-bottom:0}
.entity-detail-list .entity-detail-span{
    grid-column:1/-1;
    border-right:0;
    border-bottom:0
}
.entity-detail-list dt{
    color:var(--muted);
    font-size:11px;
    font-weight:700;
    margin-bottom:5px
}
.entity-detail-list dd{
    margin:0;
    font-size:13px;
    line-height:1.5;
    overflow-wrap:anywhere
}

.package-roadmap-list{display:grid;gap:9px}
.package-roadmap-item{
    display:grid;
    grid-template-columns:34px 1fr auto;
    gap:10px;
    align-items:center;
    padding:11px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#f9fafb
}
.package-roadmap-item>span{
    width:30px;
    height:30px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#e8eef5;
    color:var(--primary);
    font-size:11px;
    font-weight:800
}
.package-roadmap-item strong,
.package-roadmap-item small{display:block}
.package-roadmap-item strong{font-size:11px}
.package-roadmap-item small{margin-top:3px;color:var(--muted);font-size:11px;line-height:1.45}
.package-roadmap-item em{
    font-style:normal;
    font-size:11px;
    font-weight:700;
    color:#667085;
    background:#eef2f6;
    padding:5px 7px;
    border-radius:999px;
    white-space:nowrap
}
.package-roadmap-item:first-child{
    background:#fffcf5;
    border-color:#fedf89
}
.package-roadmap-item:first-child em{
    color:#b54708;
    background:#fffaeb
}
.package-roadmap-note{
    margin-top:12px;
    padding:11px 12px;
    border-left:3px solid var(--primary);
    background:#f5f8fb;
    color:#475467;
    font-size:11px;
    line-height:1.5
}

@media(max-width:1100px){
    .package-summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
    .package-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}
    .package-filter-bar>button{align-self:end}
    .package-detail-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
    .package-detail-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
    .package-summary-cards,
    .package-detail-kpis{grid-template-columns:1fr}
    .package-filter-bar{grid-template-columns:1fr}
    .package-detail-hero{display:block}
    .package-detail-status{justify-content:flex-start;margin-top:12px}
    .entity-detail-list{grid-template-columns:1fr}
    .entity-detail-list>div,
    .entity-detail-list>div:nth-child(odd){
        border-right:0;
        border-bottom:1px solid var(--line)
    }
    .entity-detail-list>div:last-child{border-bottom:0}
    .package-roadmap-item{grid-template-columns:34px 1fr}
    .package-roadmap-item em{grid-column:2}
}


/* ==========================================================
   GÓI THẦU NẰM TRONG MODULE DỰ ÁN
   ========================================================== */
.project-construction-packages-panel{
    scroll-margin-top:96px;
}
.project-packages-head{
    align-items:center;
    gap:14px;
}
.project-package-summary{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
    margin-bottom:10px;
}
.project-package-summary>div{
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding:7px 9px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    font-size:11px;
    line-height:1.35;
    white-space:nowrap;
}
.project-package-summary span,
.project-package-summary strong{
    display:inline;
    margin:0;
    font-size:11px;
    font-weight:400;
    color:var(--text);
}
.project-package-table-wrap{overflow:visible}
.project-package-table{width:100%;table-layout:fixed}
.project-package-table .col-stt{width:5%}
.project-package-table .col-name{width:27%}
.project-package-table .col-short-name{width:12%}
.project-package-table .col-value{width:16%}
.project-package-table .col-start{width:10%}
.project-package-table .col-finish{width:11%}
.project-package-table .col-status{width:10%}
.project-package-table .col-action{width:9%}
.project-package-table th,
.project-package-table td{
    min-width:0!important;
    width:auto!important;
    padding:9px 7px;
    vertical-align:middle;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:normal;
}
.project-package-table tbody td{
    font-weight:400;
    background:transparent;
}
.project-package-table tbody tr{transition:background-color .15s ease}
.project-package-table tbody tr:hover{background:#eaf3fb}
.project-package-table tbody tr:hover td{background:transparent}
.project-package-table th:first-child,
.project-package-table td:first-child{text-align:center}
.project-package-table td:nth-child(4),
.project-package-table td:nth-child(5),
.project-package-table td:nth-child(6){white-space:nowrap}
.project-package-stt{color:var(--muted);font-weight:400}
.project-package-name-link{
    color:var(--text);
    font-weight:400;
    line-height:1.42;
}
.project-package-name-link:hover{
    color:#155eef;
    text-decoration:underline;
    text-underline-offset:2px;
}
.project-package-table small{
    display:block;
    margin-top:3px;
    color:var(--muted);
    font-size:10.5px;
    line-height:1.35;
    font-weight:400;
}
.project-package-status-text{font-weight:400;color:var(--text)}
.project-package-action-cell{
    white-space:nowrap!important;
    text-align:center;
}
.project-package-action-cell form{display:inline;margin:0}
.project-package-action-edit,
.project-package-action-delete{
    border:0;
    background:transparent;
    padding:3px 1px;
    font:inherit;
    font-size:11px;
    font-weight:400;
    cursor:pointer;
}
.project-package-action-edit{color:#155eef}
.project-package-action-delete{color:#b42318}
.project-package-action-edit:hover,
.project-package-action-delete:hover{text-decoration:underline;text-underline-offset:2px}
.project-package-action-separator{margin:0 3px;color:#98a2b3}
.project-package-empty{margin-top:4px}
.project-package-permission-note{
    margin-top:12px;
    padding:9px 11px;
    border-radius:8px;
    background:#f8fafc;
    border:1px dashed #d0d5dd;
    color:#667085;
    font-size:11px;
    line-height:1.5;
}
.package-project-fixed{
    padding:11px 12px;
    border:1px solid #d0d5dd;
    border-radius:8px;
    background:#f8fafc;
}
.package-project-fixed strong,
.package-project-fixed small{display:block}
.package-project-fixed strong{font-size:13px;color:#163c66}
.package-project-fixed small{margin-top:4px;color:#667085;font-size:11px;line-height:1.45}
@media(max-width:900px){
    .project-package-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
    .project-package-table .col-name{width:29%}
    .project-package-table .col-short-name{width:12%}
}
@media(max-width:620px){
    .project-package-summary{grid-template-columns:1fr 1fr}
    .project-package-table .col-short-name,
    .project-package-table th:nth-child(3),
    .project-package-table td:nth-child(3),
    .project-package-table .col-start,
    .project-package-table th:nth-child(5),
    .project-package-table td:nth-child(5){display:none}
    .project-package-table .col-stt{width:7%}
    .project-package-table .col-name{width:37%}
    .project-package-table .col-value{width:19%}
    .project-package-table .col-finish{width:15%}
    .project-package-table .col-status{width:13%}
    .project-package-table .col-action{width:9%}
}


/* ==========================================================
   THI CÔNG - MÀN HÌNH 2: SỐ LIỆU CHUYỂN TIẾP
   ========================================================== */
.construction-baseline-panel{
    scroll-margin-top:96px;
}
.construction-baseline-head{
    align-items:flex-start;
    gap:16px;
}
.construction-baseline-empty strong{
    color:#344054;
}
.construction-baseline-kpis{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-bottom:14px;
}
.construction-baseline-kpi{
    min-width:0;
    padding:13px 14px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#f8fafc;
}
.construction-baseline-kpi span,
.construction-baseline-kpi strong,
.construction-baseline-kpi small{
    display:block;
}
.construction-baseline-kpi span{
    color:var(--muted);
    font-size:11px;
    font-weight:700;
}
.construction-baseline-kpi strong{
    margin-top:5px;
    color:#1d2939;
    font-size:13px;
    line-height:1.25;
}
.construction-baseline-kpi small{
    margin-top:5px;
    color:#667085;
    font-size:11px;
    line-height:1.4;
}
.construction-baseline-kpi.baseline-plan{
    border-left:3px solid #3b82f6;
}
.construction-baseline-kpi.baseline-actual{
    border-left:3px solid #10b981;
}
.construction-baseline-detail{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}
.construction-baseline-detail>div{
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
}
.construction-baseline-detail span{
    display:block;
    color:var(--muted);
    font-size:11px;
    font-weight:700;
    margin-bottom:5px;
}
.construction-baseline-detail p{
    margin:0;
    color:#344054;
    font-size:11px;
    line-height:1.55;
}
.construction-baseline-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px 12px;
    margin-top:12px;
    padding-top:11px;
    border-top:1px dashed #d0d5dd;
}
.construction-baseline-meta small{
    color:#667085;
    font-size:11px;
}
.package-roadmap-link{
    color:inherit;
    text-decoration:none;
}
.package-roadmap-link:hover{
    border-color:#98a2b3;
    background:#fff;
}
.package-roadmap-item em.roadmap-status-done{
    color:#027a48;
    background:#ecfdf3;
}
.construction-baseline-context{
    display:grid;
    grid-template-columns:1.4fr .8fr .7fr .7fr;
    gap:10px;
    margin-bottom:16px;
}
.construction-baseline-context>div{
    min-width:0;
    padding:12px 14px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:10px;
}
.construction-baseline-context span,
.construction-baseline-context strong,
.construction-baseline-context small{
    display:block;
}
.construction-baseline-context span{
    color:var(--muted);
    font-size:11px;
    font-weight:700;
}
.construction-baseline-context strong{
    margin-top:5px;
    font-size:13px;
    color:#163c66;
}
.construction-baseline-context small{
    margin-top:4px;
    font-size:11px;
    color:#667085;
    line-height:1.4;
}
.construction-baseline-rule{
    align-self:end;
    min-height:76px;
    padding:10px 12px;
    border-radius:9px;
    background:#f5f8fb;
    border:1px solid #d7e3ef;
}
.construction-baseline-rule strong,
.construction-baseline-rule span{
    display:block;
}
.construction-baseline-rule strong{
    color:#163c66;
    font-size:11px;
    margin-bottom:5px;
}
.construction-baseline-rule span{
    color:#475467;
    font-size:11px;
    line-height:1.45;
}
.construction-baseline-preview{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin-top:12px;
    padding:10px 12px;
    border-radius:9px;
    background:#f8fafc;
    border:1px dashed #d0d5dd;
}
.construction-baseline-preview span{
    font-size:11px;
    font-weight:700;
    color:#475467;
}
.construction-baseline-preview strong{
    font-size:13px;
    color:#163c66;
}
.construction-baseline-preview small{
    color:#667085;
    font-size:11px;
}
.construction-baseline-lock-note{
    margin:14px 0;
    padding:11px 12px;
    border-radius:9px;
    background:#fffcf5;
    border:1px solid #fedf89;
    color:#7a2e0e;
    font-size:11px;
    line-height:1.5;
}
@media(max-width:1050px){
    .construction-baseline-kpis{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .construction-baseline-context{
        grid-template-columns:1fr 1fr;
    }
    .construction-baseline-context>div:first-child{
        grid-column:1/-1;
    }
}
@media(max-width:700px){
    .construction-baseline-kpis,
    .construction-baseline-detail,
    .construction-baseline-context{
        grid-template-columns:1fr;
    }
    .construction-baseline-context>div:first-child{
        grid-column:auto;
    }
}


/* ==========================================================
   MÀN HÌNH 3 - KẾ HOẠCH THI CÔNG / GIẢI NGÂN THEO TUẦN
   ========================================================== */
.control-plan-context-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-bottom:16px;
}

.construction-plan-context-single{
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.control-plan-summary-grid.compact{
    grid-template-columns:repeat(3,minmax(0,1fr));
}
.control-plan-context-grid>div,
.control-plan-summary-grid>div{
    min-width:0;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
}
.control-plan-context-grid span,
.control-plan-context-grid strong,
.control-plan-summary-grid span,
.control-plan-summary-grid strong{
    display:block;
}
.control-plan-context-grid span,
.control-plan-summary-grid span{
    color:var(--muted);
    font-size:11px;
    font-weight:700;
}
.control-plan-context-grid strong,
.control-plan-summary-grid strong{
    margin-top:5px;
    color:#1d2939;
    font-size:13px;
    line-height:1.35;
}
.control-plan-header-actions{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    margin-top:12px;
    padding-top:12px;
    border-top:1px dashed #d0d5dd;
}
.control-plan-header-actions small{
    color:#667085;
    font-size:11px;
}
.control-plan-balance,
.control-plan-summary-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:9px;
    margin-bottom:14px;
}
.control-plan-balance>div{
    min-width:0;
    padding:11px 12px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#f8fafc;
}
.control-plan-balance span,
.control-plan-balance strong{
    display:block;
}
.control-plan-balance span{
    color:#667085;
    font-size:11px;
    font-weight:700;
}
.control-plan-balance strong{
    margin-top:5px;
    font-size:13px;
    color:#344054;
}
.control-plan-balance .balanced,
.control-plan-summary-grid .balanced{
    background:#ecfdf3;
    border-color:#abefc6;
}
.control-plan-balance .balanced strong,
.control-plan-summary-grid .balanced strong{
    color:#027a48;
}
.control-plan-balance .unbalanced,
.control-plan-summary-grid .unbalanced{
    background:#fffaeb;
    border-color:#fedf89;
}
.control-plan-balance .unbalanced strong,
.control-plan-summary-grid .unbalanced strong{
    color:#b54708;
}
.control-plan-table-wrap{
    max-height:620px;
    border:1px solid var(--line);
    border-radius:10px;
}
.control-plan-week-table{
    min-width:720px;
}
.control-plan-week-table thead th{
    position:sticky;
    top:0;
    z-index:2;
    background:#f8fafc;
}
.control-plan-week-table th:nth-child(1),
.control-plan-week-table td:nth-child(1){
    width:90px;
}
.control-plan-week-table th:nth-child(2),
.control-plan-week-table td:nth-child(2){
    min-width:220px;
}
.control-plan-week-table th:nth-child(3),
.control-plan-week-table td:nth-child(3),
.control-plan-week-table th:nth-child(4),
.control-plan-week-table td:nth-child(4){
    min-width:170px;
}
.control-plan-week-input{
    width:100%;
    min-width:130px;
    padding:8px 9px;
    border:1px solid #d0d5dd;
    border-radius:7px;
    background:#fff;
    color:#17212b;
}
.control-plan-week-input:focus{
    outline:none;
    border-color:#6b8daf;
    box-shadow:0 0 0 3px rgba(22,60,102,.08);
}
.control-plan-note{
    margin-top:12px;
    padding:10px 12px;
    border-left:3px solid #175cd3;
    background:#f5f8ff;
    color:#475467;
    font-size:11px;
    line-height:1.55;
}
.control-plan-version-toolbar{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:16px;
    flex-wrap:wrap;
    padding:12px 14px;
    margin-bottom:14px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:10px;
}
.control-plan-version-toolbar>div{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.control-plan-version-toolbar>div>span:first-child{
    color:#667085;
    font-size:11px;
    font-weight:700;
}
.control-plan-version-toolbar form{
    display:flex;
    align-items:center;
    gap:8px;
}
.control-plan-version-toolbar label{
    color:#667085;
    font-size:11px;
    font-weight:700;
}
.control-plan-version-toolbar select{
    min-width:240px;
    padding:8px 9px;
    border:1px solid #d0d5dd;
    border-radius:8px;
    background:#fff;
}
.control-plan-source-box{
    padding:10px 12px;
    margin-bottom:10px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#f8fafc;
}
.control-plan-source-box span{
    display:block;
    color:#667085;
    font-size:11px;
    font-weight:700;
    margin-bottom:4px;
}
.control-plan-source-box p{
    margin:0;
    color:#344054;
    font-size:11px;
    line-height:1.55;
}
.control-plan-readonly-value{
    padding:10px 11px;
    border:1px solid #d0d5dd;
    border-radius:8px;
    background:#f8fafc;
    color:#344054;
    font-size:13px;
    font-weight:700;
}
.control-plan-embedded-panel,
.project-disbursement-plan-panel{
    scroll-margin-top:96px;
}
.control-plan-summary-grid.compact{
    margin-bottom:8px;
}
.control-plan-inline-meta{
    display:flex;
    align-items:center;
    gap:8px 14px;
    flex-wrap:wrap;
    margin-top:10px;
    color:#667085;
    font-size:11px;
}
.project-disbursement-plan-table td:nth-child(1){
    min-width:240px;
}
.project-disbursement-plan-table td:nth-child(2){
    min-width:145px;
}
.project-disbursement-plan-table td:nth-child(3),
.project-disbursement-plan-table td:nth-child(4),
.project-disbursement-plan-table td:nth-child(5){
    min-width:145px;
    white-space:nowrap;
}
.project-disbursement-plan-table td:nth-child(6){
    min-width:145px;
}
.project-disbursement-plan-table .actions-cell{
    display:flex;
    align-items:center;
    gap:5px;
}
.capital-allocation-panel .panel-head{margin-bottom:10px}
.capital-allocation-filter-bar{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding:10px;
    margin-bottom:8px;
    border-radius:10px;
    background:#f8fafc;
    align-items:end;
}
.capital-allocation-filter-bar>div:not(.capital-allocation-filter-actions){flex:1 1 145px;min-width:135px}
.capital-allocation-filter-bar>div:first-of-type{flex-basis:190px}
.capital-allocation-filter-bar label{margin-bottom:4px;font-size:11px}
.capital-allocation-filter-bar input,
.capital-allocation-filter-bar select{padding:8px 9px;font-size:11px}
.capital-allocation-filter-actions{display:flex;gap:6px;align-items:end;white-space:nowrap}
.capital-allocation-mini-summary{
    display:flex;
    gap:8px 18px;
    flex-wrap:wrap;
    padding:7px 2px 10px;
    color:#667085;
    font-size:11px;
}
.capital-allocation-mini-summary strong{color:#101828}
.capital-allocation-table-wrap{margin-top:0}
.capital-allocation-table{font-size:11px}
.capital-allocation-table th{white-space:nowrap;font-size:11px}
.capital-allocation-table td{vertical-align:top;padding-top:9px;padding-bottom:9px}
.capital-allocation-table td:nth-child(1){min-width:48px;text-align:center}
.capital-allocation-table td:nth-child(2),
.capital-allocation-table td:nth-child(3){min-width:190px}
.capital-allocation-table td:nth-child(4){min-width:155px}
.capital-allocation-table td:nth-child(5){min-width:165px}
.capital-allocation-table td:nth-child(6){min-width:65px;text-align:center}
.capital-allocation-table td:nth-child(7){min-width:105px}
.capital-allocation-table td:nth-child(8){min-width:120px;white-space:nowrap;text-align:right}
.capital-allocation-table td:nth-child(9){min-width:70px}
.capital-allocation-table .actions-cell{display:table-cell;text-align:right}
.capital-value-negative strong{color:#b42318}
.table-total-row td{background:#f8fafc;font-weight:700;border-top:2px solid #d0d5dd}
.control-plan-baseline-row td{background:#f8fafc;color:#475467;border-bottom:1px solid #d0d5dd}
.control-plan-baseline-row strong{color:#101828}
@media(max-width:1050px){
    .control-plan-context-grid,
    .control-plan-balance,
    .control-plan-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .capital-allocation-filter-bar>div:not(.capital-allocation-filter-actions){flex-basis:180px}
}
@media(max-width:700px){
    .control-plan-context-grid,
    .control-plan-balance,
    .control-plan-summary-grid{
        grid-template-columns:1fr;
    }
    .capital-allocation-filter-bar{display:block}
    .capital-allocation-filter-bar>div{margin-bottom:8px}
    .capital-allocation-filter-actions{align-items:center;margin-bottom:0}
    .control-plan-version-toolbar{
        align-items:stretch;
    }
    .control-plan-version-toolbar form{
        display:block;
    }
    .control-plan-version-toolbar select{
        width:100%;
        min-width:0;
        margin-top:5px;
    }
}


/* ==========================================================
   MÀN HÌNH 4 - KẾT QUẢ THỰC HIỆN TUẦN
   ========================================================== */
.weekly-results-panel{
    scroll-margin-top:96px;
}
.weekly-result-context-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-bottom:16px;
}
.weekly-result-context-grid>div{
    min-width:0;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:10px;
    background:#fff;
}
.weekly-result-context-grid span,
.weekly-result-context-grid strong{
    display:block;
}
.weekly-result-context-grid span{
    color:#667085;
    font-size:11px;
    font-weight:700;
}
.weekly-result-context-grid strong{
    margin-top:5px;
    color:#1d2939;
    font-size:13px;
    line-height:1.35;
}
.weekly-result-preview{
    align-self:end;
    min-height:82px;
    padding:11px 12px;
    border:1px solid #d7e3ef;
    border-radius:9px;
    background:#f5f8fb;
}
.weekly-result-preview span,
.weekly-result-preview strong,
.weekly-result-preview small{
    display:block;
}
.weekly-result-preview span{
    color:#667085;
    font-size:11px;
    font-weight:700;
}
.weekly-result-preview strong{
    margin-top:5px;
    color:#163c66;
    font-size:13px;
}
.weekly-result-preview small{
    margin-top:4px;
    color:#667085;
    font-size:11px;
}
.weekly-result-rule,
.weekly-result-footnote{
    margin-top:12px;
    padding:10px 12px;
    border-left:3px solid #175cd3;
    background:#f5f8ff;
    color:#475467;
    font-size:11px;
    line-height:1.55;
}
.weekly-result-table-wrap{
    max-height:560px;
    border:1px solid var(--line);
    border-radius:10px;
}
.weekly-result-table{
    min-width:920px;
}
.weekly-result-table thead th{
    position:sticky;
    top:0;
    z-index:2;
    background:#f8fafc;
}
.weekly-result-table td{
    vertical-align:top;
}
.weekly-result-table td:nth-child(1){min-width:170px}
.weekly-result-table td:nth-child(2),
.weekly-result-table td:nth-child(3){min-width:135px}
.weekly-result-table td:nth-child(4){min-width:90px}
.weekly-result-table td:nth-child(5){min-width:190px}
.weekly-result-table td:nth-child(6){min-width:150px}
.weekly-result-table td:nth-child(7){min-width:95px}
.weekly-result-summary-line{
    display:flex;
    flex-wrap:wrap;
    gap:8px 18px;
    margin-bottom:10px;
    color:#667085;
    font-size:11px;
}
.disbursement-result-component-links{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}
.disbursement-result-component-links>a{
    display:grid;
    grid-template-columns:auto 1fr auto;
    gap:8px;
    align-items:center;
    padding:11px 12px;
    border:1px solid var(--line);
    border-radius:9px;
    background:#f8fafc;
    color:inherit;
    text-decoration:none;
}
.disbursement-result-component-links>a:hover{
    border-color:#98a2b3;
    background:#fff;
}
.disbursement-result-component-links strong{
    color:#163c66;
    font-size:11px;
}
.disbursement-result-component-links span{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:11px;
}
.disbursement-result-component-links em{
    font-style:normal;
    color:#175cd3;
    font-size:11px;
    white-space:nowrap;
}
@media(max-width:950px){
    .weekly-result-context-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .disbursement-result-component-links{
        grid-template-columns:1fr;
    }
}
@media(max-width:600px){
    .weekly-result-context-grid{
        grid-template-columns:1fr;
    }
}

/* ==========================================================
   GPMB - PHAM VI + KE HOACH 08 MOC (20/08/2026)
   ========================================================== */
.gpmb-scope-plan-panel{scroll-margin-top:96px}
.gpmb-scope-summary-grid,
.gpmb-plan-scope-summary{
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:10px;
    margin:14px 0 16px;
}
.gpmb-scope-summary-grid>div,
.gpmb-plan-scope-summary>div{
    padding:11px 12px;
    border:1px solid #e2e8f0;
    border-radius:10px;
    background:#f8fafc;
    min-width:0;
}
.gpmb-scope-summary-grid span,
.gpmb-scope-summary-grid strong,
.gpmb-plan-scope-summary span,
.gpmb-plan-scope-summary strong{display:block}
.gpmb-scope-summary-grid span,
.gpmb-plan-scope-summary span{font-size:11px;color:#64748b;font-weight:700;margin-bottom:4px}
.gpmb-scope-summary-grid strong,
.gpmb-plan-scope-summary strong{font-size:13px;color:#0f172a;line-height:1.35}
.gpmb-target-create-row{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:7px;
    padding:10px 12px;
    margin:0 0 14px;
    border:1px dashed #cbd5e1;
    border-radius:10px;
    background:#fff;
    font-size:11px;
    color:#475569;
}
.gpmb-scope-list-table th,.gpmb-scope-list-table td{vertical-align:top}
.gpmb-scope-list-table td:nth-child(1){width:54px;text-align:center}
.gpmb-scope-list-table td:nth-child(2){min-width:210px}
.gpmb-scope-list-table td:nth-child(3){min-width:170px}
.gpmb-scope-list-table td:nth-child(4){min-width:150px;white-space:nowrap}
.gpmb-scope-list-table td:nth-child(5){min-width:130px}
.gpmb-scope-list-table td:nth-child(6){min-width:125px;white-space:nowrap}
.gpmb-scope-list-table .actions-cell{min-width:180px;display:flex;gap:5px;flex-wrap:wrap}
.gpmb-locality-mini-chip{
    display:inline-block;
    padding:3px 6px;
    margin:0 3px 3px 0;
    border-radius:999px;
    background:#eff6ff;
    color:#1d4ed8;
    font-size:11px;
    font-weight:700;
}
.gpmb-input-panel{margin-bottom:14px}
.gpmb-locality-entry-table th,.gpmb-locality-entry-table td{vertical-align:middle}
.gpmb-locality-entry-table td:nth-child(1){width:52px;text-align:center}
.gpmb-locality-entry-table td:nth-child(2){min-width:230px}
.gpmb-locality-entry-table td:nth-child(3){min-width:95px}
.gpmb-locality-entry-table td:nth-child(4),.gpmb-locality-entry-table td:nth-child(5){min-width:115px}
.gpmb-locality-entry-table td:nth-child(6){min-width:180px}
.gpmb-locality-entry-table input,.gpmb-locality-entry-table select{
    width:100%;border:1px solid #d0d5dd;border-radius:7px;padding:8px;background:#fff;color:#1f2937
}
.gpmb-new-locality-input{margin-top:6px;font-size:11px;background:#f8fafc!important}
.gpmb-locality-entry-table input[readonly]{background:#f1f5f9;color:#475467;font-weight:700}
.gpmb-chainage-length-box{
    display:grid;grid-template-columns:auto auto 1fr;gap:8px 12px;align-items:center;
    border:1px solid #dbe7f3;background:#f8fbff;border-radius:10px;padding:10px 12px
}
.gpmb-chainage-length-box span{font-size:11px;color:#667085;font-weight:700}
.gpmb-chainage-length-box strong{font-size:13px;color:#163c66}
.gpmb-chainage-length-box small{color:#667085;font-size:11px;line-height:1.45}
.gpmb-locality-total-row td{background:#f8fafc;border-top:2px solid #d0d5dd}
.gpmb-chainage-allocation-row td{background:#fbfcfe;border-top:1px solid #e5e7eb;font-size:11px;color:#667085}
.gpmb-chainage-allocation-row strong{color:#344054}
.gpmb-chainage-allocation-row strong.balanced{color:#067647}
.gpmb-chainage-allocation-row strong.unbalanced{color:#b42318}
.gpmb-sticky-actions{position:sticky;bottom:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(7px);border-top:1px solid #e2e8f0;padding-top:12px}
.gpmb-plan-context-card{margin-bottom:14px}
.gpmb-plan-locality-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.gpmb-plan-locality-chips span{padding:5px 8px;border:1px solid #dbeafe;border-radius:999px;background:#eff6ff;color:#1e40af;font-size:11px;font-weight:700}
.gpmb-plan-version-badges{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.gpmb-plan-step-table th,.gpmb-plan-step-table td{vertical-align:middle}
.gpmb-plan-step-table td:nth-child(1){width:55px;text-align:center}
.gpmb-plan-step-table td:nth-child(2){min-width:260px}
.gpmb-plan-step-table td:nth-child(3){min-width:180px}
.gpmb-plan-step-table td:nth-child(4){min-width:170px}
.gpmb-plan-step-table td:nth-child(5){min-width:125px;text-align:center}
.gpmb-plan-step-table input[type="date"]{width:100%;border:1px solid #d0d5dd;border-radius:8px;padding:9px;background:#fff}
.gpmb-deadline-week{font-weight:800;color:#475569}
.gpmb-plan-rule-note{margin-top:12px;padding:10px 12px;border-left:3px solid #8b5cf6;background:#f5f3ff;color:#4c1d95;font-size:11px;line-height:1.55}
.gpmb-report-week-preview{margin-bottom:14px}
.gpmb-report-week-list{display:flex;flex-wrap:wrap;gap:6px}
.gpmb-report-week-list>span:not(.text-muted){padding:5px 8px;border-radius:7px;background:#f1f5f9;color:#334155;font-size:11px;font-weight:700;border:1px solid #e2e8f0}
@media(max-width:1200px){
    .gpmb-scope-summary-grid,.gpmb-plan-scope-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
    .gpmb-scope-summary-grid,.gpmb-plan-scope-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
    .gpmb-sticky-actions{position:static}
}

/* ===== GPMB weekly results ===== */
.gpmb-result-context-panel,.gpmb-result-week-panel{margin-bottom:14px}
.gpmb-result-week-picker{display:flex;align-items:end;gap:10px;flex-wrap:wrap}
.gpmb-result-week-picker label{font-size:11px;font-weight:800;color:#475467}
.gpmb-result-week-picker select{min-width:210px;border:1px solid #d0d5dd;border-radius:8px;padding:9px 10px;background:#fff}
.gpmb-result-locality-card{margin-bottom:14px}
.gpmb-result-prefill-note{display:block;margin-top:5px;color:#067647;font-weight:700}
.gpmb-result-entry-table th,.gpmb-result-entry-table td{vertical-align:middle}
.gpmb-result-entry-table td:nth-child(1){width:54px;text-align:center}
.gpmb-result-entry-table td:nth-child(2){min-width:220px}
.gpmb-result-entry-table td:nth-child(3){min-width:145px}
.gpmb-result-entry-table td:nth-child(4),
.gpmb-result-entry-table td:nth-child(5),
.gpmb-result-entry-table td:nth-child(6){min-width:155px}
.gpmb-result-entry-table input[type="number"]{width:100%;border:1px solid #d0d5dd;border-radius:8px;padding:8px 9px;background:#fff}
.gpmb-result-entry-table td small{font-size:11px;color:#667085}
.gpmb-result-note-field{margin-top:12px}
@media(max-width:760px){
    .gpmb-result-week-picker{display:block}
    .gpmb-result-week-picker select{width:100%;margin-top:6px}
}

.gpmb-scope-delete-form{display:inline-flex;margin:0}

/* ==========================================================
   GPMB ROUTE MAP - nguồn xác nhận của Chủ đầu tư xây lắp
   ========================================================== */
.gpmb-route-map-input-panel{scroll-margin-top:96px}
.gpmb-route-project-table td:first-child{min-width:230px}
.gpmb-route-project-table td:not(:first-child){white-space:nowrap}
.gpmb-route-entry-panel{max-width:100%}
.gpmb-route-week-switcher{
    display:flex;
    gap:10px;
    align-items:end;
    flex-wrap:wrap;
    padding:12px 14px;
    margin-bottom:14px;
    border:1px solid #e4e7ec;
    border-radius:10px;
    background:#f8fafc;
}
.gpmb-route-week-switcher .form-field{min-width:210px;margin:0}
.gpmb-route-entry-table{min-width:1180px}
.gpmb-route-entry-table th:nth-child(1),
.gpmb-route-entry-table td:nth-child(1){width:54px;text-align:center}
.gpmb-route-entry-table th:nth-child(2),
.gpmb-route-entry-table td:nth-child(2),
.gpmb-route-entry-table th:nth-child(3),
.gpmb-route-entry-table td:nth-child(3){min-width:135px}
.gpmb-route-entry-table th:nth-child(4),
.gpmb-route-entry-table td:nth-child(4){min-width:95px;white-space:nowrap}
.gpmb-route-entry-table th:nth-child(5),
.gpmb-route-entry-table td:nth-child(5){min-width:185px}
.gpmb-route-entry-table th:nth-child(6),
.gpmb-route-entry-table td:nth-child(6){min-width:180px}
.gpmb-route-entry-table th:nth-child(7),
.gpmb-route-entry-table td:nth-child(7){min-width:270px}
.gpmb-route-entry-table input,
.gpmb-route-entry-table select{width:100%;border:1px solid #d0d5dd;border-radius:7px;padding:8px;background:#fff;color:#101828}
.gpmb-route-entry-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0 0}
.gpmb-route-entry-total{font-size:11px;color:#667085}
.gpmb-route-entry-total strong{color:#163c66;font-size:11px}

.dashboard-route-lanes{padding:5px 10px 8px}
.dashboard-route-source-status{text-align:center;margin-bottom:8px}
.dashboard-route-lane{margin:0 0 12px}
.dashboard-route-lane-head{display:flex;justify-content:space-between;gap:14px;align-items:end;margin-bottom:5px;color:#667085;font-size:11px}
.dashboard-route-lane-head strong,.dashboard-route-lane-head small{display:block}
.dashboard-route-lane-head strong{color:#344054;font-size:11px}
.dashboard-route-lane-head small{margin-top:2px;color:#98a2b3}
.route-absolute-track{position:relative;display:block;min-height:34px;background:#eef2f6;overflow:hidden}
.route-positioned-segment{position:absolute;top:0;bottom:0;min-width:2px}
.dashboard-route-segment.stuck{
    background:#f59e0b;
    color:#fff;
    background-image:repeating-linear-gradient(45deg,transparent,transparent 4px,rgba(255,255,255,.35) 4px,rgba(255,255,255,.35) 8px);
}
.dashboard-route-scale-absolute{margin:0 10px 10px}
.dashboard-route-status-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:900px){
    .dashboard-route-status-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
    .gpmb-route-entry-actions{align-items:stretch;flex-direction:column}
    .gpmb-route-week-switcher{display:block}
    .gpmb-route-week-switcher .btn{margin-top:10px}
    .dashboard-route-status-grid-four{grid-template-columns:1fr}
    .dashboard-route-lane-head{align-items:flex-start;flex-direction:column;gap:3px}
}

/* Bản đồ duỗi thẳng GPMB - kiểm soát phủ kín toàn tuyến */
.gpmb-route-coverage-summary{margin:12px 0 14px}
.coverage-state{font-weight:700}
.coverage-state.ok{color:#067647}
.coverage-state.warning{color:#b54708}
.coverage-state.danger{color:#b42318}
.dashboard-route-legacy-warning{margin:8px 10px 12px;padding:9px 11px;border:1px solid #fedf89;border-radius:8px;background:#fffaeb;color:#93370d}


/* ==========================================================
   UI REFINEMENT - 2026-08-21
   Header hệ thống, điều hướng Cuộc họp và typography 3 cấp.
   Phong cách tối giản: ít cấp chữ, khoảng trắng rõ, viền nhẹ.
   ========================================================== */
html,body{
    font-family:Arial,Helvetica,sans-serif;
    font-size:var(--type-md);
    line-height:1.45;
}

/* Chỉ dùng 3 cấp chữ chính trên giao diện: 12 / 14 / 20px. */
small,
label,
th,
.badge,
.nav-section,
.eyebrow,
.field-error,
.page-note,
.back-link,
.topbar-heading p,
.account-trigger-copy small,
.account-dropdown-head small,
.account-info-list,
.dashboard-gpmb-filter-field label,
.dashboard-gpmb-filter-field select{
    font-size:var(--type-sm)!important;
}
body,
button,
input,
select,
textarea,
td,
.nav a,
.nav-parent,
.btn,
.panel p,
.section-title p,
.detail-list dd,
.account-trigger-copy strong,
.account-dropdown-head strong,
.account-actions a,
.account-actions button{
    font-size:var(--type-md)!important;
}
h1,h2,h3,h4,
.topbar-heading h1,
.project-heading h2,
.section-title h2,
.panel h2,
.project-master-value,
.stat-card strong,
.command-kpi-card strong{
    font-size:var(--type-lg)!important;
}

/* Header hệ thống: nhận diện cố định, ngày đầy đủ, không dùng icon lịch. */
.topbar{
    min-height:100px;
    padding-top:12px;
    padding-bottom:12px;
}
.topbar-heading.system-heading{
    display:grid;
    gap:2px;
}
.system-agency{
    color:#52606d;
    font-size:var(--type-md);
    font-weight:700;
    letter-spacing:.035em;
    line-height:1.25;
}
.topbar-heading.system-heading h1{
    margin:0;
    color:#102f50;
    font-weight:700;
    letter-spacing:.005em;
    line-height:1.25;
}
.topbar-heading.system-heading p{
    margin:2px 0 0;
    color:#667085;
    font-weight:500;
    line-height:1.25;
}
.topbar-dashboard{
    min-height:104px;
}
.topbar-dashboard .topbar-heading{
    width:min(980px,calc(100% - 430px));
}
.topbar-dashboard .system-agency,
.topbar-dashboard .topbar-heading h1,
.topbar-dashboard .topbar-heading p{
    text-align:center;
}
.topbar-dashboard .topbar-heading p{
    justify-content:center;
}

/* Sidebar: Báo cáo họp là chức năng con của Cuộc họp. */
.nav-group{
    border-radius:10px;
    overflow:hidden;
}
.nav-group.active{
    background:rgba(255,255,255,.07);
}
.nav-parent{
    padding:12px 14px 7px;
    color:rgba(255,255,255,.92);
    font-weight:700;
}
.nav-submenu{
    display:grid;
    gap:2px;
    padding:0 6px 7px 18px;
}
.nav-submenu a{
    padding:9px 10px!important;
    border-radius:8px!important;
    color:rgba(255,255,255,.78);
}
.nav-submenu a:hover,
.nav-submenu a.active{
    color:#fff;
    background:rgba(255,255,255,.13);
}

/* Dashboard GPMB: bộ lọc neo hẳn về mép phải. */
.project-chart-head-filtered{
    width:100%;
    display:flex;
    align-items:flex-start;
}
.project-chart-head-filtered>.dashboard-gpmb-filters{
    margin-left:auto;
    justify-content:end;
}
.dashboard-gpmb-filters{
    justify-self:end;
}

/* Chú thích 03 donut dùng đúng màu từng chỉ tiêu. */
.gpmb-overview-legend-centered{
    justify-content:center;
    gap:10px 22px;
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid #eef1f4;
}
.gpmb-overview-legend-centered span{
    min-width:0;
    white-space:nowrap;
}
.gpmb-legend-area{background:#8b5cf6}
.gpmb-legend-households{background:#3b82f6}
.gpmb-legend-length{background:#10b981}
.gpmb-legend-pending{background:#e8edf3;border:1px solid #d0d5dd}

/* Bề mặt gọn kiểu Material/Google: giảm cảm giác nhiều lớp trang trí. */
.panel,
.project-chart-panel,
.stat-card,
.form-section,
.filter-bar{
    border-color:#e3e7ed;
    box-shadow:none;
}
.btn,
.filter-bar input,
.filter-bar select,
.form-field input,
.form-field select,
.form-field textarea,
.dashboard-gpmb-filter-field select{
    border-radius:8px;
}

@media(max-width:1180px){
    .project-chart-head-filtered>.dashboard-gpmb-filters{
        margin-left:0;
        margin-top:10px;
    }
    .topbar-dashboard .topbar-heading{
        width:calc(100% - 300px);
    }
}
@media(max-width:900px){
    .topbar{
        min-height:92px;
    }
    .topbar-dashboard{
        min-height:96px;
    }
    .system-agency{
        display:none;
    }
    .topbar-dashboard .topbar-heading{
        width:calc(100% - 175px);
    }
}
@media(max-width:760px){
    .topbar,
    .topbar-dashboard{
        min-height:82px;
    }
    .topbar-dashboard .topbar-heading{
        width:calc(100% - 140px);
    }
    .topbar-heading.system-heading h1{
        font-size:var(--type-md)!important;
        line-height:1.25;
    }
    .gpmb-overview-legend-centered{
        justify-content:flex-start;
    }
    .gpmb-overview-legend-centered span{
        white-space:normal;
    }
}


/* ==========================================================
   UI REFINEMENT - 2026-08-21 - LAN 6
   Header nhận diện mạnh hơn, Quốc huy sidebar, typography 11/13/20,
   ghép hai biểu đồ GPMB đầu hàng cùng một hàng.
   ========================================================== */

/* Typography: 20px chỉ dành cho tên Hệ thống; các nội dung khác 13px/11px. */
:root{
    --type-sm:11px;
    --type-md:13px;
    --type-lg:13px;
}
html,body{font-size:var(--type-md)}
h1,h2,h3,h4,h5,h6,
.panel h2,.section-title h2,.project-heading h2,
.project-chart-head h3,.project-master-value,.stat-card strong,.command-kpi-card strong{
    font-size:13px!important;
}
small,label,th,.badge,.nav-section,.eyebrow,.field-error,.page-note,
.dashboard-step-chart-status,.dashboard-gpmb-filter-field label{
    font-size:13px!important;
}
body,button,input,select,textarea,td,.nav a,.nav-parent,.btn,
.panel p,.section-title p,.detail-list dd,.account-trigger-copy strong,
.account-dropdown-head strong,.account-actions a,.account-actions button{
    font-size:13px!important;
}

/* Sidebar brand: Quốc huy và tên ngắn gọn. */
.brand{
    min-height:66px;
    padding:2px 6px 22px;
    gap:11px;
}
.brand-mark.brand-emblem{
    width:48px;
    height:48px;
    padding:2px;
    border-radius:50%;
    background:rgba(255,255,255,.98);
    box-shadow:0 0 0 1px rgba(255,255,255,.35),0 5px 14px rgba(0,0,0,.16);
    overflow:hidden;
}
.brand-emblem img{
    width:100%;
    height:100%;
    object-fit:contain;
    display:block;
}
.brand-copy strong{
    color:#fff;
    font-size:13px!important;
    font-weight:800;
    letter-spacing:.035em;
    white-space:nowrap;
}

/* Header: vẫn sạch kiểu Google/Material nhưng có nhận diện và chiều sâu thị giác. */
.topbar{
    position:relative;
    min-height:108px;
    height:auto;
    padding:15px 30px 14px;
    background:linear-gradient(90deg,#ffffff 0%,#f7faff 52%,#ffffff 100%);
    border-bottom:1px solid #dfe5ec;
    box-shadow:0 1px 3px rgba(16,24,40,.035);
    overflow:visible;
}
.topbar::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:0;
    height:3px;
    background:linear-gradient(90deg,#da251d 0 46%,#ffcd00 46% 54%,#163c66 54% 100%);
}
.topbar-left{min-width:0}
.topbar-heading.system-heading{
    gap:4px;
    min-width:0;
}
.system-agency{
    display:flex;
    justify-content:center;
    align-items:center;
    color:#b42318;
    font-size:13px!important;
    font-weight:800;
    letter-spacing:.075em;
    line-height:1.2;
}
.system-agency span{
    display:inline-flex;
    align-items:center;
    padding:3px 10px;
    border-radius:999px;
    background:#fff7f5;
    border:1px solid #fee4e2;
}
.topbar-heading.system-heading h1{
    margin:0;
    color:#123a63;
    font-size:20px!important;
    font-weight:750;
    line-height:1.2;
    letter-spacing:.008em;
    text-wrap:balance;
}
.system-heading-meta{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    margin-top:1px;
}
.system-heading-meta p{
    margin:0!important;
    color:#667085;
    font-size:13px!important;
    font-weight:600;
    white-space:nowrap;
}
.system-heading-line{
    width:42px;
    height:1px;
    background:#d8e0e8;
}
.topbar-dashboard .topbar-heading{
    width:min(1040px,calc(100% - 420px));
}
.topbar-dashboard .system-agency,
.topbar-dashboard .topbar-heading h1,
.topbar-dashboard .system-heading-meta{
    text-align:center;
}

/* Hai biểu đồ GPMB đầu tiên: cùng hàng, cùng chiều cao, giữ nguyên chức năng. */
.dashboard-gpmb-top-grid{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:12px;
    align-items:stretch;
    margin-bottom:12px;
}
.dashboard-gpmb-top-grid .dashboard-gpmb-equal-panel{
    margin-bottom:0;
    min-height:452px;
    height:100%;
    display:flex;
    flex-direction:column;
    overflow:hidden;
}
.dashboard-gpmb-top-grid .project-chart-head-filtered{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:8px;
    flex:0 0 auto;
}
.dashboard-gpmb-top-grid .project-chart-head-filtered>.dashboard-gpmb-filters{
    margin:0 0 0 auto;
    width:min(100%,590px);
    min-width:0;
    justify-self:end;
}
.dashboard-gpmb-top-grid .dashboard-gpmb-filters.has-scope-filter{
    min-width:0;
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.dashboard-gpmb-top-grid .project-chart-head{
    margin-bottom:8px;
    padding-bottom:8px;
}
.dashboard-gpmb-top-grid .dashboard-step-chart-status{
    flex:0 0 auto;
    margin-bottom:6px;
}
.dashboard-gpmb-top-grid .gpmb-donut-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    align-items:start;
    flex:1 1 auto;
}
.dashboard-gpmb-top-grid .gpmb-donut-canvas{
    height:132px;
}
.dashboard-gpmb-top-grid .gpmb-donut-item h4{
    min-height:16px;
    margin-bottom:2px;
}
.dashboard-gpmb-top-grid .gpmb-overview-legend-centered{
    margin-top:7px;
    padding-top:8px;
    gap:7px 14px;
    flex:0 0 auto;
}
.dashboard-gpmb-top-grid .gpmb-overview-legend-centered span{
    white-space:normal;
}
.dashboard-gpmb-top-grid .dashboard-funnel-chart{
    height:auto;
    min-height:248px;
    flex:1 1 auto;
}
.dashboard-gpmb-top-grid .dashboard-funnel-chart canvas{
    height:100%!important;
}

@media(max-width:1380px){
    .dashboard-gpmb-top-grid{grid-template-columns:1fr}
    .dashboard-gpmb-top-grid .dashboard-gpmb-equal-panel{min-height:auto}
    .dashboard-gpmb-top-grid .gpmb-donut-canvas{height:150px}
    .dashboard-gpmb-top-grid .dashboard-funnel-chart{height:305px;min-height:305px}
}
@media(max-width:900px){
    .topbar{min-height:96px;padding-left:18px;padding-right:18px}
    .topbar-dashboard .topbar-heading{width:calc(100% - 175px)}
    .system-agency{display:flex}
    .system-heading-line{width:24px}
}
@media(max-width:760px){
    .topbar,.topbar-dashboard{min-height:92px}
    .topbar-dashboard .topbar-heading{width:calc(100% - 130px)}
    .system-agency{display:none}
    .topbar-heading.system-heading h1{font-size:20px!important;line-height:1.12}
    .system-heading-line{display:none}
    .dashboard-gpmb-top-grid .dashboard-gpmb-filters.has-scope-filter{grid-template-columns:1fr}
    .dashboard-gpmb-top-grid .gpmb-donut-grid{grid-template-columns:1fr}
    .dashboard-gpmb-top-grid .gpmb-donut-canvas{height:145px}
}

/* ==========================================================
   UI REFINEMENT - 2026-08-21 - LAN 7
   Theo phản hồi: sidebar gọn, header quay về nền trắng, chart title
   đồng bộ với "VIỆC CẦN XỬ LÝ NGAY", GPMB trở lại mỗi panel một hàng.
   ========================================================== */

/* 1) Sidebar: Quốc huy không có nền trắng; Cuộc họp là menu thu gọn. */
.brand-mark.brand-emblem{
    width:48px;
    height:48px;
    padding:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    overflow:visible;
}
.brand-emblem img{
    width:48px;
    height:48px;
    object-fit:contain;
    display:block;
    filter:drop-shadow(0 2px 3px rgba(0,0,0,.18));
}
.nav-group{
    border-radius:9px;
    overflow:hidden;
}
.nav-parent{
    width:100%;
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 14px;
    border:0;
    background:transparent;
    color:rgba(255,255,255,.92);
    font-family:inherit;
    font-size:13px!important;
    font-weight:600;
    text-align:left;
    cursor:pointer;
}
.nav-parent:hover,
.nav-group.active>.nav-parent{
    background:rgba(255,255,255,.10);
    color:#fff;
}
.nav-parent-chevron{
    width:15px;
    height:15px;
    flex:0 0 auto;
    transition:transform .18s ease;
}
.nav-parent[aria-expanded="true"] .nav-parent-chevron{
    transform:rotate(180deg);
}
.nav-submenu[hidden]{display:none!important}
.nav-submenu{
    display:grid;
    gap:2px;
    padding:3px 6px 7px 18px;
}

/* 2) Header: bỏ dải ba màu và badge đỏ/hồng; quay về nhận diện nền trắng nhẹ. */
.topbar,
.topbar-dashboard{
    min-height:100px;
    height:auto;
    padding:14px 30px;
    background:#fff;
    border-bottom:1px solid #e3e7ed;
    box-shadow:0 1px 2px rgba(16,24,40,.025);
}
.topbar::before{display:none!important}
.system-agency{
    display:flex;
    justify-content:center;
    align-items:center;
    color:#52606d;
    font-size:13px!important;
    font-weight:700;
    letter-spacing:.045em;
    line-height:1.25;
}
.system-agency span{
    display:inline;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
}
.topbar-heading.system-heading{
    gap:3px;
}
.topbar-heading.system-heading h1{
    color:#102f50;
    font-size:20px!important;
    font-weight:700;
    line-height:1.2;
    letter-spacing:.004em;
}
.system-heading-meta{
    margin-top:2px;
    gap:9px;
}
.system-heading-meta p{
    color:#667085;
    font-size:13px!important;
    font-weight:500;
}
.system-heading-line{
    width:36px;
    background:#dfe5ec;
}

/* 3) Giá trị KPI chính nổi bật 20px; đơn vị vẫn là cấp chữ nhỏ. */
.project-master-value{
    font-size:20px!important;
    font-weight:750;
    line-height:1.15;
}
.project-master-value small{
    font-size:13px!important;
}

/* 4) Hai biểu đồ GPMB đầu tiên quay về mỗi biểu đồ một hàng. */
.dashboard-gpmb-top-grid{
    display:block;
    margin-bottom:0;
}
.dashboard-gpmb-top-grid .dashboard-gpmb-equal-panel{
    width:100%;
    height:auto;
    min-height:0;
    margin-bottom:12px;
    display:block;
    overflow:visible;
}
.dashboard-gpmb-top-grid .project-chart-head-filtered{
    display:flex;
    grid-template-columns:none;
    gap:14px;
}
.dashboard-gpmb-top-grid .project-chart-head-filtered>.dashboard-gpmb-filters{
    margin-left:auto;
    width:auto;
    min-width:0;
    justify-self:auto;
}
.dashboard-gpmb-top-grid .dashboard-gpmb-filters.has-scope-filter{
    min-width:720px;
    grid-template-columns:minmax(150px,1fr) minmax(210px,1.35fr) minmax(145px,.95fr) minmax(125px,.8fr);
}
.dashboard-gpmb-top-grid .gpmb-donut-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.dashboard-gpmb-top-grid .gpmb-donut-canvas{
    height:175px;
}
.dashboard-gpmb-top-grid .dashboard-funnel-chart{
    height:305px;
    min-height:305px;
}

/* 5) Tiêu đề các biểu đồ dùng cùng cấp chữ/phong cách với "VIỆC CẦN XỬ LÝ NGAY". */
.project-chart-head h3{
    margin:0 0 4px;
    color:#1e293b;
    font-family:Arial,Helvetica,sans-serif;
    font-size:13px!important;
    font-weight:700;
    line-height:1.35;
    text-transform:uppercase;
    letter-spacing:.02em;
}

/* 6) Tất cả trường chọn trên Dashboard dùng đúng cỡ chữ của bộ lọc GPMB chi tiết. */
.dashboard-chart-scope label,
.dashboard-chart-scope-select,
.dashboard-gpmb-filter-field label,
.dashboard-gpmb-filter-field select,
.project-chart-panel select,
.command-week-filter label,
.command-week-filter select{
    font-size:13px!important;
}
.dashboard-chart-scope-select,
.dashboard-gpmb-filter-field select{
    font-weight:650;
}

@media(max-width:1180px){
    .dashboard-gpmb-top-grid .project-chart-head-filtered{
        display:block;
    }
    .dashboard-gpmb-top-grid .project-chart-head-filtered>.dashboard-gpmb-filters{
        margin-left:0;
        margin-top:10px;
        width:100%;
    }
    .dashboard-gpmb-top-grid .dashboard-gpmb-filters.has-scope-filter{
        min-width:0;
    }
}
@media(max-width:900px){
    .topbar,.topbar-dashboard{
        min-height:92px;
        padding-left:18px;
        padding-right:18px;
    }
    .system-agency{display:flex}
}
@media(max-width:760px){
    .system-agency{display:none}
    .topbar-heading.system-heading h1{
        font-size:20px!important;
        line-height:1.12;
    }
    .dashboard-gpmb-top-grid .dashboard-gpmb-filters.has-scope-filter{
        grid-template-columns:1fr;
    }
    .dashboard-gpmb-top-grid .gpmb-donut-grid{
        grid-template-columns:1fr;
    }
    .dashboard-gpmb-top-grid .gpmb-donut-canvas{
        height:150px;
    }
}

/* ==========================================================
   TASK SUMMARY - SIMPLE COMMAND WORKFLOW
   ========================================================== */
.task-simple-form{max-width:900px;margin:0 auto}
.task-simple-grid{align-items:start}
.task-simple-note{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;color:var(--muted);font-size:11px;line-height:1.5}
.task-summary-filter-bar{grid-template-columns:minmax(220px,1.8fr) minmax(180px,1.45fr) minmax(135px,1fr) minmax(165px,1.2fr) minmax(130px,1fr) minmax(130px,1fr) minmax(135px,1fr) auto;align-items:end}
.task-summary-filter-bar .task-filter-actions{display:flex;gap:6px;align-items:center;white-space:nowrap}
.task-summary-filter-bar .task-filter-actions .btn{min-width:auto}
.task-summary-panel .panel-head h2{font-size:13px;letter-spacing:.02em}
.task-summary-table th{white-space:nowrap}
.task-summary-table td{vertical-align:middle}
.task-summary-table td:nth-child(1){width:54px;text-align:center}
.task-summary-table td:nth-child(2){min-width:330px}
.task-summary-table td:nth-child(3){min-width:175px}
.task-summary-table td:nth-child(4){min-width:145px;white-space:nowrap}
.task-summary-table td:nth-child(5){min-width:215px}
.task-summary-table td:nth-child(6){min-width:135px}
.task-summary-table td:nth-child(7){min-width:135px;white-space:nowrap}
.task-summary-table .task-stt{font-weight:400;color:var(--muted)}
.task-summary-table .task-title-link{font-weight:400;color:var(--text);line-height:1.45}
.task-summary-table .task-title-link:hover{color:#155eef;text-decoration:underline;text-underline-offset:2px}
.task-source-link{font-weight:400;color:#155eef;text-decoration:none}
.task-source-link:hover{text-decoration:underline;text-underline-offset:2px}
.task-summary-table .row-created{background:#f0fdf4;box-shadow:inset 3px 0 0 #12b76a}
.task-update-readonly-note{margin-bottom:14px}
@media(max-width:1500px){.task-summary-filter-bar{grid-template-columns:repeat(4,minmax(150px,1fr))}.task-summary-filter-bar .task-filter-keyword{grid-column:span 2}}
@media(max-width:900px){.task-summary-filter-bar{grid-template-columns:repeat(2,minmax(150px,1fr))}.task-summary-filter-bar .task-filter-keyword{grid-column:span 2}}
@media(max-width:650px){.task-summary-filter-bar{grid-template-columns:1fr}.task-summary-filter-bar .task-filter-keyword{grid-column:auto}.task-summary-filter-bar .task-filter-actions{display:grid;grid-template-columns:1fr 1fr}.task-simple-form{max-width:none}}

/* ==========================================================
   TASK MODULE - COMPACT WEEKLY WORKFLOW
   ========================================================== */
.task-summary-filter-compact{
    grid-template-columns:minmax(260px,2fr) minmax(190px,1.35fr) minmax(170px,1.15fr) minmax(135px,.8fr) auto;
    align-items:end;
}
.task-summary-head{margin-bottom:8px}
.task-summary-tabs{
    display:flex;
    gap:4px;
    padding:0 0 12px;
    border-bottom:1px solid var(--line);
    margin-bottom:4px;
}
.task-summary-tab{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:8px 12px;
    border-radius:8px 8px 0 0;
    color:var(--muted);
    font-size:13px;
    font-weight:600;
    border-bottom:2px solid transparent;
}
.task-summary-tab:hover{background:#f5f8fc;color:var(--primary)}
.task-summary-tab.active{color:var(--primary);background:#eef5fb;border-bottom-color:var(--primary)}
.task-summary-tab span{
    min-width:22px;
    text-align:center;
    padding:2px 6px;
    border-radius:999px;
    background:rgba(22,60,102,.08);
    font-size:11px;
}
.task-summary-table-wrap{overflow:visible}
.task-summary-table{width:100%;table-layout:fixed}
.task-summary-table .col-stt{width:4%}
.task-summary-table .col-task{width:29%}
.task-summary-table .col-org{width:16%}
.task-summary-table .col-deadline{width:11%}
.task-summary-table .col-source{width:18%}
.task-summary-table .col-status{width:10%}
.task-summary-table .col-warning{width:12%}
.task-summary-table th,
.task-summary-table td{
    min-width:0!important;
    width:auto!important;
    white-space:normal!important;
    overflow-wrap:anywhere;
    word-break:normal;
    padding:10px 8px;
}
.task-summary-table th:first-child,
.task-summary-table td:first-child{text-align:center}
.task-summary-table tbody tr{transition:background-color .15s ease}
.task-summary-table tbody tr:hover{background:#eaf3fb!important}
.task-summary-table tbody tr:hover td{background:transparent}
.task-summary-table .badge{white-space:normal;line-height:1.25;text-align:center}

.task-minimal-actions{align-items:flex-end}
.task-minimal-title{font-size:13px;margin:8px 0 0;line-height:1.5;font-weight:700}
.task-minimal-layout{max-width:1050px;margin:0 auto}
.task-basic-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    border:1px solid var(--line);
    border-radius:10px;
    overflow:hidden;
}
.task-basic-grid>div{padding:11px 13px;border-bottom:1px solid var(--line);background:#fff}
.task-basic-grid>div:nth-child(odd):not(.task-basic-wide){border-right:1px solid var(--line)}
.task-basic-grid>div:last-child{border-bottom:0}
.task-basic-wide{grid-column:1/-1}
.task-basic-grid dt{font-size:11px;color:var(--muted);margin-bottom:4px;font-weight:600}
.task-basic-grid dd{font-size:13px;margin:0;line-height:1.5}
.task-latest-summary{border:1px solid #d8e5f0;background:#f7fbff;border-radius:10px;padding:13px;margin-bottom:14px}
.task-latest-summary-head,.task-update-history-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;font-size:11px;color:var(--muted)}
.task-latest-summary p,.task-update-history-item p{margin:0;font-size:13px;line-height:1.6;color:var(--text)}
.task-weekly-update-form{border-top:1px solid var(--line);padding-top:14px}
.task-weekly-update-form textarea{resize:vertical;min-height:96px}
.task-empty-compact{padding:16px;margin-bottom:12px}
.task-update-history-list{display:grid;gap:10px}
.task-update-history-item{border:1px solid var(--line);border-radius:10px;padding:12px 13px;background:#fff}
.task-evidence-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.task-evidence-links a{font-size:11px;color:#155eef;background:#eff6ff;border-radius:7px;padding:5px 8px}
.task-evidence-links a:hover{text-decoration:underline;text-underline-offset:2px}

@media(max-width:1100px){
    .task-summary-filter-compact{grid-template-columns:repeat(2,minmax(0,1fr))}
    .task-summary-filter-compact .task-filter-keyword{grid-column:span 2}
    .task-summary-filter-compact .task-filter-actions{grid-column:span 2}
}
@media(max-width:760px){
    .task-summary-filter-compact{grid-template-columns:1fr}
    .task-summary-filter-compact .task-filter-keyword,
    .task-summary-filter-compact .task-filter-actions{grid-column:auto}
    .task-summary-table .col-org,.task-summary-table th:nth-child(3),.task-summary-table td:nth-child(3),
    .task-summary-table .col-status,.task-summary-table th:nth-child(6),.task-summary-table td:nth-child(6){display:none}
    .task-summary-table .col-stt{width:7%}
    .task-summary-table .col-task{width:36%}
    .task-summary-table .col-deadline{width:17%}
    .task-summary-table .col-source{width:23%}
    .task-summary-table .col-warning{width:17%}
    .task-basic-grid{grid-template-columns:1fr}
    .task-basic-wide{grid-column:auto}
    .task-basic-grid>div{border-right:0!important}
}

/* ==========================================================
   MODULE VƯỚNG MẮC - THEO DÕI / CẬP NHẬT THEO TUẦN
   ========================================================== */
.issue-summary-filter-bar{
    grid-template-columns:minmax(240px,1.8fr) minmax(210px,1.45fr) minmax(170px,1fr) minmax(165px,1fr) auto;
    align-items:end;
}
.issue-summary-filter-bar .issue-filter-actions{display:flex;gap:6px;align-items:center;white-space:nowrap}
.issue-summary-head{margin-bottom:8px}
.issue-summary-head h2{font-size:13px;letter-spacing:.02em}
.issue-summary-table-wrap{overflow:visible}
.issue-summary-table{width:100%;table-layout:fixed}
.issue-summary-table .col-stt{width:4%}
.issue-summary-table .col-issue{width:25%}
.issue-summary-table .col-project{width:15%}
.issue-summary-table .col-reporter{width:14%}
.issue-summary-table .col-recommendation{width:23%}
.issue-summary-table .col-status{width:9%}
.issue-summary-table .col-age{width:10%}
.issue-summary-table th,.issue-summary-table td{
    min-width:0!important;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:normal;
    padding:10px 8px;
    vertical-align:middle;
}
.issue-summary-table th:first-child,.issue-summary-table td:first-child{text-align:center}
.issue-summary-table .issue-stt{font-weight:400;color:var(--muted)}
.issue-summary-table .issue-title-link{font-weight:400;color:var(--text);line-height:1.5;display:block}
.issue-summary-table .issue-title-link:hover{color:#155eef;text-decoration:underline;text-underline-offset:2px}
.issue-summary-table tbody tr{transition:background-color .15s ease}
.issue-summary-table tbody tr:hover{background:#eaf3fb!important}
.issue-summary-table tbody tr:hover td{background:transparent}
.issue-summary-table .row-created{background:#eef8f1;box-shadow:inset 3px 0 0 #10b981}
.issue-summary-table .badge{white-space:normal;line-height:1.25;text-align:center}

.issue-simple-form-panel,.issue-minimal-layout{max-width:1050px;margin-left:auto;margin-right:auto}
.issue-simple-form textarea,.issue-weekly-update-form textarea{resize:vertical}
.issue-minimal-actions{align-items:flex-end}
.issue-minimal-title{font-size:13px;margin:8px 0 0;line-height:1.5;font-weight:700;max-width:900px}
.issue-basic-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    border:1px solid var(--line);
    border-radius:10px;
    overflow:hidden;
}
.issue-basic-grid>div{padding:11px 13px;border-bottom:1px solid var(--line);background:#fff}
.issue-basic-grid>div:nth-child(odd):not(.issue-basic-wide){border-right:1px solid var(--line)}
.issue-basic-grid>div:last-child{border-bottom:0}
.issue-basic-wide{grid-column:1/-1}
.issue-basic-grid dt{font-size:11px;color:var(--muted);margin-bottom:4px;font-weight:600}
.issue-basic-grid dd{font-size:13px;margin:0;line-height:1.55}
.issue-latest-summary{border:1px solid #d8e5f0;background:#f7fbff;border-radius:10px;padding:13px;margin-bottom:14px}
.issue-latest-summary-head,.issue-update-history-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px;font-size:11px;color:var(--muted)}
.issue-latest-summary p,.issue-update-history-item p{margin:0;font-size:13px;line-height:1.6;color:var(--text)}
.issue-continuing-recommendation{margin-top:9px;padding-top:9px;border-top:1px dashed #d8e5f0;font-size:13px;line-height:1.55}
.issue-weekly-update-form{border-top:1px solid var(--line);padding-top:14px}
.issue-empty-compact{padding:16px;margin-bottom:12px}
.issue-update-history-list{display:grid;gap:10px}
.issue-update-history-item{border:1px solid var(--line);border-radius:10px;padding:12px 13px;background:#fff}
.issue-evidence-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.issue-evidence-links a{font-size:11px;color:#155eef;background:#eff6ff;border-radius:7px;padding:5px 8px}
.issue-evidence-links a:hover{text-decoration:underline;text-underline-offset:2px}

@media(max-width:1100px){
    .issue-summary-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}
    .issue-summary-filter-bar .issue-filter-keyword{grid-column:span 2}
    .issue-summary-filter-bar .issue-filter-actions{grid-column:span 2}
}
@media(max-width:760px){
    .issue-summary-filter-bar{grid-template-columns:1fr}
    .issue-summary-filter-bar .issue-filter-keyword,.issue-summary-filter-bar .issue-filter-actions{grid-column:auto}
    .issue-summary-table .col-project,.issue-summary-table th:nth-child(3),.issue-summary-table td:nth-child(3),
    .issue-summary-table .col-reporter,.issue-summary-table th:nth-child(4),.issue-summary-table td:nth-child(4){display:none}
    .issue-summary-table .col-stt{width:7%}
    .issue-summary-table .col-issue{width:37%}
    .issue-summary-table .col-recommendation{width:31%}
    .issue-summary-table .col-status{width:12%}
    .issue-summary-table .col-age{width:13%}
    .issue-basic-grid{grid-template-columns:1fr}
    .issue-basic-wide{grid-column:auto}
    .issue-basic-grid>div{border-right:0!important}
}

.issue-summary-table .issue-title-link,
.issue-summary-table .issue-recommendation-cell>span{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    overflow:hidden;
}

/* ==========================================================
   XÓA NHANH TỪ BẢNG TỔNG HỢP NHIỆM VỤ / VƯỚNG MẮC
   ========================================================== */
.task-summary-table .col-action,
.issue-summary-table .col-action{width:5%}
.task-summary-table:has(.col-action) .col-task{width:27%}
.task-summary-table:has(.col-action) .col-org{width:15%}
.task-summary-table:has(.col-action) .col-deadline{width:10%}
.task-summary-table:has(.col-action) .col-source{width:17%}
.task-summary-table:has(.col-action) .col-status{width:10%}
.task-summary-table:has(.col-action) .col-warning{width:12%}
.issue-summary-table:has(.col-action) .col-issue{width:24%}
.issue-summary-table:has(.col-action) .col-project{width:14%}
.issue-summary-table:has(.col-action) .col-reporter{width:13%}
.issue-summary-table:has(.col-action) .col-recommendation{width:21%}
.issue-summary-table:has(.col-action) .col-status{width:9%}
.issue-summary-table:has(.col-action) .col-age{width:10%}
.summary-delete-cell{text-align:center!important;white-space:nowrap}
.summary-delete-cell form{margin:0;display:inline}
.summary-delete-button{
    border:0;
    background:transparent;
    color:#b42318;
    padding:5px 4px;
    font-size:11px;
    font-weight:700;
    cursor:pointer;
    border-radius:6px;
}
.summary-delete-button:hover{background:#fef3f2;color:#912018}
@media(max-width:1100px){
    .task-summary-table .col-action,.task-summary-table th:last-child,.task-summary-table td:last-child,
    .issue-summary-table .col-action,.issue-summary-table th:last-child,.issue-summary-table td:last-child{width:54px}
}


/* ==========================================================
   FONT SYSTEM - 2026-08-23
   Toan bo giao dien va truong nhap lieu dung Arial/Helvetica.
   ========================================================== */
html,body,button,input,select,textarea,option,table,th,td,a,label,small{
    font-family:Arial,Helvetica,sans-serif!important;
}

/* ==========================================================
   DASHBOARD GIAI ĐOẠN CHUẨN BỊ ĐẦU TƯ
   ========================================================== */
.prep-dashboard-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.prep-dashboard-intro h2{margin:8px 0 4px;font-size:13px}.prep-dashboard-intro p{margin:0;color:#667085;font-size:11px}
.prep-kpi-grid{display:grid;grid-template-columns:1.35fr .8fr .8fr .8fr 1.35fr;gap:12px;margin:14px 0}
.prep-kpi-card{background:#fff;border:1px solid #e4e7ec;border-radius:10px;padding:14px;min-height:105px;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.prep-kpi-card>span,.prep-kpi-card>small{display:block;font-size:11px;color:#667085}.prep-kpi-card>strong{display:block;margin:9px 0 6px;font-size:20px;color:#101828;line-height:1.2}.prep-kpi-card:first-child>strong,.prep-next-milestone>strong{font-size:13px;line-height:1.45}.prep-kpi-card.danger{border-left:4px solid #ef4444}.prep-kpi-card.warning{border-left:4px solid #f59e0b}.prep-next-milestone{border-left:4px solid #136eff}
.prep-attention-table,.prep-detail-table,.prep-plan-table{table-layout:fixed;width:100%}.prep-attention-table th:nth-child(1){width:44px}.prep-attention-table th:nth-child(2){width:27%}.prep-attention-table th:nth-child(3){width:13%}.prep-attention-table th:nth-child(4){width:14%}.prep-attention-table th:nth-child(5){width:88px}.prep-attention-table th:nth-child(6){width:110px}.prep-attention-table td{white-space:normal;word-break:break-word}.prep-row-overdue td{background:#fff7f7}.prep-row-due td{background:#fffaf0}
.prep-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.prep-group-card{background:#fff;border:1px solid #e4e7ec;border-radius:10px;padding:14px}.prep-group-card.has-overdue{border-left:4px solid #ef4444}.prep-group-card h3{margin:0 0 10px;font-size:13px}.prep-group-numbers{display:flex;gap:8px 14px;flex-wrap:wrap;font-size:11px;color:#667085}.prep-group-numbers strong{font-size:13px;color:#101828}
.prep-milestone-track{display:flex;gap:0;overflow-x:auto;padding:12px 8px 4px}.prep-milestone{position:relative;min-width:190px;padding:24px 14px 10px;border-top:2px solid #d0d5dd}.prep-milestone-dot{position:absolute;top:-7px;left:15px;width:12px;height:12px;border-radius:50%;background:#136eff;border:2px solid #fff;box-shadow:0 0 0 1px #136eff}.prep-milestone.done{border-color:#10b981}.prep-milestone.done .prep-milestone-dot{background:#10b981;box-shadow:0 0 0 1px #10b981}.prep-milestone.late{border-color:#ef4444}.prep-milestone.late .prep-milestone-dot{background:#ef4444;box-shadow:0 0 0 1px #ef4444}.prep-milestone strong{font-size:13px}.prep-milestone p{margin:5px 0;font-size:11px;line-height:1.45}.prep-milestone small{font-size:11px;color:#667085}
.prep-detail-table th:nth-child(1){width:44px}.prep-detail-table th:nth-child(2){width:15%}.prep-detail-table th:nth-child(3){width:28%}.prep-detail-table th:nth-child(4){width:12%}.prep-detail-table th:nth-child(5),.prep-detail-table th:nth-child(6){width:82px}.prep-detail-table th:nth-child(7){width:95px}.prep-detail-table td{white-space:normal;word-break:break-word}
.prep-plan-table td{white-space:normal;word-break:break-word}.prep-plan-actions{justify-content:flex-end}.prep-dashboard-empty{margin-top:14px}
@media(max-width:1200px){.prep-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.prep-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.prep-dashboard-intro{display:block}.prep-dashboard-intro .btn{margin-top:10px}.prep-kpi-grid,.prep-group-grid{grid-template-columns:1fr}}

/* ==========================================================
   FIX FONT DASHBOARD 23/08/2026 - Arial native weight
   Tranh synthetic 800 tren Windows lam chu bi day/meo.
   ========================================================== */
.project-dashboard-intro h2,
.project-dashboard-intro h2 *{
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:13px!important;
    font-weight:700!important;
    font-style:normal!important;
    font-stretch:normal!important;
    letter-spacing:0!important;
    line-height:1.4!important;
}
.project-master-card-head>span:first-child,
.project-master-card-head>span:first-child *{
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:13px!important;
    font-weight:700!important;
    font-style:normal!important;
    font-stretch:normal!important;
    letter-spacing:0!important;
    line-height:1.3!important;
}


/* ==========================================================
   DASHBOARD CHUẨN BỊ ĐẦU TƯ - GANTT + PANEL CHI TIẾT
   ========================================================== */
.prep-gantt-section{overflow:hidden}
.prep-gantt-heading{align-items:flex-start;gap:16px}
.prep-gantt-heading-tools{display:flex;align-items:center;justify-content:flex-end;gap:8px 12px;flex-wrap:wrap}
.prep-gantt-heading-tools>label{font-size:11px;font-weight:700;color:#475467}
.prep-gantt-zoom-select{height:32px;min-width:88px;padding:5px 28px 5px 9px;border:1px solid #d0d5dd;border-radius:7px;background:#fff;font:400 11px Arial,Helvetica,sans-serif;color:#344054}
.prep-gantt-legend{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end;font-size:11px;color:#667085}
.prep-gantt-legend span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.prep-gantt-legend i{display:inline-block;width:18px;height:7px;border-radius:999px;background:#dbe7f6}
.prep-gantt-legend i.progress{background:#136eff}
.prep-gantt-legend i.remaining{background:rgba(19,110,255,.08);border:1px dashed rgba(19,110,255,.50);box-sizing:border-box}
.prep-gantt-legend i.overdue{background:#fda29b;border:1px solid #d92d20;box-sizing:border-box}
.prep-gantt-legend i.early{background:#d1fadf;border:1px dashed #10b981}
.prep-gantt-legend i.forecast{background:rgba(19,110,255,.14);border:1px dashed rgba(19,110,255,.42)}
.prep-gantt-scroll{overflow-x:auto;overflow-y:hidden;border:1px solid #e4e7ec;border-radius:10px;background:#fff}
.prep-gantt-canvas{--prep-gantt-fixed-width:390px;min-width:calc(var(--prep-gantt-fixed-width) + var(--prep-gantt-timeline-width));width:calc(var(--prep-gantt-fixed-width) + var(--prep-gantt-timeline-width));transition:width .18s ease,min-width .18s ease}
.prep-gantt-grid{display:grid;grid-template-columns:var(--prep-gantt-fixed-width) var(--prep-gantt-timeline-width);min-height:64px;border-bottom:1px solid #eef1f5}
.prep-gantt-header-row{min-height:64px;background:#f8fafc;position:sticky;top:0;z-index:5}
.prep-gantt-fixed{position:sticky;left:0;z-index:3;background:#fff;display:grid;grid-template-columns:36px 250px 72px 32px;align-items:stretch;border-right:1px solid #e4e7ec}
.prep-gantt-fixed-header{background:#f8fafc;z-index:6;font-weight:700;color:#344054}
.prep-gantt-fixed>span{display:flex;align-items:center;padding:7px 6px;border-right:1px solid #eef1f5;font-size:11px;min-width:0}
.prep-gantt-fixed>span:last-child{border-right:0}
.prep-gantt-task{display:block!important;line-height:1.3;padding-top:7px!important;padding-bottom:6px!important}
.prep-gantt-task strong{display:block;font-size:11px;font-weight:700;color:#1d2939}
.prep-gantt-task small{display:block;margin-top:2px;font-size:11px;color:#667085;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prep-gantt-task .prep-gantt-dependency{color:#475467}
.prep-gantt-task .prep-gantt-dependency.blocked{color:#b54708;font-weight:700}
.prep-gantt-lead{line-height:1.25;color:#475467;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prep-gantt-percent{justify-content:center;color:#344054;padding-left:2px!important;padding-right:2px!important}
.prep-gantt-percent strong{font-size:11px}
.prep-gantt-row{cursor:pointer;outline:none;transition:background .15s ease}
.prep-gantt-row:hover .prep-gantt-fixed,.prep-gantt-row:focus .prep-gantt-fixed{background:#eef6ff}
.prep-gantt-row.is-overdue .prep-gantt-percent strong{color:#b42318}
.prep-gantt-row.is-completed .prep-gantt-percent strong{color:#067647}
.prep-gantt-row.is-blocked .prep-gantt-fixed{background:#fffaeb}
.prep-gantt-timeline{position:relative;width:var(--prep-gantt-timeline-width);min-height:64px;background:#fff}
.prep-gantt-time-header{height:64px;min-height:64px;background:#f8fafc}
.prep-gantt-months{position:absolute;left:0;right:0;top:0;height:31px;background:#f8fafc;border-bottom:1px solid #dfe3e8}
.prep-gantt-month{position:absolute;top:0;bottom:0;border-left:1px solid #dfe3e8;display:flex;align-items:center;justify-content:center;color:#344054;font-size:11px;overflow:hidden}
.prep-gantt-month:first-child{border-left:0}
.prep-gantt-month b{font-weight:700;white-space:nowrap}
.prep-gantt-dates{position:absolute;left:0;right:0;top:31px;height:33px;background-color:#fff;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--prep-gantt-day-width) - 1px),#eef1f5 calc(var(--prep-gantt-day-width) - 1px),#eef1f5 var(--prep-gantt-day-width))}
.prep-gantt-date-tick{position:absolute;top:0;bottom:0;width:1px;border-left:1px solid #cfd5dd;color:#667085;font-size:11px}
.prep-gantt-date-tick[hidden]{display:none}
.prep-gantt-date-tick b{position:absolute;top:9px;left:4px;font-weight:400;white-space:nowrap}
.prep-gantt-month-grid{position:absolute;top:0;bottom:0;width:1px;background:#dfe3e8;z-index:1}
.prep-gantt-row-timeline{background-color:#fff;background-image:repeating-linear-gradient(to right,transparent 0,transparent calc(var(--prep-gantt-day-width) - 1px),#f1f3f5 calc(var(--prep-gantt-day-width) - 1px),#f1f3f5 var(--prep-gantt-day-width))}
.prep-gantt-today-line{position:absolute;top:0;bottom:0;width:2px;background:#f04438;z-index:7;pointer-events:none}
.prep-gantt-today-line em{position:absolute;top:2px;left:5px;font-style:normal;font-size:11px;font-weight:700;color:#b42318;white-space:nowrap}
.prep-gantt-time-header .prep-gantt-today-line em{top:39px;background:#fff;padding:1px 4px;border-radius:4px}
.prep-gantt-lane-label{display:none}
.prep-gantt-lane-label-plan{display:none}
.prep-gantt-lane-label-actual{display:none}
.prep-gantt-bar{position:absolute;height:16px;border-radius:4px;z-index:3;overflow:visible}
.prep-gantt-plan-bar{top:14px;background:#dbe7f6;box-shadow:inset 0 0 0 1px rgba(19,110,255,.16)}
.prep-gantt-actual-bar{top:32px;background:transparent;box-shadow:none}
.prep-gantt-forecast-bar{top:32px;background:rgba(19,110,255,.12);border:1px dashed rgba(19,110,255,.40);box-sizing:border-box;z-index:2}
/* Thanh thực hiện và dự kiến phải nối liền thành một dải duy nhất. */
.prep-gantt-progress-remaining{position:absolute;top:0;height:100%;background:rgba(19,110,255,.08);border:1px dashed rgba(19,110,255,.50);border-left:0;border-radius:0 4px 4px 0;box-sizing:border-box;z-index:1}
.prep-gantt-progress-remaining.full{border-left:1px dashed rgba(19,110,255,.50);border-radius:4px}
.prep-gantt-progress-fill{position:absolute;left:0;top:0;height:100%;background:#136eff;border-radius:4px;z-index:2}
.prep-gantt-progress-fill.has-remaining{border-radius:4px 0 0 4px}
.prep-gantt-actual-bar.completed .prep-gantt-progress-fill{background:#10b981}
/* Phần thời gian vượt quá ngày hoàn thành theo kế hoạch được phủ đỏ nhạt. */
.prep-gantt-overdue-part{position:absolute;top:0;height:100%;background:#f97066!important;border:1px solid #f97066;border-left:0;box-sizing:border-box;border-radius:0 4px 4px 0;z-index:5;pointer-events:auto;cursor:pointer}
.prep-gantt-overdue-part.completed-overdue{background:#e85d56!important;border-color:#e85d56}
.prep-gantt-duration-label{position:absolute;right:100%;left:auto;top:1px;margin-right:5px;font-size:11px;line-height:14px;white-space:nowrap;color:#667085;font-weight:400;z-index:5;background:rgba(255,255,255,.90);padding:0 2px;border-radius:3px}
/* Nhãn % bám ngay cuối phần đã thực hiện, không chạy tới cuối thanh dự kiến. */
.prep-gantt-percent-label{position:absolute;top:1px;margin-left:5px;font-size:11px;line-height:14px;white-space:nowrap;color:#136eff;font-weight:700;background:rgba(255,255,255,.92);padding:0 2px;border-radius:3px;z-index:6;transform:translateX(0)}
.prep-gantt-actual-bar.completed .prep-gantt-percent-label{color:#067647}
.prep-gantt-delay-label,.prep-gantt-early-label{display:none}
.prep-gantt-delay-label{display:none}
.prep-gantt-early-label{display:none}
.prep-gantt-actual-missing{position:absolute;top:32px;left:8px;font-size:11px;font-weight:700;color:#b54708;background:#fffaeb;padding:1px 5px;border-radius:4px;z-index:4}
.prep-gantt-row-timeline:after{display:none}
.prep-step-detail-panel{margin-top:14px;border:1px solid #d0d5dd;border-radius:10px;background:#fff;padding:16px;box-shadow:0 6px 22px rgba(16,24,40,.08)}
.prep-step-detail-panel[hidden],.prep-step-detail-grid>[hidden],.prep-step-detail-meta>[hidden]{display:none!important}
.prep-step-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid #eaecf0}
.prep-step-detail-head span{display:block;font-size:11px;color:#667085;margin-bottom:4px}
.prep-step-detail-head h3{margin:0;font-size:13px;color:#101828}
.prep-step-detail-meta{display:flex;gap:8px 22px;flex-wrap:wrap;padding:12px 0;font-size:11px;color:#475467}
.prep-step-detail-meta b{color:#344054}.prep-step-detail-meta em{font-style:normal}.prep-step-detail-meta strong{font-size:13px;color:#136eff}
.prep-step-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.prep-step-detail-grid>div{padding:12px;border:1px solid #eaecf0;border-radius:8px;background:#f9fafb;min-height:90px}
.prep-step-detail-grid span{display:block;font-size:11px;font-weight:700;color:#475467;margin-bottom:7px;text-transform:uppercase}
.prep-step-detail-grid p{margin:0;font-size:13px;line-height:1.55;color:#1d2939;white-space:pre-wrap}
.prep-step-detail-expected{grid-column:1/-1;min-height:auto!important}
.prep-detail-evidence-links{display:flex;gap:7px 12px;flex-wrap:wrap}
.prep-detail-evidence-links a{font-size:13px}
.prep-step-detail-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-top:12px}
.prep-update-context{margin-bottom:14px}
.prep-update-history td{white-space:normal;vertical-align:top}
.form-field.is-disabled{opacity:.58}
.form-field.is-disabled input{background:#f2f4f7;cursor:not-allowed}

@media(max-width:900px){
    .prep-gantt-canvas{--prep-gantt-fixed-width:350px}
    .prep-gantt-fixed{grid-template-columns:34px 222px 64px 30px}
    .prep-step-detail-grid{grid-template-columns:1fr}
    .prep-step-detail-expected{grid-column:auto}
    .prep-gantt-heading-tools{justify-content:flex-start}
}


/* Preparation plan compact item form - 29/08/2026 */
.prep-item-compact-form{grid-template-columns:150px minmax(0,1fr);align-items:start}
.prep-item-compact-form textarea{min-height:64px}
@media(max-width:760px){.prep-item-compact-form{grid-template-columns:1fr}}

/* ==========================================================
   TINH GỌN KẾ HOẠCH CHUẨN BỊ ĐẦU TƯ - 29/08/2026 LẦN 5
   ========================================================== */
.prep-item-compact-form{display:flex;flex-direction:column;gap:14px}
.prep-item-top-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:14px;align-items:start}
.prep-item-schedule-row{display:grid;grid-template-columns:minmax(260px,1fr) 170px 170px;gap:14px;align-items:start}
.prep-item-sort-field input{max-width:130px}
.prep-item-form-actions{margin-top:20px!important;padding-top:4px}
.prep-plan-table-simple th:first-child,.prep-plan-table-simple td:first-child{text-align:center;width:48px}
.prep-plan-table-simple th:nth-child(4),.prep-plan-table-simple td:nth-child(4),
.prep-plan-table-simple th:nth-child(5),.prep-plan-table-simple td:nth-child(5){white-space:nowrap;width:112px}
.prep-plan-action-cell{white-space:nowrap;width:126px}
.prep-plan-action-cell .inline-form{display:inline-flex;margin-left:5px}

/* Gantt: cột cố định luôn nằm trên timeline khi cuộn ngang */
.prep-gantt-scroll{position:relative}
.prep-gantt-timeline{position:relative;z-index:1;isolation:isolate}
.prep-gantt-fixed{z-index:30;box-shadow:5px 0 8px rgba(16,24,40,.05)}
.prep-gantt-fixed-header{z-index:40}
.prep-gantt-header-row{z-index:20}

/* Cột Công việc chỉ hiển thị tên, chữ thường và căn giữa dọc */
.prep-gantt-row .prep-gantt-task{
    display:flex!important;
    align-items:center;
    justify-content:flex-start;
    padding-top:7px!important;
    padding-bottom:7px!important;
    font-size:11px;
    font-weight:400;
    line-height:1.35;
    color:#1d2939;
    overflow:hidden;
    text-overflow:ellipsis;
}
.prep-gantt-fixed-header .prep-gantt-task{
    display:flex!important;
    align-items:center;
    justify-content:flex-start;
    font-size:11px;
    font-weight:700;
    color:#344054;
    line-height:1.3;
}
.prep-gantt-stt{justify-content:center;text-align:center}
.prep-gantt-fixed-header .prep-gantt-stt{justify-content:center}

@media(max-width:900px){
    .prep-item-schedule-row{grid-template-columns:1fr 150px 150px}
}
@media(max-width:760px){
    .prep-item-top-row,.prep-item-schedule-row{grid-template-columns:1fr}
    .prep-item-sort-field input{max-width:none}
}

/* ==========================================================
   UI REFINEMENT - 2026-08-30 - PREPARATION FORM / COMMON HEADER / SIDEBAR
   ========================================================== */

/* 1) Form công việc chuẩn bị đầu tư: các hàng cùng một mép phải. */
.prep-item-compact-form{
    width:100%;
    max-width:100%;
}
.prep-item-top-row,
.prep-item-schedule-row,
.prep-item-compact-form>.form-field{
    width:100%;
    max-width:100%;
    min-width:0;
}
.prep-item-top-row>.form-field,
.prep-item-schedule-row>.form-field{
    min-width:0;
}
.prep-item-top-row textarea[name="title"],
.prep-item-schedule-row input[name="lead_agency"],
.prep-item-compact-form select[name="predecessor_item_id"]{
    display:block;
    width:100%!important;
    max-width:none!important;
    min-width:0;
}
.prep-item-top-row{
    grid-template-columns:130px minmax(0,1fr);
}
.prep-item-schedule-row{
    grid-template-columns:minmax(0,1fr) 170px 170px;
}

/* 2) Header dùng chung toàn hệ thống: xanh đậm, nhạt dần vào chính giữa. */
.topbar{
    min-height:89px!important;
    height:auto!important;
    padding:10px 30px!important;
    background:linear-gradient(90deg,#0b2947 0%,#123d66 22%,#1d5c8d 50%,#123d66 78%,#0b2947 100%)!important;
    border-bottom:1px solid rgba(255,255,255,.12)!important;
    box-shadow:0 2px 8px rgba(9,30,52,.16)!important;
    color:#fff;
}
.topbar::before{display:none!important}
.topbar-left{
    min-width:0;
    flex:1 1 auto;
}
/* Căn khối nhận diện theo tâm thực của toàn Header, không phụ thuộc nút sidebar/tài khoản. */
.topbar-heading.system-heading{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
    width:min(1040px,calc(100% - 430px));
    min-width:0;
    gap:2px;
    text-align:center;
}
.system-agency{
    color:rgba(255,255,255,.92)!important;
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:14px!important;
    font-weight:700!important;
    letter-spacing:.025em!important;
}
.system-agency span{
    color:inherit!important;
    background:transparent!important;
    border:0!important;
    padding:0!important;
}
.topbar-heading.system-heading h1{
    margin:0!important;
    color:#fff!important;
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:20px!important;
    font-weight:700!important;
    line-height:1.2!important;
    letter-spacing:.004em!important;
    text-align:center!important;
    width:100%;
    max-width:none!important;
}
.system-heading-meta{
    justify-content:center!important;
    margin-top:2px!important;
}
.system-heading-meta p{
    color:rgba(255,255,255,.88)!important;
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:13px!important;
    font-weight:700!important;
}
.system-heading-line{
    background:rgba(255,255,255,.32)!important;
}
.sidebar-toggle{
    border-color:rgba(255,255,255,.28)!important;
    background:rgba(255,255,255,.08)!important;
    color:#fff!important;
}
.sidebar-toggle:hover{
    border-color:rgba(255,255,255,.48)!important;
    background:rgba(255,255,255,.16)!important;
    color:#fff!important;
}
.topbar .account-trigger{
    color:#fff!important;
}
.topbar .account-trigger:hover,
.topbar .account-menu.open .account-trigger{
    background:rgba(255,255,255,.10)!important;
    border-color:rgba(255,255,255,.16)!important;
}
.topbar .account-trigger-copy strong{
    color:#fff!important;
    font-weight:700!important;
}
.topbar .account-trigger-copy small{
    color:rgba(255,255,255,.78)!important;
}
.topbar .account-chevron{
    color:rgba(255,255,255,.78)!important;
}
.topbar .account-avatar:not(.account-avatar-large){
    background:#fff!important;
    color:#123d66!important;
    box-shadow:0 2px 8px rgba(0,0,0,.14)!important;
}
/* Dropdown vẫn dùng nền sáng và màu chữ chuẩn. */
.topbar .account-dropdown{
    color:#17212b;
}
.topbar .account-dropdown .account-avatar-large{
    background:linear-gradient(145deg,#173e69,#0f2e50)!important;
    color:#fff!important;
}

/* 3) Sidebar: icon nhất quán và brand dùng đúng Arial như tiêu đề Header. */
.brand-copy strong{
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:13px!important;
    font-weight:700!important;
    line-height:1.2!important;
    letter-spacing:.004em!important;
}
.nav>a,
.nav-parent{
    display:flex;
    align-items:center;
    gap:10px;
}
.nav>a{
    min-height:42px;
}
.nav-icon{
    width:18px;
    height:18px;
    flex:0 0 18px;
    display:inline-grid;
    place-items:center;
    color:rgba(255,255,255,.78);
}
.nav-icon svg{
    width:18px;
    height:18px;
    display:block;
}
.nav>a:hover .nav-icon,
.nav>a.active .nav-icon,
.nav-parent:hover .nav-icon,
.nav-group.active>.nav-parent .nav-icon{
    color:#fff;
}
.nav-parent-label{
    flex:1 1 auto;
    min-width:0;
}
.nav-parent-chevron{
    margin-left:auto;
}
.nav-submenu a{
    display:flex;
    align-items:center;
    gap:7px;
}
.nav-sub-icon{
    width:10px;
    flex:0 0 10px;
    text-align:center;
    color:rgba(255,255,255,.48);
    font-size:13px;
}
.nav-submenu a:hover .nav-sub-icon,
.nav-submenu a.active .nav-sub-icon{
    color:#fff;
}

@media(max-width:900px){
    .topbar{
        min-height:89px!important;
        padding-left:18px!important;
        padding-right:18px!important;
    }
    .topbar-heading.system-heading{
        width:min(720px,calc(100% - 180px));
    }
}
@media(max-width:760px){
    .topbar{
        min-height:82px!important;
        padding:12px 14px!important;
    }
    .topbar-heading.system-heading{
        position:static;
        transform:none;
        width:auto;
        flex:1 1 auto;
    }
    .system-agency{
        font-size:13px!important;
    }
    .topbar-heading.system-heading h1{
        font-size:13px!important;
        line-height:1.25!important;
    }
    .prep-item-top-row,
    .prep-item-schedule-row{
        grid-template-columns:1fr;
    }
}

/* ==========================================================
   LOGIN PORTAL - 30/08/2026 | no-map / sharp highway
   ========================================================== */
body.login-portal-page{
    position:relative;
    min-height:100vh;
    overflow:hidden;
    display:block;
    padding:0;
    background:#062b4b;
    font-family:Arial,Helvetica,sans-serif;
}
.login-portal-bg{
    position:fixed;
    inset:0;
    overflow:hidden;
    background:
        radial-gradient(circle at 44% 18%,rgba(35,126,179,.26),transparent 34%),
        linear-gradient(118deg,#052642 0%,#083d65 44%,#0b5f7b 100%);
    z-index:0;
}
.login-portal-highway,
.login-portal-overlay{
    position:absolute;
    inset:0;
    pointer-events:none;
}
/*
 * Ảnh cao tốc chỉ chiếm nửa phải màn hình để giữ gần kích thước gốc,
 * tránh phải phóng lớn toàn màn hình gây mờ. Không dùng opacity/filter blur.
 */
.login-portal-highway{
    left:auto;
    right:0;
    width:58%;
    background-image:none;
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center 44%;
    opacity:1;
    filter:saturate(1.04) contrast(1.05) brightness(.96);
}
.login-portal-highway::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(5,41,70,.98) 0%,rgba(5,41,70,.72) 12%,rgba(5,41,70,.24) 31%,rgba(5,41,70,.06) 52%,transparent 72%);
}
.login-portal-highway::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(3,28,51,.18) 0%,transparent 38%,rgba(3,30,53,.18) 100%);
}
.login-portal-overlay{
    background:
        linear-gradient(90deg,rgba(3,30,53,.30) 0%,rgba(4,39,68,.16) 42%,rgba(3,30,53,.04) 68%,rgba(2,23,42,.08) 100%),
        radial-gradient(circle at 50% 42%,rgba(18,96,139,.10),rgba(2,27,50,.16) 72%);
}
.login-agency-badge{
    position:fixed;
    top:22px;
    right:28px;
    z-index:3;
    display:flex;
    align-items:center;
    gap:8px;
    color:rgba(255,255,255,.94);
    font-family:Arial,Helvetica,sans-serif;
    font-size:11px;
    font-weight:700;
    text-shadow:0 1px 2px rgba(0,0,0,.22);
}
.login-agency-badge svg{width:18px;height:18px;flex:0 0 18px}
.login-portal-stage{
    position:relative;
    z-index:2;
    min-height:100vh;
    width:min(1040px,calc(100% - 40px));
    margin:0 auto;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    padding:55px 0 34px;
}
.login-portal-brand{
    width:min(900px,100%);
    text-align:center;
    color:#fff;
    font-family:Arial,Helvetica,sans-serif;
    text-shadow:0 2px 6px rgba(0,0,0,.25);
}
.login-portal-emblem{
    display:block;
    width:82px;
    height:82px;
    object-fit:contain;
    margin:0 auto 10px;
    filter:drop-shadow(0 4px 8px rgba(0,0,0,.24));
}
.login-portal-brand h1{
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    font-size:20px;
    line-height:1.25;
    font-weight:700;
    letter-spacing:0;
    color:#fff;
}
.login-portal-brand p{
    margin:8px 0 0;
    font-family:Arial,Helvetica,sans-serif;
    font-size:13px;
    line-height:1.45;
    font-weight:700;
    color:rgba(255,255,255,.94);
}
.login-card.login-portal-card{
    width:min(440px,calc(100vw - 36px));
    margin-top:28px;
    padding:32px 34px 34px;
    border:1px solid rgba(255,255,255,.78);
    border-radius:18px;
    background:rgba(255,255,255,.97);
    box-shadow:0 24px 70px rgba(0,29,53,.31),0 2px 10px rgba(0,0,0,.10);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
}
.login-portal-form{display:grid;gap:16px}
.login-field{
    position:relative;
    display:block!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
}
.login-field-label{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}
.login-field-icon{
    position:absolute;
    left:17px;
    top:50%;
    z-index:2;
    width:20px;
    height:20px;
    transform:translateY(-50%);
    color:#8a99a8;
}
.login-field-icon svg{width:20px;height:20px;display:block}
.login-card.login-portal-card .login-field input{
    width:100%;
    height:58px;
    margin:0;
    padding:0 48px 0 52px;
    border:1px solid #d6dee7;
    border-radius:9px;
    outline:none;
    background:#fff;
    color:#24364a;
    font-family:Arial,Helvetica,sans-serif;
    font-size:13px;
    font-weight:400;
    box-shadow:inset 0 1px 2px rgba(16,24,40,.02);
    transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.login-card.login-portal-card .login-field input::placeholder{color:#9aa7b4;opacity:1}
.login-card.login-portal-card .login-field input:focus{
    border-color:#3c88b5;
    background:#fff;
    box-shadow:0 0 0 3px rgba(29,112,161,.12);
}
.login-password-toggle{
    position:absolute;
    top:50%;
    right:13px;
    z-index:3;
    width:32px;
    height:32px;
    transform:translateY(-50%);
    display:grid;
    place-items:center;
    border:0;
    border-radius:7px;
    padding:0;
    background:transparent;
    color:#7e8d9d;
    cursor:pointer;
}
.login-password-toggle:hover{background:#f3f6f9;color:#315d7d}
.login-password-toggle svg{width:19px;height:19px}
.login-remember-row.login-remember-simple{
    display:inline-flex!important;
    align-items:center;
    justify-self:start;
    gap:8px;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    color:#526476;
    font-family:Arial,Helvetica,sans-serif;
    font-size:11px;
    font-weight:400;
    cursor:pointer;
}
.login-card.login-portal-card .login-remember-simple input{
    width:17px;
    height:17px;
    flex:0 0 17px;
    margin:0;
    padding:0;
    accent-color:#0d6f99;
}
.login-remember-simple span{font-size:11px;color:#526476;font-weight:400}
.login-submit{
    min-height:54px;
    margin-top:2px;
    border-radius:8px;
    background:linear-gradient(90deg,#0795a0 0%,#087f9c 48%,#075a8c 100%);
    box-shadow:0 8px 18px rgba(4,88,130,.19);
    font-family:Arial,Helvetica,sans-serif;
    font-size:13px;
    font-weight:700;
    letter-spacing:.15px;
}
.login-submit:hover{
    background:linear-gradient(90deg,#078c97 0%,#087392 48%,#064f7f 100%);
}
.login-alert{margin:0 0 16px;font-size:11px;line-height:1.45}

@media(max-width:900px){
    body.login-portal-page{overflow:auto}
    .login-portal-stage{min-height:100vh;padding:48px 0 30px}
    .login-portal-highway{width:70%;background-position:center 44%}
    .login-portal-highway::before{background:linear-gradient(90deg,rgba(5,41,70,.96) 0%,rgba(5,41,70,.62) 20%,rgba(5,41,70,.14) 48%,transparent 72%)}
    .login-agency-badge{top:16px;right:18px;font-size:11px}
    .login-portal-brand{padding-top:10px}
    .login-card.login-portal-card{margin-top:24px}
}
@media(max-width:620px){
    .login-agency-badge{display:none}
    .login-portal-stage{width:calc(100% - 28px);padding:28px 0 24px}
    .login-portal-highway{left:0;right:0;width:100%;opacity:.72;background-position:center 44%}
    .login-portal-highway::before{background:linear-gradient(90deg,rgba(4,37,64,.48),rgba(4,37,64,.30))}
    .login-portal-overlay{background:rgba(4,37,64,.48)}
    .login-portal-emblem{width:70px;height:70px;margin-bottom:8px}
    .login-portal-brand h1{font-size:20px}
    .login-portal-brand p{font-size:11px;line-height:1.4;margin-top:6px}
    .login-card.login-portal-card{width:100%;padding:26px 22px 28px;border-radius:16px;margin-top:22px}
    .login-card.login-portal-card .login-field input{height:54px}
    .login-submit{min-height:50px}
}

/* ==========================================================
   LOGIN PORTAL FINAL - 30/08/2026 | full-HD CSS composition
   ========================================================== */
body.login-portal-page{
    min-height:100vh;
    overflow:hidden;
    padding:0;
    background:#052b4b;
    font-family:Arial,Helvetica,sans-serif;
}
.login-portal-bg{
    position:fixed;
    inset:0;
    z-index:0;
    overflow:hidden;
    background:
        radial-gradient(circle at 47% 17%,rgba(18,112,166,.36) 0%,rgba(18,112,166,.10) 26%,transparent 49%),
        radial-gradient(circle at 18% 68%,rgba(0,149,186,.10),transparent 32%),
        linear-gradient(118deg,#031b35 0%,#052f52 38%,#07547a 68%,#0b6685 100%);
}
/* Subtle technology texture only; intentionally no map. */
.login-portal-bg::before{
    content:"";
    position:absolute;
    inset:0 50% 0 0;
    pointer-events:none;
    opacity:.30;
    background-image:
        radial-gradient(circle,rgba(72,185,236,.38) 0 1px,transparent 1.35px),
        linear-gradient(135deg,transparent 0 48%,rgba(42,154,204,.08) 49% 50%,transparent 51% 100%);
    background-size:52px 52px,140px 140px;
    mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.62) 58%,transparent 100%);
    -webkit-mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.62) 58%,transparent 100%);
}
.login-portal-highway{
    position:absolute;
    top:0;
    right:0;
    bottom:0;
    left:auto;
    width:60%;
    background-image:none;
    background-repeat:no-repeat;
    background-size:cover;
    background-position:center 46%;
    opacity:1;
    filter:saturate(1.08) contrast(1.06) brightness(.98);
    transform:translateZ(0);
}
.login-portal-highway::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg,#052b4b 0%,rgba(5,43,75,.97) 3%,rgba(5,43,75,.78) 13%,rgba(5,43,75,.32) 29%,rgba(5,43,75,.07) 47%,transparent 66%),
        linear-gradient(180deg,rgba(1,18,36,.22) 0%,transparent 36%,rgba(1,19,38,.08) 74%,rgba(1,20,38,.25) 100%);
}
.login-portal-highway::after{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(ellipse at 72% 42%,transparent 0 46%,rgba(1,27,49,.08) 74%,rgba(1,23,44,.18) 100%);
}
.login-portal-overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg,rgba(0,18,39,.08) 0%,transparent 38%,rgba(0,18,37,.09) 100%),
        radial-gradient(circle at 50% 22%,rgba(41,135,182,.08),transparent 35%);
}
/* Removed top-right agency badge by design. */
.login-agency-badge{display:none!important}
.login-portal-stage{
    position:relative;
    z-index:2;
    min-height:100vh;
    width:min(1180px,calc(100% - 48px));
    margin:0 auto;
    padding:38px 0 30px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
}
.login-portal-brand{
    width:min(1120px,100%);
    text-align:center;
    color:#fff;
    font-family:Arial,Helvetica,sans-serif;
    text-shadow:0 2px 8px rgba(0,0,0,.26);
}
.login-portal-emblem{
    display:block;
    width:92px;
    height:92px;
    object-fit:contain;
    margin:0 auto 12px;
    filter:drop-shadow(0 5px 10px rgba(0,0,0,.28));
}
.login-portal-brand h1{
    margin:0;
    color:#fff;
    font-family:Arial,Helvetica,sans-serif;
    font-size:35px;
    line-height:1.18;
    font-weight:700;
    letter-spacing:0;
    white-space:nowrap;
}
.login-portal-brand p{
    margin:10px 0 0;
    color:rgba(255,255,255,.96);
    font-family:Arial,Helvetica,sans-serif;
    font-size:15px;
    line-height:1.35;
    font-weight:700;
    letter-spacing:0;
    white-space:nowrap;
}
.login-card.login-portal-card{
    width:min(480px,calc(100vw - 36px));
    margin-top:30px;
    padding:36px 38px 38px;
    border:1px solid rgba(255,255,255,.82);
    border-radius:18px;
    background:rgba(255,255,255,.975);
    box-shadow:0 26px 74px rgba(0,24,48,.34),0 4px 14px rgba(0,0,0,.10);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
}
.login-portal-form{display:grid;gap:17px}
.login-card.login-portal-card .login-field input{
    height:60px;
    border-radius:9px;
    border-color:#d4dde7;
    background:rgba(255,255,255,.99);
    font-size:13px;
}
.login-field-icon{left:18px;color:#8796a5}
.login-password-toggle{
    right:14px;
    width:34px;
    height:34px;
    color:#7c8b9b;
}
.login-password-toggle svg{width:21px;height:21px}
.login-password-toggle[aria-pressed="true"]{
    color:#315d7d;
    background:#f0f5f8;
}
.login-remember-row.login-remember-simple{
    min-height:22px;
    font-size:13px;
}
.login-remember-simple span{font-size:13px;color:#56687a}
.login-card.login-portal-card .login-remember-simple input{
    width:18px;
    height:18px;
    flex-basis:18px;
}
.login-submit{
    min-height:56px;
    margin-top:1px;
    border:0;
    border-radius:8px;
    background:linear-gradient(90deg,#0799a4 0%,#077e9b 47%,#07588a 100%);
    box-shadow:0 9px 20px rgba(4,76,120,.23);
    font-size:15px;
    font-weight:700;
}
.login-submit:hover{
    background:linear-gradient(90deg,#078d98 0%,#08728f 47%,#064e7d 100%);
}
@media (max-height:820px) and (min-width:901px){
    .login-portal-stage{padding-top:24px}
    .login-portal-emblem{width:78px;height:78px;margin-bottom:8px}
    .login-portal-brand h1{font-size:31px}
    .login-portal-brand p{font-size:14px;margin-top:7px}
    .login-card.login-portal-card{margin-top:20px;padding:28px 34px 30px}
    .login-card.login-portal-card .login-field input{height:54px}
    .login-submit{min-height:52px}
}
@media(max-width:1100px){
    .login-portal-brand h1{font-size:30px;white-space:normal}
    .login-portal-brand p{font-size:14px;white-space:normal}
    .login-portal-highway{width:65%}
}
@media(max-width:900px){
    body.login-portal-page{overflow:auto}
    .login-portal-stage{width:calc(100% - 36px);padding:34px 0 28px}
    .login-portal-highway{left:0;width:100%;background-position:center 44%}
    .login-portal-highway::before{background:linear-gradient(90deg,rgba(4,36,62,.72),rgba(4,36,62,.42))}
    .login-portal-overlay{background:rgba(4,34,60,.28)}
    .login-portal-emblem{width:80px;height:80px;margin-bottom:10px}
    .login-portal-brand h1{font-size:27px;white-space:normal}
    .login-portal-brand p{font-size:13px;white-space:normal}
    .login-card.login-portal-card{margin-top:24px}
}
@media(max-width:620px){
    .login-portal-stage{width:calc(100% - 28px);padding:24px 0}
    .login-portal-emblem{width:68px;height:68px;margin-bottom:8px}
    .login-portal-brand h1{font-size:22px;line-height:1.22}
    .login-portal-brand p{font-size:11px;line-height:1.42;margin-top:7px}
    .login-card.login-portal-card{width:100%;padding:25px 22px 27px;border-radius:16px;margin-top:20px}
    .login-card.login-portal-card .login-field input{height:54px}
    .login-submit{min-height:50px;font-size:13px}
    .login-remember-simple span{font-size:11px}
}

/* ==========================================================
   LOGIN TYPOGRAPHY + HD BACKGROUND HOTFIX - 30/08/2026 - LAN 6
   Khắc phục rule typography toàn cục có !important ghi đè login.
   Asset ảnh đổi tên để tránh cache ảnh cũ; ảnh đã crop đúng tỷ lệ,
   upscale trước và sharpen nhẹ nên trình duyệt chỉ downscale.
   ========================================================== */
body.login-portal-page .login-portal-brand h1{
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:35px!important;
    line-height:1.18!important;
    font-weight:700!important;
    letter-spacing:0!important;
}
body.login-portal-page .login-portal-brand p{
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:15px!important;
    line-height:1.35!important;
    font-weight:700!important;
    letter-spacing:0!important;
}
body.login-portal-page .login-portal-highway{
    background-image:none!important;
    background-size:cover!important;
    background-position:center center!important;
    filter:none!important;
    image-rendering:auto;
}
/* Giữ đúng 35/15 trên desktop kể cả khi Windows display scaling làm
   viewport CSS rơi vào các breakpoint cũ. Chỉ thu chữ ở mobile thật. */
@media (min-width:621px){
    body.login-portal-page .login-portal-brand h1{font-size:35px!important;white-space:nowrap!important}
    body.login-portal-page .login-portal-brand p{font-size:15px!important;white-space:nowrap!important}
}
@media (max-width:620px){
    body.login-portal-page .login-portal-brand h1{font-size:22px!important;white-space:normal!important}
    body.login-portal-page .login-portal-brand p{font-size:13px!important;white-space:normal!important}
}


/* ==========================================================
   LOGIN PORTAL TECHNOLOGY BACKGROUND - 30/08/2026 - LẦN 7
   Nền thuần CSS, không ảnh raster: sắc nét ở mọi độ phân giải,
   đồng bộ tông xanh Header/Sidebar và giảm rủi ro chất lượng ảnh.
   ========================================================== */
body.login-portal-page{
    background:#071f38!important;
}
body.login-portal-page .login-portal-bg{
    position:fixed;
    inset:0;
    overflow:hidden;
    background:
        radial-gradient(circle at 50% 18%,rgba(45,126,183,.22) 0%,rgba(45,126,183,.08) 24%,transparent 48%),
        radial-gradient(circle at 82% 74%,rgba(17,121,161,.16) 0%,transparent 36%),
        radial-gradient(circle at 12% 82%,rgba(11,105,150,.13) 0%,transparent 34%),
        linear-gradient(115deg,#061a30 0%,#0b2947 28%,#123d66 52%,#0d365b 74%,#071f38 100%)!important;
}
/* Lưới điểm + đường mảnh công nghệ. */
body.login-portal-page .login-portal-bg::before{
    content:"";
    position:absolute;
    inset:-8%;
    pointer-events:none;
    opacity:.42;
    background-image:
        radial-gradient(circle,rgba(109,196,237,.32) 0 1px,transparent 1.25px),
        linear-gradient(rgba(103,183,224,.045) 1px,transparent 1px),
        linear-gradient(90deg,rgba(103,183,224,.045) 1px,transparent 1px),
        repeating-linear-gradient(135deg,transparent 0 96px,rgba(74,166,211,.045) 97px 98px,transparent 99px 194px);
    background-size:46px 46px,92px 92px,92px 92px,194px 194px;
    transform:rotate(-1.5deg) scale(1.04);
    mask-image:radial-gradient(ellipse at center,#000 0%,rgba(0,0,0,.94) 52%,rgba(0,0,0,.55) 78%,transparent 100%);
    -webkit-mask-image:radial-gradient(ellipse at center,#000 0%,rgba(0,0,0,.94) 52%,rgba(0,0,0,.55) 78%,transparent 100%);
}
/* Vòng tròn dữ liệu và các vùng sáng nhẹ, không gây rối mắt. */
body.login-portal-page .login-portal-bg::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.58;
    background:
        radial-gradient(circle at 8% 26%,transparent 0 74px,rgba(104,194,235,.10) 75px 76px,transparent 77px 112px,rgba(104,194,235,.055) 113px 114px,transparent 115px),
        radial-gradient(circle at 92% 22%,transparent 0 108px,rgba(104,194,235,.08) 109px 110px,transparent 111px 160px,rgba(104,194,235,.045) 161px 162px,transparent 163px),
        radial-gradient(circle at 88% 86%,rgba(37,143,188,.11) 0%,transparent 23%),
        linear-gradient(90deg,transparent 0%,rgba(255,255,255,.018) 49.8%,rgba(255,255,255,.035) 50%,rgba(255,255,255,.018) 50.2%,transparent 100%);
}
/* Không còn lớp ảnh cao tốc. */
body.login-portal-page .login-portal-highway{
    display:none!important;
    background-image:none!important;
}
body.login-portal-page .login-portal-overlay{
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
        radial-gradient(ellipse at 50% 44%,rgba(28,103,153,.10) 0%,transparent 43%),
        linear-gradient(180deg,rgba(0,12,28,.10) 0%,transparent 32%,rgba(0,12,28,.16) 100%)!important;
}
/* Tiêu đề giữ đúng kích thước đã chốt; mô tả sát hơn 3px. */
body.login-portal-page .login-portal-brand h1{
    font-size:35px!important;
}
body.login-portal-page .login-portal-brand p{
    margin:3px 0 0!important;
    font-size:15px!important;
}
/* Card nổi nhẹ trên nền công nghệ, không glass quá mức. */
body.login-portal-page .login-card.login-portal-card{
    background:rgba(255,255,255,.982)!important;
    border-color:rgba(255,255,255,.76)!important;
    box-shadow:0 30px 78px rgba(0,17,36,.34),0 8px 24px rgba(0,25,52,.16)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
}
@media (max-width:620px){
    body.login-portal-page .login-portal-bg::before{opacity:.28;background-size:38px 38px,76px 76px,76px 76px,160px 160px}
    body.login-portal-page .login-portal-bg::after{opacity:.36}
    body.login-portal-page .login-portal-brand h1{font-size:22px!important}
    body.login-portal-page .login-portal-brand p{font-size:13px!important;margin-top:3px!important}
}

/* ==========================================================
   TASK MODULE - DASHBOARD & 4-STATE SUMMARY (2026-08-30)
   ========================================================== */
.task-page-actions{justify-content:flex-end;margin-bottom:10px}
.task-analytics-grid{
    display:grid;
    grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
    gap:12px;
    margin-bottom:12px;
}
.task-chart-card{min-width:0;padding:0;overflow:hidden}
.task-chart-head{
    min-height:42px;
    display:flex;
    align-items:center;
    padding:0 14px;
    border-bottom:1px solid var(--line);
    background:linear-gradient(180deg,#f8fbfe 0%,#f3f8fc 100%);
}
.task-chart-head h2{
    margin:0;
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:13px!important;
    line-height:1.3;
    font-weight:700;
    color:#163c66;
    letter-spacing:0;
}
.task-chart-canvas{position:relative;padding:12px 14px 8px}
.task-chart-overview-canvas{height:310px}
.task-chart-empty{margin:12px}

.task-summary-panel .task-summary-head{margin-bottom:0}
.task-summary-tabs{
    gap:6px;
    padding:8px 10px 0;
    margin:0;
    border-bottom:1px solid #d9e4ee;
    flex-wrap:wrap;
    background:#fff;
}
.task-summary-tab{
    min-height:38px;
    padding:8px 11px;
    font-weight:400;
    white-space:nowrap;
}
.task-summary-tab.active{font-weight:700;background:#edf5fb}

.task-table-filter-bar{
    display:grid;
    grid-template-columns:minmax(260px,1.7fr) minmax(170px,1fr) 145px minmax(190px,1.1fr) auto;
    gap:8px;
    align-items:end;
    padding:10px;
    border-bottom:1px solid #d9e4ee;
    background:#fbfdff;
}
.task-table-filter-field label{
    display:block;
    margin:0 0 4px;
    color:#667085;
    font-size:11px;
    font-weight:600;
}
.task-table-filter-field input,
.task-table-filter-field select{
    width:100%;
    min-height:34px;
    padding:6px 9px;
    font-size:11px;
}
.task-table-filter-actions{display:flex;gap:6px;align-items:center;white-space:nowrap}
.task-table-filter-actions .btn{min-height:34px;min-width:auto;padding:7px 10px}

.task-summary-table-wrap{overflow-x:auto;overflow-y:visible}
.task-summary-table-v2{
    width:100%;
    min-width:1180px;
    table-layout:auto;
    border-collapse:collapse;
}
.task-summary-table-v2 .col-stt{width:48px}
.task-summary-table-v2 .col-task{width:auto}
.task-summary-table-v2 .col-org{width:165px}
.task-summary-table-v2 .col-deadline{width:105px}
.task-summary-table-v2 .col-source{width:205px}
.task-summary-table-v2 .col-status{width:245px}
.task-summary-table-v2 .col-action{width:92px}
.task-summary-table-v2 thead th{
    background:#dfeef9!important;
    color:#163c66;
    border-bottom:1px solid #c5d9e9;
    font-weight:700;
    white-space:nowrap!important;
    padding:9px 8px;
    vertical-align:middle;
}
.task-summary-table-v2 tbody td{
    background:#fff!important;
    color:var(--text);
    font-weight:400!important;
    padding:9px 8px;
    vertical-align:middle;
    border-bottom:1px solid #edf1f5;
}
.task-summary-table-v2 tbody tr:hover td{background:#f8fbfe!important}
.task-summary-table-v2 .task-stt{color:var(--muted);text-align:center;white-space:nowrap!important}
.task-summary-table-v2 .task-title-link{
    display:block;
    min-width:310px;
    color:var(--text);
    font-weight:400!important;
    line-height:1.4;
}
.task-summary-table-v2 .task-nowrap-cell{white-space:nowrap!important;overflow-wrap:normal!important}
.task-summary-table-v2 .task-source-link{white-space:nowrap;font-weight:400}
.task-status-text{font-weight:400;white-space:nowrap}
.task-status-completed-on-time{color:#087a55}
.task-status-completed-late{color:#b25b00}
.task-status-open-on-time{color:#155eef}
.task-status-open-overdue{color:#a83f3f}
.task-status-unclassified{color:#667085}
.task-action-cell{text-align:center!important;white-space:nowrap!important}
.task-action-cell form{display:inline;margin:0}
.task-action-edit,.task-action-delete{
    border:0;
    background:transparent;
    padding:3px 2px;
    font-size:11px;
    font-weight:400;
    cursor:pointer;
    text-decoration:none;
}
.task-action-edit{color:#155eef}
.task-action-edit:hover{text-decoration:underline;text-underline-offset:2px}
.task-action-delete{color:#a83f3f}
.task-action-delete:hover{text-decoration:underline;text-underline-offset:2px}
.task-action-separator{color:#cbd5e1;margin:0 3px}
.task-action-empty{color:#98a2b3}

@media(max-width:1180px){
    .task-analytics-grid{grid-template-columns:1fr}
    .task-table-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}
    .task-table-filter-actions{grid-column:1/-1;justify-content:flex-end}
}
@media(max-width:700px){
    .task-table-filter-bar{grid-template-columns:1fr}
    .task-table-filter-actions{grid-column:auto;justify-content:stretch}
    .task-table-filter-actions .btn{flex:1;text-align:center}
    .task-summary-tabs{display:grid;grid-template-columns:1fr}
    .task-summary-tab{border-radius:7px;border:1px solid transparent}
    .task-summary-tab.active{border-color:#bfd5e8}
    .task-chart-overview-canvas{height:280px}
}

/* Khóa lại tỷ lệ cột của bảng nhiệm vụ mới, ghi đè các rule :has cũ. */
.task-summary-table-v2 .col-stt{width:48px!important}
.task-summary-table-v2 .col-task{width:auto!important}
.task-summary-table-v2 .col-org{width:165px!important}
.task-summary-table-v2 .col-deadline{width:105px!important}
.task-summary-table-v2 .col-source{width:205px!important}
.task-summary-table-v2 .col-status{width:245px!important}
.task-summary-table-v2 .col-action{width:92px!important}
@media(max-width:760px){
    .task-summary-table-v2 .col-org,.task-summary-table-v2 th:nth-child(3),.task-summary-table-v2 td:nth-child(3),
    .task-summary-table-v2 .col-status,.task-summary-table-v2 th:nth-child(6),.task-summary-table-v2 td:nth-child(6){display:table-cell!important}
}

/* ==========================================================
   TASK MODULE - COMPACT TABLE & BALANCED CHARTS (2026-08-30 / lan 9)
   ========================================================== */
.task-analytics-grid{
    grid-template-columns:minmax(0,.62fr) minmax(0,1.38fr)!important;
    gap:12px;
}
.task-chart-head{
    min-height:34px!important;
    justify-content:center!important;
    padding:8px 10px 0!important;
    border-bottom:0!important;
    background:transparent!important;
}
.task-chart-head h2{
    width:100%;
    text-align:center!important;
    background:transparent!important;
}
.task-chart-canvas{padding-top:6px!important}

/* Bảng nhiệm vụ dạng compact: giảm mạnh bề rộng tối thiểu và chiều cao hàng. */
.task-summary-table-wrap{overflow-x:auto;overflow-y:visible}
.task-summary-table-v2{
    width:100%!important;
    min-width:690px!important;
    table-layout:fixed!important;
}
.task-summary-table-v2 .col-stt{width:30px!important}
.task-summary-table-v2 .col-task{width:24%!important}
.task-summary-table-v2 .col-org{width:11%!important}
.task-summary-table-v2 .col-deadline{width:9%!important}
.task-summary-table-v2 .col-source{width:15%!important}
.task-summary-table-v2 .col-status{width:23%!important}
.task-summary-table-v2 .col-action{width:8%!important}
.task-summary-table-v2 thead th,
.task-summary-table-v2 tbody td{
    height:20px!important;
    padding:1px 4px!important;
    font-size:13px!important;
    line-height:1.12!important;
    vertical-align:middle!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
}
.task-summary-table-v2 thead th{height:22px!important}
.task-summary-table-v2 tbody tr{height:20px!important}
.task-summary-table-v2 .task-title-link{
    min-width:0!important;
    width:100%;
    line-height:1.12!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
}
.task-summary-table-v2 .task-action-cell{overflow:visible!important;text-overflow:clip!important}
.task-summary-table-v2 .task-action-edit,
.task-summary-table-v2 .task-action-delete{
    padding:0 1px!important;
    line-height:1.05!important;
}
.task-summary-table-v2 .task-action-separator{margin:0 1px!important}

@media(max-width:1180px){
    .task-analytics-grid{grid-template-columns:1fr!important}
}


/* ==========================================================
   TASK MODULE - RESULT DETAILS + READABLE TABLE (2026-08-30 / lan 10)
   ========================================================== */
.task-table-filter-field input,
.task-table-filter-field select{
    border-color:#e4ebf2!important;
    box-shadow:none!important;
}
.task-table-filter-field input:focus,
.task-table-filter-field select:focus{
    border-color:#a9c9e2!important;
    box-shadow:0 0 0 2px rgba(49,130,189,.07)!important;
}
.task-table-filter-actions .btn{min-width:76px}

/* Trả bảng về mật độ đọc cân đối: vẫn gọn nhưng không còn ép hàng 20px. */
.task-summary-table-v2{
    min-width:980px!important;
    table-layout:fixed!important;
}
.task-summary-table-v2 .col-stt{width:36px!important}
.task-summary-table-v2 .col-task{width:auto!important}
.task-summary-table-v2 .col-org{width:150px!important}
.task-summary-table-v2 .col-deadline{width:82px!important}
.task-summary-table-v2 .col-source{width:190px!important}
.task-summary-table-v2 .col-status{width:210px!important}
.task-summary-table-v2 .col-action{width:76px!important}
.task-summary-table-v2 thead th,
.task-summary-table-v2 tbody td{
    height:auto!important;
    min-height:30px!important;
    padding:6px 6px!important;
    font-size:13px!important;
    line-height:1.35!important;
    vertical-align:middle!important;
}
.task-summary-table-v2 thead th{height:31px!important}
.task-summary-table-v2 tbody tr{height:auto!important;min-height:30px!important}
.task-summary-table-v2 .task-title-link{line-height:1.35!important}

.task-result-summary-grid,
.task-history-detail-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0;
    margin:0;
    border:1px solid #e7edf3;
    border-radius:8px;
    overflow:hidden;
    background:#fff;
}
.task-result-summary-grid>div,
.task-history-detail-grid>div{
    min-width:0;
    padding:9px 11px;
    border-right:1px solid #edf2f6;
    border-bottom:1px solid #edf2f6;
}
.task-result-summary-grid>div:nth-child(2n),
.task-history-detail-grid>div:nth-child(2n){border-right:0}
.task-result-summary-grid>div:last-child,
.task-history-detail-grid>div:last-child{border-bottom:0}
.task-result-summary-wide,
.task-history-wide{grid-column:1/-1;border-right:0!important}
.task-result-summary-grid dt,
.task-history-detail-grid dt{
    margin:0 0 4px;
    font-size:11px;
    font-weight:700;
    color:#475467;
}
.task-result-summary-grid dd,
.task-history-detail-grid dd{
    margin:0;
    font-size:13px;
    line-height:1.5;
    color:var(--text);
}
.task-update-history-item .task-history-detail-grid{margin-top:2px}
.task-weekly-update-form input:disabled,
.task-weekly-update-form textarea:disabled,
.task-weekly-update-form select:disabled{
    background:#f2f4f7!important;
    color:#98a2b3!important;
    cursor:not-allowed;
}
@media(max-width:720px){
    .task-result-summary-grid,.task-history-detail-grid{grid-template-columns:1fr}
    .task-result-summary-grid>div,.task-history-detail-grid>div{border-right:0}
}


/* ==========================================================
   TASK MODULE - TESTING + TABLE/CHART POLISH (2026-08-30 / lan 11)
   ========================================================== */
/* Hai card biểu đồ cao bằng nhau; biểu đồ theo đơn vị neo xuống đáy để nếu ít
   đơn vị thì khoảng thở nằm giữa tiêu đề và biểu đồ, không dồn xuống dưới. */
.task-chart-card{
    display:flex!important;
    flex-direction:column!important;
    height:100%!important;
}
.task-analytics-grid .task-chart-card{margin-bottom:0!important}
.task-chart-org-canvas{
    margin-top:auto!important;
    flex:0 0 auto!important;
}

/* Bộ lọc: mọi input/select dùng cùng một border như trường Chủ trì. */
.task-table-filter-field input,
.task-table-filter-field select{
    border:1px solid #d0d5dd!important;
    box-shadow:none!important;
}
.task-table-filter-field input:focus,
.task-table-filter-field select:focus{
    border-color:#8fb4d2!important;
    box-shadow:0 0 0 2px rgba(49,130,189,.07)!important;
}

/* Bảng nhiệm vụ: cho phép nội dung dài xuống dòng, tăng khoảng thở trên/dưới. */
.task-summary-table-v2 thead th,
.task-summary-table-v2 tbody td{
    height:auto!important;
    min-height:0!important;
    padding:12px 6px!important;
    line-height:1.4!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
}
.task-summary-table-v2 tbody tr{height:auto!important;min-height:0!important}
.task-summary-table-v2 .task-title-link{
    min-width:0!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    line-height:1.4!important;
    color:var(--text)!important;
}
.task-summary-table-v2 .task-nowrap-cell{
    white-space:normal!important;
    overflow-wrap:anywhere!important;
}
.task-summary-table-v2 .task-stt,
.task-summary-table-v2 th:nth-child(1),
.task-summary-table-v2 td:nth-child(4),
.task-summary-table-v2 th:nth-child(4),
.task-summary-table-v2 .task-action-cell,
.task-summary-table-v2 th:last-child{
    white-space:nowrap!important;
    overflow-wrap:normal!important;
}

/* Văn bản giao và trạng thái dùng cùng màu chữ nội dung thông thường. */
.task-summary-table-v2 .task-source-link,
.task-summary-table-v2 .task-status-text,
.task-summary-table-v2 td:nth-child(5),
.task-summary-table-v2 td:nth-child(6){
    color:var(--text)!important;
    font-weight:400!important;
}

/* Giữ các cột ngắn ở mức tối thiểu hợp lý. */
.task-summary-table-v2 .col-stt{width:36px!important}
.task-summary-table-v2 .col-deadline{width:82px!important}
.task-summary-table-v2 .col-action{width:76px!important}

/* ==========================================================
   MODULE VƯỚNG MẮC - DASHBOARD / FORM V2 (31/08/2026 - lần 3)
   ========================================================== */
.issue-page-actions{margin-bottom:8px}
.issue-analytics-grid{
    display:grid;
    grid-template-columns:minmax(240px,.85fr) minmax(330px,1.2fr) minmax(330px,1.2fr);
    gap:12px;
    align-items:stretch;
    margin-bottom:12px;
}
.issue-chart-card{
    min-width:0;
    margin:0!important;
    padding:0!important;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    height:100%;
}
.issue-chart-head{
    padding:10px 10px 2px;
    background:transparent!important;
    border:0!important;
    text-align:center;
}
.issue-chart-head h2{
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    font-size:13px!important;
    line-height:1.35;
    font-weight:700;
    color:var(--text);
    text-align:center;
}
.issue-chart-canvas{
    position:relative;
    height:280px;
    padding:6px 10px 8px;
    min-height:0;
}
.issue-chart-pie-canvas{padding-left:18px;padding-right:18px}
.issue-chart-authority-canvas{margin-top:auto;flex:0 0 auto}
.issue-chart-empty{margin:12px}

.issue-summary-panel-v2{padding:0;overflow:hidden}
.issue-summary-panel-v2 .issue-summary-head{
    padding:11px 14px 8px;
    margin:0;
    border-bottom:0;
}
.issue-summary-panel-v2 .issue-summary-head h2{
    margin:0;
    font-size:13px!important;
    font-weight:700;
}
.issue-summary-panel-v2 .issue-summary-tabs{margin:0;padding:0 14px;border-bottom:1px solid #e4e7ec}
.issue-summary-table-wrap{overflow-x:auto!important;overflow-y:visible!important}
.issue-summary-table-v2{
    width:100%;
    min-width:860px;
    table-layout:fixed;
    border-collapse:collapse;
    font-family:Arial,Helvetica,sans-serif;
}
.issue-summary-table-v2 .col-stt{width:38px}
.issue-summary-table-v2 .col-issue{width:auto}
.issue-summary-table-v2 .col-org{width:175px}
.issue-summary-table-v2 .col-authority{width:170px}
.issue-summary-table-v2 .col-age{width:105px}
.issue-summary-table-v2 .col-action{width:78px}
.issue-summary-table-v2 thead th{
    background:#eaf4fb;
    color:#344054;
    border-top:1px solid #dbe7f0;
    border-bottom:1px solid #ccdce8;
    padding:9px 7px;
    font-size:11px;
    font-weight:700;
    line-height:1.3;
    vertical-align:middle;
    text-align:left;
}
.issue-summary-table-v2 tbody td{
    padding:12px 7px;
    border-bottom:1px solid #edf0f3;
    color:var(--text);
    font-size:11px;
    font-weight:400;
    line-height:1.4;
    vertical-align:middle;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:normal;
    background:#fff;
}
.issue-summary-table-v2 th:first-child,
.issue-summary-table-v2 td:first-child{text-align:center}
.issue-summary-table-v2 th:last-child,
.issue-summary-table-v2 td:last-child{text-align:center;white-space:nowrap}
.issue-summary-table-v2 tbody tr:hover td{background:#f8fbfe}
.issue-summary-table-v2 .row-created td{background:#f2fbf5}
.issue-summary-table-v2 .issue-title-link{
    color:var(--text);
    font-weight:400;
    line-height:1.4;
    text-decoration:none;
}
.issue-summary-table-v2 .issue-title-link:hover{color:#155eef;text-decoration:underline;text-underline-offset:2px}
.issue-summary-table-v2 .issue-stt{color:var(--muted)}
.issue-summary-table-v2 .issue-age-cell{white-space:nowrap}
.issue-action-cell form{display:inline;margin:0}
.issue-action-edit,.issue-action-delete{
    border:0;
    background:transparent;
    padding:2px 1px;
    font-family:Arial,Helvetica,sans-serif;
    font-size:11px;
    font-weight:400;
    cursor:pointer;
    text-decoration:none;
}
.issue-action-edit{color:#155eef}
.issue-action-delete{color:#b42318}
.issue-action-separator{margin:0 2px;color:#98a2b3}
.issue-action-edit:hover,.issue-action-delete:hover{text-decoration:underline;text-underline-offset:2px}

.issue-report-form-panel{max-width:1080px}
.issue-report-form .form-actions{margin-top:16px}
.issue-report-grid input,
.issue-report-grid select,
.issue-report-grid textarea{font-family:Arial,Helvetica,sans-serif}
.issue-report-grid textarea{line-height:1.5}
.issue-basic-grid-v2>div{min-height:66px}
.issue-resolved-date-summary{font-size:11px;color:#475467;margin:0 0 8px}
.issue-weekly-update-form input:disabled,
.issue-weekly-update-form textarea:disabled,
.issue-weekly-update-form select:disabled{
    background:#f2f4f7!important;
    color:#98a2b3!important;
    cursor:not-allowed;
}

@media(max-width:1280px){
    .issue-analytics-grid{grid-template-columns:1fr 1fr}
    .issue-analytics-grid .issue-chart-authority-card{grid-column:1/-1}
}
@media(max-width:820px){
    .issue-analytics-grid{grid-template-columns:1fr}
    .issue-analytics-grid .issue-chart-authority-card{grid-column:auto}
    .issue-summary-table-v2{min-width:780px}
    .issue-basic-grid-v2{grid-template-columns:1fr}
    .issue-basic-grid-v2 .issue-basic-wide{grid-column:auto}
    .issue-basic-grid-v2>div{border-right:0!important}
}
\n\n/* ==========================================================\n   MODULE VƯỚNG MẮC - TINH CHỈNH DONUT / BẢNG (31/08/2026 - lần 5)\n   ========================================================== */\n.issue-chart-pie-canvas{padding:8px 18px 10px}\n.issue-summary-table-v2{min-width:980px}\n.issue-summary-table-v2 .col-stt{width:38px}\n.issue-summary-table-v2 .col-issue{width:auto}\n.issue-summary-table-v2 .col-type{width:145px}\n.issue-summary-table-v2 .col-org{width:150px}\n.issue-summary-table-v2 .col-authority{width:165px}\n.issue-summary-table-v2 .col-age{width:100px}\n.issue-summary-table-v2 .col-action{width:74px}\n.issue-summary-table-v2 .issue-type-cell{color:var(--text);font-weight:400}\n@media(max-width:820px){.issue-summary-table-v2{min-width:920px}}\n
/* ==========================================================
   MEETINGS UI - 31/08/2026 LAN 6
   ========================================================== */
/* Sidebar: Cuộc họp gọn, không mũi tên và không in đậm. */
.nav-group[data-nav-group] .nav-parent-label{
    font-family:Arial,Helvetica,sans-serif!important;
    font-weight:400!important;
}
.nav-group[data-nav-group] .nav-parent-chevron{display:none!important}
.nav-sub-icon{
    width:16px!important;
    height:16px!important;
    flex:0 0 16px!important;
    display:inline-grid!important;
    place-items:center!important;
    color:rgba(255,255,255,.64)!important;
}
.nav-sub-icon svg{width:15px!important;height:15px!important;display:block!important}
.nav-submenu a:hover .nav-sub-icon,
.nav-submenu a.active .nav-sub-icon{color:#fff!important}

/* Danh sách cuộc họp đồng bộ phong cách bảng Nhiệm vụ. */
.meeting-page-actions{justify-content:flex-end!important;margin-bottom:10px!important}
.meeting-summary-panel{overflow:hidden}
.meeting-summary-head{margin-bottom:0!important}
.meeting-summary-head h2{
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:13px!important;
    font-weight:700!important;
    line-height:1.3!important;
}
.meeting-summary-table-wrap{overflow-x:auto;overflow-y:visible}
.meeting-summary-table{
    width:100%;
    min-width:1280px;
    table-layout:fixed;
    border-collapse:collapse;
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:13px!important;
}
.meeting-summary-table .col-stt{width:42px}
.meeting-summary-table .col-name{width:145px}
.meeting-summary-table .col-time{width:135px}
.meeting-summary-table .col-location{width:150px}
.meeting-summary-table .col-chair{width:155px}
.meeting-summary-table .col-agenda{width:285px}
.meeting-summary-table .col-invitation{width:145px}
.meeting-summary-table .col-conclusion{width:145px}
.meeting-summary-table .col-action{width:90px}
.meeting-summary-table thead th{
    background:#eaf4fb!important;
    color:#344054!important;
    border:1px solid #d9e5ef!important;
    padding:9px 8px!important;
    font-size:13px!important;
    font-weight:700!important;
    line-height:1.25!important;
    text-align:left;
    vertical-align:middle;
}
.meeting-summary-table tbody td{
    color:#344054!important;
    background:#fff!important;
    border:1px solid #e7edf3!important;
    padding:10px 8px!important;
    font-size:13px!important;
    font-weight:400!important;
    line-height:1.4!important;
    vertical-align:middle!important;
    overflow-wrap:anywhere;
}
.meeting-summary-table tbody tr:hover td{background:#f8fbfe!important}
.meeting-summary-table th:first-child,
.meeting-summary-table .meeting-stt{text-align:center!important;white-space:nowrap}
.meeting-title-link,
.meeting-document-cell a,
.meeting-action-cell a{
    color:#344054!important;
    font-weight:400!important;
    text-decoration:none;
}
.meeting-title-link:hover,
.meeting-document-cell a:hover,
.meeting-action-cell a:hover{color:#0b67a3!important;text-decoration:underline}
.meeting-nowrap{white-space:nowrap!important}
.meeting-agenda-cell{white-space:normal!important}
.meeting-document-cell{text-align:left}
.meeting-action-cell{text-align:center;white-space:nowrap!important}
.meeting-action-separator{margin:0 3px;color:#98a2b3}

/* Form cuộc họp gọn, cân đối và hỗ trợ file Giấy mời/Kết luận. */
.meeting-form-v2{padding:2px 0}
.meeting-form-grid{gap:14px 16px}
.meeting-form-v2 .form-field label{font-size:11px!important}
.meeting-form-v2 input,
.meeting-form-v2 select,
.meeting-form-v2 textarea{
    font-family:Arial,Helvetica,sans-serif!important;
}
.meeting-form-v2 input[type="file"]{
    padding:7px 8px!important;
    min-height:38px;
    background:#fff;
}
.meeting-document-field .field-help{margin-top:5px}
.meeting-document-field .field-help a{color:#0b67a3;text-decoration:none}
.meeting-document-field .field-help a:hover{text-decoration:underline}
.meeting-form-actions{margin-top:18px!important}

@media(max-width:760px){
    .meeting-form-grid{grid-template-columns:1fr!important}
    .meeting-form-grid .form-span-2{grid-column:auto!important}
}


/* ==========================================================
   MEETINGS UI - 31/08/2026 LAN 7
   ========================================================== */
/* Cuộc họp luôn dùng font-weight thường, kể cả khi nhóm đang active. */
.nav-group[data-nav-group] > .nav-parent,
.nav-group[data-nav-group].active > .nav-parent,
.nav-group[data-nav-group] > .nav-parent .nav-parent-label{
    font-family:Arial,Helvetica,sans-serif!important;
    font-weight:400!important;
}

/* Bộ tìm kiếm đồng bộ module Nhiệm vụ/Vướng mắc. */
.meeting-table-filter-bar{
    grid-template-columns:minmax(145px,1fr) minmax(150px,1fr) 118px 118px minmax(180px,1.25fr) auto!important;
    background:#fbfdff!important;
}
.meeting-table-filter-bar input,
.meeting-table-filter-bar select{
    border-color:#d8e1e8!important;
}
.meeting-date-filter-field input{min-width:0!important}

/* Bảng cố định trong chiều rộng nội dung, không tạo scroll ngang. */
.meeting-summary-table-wrap{
    width:100%!important;
    overflow-x:visible!important;
    overflow-y:visible!important;
}
.meeting-summary-table{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
}
.meeting-summary-table .col-stt{width:3%!important}
.meeting-summary-table .col-name{width:12%!important}
.meeting-summary-table .col-time{width:8%!important}
.meeting-summary-table .col-location{width:9%!important}
.meeting-summary-table .col-chair{width:10%!important}
.meeting-summary-table .col-agenda{width:28%!important}
.meeting-summary-table .col-invitation{width:10%!important}
.meeting-summary-table .col-conclusion{width:10%!important}
.meeting-summary-table .col-action{width:10%!important}
.meeting-summary-table thead th,
.meeting-summary-table tbody td{
    overflow-wrap:anywhere!important;
    word-break:normal!important;
}
.meeting-summary-table thead th:nth-child(3),
.meeting-summary-table .meeting-time-cell{
    text-align:center!important;
}
.meeting-time-cell{
    white-space:normal!important;
    line-height:1.25!important;
}
.meeting-time-hour,
.meeting-time-date{
    display:block!important;
    white-space:nowrap!important;
}
.meeting-time-hour{margin-bottom:2px}
.meeting-document-cell{overflow-wrap:anywhere!important}
.meeting-action-cell{
    text-align:center!important;
    white-space:nowrap!important;
}
.meeting-action-cell form{display:inline!important;margin:0!important}
.meeting-action-edit,
.meeting-action-delete{
    border:0!important;
    background:transparent!important;
    padding:3px 2px!important;
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:13px!important;
    font-weight:400!important;
    cursor:pointer!important;
    text-decoration:none!important;
}
.meeting-action-edit{color:#155eef!important}
.meeting-action-delete{color:#b42318!important}
.meeting-action-edit:hover,
.meeting-action-delete:hover{text-decoration:underline!important;text-underline-offset:2px}
.meeting-action-separator{margin:0 3px!important;color:#98a2b3!important}

@media(max-width:1180px){
    .meeting-table-filter-bar{grid-template-columns:repeat(3,minmax(0,1fr))!important}
    .meeting-table-filter-bar .task-table-filter-actions{align-self:end}
}
@media(max-width:760px){
    .meeting-table-filter-bar{grid-template-columns:1fr 1fr!important}
    /* Chỉ màn hình nhỏ mới cho phép cuộn để không bóp chữ quá mức. */
    .meeting-summary-table-wrap{overflow-x:auto!important}
    .meeting-summary-table{min-width:920px!important}
}

/* ==========================================================
   31/08/2026 - BÁO CÁO HỌP V2: BÁO CÁO THEO LOGIC ĐIỀU HÀNH
   ========================================================== */
.briefing-toolbar-v2{
    margin-bottom:12px;
    padding:11px 12px;
}
.briefing-filter-form-v2{
    grid-template-columns:minmax(300px,1.8fr) minmax(230px,1fr) auto;
}
.briefing-paper-v2{
    max-width:1180px;
    padding:28px 34px 34px;
}
.briefing-document-head-v2{
    padding-bottom:15px;
    margin-bottom:16px;
    border-bottom:1px solid #344054;
}
.briefing-document-head-v2 .briefing-org-line{
    margin-bottom:5px;
    font-family:Arial,Helvetica,sans-serif;
    letter-spacing:0;
}
.briefing-document-head-v2 h1{
    margin-bottom:5px;
    font-family:Arial,Helvetica,sans-serif;
}
.briefing-document-head-v2 h2{
    margin-bottom:8px;
    font-family:Arial,Helvetica,sans-serif;
}
.briefing-agenda-box{
    margin:0 0 16px;
    padding:9px 11px;
    border-left:3px solid #2e90fa;
    background:#f5faff;
    font-size:11px;
    line-height:1.55;
}
.briefing-agenda-box>strong{display:block;margin-bottom:3px}
.briefing-section{margin-bottom:18px}
.briefing-section>h3{
    margin-bottom:9px;
    color:#163a63;
}
.briefing-summary-grid-v2{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:7px;
    margin-top:0;
    margin-bottom:10px;
}
.briefing-summary-grid-v2>div{
    padding:8px 9px;
    border-radius:7px;
    background:#f8fafc;
    border-color:#d8e2ee;
}
.briefing-summary-grid-v2>div.is-danger{background:#fff7f6;border-color:#f5c5c0}
.briefing-summary-grid-v2>div.is-warning{background:#fffbf2;border-color:#f6dda5}
.briefing-summary-grid-v2>div.is-focus{background:#f3f8ff;border-color:#b9d7f6}
.briefing-summary-grid-v2 strong{font-size:20px;line-height:1.05;margin:3px 0}
.briefing-assessment-list{padding-left:20px}
.briefing-assessment-list li{margin-bottom:4px;line-height:1.5}
.briefing-focus-section{
    border:1px solid #bfd9f4;
    border-radius:8px;
    padding:11px 12px 12px;
    background:#fbfdff;
}
.briefing-focus-section>h3{margin-bottom:4px}
.briefing-auto-note{margin-bottom:8px;line-height:1.45}
.briefing-table{
    table-layout:fixed;
}
.briefing-table th,
.briefing-table td{
    padding:6px 7px;
    vertical-align:middle;
    overflow-wrap:anywhere;
}
.briefing-table th{
    background:#eaf3fb;
    color:#233b55;
}
.briefing-table td small{
    line-height:1.35;
}
.briefing-cell-center{text-align:center}
.briefing-source-label{
    display:inline-block;
    margin:0 5px 2px 0;
    padding:1px 5px;
    border-radius:4px;
    background:#eaf3fb;
    color:#2b5f8f;
    font-size:11px;
    white-space:nowrap;
}
.briefing-focus-table th:nth-child(1){width:4%}
.briefing-focus-table th:nth-child(2){width:21%}
.briefing-focus-table th:nth-child(3){width:15%}
.briefing-focus-table th:nth-child(4){width:12%}
.briefing-focus-table th:nth-child(5){width:13%}
.briefing-focus-table th:nth-child(6){width:35%}
.briefing-row-priority td{background:#fff8f7}
.briefing-row-warning td{background:#fffcf5}
.briefing-project-block{
    margin-bottom:14px;
    border:1px solid #d7e2ee;
    border-radius:8px;
    overflow:hidden;
    break-inside:avoid-page;
}
.briefing-project-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:8px 10px;
    background:#f3f8fd;
    border-bottom:1px solid #d7e2ee;
}
.briefing-project-heading>div{display:flex;align-items:flex-start;gap:5px;min-width:0}
.briefing-project-heading strong{font-size:11px;line-height:1.45}
.briefing-project-heading small{color:#667085;text-align:right;white-space:nowrap}
.briefing-project-kpis{
    display:flex;
    flex-wrap:wrap;
    gap:6px 16px;
    padding:7px 10px;
    border-bottom:1px solid #e4e7ec;
    background:#fff;
    font-size:11px;
}
.briefing-project-kpis span{white-space:nowrap}
.briefing-project-block>.briefing-table{border:0}
.briefing-project-block>.briefing-table th:first-child,
.briefing-project-block>.briefing-table td:first-child{border-left:0}
.briefing-project-block>.briefing-table th:last-child,
.briefing-project-block>.briefing-table td:last-child{border-right:0}
.briefing-project-block>.briefing-table tr:last-child td{border-bottom:0}
.briefing-prep-table th:nth-child(1){width:22%}
.briefing-prep-table th:nth-child(2){width:11%}
.briefing-prep-table th:nth-child(3){width:9%}
.briefing-prep-table th:nth-child(4){width:10%}
.briefing-prep-table th:nth-child(5){width:12%}
.briefing-prep-table th:nth-child(6){width:36%}
.briefing-implementation-table th:nth-child(1){width:17%}
.briefing-implementation-table th:nth-child(2){width:16%}
.briefing-implementation-table th:nth-child(3){width:16%}
.briefing-implementation-table th:nth-child(4){width:12%}
.briefing-implementation-table th:nth-child(5){width:25%}
.briefing-implementation-table th:nth-child(6){width:14%}
.briefing-project-alert-line{
    display:flex;
    gap:18px;
    padding:7px 10px;
    border-top:1px solid #e4e7ec;
    background:#fffdfa;
    font-size:11px;
}
.briefing-task-table th:nth-child(1){width:22%}
.briefing-task-table th:nth-child(2){width:12%}
.briefing-task-table th:nth-child(3){width:13%}
.briefing-task-table th:nth-child(4){width:14%}
.briefing-task-table th:nth-child(5){width:18%}
.briefing-task-table th:nth-child(6){width:21%}
.briefing-task-table th:last-child:nth-child(5){width:30%}
.briefing-issue-table-v2 th:nth-child(1){width:21%}
.briefing-issue-table-v2 th:nth-child(2){width:12%}
.briefing-issue-table-v2 th:nth-child(3){width:12%}
.briefing-issue-table-v2 th:nth-child(4){width:12%}
.briefing-issue-table-v2 th:nth-child(5){width:8%}
.briefing-issue-table-v2 th:nth-child(6){width:35%}
.briefing-conclusion-section-v2{
    padding:12px 14px;
    background:#fffdf7;
    border-color:#ead89b;
}
.briefing-conclusion-list-v2 li{margin-bottom:7px}
.briefing-conclusion-list-v2 p{line-height:1.5}
.briefing-footer-note{margin-top:18px;padding-top:9px}

@media(max-width:1100px){
    .briefing-summary-grid-v2{grid-template-columns:repeat(3,minmax(0,1fr))}
    .briefing-project-heading{align-items:flex-start;flex-direction:column}
    .briefing-project-heading small{text-align:left;white-space:normal}
}
@media(max-width:700px){
    .briefing-summary-grid-v2{grid-template-columns:repeat(2,minmax(0,1fr))}
    .briefing-filter-form-v2{grid-template-columns:1fr}
    .briefing-paper-v2{padding:18px 12px}
    .briefing-focus-section{padding:8px}
    .briefing-table{table-layout:auto;min-width:760px}
    .briefing-section{overflow-x:auto}
}

@media print{
    .briefing-paper-v2{font-family:Arial,Helvetica,sans-serif}
    .briefing-document-head-v2{margin-bottom:10px;padding-bottom:8px}
    .briefing-document-head-v2 h1{font-size:15pt!important}
    .briefing-document-head-v2 h2{font-size:11pt!important}
    .briefing-agenda-box{background:#fff!important;border-left:2px solid #555;padding:5px 7px;margin-bottom:10px}
    .briefing-section{margin-bottom:11px}
    .briefing-section>h3{font-size:10.5pt;color:#000;margin-bottom:5px}
    .briefing-summary-grid-v2{grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:7px}
    .briefing-summary-grid-v2>div{padding:5px 6px;background:#fff!important;border-color:#888}
    .briefing-summary-grid-v2 strong{font-size:13pt}
    .briefing-assessment-list li{font-size:9.5pt;line-height:1.35;margin-bottom:2px}
    .briefing-focus-section{padding:7px 8px;background:#fff!important;border-color:#777}
    .briefing-table{font-size:7.6pt;table-layout:fixed}
    .briefing-table th,.briefing-table td{padding:3px 4px;line-height:1.3;border-color:#777}
    .briefing-table th{background:#eef3f7!important;color:#000!important}
    .briefing-source-label{padding:0 3px;background:#eee!important;color:#000!important}
    .briefing-project-block{margin-bottom:8px;border-color:#888;break-inside:auto}
    .briefing-project-heading{padding:5px 6px;background:#f1f1f1!important;border-color:#888}
    .briefing-project-kpis{padding:4px 6px;gap:4px 10px;font-size:8pt}
    .briefing-project-alert-line{padding:4px 6px;background:#fff!important;font-size:8pt}
    .briefing-row-priority td,.briefing-row-warning td{background:#fff!important}
    .briefing-conclusion-section-v2{padding:7px 9px;background:#fff!important;border-color:#777}
    .briefing-conclusion-list-v2 li{margin-bottom:4px;break-inside:avoid}
    .briefing-conclusion-list-v2 p{font-size:9pt;line-height:1.35}
    .briefing-footer-note{margin-top:10px;padding-top:5px}
    .briefing-footer-note p{font-size:7.5pt}
}

/* ==========================================================
   31/08/2026 - BÁO CÁO HỌP V3: MẪU A-D THEO YÊU CẦU BCĐ
   ========================================================== */
.briefing-paper-v3{max-width:1240px}
.briefing-section-v3>h3{margin:0 0 9px;color:#173d67;font-weight:700}
.briefing-section-v3>h4{margin:15px 0 5px;font-size:13px!important;line-height:1.4;color:#1d4f7a;font-weight:700}
.briefing-section-v3>h5{margin:10px 0 6px;font-size:13px!important;line-height:1.4;color:#344054;font-weight:700}
.briefing-project-caption{margin:-1px 0 8px;color:#667085;font-size:11px;font-style:italic}
.briefing-number-cell{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.briefing-unit-note{margin-top:3px;color:#667085;font-size:11px;text-align:right;font-style:italic}
.briefing-result-note,.briefing-summary-line{margin:6px 0 9px;padding:6px 8px;border-left:3px solid #76a9d3;background:#f7fbff;line-height:1.45}
.briefing-total-row td{font-weight:700;background:#f5f8fb}
.briefing-package-code{font-weight:400;color:#101828}
.briefing-construction-v3 td small,.briefing-preparation-v3 td small{display:block;margin-top:2px;color:#667085}
.briefing-directive-v3{margin-top:20px}
.briefing-directives-v3 th:nth-child(1){width:4%}
.briefing-directives-v3 th:nth-child(2){width:12%}
.briefing-directives-v3 th:nth-child(3){width:28%}
.briefing-directives-v3 th:nth-child(4){width:15%}
.briefing-directives-v3 th:nth-child(5){width:41%}
.briefing-capital-v3 th{text-align:center;vertical-align:middle}
.briefing-capital-v3 .briefing-capital-col-stt{width:5%}
.briefing-capital-v3 .briefing-capital-col-project{width:27%}
.briefing-capital-v3 .briefing-capital-col-investment{width:17%}
.briefing-capital-v3 .briefing-capital-col-total{width:17%}
.briefing-capital-v3 .briefing-capital-col-central{width:12%}
.briefing-capital-v3 .briefing-capital-col-local{width:12%}
.briefing-capital-v3 .briefing-capital-col-rate{width:10%}
.briefing-construction-v3 th:nth-child(1){width:4%}.briefing-construction-v3 th:nth-child(2){width:22%}.briefing-construction-v3 th:nth-child(3){width:12%}
.briefing-disbursement-v3 th:nth-child(1){width:4%}.briefing-disbursement-v3 th:nth-child(2){width:21%}
.briefing-gpmb-v3 th:nth-child(1){width:19%}
.briefing-preparation-v3 th:nth-child(1){width:4%}.briefing-preparation-v3 th:nth-child(2){width:24%}.briefing-preparation-v3 th:nth-child(3){width:12%}.briefing-preparation-v3 th:nth-child(4),.briefing-preparation-v3 th:nth-child(5){width:9%}.briefing-preparation-v3 th:nth-child(6){width:7%}.briefing-preparation-v3 th:nth-child(7){width:10%}.briefing-preparation-v3 th:nth-child(8){width:25%}
.briefing-issues-v3 th:nth-child(1){width:4%}.briefing-issues-v3 th:nth-child(2){width:34%}.briefing-issues-v3 th:nth-child(3){width:16%}.briefing-issues-v3 th:nth-child(4){width:18%}.briefing-issues-v3 th:nth-child(5){width:12%}.briefing-issues-v3 th:nth-child(6){width:16%}
.briefing-tasks-v3 th:nth-child(1){width:4%}.briefing-tasks-v3 th:nth-child(2){width:18%}.briefing-tasks-v3 th:nth-child(3){width:38%}.briefing-tasks-v3 th:nth-child(4){width:12%}.briefing-tasks-v3 th:nth-child(5),.briefing-tasks-v3 th:nth-child(6){width:14%}

@media print{
    .briefing-paper-v3{max-width:none}
    .briefing-section-v3>h3{font-size:11pt!important;margin-bottom:5px}
    .briefing-section-v3>h4{font-size:10pt!important;margin:8px 0 3px;color:#000}
    .briefing-section-v3>h5{font-size:9pt!important;margin:6px 0 3px;color:#000}
    .briefing-project-caption,.briefing-unit-note{font-size:7.3pt}
    .briefing-result-note,.briefing-summary-line{padding:3px 5px;margin:3px 0 5px;background:#fff!important;border-left:2px solid #666;font-size:8pt}
    .briefing-total-row td{background:#f2f2f2!important}
    .briefing-capital-v3,.briefing-construction-v3,.briefing-disbursement-v3,.briefing-gpmb-v3,.briefing-preparation-v3,.briefing-issues-v3,.briefing-tasks-v3,.briefing-directives-v3{font-size:7.1pt!important}
    .briefing-construction-v3 th,.briefing-construction-v3 td,.briefing-disbursement-v3 th,.briefing-disbursement-v3 td,.briefing-preparation-v3 th,.briefing-preparation-v3 td{padding:2.5px 3px!important}
}

/* ==========================================================
   MODULE DỰ ÁN - DANH SÁCH TỐI GIẢN (01/09/2026 - lần 3)
   ========================================================== */
.project-list-actions{justify-content:flex-end;margin-bottom:12px}
.project-list-table{table-layout:fixed;width:100%}
.project-list-table .project-list-col-name{width:52%}
.project-list-table .project-list-col-stage{width:22%}
.project-list-table .project-list-col-status{width:15%}
.project-list-table .project-list-col-actions{width:11%}
.project-list-table th:last-child,
.project-list-table td.actions-cell{text-align:right}
@media(max-width:760px){
    .project-list-table{min-width:760px}
    .project-list-table th:nth-child(4),
    .project-list-table td:nth-child(4){display:table-cell!important}
}

/* 01/09/2026 - Module Dự án: form Thêm/Sửa dự án tinh gọn */
.project-form-streamlined{gap:14px}
.project-form-streamlined .project-form-main-section{padding:22px 24px}
.project-form-streamlined .project-form-title{margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.project-form-streamlined .project-form-title h2{font-size:15px;margin:0}
.project-form-streamlined .project-form-grid{gap:16px 18px}
.project-form-streamlined .form-field label{font-size:12px;margin-bottom:7px}
.project-form-streamlined .form-field input,
.project-form-streamlined .form-field select{min-height:42px}
.project-form-streamlined .form-field textarea{min-height:72px;line-height:1.5}
.project-form-streamlined .component-only[hidden]{display:none!important}
.project-form-streamlined .project-form-actions{padding-top:2px}
.project-editor-page-actions{margin-bottom:12px}
.project-core-detail-list>div:nth-child(5){grid-column:1/-1}
@media(max-width:760px){
    .project-form-streamlined .project-form-main-section{padding:18px 16px}
    .project-core-detail-list>div:nth-child(5){grid-column:auto}
}
.project-form-streamlined .project-tracking-toggle{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.project-form-streamlined .project-tracking-toggle .check-line{margin:0}

/* 01/09/2026 - Module Dự án: bộ chọn nhiều xã/phường cho Địa điểm */
.project-locality-picker{border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px}
.project-locality-picker-toolbar{display:grid;grid-template-columns:minmax(180px,.9fr) minmax(240px,1.2fr) auto;gap:10px;align-items:center}
.project-locality-search-wrap input{width:100%}
.project-locality-add{min-height:42px;white-space:nowrap}
.project-locality-selected{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px;min-height:32px}
.project-locality-selected:empty::before{content:'Chưa chọn xã/phường';display:flex;align-items:center;color:#98a2b3;font-size:12px;padding:4px 0}
.project-locality-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border:1px solid #cfe0ef;border-radius:999px;background:#f5faff;color:#24496d;font-size:12px;line-height:1.2}
.project-locality-chip button{border:0;background:transparent;color:#667085;cursor:pointer;font-size:17px;line-height:1;padding:0 1px}
.project-locality-chip button:hover{color:#b42318}
.project-locality-meta{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:9px;color:#667085;font-size:11px}
.project-locality-meta strong{font-weight:600;color:#344054}
@media(max-width:760px){
    .project-locality-picker-toolbar{grid-template-columns:1fr}
    .project-locality-add{width:100%}
}

/* 01/09/2026 - Module Dự án: hàng 3 trường và trang chi tiết tinh gọn */
.project-form-streamlined .project-form-core-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.project-form-streamlined .project-form-core-row select:disabled{background:#f3f4f6;color:#98a2b3;cursor:not-allowed}
.project-detail-single{display:block}
.project-detail-single>.panel{width:100%}
.project-info-list{display:grid;grid-template-columns:1fr;gap:0;margin:0}
.project-info-list>div{display:flex;align-items:flex-start;gap:6px;padding:9px 0;border-bottom:1px solid var(--line);line-height:1.5;min-width:0}
.project-info-list>div:last-child{border-bottom:0}
.project-info-list dt{font-weight:700;flex:0 0 auto;color:var(--text)}
.project-info-list dd{margin:0;font-weight:400;min-width:0;overflow-wrap:anywhere;color:var(--text)}
.project-info-money-words{font-weight:400;color:var(--muted)}
@media(max-width:760px){
    .project-form-streamlined .project-form-core-row{grid-template-columns:1fr}
    .project-info-list>div{gap:5px;flex-wrap:wrap}
}


/* ==========================================================
   GPMB - TINH GON PHAM VI + 01 KE HOACH (01/09/2026 - lan 10)
   ========================================================== */
.gpmb-scope-identity-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.gpmb-scope-identity-grid .form-span-3{grid-column:1/-1}
.gpmb-scope-identity-grid input:disabled{
    background:#f3f4f6!important;
    color:#98a2b3!important;
    cursor:not-allowed;
}

/* Dải tổng hợp: tiêu đề và giá trị cùng một dòng, không tạo card nền. */
.gpmb-scope-summary-grid{
    display:flex!important;
    flex-wrap:wrap;
    align-items:center;
    gap:5px 0!important;
    margin:10px 0 12px!important;
    padding:0!important;
}
.gpmb-scope-summary-grid>span{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:0 10px;
    border-right:1px solid #dfe6ee;
    color:#475467;
    font-size:11px;
    line-height:1.4;
    white-space:nowrap;
}
.gpmb-scope-summary-grid>span:first-child{padding-left:0}
.gpmb-scope-summary-grid>span:last-child{border-right:0}
.gpmb-scope-summary-grid em{
    font-style:normal;
    font-weight:400;
    color:var(--text);
}

/* Bảng phạm vi theo phong cách bảng tổng hợp nhiệm vụ: gọn, phẳng, không scroll ngang. */
.gpmb-scope-table-wrap{
    overflow-x:visible!important;
    overflow-y:visible!important;
}
.gpmb-scope-list-table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
}
.gpmb-scope-list-table .col-stt{width:3.5%}
.gpmb-scope-list-table .col-scope{width:15%}
.gpmb-scope-list-table .col-locality{width:13%}
.gpmb-scope-list-table .col-scale{width:11%}
.gpmb-scope-list-table .col-chainage{width:11%}
.gpmb-scope-list-table .col-handover{width:9%}
.gpmb-scope-list-table .col-plan{width:7.5%}
.gpmb-scope-list-table .col-result{width:12%}
.gpmb-scope-list-table .col-action{width:18%}
.gpmb-scope-list-table th,
.gpmb-scope-list-table td{
    min-width:0!important;
    width:auto!important;
    padding:8px 5px!important;
    font-size:13px!important;
    line-height:1.35!important;
    vertical-align:middle!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
}
.gpmb-scope-list-table tbody td,
.gpmb-scope-list-table tbody td *{
    font-weight:400!important;
    background:transparent!important;
}
.gpmb-scope-list-table tbody tr:hover,
.gpmb-scope-list-table tbody tr:hover td{background:transparent!important}
.gpmb-scope-list-table .gpmb-stt{text-align:center;color:var(--muted)}
.gpmb-scope-name{display:block;color:var(--text)}
.gpmb-scope-type-text{display:block;margin-top:2px;color:var(--muted);font-size:10.5px}
.gpmb-result-compact{display:block;margin-top:2px;color:var(--muted);font-size:10.5px}
.gpmb-scope-list-table .actions-cell{
    min-width:0!important;
    display:table-cell!important;
    white-space:nowrap!important;
    overflow:visible!important;
}
.gpmb-action-row{
    display:flex;
    align-items:center;
    gap:3px;
    flex-wrap:nowrap;
    white-space:nowrap;
    font-size:10.5px;
}
.gpmb-action-row a,
.gpmb-action-delete{
    border:0!important;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#175cd3!important;
    font:inherit!important;
    line-height:1.2!important;
    text-decoration:none;
    cursor:pointer;
}
.gpmb-action-row a:hover,
.gpmb-action-delete:hover{text-decoration:underline}
.gpmb-scope-delete-form{display:inline!important;margin:0!important}

@media(max-width:900px){
    .gpmb-scope-identity-grid{grid-template-columns:1fr}
    .gpmb-scope-identity-grid .form-span-3{grid-column:auto}
    .gpmb-scope-summary-grid>span{padding:0 7px}
    .gpmb-scope-list-table th,.gpmb-scope-list-table td{font-size:10px!important;padding:6px 3px!important}
    .gpmb-action-row{font-size:9.5px}
}

/* ==========================================================
   MODULE DỰ ÁN - FORM GÓI THẦU XÂY LẮP TINH GỌN (01/09/2026 - LẦN 12)
   ========================================================== */
.construction-package-form-streamlined{max-width:1120px;margin:0 auto}
.construction-package-form-streamlined .construction-package-main-section{margin:0}
.construction-package-form-streamlined .construction-package-section-title{margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.construction-package-form-streamlined .construction-package-section-title h2{font-size:15px;letter-spacing:.02em}
.construction-package-main-grid{gap:15px 18px}
.construction-package-time-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.construction-package-scope-title{padding-top:4px;margin-bottom:-5px}
.construction-package-scope-title>label{display:inline-block;margin-right:8px}
.construction-package-scope-title .field-help{display:inline;color:var(--muted)}
.input-with-unit{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid var(--line);border-radius:8px;background:#f8fafc;overflow:hidden}
.input-with-unit input{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.input-with-unit span{padding:0 12px;color:#667085;font-size:12px;border-left:1px solid var(--line);line-height:40px;white-space:nowrap}
.construction-package-form-streamlined input[readonly]{color:#475467}
@media(max-width:760px){
    .construction-package-time-row{grid-template-columns:1fr}
    .construction-package-scope-title .field-help{display:block;margin-top:3px}
}


/* ===== Tối ưu bảng giao vốn - 01/09/2026 lần 16 ===== */
.capital-allocation-table-wrap{overflow-x:visible!important;overflow-y:visible!important}
.capital-allocation-table{width:100%;table-layout:fixed;font-size:11px;border-collapse:collapse}
.capital-allocation-table .col-stt{width:5%}
.capital-allocation-table .col-decision{width:25%}
.capital-allocation-table .col-year{width:8%}
.capital-allocation-table .col-type{width:13%}
.capital-allocation-table .col-value{width:14%}
.capital-allocation-table .col-central{width:13%}
.capital-allocation-table .col-local{width:13%}
.capital-allocation-table .col-action{width:9%}
.capital-allocation-table th,
.capital-allocation-table td{min-width:0!important;padding:7px 6px!important;vertical-align:middle!important;overflow-wrap:anywhere;font-weight:400}
.capital-allocation-table thead th{font-weight:600;line-height:1.25}
.capital-allocation-table tbody tr{transition:background-color .15s ease}
.capital-allocation-table tbody tr:hover td{background:#f8fbfe!important}
.capital-allocation-table .capital-stt,
.capital-allocation-table .capital-year-cell{text-align:center}
.capital-allocation-table .capital-decision-cell span{display:block;font-weight:400}
.capital-allocation-table .capital-decision-cell small{display:block;margin-top:2px;color:var(--muted);font-weight:400}
.capital-allocation-table .capital-type-cell{font-weight:400;color:var(--text)}
.capital-allocation-table .capital-value-cell{text-align:right;white-space:nowrap;font-weight:400!important}
.capital-allocation-table .capital-value-negative{color:#b42318}
.capital-allocation-table .capital-action-cell{white-space:nowrap;text-align:center}
.capital-allocation-table .capital-action-cell form{display:inline;margin:0}
.capital-allocation-table .capital-action-link{appearance:none;border:0;background:none;padding:0;margin:0;font:inherit;font-weight:400;color:#175cd3;text-decoration:none;cursor:pointer}
.capital-allocation-table .capital-action-link:hover{text-decoration:underline;text-underline-offset:2px}
.capital-allocation-table .capital-action-delete{color:#b42318}
.capital-allocation-table .capital-action-separator{margin:0 3px;color:#98a2b3}
.capital-allocation-table tfoot td{font-weight:400!important;background:transparent!important;border-top:1px solid var(--border)}
.capital-allocation-filter-actions .btn{white-space:nowrap}
.construction-baseline-meta-simple{justify-content:flex-start}

/* ==========================================================
   PROJECT - CAPITAL & DISBURSEMENT TABLES (2026-09-01 / lan 17)
   ========================================================== */
.capital-allocation-table thead th:nth-child(1),
.capital-allocation-table tbody td:nth-child(1){text-align:center!important}
.capital-allocation-table thead th:nth-child(2),
.capital-allocation-table tbody td:nth-child(2){text-align:left!important}
.capital-allocation-table thead th:nth-child(3),
.capital-allocation-table tbody td:nth-child(3){text-align:center!important}
.capital-allocation-table thead th:nth-child(4),
.capital-allocation-table tbody td:nth-child(4){text-align:left!important}
.capital-allocation-table thead th:nth-child(5),
.capital-allocation-table thead th:nth-child(6),
.capital-allocation-table thead th:nth-child(7),
.capital-allocation-table tbody td:nth-child(5),
.capital-allocation-table tbody td:nth-child(6),
.capital-allocation-table tbody td:nth-child(7){text-align:right!important}
.capital-allocation-table thead th:nth-child(8),
.capital-allocation-table tbody td:nth-child(8){text-align:center!important}
.capital-allocation-table tfoot .table-total-row td{font-weight:700!important;background:transparent!important}
.capital-allocation-table tfoot .table-total-row td:first-child{text-align:right!important}

.project-disbursement-plan-table-wrap{overflow-x:visible!important;overflow-y:visible!important}
.project-disbursement-plan-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:11px}
.project-disbursement-plan-table .col-year{width:10%}
.project-disbursement-plan-table .col-capital{width:28%}
.project-disbursement-plan-table .col-total{width:29%}
.project-disbursement-plan-table .col-gap{width:18%}
.project-disbursement-plan-table .col-action{width:15%}
.project-disbursement-plan-table th,
.project-disbursement-plan-table td{min-width:0!important;padding:7px 6px!important;vertical-align:middle!important;font-weight:400;overflow-wrap:anywhere;background:transparent!important}
.project-disbursement-plan-table thead th{font-weight:600;line-height:1.25}
.project-disbursement-plan-table thead th:nth-child(1),
.project-disbursement-plan-table tbody td:nth-child(1){text-align:center}
.project-disbursement-plan-table thead th:nth-child(2),
.project-disbursement-plan-table thead th:nth-child(3),
.project-disbursement-plan-table thead th:nth-child(4),
.project-disbursement-plan-table tbody td:nth-child(2),
.project-disbursement-plan-table tbody td:nth-child(3),
.project-disbursement-plan-table tbody td:nth-child(4){text-align:right}
.project-disbursement-plan-table thead th:nth-child(5),
.project-disbursement-plan-table tbody td:nth-child(5){text-align:center}
.project-disbursement-plan-table tbody tr{transition:background-color .15s ease}
.project-disbursement-plan-table tbody tr:hover td{background:#f8fbfe!important}
.project-disbursement-plan-table small{display:block;margin-top:2px;color:var(--muted);font-weight:400;line-height:1.3}
.project-disbursement-plan-table .disbursement-year-link{font-weight:400;color:var(--text);text-decoration:none}
.project-disbursement-plan-table .disbursement-year-link:hover{color:#175cd3;text-decoration:underline;text-underline-offset:2px}
.project-disbursement-plan-table .disbursement-action-cell{white-space:nowrap}
.project-disbursement-plan-table .disbursement-action-cell form{display:inline;margin:0}
.project-disbursement-plan-table .disbursement-action-link{appearance:none;border:0;background:none;padding:0;margin:0;font:inherit;font-weight:400;color:#175cd3;text-decoration:none;cursor:pointer}
.project-disbursement-plan-table .disbursement-action-link:hover{text-decoration:underline;text-underline-offset:2px}
.project-disbursement-plan-table .disbursement-action-delete{color:#b42318}
.project-disbursement-plan-table .disbursement-action-separator{margin:0 3px;color:#98a2b3}


/* ==========================================================
   MODULE DỰ ÁN - TỐI ƯU DANH SÁCH & TRANG CHI TIẾT (01/09/2026 - LẦN 18)
   ========================================================== */
.project-list-table .project-list-col-name{width:65%}
.project-list-table .project-list-col-stage{width:16%}
.project-list-table .project-list-col-status{width:10%}
.project-list-table .project-list-col-actions{width:9%}

.project-disbursement-result-table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
}
.project-disbursement-result-table .col-week{width:24%}
.project-disbursement-result-table .col-plan{width:16%}
.project-disbursement-result-table .col-actual{width:16%}
.project-disbursement-result-table .col-rate{width:11%}
.project-disbursement-result-table .col-updated{width:21%}
.project-disbursement-result-table .col-action{width:12%}
.project-disbursement-result-table th,
.project-disbursement-result-table td{
    min-width:0!important;
    padding:8px 6px!important;
    vertical-align:middle!important;
    overflow-wrap:anywhere;
}
.project-disbursement-result-table th:nth-child(1),
.project-disbursement-result-table td:nth-child(1){text-align:left}
.project-disbursement-result-table th:nth-child(2),
.project-disbursement-result-table th:nth-child(3),
.project-disbursement-result-table td:nth-child(2),
.project-disbursement-result-table td:nth-child(3){text-align:right}
.project-disbursement-result-table th:nth-child(4),
.project-disbursement-result-table td:nth-child(4){text-align:center}
.project-disbursement-result-table th:nth-child(5),
.project-disbursement-result-table td:nth-child(5){text-align:left}
.project-disbursement-result-table th:nth-child(6),
.project-disbursement-result-table td:nth-child(6){text-align:center}
.project-disbursement-result-table .actions-cell{display:table-cell!important;white-space:nowrap}


/* 01/09/2026 - Module Dự án: đồng bộ nút hành động trang chi tiết (lần 19) */
.project-detail-primary-action{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    height:36px!important;
    min-height:36px!important;
    box-sizing:border-box!important;
    padding:0 12px!important;
    line-height:1.2!important;
    white-space:nowrap;
    vertical-align:middle;
}
.project-view-page-actions .project-detail-primary-action,
.gpmb-scope-plan-head .project-detail-primary-action,
.gpmb-route-map-input-panel .panel-head .project-detail-primary-action,
.project-packages-head .project-detail-primary-action,
.capital-allocation-head .project-detail-primary-action,
.weekly-results-panel .panel-head .project-detail-primary-action{
    flex:0 0 auto;
}

/* ==========================================================
   MODULE CƠ QUAN, ĐƠN VỊ - TINH GỌN DANH MỤC (01/09/2026 - lần 20)
   ========================================================== */
.organization-page-actions,
.organization-list-actions{margin-bottom:10px}
.organization-form-panel{max-width:980px}
.organization-form-v2{padding-top:2px}
.organization-form-grid{gap:14px 16px}
.organization-form-v2 .form-field label{font-weight:600}
.organization-form-v2 .form-field input{min-height:38px}

.organization-summary-panel{overflow:hidden}
.organization-summary-head{margin-bottom:0}
.organization-search-bar{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
    align-items:end;
    padding:10px;
    border-top:1px solid #edf1f5;
    border-bottom:1px solid #d9e4ee;
    background:#fbfdff;
}
.organization-search-field label{
    display:block;
    margin:0 0 4px;
    color:#667085;
    font-size:11px;
    font-weight:600;
}
.organization-search-field input{
    width:100%;
    min-height:34px;
    padding:6px 9px;
    font-size:11px;
}
.organization-search-actions{display:flex;align-items:center}
.organization-search-actions .btn{min-height:34px;padding:7px 12px}

.organization-summary-table-wrap{overflow-x:visible!important}
.organization-summary-table{
    width:100%;
    min-width:0!important;
    table-layout:fixed;
    border-collapse:collapse;
}
.organization-summary-table .col-stt{width:4%}
.organization-summary-table .col-organization{width:35%}
.organization-summary-table .col-position{width:22%}
.organization-summary-table .col-project-role{width:31%}
.organization-summary-table .col-action{width:8%}
.organization-summary-table thead th{
    background:#dfeef9!important;
    color:#163c66;
    border-bottom:1px solid #c5d9e9;
    font-weight:700;
    padding:10px 8px;
    line-height:1.35;
    vertical-align:middle;
}
.organization-summary-table tbody td{
    background:#fff!important;
    color:var(--text);
    font-weight:400!important;
    padding:10px 8px;
    line-height:1.4;
    vertical-align:middle;
    border-bottom:1px solid #edf1f5;
    white-space:normal;
    overflow-wrap:anywhere;
}
.organization-summary-table tbody tr:hover td{background:#f8fbfe!important}
.organization-summary-table th:nth-child(1),
.organization-summary-table td:nth-child(1),
.organization-summary-table th:last-child,
.organization-summary-table td:last-child{text-align:center}
.organization-summary-table th:nth-child(2),
.organization-summary-table th:nth-child(3),
.organization-summary-table th:nth-child(4),
.organization-summary-table td:nth-child(2),
.organization-summary-table td:nth-child(3),
.organization-summary-table td:nth-child(4){text-align:left}
.organization-stt{color:var(--muted);white-space:nowrap!important}
.organization-name-cell div{font-weight:400}
.organization-name-cell small{
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:11px;
    font-weight:400;
}
.organization-action-cell{white-space:nowrap!important;overflow-wrap:normal!important}
.organization-action-cell form{display:inline;margin:0}
.organization-action-edit,
.organization-action-delete{
    display:inline;
    border:0;
    background:transparent;
    padding:2px 1px;
    color:var(--link, #155eef);
    font:inherit;
    font-weight:400!important;
    cursor:pointer;
    box-shadow:none!important;
}
.organization-action-delete{color:#b42318}
.organization-action-separator{margin:0 2px;color:#98a2b3}

@media (max-width:760px){
    .organization-search-bar{grid-template-columns:1fr}
    .organization-summary-table-wrap{overflow-x:auto!important}
    .organization-summary-table{min-width:760px!important}
    .organization-form-panel{max-width:none}
}
.organization-form-v2 .form-field label small{font-size:10px;font-weight:400;color:var(--muted)}

/* ==========================================================
   MODULE NGƯỜI DÙNG - BẢNG TỔNG HỢP THEO PHONG CÁCH NHIỆM VỤ
   01/09/2026 - lần 21
   ========================================================== */
.user-summary-panel .user-summary-head{margin-bottom:0}
.user-summary-table-wrap{overflow-x:auto;overflow-y:visible}
.user-summary-table{
    width:100%;
    min-width:980px;
    table-layout:fixed;
    border-collapse:collapse;
}
.user-summary-table .col-stt{width:4.5%}
.user-summary-table .col-user{width:22%}
.user-summary-table .col-org{width:16%}
.user-summary-table .col-role{width:14%}
.user-summary-table .col-login{width:14%}
.user-summary-table .col-security{width:12%}
.user-summary-table .col-status{width:9%}
.user-summary-table .col-action{width:8.5%}
.user-summary-table thead th{
    background:#dfeef9!important;
    color:#163c66;
    border-bottom:1px solid #c5d9e9;
    font-weight:700;
    white-space:nowrap!important;
    padding:9px 8px;
    vertical-align:middle;
}
.user-summary-table tbody td{
    background:#fff!important;
    color:var(--text);
    font-weight:400!important;
    padding:9px 8px;
    vertical-align:middle;
    border-bottom:1px solid #edf1f5;
    overflow-wrap:anywhere;
}
.user-summary-table tbody tr:hover td{background:#f8fbfe!important}
.user-summary-table tbody tr.row-inactive td{color:#667085}
.user-summary-table .user-stt{text-align:center;color:var(--muted);white-space:nowrap!important}
.user-summary-table .user-name-cell{min-width:0!important}
.user-summary-table .user-name-cell small{display:block;margin-top:2px;color:#667085;font-weight:400}
.user-summary-table .user-title-link{display:inline;color:var(--text);font-weight:400!important;text-decoration:none}
.user-summary-table .user-title-link:hover{color:#155eef;text-decoration:underline;text-underline-offset:2px}
.user-summary-table .user-nowrap-cell{white-space:nowrap!important;overflow-wrap:normal!important}
.user-security-note{display:block;margin-top:2px;color:#b25b00;font-weight:400}
.user-action-cell{text-align:center!important;white-space:nowrap!important}
.user-action-cell form{display:inline;margin:0}
.user-action-edit,.user-action-delete{
    border:0;
    background:transparent;
    padding:3px 2px;
    font-size:11px;
    font-weight:400;
    cursor:pointer;
    text-decoration:none;
}
.user-action-edit{color:#155eef}
.user-action-delete{color:#a83f3f}
.user-action-edit:hover,.user-action-delete:hover{text-decoration:underline;text-underline-offset:2px}
.user-action-separator{color:#cbd5e1;margin:0 3px}
.user-action-disabled{color:#98a2b3;font-size:11px;cursor:not-allowed}
@media(max-width:760px){
    .user-summary-table{min-width:980px}
}
.user-summary-table td:first-child{min-width:0!important}


/* Project list: STT + balanced columns (01/09/2026 - lan 23) */
.project-list-table .project-list-col-index{width:5%}
.project-list-table .project-list-col-name{width:65%}
.project-list-table .project-list-col-stage{width:13%}
.project-list-table .project-list-col-status{width:9%}
.project-list-table .project-list-col-actions{width:8%}
.project-list-table .project-list-index-cell{text-align:center;white-space:nowrap}
.project-list-table th:last-child,
.project-list-table td.actions-cell{text-align:right}
@media (max-width:900px){
    .project-list-table{min-width:820px}
}


/* ==========================================================
   PRODUCTION TUNING 03/09/2026 - KPI + GANTT
   ========================================================== */
.project-master-value{
    font-size:35px!important;
    font-weight:800;
    line-height:1.08;
}
.project-master-value small{
    font-size:13px!important;
}
/* Hiển thị tối đa khoảng 10 nhiệm vụ; hàng tiêu đề/timeline luôn bám trên khi cuộn dọc. */
.prep-gantt-scroll{
    max-height:706px;
    overflow-x:auto;
    overflow-y:auto;
    overscroll-behavior:contain;
}
.prep-gantt-header-row{
    position:sticky;
    top:0;
    z-index:60;
}
.prep-gantt-fixed-header{z-index:70}

/* 04/09/2026 - Cơ cấu nguồn vốn dự án/DATP. */
.project-funding-block{
    border:1px solid #e2e8f0;
    border-radius:10px;
    background:#f8fafc;
    padding:14px 16px;
}
.project-funding-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:12px;
}
.project-funding-head>div:first-child>label{
    display:block;
    margin-bottom:4px!important;
}
.project-funding-head small{
    display:block;
    color:#667085;
    line-height:1.4;
}
.project-funding-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px 16px;
}
.project-funding-total{
    flex:0 0 auto;
    border:1px solid #d0d5dd;
    border-radius:8px;
    background:#fff;
    padding:8px 10px;
    color:#475467;
    font-size:11px;
    white-space:nowrap;
}
.project-funding-total strong{color:#101828;font-size:12px}
.project-funding-total.is-over-limit{
    border-color:#fda29b;
    background:#fef3f2;
    color:#b42318;
}
.project-funding-total.is-over-limit strong{color:#b42318}
.project-parent-funding-limit{
    margin-top:10px;
    padding:9px 10px;
    border-left:3px solid #3b82f6;
    border-radius:6px;
    background:#eff6ff;
    color:#475467;
    font-size:11px;
    line-height:1.45;
}
.project-parent-funding-limit strong{color:#1d4ed8}
@media(max-width:760px){
    .project-funding-head{flex-direction:column}
    .project-funding-total{width:100%;white-space:normal}
    .project-funding-grid{grid-template-columns:1fr}
}


/* ==========================================================
   PRODUCTION TUNING 08/09/2026 - PROJECT TABLE + GPMB FILTERS
   ========================================================== */
/* Danh mục dự án: cân lại cột, trạng thái 1 hàng, không scroll ngang. */
.project-list-table-wrap{
    overflow-x:visible!important;
    overflow-y:visible!important;
}
.project-list-table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed;
}
.project-list-table .project-list-col-index{width:5%!important}
.project-list-table .project-list-col-name{width:62%!important}
.project-list-table .project-list-col-stage{width:13%!important}
.project-list-table .project-list-col-status{width:12%!important}
.project-list-table .project-list-col-actions{width:8%!important}
.project-list-table td,
.project-list-table th{overflow-wrap:anywhere}
.project-list-table td:nth-child(4),
.project-list-table th:nth-child(4){white-space:nowrap}
.project-list-table td:nth-child(4) .badge{white-space:nowrap!important}

/* Bộ lọc GPMB trên Dashboard: kích thước chuẩn theo yêu cầu. */
@media(min-width:901px){
    .project-chart-head-filtered{flex-wrap:wrap}
    .dashboard-gpmb-filters,
    .dashboard-gpmb-filters.has-scope-filter,
    .dashboard-gpmb-top-grid .dashboard-gpmb-filters.has-scope-filter{
        display:flex!important;
        flex-wrap:wrap;
        align-items:end;
        gap:7px;
        width:auto!important;
        min-width:0!important;
        grid-template-columns:none!important;
    }
    .dashboard-gpmb-filter-locality,
    .dashboard-gpmb-filter-scope{flex:0 0 200px;width:200px}
    .dashboard-gpmb-filter-week{flex:0 0 150px;width:150px}
    .dashboard-gpmb-filter-unit{flex:0 0 110px;width:110px}
}
@media(max-width:900px){
    .dashboard-gpmb-filter-locality,
    .dashboard-gpmb-filter-scope,
    .dashboard-gpmb-filter-week,
    .dashboard-gpmb-filter-unit{width:100%}
}


/* ==========================================================
   MODULE BẢN ĐỒ - 08/09/2026
   ========================================================== */
.map-page-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:14px;
}
.map-page-head h2{margin:0;color:#172b4d;font-size:18px;letter-spacing:.01em}
.map-page-head p{margin:5px 0 0;color:#667085;font-size:12px;line-height:1.45}
.map-upload-panel{margin-bottom:14px}
.map-upload-form{
    display:grid;
    grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);
    gap:12px 16px;
}
.map-upload-form label>span:first-child{display:block;margin-bottom:5px;color:#344054;font-size:12px;font-weight:700}
.map-upload-form input[type="text"],
.map-upload-form input[type="file"],
.map-upload-form select,
.map-upload-form textarea{
    width:100%;
    border:1px solid #d0d5dd;
    border-radius:7px;
    background:#fff;
    color:#344054;
    padding:8px 10px;
    font:inherit;
}
.map-form-wide{grid-column:1/-1}
.map-visible-check{display:flex!important;align-items:center;gap:8px}
.map-visible-check input{width:16px;height:16px}
.map-visible-check span{margin:0!important}
.map-form-actions{display:flex;gap:8px;justify-content:flex-end}
.map-main-panel{padding:0;overflow:hidden}
.map-toolbar{
    display:flex;
    align-items:center;
    gap:10px;
    min-height:52px;
    padding:9px 12px;
    border-bottom:1px solid #e4e7ec;
    background:#fff;
}
.map-toolbar label{display:flex;align-items:center;gap:7px}
.map-toolbar label>span{color:#475467;font-size:11px;font-weight:700}
.map-toolbar select{
    width:230px;
    height:32px;
    border:1px solid #d0d5dd;
    border-radius:7px;
    background:#fff;
    color:#344054;
    padding:4px 8px;
    font-size:12px;
}
.map-toolbar-note{margin-left:auto;color:#98a2b3;font-size:11px;text-align:right}
.map-workspace{
    display:grid;
    grid-template-columns:285px minmax(0,1fr);
    min-height:650px;
}
.map-layer-sidebar{
    display:flex;
    flex-direction:column;
    min-width:0;
    border-right:1px solid #e4e7ec;
    background:#fbfcfe;
}
.map-layer-sidebar-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:12px 13px 10px;
    border-bottom:1px solid #edf0f3;
}
.map-layer-sidebar-head strong{font-size:11px;color:#344054;letter-spacing:.04em}
.map-layer-sidebar-head span{font-size:11px;color:#98a2b3}
.map-layer-list{max-height:510px;overflow:auto;padding:6px 0}
.map-layer-row{
    display:flex;
    align-items:flex-start;
    gap:6px;
    padding:8px 10px;
    border-bottom:1px solid #f0f2f5;
}
.map-layer-row:hover{background:#f6f8fb}
.map-layer-row>label{display:flex;align-items:flex-start;gap:8px;min-width:0;flex:1;cursor:pointer}
.map-layer-row input[type="checkbox"]{margin:3px 0 0;width:15px;height:15px;flex:0 0 15px}
.map-layer-copy{display:block;min-width:0;line-height:1.3}
.map-layer-copy strong{display:block;color:#344054;font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis}
.map-layer-copy small{display:block;margin-top:3px;color:#667085;font-size:10px;line-height:1.35}
.map-layer-type-dot{display:inline-block;width:10px;height:10px;margin-top:4px;flex:0 0 10px;border-radius:2px;background:#64748b}
.map-layer-type-alignment{background:#136EFF}
.map-layer-type-gpmb{background:#F59E0B}
.map-layer-type-combined{background:#7C3AED}
.map-layer-type-other{background:#64748B}
.map-layer-delete{
    border:0;background:transparent;color:#98a2b3;font-size:20px;line-height:1;cursor:pointer;padding:0 2px;
}
.map-layer-delete:hover{color:#b42318}
.map-layer-error{background:#fff5f5}
.map-layer-error .map-layer-copy small:after{content:" · Lỗi tải dữ liệu";color:#b42318;font-weight:700}
.map-empty-layer{padding:20px 12px;color:#98a2b3;font-size:12px;text-align:center}
.map-legend{margin-top:auto;padding:12px 13px;border-top:1px solid #e4e7ec;display:grid;gap:7px;background:#fff}
.map-legend>strong{font-size:10px;color:#667085;letter-spacing:.04em;margin-bottom:2px}
.map-legend>span{display:flex;align-items:center;gap:8px;color:#475467;font-size:11px}
.map-legend-line{display:inline-block;width:22px;height:4px;border-radius:2px;background:#64748b}
.map-legend-line.alignment{background:#136EFF}
.map-legend-line.combined{background:#7C3AED}
.map-legend-line.other{background:#64748B}
.map-legend-area{display:inline-block;width:22px;height:12px;border:2px solid #F59E0B;background:rgba(245,158,11,.22);border-radius:2px}
.map-canvas-wrap{position:relative;min-width:0;background:#eaf0f5}
.project-map{width:100%;height:650px;z-index:1}
.map-loading{
    position:absolute;z-index:500;top:14px;left:50%;transform:translateX(-50%);
    padding:7px 11px;border-radius:7px;background:rgba(255,255,255,.94);box-shadow:0 2px 8px rgba(16,24,40,.15);color:#475467;font-size:11px;font-weight:700
}
.map-provider-note{
    position:absolute;z-index:400;right:8px;bottom:5px;padding:2px 5px;border-radius:3px;background:rgba(255,255,255,.75);color:#667085;font-size:9px;pointer-events:none
}
.map-library-error{height:100%;display:grid;place-items:center;padding:30px;color:#b42318;font-weight:700;text-align:center}
.map-popup{min-width:190px;max-width:320px}
.map-popup>strong{display:block;color:#172b4d;font-size:13px;line-height:1.35}
.map-popup>small{display:block;margin-top:3px;color:#667085;font-size:10px}
.map-popup>p{margin:8px 0 0;color:#475467;font-size:11px;line-height:1.4;white-space:pre-line}
.map-popup dl{display:grid;grid-template-columns:minmax(90px,.8fr) minmax(110px,1.2fr);gap:4px 8px;margin:8px 0 0;padding-top:7px;border-top:1px solid #eaecf0;font-size:10px}
.map-popup dt{color:#667085;font-weight:700}
.map-popup dd{margin:0;color:#344054;word-break:break-word}
.leaflet-control-layers,.leaflet-bar{font-family:Arial,Helvetica,sans-serif}

@media(max-width:900px){
    .map-workspace{grid-template-columns:230px minmax(0,1fr);min-height:560px}
    .project-map{height:560px}
    .map-toolbar-note{display:none}
}
@media(max-width:760px){
    .map-page-head{flex-direction:column}
    .map-page-head .btn{width:100%}
    .map-upload-form{grid-template-columns:1fr}
    .map-form-wide{grid-column:auto}
    .map-workspace{display:block;min-height:0}
    .map-layer-sidebar{border-right:0;border-bottom:1px solid #e4e7ec}
    .map-layer-list{max-height:220px}
    .map-legend{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}
    .map-legend>strong{grid-column:1/-1}
    .project-map{height:65vh;min-height:480px}
    .map-toolbar{flex-wrap:wrap}
    .map-toolbar label{width:100%}
    .map-toolbar select{width:auto;flex:1}
}

/* ==========================================================
   MODULE BẢN ĐỒ - NÂNG CẤP ĐIỀU HÀNH KHÔNG GIAN 08/09/2026
   ========================================================== */
.field-hint{
    margin-top:5px;
    color:#98a2b3;
    font-size:10px;
    line-height:1.4;
}
.map-toolbar-primary{
    gap:8px;
    flex-wrap:nowrap;
    padding:10px 12px;
}
.map-project-filter-control{flex:0 0 auto}
.map-toolbar-primary .map-project-filter-control select{width:200px}
.map-search-control{
    display:flex;
    align-items:center;
    gap:6px;
    min-width:220px;
    max-width:320px;
    flex:0 1 300px;
}
.map-toolbar-primary>.btn{
    flex:0 0 auto;
    white-space:nowrap;
    padding-left:9px;
    padding-right:9px;
}
.map-search-control>label{
    color:#475467;
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
}
.map-search-box{
    position:relative;
    display:flex;
    min-width:0;
    flex:1;
}
.map-search-box input{
    min-width:0;
    width:100%;
    height:32px;
    border:1px solid #d0d5dd;
    border-radius:7px 0 0 7px;
    background:#fff;
    color:#344054;
    padding:5px 10px;
    font-size:12px;
    outline:none;
}
.map-search-box input:focus{
    border-color:#6b8daf;
    box-shadow:0 0 0 2px rgba(22,60,102,.08);
}
.map-search-box>button{
    height:32px;
    border:1px solid #163c66;
    border-left:0;
    border-radius:0 7px 7px 0;
    background:#163c66;
    color:#fff;
    padding:0 12px;
    font-size:11px;
    font-weight:700;
    cursor:pointer;
}
.map-search-results{
    position:absolute;
    z-index:900;
    top:36px;
    left:0;
    right:0;
    max-height:310px;
    overflow:auto;
    border:1px solid #d0d5dd;
    border-radius:8px;
    background:#fff;
    box-shadow:0 10px 26px rgba(16,24,40,.16);
}
.map-search-results>button{
    display:block;
    width:100%;
    border:0;
    border-bottom:1px solid #f0f2f5;
    background:#fff;
    padding:9px 11px;
    text-align:left;
    cursor:pointer;
}
.map-search-results>button:hover{background:#f8fafc}
.map-search-results strong{
    display:block;
    color:#344054;
    font-size:11px;
    line-height:1.35;
}
.map-search-results small{
    display:block;
    margin-top:2px;
    color:#667085;
    font-size:10px;
    line-height:1.3;
}
.map-search-empty{
    padding:12px;
    color:#98a2b3;
    font-size:11px;
    text-align:center;
}
.map-basemap-switch{
    display:inline-flex;
    border:1px solid #d0d5dd;
    border-radius:8px;
    overflow:hidden;
    background:#fff;
}
.map-basemap-switch button{
    height:30px;
    border:0;
    border-right:1px solid #e4e7ec;
    background:#fff;
    color:#475467;
    padding:0 11px;
    font-size:11px;
    font-weight:700;
    cursor:pointer;
}
.map-basemap-switch button:last-child{border-right:0}
.map-basemap-switch button.active{
    background:#163c66;
    color:#fff;
}
.map-mode-toolbar{
    display:flex;
    align-items:center;
    gap:6px;
    min-height:44px;
    padding:7px 12px;
    border-bottom:1px solid #e4e7ec;
    background:#f8fafc;
    overflow-x:auto;
}
.map-mode-label{
    margin-right:2px;
    color:#667085;
    font-size:10px;
    font-weight:800;
    letter-spacing:.04em;
    white-space:nowrap;
}
.map-mode-toolbar button{
    flex:0 0 auto;
    min-height:28px;
    border:1px solid #d0d5dd;
    border-radius:7px;
    background:#fff;
    color:#475467;
    padding:5px 10px;
    font-size:11px;
    font-weight:700;
    cursor:pointer;
}
.map-mode-toolbar button:hover{background:#f1f5f9}
.map-mode-toolbar button.active{
    border-color:#163c66;
    background:#163c66;
    color:#fff;
}
.map-mode-status{
    margin-left:auto;
    color:#667085;
    font-size:10px;
    white-space:nowrap;
}
.map-layer-sidebar{
    overflow:hidden;
}
.map-workspace.map-sidebar-collapsed{
    grid-template-columns:minmax(0,1fr);
}
.map-workspace.map-sidebar-collapsed .map-layer-sidebar{
    display:none;
}
.map-workspace.map-sidebar-collapsed .map-canvas-wrap{
    width:100%;
    min-width:0;
}
.map-sidebar-toggle-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    white-space:nowrap;
}
.map-sidebar-toggle-icon{
    display:inline-flex;
    width:12px;
    justify-content:center;
    font-size:10px;
    line-height:1;
}
.map-sidebar-toggle-button.active{
    border-color:#163c66;
    background:#eef4fb;
    color:#163c66;
}
.map-layer-section{
    border-bottom:1px solid #e4e7ec;
}
.map-source-section{
    display:flex;
    min-height:0;
    flex-direction:column;
    flex:1 1 auto;
}
.map-category-list{
    display:grid;
    gap:1px;
    padding:5px 0 7px;
}
.map-category-list label{
    display:flex;
    align-items:center;
    gap:8px;
    padding:6px 11px;
    color:#475467;
    font-size:11px;
    cursor:pointer;
}
.map-category-list label:hover{background:#f4f7fa}
.map-category-list input{
    width:15px;
    height:15px;
    flex:0 0 15px;
    margin:0;
}
.map-category-symbol{
    display:inline-block;
    width:18px;
    height:5px;
    border-radius:2px;
    background:#64748b;
    flex:0 0 18px;
}
.map-category-symbol.alignment{background:#136EFF;height:5px}
.map-category-symbol.gpmb{background:#F59E0B;height:8px}
.map-category-symbol.chainage{
    width:9px;height:9px;flex-basis:9px;margin:0 4px;border:2px solid #334155;border-radius:50%;background:#fff
}
.map-category-symbol.structure{background:#7C3AED}
.map-category-symbol.service-road{background:#0891B2}
.map-category-symbol.comparison{
    height:3px;
    background:repeating-linear-gradient(90deg,#64748B 0 7px,transparent 7px 11px)
}
.map-category-symbol.design{height:3px;background:#475569;opacity:.65}
.map-category-symbol.technical{height:2px;background:#94a3b8;opacity:.7}
.map-source-section .map-layer-list{
    max-height:none;
    min-height:80px;
    flex:1 1 auto;
}
.map-operational-legend{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px 8px;
    padding:10px 12px 12px;
    border-top:1px solid #e4e7ec;
    background:#fff;
}
.map-operational-legend>strong{
    grid-column:1/-1;
    color:#667085;
    font-size:10px;
    letter-spacing:.04em;
}
.map-operational-legend>span{
    display:flex;
    align-items:center;
    gap:6px;
    color:#475467;
    font-size:10px;
}
.map-status-line{
    display:inline-block;
    width:20px;
    height:5px;
    border-radius:3px;
    background:#94A3B8;
}
.map-status-line.done{background:#16A34A}
.map-status-line.progress{background:#F59E0B}
.map-status-line.blocked{background:#DC2626}
.map-status-line.pending{background:#94A3B8}
.map-km-hint{
    position:absolute;
    z-index:520;
    top:14px;
    right:14px;
    max-width:320px;
    padding:8px 10px;
    border-radius:7px;
    background:rgba(180,35,24,.94);
    color:#fff;
    box-shadow:0 3px 12px rgba(16,24,40,.18);
    font-size:11px;
    font-weight:700;
}
.map-chainage-label-icon{
    background:transparent!important;
    border:0!important;
}
.map-chainage-label-icon span{
    display:inline-block;
    transform:translate(5px,-18px);
    padding:2px 4px;
    border:1px solid rgba(51,65,85,.25);
    border-radius:4px;
    background:rgba(255,255,255,.9);
    color:#334155;
    font:700 9px Arial,Helvetica,sans-serif;
    white-space:nowrap;
    box-shadow:0 1px 2px rgba(16,24,40,.08);
}
.map-popup-operational dl{grid-template-columns:minmax(95px,.9fr) minmax(120px,1.2fr)}
.map-popup-link{
    display:inline-block;
    margin-top:8px;
    color:#136EFF;
    font-size:11px;
    font-weight:700;
    text-decoration:none;
}
.map-popup-link:hover{text-decoration:underline}
.map-text-danger{color:#b42318}

@media(max-width:1180px){
    .map-mode-status{display:none}
    .map-toolbar-primary{flex-wrap:wrap}
    .map-search-control{max-width:none;flex:1 1 300px}
}
@media(max-width:900px){
    .map-toolbar-primary{align-items:flex-end}
    .map-project-filter-control{flex:1 1 240px}
    .map-project-filter-control select{width:100%}
    .map-search-control{max-width:none;flex:1 1 100%;order:4}
}
@media(max-width:760px){
    .map-toolbar-primary{display:grid;grid-template-columns:1fr auto;gap:8px}
    .map-project-filter-control{grid-column:1/-1;width:100%}
    .map-project-filter-control select{width:100%}
    .map-search-control{grid-column:1/-1;width:100%;min-width:0;display:block}
    .map-search-control>label{display:block;margin-bottom:5px}
    .map-basemap-switch{justify-self:start}
    #mapFitVisible{justify-self:end}
    .map-mode-toolbar{padding:7px 8px}
    .map-mode-label{display:none}
    .map-category-list{grid-template-columns:1fr 1fr}
    .map-category-list label{padding:7px 9px}
    .map-layer-sidebar{max-height:none}
    .map-source-section .map-layer-list{max-height:180px}
    .map-operational-legend{grid-template-columns:repeat(2,minmax(0,1fr))}
    .project-map{height:68vh;min-height:500px}
    .map-provider-note{max-width:70%;text-align:right}
}
.map-category-list label>span{min-width:0;flex:1}
.map-category-list label>em{
    min-width:22px;
    padding:1px 5px;
    border-radius:999px;
    background:#eef2f6;
    color:#667085;
    font-size:9px;
    font-style:normal;
    font-weight:700;
    text-align:center;
}


/* ==========================================================
   MODULE BẢN ĐỒ - CHẾ ĐỘ TOÀN MÀN HÌNH 08/09/2026
   ========================================================== */
.map-fullscreen-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    white-space:nowrap;
}
.map-fullscreen-icon{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:16px;
    height:16px;
    font-size:16px;
    line-height:1;
}
.map-fullscreen-button.active{
    background:#163c66;
    border-color:#163c66;
    color:#fff;
}
.map-main-panel:fullscreen,
.map-main-panel:-webkit-full-screen,
.map-main-panel.map-fullscreen-fallback{
    width:100vw;
    height:100vh;
    max-width:none;
    margin:0;
    border:0;
    border-radius:0;
    background:#fff;
    overflow:hidden;
}
.map-main-panel.map-fullscreen-fallback{
    position:fixed;
    inset:0;
    z-index:100000;
}
body.map-fullscreen-body-lock{
    overflow:hidden!important;
}
.map-main-panel.map-is-fullscreen{
    display:flex;
    flex-direction:column;
}
.map-main-panel.map-is-fullscreen .map-toolbar,
.map-main-panel.map-is-fullscreen .map-mode-toolbar{
    flex:0 0 auto;
}
.map-main-panel.map-is-fullscreen .map-workspace{
    flex:1 1 auto;
    min-height:0;
    height:auto;
}
.map-main-panel.map-is-fullscreen .map-layer-sidebar{
    min-height:0;
    overflow:auto;
}
.map-main-panel.map-is-fullscreen .map-canvas-wrap{
    min-height:0;
    height:100%;
}
.map-main-panel.map-is-fullscreen .project-map{
    width:100%;
    height:100%!important;
    min-height:0!important;
}
@media(max-width:760px){
    .map-fullscreen-button{
        grid-column:1/-1;
        width:100%;
    }
    .map-main-panel.map-is-fullscreen .map-workspace{
        display:grid;
        grid-template-columns:220px minmax(0,1fr);
        height:auto;
    }
    .map-main-panel.map-is-fullscreen .map-layer-sidebar{
        border-right:1px solid #e4e7ec;
        border-bottom:0;
    }
    .map-main-panel.map-is-fullscreen .map-category-list{
        grid-template-columns:1fr;
    }
}


/* ==========================================================
   MODULE BẢN ĐỒ - TOOLBAR GỌN + ẨN/HIỆN BẢNG LỚP 08/09/2026
   ========================================================== */
@media(min-width:1181px){
    .map-toolbar-primary{
        flex-wrap:nowrap;
        overflow:visible;
    }
    .map-toolbar-primary .map-search-control{
        flex:0 1 300px;
        max-width:300px;
    }
}
.map-main-panel.map-is-fullscreen .map-workspace.map-sidebar-collapsed{
    grid-template-columns:minmax(0,1fr);
}
@media(max-width:760px){
    .map-sidebar-toggle-button{
        justify-self:stretch;
    }
    .map-main-panel.map-is-fullscreen .map-workspace.map-sidebar-collapsed{
        grid-template-columns:minmax(0,1fr);
    }
}

/* ==========================================================
   BẢN ĐỒ DUỖI THẲNG GPMB - MỐC RANH GIỚI TỐI GIẢN
   09/09/2026
   - Ranh xã/phường: sát phía trên bình đồ
   - Ranh gói thầu: sát phía dưới bình đồ
   ========================================================== */
.dashboard-route-boundary-scale{
    position:relative;
    height:22px;
    overflow:visible;
    pointer-events:none;
}
.dashboard-route-boundary-scale-top{
    margin:0 0 2px;
}
.dashboard-route-boundary-scale-bottom{
    margin:2px 0 0;
}
.dashboard-route-boundary-marker{
    position:absolute;
    left:0;
    transform:translateX(-50%);
    z-index:5;
    padding:1px 3px;
    border-radius:3px;
    background:rgba(255,255,255,.94);
    color:#475467;
    font-size:9px;
    font-weight:700;
    line-height:1.15;
    white-space:nowrap;
    box-shadow:0 0 0 1px rgba(226,232,240,.72);
}
.dashboard-route-boundary-scale-top .dashboard-route-boundary-marker{
    bottom:4px;
}
.dashboard-route-boundary-scale-bottom .dashboard-route-boundary-marker{
    top:4px;
}
.dashboard-route-boundary-scale-top .dashboard-route-boundary-marker:after,
.dashboard-route-boundary-scale-bottom .dashboard-route-boundary-marker:before{
    content:"";
    position:absolute;
    left:50%;
    width:1px;
    height:5px;
    background:#64748b;
    transform:translateX(-50%);
}
.dashboard-route-boundary-scale-top .dashboard-route-boundary-marker:after{
    top:100%;
}
.dashboard-route-boundary-scale-bottom .dashboard-route-boundary-marker:before{
    bottom:100%;
}
@media(max-width:760px){
    .dashboard-route-boundary-scale{height:20px}
    .dashboard-route-boundary-marker{font-size:8px;padding:1px 2px}
}

/* 09/09/2026 - LAN 8: kéo dài đường dóng mốc và bổ sung điểm đầu/cuối dự án */
.dashboard-route-boundary-scale{
    height:27px;
}
.dashboard-route-boundary-scale-top{
    margin:0 0 3px;
}
.dashboard-route-boundary-scale-bottom{
    margin:3px 0 0;
}
.dashboard-route-boundary-scale-top .dashboard-route-boundary-marker{
    bottom:7px;
}
.dashboard-route-boundary-scale-bottom .dashboard-route-boundary-marker{
    top:7px;
}
.dashboard-route-boundary-scale-top .dashboard-route-boundary-marker:after,
.dashboard-route-boundary-scale-bottom .dashboard-route-boundary-marker:before{
    height:9px;
}
.dashboard-route-boundary-marker-project_start{
    transform:translateX(0);
}
.dashboard-route-boundary-marker-project_start:before{
    left:0 !important;
    transform:none !important;
}
.dashboard-route-boundary-marker-project_end{
    transform:translateX(-100%);
}
.dashboard-route-boundary-marker-project_end:before{
    left:100% !important;
    transform:none !important;
}
@media(max-width:760px){
    .dashboard-route-boundary-scale{height:24px}
    .dashboard-route-boundary-scale-top .dashboard-route-boundary-marker{bottom:6px}
    .dashboard-route-boundary-scale-bottom .dashboard-route-boundary-marker{top:6px}
    .dashboard-route-boundary-scale-top .dashboard-route-boundary-marker:after,
    .dashboard-route-boundary-scale-bottom .dashboard-route-boundary-marker:before{height:8px}
}

/* 09/09/2026 - LAN 10: thống nhất tooltip mốc lý trình với bình đồ duỗi thẳng
   Chỉ dùng thuộc tính title của trình duyệt; không tạo tooltip CSS riêng để tránh hiển thị chồng lấn. */
.dashboard-route-boundary-marker{
    pointer-events:auto;
    outline:none;
}
.dashboard-route-boundary-marker:focus-visible{
    box-shadow:0 0 0 2px rgba(37,99,235,.22),0 0 0 1px rgba(37,99,235,.55);
}

/* ==========================================================
   BAN CHỈ ĐẠO / GIỚI THIỆU + BRAND HOME LINK - 12/09/2026
   ========================================================== */
.brand-home-link{
    text-decoration:none!important;
    color:inherit!important;
    cursor:pointer;
    border-radius:12px;
}
.brand-home-link:focus-visible{
    outline:2px solid rgba(255,255,255,.9);
    outline-offset:4px;
}

.board-intro-page{
    display:grid;
    gap:18px;
    font-family:Arial,Helvetica,sans-serif;
}
.board-intro-hero{
    display:grid;
    grid-template-columns:84px minmax(0,1fr);
    gap:20px;
    align-items:center;
    padding:24px 26px;
    background:linear-gradient(135deg,#f7fbff 0%,#eef7fd 100%);
    border:1px solid #d9e8f2;
    border-radius:14px;
    box-shadow:0 4px 14px rgba(15,60,90,.04);
}
.board-intro-emblem{
    width:78px;
    height:78px;
    display:grid;
    place-items:center;
}
.board-intro-emblem img{width:74px;height:74px;object-fit:contain;display:block}
.board-intro-kicker{
    margin:0 0 5px;
    color:#0b67a3;
    font-size:11px;
    font-weight:700;
    letter-spacing:.06em;
}
.board-intro-hero h2{
    margin:0;
    color:#17324d;
    font-size:23px;
    line-height:1.25;
}
.board-intro-lead{
    margin:9px 0 0;
    max-width:1040px;
    color:#5a6b7b;
    font-size:13px;
    line-height:1.62;
}
.board-intro-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
}
.board-intro-card{
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    gap:14px;
    min-height:180px;
    padding:20px;
    background:#fff;
    border:1px solid #e1e8ef;
    border-radius:12px;
    box-shadow:0 3px 12px rgba(25,50,75,.035);
}
.board-intro-card-primary{border-color:#cfe3f1;background:#fcfeff}
.board-intro-card-icon{
    width:42px;
    height:42px;
    border-radius:10px;
    display:grid;
    place-items:center;
    background:#edf6fc;
    color:#0b67a3;
}
.board-intro-card-icon svg{width:23px;height:23px}
.board-intro-label{
    display:block;
    margin-bottom:5px;
    color:#7a8997;
    font-size:10px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.board-intro-card h3{
    margin:0 0 8px;
    color:#243b53;
    font-size:15px;
    line-height:1.35;
}
.board-intro-card p,
.board-intro-list{
    margin:0;
    color:#5e6d7b;
    font-size:12px;
    line-height:1.62;
}
.board-intro-list{padding-left:18px}
.board-intro-list li+li{margin-top:4px}
.board-intro-link{
    display:inline-block;
    margin-top:10px;
    color:#0b67a3;
    font-size:12px;
    font-weight:700;
    text-decoration:none;
}
.board-intro-link:hover{text-decoration:underline}
.board-intro-actions{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
}
.board-intro-action{
    display:block;
    padding:15px 17px;
    background:#fff;
    border:1px solid #e1e8ef;
    border-radius:10px;
    color:#4f6070;
    text-decoration:none;
    transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.board-intro-action strong{display:block;color:#25445f;font-size:13px;margin-bottom:5px}
.board-intro-action span{display:block;font-size:11px;line-height:1.5}
.board-intro-action:hover{
    border-color:#b9d8eb;
    box-shadow:0 5px 14px rgba(20,80,120,.07);
    transform:translateY(-1px);
}
.board-intro-note{
    margin:0;
    padding:12px 14px;
    border-left:3px solid #9abfd7;
    background:#f8fbfd;
    color:#66788a;
    font-size:11px;
    line-height:1.55;
}
@media(max-width:900px){
    .board-intro-grid{grid-template-columns:1fr}
    .board-intro-actions{grid-template-columns:1fr}
}
@media(max-width:620px){
    .board-intro-hero{grid-template-columns:1fr;padding:20px}
    .board-intro-emblem{width:58px;height:58px}
    .board-intro-emblem img{width:56px;height:56px}
    .board-intro-hero h2{font-size:19px}
    .board-intro-card{grid-template-columns:38px minmax(0,1fr);padding:16px}
    .board-intro-card-icon{width:36px;height:36px}
}

/* ==========================================================
   BAN CHỈ ĐẠO / GIỚI THIỆU - QUẢN TRỊ THÔNG TIN + QUYẾT ĐỊNH
   12/09/2026 - LAN 2
   ========================================================== */
.board-intro-hero{
    grid-template-columns:84px minmax(0,1fr) auto;
}
.board-intro-hero-copy{min-width:0}
.board-intro-updated{
    margin:8px 0 0;
    color:#83919f;
    font-size:10px;
    line-height:1.4;
}
.board-intro-manage-actions{
    display:flex;
    flex-direction:column;
    gap:8px;
    align-items:stretch;
    min-width:150px;
}
.board-intro-manage-actions .btn{justify-content:center;white-space:nowrap}
.board-intro-richtext{
    color:#5e6d7b;
    font-size:12px;
    line-height:1.67;
    white-space:normal;
}
.board-intro-placeholder{
    color:#98a2b3!important;
    font-style:italic;
}
.board-intro-empty-notice{
    padding:12px 15px;
    border:1px dashed #cfd9e2;
    border-radius:10px;
    background:#fbfcfd;
    color:#667085;
    font-size:12px;
}
.board-member-list{
    display:grid;
    gap:0;
    margin-top:2px;
    border-top:1px solid #edf1f4;
}
.board-member-item{
    display:grid;
    grid-template-columns:minmax(105px,.68fr) minmax(0,1.6fr);
    gap:12px;
    padding:9px 0;
    border-bottom:1px solid #edf1f4;
}
.board-member-role{
    color:#0b67a3;
    font-size:10px;
    font-weight:700;
    line-height:1.45;
}
.board-member-main{min-width:0}
.board-member-main strong{
    display:block;
    color:#2b4054;
    font-size:12px;
    line-height:1.42;
}
.board-member-main span{
    display:block;
    margin-top:2px;
    color:#71808e;
    font-size:10.5px;
    line-height:1.45;
}
.board-decisions-panel{
    padding:0;
    overflow:hidden;
    scroll-margin-top:18px;
}
.board-decisions-heading{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:18px;
    padding:18px 20px 15px;
    border-bottom:1px solid #e9eef3;
    background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);
}
.board-decisions-heading h3{
    margin:1px 0 5px;
    color:#263f57;
    font-size:15px;
}
.board-decisions-heading p{
    margin:0;
    color:#758391;
    font-size:11px;
    line-height:1.5;
}
.board-decisions-table-wrap{margin:0;border:0;border-radius:0}
.board-decisions-table{min-width:920px}
.board-decisions-table th{font-size:10px}
.board-decisions-table td{font-size:11px;vertical-align:top}
.board-decisions-table th:nth-child(1){width:9%}
.board-decisions-table th:nth-child(2){width:13%}
.board-decisions-table th:nth-child(3){width:9%}
.board-decisions-table th:nth-child(4){width:18%}
.board-decisions-table th:nth-child(5){width:34%}
.board-decisions-table th:nth-child(6){width:17%}
.board-decision-title-cell{line-height:1.52}
.board-latest-badge{
    display:inline-block;
    margin-top:4px;
    padding:2px 6px;
    border-radius:999px;
    background:#ecfdf3;
    color:#027a48;
    font-size:9px;
    font-weight:700;
}
.board-decision-file-actions{
    display:flex;
    gap:8px;
    margin-bottom:4px;
}
.board-decision-file-actions a{
    color:#0b67a3;
    font-weight:700;
    text-decoration:none;
}
.board-decision-file-actions a:hover{text-decoration:underline}
.board-decisions-table td small{
    display:block;
    max-width:190px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    color:#98a2b3;
    font-size:9px;
}
.board-decisions-empty{
    display:grid;
    gap:5px;
    padding:24px 20px;
    color:#667085;
    font-size:11px;
}
.board-decisions-empty strong{color:#475467;font-size:12px}

.board-admin-page-actions .page-subtitle{
    margin:5px 0 0;
    max-width:850px;
    color:#667085;
    font-size:11px;
    line-height:1.55;
}
.board-profile-form{
    display:grid;
    gap:14px;
}
.board-edit-panel{
    padding:19px 20px 20px;
}
.board-edit-heading{
    display:grid;
    grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr);
    gap:20px;
    align-items:start;
    margin-bottom:15px;
    padding-bottom:13px;
    border-bottom:1px solid #edf1f4;
}
.board-edit-heading>div{
    display:flex;
    align-items:center;
    gap:10px;
}
.board-edit-step{
    display:inline-grid;
    place-items:center;
    width:29px;
    height:29px;
    border-radius:8px;
    background:#edf6fc;
    color:#0b67a3;
    font-size:10px;
    font-weight:800;
}
.board-edit-heading h3{
    margin:0;
    color:#2c4358;
    font-size:14px;
}
.board-edit-heading p{
    margin:1px 0 0;
    color:#7b8794;
    font-size:10.5px;
    line-height:1.5;
}
.board-profile-form textarea,
.board-decision-upload-panel textarea{
    resize:vertical;
    min-height:110px;
}
.board-member-editor{
    display:grid;
    gap:8px;
}
.board-member-editor-head,
.board-member-edit-row{
    display:grid;
    grid-template-columns:minmax(150px,.85fr) minmax(150px,.9fr) minmax(240px,1.55fr) 38px;
    gap:8px;
    align-items:center;
}
.board-member-editor-head{
    padding:0 1px;
    color:#7c8794;
    font-size:9.5px;
    font-weight:700;
}
.board-member-edit-row input{width:100%}
.board-member-remove{
    width:36px;
    min-width:36px;
    height:36px;
    padding:0!important;
    font-size:18px;
    line-height:1;
}
.board-member-add{
    justify-self:start;
    margin-top:3px;
}
.board-profile-form-actions{
    position:sticky;
    bottom:0;
    z-index:20;
    padding:12px 14px;
    border:1px solid #e4e9ee;
    border-radius:10px;
    background:rgba(255,255,255,.96);
    box-shadow:0 -4px 18px rgba(27,49,70,.05);
    backdrop-filter:blur(6px);
}
.board-decision-upload-panel{padding:20px}
.form-hint{
    display:block;
    margin-top:5px;
    color:#8996a3;
    font-size:9.5px;
    line-height:1.45;
}

@media(max-width:1000px){
    .board-intro-hero{grid-template-columns:72px minmax(0,1fr)}
    .board-intro-manage-actions{
        grid-column:1/-1;
        flex-direction:row;
        justify-content:flex-end;
    }
}
@media(max-width:760px){
    .board-edit-heading{grid-template-columns:1fr;gap:7px}
    .board-member-editor-head{display:none}
    .board-member-edit-row{
        grid-template-columns:1fr 38px;
        padding:10px;
        border:1px solid #e7ecf1;
        border-radius:9px;
        background:#fbfcfd;
    }
    .board-member-edit-row input:nth-child(1),
    .board-member-edit-row input:nth-child(2),
    .board-member-edit-row input:nth-child(3){grid-column:1/2}
    .board-member-remove{grid-column:2/3;grid-row:1/2}
    .board-member-item{grid-template-columns:1fr;gap:3px}
    .board-decisions-heading{display:block}
    .board-decisions-heading .btn{margin-top:12px}
}
@media(max-width:620px){
    .board-intro-hero{grid-template-columns:1fr}
    .board-intro-manage-actions{justify-content:stretch;flex-direction:column}
    .board-intro-manage-actions .btn{width:100%}
}

/* ==========================================================
   BAN CHỈ ĐẠO / GIỚI THIỆU - TINH GỌN THÔNG TIN CHUNG
   12/09/2026 - LAN 3
   ========================================================== */
.board-intro-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:stretch;
}
.board-intro-card{
    min-width:0;
    min-height:0;
}
.board-intro-card-primary{
    grid-column:1/-1;
    min-height:0;
    background:#fff;
}
.board-intro-card-body{min-width:0}
.board-member-item.is-role-only{
    grid-template-columns:1fr;
}
.board-member-item.is-role-only .board-member-role{
    font-size:11px;
    line-height:1.5;
}

.board-legal-inline{
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid #e6edf3;
}
.board-legal-inline-heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:10px;
}
.board-legal-inline-heading>div{min-width:0}
.board-legal-inline-heading strong{
    display:block;
    color:#334e68;
    font-size:12px;
    line-height:1.4;
}
.board-legal-inline-heading span{
    display:block;
    margin-top:2px;
    color:#8a97a4;
    font-size:9.5px;
    line-height:1.4;
}
.board-legal-upload-btn{
    flex:0 0 auto;
    min-height:30px;
    padding:6px 10px!important;
    font-size:10px!important;
    white-space:nowrap;
}
.board-decisions-compact-wrap{
    width:100%;
    max-width:100%;
    overflow:hidden;
    border:1px solid #e3eaf0;
    border-radius:9px;
    background:#fff;
}
.board-decisions-compact-table{
    width:100%;
    min-width:0;
    table-layout:fixed;
    border-collapse:collapse;
    border-spacing:0;
}
.board-decisions-compact-table .board-col-stt{width:54px}
.board-decisions-compact-table .board-col-number{width:21%}
.board-decisions-compact-table .board-col-date{width:14%}
.board-decisions-compact-table .board-col-authority{width:auto}
.board-decisions-compact-table .board-col-type{width:16%}
.board-decisions-compact-table th{
    padding:8px 9px;
    border-bottom:1px solid #e5ebf0;
    background:#f7f9fb;
    color:#617181;
    font-size:9.5px;
    font-weight:700;
    line-height:1.35;
    text-align:left;
    vertical-align:middle;
}
.board-decisions-compact-table td{
    padding:8px 9px;
    border-bottom:1px solid #edf1f4;
    color:#526272;
    font-size:10.5px;
    line-height:1.42;
    vertical-align:top;
    overflow-wrap:anywhere;
    word-break:normal;
}
.board-decisions-compact-table tbody tr:last-child td{border-bottom:0}
.board-decisions-compact-table tbody tr:hover{background:#fbfdff}
.board-decision-stt{
    color:#8a98a6!important;
    text-align:center;
}
.board-decision-number-link{
    color:#0b67a3;
    font-weight:700;
    text-decoration:none;
    overflow-wrap:anywhere;
}
.board-decision-number-link:hover{text-decoration:underline}
.board-decision-type{
    display:inline-block;
    padding:2px 7px;
    border:1px solid #d9e7f0;
    border-radius:999px;
    background:#f5f9fc;
    color:#43677f;
    font-size:9.5px;
    font-weight:700;
    line-height:1.35;
    white-space:normal;
}
.board-legal-empty{
    padding:10px 12px;
    border:1px dashed #d9e1e8;
    border-radius:8px;
    background:#fbfcfd;
    color:#8a97a4;
    font-size:10.5px;
    line-height:1.45;
}

@media(max-width:1120px){
    .board-intro-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .board-intro-card-primary{grid-column:1/-1}
}
@media(max-width:900px){
    .board-intro-grid{grid-template-columns:1fr}
    .board-intro-card-primary{grid-column:auto}
}
@media(max-width:700px){
    .board-legal-inline-heading{
        align-items:flex-start;
        flex-direction:column;
    }
    .board-legal-upload-btn{width:auto}
    .board-decisions-compact-wrap{
        overflow:visible;
        border:0;
        border-radius:0;
        background:transparent;
    }
    .board-decisions-compact-table,
    .board-decisions-compact-table tbody{
        display:block;
        width:100%;
    }
    .board-decisions-compact-table colgroup,
    .board-decisions-compact-table thead{display:none}
    .board-decisions-compact-table tr{
        display:grid;
        gap:0;
        width:100%;
        margin-bottom:8px;
        padding:7px 9px;
        border:1px solid #e4eaf0;
        border-radius:8px;
        background:#fff;
    }
    .board-decisions-compact-table tr:last-child{margin-bottom:0}
    .board-decisions-compact-table td{
        display:grid;
        grid-template-columns:104px minmax(0,1fr);
        gap:8px;
        width:100%;
        padding:4px 0;
        border:0;
        font-size:10.5px;
        overflow-wrap:anywhere;
    }
    .board-decisions-compact-table td::before{
        content:attr(data-label);
        color:#81909e;
        font-size:9.5px;
        font-weight:700;
        line-height:1.45;
    }
    .board-decision-stt{text-align:left}
}
@media(max-width:460px){
    .board-decisions-compact-table td{
        grid-template-columns:88px minmax(0,1fr);
    }
}
.board-intro-richtext,
.board-member-role,
.board-member-main strong,
.board-member-main span{
    overflow-wrap:anywhere;
}


/* ==========================================================
   BAN CHỈ ĐẠO / GIỚI THIỆU - BỐ CỤC & QUẢN TRỊ QUYẾT ĐỊNH
   12/09/2026 - LAN 4
   ========================================================== */
.board-intro-grid{
    grid-template-columns:1fr;
    gap:14px;
}
.board-intro-card-primary,
.board-intro-card-full{
    grid-column:auto;
    width:100%;
}
.board-intro-card{
    width:100%;
}
.board-intro-card-body{
    width:100%;
    min-width:0;
}

/* Chỉ giữ nút cập nhật ở hero */
.board-intro-manage-actions{
    align-self:center;
}

/* Tiêu đề khối Quyết định gọn, không còn dòng mô tả phụ */
.board-legal-inline-heading{
    align-items:center;
    margin-bottom:10px;
}
.board-legal-inline-heading strong{
    font-size:12px;
    color:#334e68;
}
.board-legal-inline-heading span{display:none}

/* Bảng Quyết định: ưu tiên Trích yếu, không tạo scroll ngang */
.board-decisions-compact-wrap{
    overflow:hidden;
}
.board-decisions-compact-table{
    table-layout:fixed;
    width:100%;
    min-width:0;
}
.board-decisions-compact-table .board-col-stt{width:44px}
.board-decisions-compact-table .board-col-number{width:13%}
.board-decisions-compact-table .board-col-date{width:88px}
.board-decisions-compact-table .board-col-authority{width:18%}
.board-decisions-compact-table .board-col-title{width:auto}
.board-decisions-compact-table .board-col-type{width:92px}
.board-decisions-compact-table .board-col-actions{width:104px}
.board-decisions-compact-table th,
.board-decisions-compact-table td{
    padding:8px 8px;
    overflow-wrap:anywhere;
    word-break:normal;
}
.board-decision-title-cell{
    line-height:1.48;
    color:#41576a!important;
}
.board-decision-actions-cell{
    vertical-align:middle!important;
}
.board-row-actions{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    flex-wrap:wrap;
}
.board-row-actions form{
    display:inline;
    margin:0;
}
.board-row-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:26px;
    padding:4px 8px;
    border:1px solid transparent;
    border-radius:6px;
    background:transparent;
    font:inherit;
    font-size:9.5px;
    font-weight:700;
    line-height:1;
    text-decoration:none;
    cursor:pointer;
    white-space:nowrap;
}
.board-row-action.is-edit{
    color:#176b9b;
    border-color:#cfe3ef;
    background:#f5fbff;
}
.board-row-action.is-edit:hover{
    background:#eaf6fc;
}
.board-row-action.is-delete{
    color:#a23a3a;
    border-color:#eed3d3;
    background:#fff8f8;
}
.board-row-action.is-delete:hover{
    background:#fff0f0;
}
.board-current-file{
    display:flex;
    align-items:center;
    gap:10px;
    flex-wrap:wrap;
    padding:9px 11px;
    border:1px solid #e2e8ee;
    border-radius:8px;
    background:#f9fbfc;
}
.board-current-file a{
    color:#0b67a3;
    font-weight:700;
    text-decoration:none;
}
.board-current-file a:hover{text-decoration:underline}
.board-current-file span{
    color:#8795a2;
    font-size:10px;
}

/* Bảng Thành phần 4 cột */
.board-members-table-wrap{
    width:100%;
    max-width:100%;
    overflow:hidden;
    border:1px solid #e3eaf0;
    border-radius:9px;
    background:#fff;
}
.board-members-table{
    width:100%;
    min-width:0;
    table-layout:fixed;
    border-collapse:collapse;
}
.board-members-table .board-member-col-stt{width:52px}
.board-members-table .board-member-col-role{width:25%}
.board-members-table .board-member-col-name{width:24%}
.board-members-table .board-member-col-position{width:auto}
.board-members-table th{
    padding:9px 10px;
    border-bottom:1px solid #e5ebf0;
    background:#f7f9fb;
    color:#617181;
    font-size:10px;
    font-weight:700;
    line-height:1.35;
    text-align:left;
}
.board-members-table td{
    padding:9px 10px;
    border-bottom:1px solid #edf1f4;
    color:#526272;
    font-size:10.5px;
    line-height:1.45;
    vertical-align:top;
    overflow-wrap:anywhere;
}
.board-members-table tbody tr:last-child td{border-bottom:0}
.board-members-table tbody tr:hover{background:#fbfdff}
.board-members-table td strong{
    color:#334e68;
    font-weight:700;
}
.board-member-stt{
    text-align:center;
    color:#8a98a6!important;
}

/* Giữ 1 hàng/1 khối ở mọi cỡ màn hình */
@media(max-width:1120px){
    .board-intro-grid{grid-template-columns:1fr}
    .board-intro-card-primary{grid-column:auto}
}

/* Bảng Quyết định chuyển sang card sớm hơn để tránh ép cột */
@media(max-width:980px){
    .board-decisions-compact-wrap{
        overflow:visible;
        border:0;
        border-radius:0;
        background:transparent;
    }
    .board-decisions-compact-table,
    .board-decisions-compact-table tbody{
        display:block;
        width:100%;
    }
    .board-decisions-compact-table colgroup,
    .board-decisions-compact-table thead{
        display:none;
    }
    .board-decisions-compact-table tr{
        display:grid;
        width:100%;
        margin-bottom:8px;
        padding:8px 10px;
        border:1px solid #e4eaf0;
        border-radius:8px;
        background:#fff;
    }
    .board-decisions-compact-table tr:last-child{margin-bottom:0}
    .board-decisions-compact-table td{
        display:grid;
        grid-template-columns:132px minmax(0,1fr);
        gap:10px;
        width:100%;
        padding:4px 0;
        border:0;
        font-size:10.5px;
        overflow-wrap:anywhere;
    }
    .board-decisions-compact-table td::before{
        content:attr(data-label);
        color:#81909e;
        font-size:9.5px;
        font-weight:700;
        line-height:1.45;
    }
    .board-decision-stt{text-align:left}
    .board-row-actions{justify-content:flex-start}
}

/* Bảng Thành phần cũng tự chuyển card, tuyệt đối không scroll ngang */
@media(max-width:700px){
    .board-members-table-wrap{
        overflow:visible;
        border:0;
        border-radius:0;
        background:transparent;
    }
    .board-members-table,
    .board-members-table tbody{
        display:block;
        width:100%;
    }
    .board-members-table colgroup,
    .board-members-table thead{
        display:none;
    }
    .board-members-table tr{
        display:grid;
        width:100%;
        margin-bottom:8px;
        padding:8px 10px;
        border:1px solid #e4eaf0;
        border-radius:8px;
        background:#fff;
    }
    .board-members-table tr:last-child{margin-bottom:0}
    .board-members-table td{
        display:grid;
        grid-template-columns:126px minmax(0,1fr);
        gap:10px;
        width:100%;
        padding:4px 0;
        border:0;
    }
    .board-members-table td::before{
        content:attr(data-label);
        color:#81909e;
        font-size:9.5px;
        font-weight:700;
        line-height:1.45;
    }
    .board-member-stt{text-align:left}
}
@media(max-width:460px){
    .board-decisions-compact-table td,
    .board-members-table td{
        grid-template-columns:100px minmax(0,1fr);
    }
}

/* ==========================================================
   15/09/2026 - Module Kế hoạch tuần
   ========================================================== */
.weekly-work-tab-toolbar{margin-top:0;margin-bottom:12px}
.weekly-work-tab-toolbar .project-dashboard-tabs{width:100%}
.weekly-work-tab-toolbar .project-dashboard-tab{font-family:inherit;text-decoration:none}
.weekly-work-panel{padding:0;overflow:hidden}
.weekly-work-panel-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid #e5e7eb}
.weekly-work-panel-header-compact{min-height:58px}
.weekly-work-week-picker{display:flex;align-items:center;gap:9px;min-width:0;flex:1}
.weekly-work-week-picker label{flex:0 0 auto;color:#475467;font-size:11px;font-weight:700;white-space:nowrap}
.weekly-work-week-picker select{width:min(100%,520px);min-width:320px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;color:#344054;padding:8px 10px;font-family:inherit;font-size:11px;font-weight:600;line-height:1.35}
.weekly-work-week-picker select:focus{outline:0;border-color:#84adcf;box-shadow:0 0 0 3px rgba(31,95,158,.10)}
.weekly-project-group{padding:0 14px 14px}
.weekly-main-project{margin:14px -14px 8px;padding:9px 14px;background:#eef4ff;border-top:1px solid #dbeafe;border-bottom:1px solid #dbeafe;color:#173b74;font-size:12px;font-weight:800;line-height:1.35;letter-spacing:.01em}
.weekly-component-project{margin:12px 0 6px;color:#344054;font-size:11px;font-weight:700;line-height:1.4}
.weekly-table-wrap{overflow-x:visible;border:1px solid #e2e8f0;border-radius:8px}
.weekly-table-wrap .data-table{table-layout:fixed;width:100%;min-width:0}
.weekly-table-wrap .data-table th{background:#f8fafc;color:#475467;font-size:10.5px;font-weight:700;line-height:1.3;white-space:normal}
.weekly-table-wrap .data-table td{font-size:11px;font-weight:400;line-height:1.45;vertical-align:top;overflow-wrap:anywhere}
.weekly-col-stt{width:42px}.weekly-col-task{width:28%}.weekly-col-plan-date{width:118px}.weekly-col-done-date{width:110px}.weekly-col-result{width:30%}.weekly-col-eval{width:160px}.weekly-col-note{width:92px}.weekly-col-actions{width:92px}
.weekly-plan-table .weekly-col-task{width:auto}
.weekly-stt{text-align:center;font-weight:600}.weekly-date-cell{text-align:center;white-space:nowrap}
.weekly-task-text,.weekly-result-text{color:#25364a}
.weekly-inline-action{display:inline-block;margin-top:5px;color:#2563eb;font-size:10px;font-weight:700;text-decoration:none}
.weekly-inline-action:hover{text-decoration:underline;text-underline-offset:2px}
.weekly-carry-note{display:inline-block;margin-top:4px;color:#7c3aed;font-size:9.5px;font-weight:700}
.weekly-note-cell{text-align:center}
.weekly-note-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 7px;border-radius:999px;background:#f3f0ff;color:#6941c6;font-size:9.5px;font-weight:700;line-height:1.25;white-space:nowrap}
.weekly-eval-badge{display:inline-flex;max-width:100%;padding:4px 7px;border-radius:999px;font-size:9.5px;font-weight:700;line-height:1.25;text-align:center}
.weekly-eval-success{background:#dcfce7;color:#166534}.weekly-eval-info{background:#dbeafe;color:#1d4ed8}.weekly-eval-warning{background:#fef3c7;color:#92400e}.weekly-eval-danger{background:#fee2e2;color:#b91c1c}.weekly-eval-neutral{background:#f1f5f9;color:#64748b}
.weekly-row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.weekly-row-actions a,.weekly-row-actions button{border:0;background:none;padding:0;color:#2563eb;font:inherit;font-size:10px;font-weight:700;text-decoration:none;cursor:pointer}.weekly-row-actions button{color:#dc2626}.weekly-row-actions a:hover,.weekly-row-actions button:hover{text-decoration:underline;text-underline-offset:2px}
.weekly-work-empty{margin:14px}
.weekly-work-form-panel{max-width:900px}.weekly-result-task-summary{display:grid;gap:4px;margin-bottom:14px;padding:10px 12px;border:1px solid #dbeafe;border-radius:8px;background:#f8fbff}.weekly-result-task-summary span{color:#64748b;font-size:10px;font-weight:700}.weekly-result-task-summary strong{color:#1e293b;font-size:12px}.weekly-result-task-summary small{color:#64748b;font-size:10px}

@media(max-width:900px){
    .weekly-result-table .weekly-col-task{width:25%}.weekly-result-table .weekly-col-result{width:27%}.weekly-col-eval{width:145px}
}
@media(max-width:760px){
    .weekly-work-tab-toolbar .project-dashboard-tabs{display:flex;flex-direction:column;gap:2px;border-bottom:0}
    .weekly-work-tab-toolbar .project-dashboard-tab{width:100%;min-height:40px;padding:8px 10px;border-radius:7px;white-space:normal}
    .weekly-work-tab-toolbar .project-dashboard-tab.active:after{left:0;right:auto;top:7px;bottom:7px;width:3px;height:auto;border-radius:0 3px 3px 0}
    .weekly-work-panel-header{align-items:flex-start;flex-direction:column}
    .weekly-work-week-picker{width:100%;align-items:flex-start;flex-direction:column;gap:5px}
    .weekly-work-week-picker select{width:100%;min-width:0}
    .weekly-table-wrap{border:0;border-radius:0}
    .weekly-table-wrap .data-table,.weekly-table-wrap .data-table tbody{display:block;width:100%}
    .weekly-table-wrap .data-table colgroup,.weekly-table-wrap .data-table thead{display:none}
    .weekly-table-wrap .data-table tr{display:grid;width:100%;margin-bottom:8px;padding:8px 10px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}
    .weekly-table-wrap .data-table td{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px;width:100%;padding:4px 0;border:0;text-align:left;white-space:normal}
    .weekly-table-wrap .data-table td::before{content:attr(data-label);color:#81909e;font-size:9.5px;font-weight:700;line-height:1.45}
    .weekly-stt,.weekly-date-cell,.weekly-note-cell{text-align:left}
}
@media(max-width:460px){
    .weekly-table-wrap .data-table td{grid-template-columns:105px minmax(0,1fr)}
}


/* ==========================================================
   15/09/2026 - Module Kế hoạch tuần - LAN 3
   Chuẩn hóa font, bộ chọn tuần và bảng KQ/KH tuần
   ========================================================== */
.weekly-work-tab-toolbar,
.weekly-work-panel,
.weekly-work-panel *{
    font-family:Arial,Helvetica,sans-serif;
}

/* Dòng Tuần/Năm/Thời gian: 13pt, không đậm */
.weekly-work-week-picker select{
    width:min(100%,620px);
    min-width:420px;
    padding:8px 10px;
    font-family:Arial,Helvetica,sans-serif;
    font-size:13pt;
    font-weight:400;
    line-height:1.35;
}
.weekly-work-week-picker select option{
    font-family:Arial,Helvetica,sans-serif;
    font-size:13pt;
    font-weight:400;
}

/* Tiêu đề dự án chính đồng bộ typography toàn Web App */
.weekly-main-project{
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:12px;
    font-weight:700;
    letter-spacing:0;
    line-height:1.4;
}
.weekly-component-project{
    font-family:Arial,Helvetica,sans-serif!important;
}

/* Tab Kết quả thực hiện: thêm Ghi chú + Thao tác */
.weekly-result-table .weekly-col-stt{width:42px}
.weekly-result-table .weekly-col-task{width:22%}
.weekly-result-table .weekly-col-plan-date{width:126px}
.weekly-result-table .weekly-col-done-date{width:112px}
.weekly-result-table .weekly-col-result{width:25%}
.weekly-result-table .weekly-col-eval{width:150px}
.weekly-result-table .weekly-col-note{width:86px}
.weekly-result-table .weekly-col-actions{width:76px}

/* Tab Đăng ký kế hoạch: ưu tiên cột Kế hoạch hoàn thành đủ 1 dòng */
.weekly-plan-table .weekly-col-stt{width:42px}
.weekly-plan-table .weekly-col-task{width:auto}
.weekly-plan-table .weekly-col-plan-date{width:156px}
.weekly-plan-table .weekly-col-note{width:92px}
.weekly-plan-table .weekly-col-actions{width:96px}
.weekly-plan-table th:nth-child(3){white-space:nowrap}

/* Sửa/Xóa/Cập nhật cùng font, cỡ và nhịp dòng */
.weekly-row-actions{
    display:flex;
    align-items:center;
    gap:9px;
    flex-wrap:wrap;
}
.weekly-row-actions form{margin:0;padding:0}
.weekly-row-actions a,
.weekly-row-actions button{
    display:inline-flex;
    align-items:center;
    padding:0;
    border:0;
    background:none;
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:10.5px;
    font-weight:600;
    line-height:1.35;
    text-decoration:none;
    cursor:pointer;
}
.weekly-row-actions a{color:#2563eb}
.weekly-row-actions button{color:#dc2626}

@media(max-width:760px){
    .weekly-work-week-picker select{
        width:100%;
        min-width:0;
        font-size:13pt;
    }
}


/* ==========================================================
   15/09/2026 - Module Kế hoạch tuần - LAN 4
   Tối ưu dropdown tuần và bảng Kết quả thực hiện
   ========================================================== */

/* Đồng bộ tuyệt đối cỡ chữ giữa giá trị đang chọn và danh sách xổ xuống. */
.weekly-work-week-picker select,
.weekly-work-week-picker select option{
    font:400 13pt/1.35 Arial,Helvetica,sans-serif!important;
}

/* Bảng Kết quả thực hiện: tỷ lệ cột cố định theo yêu cầu, tổng = 100%. */
.weekly-result-table .weekly-col-stt{width:5%}
.weekly-result-table .weekly-col-task{width:25%}
.weekly-result-table .weekly-col-plan-date{width:10%}
.weekly-result-table .weekly-col-done-date{width:10%}
.weekly-result-table .weekly-col-result{width:20%}
.weekly-result-table .weekly-col-eval{width:15%}
.weekly-result-table .weekly-col-note{width:8%}
.weekly-result-table .weekly-col-actions{width:7%}

/* Giảm padding ngang để ưu tiên diện tích cho nội dung. */
.weekly-result-table th,
.weekly-result-table td{
    padding-left:5px!important;
    padding-right:5px!important;
}

/* Chỉ cột Nhiệm vụ căn trái; các giá trị còn lại căn giữa. */
.weekly-result-table tbody td{
    text-align:center;
}
.weekly-result-table tbody td:nth-child(2){
    text-align:left;
}
.weekly-result-table .weekly-task-text,
.weekly-result-table .weekly-result-text{
    text-align:inherit;
}

/* Ghi chú Chuyển tiếp hiển thị như văn bản thường, không background. */
.weekly-result-table .weekly-note-badge{
    display:inline;
    padding:0;
    border-radius:0;
    background:transparent;
    color:#6941c6;
    font-size:9.5px;
    font-weight:600;
    line-height:1.35;
    white-space:normal;
}

/* Thao tác trong bảng KQ căn giữa, gọn trong cột 7%. */
.weekly-result-table .weekly-row-actions{
    justify-content:center;
}

@media(max-width:760px){
    /* Khi chuyển sang card trên mobile, giữ cách đọc tự nhiên: tất cả nội dung căn trái. */
    .weekly-result-table tbody td,
    .weekly-result-table tbody td:nth-child(2),
    .weekly-result-table .weekly-task-text,
    .weekly-result-table .weekly-result-text{
        text-align:left;
    }
    .weekly-result-table .weekly-row-actions{
        justify-content:flex-start;
    }
}

/* ==========================================================
   15/09/2026 - Module Kế hoạch tuần - LAN 6
   Dropdown tuần 13px + cập nhật tỷ lệ bảng Kết quả thực hiện
   ========================================================== */

/* Ô chọn tuần và toàn bộ các lựa chọn xổ xuống dùng cùng cỡ chữ 13px. */
.weekly-work-week-picker select,
.weekly-work-week-picker select option{
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:13px!important;
    font-weight:400!important;
    line-height:1.35!important;
}

/* Bảng Kết quả thực hiện: tỷ lệ cột cố định, tổng = 100%. */
.weekly-result-table .weekly-col-stt{width:3%!important}
.weekly-result-table .weekly-col-task{width:30%!important}
.weekly-result-table .weekly-col-plan-date{width:8%!important}
.weekly-result-table .weekly-col-done-date{width:10%!important}
.weekly-result-table .weekly-col-result{width:23%!important}
.weekly-result-table .weekly-col-eval{width:13%!important}
.weekly-result-table .weekly-col-note{width:7%!important}
.weekly-result-table .weekly-col-actions{width:6%!important}

/* Toàn bộ hàng tiêu đề căn giữa, kể cả cột Nhiệm vụ. */
.weekly-result-table thead th{
    text-align:center!important;
    vertical-align:middle;
}

/* Giữ padding ngang gọn để tận dụng diện tích bảng. */
.weekly-result-table th,
.weekly-result-table td{
    padding-left:5px!important;
    padding-right:5px!important;
}

@media(max-width:760px){
    .weekly-work-week-picker select,
    .weekly-work-week-picker select option{
        font-size:13px!important;
    }
}

/* ==========================================================
   15/09/2026 - Module Kế hoạch tuần - LAN 7
   Đồng bộ cỡ chữ hàng tiêu đề bảng tổng hợp = 11px
   ========================================================== */
.weekly-result-table thead th,
.weekly-plan-table thead th{
    font-size:11px!important;
}

/* ==========================================================
   REPORTING CONTROL - ADMIN
   ========================================================== */
.reporting-control-page{display:grid;gap:18px}
.reporting-control-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px 24px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 26px rgba(16,47,80,.05)}
.reporting-control-hero.is-open{border-left:4px solid #12b76a}
.reporting-control-hero.is-locked{border-left:4px solid #f79009}
.reporting-control-hero-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto}
.reporting-control-hero.is-open .reporting-control-hero-icon{background:#ecfdf3;color:#027a48}
.reporting-control-hero.is-locked .reporting-control-hero-icon{background:#fffaeb;color:#b54708}
.reporting-control-hero-icon svg{width:25px;height:25px}
.reporting-control-kicker{display:block;margin-bottom:5px;font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:700;line-height:1.35;letter-spacing:0;color:#667085}
.reporting-control-hero-copy h2{margin:0 0 6px;font-size:18px;color:#17212b}
.reporting-control-hero-copy p{margin:0;max-width:820px;line-height:1.55;color:#667085;font-size:13px}
.reporting-control-hero-badge{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}
.reporting-control-hero-badge.is-open{background:#ecfdf3;color:#027a48}
.reporting-control-hero-badge.is-locked{background:#fffaeb;color:#b54708}
.reporting-control-hero-badge .status-dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 3px rgba(255,255,255,.75)}
.reporting-control-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:18px;align-items:start}
.reporting-control-settings{margin-bottom:0;padding:22px}
.reporting-control-panel-head{padding-bottom:14px;border-bottom:1px solid var(--line);margin-bottom:14px}
.reporting-control-panel-head h2{font-size:15px;margin-bottom:5px}
.reporting-mode-form{display:grid;gap:12px}
.reporting-mode-option{position:relative;display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:flex-start;gap:12px;padding:16px;border:1px solid #d0d5dd;border-radius:13px;background:#fff;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.reporting-mode-option:hover{border-color:#98a2b3;box-shadow:0 5px 18px rgba(16,24,40,.05)}
.reporting-mode-option.is-selected{border-color:#6b8daf;background:#f8fbff;box-shadow:0 0 0 3px rgba(22,60,102,.06)}
.reporting-mode-option>input{position:absolute;opacity:0;pointer-events:none}
.reporting-mode-radio{width:18px;height:18px;border:1.5px solid #98a2b3;border-radius:50%;margin-top:4px;display:grid;place-items:center;background:#fff}
.reporting-mode-option.is-selected .reporting-mode-radio{border:5px solid var(--primary)}
.reporting-mode-option-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center}
.reporting-mode-option-icon svg{width:21px;height:21px}
.reporting-mode-option-icon.is-open{background:#ecfdf3;color:#027a48}
.reporting-mode-option-icon.is-locked{background:#fffaeb;color:#b54708}
.reporting-mode-option-copy{min-width:0;display:grid;grid-template-columns:auto auto;column-gap:8px;align-items:baseline}
.reporting-mode-option-copy strong{font-size:13px;color:#17212b}
.reporting-mode-option-copy small{font-size:11px;color:#667085;font-weight:700}
.reporting-mode-option-copy>span{grid-column:1/-1;margin-top:5px;font-size:12px;line-height:1.55;color:#667085}
.reporting-mode-actions{display:flex;align-items:center;gap:12px;padding-top:4px}
.reporting-mode-actions span{font-size:11px;color:#667085}
.reporting-control-side{display:grid;gap:14px}
.reporting-control-side>.panel{margin-bottom:0}
.reporting-schedule-card{display:grid;grid-template-columns:auto 1fr;gap:12px;padding:17px}
.reporting-schedule-icon{width:38px;height:38px;border-radius:10px;background:#eff8ff;color:#175cd3;display:grid;place-items:center}
.reporting-schedule-icon svg{width:21px;height:21px}
.reporting-schedule-card h3{margin:0 0 6px;font-size:13px;color:#17212b}
.reporting-schedule-card p{font-size:11px;line-height:1.55}
.reporting-next-window-card{padding:17px}
.reporting-window-time{display:grid;gap:5px;margin-top:8px}
.reporting-window-time strong{font-size:12px;color:#344054;line-height:1.4}
.reporting-window-time span{font-size:10px;color:#98a2b3;text-transform:uppercase;font-weight:700}
.reporting-admin-rule-card{padding:17px}
.reporting-admin-rule-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #eef2f6;font-size:11px}
.reporting-admin-rule-row:first-child{padding-top:0}
.reporting-admin-rule-row span{color:#667085}
.reporting-admin-rule-row strong{text-align:right;color:#344054}
.reporting-admin-rule-meta{padding-top:10px;color:#98a2b3;font-size:10px;line-height:1.45}
.reporting-control-note{display:flex;gap:12px;align-items:flex-start;padding:15px 18px;margin-bottom:0;background:#f8fafc}
.reporting-control-note-icon{width:30px;height:30px;border-radius:9px;background:#eef2f6;color:#475467;display:grid;place-items:center;flex:0 0 auto}
.reporting-control-note-icon svg{width:17px;height:17px}
.reporting-control-note strong{display:block;font-size:12px;margin-bottom:4px}
.reporting-control-note p{font-size:11px;line-height:1.55;color:#667085}
.reporting-access-banner{display:flex;align-items:flex-start;gap:11px;padding:11px 13px;border-radius:10px;margin-bottom:16px;border:1px solid transparent;font-size:11px}
.reporting-access-banner.is-open{background:#ecfdf3;border-color:#abefc6;color:#027a48}
.reporting-access-banner.is-locked{background:#fffaeb;border-color:#fedf89;color:#b54708}
.reporting-access-banner-icon{width:23px;height:23px;display:grid;place-items:center;flex:0 0 auto}
.reporting-access-banner-icon svg{width:19px;height:19px}
.reporting-access-banner strong{display:block;font-size:11px;margin-bottom:2px}
.reporting-access-banner span{line-height:1.45}
@media(max-width:1050px){
    .reporting-control-grid{grid-template-columns:1fr}
    .reporting-control-side{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
    .reporting-control-hero{grid-template-columns:auto 1fr;padding:17px}
    .reporting-control-hero-badge{grid-column:1/-1;justify-self:start}
    .reporting-control-side{grid-template-columns:1fr}
    .reporting-mode-option{grid-template-columns:auto auto 1fr;padding:13px}
    .reporting-mode-option-copy{grid-template-columns:1fr}
    .reporting-mode-option-copy small{margin-top:2px}
    .reporting-mode-option-copy>span{grid-column:auto}
    .reporting-mode-actions{align-items:flex-start;flex-direction:column}
}
.reporting-mode-option:has(input:checked){border-color:#6b8daf;background:#f8fbff;box-shadow:0 0 0 3px rgba(22,60,102,.06)}
.reporting-mode-option:has(input:checked) .reporting-mode-radio{border:5px solid var(--primary)}

/* ==========================================================
   MODULE VƯỚNG MẮC - FORM BÁO CÁO + TÀI LIỆU ĐÍNH KÈM (20/09/2026)
   ========================================================== */
.issue-report-form-actions{
    position:sticky;
    bottom:0;
    z-index:8;
    margin:18px -20px -20px;
    padding:12px 20px!important;
    border-top:1px solid var(--line);
    border-radius:0 0 14px 14px;
    background:rgba(255,255,255,.97);
    box-shadow:0 -8px 22px rgba(16,24,40,.08);
    backdrop-filter:blur(6px);
}
.issue-report-form-actions .btn{min-width:112px;text-align:center}
.issue-source-upload-field{margin-top:2px}
.issue-source-upload-field input[type=file]{padding:8px;background:#f8fafc}
.issue-upload-errors{display:grid;gap:3px}
.issue-source-document-links{display:flex;gap:7px;flex-wrap:wrap}
.issue-source-document-links a{
    display:inline-flex;
    align-items:center;
    gap:4px;
    max-width:100%;
    padding:5px 8px;
    border-radius:7px;
    background:#eff6ff;
    color:#155eef;
    font-size:11px;
    line-height:1.35;
    overflow-wrap:anywhere;
}
.issue-source-document-links a:hover{text-decoration:underline;text-underline-offset:2px}
@media(max-width:760px){
    .issue-report-form-actions{margin:16px -20px -20px;padding:11px 20px!important}
    .issue-report-form-actions .btn{flex:1;min-width:0}
}



/* ==========================================================
   MODULE VƯỚNG MẮC - TỐI ƯU TỶ LỆ CỘT BẢNG TỔNG HỢP (20/09/2026 - lần 5)
   ========================================================== */
.issue-summary-table-v2 .col-stt{width:4%!important}
.issue-summary-table-v2 .col-issue{width:39%!important}
.issue-summary-table-v2 .col-type{width:13%!important}
.issue-summary-table-v2 .col-org{width:13%!important}
.issue-summary-table-v2 .col-authority{width:13%!important}
.issue-summary-table-v2 .col-age{width:11%!important}
.issue-summary-table-v2 .col-action{width:7%!important}
.issue-summary-table-v2 thead th:nth-child(6),
.issue-summary-table-v2 tbody td:nth-child(6){white-space:nowrap!important}

/* ==========================================================
   TASK MODULE - SOURCE REFERENCE 2 LINES + HOVER (20/09/2026 - lần 6)
   ========================================================== */
.task-summary-table-v2 .task-source-cell{
    text-align:center!important;
    vertical-align:middle!important;
}
.task-summary-table-v2 .task-source-link,
.task-summary-table-v2 .task-source-reference{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:2px;
    width:100%;
    color:var(--text)!important;
    font-weight:400!important;
    line-height:1.25!important;
    text-align:center!important;
    text-decoration:none;
}
.task-summary-table-v2 .task-source-number,
.task-summary-table-v2 .task-source-date{
    display:block;
    width:100%;
    white-space:nowrap!important;
    overflow:hidden;
    text-overflow:ellipsis;
}
.task-summary-table-v2 .task-title-link:hover,
.task-summary-table-v2 .task-source-link:hover,
.task-summary-table-v2 .task-source-reference:hover{
    color:#155eef!important;
    text-decoration:underline!important;
    text-underline-offset:2px;
}


/* ==========================================================
   21/09/2026 - Module Kế hoạch tuần - LAN 2
   Bỏ cơ chế chuyển tiếp tự động; tinh gọn bảng KQ/KH tuần
   ========================================================== */

/* Tab Kết quả thực hiện: bỏ cột Ghi chú/Chuyển tiếp, phân bổ lại đủ 100%. */
.weekly-result-table .weekly-col-stt{width:3%!important}
.weekly-result-table .weekly-col-task{width:33%!important}
.weekly-result-table .weekly-col-plan-date{width:8%!important}
.weekly-result-table .weekly-col-done-date{width:10%!important}
.weekly-result-table .weekly-col-result{width:27%!important}
.weekly-result-table .weekly-col-eval{width:13%!important}
.weekly-result-table .weekly-col-actions{width:6%!important}

/* Tab Đăng ký kế hoạch: không còn cột Ghi chú chuyển tiếp. */
.weekly-plan-table .weekly-col-stt{width:42px}
.weekly-plan-table .weekly-col-task{width:auto}
.weekly-plan-table .weekly-col-plan-date{width:156px}
.weekly-plan-table .weekly-col-actions{width:96px}


/* Audit log: compact pagination — 04/10/2026 */
.audit-pagination{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:6px;
    max-width:100%;
}
.audit-pagination>a,
.audit-pagination>span{
    flex:0 0 auto;
}
.audit-pagination .pagination-nav{
    min-width:58px;
    padding:0 10px;
    height:34px;
    display:grid;
    place-items:center;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    font-size:13px;
    font-weight:600;
}
.audit-pagination a.pagination-nav:hover{
    border-color:#b8c7e8;
    background:#f7f9fd;
    color:var(--primary);
}
.audit-pagination .pagination-nav.disabled{
    color:#98a2b3;
    background:#f8fafc;
    cursor:not-allowed;
    opacity:.75;
}
.audit-pagination .pagination-ellipsis{
    min-width:28px;
    height:34px;
    display:grid;
    place-items:center;
    color:var(--muted);
    font-size:16px;
    line-height:1;
}
@media(max-width:650px){
    .audit-pagination{justify-content:center;gap:5px}
    .audit-pagination a{min-width:32px;height:32px}
    .audit-pagination .pagination-nav{min-width:52px;height:32px;padding:0 8px}
    .audit-pagination .pagination-ellipsis{min-width:20px;height:32px}
}

/* =========================================================
   INFOGRAPHICS - ADMIN / 05.10.2026
   ========================================================= */
.infographic-page{display:grid;gap:18px}
.infographic-toolbar-panel{display:grid;grid-template-columns:minmax(260px,1fr) minmax(420px,1.45fr) auto;gap:18px;align-items:end;padding:20px 22px}
.infographic-toolbar-copy h2{margin:3px 0 6px;font:800 24px/1.2 Arial,Helvetica,sans-serif;color:#102f50}
.infographic-toolbar-copy p{margin:0;max-width:620px;color:#667085;font-size:13px;line-height:1.55}
.infographic-kicker{display:block;font:700 11px/1.35 Arial,Helvetica,sans-serif;letter-spacing:.02em;color:#155eef}
.infographic-toolbar-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(230px,1.25fr) auto;gap:10px;align-items:end}
.infographic-toolbar-form label{display:grid;gap:5px}
.infographic-toolbar-form label>span{font-size:11px;font-weight:700;color:#475467}
.infographic-toolbar-form select{width:100%;min-height:38px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;padding:7px 10px;font:400 13px Arial,Helvetica,sans-serif;color:#344054}
.infographic-export-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center}
.infographic-workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}
.infographic-preview-shell{min-width:0;border:1px solid #d8e2ec;border-radius:16px;background:#dce5ee;box-shadow:0 8px 24px rgba(16,47,80,.08);overflow:hidden}
.infographic-preview-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 16px;background:#fff;border-bottom:1px solid #d8e2ec}
.infographic-preview-head>div{display:grid;gap:2px}.infographic-preview-head strong{font-size:14px;color:#102f50}.infographic-preview-head span{font-size:11px;color:#667085}
.infographic-live-badge{display:inline-flex!important;align-items:center;justify-content:center;border-radius:999px;background:#ecfdf3;color:#067647!important;font-size:10px!important;font-weight:800!important;padding:5px 8px}
.infographic-preview-scroll{max-height:calc(100vh - 175px);overflow:auto;padding:18px;display:flex;justify-content:center}
.infographic-svg{display:block;width:min(100%,540px);height:auto;background:#eef3f8;box-shadow:0 6px 22px rgba(16,47,80,.18)}
.infographic-guide{display:grid;gap:14px;position:sticky;top:74px}.infographic-guide .panel{padding:18px}.infographic-guide h3{margin:5px 0 10px;font-size:17px;color:#102f50}.infographic-guide ol{margin:0;padding-left:20px;color:#475467;font-size:12px;line-height:1.7}.infographic-data-note p{margin:8px 0 0;color:#667085;font-size:12px;line-height:1.55}
@media(max-width:1180px){.infographic-toolbar-panel{grid-template-columns:1fr}.infographic-toolbar-form{grid-template-columns:1fr 1fr auto}.infographic-export-actions{justify-content:flex-start}.infographic-workspace{grid-template-columns:1fr}.infographic-guide{position:static;grid-template-columns:1fr 1fr}.infographic-preview-scroll{max-height:none}}
@media(max-width:720px){.infographic-toolbar-form{grid-template-columns:1fr}.infographic-guide{grid-template-columns:1fr}.infographic-preview-scroll{padding:8px}.infographic-svg{width:100%}.infographic-toolbar-panel{padding:16px}.infographic-export-actions{flex-wrap:wrap}}
