*{box-sizing:border-box} :root{--bg:#f4f7f7;--card:#fff;--text:#17302e;--muted:#6b7e7c;--line:#dce7e5;--primary:#0f766e;--primary2:#115e59;--soft:#e7f5f3;--danger:#b42318;--warning:#b54708;--good:#067647;--blue:#175cd3;--shadow:0 10px 30px rgba(17,94,89,.08)} body{margin:0;font-family:"Noto Sans Thai","Tahoma","Segoe UI",sans-serif;background:var(--bg);color:var(--text)} button,input,select{font:inherit}.hidden{display:none!important}.screen{min-height:100vh;display:grid;place-items:center;padding:24px}.setup-card,.login-card{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.setup-card{width:min(560px,100%);padding:42px;text-align:center}.brand-mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#0f766e,#14b8a6);display:grid;place-items:center;color:#fff;font-weight:800;letter-spacing:.5px;box-shadow:0 8px 20px rgba(15,118,110,.24)}.brand-mark.large{width:72px;height:72px;border-radius:22px;font-size:24px}.setup-card .brand-mark{margin:0 auto 18px}.setup-card h1{margin:0 0 8px}.setup-card p{color:var(--muted);line-height:1.7}.setup-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:22px}.btn{border:0;border-radius:12px;padding:11px 16px;cursor:pointer;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary2)}.btn.ghost{background:#fff;color:var(--primary);border:1px solid var(--line)}.btn.small{padding:8px 12px;font-size:14px}.btn.wide{width:100%}.login-shell{width:min(1000px,100%);display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:stretch}.login-info{border-radius:28px;padding:48px;color:#fff;background:linear-gradient(145deg,#064e3b,#0f766e 60%,#14b8a6);box-shadow:var(--shadow)}.login-info h1{font-size:36px;margin:24px 0 4px}.login-info p{opacity:.84;margin:0}.login-points{display:grid;gap:14px;margin-top:48px;font-size:16px}.login-card{padding:40px;display:flex;flex-direction:column;justify-content:center}.login-card h2{margin:0 0 26px;font-size:28px}.login-card label{display:grid;gap:8px;margin-bottom:16px;font-weight:700}.login-card input,.filters input,.filters select{border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:#fff;color:var(--text);outline:none}.login-card input:focus,.filters input:focus,.filters select:focus{border-color:#5fb7ae;box-shadow:0 0 0 3px #dff3f0}.form-error{min-height:24px;color:var(--danger);font-size:14px}.app-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#083e3a;color:#fff;padding:20px 14px;display:flex;flex-direction:column;z-index:20}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:2px 8px 24px}.sidebar-brand strong,.sidebar-brand small{display:block}.sidebar-brand small{opacity:.65;margin-top:2px}.sidebar nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:#d6eeee;text-align:left;padding:12px 14px;border-radius:11px;cursor:pointer}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.11);color:#fff}.nav-item.danger{color:#fecaca}.sidebar-bottom{margin-top:auto}.user-chip{padding:12px 13px;border-top:1px solid rgba(255,255,255,.12);margin-bottom:7px;overflow:hidden}.user-chip span,.user-chip small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip small{opacity:.66;margin-top:3px}.main{min-width:0;padding:26px}.topbar{display:flex;align-items:center;gap:14px;margin-bottom:22px}.topbar h1{margin:0;font-size:26px}.topbar p{margin:4px 0 0;color:var(--muted);font-size:14px}.topbar-actions{margin-left:auto;display:flex;gap:9px}.icon-btn{display:none;border:1px solid var(--line);background:#fff;border-radius:11px;width:42px;height:42px;cursor:pointer}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpi,.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 5px 20px rgba(12,57,53,.04)}.kpi{padding:20px}.kpi span{color:var(--muted);font-size:14px}.kpi strong{display:block;font-size:25px;margin:8px 0 2px}.kpi small{color:var(--muted)}.overview-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:14px;margin-top:14px}.panel{padding:20px}.panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}.panel-title h2{font-size:18px;margin:0}.panel-title p{margin:5px 0 0;color:var(--muted);font-size:13px}.donut-wrap{display:flex;align-items:center;gap:30px;min-height:220px}.donut{--rate:0;flex:0 0 170px;width:170px;height:170px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--primary) calc(var(--rate)*1%),#e3eeec 0);position:relative}.donut:after{content:"";position:absolute;inset:18px;background:#fff;border-radius:50%}.donut>div{position:relative;z-index:1;text-align:center}.donut strong{display:block;font-size:30px}.donut span{color:var(--muted);font-size:13px}.legend{flex:1;display:grid;gap:13px}.legend>div{display:grid;grid-template-columns:12px 1fr auto;gap:9px;align-items:center;font-size:13px}.legend b{font-size:13px}.dot{width:9px;height:9px;border-radius:50%}.dot.paid{background:#0f766e}.dot.committed{background:#f59e0b}.dot.remain{background:#cbd5e1}.status-summary{display:grid;gap:11px}.status-row{display:grid;grid-template-columns:120px 1fr 36px;gap:10px;align-items:center}.status-label{font-size:13px}.status-track{height:10px;background:#edf2f2;border-radius:999px;overflow:hidden}.status-fill{height:100%;border-radius:999px;background:#99c9c4}.status-row b{text-align:right}.table-panel{margin-top:14px;padding:0}.table-title{padding:20px 20px 0}.filters{display:flex;gap:8px}.filters input{min-width:250px}.table-scroll{overflow:auto;max-height:min(66vh,680px);scrollbar-gutter:stable}.table-scroll table{width:100%;border-collapse:separate;border-spacing:0;min-width:1080px}th,td{padding:12px 14px;border-top:1px solid var(--line);text-align:left;font-size:13px;vertical-align:middle}th{color:#56706e;background:#f8fbfb;position:sticky;top:0;z-index:6;box-shadow:0 1px 0 var(--line),0 6px 10px rgba(12,57,53,.05)}.table-pagination{display:flex;align-items:center;gap:14px;justify-content:flex-end;padding:14px 20px 18px;border-top:1px solid var(--line);background:#fff;border-radius:0 0 18px 18px}.page-size{display:flex;align-items:center;gap:7px;margin-right:auto;color:var(--muted);font-size:12px}.page-size select{border:1px solid var(--line);border-radius:9px;padding:7px 9px;background:#fff;color:var(--text)}.page-info{color:var(--muted);font-size:12px;white-space:nowrap}.page-buttons{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.page-btn{min-width:34px;height:34px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--text);font-weight:700;cursor:pointer}.page-btn:hover:not(:disabled){border-color:#79bcb5;color:var(--primary);background:#f1faf9}.page-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.page-btn:disabled{opacity:.42;cursor:not-allowed}.num{text-align:right;white-space:nowrap}.code{font-family:Consolas,monospace;font-size:12px;color:#315d59;white-space:nowrap}.name-cell{min-width:300px;max-width:420px}.progress-cell{min-width:145px}.progress-wrap{display:grid;grid-template-columns:1fr 48px;gap:7px;align-items:center}.progress-track{height:8px;background:#e8efee;border-radius:999px;overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:var(--primary)}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800;white-space:nowrap}.badge.urgent{background:#fee4e2;color:#b42318}.badge.watch{background:#ffead5;color:#b54708}.badge.normal{background:#eef4ff;color:#3538cd}.badge.good{background:#dcfae6;color:#067647}.badge.excellent{background:#e0f2fe;color:#026aa2}.reports-list{display:grid;gap:10px}.report-row{border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;cursor:pointer}.report-row:hover{background:#f8fbfb}.report-row h3{margin:0 0 4px;font-size:15px}.report-row p{margin:0;color:var(--muted);font-size:12px}.report-stats{text-align:right}.report-stats b{display:block}.import-panel{max-width:780px}.drop-zone{border:2px dashed #b8cfcc;border-radius:18px;min-height:220px;display:grid;place-items:center;align-content:center;gap:8px;text-align:center;cursor:pointer;background:#fbfdfd}.drop-zone:hover{background:#f0faf8;border-color:#6bb8b0}.upload-icon{font-size:40px;color:var(--primary)}.drop-zone span:last-child{color:var(--muted);font-size:13px}.import-preview{margin-top:16px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#f8fbfb}.preview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.preview-grid div{background:#fff;border:1px solid var(--line);padding:12px;border-radius:11px}.preview-grid span,.preview-grid b{display:block}.preview-grid span{font-size:11px;color:var(--muted);margin-bottom:4px}.import-actions{display:flex;gap:8px;margin-top:14px}.toast{position:fixed;right:20px;bottom:20px;z-index:100;background:#143c39;color:#fff;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s}.toast.show{opacity:1;transform:none}.toast.error{background:#8b1e17}@media(max-width:1000px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.overview-grid{grid-template-columns:1fr}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-270px;width:250px;transition:.2s;box-shadow:10px 0 30px rgba(0,0,0,.18)}.sidebar.open{left:0}.icon-btn{display:block}.main{padding:20px}.login-shell{grid-template-columns:1fr;max-width:620px}.login-info{display:none}}@media(max-width:680px){.main{padding:14px}.topbar{align-items:flex-start;flex-wrap:wrap}.topbar-actions{width:100%;margin-left:56px}.kpi-grid{grid-template-columns:1fr 1fr;gap:9px}.kpi{padding:15px}.kpi strong{font-size:20px}.panel{padding:16px}.donut-wrap{flex-direction:column}.table-title{display:block}.filters{margin-top:12px;display:grid}.filters input{min-width:0;width:100%}.preview-grid{grid-template-columns:1fr 1fr}.setup-card{padding:30px 22px}}
@media(max-width:680px){.table-pagination{align-items:flex-start;flex-wrap:wrap;padding:12px 14px}.page-size{width:100%;margin-right:0}.page-info{margin-right:auto}.page-buttons{max-width:100%}}

/* v1.3.0 - Plan cut */
.table-scroll table{min-width:1210px}
.plan-cut-cell{min-width:132px}
.plan-cut-value{display:flex;align-items:center;justify-content:flex-end;gap:7px}
.plan-cut-edit{width:30px;height:30px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer;display:inline-grid;place-items:center;padding:0;line-height:1;flex:0 0 auto}
.plan-cut-edit:hover{border-color:#79bcb5;background:#f1faf9;transform:translateY(-1px)}
body.modal-open{overflow:hidden}
.modal-backdrop{position:fixed;inset:0;z-index:200;background:rgba(4,32,29,.52);display:grid;place-items:center;padding:18px}
.modal-card{width:min(560px,100%);background:#fff;border-radius:20px;border:1px solid var(--line);box-shadow:0 24px 70px rgba(4,32,29,.25);padding:22px}
.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.modal-header h2{margin:0;font-size:21px}
.modal-header p{margin:5px 0 0;color:var(--muted)}
.modal-code{font-family:Consolas,monospace;font-size:12px}
.modal-close{width:38px;height:38px;border:0;border-radius:10px;background:#f2f6f5;color:var(--text);font-size:25px;line-height:1;cursor:pointer}
.modal-close:hover{background:#e5eeee}
.modal-item-name{margin:14px 0 18px;padding:12px 14px;border-radius:12px;background:#f6faf9;line-height:1.55}
.field-label{display:block;font-weight:800;font-size:13px;margin:13px 0 7px}
.modal-input{width:100%;border:1px solid var(--line);border-radius:11px;padding:11px 12px;background:#fff;color:var(--text);outline:none}
.modal-input:focus{border-color:#5fb7ae;box-shadow:0 0 0 3px #dff3f0}
.modal-textarea{resize:vertical;min-height:92px}
.modal-audit{color:var(--muted);font-size:12px;margin:12px 0 0}
.modal-actions{display:flex;align-items:center;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.modal-actions-spacer{flex:1}
.btn.danger-outline{background:#fff;color:var(--danger);border:1px solid #f1c1bd}
.btn.danger-outline:hover{background:#fff4f3}
@media(max-width:680px){.modal-card{padding:18px}.modal-actions{flex-wrap:wrap}.modal-actions-spacer{display:none}.modal-actions .btn{flex:1}.btn.danger-outline{flex-basis:100%}}

.app-version{display:block;margin-top:10px;color:rgba(255,255,255,.55);font-size:12px;text-align:left;padding-left:18px}

/* v1.4.1 - Item detail redesign */
.budget-row{cursor:pointer;transition:background .16s ease,box-shadow .16s ease}
.budget-row:hover td{background:#f3faf9}
.budget-row:focus{outline:2px solid #5fb7ae;outline-offset:-2px}
.budget-row:focus td{background:#f3faf9}
.budget-row .code,.budget-row .name-cell{transition:color .16s ease}
.budget-row:hover .code,.budget-row:hover .name-cell{color:var(--primary)}

#itemDetailPage{max-width:1440px;margin:0 auto}
.detail-hero{position:relative;overflow:hidden;padding:26px 30px 28px;background:linear-gradient(135deg,#ffffff 0%,#f5fbfa 58%,#edf9f7 100%);border-color:#cfe5e2;box-shadow:0 10px 34px rgba(12,57,53,.07)}
.detail-hero:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-90px;top:-110px;background:radial-gradient(circle,rgba(20,184,166,.12),rgba(20,184,166,0) 70%);pointer-events:none}
.detail-hero-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.detail-hero-top .btn{box-shadow:0 3px 10px rgba(12,57,53,.04)}
.detail-eyebrow{position:relative;z-index:1;color:var(--primary);font-size:12px;font-weight:800;letter-spacing:.02em;margin-bottom:7px}
.detail-code{position:relative;z-index:1;display:inline-flex;align-items:center;width:max-content;max-width:100%;font-family:Consolas,monospace;color:#315d59;background:#eef8f6;border:1px solid #d5ebe7;border-radius:999px;font-size:12px;margin:0 0 10px;padding:6px 10px;overflow-wrap:anywhere}
.detail-title{position:relative;z-index:1;font-size:28px;line-height:1.42;margin:0;max-width:1100px;letter-spacing:-.01em;color:#123a36}
.detail-subtitle{position:relative;z-index:1;margin:10px 0 0;color:var(--muted);font-size:13px}
.detail-hero .badge{position:relative;z-index:1;font-size:12px;padding:7px 11px;box-shadow:0 3px 10px rgba(12,57,53,.05)}

.detail-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-top:14px}
.detail-kpi{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:17px;padding:17px 17px 16px;box-shadow:0 6px 22px rgba(12,57,53,.045);min-height:118px}
.detail-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#9bcac5}
.detail-kpi:nth-child(2):before{background:#f2b84b}
.detail-kpi:nth-child(3):before{background:#8db5db}
.detail-kpi:nth-child(4):before{background:#64b99f}
.detail-kpi:nth-child(5):before{background:#a7b6c5}
.detail-kpi:nth-child(6):before{background:#0f766e}
.detail-kpi span{display:block;color:var(--muted);font-size:12px;font-weight:700;line-height:1.35}
.detail-kpi strong{display:block;font-size:22px;line-height:1.2;margin:10px 0 5px;word-break:break-word;color:#123a36;font-variant-numeric:tabular-nums}
.detail-kpi small{color:var(--muted);font-size:11px}
.detail-kpi.emphasis{border-color:#9dd8d1;background:linear-gradient(145deg,#f9fefd,#edf9f7)}
.detail-kpi.emphasis strong{color:#0b746b}
.detail-kpi.negative{border-color:#f2b8b2;background:#fff6f5}
.detail-kpi.negative:before{background:#d92d20}
.detail-kpi.negative strong{color:#b42318}

.detail-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;margin-top:14px}
.detail-panel{min-width:0;padding:22px 23px}
.detail-panel:nth-child(1){grid-column:span 7}
.detail-panel:nth-child(2){grid-column:span 5}
.detail-source-panel{grid-column:1/-1!important}
.detail-panel .panel-title{padding-bottom:14px;margin-bottom:0;border-bottom:1px solid #e6efed}
.detail-panel .panel-title h2{font-size:19px;color:#143d39}
.detail-panel .panel-title p{font-size:12px;line-height:1.55}

.detail-list{margin:16px 0 0;display:grid;gap:0;border:1px solid #e3ecea;border-radius:14px;overflow:hidden;background:#fbfdfd}
.detail-list>div{display:grid;grid-template-columns:minmax(180px,.9fr) minmax(0,1.1fr);gap:18px;padding:12px 15px;border-bottom:1px solid #e7efee;align-items:center;min-height:49px}
.detail-list>div:nth-child(even){background:#fff}
.detail-list>div:last-child{border-bottom:0}
.detail-list dt{color:#66807d;font-size:12px;font-weight:600;line-height:1.4}
.detail-list dd{margin:0;text-align:right;font-weight:800;font-size:13px;color:#173b37;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.detail-progress{margin-top:16px;padding:15px 16px 14px;border:1px solid #d8e9e6;border-radius:14px;background:linear-gradient(135deg,#f7fcfb,#f0f9f7)}
.detail-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;font-size:12px;color:#496864}
.detail-progress-head b{font-size:19px;color:var(--primary);font-variant-numeric:tabular-nums}
.detail-progress-track{height:12px;background:#dfecea;box-shadow:inset 0 1px 2px rgba(0,0,0,.03)}
.detail-progress-track .progress-fill{background:linear-gradient(90deg,#0f766e,#14a093)}

.detail-plan-title{align-items:center}
.detail-plan-title .btn{flex:0 0 auto}
.detail-plan-amount{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;padding:17px 18px;border-radius:14px;background:linear-gradient(135deg,#f4faf9,#eef8f6);border:1px solid #d9eae7}
.detail-plan-amount span{color:#62807c;font-size:12px;font-weight:700}
.detail-plan-amount strong{font-size:25px;color:#0d6f67;font-variant-numeric:tabular-nums}
.detail-note-box{margin-top:12px;padding:15px 16px;border:1px solid #e0e9e8;border-radius:14px;background:#fff;min-height:112px}
.detail-note-box span{display:block;color:#718783;font-size:11px;font-weight:700;margin-bottom:7px}
.detail-note-box p{margin:0;color:#294b47;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px}
.detail-plan-title+.detail-plan-amount+.detail-note-box+.modal-audit{margin-top:12px;padding:10px 12px;border-radius:10px;background:#f8fbfb;border:1px dashed #dce7e5;line-height:1.5}

.source-list{grid-template-columns:repeat(4,minmax(0,1fr));display:grid;margin-top:16px;background:#fff}
.source-list>div{display:block;padding:14px 15px;border-bottom:0;border-right:1px solid #e7efee;min-height:82px}
.source-list>div:last-child{border-right:0}
.source-list dt{margin-bottom:7px}
.source-list dd{text-align:left;margin-top:0;font-size:13px;line-height:1.55}
.source-list .code{white-space:normal;word-break:break-all;font-size:12px}

@media(max-width:1250px){
  .detail-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .detail-panel:nth-child(1),.detail-panel:nth-child(2){grid-column:1/-1}
}
@media(max-width:900px){
  .detail-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .detail-grid{grid-template-columns:1fr}
  .detail-panel:nth-child(1),.detail-panel:nth-child(2),.detail-source-panel{grid-column:auto!important}
  .source-list{grid-template-columns:1fr 1fr}
  .source-list>div{border-right:0;border-bottom:1px solid #e7efee}
  .source-list>div:nth-child(odd){border-right:1px solid #e7efee}
  .source-list>div:nth-last-child(-n+2){border-bottom:0}
}
@media(max-width:680px){
  .detail-hero{padding:18px 17px 20px}
  .detail-hero-top{align-items:flex-start}
  .detail-title{font-size:21px;line-height:1.5}
  .detail-code{font-size:11px}
  .detail-kpi-grid{grid-template-columns:1fr 1fr;gap:9px}
  .detail-kpi{padding:14px 13px;min-height:104px}
  .detail-kpi strong{font-size:18px}
  .detail-panel{padding:17px}
  .detail-list>div{grid-template-columns:1fr;gap:5px;padding:11px 13px}
  .detail-list dd{text-align:left;font-size:13px}
  .source-list{display:block}
  .source-list>div{border-right:0!important;border-bottom:1px solid #e7efee!important;min-height:0}
  .source-list>div:last-child{border-bottom:0!important}
  .detail-plan-title{display:block}
  .detail-plan-title .btn{margin-top:12px;width:100%}
  .detail-plan-amount{align-items:flex-start;flex-direction:column;gap:6px}
  .detail-plan-amount strong{font-size:22px}
}
@media(max-width:420px){
  .detail-kpi-grid{grid-template-columns:1fr}
}

/* v1.5.0 - Multiple plan-cut entries */
.plan-cut-manager{width:min(760px,100%);max-height:min(88vh,860px);overflow:auto}
.plan-cut-manager-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 16px}
.plan-cut-manager-summary>div{padding:14px 15px;border:1px solid #dbe9e7;border-radius:13px;background:linear-gradient(135deg,#f7fbfa,#eef8f6)}
.plan-cut-manager-summary span{display:block;color:#67817d;font-size:11px;font-weight:700;margin-bottom:5px}
.plan-cut-manager-summary strong{display:block;color:#0d6f67;font-size:21px;font-variant-numeric:tabular-nums}
.plan-cut-manager-history-wrap{border:1px solid #e0e9e8;border-radius:15px;background:#fbfdfd;padding:14px;margin-bottom:17px}
.plan-cut-section-title{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:10px}
.plan-cut-section-title span{font-size:14px;font-weight:800;color:#173e39}
.plan-cut-section-title small{font-size:11px;color:#78908c}
.plan-cut-manager-history{display:grid;gap:8px;max-height:300px;overflow:auto;padding-right:3px}
.plan-history-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:start;border:1px solid #e3ecea;border-radius:12px;background:#fff;padding:11px 12px}
.plan-history-row.legacy{border-style:dashed;background:#fffdf6}
.plan-history-index{width:28px;height:28px;border-radius:9px;background:#e9f5f3;color:#0f766e;display:grid;place-items:center;font-size:11px;font-weight:800}
.plan-history-main{min-width:0}
.plan-history-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.plan-history-top strong{font-size:15px;color:#123b37;font-variant-numeric:tabular-nums}
.legacy-chip{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;background:#fff4cc;color:#8a6400;font-size:10px;font-weight:800}
.plan-history-main p{margin:5px 0 4px;color:#385b57;font-size:12px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.plan-history-main small{color:#81938f;font-size:10px}
.plan-history-actions{display:flex;gap:5px;align-items:center}
.history-action{border:1px solid #d8e6e4;background:#fff;border-radius:8px;padding:6px 8px;font-size:10px;font-weight:800;cursor:pointer;color:#35645f}
.history-action:hover{background:#f0f8f7;border-color:#9fcfc9}
.history-action.delete{color:#b42318;border-color:#f0c4bf}
.history-action.delete:hover{background:#fff4f3;border-color:#e7aaa3}
.plan-cut-entry-form{border-top:1px solid #e1ebe9;padding-top:16px}
.empty-plan-history{padding:22px 14px;text-align:center;color:#849793;font-size:12px;border:1px dashed #d8e5e3;border-radius:12px;background:#fff}

.detail-plan-history-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:15px;margin-bottom:8px;color:#627f7b;font-size:11px;font-weight:700}
.detail-plan-history-head b{color:#315e59;font-size:11px;background:#edf7f5;padding:5px 8px;border-radius:999px}
.detail-plan-history{display:grid;gap:8px;max-height:330px;overflow:auto;padding-right:2px}
.detail-plan-history .plan-history-row{grid-template-columns:30px minmax(0,1fr);padding:10px 11px}
.detail-plan-history .plan-history-actions{display:none}

@media(max-width:680px){
  .plan-cut-manager{max-height:92vh;padding:16px}
  .plan-cut-manager-summary{grid-template-columns:1fr}
  .plan-cut-section-title{display:block}
  .plan-cut-section-title small{display:block;margin-top:3px}
  .plan-history-row{grid-template-columns:28px minmax(0,1fr)}
  .plan-history-actions{grid-column:2;justify-content:flex-start;margin-top:3px}
  .history-action{padding:7px 10px}
  .plan-cut-manager-history{max-height:250px}
}
.plan-cut-count-chip{display:inline-flex;align-items:center;white-space:nowrap;padding:3px 6px;border-radius:999px;background:#edf7f5;color:#3c746e;font-size:9px;font-weight:800}
@media(max-width:900px){.plan-cut-value{flex-wrap:wrap}.plan-cut-count-chip{order:3;margin-left:auto}}


/* v1.5.1 - Plan-cut budget limit validation */
.plan-cut-control-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
.plan-cut-control-summary>div:nth-child(5){background:linear-gradient(135deg,#f2fbf8,#e8f7f2);border-color:#cde9e2}
.plan-cut-limit-alert{margin:10px 0 12px;padding:12px 14px;border:1px solid #f1b8b0;border-left:5px solid #c93d2f;border-radius:12px;background:#fff1ef;color:#8f241b}
.plan-cut-limit-alert strong{display:block;font-size:15px;margin-bottom:4px}
.plan-cut-limit-alert p{margin:0;font-size:12px;line-height:1.55;color:#9f3328}
.modal-input.input-danger{border-color:#d9534f!important;background:#fff8f7;box-shadow:0 0 0 3px rgba(217,83,79,.10)!important}
.danger-text{color:#b52c22!important}
#planCutSaveBtn:disabled{cursor:not-allowed;opacity:.5;filter:grayscale(.15)}
@media(max-width:760px){.plan-cut-control-summary{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.plan-cut-control-summary{grid-template-columns:1fr}}


/* v1.5.2 - Detail navigation enhancement */
.detail-back-primary{
  min-height:44px;
  padding:10px 18px;
  border:1px solid #0b6d65;
  border-radius:13px;
  background:linear-gradient(135deg,#0f766e,#0b665f);
  color:#fff;
  font-size:14px;
  font-weight:800;
  box-shadow:0 8px 18px rgba(15,118,110,.18);
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
}
.detail-back-primary:hover{
  background:linear-gradient(135deg,#0d6e66,#075a54);
  box-shadow:0 10px 24px rgba(15,118,110,.25);
  transform:translateY(-1px);
}
.detail-back-primary:focus-visible,.detail-top-secondary:focus-visible{
  outline:3px solid rgba(20,184,166,.28);
  outline-offset:2px;
}
.detail-back-icon{font-size:19px;line-height:1;font-weight:900}
.detail-hero-top .detail-back-primary{position:relative;z-index:2}
.detail-bottom-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin:20px 0 8px;
  padding:18px;
  border:1px solid #dce9e7;
  border-radius:18px;
  background:linear-gradient(135deg,#ffffff,#f3faf9);
  box-shadow:0 8px 24px rgba(12,57,53,.055);
}
.detail-bottom-nav .btn{min-width:190px}
.detail-top-secondary{
  min-height:44px;
  padding:10px 18px;
  border:1px solid #a9cfca;
  border-radius:13px;
  background:#fff;
  color:#0f766e;
  font-size:14px;
  font-weight:800;
  box-shadow:0 5px 14px rgba(12,57,53,.06);
  transition:transform .16s ease,background .16s ease,border-color .16s ease;
}
.detail-top-secondary:hover{
  background:#edf8f6;
  border-color:#79bcb5;
  transform:translateY(-1px);
}
@media(max-width:680px){
  .detail-hero-top .detail-back-primary{min-height:42px;padding:9px 14px;font-size:13px}
  .detail-bottom-nav{flex-direction:column;align-items:stretch;padding:14px;margin-top:14px}
  .detail-bottom-nav .btn{width:100%;min-width:0}
}


/* v1.5.3 - Budget list emphasis */
.table-panel{
  border:1px solid #b8d9d5;
  border-top:4px solid var(--primary);
  box-shadow:0 14px 36px rgba(8,62,58,.12);
  overflow:hidden;
  background:#fff;
}
.table-title{
  margin:0;
  padding:18px 20px;
  align-items:center;
  background:linear-gradient(135deg,#0a5f59 0%,#0f766e 56%,#12857c 100%);
  border-bottom:0;
}
.table-title>div:first-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.table-title h2{
  display:flex;
  align-items:center;
  gap:8px;
  color:#fff;
  font-size:21px;
  letter-spacing:.1px;
}
.budget-section-icon{
  width:34px;
  height:34px;
  display:inline-grid;
  place-items:center;
  border-radius:10px;
  background:rgba(255,255,255,.16);
  border:1px solid rgba(255,255,255,.24);
  color:#fff;
  font-size:20px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.table-title #itemCount{
  margin:0;
  padding:5px 10px;
  border-radius:999px;
  color:#eafffb;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.20);
  font-size:12px;
  font-weight:700;
}
.table-title .filters{margin-left:auto}
.table-title .filters input,
.table-title .filters select{
  min-height:44px;
  border:1px solid rgba(255,255,255,.42);
  background:#fff;
  box-shadow:0 5px 14px rgba(2,44,41,.10);
  font-weight:600;
}
.table-title .filters input:focus,
.table-title .filters select:focus{
  border-color:#7fe0d5;
  box-shadow:0 0 0 4px rgba(127,224,213,.24),0 6px 16px rgba(2,44,41,.12);
}
.table-scroll{background:#fff}
.table-scroll th{
  padding-top:14px;
  padding-bottom:14px;
  color:#174f4a;
  background:#e9f5f3;
  border-top:0;
  border-bottom:2px solid #a7d0cb;
  font-size:13px;
  font-weight:900;
  box-shadow:0 2px 0 rgba(15,118,110,.06),0 7px 14px rgba(12,57,53,.06);
}
.table-scroll tbody tr:nth-child(odd){background:#ffffff}
.table-scroll tbody tr:nth-child(even){background:#f4fbfa}
.table-scroll tbody tr{transition:background .14s ease,box-shadow .14s ease}
.table-scroll tbody tr.budget-row:hover{
  background:#e6f6f3;
  box-shadow:inset 4px 0 0 var(--primary);
}
.table-scroll td{border-top:1px solid #d9e8e6}
.table-scroll tbody tr:first-child td{border-top:0}
.table-pagination{
  background:linear-gradient(180deg,#fff,#f6fbfa);
  border-top:1px solid #cfe3e0;
}
@media(max-width:680px){
  .table-title{padding:16px;align-items:stretch}
  .table-title>div:first-child{margin-bottom:2px}
  .table-title h2{font-size:19px}
  .table-title .filters{margin-left:0}
  .table-title .filters input,.table-title .filters select{min-height:42px}
}

/* v1.6.0+ - Sub Projects */
.detail-subprojects-panel{grid-column:1/-1!important}
.detail-subprojects-title{align-items:center}
.detail-subprojects-title .btn{flex:0 0 auto}
.subproject-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}
.subproject-summary>div{padding:14px 16px;border:1px solid #dce9e7;border-radius:13px;background:linear-gradient(135deg,#f8fcfb,#f0f8f7)}
.subproject-summary span{display:block;color:#6d8380;font-size:11px;font-weight:700;margin-bottom:5px}
.subproject-summary strong{display:block;color:#154842;font-size:18px;font-variant-numeric:tabular-nums}
.subproject-list{display:grid;gap:10px}
.subproject-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:13px;align-items:start;padding:15px;border:1px solid #dfe9e7;border-radius:15px;background:#fff;box-shadow:0 4px 14px rgba(12,57,53,.035)}
.subproject-card:hover{border-color:#b5d7d2;background:#fbfefd}
.subproject-number{width:34px;height:34px;border-radius:11px;background:#e5f5f2;color:#0f766e;display:grid;place-items:center;font-size:13px;font-weight:900}
.subproject-main{min-width:0}
.subproject-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.subproject-title-row h3{margin:1px 0 0;font-size:15px;line-height:1.45;color:#173d38}
.subproject-budget-chip{display:inline-flex;white-space:nowrap;padding:5px 9px;border-radius:999px;background:#e9f6f4;color:#0c6e65;font-size:11px;font-weight:900}
.subproject-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:7px;color:#6b817e;font-size:11px;line-height:1.45}
.subproject-meta b{color:#476863}
.subproject-finance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:11px}
.subproject-finance>div{padding:9px 11px;border:1px solid #e4eeec;border-radius:10px;background:#f9fcfb}
.subproject-finance span,.subproject-finance small{display:block;color:#718985;font-size:10px}
.subproject-finance strong{display:inline-block;margin:3px 3px 0 0;color:#173c38;font-size:14px;font-variant-numeric:tabular-nums}
.subproject-finance .negative{border-color:#efc2bc;background:#fff6f5}
.subproject-finance .negative strong{color:#b42318}
.subproject-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:230px}
.subproject-empty{padding:28px 18px;text-align:center;border:1px dashed #cadeda;border-radius:14px;background:#fbfdfd;color:#718783}
.subproject-empty-icon{width:42px;height:42px;margin:0 auto 8px;border-radius:13px;background:#e8f6f3;color:#0f766e;display:grid;place-items:center;font-size:24px;font-weight:900}
.subproject-empty strong{display:block;color:#345e59;font-size:14px}
.subproject-empty p{margin:6px auto 0;max-width:580px;font-size:12px;line-height:1.6}
.table-name-wrap{display:grid;gap:5px}
.table-subproject-chip{display:inline-flex;width:max-content;align-items:center;padding:3px 7px;border-radius:999px;background:#edf7ff;color:#175b8f;font-size:9px;font-weight:900}
.subproject-chip,.mainproject-chip{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800}
.subproject-chip{background:#e8f4ff;color:#175b8f}
.mainproject-chip{background:#f1f4f3;color:#607875}
.subproject-modal-card{width:min(680px,100%);max-height:min(90vh,860px);overflow:auto}
.subproject-modal-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:14px 0 16px}
.subproject-modal-summary>div{padding:12px 13px;border:1px solid #dce9e7;border-radius:12px;background:#f7fbfa}
.subproject-modal-summary span{display:block;color:#718783;font-size:10px;font-weight:700;margin-bottom:5px}
.subproject-modal-summary strong{display:block;color:#0f6d65;font-size:17px;font-variant-numeric:tabular-nums}
.field-help{margin:5px 0 11px;color:#78908c;font-size:10px;line-height:1.5}
.muted-summary{opacity:.65}

@media(max-width:900px){
  .subproject-card{grid-template-columns:34px minmax(0,1fr)}
  .subproject-actions{grid-column:2;justify-content:flex-start;max-width:none}
}
@media(max-width:680px){
  .detail-subprojects-title{display:block}
  .detail-subprojects-title .btn{width:100%;margin-top:12px}
  .subproject-summary,.subproject-modal-summary{grid-template-columns:1fr}
  .subproject-title-row{display:block}
  .subproject-budget-chip{margin-top:7px}
  .subproject-finance{grid-template-columns:1fr}
  .subproject-card{padding:12px;gap:10px}
  .subproject-actions .btn,.subproject-actions .history-action{flex:1}
}

/* v1.6.1 - Sub-project disbursement */
.subproject-disbursed-box{border-color:#cfe3f2!important;background:#f6fbff!important}
.subproject-disbursed-box strong{color:#175b8f!important}
.field-help{margin:-5px 0 11px;color:#708783;font-size:11px;line-height:1.5}
@media(max-width:1100px){.subproject-summary,.subproject-modal-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.subproject-finance{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .subproject-summary,.subproject-modal-summary,.subproject-finance{grid-template-columns:1fr}
}


/* v1.6.2 - Main project responsible person */
.detail-responsible-wrap{position:relative;z-index:1;display:flex;align-items:stretch;gap:10px;margin-top:14px;max-width:980px}
.detail-responsible-card{display:flex;align-items:center;gap:12px;min-width:0;flex:1;padding:12px 14px;border:1px solid #cfe7e3;border-radius:14px;background:rgba(255,255,255,.78);box-shadow:0 4px 14px rgba(12,57,53,.035)}
.detail-responsible-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:11px;background:#e6f6f3;font-size:19px}
.detail-responsible-copy{min-width:0;display:grid;gap:2px}
.detail-responsible-copy>span{font-size:11px;font-weight:800;color:#62807c}
.detail-responsible-copy strong{font-size:14px;line-height:1.45;color:#123a36;overflow-wrap:anywhere}
.detail-responsible-copy strong.is-empty{font-weight:600;color:#83938f}
.detail-responsible-copy small{font-size:10px;color:#78908c;line-height:1.4}
.detail-responsible-edit{flex:0 0 auto;align-self:stretch;min-width:155px;border:1px solid #93d1ca;background:#eefaf8;color:#0b746b;font-weight:800}
.detail-responsible-edit:hover{background:#daf3ef;border-color:#67bdb4}
.project-responsible-modal-card{max-width:620px}
@media(max-width:720px){
  .detail-responsible-wrap{flex-direction:column}
  .detail-responsible-edit{width:100%;min-width:0;min-height:44px}
}

/* v1.6.3 - Status color enhancement */
:root{
  --status-urgent:#d92d20;
  --status-urgent-bg:#fee4e2;
  --status-watch:#e86b00;
  --status-watch-bg:#fff0d5;
  --status-normal:#1570ef;
  --status-normal-bg:#eaf2ff;
  --status-good:#079455;
  --status-good-bg:#dcfae6;
  --status-excellent:#b77900;
  --status-excellent-bg:#fff3c4;
  --status-excellent-border:#e7b61a;
}
.badge.urgent{background:var(--status-urgent-bg);color:var(--status-urgent);border:1px solid #fda29b}
.badge.watch{background:var(--status-watch-bg);color:var(--status-watch);border:1px solid #fec84b}
.badge.normal{background:var(--status-normal-bg);color:var(--status-normal);border:1px solid #84adff}
.badge.good{background:var(--status-good-bg);color:var(--status-good);border:1px solid #75e0a7}
.badge.excellent{background:linear-gradient(135deg,#fff8d9,var(--status-excellent-bg));color:#8a5a00;border:1px solid var(--status-excellent-border);box-shadow:0 2px 8px rgba(183,121,0,.14)}
.status-row{padding:5px 7px;border-radius:10px;transition:.15s ease}
.status-row:hover{background:#f8fbfb}
.status-row.urgent .status-label,.status-row.urgent b{color:var(--status-urgent)}
.status-row.watch .status-label,.status-row.watch b{color:var(--status-watch)}
.status-row.normal .status-label,.status-row.normal b{color:var(--status-normal)}
.status-row.good .status-label,.status-row.good b{color:var(--status-good)}
.status-row.excellent .status-label,.status-row.excellent b{color:var(--status-excellent)}
.status-fill.urgent{background:var(--status-urgent)}
.status-fill.watch{background:var(--status-watch)}
.status-fill.normal{background:var(--status-normal)}
.status-fill.good{background:var(--status-good)}
.status-fill.excellent{background:linear-gradient(90deg,#d59a00,#f2c94c)}
#statusFilter{font-weight:800;border-width:2px;transition:.15s ease;background-color:#fff}
#statusFilter.filter-all{border-color:#b7c6c4;color:#344054}
#statusFilter.filter-urgent{border-color:#f97066;color:var(--status-urgent);background:#fff7f6}
#statusFilter.filter-watch{border-color:#fdb022;color:var(--status-watch);background:#fffbf3}
#statusFilter.filter-normal{border-color:#528bff;color:var(--status-normal);background:#f5f8ff}
#statusFilter.filter-good{border-color:#32d583;color:var(--status-good);background:#f3fff7}
#statusFilter.filter-excellent{border-color:var(--status-excellent-border);color:#8a5a00;background:#fffaf0;box-shadow:0 0 0 3px rgba(231,182,26,.12)}
#statusFilter option.status-option.urgent{color:var(--status-urgent)}
#statusFilter option.status-option.watch{color:var(--status-watch)}
#statusFilter option.status-option.normal{color:var(--status-normal)}
#statusFilter option.status-option.good{color:var(--status-good)}
#statusFilter option.status-option.excellent{color:#8a5a00;font-weight:800}


/* v1.6.5 - Sub-project disbursement percentage */
.subproject-finance{grid-template-columns:repeat(5,minmax(0,1fr))}
.subproject-rate-box{border-color:#d7e7e4!important;background:#fbfdfd!important}
.subproject-rate-box strong{font-size:17px!important}
.subproject-rate-track{height:7px;margin-top:7px;background:#e6eeed;border-radius:999px;overflow:hidden}
.subproject-rate-fill{height:100%;border-radius:999px;transition:width .25s ease}
.subproject-rate-fill.urgent{background:var(--status-urgent)}
.subproject-rate-fill.watch{background:var(--status-watch)}
.subproject-rate-fill.normal{background:var(--status-normal)}
.subproject-rate-fill.good{background:var(--status-good)}
.subproject-rate-fill.excellent{background:linear-gradient(90deg,#d59a00,#f2c94c)}
.subproject-rate-box.urgent strong,.subproject-rate-box.urgent>small{color:var(--status-urgent)!important}
.subproject-rate-box.watch strong,.subproject-rate-box.watch>small{color:var(--status-watch)!important}
.subproject-rate-box.normal strong,.subproject-rate-box.normal>small{color:var(--status-normal)!important}
.subproject-rate-box.good strong,.subproject-rate-box.good>small{color:var(--status-good)!important}
.subproject-rate-box.excellent strong,.subproject-rate-box.excellent>small{color:var(--status-excellent)!important}
@media(max-width:1250px){.subproject-finance{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.subproject-finance{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.subproject-finance{grid-template-columns:1fr}}


/* v1.6.7 - Top 5 disbursement ranking (excluding specified investment items) */
.top5-panel{margin-top:14px;padding:0;overflow:hidden;border-color:#d5e6e3;box-shadow:0 10px 28px rgba(12,57,53,.065)}
.top5-title{margin:0;padding:18px 20px;background:linear-gradient(135deg,#fffdf3,#fff 54%,#eef9f7);border-bottom:1px solid #e7e4d6;align-items:center}
.top5-title h2{font-size:19px;color:#17423d}
.top5-title p{font-size:12px;line-height:1.55}
.top5-exclusion-chip{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid #e4d39a;background:#fff8dc;color:#836300;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:800}
.top5-ranking{display:grid;padding:8px 16px 10px}
.top5-row{width:100%;border:0;border-bottom:1px solid #e6efed;background:#fff;display:grid;grid-template-columns:52px minmax(0,1fr) 150px;gap:13px;align-items:center;padding:13px 10px;text-align:left;color:inherit;cursor:pointer;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}
.top5-row:last-child{border-bottom:0}
.top5-row:hover{background:#f4fbfa;transform:translateY(-1px);box-shadow:0 5px 14px rgba(15,118,110,.06)}
.top5-row:focus-visible{outline:3px solid rgba(20,184,166,.24);outline-offset:-3px;border-radius:10px}
.top5-rank{width:42px;height:42px;border-radius:13px;background:#eef7f5;color:#0f766e;display:grid;place-items:center;font-size:18px;font-weight:900;box-shadow:inset 0 0 0 1px #dcebe8}
.top5-row.rank-1 .top5-rank{background:linear-gradient(135deg,#fff6c7,#f4cf54);color:#6f5100;box-shadow:0 5px 14px rgba(206,158,22,.18)}
.top5-row.rank-2 .top5-rank{background:linear-gradient(135deg,#f5f7f9,#dce2e7);color:#53616c}
.top5-row.rank-3 .top5-rank{background:linear-gradient(135deg,#f8e2d2,#dca47c);color:#774526}
.top5-main{min-width:0;display:grid;gap:5px}
.top5-main strong{font-size:14px;color:#143b37;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top5-main small{font-size:10.5px;color:#758986;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top5-progress{height:6px;background:#e7efee;border-radius:999px;overflow:hidden;max-width:520px}
.top5-progress>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0f766e,#16a394)}
.top5-metric{display:flex;align-items:flex-end;flex-direction:column;gap:5px;white-space:nowrap}
.top5-metric>strong{font-size:20px;color:#0e665f;font-variant-numeric:tabular-nums}
.top5-metric .badge{font-size:9.5px}
.top5-footnote{margin:0;padding:10px 20px 13px;border-top:1px dashed #e2e8e6;background:#fbfcfc;color:#82928f;font-size:10px;line-height:1.55}
.top5-empty{padding:28px;text-align:center;color:#81938f;font-size:12px}
@media(max-width:800px){
  .top5-title{align-items:flex-start}.top5-exclusion-chip{display:none}
  .top5-row{grid-template-columns:44px minmax(0,1fr) 92px;padding:12px 4px;gap:9px}
  .top5-rank{width:36px;height:36px;border-radius:11px;font-size:15px}
  .top5-main strong{font-size:12.5px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .top5-main small{font-size:9.5px}
  .top5-metric>strong{font-size:16px}.top5-metric .badge{display:none}
}
@media(max-width:520px){.top5-footnote{display:none}.top5-ranking{padding-left:10px;padding-right:10px}.top5-row{grid-template-columns:38px minmax(0,1fr) 72px}.top5-main small{white-space:normal}.top5-metric>strong{font-size:14px}}

/* v1.6.7 - Expanded Top 5: exclusions + sub-projects + responsible person */
.top5-chips{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.top5-inclusion-chip{display:inline-flex;align-items:center;white-space:nowrap;border:1px solid #b9ddd7;background:#ecf9f6;color:#0d7169;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:900}
.top5-heading-line{display:flex;align-items:center;gap:8px;min-width:0}
.top5-heading-line>strong{min-width:0;flex:0 1 auto}
.top5-kind-chip{display:inline-flex;align-items:center;flex:0 0 auto;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:900;line-height:1.25}
.top5-kind-chip.main{background:#edf6f4;color:#16675f;border:1px solid #d1e8e4}
.top5-kind-chip.sub{background:#edf6ff;color:#175b8f;border:1px solid #d2e8f8}
.top5-responsible{color:#476b66!important;font-weight:700}
.top5-row.is-subproject{background:linear-gradient(90deg,#fbfdff,#fff 24%)}
.top5-row.is-subproject:hover{background:linear-gradient(90deg,#eef8ff,#f7fcfb 38%,#fff)}
.top5-target-highlight{animation:top5TargetPulse 2.4s ease both}
@keyframes top5TargetPulse{0%,100%{box-shadow:0 4px 14px rgba(12,57,53,.035)}20%,70%{box-shadow:0 0 0 4px rgba(23,91,143,.16),0 10px 28px rgba(23,91,143,.12);border-color:#8fc4e8;background:#f5fbff}}
@media(max-width:760px){.top5-chips{display:none}.top5-heading-line{align-items:flex-start}.top5-kind-chip{margin-top:1px}.top5-responsible{white-space:normal!important;display:block;line-height:1.35}}


/* v1.6.8 - Top 5 card view + responsible owner photos */
.top5-ranking{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px}
.top5-card{position:relative;min-width:0;border:1px solid #d9e9e6;border-radius:20px;background:linear-gradient(155deg,#fff 0%,#fbfefd 70%,#f2faf8 100%);padding:16px;text-align:left;color:inherit;cursor:pointer;box-shadow:0 8px 22px rgba(12,57,53,.055);display:flex;flex-direction:column;gap:13px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;overflow:hidden}
.top5-card::after{content:"";position:absolute;inset:auto -35px -55px auto;width:125px;height:125px;border-radius:50%;background:rgba(20,184,166,.055);pointer-events:none}
.top5-card:hover{transform:translateY(-3px);box-shadow:0 15px 34px rgba(12,57,53,.11);border-color:#9fd3cc}
.top5-card:focus-visible{outline:3px solid rgba(20,184,166,.26);outline-offset:2px}
.top5-card.rank-1{border-color:#e9cf71;background:linear-gradient(150deg,#fffdf1,#fff 50%,#f5fbf9)}
.top5-card.rank-2{border-color:#cfd9df}
.top5-card.rank-3{border-color:#e6c5ad}
.top5-card-top{display:flex;align-items:center;gap:8px;min-width:0}
.top5-card-top>.badge{margin-left:auto;font-size:9px;padding:5px 8px}
.top5-card-rank{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#eaf7f4;color:#0f766e;font-size:17px;font-weight:900;box-shadow:inset 0 0 0 1px #d6eae6;flex:0 0 auto}
.rank-1 .top5-card-rank{background:linear-gradient(135deg,#fff3aa,#e8bb27);color:#684b00;box-shadow:0 6px 18px rgba(202,155,18,.22)}
.rank-2 .top5-card-rank{background:linear-gradient(135deg,#f7f9fa,#d8e0e5);color:#56636c}
.rank-3 .top5-card-rank{background:linear-gradient(135deg,#f7dfcd,#d99a6b);color:#764222}
.top5-card-owner{display:flex;align-items:center;gap:11px;min-width:0;padding:10px;border-radius:16px;background:rgba(238,249,247,.78);border:1px solid #e0efec}
.top5-owner-avatar,.detail-owner-avatar,.owner-photo-preview-avatar{display:grid;place-items:center;overflow:hidden;border-radius:50%;background:linear-gradient(135deg,#0f766e,#25a89a);color:#fff;font-weight:900;letter-spacing:.02em;text-transform:uppercase;flex:0 0 auto}
.top5-owner-avatar{width:52px;height:52px;font-size:15px;box-shadow:0 5px 14px rgba(15,118,110,.18);border:3px solid #fff}
.top5-owner-avatar img,.detail-owner-avatar img,.owner-photo-preview-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.top5-owner-copy{display:grid;min-width:0;gap:2px}
.top5-owner-copy small{font-size:9.5px;color:#718a86;font-weight:800}
.top5-owner-copy strong{font-size:12px;color:#163d39;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top5-card-body{display:grid;gap:4px;min-height:56px}
.top5-card-name{font-size:14px;line-height:1.5;color:#103a35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.top5-card-context{font-size:10px;color:#7a8d89;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.top5-card-numbers{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.top5-card-numbers>span{display:grid;gap:2px;padding:9px 10px;border-radius:12px;background:#fff;border:1px solid #e7efed}
.top5-card-numbers small{font-size:9px;color:#82938f}
.top5-card-numbers strong{font-size:11px;color:#173f3a;font-variant-numeric:tabular-nums;white-space:nowrap}
.top5-card-rate{display:flex;align-items:baseline;gap:7px}
.top5-card-rate strong{font-size:26px;line-height:1;color:#0d7168;font-variant-numeric:tabular-nums}
.top5-card-rate small{font-size:10px;color:#718783;font-weight:800}
.top5-card .top5-progress{max-width:none;height:8px;background:#e5efed}
.top5-card-open{display:flex;justify-content:flex-end;align-items:center;gap:6px;font-size:10px;color:#0c786f;font-weight:900;margin-top:auto}
.top5-card-open b{font-size:15px}
.top5-card.is-subproject{background:linear-gradient(155deg,#fbfdff,#fff 50%,#f1f9f8)}

.detail-responsible-photo{flex:0 0 46px;width:46px;height:46px}
.detail-owner-avatar{width:46px;height:46px;font-size:13px;border:2px solid #fff;box-shadow:0 4px 12px rgba(15,118,110,.15)}
.owner-photo-editor{display:flex;align-items:center;gap:15px;padding:13px;border:1px solid #dcebe8;border-radius:16px;background:#f8fbfa;margin:5px 0 12px}
.owner-photo-preview{flex:0 0 76px;width:76px;height:76px}
.owner-photo-preview-avatar{width:76px;height:76px;font-size:20px;border:3px solid #fff;box-shadow:0 6px 16px rgba(15,118,110,.16)}
.owner-photo-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.owner-photo-controls small{width:100%;color:#7a8f8b;font-size:10px;line-height:1.45}
.owner-photo-select,.owner-photo-remove{min-height:38px;padding:8px 12px;font-size:11px}
.owner-photo-remove{color:#b43b34;border-color:#efc5c2}
.owner-photo-editor.compact{padding:10px}.owner-photo-editor.compact .owner-photo-preview,.owner-photo-editor.compact .owner-photo-preview-avatar{width:64px;height:64px;flex-basis:64px}

@media(max-width:1180px){.top5-ranking{grid-template-columns:repeat(2,minmax(0,1fr))}.top5-card:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:700px){.top5-ranking{grid-template-columns:1fr;padding:12px}.top5-card:last-child:nth-child(odd){grid-column:auto}.top5-card{border-radius:17px}.top5-owner-avatar{width:46px;height:46px}.top5-card-rate strong{font-size:22px}.owner-photo-editor{align-items:flex-start}}

/* v1.6.9 - unmistakable Top 5 card deployment fix */
.top5-cardview-label{display:inline-flex;vertical-align:middle;margin-left:7px;padding:4px 8px;border-radius:999px;background:#0f766e;color:#fff;font-size:9px;letter-spacing:.08em;font-weight:900;box-shadow:0 3px 9px rgba(15,118,110,.16)}
@media(min-width:1181px){
  .top5-ranking{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}
  .top5-card.rank-1{grid-column:span 2;display:grid;grid-template-columns:minmax(0,1fr) 210px;grid-template-areas:"top owner" "body owner" "numbers rate" "progress progress" "open open";column-gap:18px}
  .top5-card.rank-1 .top5-card-top{grid-area:top}
  .top5-card.rank-1 .top5-card-owner{grid-area:owner;align-self:stretch;flex-direction:column;justify-content:center;text-align:center;background:linear-gradient(160deg,#fff9dd,#f2fbf8);border-color:#ead98f}
  .top5-card.rank-1 .top5-owner-avatar{width:84px;height:84px;font-size:22px}
  .top5-card.rank-1 .top5-owner-copy strong{white-space:normal;font-size:13px}
  .top5-card.rank-1 .top5-card-body{grid-area:body}
  .top5-card.rank-1 .top5-card-name{font-size:18px;-webkit-line-clamp:3}
  .top5-card.rank-1 .top5-card-numbers{grid-area:numbers}
  .top5-card.rank-1 .top5-card-rate{grid-area:rate;justify-content:flex-end;align-self:center}
  .top5-card.rank-1 .top5-card-rate strong{font-size:36px;color:#8b6500}
  .top5-card.rank-1 .top5-progress{grid-area:progress}
  .top5-card.rank-1 .top5-card-open{grid-area:open}
}

/* v1.7.0 Sidebar & Navigation Upgrade */
.sidebar-nav{display:grid;gap:6px;overflow:auto;padding-right:2px}
.nav-section-label{padding:14px 12px 5px;color:rgba(214,238,238,.58);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.nav-item[data-page]{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:44px}
.nav-icon{width:24px;text-align:center;font-size:15px;filter:saturate(.9)}
.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700}
.nav-badge{min-width:24px;height:24px;padding:0 7px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.12);color:#dff7f4;font-size:10px;font-weight:900}
.nav-item.active .nav-badge{background:#d8f3ef;color:#0b5f58}
.sidebar-bottom .app-version{display:block;padding:6px 13px;color:rgba(255,255,255,.55)}

.directory-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,#f8ffff,#edf9f7);margin-bottom:14px}
.directory-hero h2{margin:3px 0 5px;font-size:24px}.directory-hero p{margin:0;color:var(--muted);font-size:13px;line-height:1.65}
.directory-kicker{font-size:11px;font-weight:900;color:var(--primary);letter-spacing:.04em}.directory-summary{flex:0 0 auto;background:#fff;border:1px solid #bfe0dc;border-radius:999px;padding:10px 14px;color:#0b645d;font-weight:900;white-space:nowrap}
.projects-directory,.plan-cuts-directory{display:grid;gap:14px}.directory-empty{text-align:center;color:var(--muted);padding:38px}
.project-directory-card{padding:0;overflow:hidden}.directory-parent-head{width:100%;border:0;background:#fff;padding:18px 20px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;text-align:left;cursor:pointer;color:var(--text)}
.directory-parent-head:hover{background:#fbfefe}.directory-code{font-family:Consolas,monospace;color:#49736f;font-size:11px}.directory-parent-head h3{margin:5px 0 4px;font-size:18px}.directory-parent-head p{margin:0;color:var(--muted);font-size:12px}
.directory-parent-stats{display:grid;grid-template-columns:repeat(4,minmax(78px,1fr));gap:8px}.directory-parent-stats span{background:#f2faf8;border:1px solid #d7e9e6;border-radius:12px;padding:9px 10px;text-align:right}.directory-parent-stats small,.directory-parent-stats b{display:block}.directory-parent-stats small{font-size:10px;color:var(--muted)}.directory-parent-stats b{margin-top:3px;font-size:13px}
.directory-subrows{border-top:1px solid var(--line)}.directory-subrow{display:grid;grid-template-columns:34px minmax(260px,1fr) repeat(3,110px) 145px;gap:12px;align-items:center;padding:12px 18px;border-top:1px solid #edf3f2;cursor:pointer}.directory-subrow:first-child{border-top:0}.directory-subrow:hover{background:#f5fbfa}.directory-subindex{width:30px;height:30px;border-radius:10px;background:#e5f5f2;display:grid;place-items:center;color:#0f766e;font-weight:900}.directory-submain strong,.directory-submain small{display:block}.directory-submain small{color:var(--muted);font-size:11px;margin-top:3px}.directory-subrow>span small,.directory-subrow>span b{display:block}.directory-subrow>span small{color:var(--muted);font-size:9px}.directory-rate i{display:block;height:6px;background:#e5efed;border-radius:999px;overflow:hidden;margin-top:5px}.directory-rate em{display:block;height:100%;background:var(--primary);border-radius:999px}

.plan-directory-row{width:100%;border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px 16px;display:grid;grid-template-columns:38px minmax(260px,1fr) 210px 130px 100px;gap:14px;align-items:center;text-align:left;color:var(--text);cursor:pointer;box-shadow:0 5px 18px rgba(12,57,53,.035)}.plan-directory-row:hover{border-color:#9acfc9;background:#fbfefe;transform:translateY(-1px)}.plan-directory-index{width:34px;height:34px;border-radius:11px;background:#e9f6f4;display:grid;place-items:center;color:#0f766e;font-weight:900}.plan-directory-main strong,.plan-directory-main small{display:block}.plan-directory-main small{color:var(--muted);margin-top:3px}.plan-directory-main p{margin:5px 0 0;font-size:12px}.plan-directory-audit small,.plan-directory-audit b,.plan-directory-audit span{display:block}.plan-directory-audit small,.plan-directory-audit span{font-size:10px;color:var(--muted)}.plan-directory-audit b{font-size:11px;margin:2px 0}.plan-directory-amount{text-align:right;font-size:16px}.plan-directory-open{color:var(--primary);font-weight:800;text-align:right;font-size:11px}

.users-panel{padding:0;overflow:hidden}.admin-note{padding:13px 18px;background:#fff8e8;border-bottom:1px solid #f2ddb0;color:#8c5a00;font-size:12px}.users-directory{display:grid}.user-directory-row{display:grid;grid-template-columns:44px minmax(0,1fr) 130px 100px;gap:12px;align-items:center;padding:14px 18px;border-top:1px solid var(--line)}.user-directory-row:first-child{border-top:0}.user-avatar{width:40px;height:40px;border-radius:13px;background:linear-gradient(135deg,#0f766e,#14b8a6);color:#fff;display:grid;place-items:center;font-weight:900}.user-directory-main strong,.user-directory-main span,.user-directory-main small{display:block}.user-directory-main span{font-size:12px}.user-directory-main small{font-size:9px;color:var(--muted);margin-top:2px}.user-role-select{border:1px solid var(--line);border-radius:10px;padding:9px;background:#fff;font-weight:800}.user-role-note{font-size:10px;color:var(--muted)}

.settings-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.settings-card{min-width:0}.settings-card:last-child{grid-column:1/-1}.settings-card-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}.settings-card-head>span{font-size:24px}.settings-card-head h3{margin:0}.settings-card-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.threshold-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.threshold-grid div{padding:12px;border-radius:12px;text-align:center}.threshold-grid b,.threshold-grid span{display:block}.threshold-grid b{font-size:14px}.threshold-grid span{font-size:10px;margin-top:3px}.threshold-grid .urgent{background:#fff0ef;color:#b42318}.threshold-grid .watch{background:#fff4e8;color:#b54708}.threshold-grid .normal{background:#eef4ff;color:#175cd3}.threshold-grid .good{background:#e9f9ef;color:#067647}.threshold-grid .excellent{background:#fff8dd;color:#9a6700}.settings-exclusion-list{columns:2;gap:30px;margin:0;padding-left:22px;line-height:1.9;font-size:12px}.settings-info{margin:0}.settings-info div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-top:1px solid var(--line)}.settings-info div:first-child{border-top:0}.settings-info dt{color:var(--muted)}.settings-info dd{margin:0;font-weight:800}

@media(max-width:1200px){.directory-subrow{grid-template-columns:34px minmax(220px,1fr) repeat(3,90px) 125px}.plan-directory-row{grid-template-columns:34px minmax(220px,1fr) 170px 115px}.plan-directory-open{display:none}.directory-parent-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.directory-hero{align-items:flex-start;flex-direction:column}.directory-summary{align-self:flex-start}.directory-parent-head{grid-template-columns:1fr}.directory-parent-stats{grid-template-columns:repeat(2,1fr)}.directory-subrow{grid-template-columns:30px 1fr;gap:8px}.directory-subrow>span:not(.directory-subindex){display:inline-block}.directory-rate{grid-column:2}.plan-directory-row{grid-template-columns:34px 1fr}.plan-directory-audit,.plan-directory-amount{grid-column:2;text-align:left}.users-directory .user-directory-row{grid-template-columns:42px 1fr}.user-role-select,.user-role-note{grid-column:2}.settings-directory{grid-template-columns:1fr}.settings-card:last-child{grid-column:auto}.threshold-grid{grid-template-columns:1fr 1fr}.settings-exclusion-list{columns:1}}


/* v1.10.0 - Readable budget list: keep the overview table focused on decision-useful fields */
.budget-list-hint{
  color:#d7f3ef;
  font-size:11px;
  font-weight:650;
  opacity:.94;
  flex-basis:100%;
  margin-left:44px;
  line-height:1.45;
}
.table-scroll table{min-width:850px}
.table-scroll th,.table-scroll td{padding:15px 16px}
.name-cell{min-width:390px;max-width:660px}
.table-name-wrap{gap:7px}
.table-name-wrap>span{
  color:#163b37;
  font-size:14.5px;
  font-weight:800;
  line-height:1.5;
}
.table-name-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:18px}
.table-detail-hint{color:#6c8581;font-size:10.5px;font-weight:750;transition:.14s ease}
.budget-row:hover .table-detail-hint{color:#0f766e;transform:translateX(2px)}
.key-money{font-size:14px;font-weight:800;font-variant-numeric:tabular-nums;color:#173d38}
.paid-money{color:#0b6f67}
.remain-money{color:#345f5a}
.progress-cell{min-width:180px}
.progress-wrap{grid-template-columns:minmax(76px,1fr) 58px;gap:10px}
.progress-wrap b{font-size:13px;font-variant-numeric:tabular-nums}
.table-scroll tbody tr.budget-row{cursor:pointer}
.table-scroll tbody tr.budget-row:focus-visible{outline:3px solid #73cfc4;outline-offset:-3px}
@media(max-width:900px){
  .budget-list-hint{margin-left:0}
  .table-scroll table{min-width:760px}
  .name-cell{min-width:310px}
}


/* v1.10.0 - Status total count */
.status-panel-title{align-items:center}
.status-total-badge{display:inline-flex;align-items:center;justify-content:center;min-width:112px;padding:8px 13px;border-radius:999px;background:#e7f5f3;border:1px solid #a9d8d2;color:#0f766e;font-size:13px;font-weight:900;white-space:nowrap}
.status-total-row{margin-top:7px;padding:12px 10px 2px;border-top:1px dashed #cbdedb;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#344c49;font-size:14px;font-weight:800}
.status-total-row strong{font-size:18px;color:#0f766e}
@media(max-width:680px){.status-panel-title{align-items:flex-start}.status-total-badge{font-size:12px;padding:7px 10px}.status-total-row strong{font-size:16px}}

/* v1.10.0 - Larger budget list typography for easier reading */
.table-title h2{
  font-size:30px;
  letter-spacing:-.02em;
}
.table-title #itemCount{
  font-size:18px;
  padding:9px 15px;
}
.budget-list-hint{
  font-size:14px;
  line-height:1.55;
}
.table-title .filters input,
.table-title .filters select{
  min-height:54px;
  font-size:18px;
  font-weight:700;
}
.table-scroll table{min-width:920px}
.table-scroll th,
.table-scroll td{
  padding:19px 18px;
  font-size:17px;
}
.table-scroll th{
  font-size:17px;
  font-weight:900;
  color:#244c48;
}
.name-cell{min-width:420px;max-width:720px}
.table-name-wrap{gap:8px}
.table-name-wrap>span{
  font-size:20px;
  line-height:1.45;
}
.table-detail-hint{
  font-size:13px;
  font-weight:800;
}
.key-money,
.paid-money,
.remain-money{
  font-size:18px;
  font-weight:900;
}
.progress-cell{min-width:210px}
.progress-wrap{
  grid-template-columns:minmax(96px,1fr) 72px;
  gap:12px;
}
.progress-track{
  height:11px;
}
.progress-wrap b{
  font-size:18px;
  font-weight:900;
}
.badge{
  padding:8px 13px;
  font-size:14px;
  font-weight:900;
}
.table-pagination{
  padding:18px 20px 22px;
}
.page-size,
.page-info{
  font-size:15px;
}
.page-size select{
  min-height:42px;
  font-size:16px;
  padding:8px 12px;
}
.page-btn{
  min-width:42px;
  height:42px;
  font-size:17px;
}
@media(max-width:900px){
  .table-title h2{font-size:24px}
  .table-title #itemCount{font-size:16px}
  .budget-list-hint{font-size:13px}
  .table-title .filters input,.table-title .filters select{min-height:48px;font-size:16px}
  .table-scroll th,.table-scroll td{padding:16px 15px;font-size:15px}
  .table-name-wrap>span{font-size:17px}
  .key-money,.paid-money,.remain-money{font-size:16px}
  .progress-wrap b{font-size:16px}
  .badge{font-size:13px;padding:7px 11px}
}


/* v1.10.0 - Executive Dashboard & Management Reports */
.executive-nav-item{background:linear-gradient(90deg,rgba(255,255,255,.06),transparent)}
.executive-page{max-width:1450px;margin:0 auto}
.executive-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 26px;margin-bottom:16px;border-radius:22px;background:linear-gradient(135deg,#073f3b,#0f766e 65%,#12998e);color:#fff;box-shadow:0 12px 32px rgba(15,118,110,.18)}
.executive-kicker,.report-kicker{display:inline-block;font-size:12px;font-weight:900;letter-spacing:.08em;opacity:.78}
.executive-hero h2{margin:5px 0 3px;font-size:28px}.executive-hero p{margin:0;opacity:.78}
.executive-report-btn{background:#fff;color:#0f766e;border:0;box-shadow:0 6px 18px rgba(0,0,0,.13)}
.executive-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.executive-kpi{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:19px;padding:19px 20px;box-shadow:0 5px 18px rgba(12,57,53,.05)}
.executive-kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#0f766e}.executive-kpi.paid:before{background:#109d8e}.executive-kpi.balance:before{background:#3b82f6}.executive-kpi.urgent:before{background:#e52f27}
.executive-kpi span{font-size:13px;color:#6b7e7c;font-weight:800}.executive-kpi strong{display:block;margin:7px 0 2px;font-size:28px;line-height:1.1}.executive-kpi small{color:#6b7e7c;font-weight:700}
.executive-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.executive-panel{min-width:0}
.executive-top5,.executive-no-movement{display:grid;gap:8px}
.executive-rank-row,.executive-still-row{width:100%;border:1px solid #e2ecea;background:#fbfdfd;border-radius:13px;padding:10px 12px;display:grid;align-items:center;text-align:left;color:inherit;cursor:pointer;transition:.15s}
.executive-rank-row{grid-template-columns:36px 40px minmax(0,1fr) auto;gap:9px}.executive-rank-row:hover,.executive-still-row:hover{background:#eef9f7;border-color:#b6ded9;transform:translateY(-1px)}
.executive-rank-medal{font-size:20px;font-weight:900;text-align:center}.executive-owner-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e7f5f3;color:#0f766e;font-weight:900;overflow:hidden}.executive-owner-avatar img{width:100%;height:100%;object-fit:cover}
.executive-rank-main{min-width:0}.executive-rank-main strong,.executive-rank-main small{display:block}.executive-rank-main strong{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.executive-rank-main small{margin-top:2px;color:#6b7e7c;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.executive-rank-rate{font-size:19px;font-weight:950;color:#0f766e}
.executive-still-row{grid-template-columns:minmax(0,1fr) auto;gap:10px}.executive-still-row strong,.executive-still-row small{display:block}.executive-still-row strong{font-size:13px}.executive-still-row small{margin-top:3px;color:#7a8c89;font-size:11px}.executive-still-row>b{font-size:15px;color:#b42318}.executive-count-chip{display:inline-grid;place-items:center;min-width:36px;height:36px;padding:0 10px;border-radius:999px;background:#fff0ef;color:#b42318;font-weight:900}.executive-empty{padding:24px;text-align:center;color:#6b7e7c;background:#f8fbfb;border-radius:13px}.executive-empty.good{color:#067647;background:#ecfdf3}.executive-more{text-align:center;color:#6b7e7c;font-size:12px;padding:4px}

.management-report-page{max-width:1500px;margin:0 auto}.management-report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px;padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:18px}.management-report-toolbar h2{margin:3px 0 2px}.management-report-toolbar p{margin:0;color:#6b7e7c}.management-report-buttons{display:flex;gap:8px;flex-wrap:wrap}.excel-btn{background:#166534;color:#fff}.excel-btn:hover{background:#14532d}
.management-report-preview{background:#dfe8e6;padding:22px;border-radius:20px;overflow:auto}.management-document{width:min(1120px,100%);margin:0 auto;background:#fff;color:#17302e;padding:34px 38px;box-shadow:0 12px 38px rgba(0,0,0,.10);border-radius:4px}.management-document-head{display:grid;grid-template-columns:62px 1fr auto;gap:16px;align-items:center;border-bottom:3px solid #0f766e;padding-bottom:16px}.report-brand{width:58px;height:58px;border-radius:16px;background:#0f766e;color:#fff;display:grid;place-items:center;font-size:21px;font-weight:950}.management-document-head h1{margin:0;font-size:27px}.management-document-head p{margin:3px 0 0;color:#5f7774}.report-date{text-align:right;font-size:11px;color:#6b7e7c}.report-date b{font-size:13px;color:#17302e}.report-meta-line{padding:10px 0 13px;color:#6b7e7c;font-size:11px}
.report-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:4px 0 22px}.report-summary-grid>div{border:1px solid #dce7e5;border-radius:10px;padding:12px}.report-summary-grid span,.report-summary-grid strong,.report-summary-grid small{display:block}.report-summary-grid span{font-size:10px;color:#6b7e7c}.report-summary-grid strong{font-size:20px;margin:4px 0}.report-summary-grid small{font-size:10px;color:#6b7e7c}.report-summary-grid .urgent{background:#fff5f4;border-color:#fecaca}.report-summary-grid .urgent strong{color:#b42318}
.report-section{margin-top:22px;break-inside:auto}.report-section h2{font-size:16px;margin:0 0 8px;color:#0a514b;border-left:4px solid #0f766e;padding-left:9px}.report-table-wrap{overflow:hidden;border:1px solid #dce7e5;border-radius:8px}.report-table{width:100%;border-collapse:collapse;font-size:9.5px}.report-table th{position:static;background:#edf7f5;color:#244c48;padding:7px 6px;border:0;border-bottom:1px solid #cfe0dd;box-shadow:none}.report-table td{padding:7px 6px;border:0;border-top:1px solid #e7efee;vertical-align:top}.report-table .r{text-align:right;white-space:nowrap}.report-note{background:#f8fbfb;border:1px solid #e2ecea;padding:11px 12px;border-radius:8px;font-size:11px;color:#526a67}.management-document-foot{margin-top:26px;padding-top:10px;border-top:1px solid #dce7e5;text-align:center;color:#7a8c89;font-size:9px}.report-empty{padding:50px;text-align:center;background:#fff;border-radius:15px;color:#6b7e7c}

@media(max-width:900px){.executive-kpi-grid{grid-template-columns:1fr 1fr}.executive-grid{grid-template-columns:1fr}.executive-hero{align-items:flex-start}.management-report-toolbar{align-items:flex-start;flex-direction:column}.management-report-preview{padding:10px}.management-document{padding:24px 20px;min-width:850px}}
@media(max-width:600px){.executive-page{margin:-4px}.executive-hero{padding:20px;border-radius:18px;flex-direction:column}.executive-hero h2{font-size:24px}.executive-report-btn{width:100%}.executive-kpi-grid{gap:8px}.executive-kpi{padding:15px}.executive-kpi strong{font-size:22px}.executive-rank-row{grid-template-columns:32px 38px minmax(0,1fr);}.executive-rank-rate{grid-column:3;font-size:18px}.management-report-buttons{width:100%;display:grid;grid-template-columns:1fr 1fr}.management-report-buttons .btn:last-child{grid-column:1/-1}}

@media print{
  body.report-printing{background:#fff!important}
  body.report-printing .sidebar,body.report-printing .topbar,body.report-printing .report-actions,body.report-printing .toast{display:none!important}
  body.report-printing .app-shell{display:block!important}.report-printing .main{padding:0!important}.report-printing .page{display:none!important}.report-printing #managementReportPage{display:block!important}.report-printing .management-report-preview{padding:0;background:#fff;overflow:visible}.report-printing .management-document{width:100%;max-width:none;box-shadow:none;padding:8mm;border-radius:0}
  @page{size:A4 portrait;margin:7mm}
}


/* v1.10.0 - Management report: all five budget statuses */
.report-status-overview{margin:4px 0 22px;padding:13px 14px;border:1px solid #dce7e5;border-radius:10px;background:#fbfdfd}
.report-status-overview h2{margin:0 0 10px;font-size:14px;color:#244c48}
.report-status-overview>div{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.report-status-overview>div>div{border-radius:9px;padding:9px 8px;border:1px solid transparent}
.report-status-overview span,.report-status-overview strong,.report-status-overview small{display:block}
.report-status-overview span{font-size:9.5px;font-weight:800;white-space:nowrap}
.report-status-overview strong{font-size:18px;margin:3px 0}
.report-status-overview small{font-size:9px;opacity:.78}
.report-status-overview .urgent{background:#fff0ef;border-color:#fecaca;color:#b42318}
.report-status-overview .watch{background:#fff4e8;border-color:#fed7aa;color:#b54708}
.report-status-overview .normal{background:#eef4ff;border-color:#bfd5ff;color:#175cd3}
.report-status-overview .good{background:#e9f9ef;border-color:#a9e7bf;color:#067647}
.report-status-overview .excellent{background:#fff8dd;border-color:#f3d46b;color:#9a6700}
.report-status-section h2{display:flex;align-items:center;justify-content:space-between;gap:10px}
.report-status-section h2 span{font-size:10px;font-weight:800;padding:3px 7px;border-radius:999px;background:#f2f7f6;color:#607773}
.report-status-section.urgent h2{border-left-color:#d92d20}
.report-status-section.watch h2{border-left-color:#ef6c00}
.report-status-section.normal h2{border-left-color:#2878e8}
.report-status-section.good h2{border-left-color:#12a05c}
.report-status-section.excellent h2{border-left-color:#d9a400}
.report-all-status-head{margin-bottom:-8px}
@media(max-width:900px){.report-status-overview>div{grid-template-columns:repeat(5,minmax(120px,1fr));min-width:680px}.report-status-overview{overflow:auto}}
@media print{.report-status-overview{break-inside:avoid}.report-status-section{break-inside:auto}}

/* v1.10.0 - PDF/print pagination fix */
.pdf-export-stage{font-family:"Noto Sans Thai","Tahoma","Segoe UI",sans-serif;color:#17302e}
.pdf-export-stage .report-section{margin-top:0}
.pdf-export-stage .pdf-report-first-block .report-status-overview{margin-bottom:0}
.pdf-export-stage .report-table-wrap{overflow:visible}
.pdf-export-stage .report-continued{font-size:10px;color:#6b7e7c;font-weight:800}

@media print{
  .report-printing .management-document{padding:7mm 8mm!important}
  .report-printing .management-document-head,
  .report-printing .report-meta-line,
  .report-printing .report-summary-grid,
  .report-printing .report-status-overview,
  .report-printing .report-section h2,
  .report-printing .report-note,
  .report-printing .management-document-foot{break-inside:avoid;page-break-inside:avoid}
  .report-printing .report-section h2{break-after:avoid;page-break-after:avoid}
  .report-printing .report-table-wrap{overflow:visible!important}
  .report-printing .report-table{page-break-inside:auto}
  .report-printing .report-table thead{display:table-header-group}
  .report-printing .report-table tfoot{display:table-footer-group}
  .report-printing .report-table tr{break-inside:avoid;page-break-inside:avoid;break-after:auto;page-break-after:auto}
  .report-printing .report-table th,.report-printing .report-table td{padding:5px 5px;font-size:8.8px}
  .report-printing .report-status-section{break-inside:auto;page-break-inside:auto}
  @page{size:A4 portrait;margin:8mm 7mm 9mm}
}

/* v1.10.0 - Report comparison & movement alerts */
.movement-nav-item{background:linear-gradient(90deg,rgba(255,255,255,.045),transparent)}
.nav-badge.movement-badge{background:rgba(245,158,11,.18);color:#fde7b0}
.nav-item.active .nav-badge.movement-badge{background:#fff3d6;color:#9a6700}

.movement-alert{margin-top:14px;border:1px solid #f1d28e;border-radius:18px;padding:15px 17px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;align-items:center;background:linear-gradient(135deg,#fffaf0,#fff 65%);box-shadow:0 6px 18px rgba(145,94,13,.06)}
.movement-alert.good{border-color:#b9decf;background:linear-gradient(135deg,#effcf5,#fff 65%)}
.movement-alert-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#fff2ce;font-size:22px}
.movement-alert.good .movement-alert-icon{background:#dcfae6}
.movement-alert-main{min-width:0}.movement-alert-main strong,.movement-alert-main span{display:block}.movement-alert-main strong{font-size:15px;color:#44330d}.movement-alert.good .movement-alert-main strong{color:#05603a}.movement-alert-main span{margin-top:4px;color:#6b665b;font-size:12.5px;line-height:1.55}
.movement-alert-delta{text-align:right;white-space:nowrap}.movement-alert-delta small,.movement-alert-delta strong{display:block}.movement-alert-delta small{font-size:10px;color:#7a756d}.movement-alert-delta strong{margin-top:3px;font-size:15px}.movement-alert-delta.positive strong{color:#067647}.movement-alert-delta.negative strong{color:#b42318}
.movement-alert-btn{background:#0f766e;color:#fff;border:0;white-space:nowrap}

.comparison-page{max-width:1450px;margin:0 auto}
.comparison-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 26px;margin-bottom:15px;border-radius:22px;background:linear-gradient(135deg,#0b4a45,#0f766e 62%,#15998e);color:#fff;box-shadow:0 12px 30px rgba(15,118,110,.15)}
.comparison-kicker{display:inline-block;font-size:11px;font-weight:900;letter-spacing:.08em;opacity:.75}.comparison-hero h2{margin:5px 0 3px;font-size:28px}.comparison-hero p{margin:0;opacity:.82}.comparison-executive-btn{background:#fff;color:#0f766e;border:0}
.comparison-summary-grid{display:grid;grid-template-columns:1.35fr repeat(4,1fr);gap:10px;margin-bottom:14px}
.comparison-summary-card{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:17px;padding:16px 17px;box-shadow:0 4px 16px rgba(12,57,53,.04)}
.comparison-summary-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#94a3b8}.comparison-summary-card.increase:before{background:#12a06f}.comparison-summary-card.stable:before{background:#f59e0b}.comparison-summary-card.decrease:before{background:#e5483d}.comparison-summary-card.new:before{background:#3b82f6}
.comparison-summary-card span,.comparison-summary-card small,.comparison-summary-card strong{display:block}.comparison-summary-card span{font-size:12px;color:#687c79;font-weight:800}.comparison-summary-card strong{font-size:25px;margin:6px 0 1px}.comparison-summary-card small{font-size:11px;color:#7a8b88}.comparison-summary-card.total.increase strong{color:#067647}.comparison-summary-card.total.decrease strong{color:#b42318}
.comparison-empty-card{grid-column:1/-1;padding:26px;border:1px dashed #bfd6d2;border-radius:17px;background:#fff;text-align:center;color:#617572}
.comparison-panel{padding:0;overflow:hidden}.comparison-title{padding:19px 20px;margin:0;background:#fbfdfd;border-bottom:1px solid var(--line);align-items:center}.comparison-title h2{font-size:20px}.comparison-filters{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.comparison-filter{border:1px solid #d8e5e3;border-radius:999px;background:#fff;padding:7px 10px;font-size:11px;font-weight:850;color:#536b68;cursor:pointer}.comparison-filter b{margin-left:4px}.comparison-filter:hover,.comparison-filter.active{border-color:#6eb8b0;background:#eaf8f6;color:#0f766e}
.comparison-table-wrap{background:#fff}.comparison-table-scroll{overflow:auto}.comparison-table{width:100%;border-collapse:collapse;min-width:980px}.comparison-table th,.comparison-table td{padding:13px 14px;border-top:1px solid var(--line);font-size:12.5px}.comparison-table th{background:#f1f8f7;color:#48615e;font-weight:900;position:sticky;top:0;z-index:2}.movement-name{min-width:300px}.movement-name strong,.movement-name small{display:block}.movement-name strong{font-size:13.5px;color:#173b37}.movement-name small{margin-top:3px;color:#768a87;font-size:10.5px}.movement-kind{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:10.5px;font-weight:900;white-space:nowrap}.movement-kind.increase{background:#e8f8ef;color:#067647}.movement-kind.stable{background:#fff5df;color:#b26a00}.movement-kind.decrease{background:#ffeded;color:#b42318}.movement-kind.new{background:#edf5ff;color:#175cd3}.movement-kind.missing{background:#f0f2f4;color:#586675}.movement-delta{font-weight:900}.movement-delta.increase{color:#067647}.movement-delta.stable{color:#b26a00}.movement-delta.decrease{color:#b42318}.movement-delta.new{color:#175cd3}.movement-delta.missing{color:#687681}.movement-row.clickable{cursor:pointer}.movement-row.clickable:hover{background:#f3fbfa}.comparison-empty{padding:40px;text-align:center;color:#687b78}.comparison-empty.good{color:#067647;background:#f2fcf6}

.report-movement-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:9px 0 10px}.report-movement-summary span{padding:7px 8px;border-radius:8px;text-align:center;font-size:9px;font-weight:850}.report-movement-summary .increase{background:#eaf8ef;color:#067647}.report-movement-summary .stable{background:#fff4dc;color:#9a6700}.report-movement-summary .decrease{background:#ffeded;color:#b42318}.report-movement-summary .new{background:#edf5ff;color:#175cd3}

@media(max-width:1050px){.movement-alert{grid-template-columns:auto 1fr auto}.movement-alert-delta{grid-column:2;text-align:left}.movement-alert-btn{grid-column:3;grid-row:1/3}.comparison-summary-grid{grid-template-columns:repeat(2,1fr)}.comparison-summary-card.total{grid-column:1/-1}}
@media(max-width:700px){.movement-alert{grid-template-columns:42px 1fr;padding:13px}.movement-alert-delta,.movement-alert-btn{grid-column:1/-1}.movement-alert-btn{grid-row:auto;width:100%}.comparison-hero{padding:20px;flex-direction:column;align-items:flex-start}.comparison-hero h2{font-size:24px}.comparison-executive-btn{width:100%}.comparison-summary-grid{grid-template-columns:1fr 1fr}.comparison-summary-card{padding:14px}.comparison-summary-card strong{font-size:21px}.comparison-title{align-items:flex-start;flex-direction:column}.comparison-filters{justify-content:flex-start}.report-movement-summary{grid-template-columns:1fr 1fr}}

/* v1.10.0 - Budget Type Analytics */
.budget-list-filters{flex-wrap:wrap;justify-content:flex-end}
.budget-list-filters #budgetTypeFilter{min-width:210px}
.budget-type-overview-panel{margin-top:14px}
.budget-type-overview-title{align-items:center}
.budget-type-overview{display:grid;gap:10px}
.budget-type-empty{padding:22px;text-align:center;color:var(--muted);background:#f8fbfb;border:1px dashed #c9ddda;border-radius:14px}
.budget-type-overview-row{width:100%;border:1px solid #d9e8e6;background:#fff;border-radius:14px;padding:14px 16px;display:grid;grid-template-columns:40px minmax(240px,1.5fr) minmax(120px,.7fr) minmax(120px,.7fr) 100px;gap:14px;align-items:center;text-align:left;color:var(--text);cursor:pointer;transition:.16s ease}
.budget-type-overview-row:hover{transform:translateY(-1px);border-color:#8bcac3;background:#fbfefd;box-shadow:0 8px 20px rgba(15,118,110,.08)}
.budget-type-index{width:34px;height:34px;border-radius:11px;background:#e8f6f4;color:#0f766e;display:grid;place-items:center;font-weight:900}
.budget-type-main{display:grid;gap:4px;min-width:0}.budget-type-main strong{font-size:15px}.budget-type-main small{color:var(--muted);font-size:11px}.budget-type-progress{display:block;height:7px;background:#e7efee;border-radius:999px;overflow:hidden;margin-top:2px}.budget-type-progress i{display:block;height:100%;background:linear-gradient(90deg,#0f766e,#14b8a6);border-radius:999px}
.budget-type-money{display:grid;gap:2px;text-align:right}.budget-type-money small{color:var(--muted);font-size:10px}.budget-type-money b{font-size:14px;font-variant-numeric:tabular-nums}.budget-type-money.paid b{color:#0f766e}
.budget-type-rate{text-align:right;display:grid;gap:2px}.budget-type-rate b{font-size:20px;color:#0f766e}.budget-type-rate small{color:var(--muted);font-size:10px}
.budget-types-hero{margin-bottom:14px}.budget-types-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.budget-type-card{padding:20px;cursor:pointer;transition:.16s ease;overflow:hidden;position:relative}.budget-type-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#0f766e}.budget-type-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(15,118,110,.1);border-color:#9bcfc9}.budget-type-card:focus-visible{outline:3px solid #6ecac0;outline-offset:2px}
.budget-type-card-head{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:start}.budget-type-card-index{width:38px;height:38px;border-radius:12px;background:#e7f5f3;color:#0f766e;display:grid;place-items:center;font-weight:900}.budget-type-card-head h3{margin:0;font-size:19px;line-height:1.35}.budget-type-card-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.budget-type-card-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px}.budget-type-card-kpis>div{border:1px solid #e2ecea;background:#fbfdfd;border-radius:12px;padding:11px}.budget-type-card-kpis span,.budget-type-card-kpis small{display:block;color:var(--muted);font-size:10px}.budget-type-card-kpis strong{display:block;font-size:16px;margin:5px 0 2px;font-variant-numeric:tabular-nums}.budget-type-card-progress{margin-top:15px}.budget-type-card-progress>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:12px;margin-bottom:7px}.budget-type-card-progress b{font-size:15px;color:#0f766e}.budget-type-card-progress .progress-track{height:10px}.budget-type-card-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px dashed #d7e5e3;margin-top:14px;padding-top:12px;font-size:11px;color:var(--muted)}.budget-type-card-foot b{color:#0f766e;font-size:12px}
.progress-fill.urgent{background:#e3312b}.progress-fill.watch{background:#ef6c00}.progress-fill.normal{background:#2672e8}.progress-fill.good{background:#0d9f59}.progress-fill.excellent{background:linear-gradient(90deg,#d49b00,#f4c542)}
.report-budget-types h2{border-left-color:#0f766e!important}
@media(max-width:1100px){.budget-type-overview-row{grid-template-columns:36px 1fr 110px 100px}.budget-type-overview-row .budget-type-money:first-of-type{display:none}.budget-types-directory{grid-template-columns:1fr}.budget-type-card-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.budget-list-filters{display:grid!important;grid-template-columns:1fr!important;width:100%}.budget-list-filters #budgetTypeFilter{min-width:0;width:100%}.budget-type-overview-title{align-items:flex-start;flex-direction:column}.budget-type-overview-row{grid-template-columns:34px 1fr 86px;gap:9px;padding:12px}.budget-type-overview-row .budget-type-money{display:none}.budget-type-main strong{font-size:13px}.budget-type-rate b{font-size:16px}.budget-type-card-head{grid-template-columns:38px 1fr}.budget-type-card-head .badge{grid-column:2;width:max-content}.budget-type-card-kpis{grid-template-columns:1fr 1fr}.budget-type-card-foot{align-items:flex-start;flex-direction:column}}

/* v1.10.0 - Budget types visible directly on dashboard */
.budget-type-overview-panel{
  margin-top:14px;
  border:1px solid #b7ddd8;
  background:linear-gradient(180deg,#fbfffe 0%,#f5fbfa 100%);
}
.budget-type-overview-title h2{font-size:22px;color:#0b5751}
.budget-type-overview-title p{font-size:13px}
.budget-type-overview{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:12px;
}
.budget-type-overview-card{
  min-width:0;
  border:1px solid #d4e6e3;
  border-radius:17px;
  background:#fff;
  padding:16px;
  display:flex;
  flex-direction:column;
  gap:12px;
  text-align:left;
  cursor:pointer;
  color:var(--text);
  box-shadow:0 5px 16px rgba(12,57,53,.045);
  transition:.16s ease;
  position:relative;
  overflow:hidden;
}
.budget-type-overview-card:before{content:"";position:absolute;left:0;top:0;right:0;height:5px;background:#0f766e}
.budget-type-overview-card.type-2:before{background:#2878c8}.budget-type-overview-card.type-3:before{background:#0f9387}.budget-type-overview-card.type-4:before{background:#d69e00}.budget-type-overview-card.type-5:before{background:#cf6b22}
.budget-type-overview-card:hover{transform:translateY(-3px);border-color:#89c7c0;box-shadow:0 12px 26px rgba(15,118,110,.11)}
.budget-type-card-icon{font-size:25px;line-height:1}
.budget-type-overview-card-head{display:grid;gap:5px;min-height:61px}
.budget-type-overview-card-head strong{font-size:16px;line-height:1.4;color:#123f3b}
.budget-type-overview-card-head small{font-size:10.5px;color:#708682}
.budget-type-overview-kpis{display:grid;grid-template-columns:1fr;gap:7px;border-top:1px solid #edf3f2;border-bottom:1px solid #edf3f2;padding:10px 0}
.budget-type-overview-kpis>span{display:flex;align-items:center;justify-content:space-between;gap:8px}
.budget-type-overview-kpis small{color:#718784;font-size:10px}.budget-type-overview-kpis b{font-size:13px;font-variant-numeric:tabular-nums}
.budget-type-overview-progress{display:grid;gap:7px}.budget-type-overview-progress>span{display:flex;align-items:end;gap:6px}.budget-type-overview-progress b{font-size:23px;color:#0f766e}.budget-type-overview-progress small{font-size:10px;color:#718784;margin-bottom:3px}.budget-type-overview-progress>i{height:9px;background:#e8f0ef;border-radius:999px;overflow:hidden}.budget-type-overview-progress em{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#0f766e,#14b8a6)}
.budget-type-open{margin-top:auto;color:#0f766e;font-size:11px;font-weight:900;text-align:right}
@media(max-width:1350px){.budget-type-overview{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.budget-type-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.budget-type-overview{grid-template-columns:1fr}.budget-type-overview-card-head{min-height:0}.budget-type-overview-title .btn{width:100%}}

/* v1.10.0 - Larger, clearer typography inside budget detail pages */
.detail-panel{
  padding:26px 27px;
}
.detail-panel .panel-title h2{
  font-size:25px;
  line-height:1.35;
  font-weight:900;
}
.detail-panel .panel-title p{
  font-size:15px;
  line-height:1.65;
}
.detail-list{
  margin-top:19px;
  border-radius:16px;
}
.detail-list>div{
  grid-template-columns:minmax(220px,.9fr) minmax(0,1.1fr);
  gap:22px;
  padding:17px 19px;
  min-height:62px;
}
.detail-list dt{
  font-size:16px;
  font-weight:750;
  line-height:1.5;
  color:#526f6b;
}
.detail-list dd{
  font-size:19px;
  font-weight:900;
  line-height:1.45;
  color:#123a36;
}
.detail-progress{
  margin-top:20px;
  padding:18px 19px 17px;
}
.detail-progress-head{
  font-size:15px;
  margin-bottom:12px;
}
.detail-progress-head b{
  font-size:25px;
}
.detail-progress-track{
  height:15px;
}
.detail-plan-amount{
  margin-top:19px;
  padding:20px 21px;
}
.detail-plan-amount span{
  font-size:15px;
}
.detail-plan-amount strong{
  font-size:31px;
}
.detail-note-box{
  margin-top:15px;
  padding:18px 19px;
  min-height:126px;
}
.detail-note-box span{
  font-size:14px;
  margin-bottom:9px;
}
.detail-note-box p{
  font-size:17px;
  line-height:1.75;
}
.detail-plan-title+.detail-plan-amount+.detail-note-box+.modal-audit{
  font-size:13.5px;
  padding:13px 15px;
  line-height:1.65;
}
.detail-plan-history-head{
  font-size:14px;
  margin-top:18px;
  margin-bottom:10px;
}
.detail-plan-history-head b{
  font-size:13px;
  padding:6px 10px;
}
.detail-plan-history .plan-history-row{
  grid-template-columns:36px minmax(0,1fr);
  padding:14px 15px;
  gap:12px;
}
.detail-plan-history .plan-history-index{
  width:34px;
  height:34px;
  font-size:13px;
}
.detail-plan-history .plan-history-top strong{
  font-size:18px;
}
.detail-plan-history .plan-history-main p{
  font-size:15px;
  line-height:1.65;
}
.detail-plan-history .plan-history-main small{
  font-size:12px;
  line-height:1.5;
}
.source-list>div{
  padding:18px 18px;
  min-height:94px;
}
.source-list dt{
  font-size:14px;
}
.source-list dd{
  font-size:16px;
  line-height:1.65;
}
.source-list .code{
  font-size:14px;
}
.detail-kpi span{
  font-size:14px;
}
.detail-kpi strong{
  font-size:27px;
}
.detail-kpi small{
  font-size:13px;
}
@media(max-width:900px){
  .detail-panel{padding:21px}
  .detail-panel .panel-title h2{font-size:22px}
  .detail-list>div{grid-template-columns:minmax(180px,.9fr) minmax(0,1.1fr);padding:15px 16px}
  .detail-list dt{font-size:15px}
  .detail-list dd{font-size:17px}
}
@media(max-width:680px){
  .detail-panel{padding:18px}
  .detail-panel .panel-title h2{font-size:21px}
  .detail-panel .panel-title p{font-size:14px}
  .detail-list>div{grid-template-columns:1fr;gap:7px;padding:14px 15px}
  .detail-list dt{font-size:14px}
  .detail-list dd{text-align:left;font-size:17px}
  .detail-plan-amount strong{font-size:27px}
  .detail-note-box p{font-size:16px}
  .detail-plan-history .plan-history-top strong{font-size:17px}
  .detail-plan-history .plan-history-main p{font-size:14px}
  .detail-kpi span{font-size:13px}
  .detail-kpi strong{font-size:22px}
}


/* v1.10.0 - College Council Report: budget-type overview only */
.council-report-page{max-width:1500px;margin:0 auto}
.council-document{min-height:0}
.council-summary-grid{grid-template-columns:repeat(5,1fr)}
.council-summary-grid>div:last-child{background:#f1faf8;border-color:#b9ded9}
.council-type-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.council-type-card{border:1px solid #d6e8e5;border-radius:14px;padding:15px;background:linear-gradient(145deg,#fff,#f7fbfa);break-inside:avoid}
.council-type-card:last-child:nth-child(odd){grid-column:1/-1}
.council-type-card-head{display:flex;align-items:center;gap:10px}.council-type-card-head h3{margin:0;font-size:15px;color:#123e39}.council-type-card-head p{margin:3px 0 0;font-size:10px;color:#6b7e7c}
.council-type-index{width:30px;height:30px;border-radius:10px;background:#e4f4f1;color:#0f766e;display:grid;place-items:center;font-weight:950;flex:0 0 auto}
.council-type-card-rate{font-size:26px;font-weight:950;color:#0b6f67;margin:12px 0 6px}
.council-type-progress{height:9px;border-radius:999px;background:#e7efee;overflow:hidden}.council-type-progress span{display:block;height:100%;background:#0f766e;border-radius:inherit}
.council-type-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:11px}.council-type-stats span{font-size:9px;color:#6b7e7c}.council-type-stats b{display:block;color:#17302e;font-size:12px;margin-top:2px}
.council-report-table{font-size:9px}.council-report-table th,.council-report-table td{padding:8px 6px}
@media(max-width:900px){.council-summary-grid{grid-template-columns:repeat(2,1fr)}.council-type-cards{grid-template-columns:1fr}.council-type-card:last-child:nth-child(odd){grid-column:auto}.council-type-stats{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:600px){.council-report-toolbar{align-items:flex-start}.council-report-preview{padding:10px}.council-document{min-width:850px}}

@media print{
  body.council-report-printing .sidebar,body.council-report-printing .topbar,body.council-report-printing .council-report-actions,body.council-report-printing .toast{display:none!important}
  body.council-report-printing .app-shell{display:block!important}
  body.council-report-printing .main{padding:0!important}
  body.council-report-printing .page{display:none!important}
  body.council-report-printing #councilReportPage{display:block!important}
  body.council-report-printing .council-report-preview{padding:0;background:#fff;overflow:visible}
  body.council-report-printing .council-document{display:block!important;width:100%;max-width:none;min-width:0;box-shadow:none;padding:7mm 8mm;border-radius:0}
  body.council-report-printing .council-type-card,body.council-report-printing .council-type-table-section,body.council-report-printing .management-document-head,body.council-report-printing .council-summary-grid{break-inside:avoid;page-break-inside:avoid}
  body.council-report-printing .report-table thead{display:table-header-group}
  body.council-report-printing .report-table tr{break-inside:avoid;page-break-inside:avoid}
}

/* v1.10.2 - Council Report Graph Dashboard */
.council-document{width:min(1180px,100%)}
.council-kpi-grid{gap:10px;margin-bottom:18px}
.council-kpi-grid>div{padding:14px 15px;background:linear-gradient(180deg,#fff,#fbfdfd)}
.council-kpi-grid span{font-size:11px;font-weight:750}
.council-kpi-grid strong{font-size:24px;letter-spacing:-.02em;color:#123e39}
.council-kpi-grid small{font-size:10px}
.council-kpi-grid .paid-kpi{border-color:#9dd7d0;background:#f0fbf9}.council-kpi-grid .paid-kpi strong{color:#0f766e}
.council-kpi-grid .po-kpi{border-color:#f6d69b;background:#fffbf2}.council-kpi-grid .po-kpi strong{color:#b56a00}
.council-kpi-grid .commit-kpi{border-color:#9dd7d0;background:#eaf8f6}.council-kpi-grid .commit-kpi strong{color:#0a665f}
.council-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}
.council-section-heading h2{margin-bottom:3px}.council-section-heading p{margin:0 0 0 13px;color:#6b7e7c;font-size:10.5px}
.council-insight-chip,.council-chart-badge{border:1px solid #cce4e0;background:#f1faf8;color:#315d59;border-radius:12px;padding:8px 10px;font-size:10px;line-height:1.45;text-align:right;white-space:nowrap}
.council-insight-chip b,.council-chart-badge b{color:#0f766e}
.council-chart-grid{display:grid;grid-template-columns:.88fr 1.42fr;gap:12px}
.council-chart-card{border:1px solid #d7e7e4;border-radius:16px;padding:16px;background:linear-gradient(145deg,#ffffff,#f8fbfb);break-inside:avoid}
.council-chart-card h3{margin:0;color:#173d38;font-size:14px}.council-chart-card p{margin:3px 0 0;color:#6b7e7c;font-size:9.5px}
.council-donut-wrap{display:grid;grid-template-columns:190px 1fr;gap:16px;align-items:center;min-height:205px}
.council-donut-svg{width:188px;height:188px;overflow:visible}.council-donut-number{font-size:19px;font-weight:950;fill:#0a514b}.council-donut-caption{font-size:8.5px;font-weight:800;fill:#718783}
.council-donut-legend{display:grid;gap:10px}.council-donut-legend>div{display:grid;grid-template-columns:10px 1fr auto;gap:7px;align-items:center;padding:7px 0;border-bottom:1px dashed #dfeae8}.council-donut-legend>div:last-child{border-bottom:0}.council-donut-legend i,.council-stacked-legend i,.council-stacked-money i{width:9px;height:9px;border-radius:50%;display:inline-block}.council-donut-legend i.paid,.council-stacked-legend i.paid,.council-stacked-money i.paid{background:#0f766e}.council-donut-legend i.po,.council-stacked-legend i.po,.council-stacked-money i.po{background:#f59e0b}.council-donut-legend i.remain,.council-stacked-legend i.remain,.council-stacked-money i.remain{background:#d9e5e3}.council-donut-legend span{font-size:10px;color:#526a67}.council-donut-legend strong{font-size:13px;text-align:right}.council-donut-legend small{grid-column:3;font-size:9px;color:#6b7e7c;text-align:right}
.council-chart-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.council-share-list{display:grid;gap:11px;margin-top:14px}.council-share-row{display:grid;grid-template-columns:minmax(150px,1.1fr) minmax(180px,1.7fr) 105px;gap:10px;align-items:center}.council-share-label{display:grid;grid-template-columns:9px 1fr;column-gap:7px;align-items:center}.council-chart-dot{width:9px;height:9px;border-radius:50%;grid-row:1/3}.council-share-label strong{font-size:10.5px;line-height:1.25}.council-share-label small{font-size:8.5px;color:#758a86}.council-share-bar{height:14px;background:#edf3f2;border-radius:999px;overflow:hidden}.council-share-bar span{display:block;height:100%;border-radius:999px;min-width:2px}.council-share-value{text-align:right}.council-share-value b{display:block;font-size:12px;color:#173d38}.council-share-value small{font-size:8.5px;color:#758a86}
.council-stacked-section{border:1px solid #d8e8e5;border-radius:16px;padding:16px;background:#fff}
.council-stacked-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:9px;color:#617774}.council-stacked-legend span{display:flex;align-items:center;gap:5px}
.council-stacked-list{display:grid;gap:0;border-top:1px solid #e3ecea}.council-stacked-row{display:grid;grid-template-columns:minmax(230px,1.15fr) minmax(320px,1.8fr) 85px;gap:14px;align-items:center;padding:13px 2px;border-bottom:1px solid #e7efee;break-inside:avoid}.council-stacked-row:last-child{border-bottom:0}.council-stacked-name{display:flex;gap:9px;align-items:center}.council-stacked-name strong{display:block;font-size:11px;line-height:1.3}.council-stacked-name small{display:block;color:#718783;font-size:8.5px;margin-top:3px}.council-stacked-bar{display:flex;height:18px;border-radius:999px;overflow:hidden;background:#edf3f2;box-shadow:inset 0 0 0 1px rgba(0,0,0,.025)}.council-stacked-bar span{height:100%}.council-stacked-bar .paid{background:#0f766e}.council-stacked-bar .po{background:#f59e0b}.council-stacked-bar .remain{background:#d9e5e3}.council-stacked-money{display:flex;gap:13px;margin-top:6px;color:#647a77;font-size:8.5px}.council-stacked-money span{display:flex;align-items:center;gap:4px;white-space:nowrap}.council-stacked-rate{text-align:right}.council-stacked-rate strong{display:block;font-size:18px;color:#0b6f67}.council-stacked-rate small{font-size:8px;color:#718783}
.council-type-table-section{margin-top:18px}.council-report-table{font-size:9.5px}.council-report-table th,.council-report-table td{padding:8px 7px}.council-report-table td strong{font-size:10px}
.council-pdf-block{break-inside:avoid;page-break-inside:avoid}
.council-pdf-export-stage .council-document{width:1040px;max-width:none;box-shadow:none;border-radius:0;padding:28px 34px}
@media(max-width:1000px){.council-chart-grid{grid-template-columns:1fr}.council-donut-wrap{grid-template-columns:180px 1fr}.council-share-row{grid-template-columns:minmax(145px,1fr) minmax(170px,1.5fr) 100px}.council-stacked-row{grid-template-columns:minmax(210px,1fr) minmax(290px,1.5fr) 80px}}
@media(max-width:600px){.council-report-preview{padding:8px}.council-document{min-width:900px}.council-chart-grid{grid-template-columns:1fr}.council-section-heading{align-items:flex-start}.council-kpi-grid strong{font-size:22px}}
@media print{
  body.council-report-printing .council-chart-section,
  body.council-report-printing .council-stacked-section,
  body.council-report-printing .council-type-table-section,
  body.council-report-printing .council-pdf-intro{break-inside:avoid;page-break-inside:avoid}
  body.council-report-printing .council-chart-card{box-shadow:none}
  body.council-report-printing .council-chart-grid{grid-template-columns:.88fr 1.42fr}
  body.council-report-printing .council-document{font-size:95%}
}


/* v1.10.2 - User Management */
.users-hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.users-panel{overflow:visible}
.user-directory-row{grid-template-columns:44px minmax(0,1fr) 110px 130px minmax(160px,auto)}
.user-status-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900;white-space:nowrap}
.user-status-pill.active{background:#e8f8ee;color:#067647}.user-status-pill.inactive{background:#f2f4f7;color:#667085}
.user-directory-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.user-directory-actions .btn{padding:7px 9px;font-size:11px}
.btn.user-deactivate{color:#b42318;border-color:#f1b7b3}.btn.user-activate{color:#067647;border-color:#9fd7b5}
.user-create-modal-card{width:min(650px,100%);max-height:min(92vh,900px);overflow:auto}
.user-create-form{margin-top:16px}
.user-password-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.user-reset-option{display:flex;align-items:flex-start;gap:9px;margin-top:15px;padding:12px 13px;border:1px solid #d8e8e5;background:#f7fbfa;border-radius:12px;font-size:13px;line-height:1.45;cursor:pointer}
.user-reset-option input{margin-top:2px;accent-color:#0f766e}
.user-create-alert{margin-top:14px;padding:12px 14px;border-radius:12px;background:#fff1f0;border:1px solid #f3bbb6;color:#b42318;font-size:13px;font-weight:700;line-height:1.5}
.user-create-result{margin-top:14px;padding:14px;border-radius:14px;background:#effaf7;border:1px solid #b9e1d8;color:#14564f;font-size:13px;line-height:1.6}
.user-create-result strong{display:block;font-size:16px;color:#0f766e;margin-bottom:5px}
.user-create-result code{display:inline-block;padding:4px 7px;border-radius:7px;background:#fff;border:1px solid #d4e7e3;color:#173d38;font-family:Consolas,monospace;word-break:break-all}
@media(max-width:1000px){.user-directory-row{grid-template-columns:44px minmax(0,1fr) 105px}.user-role-select,.user-status-pill,.user-directory-actions{grid-column:2}.user-directory-actions{justify-content:flex-start}}
@media(max-width:680px){.users-hero-actions{width:100%;justify-content:flex-start}.users-hero-actions .btn{width:100%}.user-password-row{grid-template-columns:1fr}.user-directory-row{grid-template-columns:42px 1fr}.user-directory-main,.user-role-select,.user-status-pill,.user-directory-actions{grid-column:2}}


/* v1.10.4 - Password Self Service */
.login-forgot-btn{align-self:flex-end;margin:-4px 0 10px;border:0;background:transparent;color:var(--primary);font-weight:800;cursor:pointer;padding:5px 0;text-decoration:underline;text-decoration-color:#b7d8d4;text-underline-offset:3px}
.login-forgot-btn:hover{color:var(--primary2);text-decoration-color:currentColor}
.account-action{display:flex;align-items:center;gap:8px;width:100%;font-size:12px;color:#d7efec;border-top:1px solid rgba(255,255,255,.08);margin-top:3px}
.password-modal-card{width:min(610px,100%);max-height:min(92vh,820px);overflow:auto}
.password-self-form{margin-top:18px}
.password-security-note{margin:9px 0 3px;padding:10px 12px;border-radius:11px;background:#f6faf9;border:1px solid #e0ecea;color:#637b77;font-size:11px;line-height:1.65}
.password-form-alert{margin-top:13px;padding:12px 14px;border-radius:12px;background:#fff1f0;border:1px solid #f3bbb6;color:#b42318;font-size:13px;font-weight:700;line-height:1.55}
.password-form-result{margin-top:13px;padding:13px 14px;border-radius:12px;background:#effaf7;border:1px solid #b9e1d8;color:#14564f;font-size:13px;line-height:1.6}
.password-form-result strong,.password-form-result span{display:block}.password-form-result strong{font-size:15px;color:#0f766e;margin-bottom:4px}
@media(max-width:680px){.login-forgot-btn{font-size:14px}.account-action{font-size:12px}.password-modal-card{max-height:94vh}.password-self-form .modal-actions{display:grid;grid-template-columns:1fr}.password-self-form .modal-actions-spacer{display:none}.password-self-form .modal-actions .btn{width:100%}}

/* v1.10.4 - Large, readable plan-cut history on project detail page */
.detail-plan-history-head{
  margin-top:22px;
  margin-bottom:13px;
  font-size:19px;
  font-weight:900;
  color:#315e59;
}
.detail-plan-history-head span{
  font-size:19px;
  font-weight:900;
  letter-spacing:.1px;
}
.detail-plan-history-head b{
  font-size:15px;
  font-weight:900;
  padding:7px 12px;
}
.detail-plan-history{
  gap:12px;
  max-height:440px;
}
.detail-plan-history .plan-history-row{
  grid-template-columns:44px minmax(0,1fr);
  gap:15px;
  padding:18px 19px;
  border-radius:16px;
  min-height:118px;
}
.detail-plan-history .plan-history-index{
  width:42px;
  height:42px;
  border-radius:12px;
  font-size:16px;
  font-weight:900;
}
.detail-plan-history .plan-history-top{
  gap:10px;
}
.detail-plan-history .plan-history-top strong{
  font-size:24px;
  line-height:1.35;
  font-weight:950;
}
.detail-plan-history .plan-history-main p{
  margin:8px 0 7px;
  font-size:18px;
  line-height:1.7;
  font-weight:650;
  color:#294f4a;
}
.detail-plan-history .plan-history-main small{
  display:block;
  font-size:15px;
  line-height:1.65;
  color:#6f8581;
}
.detail-plan-history .plan-history-top .badge,
.detail-plan-history .plan-history-top [class*="badge"],
.detail-plan-history .plan-history-top .chip,
.detail-plan-history .plan-history-top [class*="chip"]{
  font-size:14px;
  line-height:1.25;
  padding:6px 9px;
}
.detail-plan-history .empty-plan-history{
  font-size:17px;
  padding:28px 18px;
}
@media(max-width:680px){
  .detail-plan-history-head,
  .detail-plan-history-head span{font-size:18px}
  .detail-plan-history-head b{font-size:14px;padding:6px 10px}
  .detail-plan-history .plan-history-row{grid-template-columns:40px minmax(0,1fr);gap:12px;padding:16px 15px;min-height:110px}
  .detail-plan-history .plan-history-index{width:38px;height:38px;font-size:15px}
  .detail-plan-history .plan-history-top strong{font-size:21px}
  .detail-plan-history .plan-history-main p{font-size:17px}
  .detail-plan-history .plan-history-main small{font-size:14px}
  .detail-plan-history .plan-history-top .badge,
  .detail-plan-history .plan-history-top [class*="badge"],
  .detail-plan-history .plan-history-top .chip,
  .detail-plan-history .plan-history-top [class*="chip"]{font-size:13px}
}


/* v1.10.5 - Smart User Avatar */
.user-directory-row{
  grid-template-columns:64px minmax(0,1fr) 110px 130px minmax(160px,auto);
  min-height:86px;
}
.user-smart-avatar{
  position:relative;
  width:56px;
  height:56px;
  border-radius:17px;
  display:grid;
  place-items:center;
  overflow:visible;
  flex:0 0 auto;
  border:2px solid rgba(255,255,255,.92);
  box-shadow:0 6px 18px rgba(16,60,56,.14);
}
.user-smart-avatar.role-admin{
  background:linear-gradient(145deg,#6b4ba3,#8b5fbf);
  color:#fff;
}
.user-smart-avatar.role-viewer{
  background:linear-gradient(145deg,#0f766e,#13a394);
  color:#fff;
}
.user-smart-avatar>img{
  width:100%;height:100%;object-fit:cover;display:block;border-radius:15px;
}
.user-avatar-person{width:33px;height:33px;opacity:.97}
.user-avatar-role-mark{
  position:absolute;
  right:-6px;
  bottom:-5px;
  width:24px;
  height:24px;
  border-radius:9px;
  display:grid;
  place-items:center;
  border:3px solid #fff;
  box-shadow:0 3px 8px rgba(31,55,52,.18);
}
.user-avatar-role-mark.role-admin{background:#5b3d91;color:#fff}
.user-avatar-role-mark.role-viewer{background:#e7f6f3;color:#0f766e}
.user-avatar-role-mark svg{width:14px;height:14px;display:block}
.user-directory-name-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:2px}
.user-directory-name-line>strong{font-size:15px;line-height:1.35}
.user-inline-role-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:3px 8px;
  font-size:9px;
  font-weight:950;
  letter-spacing:.04em;
  line-height:1.2;
}
.user-inline-role-badge.role-admin{background:#f2ebfb;color:#6d3f9b;border:1px solid #dfcff1}
.user-inline-role-badge.role-viewer{background:#e9f7f4;color:#0b746a;border:1px solid #cbe9e3}
@media(max-width:1000px){
  .user-directory-row{grid-template-columns:64px minmax(0,1fr) 105px}
  .user-role-select,.user-status-pill,.user-directory-actions{grid-column:2}
}
@media(max-width:680px){
  .user-directory-row{grid-template-columns:58px 1fr;padding-left:14px;padding-right:14px}
  .user-smart-avatar{width:50px;height:50px;border-radius:15px}
  .user-smart-avatar>img{border-radius:13px}
  .user-avatar-person{width:30px;height:30px}
  .user-directory-main,.user-role-select,.user-status-pill,.user-directory-actions{grid-column:2}
}

/* v1.10.8 - Official NBCC college logo branding */
.brand-logo{display:block;object-fit:contain;object-position:center;filter:drop-shadow(0 4px 9px rgba(0,0,0,.12))}
.setup-brand-logo{width:86px;height:86px;margin:0 auto 16px}
.login-brand-logo{width:104px;height:104px;margin:0 0 18px}
.sidebar-brand-logo{width:52px;height:52px;flex:0 0 52px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.22))}
.sidebar-brand{gap:11px;padding-top:0;padding-bottom:22px}
.sidebar-brand-text{min-width:0;line-height:1.12}
.sidebar-brand-text strong{font-size:17px;letter-spacing:-.2px;white-space:nowrap}
.sidebar-brand-text small{font-size:13px;white-space:nowrap;color:#d8efec;opacity:.78}
@media(max-width:680px){.setup-brand-logo{width:76px;height:76px}.login-brand-logo{width:92px;height:92px}.sidebar-brand-logo{width:50px;height:50px;flex-basis:50px}}


/* v1.10.8 - Top 5 Honor Board: larger, clearer, more celebratory */
.top5-panel{
  border:1px solid #e4cf86;
  box-shadow:0 18px 44px rgba(70,52,4,.10),0 4px 16px rgba(12,57,53,.06);
  background:linear-gradient(180deg,#fffef9 0%,#ffffff 32%);
}
.top5-title{
  padding:24px 26px 22px;
  background:
    radial-gradient(circle at 8% 12%,rgba(255,216,73,.22),transparent 23%),
    linear-gradient(130deg,#fff9dd 0%,#fffef8 45%,#edf9f7 100%);
  border-bottom:1px solid #eadca7;
}
.top5-kicker{
  margin-bottom:5px;color:#a16e00;font-size:11px;font-weight:950;letter-spacing:.13em;text-transform:uppercase;
}
.top5-title h2{
  margin:0;color:#143f3a;font-size:30px;line-height:1.18;font-weight:950;letter-spacing:-.02em;
}
.top5-title p{margin-top:8px;color:#536d69;font-size:15px;line-height:1.6;font-weight:650}
.top5-cardview-label{
  margin-left:9px;padding:6px 10px;font-size:10px;background:linear-gradient(135deg,#a77500,#d7a40b);box-shadow:0 5px 14px rgba(183,133,0,.2)
}
.top5-inclusion-chip,.top5-exclusion-chip{font-size:12px;padding:8px 12px}
.top5-ranking{gap:18px;padding:22px}
.top5-card{
  border-width:2px;border-radius:24px;padding:20px;gap:16px;
  box-shadow:0 10px 28px rgba(12,57,53,.075);
}
.top5-card:hover{transform:translateY(-5px);box-shadow:0 20px 46px rgba(12,57,53,.14)}
.top5-card::before{
  content:"";position:absolute;left:0;right:0;top:0;height:6px;background:linear-gradient(90deg,#11897d,#25b6a6);pointer-events:none;
}
.top5-card.rank-1{border-color:#d8b438;background:linear-gradient(145deg,#fff8d7 0%,#fffdf2 35%,#ffffff 66%,#eff9f7 100%);box-shadow:0 18px 46px rgba(183,133,0,.16),0 9px 24px rgba(12,57,53,.08)}
.top5-card.rank-1::before{height:8px;background:linear-gradient(90deg,#9b6500,#ffd84d,#c99000)}
.top5-card.rank-2{border-color:#bcc9cf;background:linear-gradient(150deg,#f8fbfd 0%,#fff 58%,#f1f7f8 100%)}
.top5-card.rank-2::before{background:linear-gradient(90deg,#8998a1,#eef3f5,#a4b0b7)}
.top5-card.rank-3{border-color:#dda97f;background:linear-gradient(150deg,#fff7f0 0%,#fff 58%,#f8f6f3 100%)}
.top5-card.rank-3::before{background:linear-gradient(90deg,#a96332,#edbe93,#b36c3b)}
.top5-card.rank-4{border-color:#9fdcc3;background:linear-gradient(150deg,#f1fff8,#fff 60%,#eff9f6)}
.top5-card.rank-4::before{background:linear-gradient(90deg,#16885d,#4fd39a)}
.top5-card.rank-5{border-color:#9ecfe2;background:linear-gradient(150deg,#f2fbff,#fff 60%,#edf8fb)}
.top5-card.rank-5::before{background:linear-gradient(90deg,#177a9b,#4db9dc)}
.top5-card-top{gap:10px;flex-wrap:wrap}
.top5-card-rank{
  width:50px;height:50px;border-radius:15px;font-size:21px;position:relative;display:grid;place-items:center;
}
.top5-card-rank small{
  position:absolute;right:-6px;bottom:-6px;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:#fff;color:#153e39;
  display:grid;place-items:center;font-size:11px;font-weight:950;box-shadow:0 3px 9px rgba(0,0,0,.12);border:1px solid rgba(0,0,0,.07)
}
.top5-kind-chip{font-size:12px;padding:5px 9px}
.top5-honor-badge{
  display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#fff8d9;border:1px solid #edce6c;color:#8e6200;
  font-size:11px;font-weight:950;box-shadow:0 3px 10px rgba(171,125,0,.08)
}
.top5-card-top>.badge{margin-left:auto;font-size:11px;padding:6px 10px}
.top5-card-owner{padding:14px 15px;gap:14px;border-radius:18px;background:rgba(238,249,247,.88)}
.top5-owner-avatar{width:68px;height:68px;font-size:18px;border-width:4px;box-shadow:0 7px 18px rgba(15,118,110,.20)}
.top5-owner-copy{gap:4px}
.top5-owner-copy small{font-size:12px;letter-spacing:.01em}
.top5-owner-copy strong{font-size:17px;line-height:1.4;font-weight:900;color:#133d38}
.top5-card-body{gap:7px;min-height:92px}
.top5-card-name{font-size:21px;line-height:1.45;font-weight:950;color:#0c3833;-webkit-line-clamp:3}
.top5-card-context{font-size:12px;line-height:1.45;color:#6f8581}
.top5-card-numbers{gap:11px}
.top5-card-numbers>span{padding:13px 14px;border-radius:15px}
.top5-card-numbers small{font-size:11px;font-weight:750}
.top5-card-numbers strong{font-size:17px;line-height:1.35;font-weight:950}
.top5-card-rate{gap:9px;align-items:flex-end}
.top5-card-rate strong{font-size:42px;font-weight:950;letter-spacing:-.025em;color:#086f66}
.top5-card-rate small{font-size:12px;padding-bottom:4px}
.top5-card .top5-progress{height:11px;box-shadow:inset 0 1px 2px rgba(0,0,0,.05)}
.top5-card-open{font-size:13px;padding-top:3px}
.top5-card-open b{font-size:18px}
.top5-footnote{font-size:11.5px;line-height:1.7;padding:13px 24px 16px}

@media(min-width:1181px){
  .top5-ranking{grid-template-columns:repeat(2,minmax(0,1fr));}
  .top5-card.rank-1{
    grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) 290px;
    grid-template-areas:"top owner" "body owner" "numbers rate" "progress progress" "open open";
    column-gap:28px;padding:26px 28px;min-height:380px;
  }
  .top5-card.rank-1 .top5-card-top{grid-area:top}
  .top5-card.rank-1 .top5-card-owner{grid-area:owner;align-self:stretch;flex-direction:column;justify-content:center;text-align:center;padding:22px;background:linear-gradient(160deg,#fff8cf,#f5fcfa);border:2px solid #e7cd69}
  .top5-card.rank-1 .top5-owner-avatar{width:126px;height:126px;font-size:28px;border-width:5px;box-shadow:0 12px 28px rgba(161,113,0,.20)}
  .top5-card.rank-1 .top5-owner-copy small{font-size:13px}
  .top5-card.rank-1 .top5-owner-copy strong{font-size:21px;white-space:normal;line-height:1.45}
  .top5-card.rank-1 .top5-card-body{grid-area:body;min-height:116px;align-content:center}
  .top5-card.rank-1 .top5-card-name{font-size:30px;line-height:1.42;-webkit-line-clamp:3}
  .top5-card.rank-1 .top5-card-context{font-size:14px}
  .top5-card.rank-1 .top5-card-numbers{grid-area:numbers}
  .top5-card.rank-1 .top5-card-numbers>span{padding:16px 18px}
  .top5-card.rank-1 .top5-card-numbers small{font-size:12px}
  .top5-card.rank-1 .top5-card-numbers strong{font-size:21px}
  .top5-card.rank-1 .top5-card-rate{grid-area:rate;justify-content:flex-end;align-self:center;justify-self:end}
  .top5-card.rank-1 .top5-card-rate strong{font-size:62px;color:#946b00;text-shadow:0 1px 0 #fff}
  .top5-card.rank-1 .top5-card-rate small{font-size:13px;padding-bottom:7px}
  .top5-card.rank-1 .top5-progress{grid-area:progress;height:13px}
  .top5-card.rank-1 .top5-card-open{grid-area:open}
  .top5-card:not(.rank-1){min-height:430px;padding:21px}
  .top5-card:not(.rank-1) .top5-card-name{font-size:22px}
  .top5-card:not(.rank-1) .top5-card-rate strong{font-size:44px}
}

@media(max-width:1180px){
  .top5-title h2{font-size:26px}
  .top5-ranking{grid-template-columns:repeat(2,minmax(0,1fr))}
  .top5-card.rank-1{grid-column:1/-1}
  .top5-card-name{font-size:20px}
  .top5-card-rate strong{font-size:38px}
}
@media(max-width:700px){
  .top5-title{padding:20px 18px}.top5-title h2{font-size:24px}.top5-title p{font-size:13px}
  .top5-ranking{grid-template-columns:1fr;padding:14px;gap:14px}
  .top5-card.rank-1{grid-column:auto}
  .top5-card{padding:17px;border-radius:20px}
  .top5-owner-avatar{width:60px;height:60px}
  .top5-owner-copy strong{font-size:16px;white-space:normal}
  .top5-card-name{font-size:19px;line-height:1.5}
  .top5-card-numbers strong{font-size:16px}
  .top5-card-rate strong{font-size:36px}
  .top5-honor-badge{font-size:10px}
}


/* v1.10.9 - Compact budget list header for easier reading */
.table-title{
  padding:14px 18px;
  align-items:flex-start;
}
.table-title h2{
  font-size:28px;
}
.table-title #itemCount{
  font-size:16px;
  padding:7px 13px;
}
.budget-list-hint{
  font-size:13px;
  line-height:1.45;
}
.table-title .filters{
  margin-left:auto;
}
.budget-list-filters{
  display:grid;
  grid-template-columns:minmax(230px, 1fr) 210px 180px;
  gap:10px;
  width:min(100%, 680px);
  align-items:center;
}
.table-title .filters input,
.table-title .filters select{
  min-height:46px;
  font-size:16px;
  font-weight:700;
}
.budget-list-filters #budgetTypeFilter,
.budget-list-filters #statusFilter{
  min-width:0;
}
@media(max-width:1260px){
  .budget-list-filters{
    grid-template-columns:1fr 1fr;
    width:min(100%, 560px);
  }
  .budget-list-filters input{
    grid-column:1 / -1;
  }
}
@media(max-width:900px){
  .table-title{
    padding:14px 16px;
  }
  .table-title h2{font-size:24px}
  .table-title #itemCount{font-size:15px}
  .budget-list-hint{font-size:12px}
  .table-title .filters input,.table-title .filters select{min-height:44px;font-size:15px}
}
@media(max-width:760px){
  .budget-list-filters{
    grid-template-columns:1fr !important;
    width:100%;
  }
  .budget-list-filters input{
    grid-column:auto;
  }
}


/* v1.10.10 - soft alternating table rows */
.table-scroll tbody tr:nth-child(even) td{background:transparent}
.table-scroll tbody tr:nth-child(odd) td{background:transparent}
.table-scroll tbody tr.budget-row:hover td{background:transparent}

/* v1.10.11 - Guest Public Dashboard */
.guest-login-divider{display:flex;align-items:center;gap:10px;margin:6px 0 12px;color:#8aa09d;font-size:12px}.guest-login-divider:before,.guest-login-divider:after{content:"";height:1px;flex:1;background:#dbe8e6}.guest-browse-btn{background:#eef8f6;color:#0d665f;border:1px solid #bcded9;font-weight:900}.guest-browse-btn:hover{background:#e1f4f1;border-color:#8bc8c0}.guest-login-note{display:block;text-align:center;color:#718784;line-height:1.5;margin-top:8px}.guest-login-nav{background:rgba(255,255,255,.10)!important;color:#fff!important;border:1px solid rgba(255,255,255,.16)!important}.guest-login-nav:hover{background:rgba(255,255,255,.16)!important}.guest-report-nav{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.08);color:#e8f7f5}.guest-report-nav small,.guest-report-nav strong{display:block}.guest-report-nav small{font-size:10px;opacity:.7;margin-bottom:3px}.guest-report-nav strong{font-size:11px;line-height:1.45}.guest-latest-report{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;margin-bottom:14px;padding:14px 18px;border:1px solid #bfe0db;border-radius:16px;background:linear-gradient(135deg,#f2fbf9,#e8f7f4);box-shadow:0 7px 20px rgba(12,57,53,.05)}.guest-latest-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:13px;background:#fff;border:1px solid #d5e9e6;font-size:22px}.guest-latest-report small,.guest-latest-report strong{display:block}.guest-latest-report small{color:#69807d;font-size:12px;margin-bottom:3px}.guest-latest-report strong{font-size:17px;color:#174b46}.guest-readonly-badge{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:999px;background:#fff;color:#0f766e;border:1px solid #bcded9;font-size:11px;font-weight:900;white-space:nowrap}.guest-mode .guest-hide{display:none!important}.guest-mode .sidebar-nav>.nav-section-label{order:0}.guest-mode .sidebar-nav .nav-item[data-page="dashboard"]{order:1}.guest-mode .sidebar-nav .nav-item[data-page="budget-types"]{order:2}.guest-mode .sidebar-nav .nav-item[data-page="guest-top5"]{order:3}.guest-mode .sidebar-nav .nav-item[data-page="council-report"]{order:4}.guest-mode .sidebar-nav .guest-report-nav{order:5}.guest-mode .sidebar-nav .nav-item[data-page="budget-list"]{order:6}.guest-mode .topbar-actions #quickImportBtn{display:none!important}.guest-mode .top5-panel{margin-top:0}.guest-top5-page{max-width:1500px;margin:0 auto}.guest-top5-card{cursor:default}.guest-top5-card:hover{transform:none}.guest-top5-privacy{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:7px 10px;border-radius:999px;background:#f3f7f6;color:#607875;font-size:11px;font-weight:800;border:1px solid #dde9e7}.guest-budget-row{cursor:default}.guest-row-hint{display:inline-flex;align-items:center;color:#718784;font-size:11px;font-weight:800}.guest-mode .guest-budget-row:hover{background:inherit;box-shadow:none}.guest-mode .council-report-toolbar .management-report-buttons{display:flex}.guest-mode .user-chip{background:rgba(255,255,255,.06);border-radius:12px;border-top:0}.guest-mode .user-chip span{font-weight:800}.guest-mode .user-chip small{color:#bde5df;opacity:1}
@media(max-width:760px){.guest-latest-report{grid-template-columns:auto 1fr}.guest-latest-report .guest-readonly-badge{grid-column:1/-1;width:max-content}.guest-report-nav strong{font-size:10px}.guest-readonly-badge{font-size:10px}}
@media(min-width:1181px){
  .guest-top5-card.rank-1{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 260px!important;
    grid-template-areas:"top top" "body body" "numbers rate" "progress progress" "privacy privacy"!important;
    min-height:330px!important;
  }
  .guest-top5-card.rank-1 .top5-card-top{grid-area:top}
  .guest-top5-card.rank-1 .top5-card-body{grid-area:body}
  .guest-top5-card.rank-1 .top5-card-numbers{grid-area:numbers}
  .guest-top5-card.rank-1 .top5-card-rate{grid-area:rate;justify-self:end;align-self:center}
  .guest-top5-card.rank-1 .top5-progress{grid-area:progress}
  .guest-top5-card.rank-1 .guest-top5-privacy{grid-area:privacy}
}


/* v1.10.12 - explicit Guest Dashboard publishing */
.guest-publish-btn{background:#eaf8f6;color:#0b6b63;border:1px solid #a9d9d3;font-weight:900;white-space:nowrap}
.guest-publish-btn:hover{background:#dff4f1;border-color:#79c0b7}
.guest-publish-btn:disabled{opacity:.65;cursor:wait}
@media(max-width:760px){.topbar-actions{flex-wrap:wrap}.guest-publish-btn{order:3;width:100%}}

/* v1.10.15 - User Profile */
.user-account-email{opacity:.48!important;font-size:10px!important;margin-top:3px!important}.profile-hero{display:grid;grid-template-columns:116px minmax(0,1fr) auto;gap:24px;align-items:center;padding:26px;background:linear-gradient(135deg,#f7fffd 0%,#fff 55%,#edf9f7 100%);border:1px solid #b9ddd8}.profile-hero-avatar{width:108px;height:108px;border-radius:28px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(145deg,#0f766e,#14b8a6);box-shadow:0 14px 28px rgba(15,118,110,.18);border:4px solid #fff}.profile-hero-avatar img{width:100%;height:100%;object-fit:cover}.profile-avatar-fallback{font-size:34px;font-weight:950;color:#fff}.profile-hero-copy h2{font-size:30px;margin:4px 0 2px;color:#123f3a}.profile-hero-copy p{font-size:17px;margin:0;color:#54706d;font-weight:750}.profile-hero-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;color:#5f7774;font-size:13px}.profile-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px}.profile-hero-stats>div{min-width:132px;padding:14px 16px;border:1px solid #d8e9e6;border-radius:16px;background:rgba(255,255,255,.88)}.profile-hero-stats small,.profile-hero-stats span{display:block;color:#718783;font-size:11px}.profile-hero-stats strong{display:block;font-size:22px;color:#0f766e;margin:4px 0;font-variant-numeric:tabular-nums}.profile-layout{display:grid;grid-template-columns:minmax(330px,.72fr) minmax(520px,1.28fr);gap:16px;margin-top:16px}.profile-edit-card,.profile-projects-card{padding:22px}.profile-card-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid #e1ecea}.profile-card-title>div{display:flex;gap:10px;align-items:flex-start}.profile-card-title>div>span{font-size:22px}.profile-card-title h3{margin:0;font-size:20px;color:#153f3b}.profile-card-title p{margin:4px 0 0;font-size:12px;color:#718481;line-height:1.5}.profile-form{display:grid;gap:8px}.profile-form .field-label{margin-top:6px}.profile-photo-editor{margin:2px 0 8px}.profile-photo-preview{width:92px;height:92px}.profile-readonly-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:8px}.profile-readonly-grid>div{padding:12px;border-radius:12px;background:#f6faf9;border:1px solid #e0ebe9}.profile-readonly-grid span,.profile-readonly-grid strong{display:block}.profile-readonly-grid span{font-size:10px;color:#718481}.profile-readonly-grid strong{font-size:13px;margin-top:4px;overflow-wrap:anywhere}.profile-form-actions{display:flex;justify-content:flex-end;margin-top:10px}.profile-form-actions .btn{min-width:170px}.profile-projects-list{display:grid;gap:9px}.profile-project-row{width:100%;border:1px solid #dceae8;border-radius:15px;background:#fff;display:grid;grid-template-columns:34px minmax(0,1fr) 130px 105px 90px;gap:12px;align-items:center;padding:13px 14px;text-align:left;color:inherit;cursor:pointer;transition:.15s}.profile-project-row:hover{background:#effaf8;border-color:#9fd2cc;transform:translateY(-1px);box-shadow:0 8px 18px rgba(15,118,110,.08)}.profile-project-index{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#e7f5f3;color:#0f766e;font-weight:900}.profile-project-main small,.profile-project-main strong,.profile-project-main em{display:block}.profile-project-main small{font-size:10px;color:#0f766e;font-weight:850}.profile-project-main strong{font-size:15px;line-height:1.4;margin:2px 0}.profile-project-main em{font-size:10px;color:#7a8d8a;font-style:normal}.profile-project-money small,.profile-project-money b,.profile-project-rate b,.profile-project-rate small{display:block}.profile-project-money small,.profile-project-rate small{font-size:9px;color:#768985}.profile-project-money b{font-size:13px;font-variant-numeric:tabular-nums}.profile-project-rate b{font-size:18px;color:#0f766e}.profile-project-open{font-size:11px;font-weight:850;color:#0f766e;text-align:right}.profile-project-empty{padding:34px 20px;text-align:center;border:1px dashed #cbdedb;border-radius:16px;background:#fbfdfd;color:#667d79}.profile-project-empty>span{font-size:34px;display:block}.profile-project-empty strong{display:block;margin:8px 0 4px;color:#365b56}.profile-project-empty p{font-size:12px;margin:0;line-height:1.55}.user-directory-main>span{font-weight:700;color:#526e6a}@media(max-width:1180px){.profile-hero{grid-template-columns:100px 1fr}.profile-hero-avatar{width:92px;height:92px}.profile-hero-stats{grid-column:1/-1}.profile-layout{grid-template-columns:1fr}.profile-project-row{grid-template-columns:34px minmax(0,1fr) 120px 95px 80px}}@media(max-width:760px){.profile-hero{grid-template-columns:76px 1fr;padding:18px;gap:14px}.profile-hero-avatar{width:72px;height:72px;border-radius:20px}.profile-hero-copy h2{font-size:23px}.profile-hero-copy p{font-size:14px}.profile-hero-stats{grid-template-columns:1fr 1fr}.profile-hero-stats>div:last-child{grid-column:1/-1}.profile-edit-card,.profile-projects-card{padding:16px}.profile-readonly-grid{grid-template-columns:1fr}.profile-project-row{grid-template-columns:30px 1fr 84px}.profile-project-money{grid-column:2}.profile-project-rate{grid-column:3;grid-row:1/3}.profile-project-open{display:none}.profile-card-title{flex-direction:column}.profile-card-title .directory-summary{align-self:flex-start}}


/* v1.10.16 - ADMIN edit user profiles */
.user-edit-modal-card{width:min(720px,100%);max-height:min(92vh,920px);overflow:auto}
.user-edit-form{display:grid;gap:10px}
.user-edit-profile-head{display:grid;grid-template-columns:110px 1fr;gap:18px;align-items:center;padding:16px;border:1px solid #d7e7e5;border-radius:16px;background:#f5fbfa;margin-bottom:4px}
.user-edit-profile-head .owner-photo-preview{min-height:96px;display:grid;place-items:center}
.user-edit-profile-head .owner-photo-preview-avatar{width:92px;height:92px;font-size:28px}
.user-edit-profile-meta{display:grid;grid-template-columns:1fr 110px 150px;gap:10px}
.user-edit-profile-meta>div{padding:10px 12px;border-radius:12px;background:#fff;border:1px solid #deebe9;min-width:0}
.user-edit-profile-meta small,.user-edit-profile-meta strong{display:block}
.user-edit-profile-meta small{font-size:11px;color:var(--muted);margin-bottom:4px}
.user-edit-profile-meta strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.user-directory-actions .user-edit-profile{border-color:#9fd3ce;color:#0f766e;background:#f4fbfa}
.user-directory-actions .user-edit-profile:hover{background:#e6f6f3}
@media(max-width:720px){.user-edit-profile-head{grid-template-columns:1fr;text-align:center}.user-edit-profile-meta{grid-template-columns:1fr}.user-edit-grid{grid-template-columns:1fr}.user-edit-profile-meta strong{white-space:normal}}


/* v1.10.17 - User list print / PDF / Excel */
.user-export-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.user-export-actions .btn{min-height:40px;white-space:nowrap}
.users-export-root{position:absolute;left:-100000px;top:0;width:794px;background:#fff;color:#17302e;font-family:"Noto Sans Thai","Tahoma","Segoe UI",sans-serif;z-index:-1}
.users-export-page{width:794px;min-height:1123px;padding:42px 38px 34px;background:#fff;position:relative;break-after:page;page-break-after:always}
.users-export-page:last-child{break-after:auto;page-break-after:auto}
.users-export-header{display:grid;grid-template-columns:64px 1fr auto;gap:16px;align-items:center;padding-bottom:14px;border-bottom:3px solid #0f766e}
.users-export-header img{width:58px;height:58px;object-fit:contain}
.users-export-header h1{margin:0;font-size:24px;line-height:1.25;color:#073e39}
.users-export-header p{margin:4px 0 0;font-size:14px;color:#607a77}
.users-export-page-no{font-size:12px;color:#607a77;font-weight:700;align-self:end;padding-bottom:3px}
.users-export-meta{display:flex;justify-content:space-between;gap:20px;padding:12px 2px 14px;font-size:11px;color:#5c7471}
.users-export-table{width:100%;border-collapse:collapse;table-layout:fixed}
.users-export-table th,.users-export-table td{border:1px solid #cfe0de;padding:8px 7px;font-size:11px;line-height:1.38;vertical-align:top;overflow-wrap:anywhere}
.users-export-table th{background:#eaf6f4;color:#174c47;font-weight:900;text-align:center}
.users-export-table tbody tr:nth-child(even){background:#f8fcfb}
.users-export-table th:nth-child(1),.users-export-table td:nth-child(1){width:5%}
.users-export-table th:nth-child(2),.users-export-table td:nth-child(2){width:18%}
.users-export-table th:nth-child(3),.users-export-table td:nth-child(3){width:21%}
.users-export-table th:nth-child(4),.users-export-table td:nth-child(4){width:15%}
.users-export-table th:nth-child(5),.users-export-table td:nth-child(5){width:16%}
.users-export-table th:nth-child(6),.users-export-table td:nth-child(6){width:9%}
.users-export-table th:nth-child(7),.users-export-table td:nth-child(7){width:9%}
.users-export-table th:nth-child(8),.users-export-table td:nth-child(8){width:7%}
.user-report-center{text-align:center}
.user-report-email{font-weight:750;color:#075e57}
.user-report-role{display:inline-block;border-radius:999px;padding:3px 6px;font-size:9px;font-weight:900}
.user-report-role.admin{background:#f2eafe;color:#6c2da8}
.user-report-role.viewer{background:#e8f5f2;color:#0f766e}
.users-export-footer{position:absolute;left:38px;right:38px;bottom:20px;padding-top:8px;border-top:1px solid #dce8e6;text-align:center;font-size:9px;color:#78908d}
.users-export-capture{position:fixed;left:-100000px;top:0;z-index:-1}
@media(max-width:900px){.user-export-actions{width:100%}.user-export-actions .btn{flex:1}}
@media(max-width:680px){.user-export-actions{display:grid;grid-template-columns:1fr 1fr 1fr;width:100%}.user-export-actions .btn{width:100%;padding-left:8px;padding-right:8px;font-size:13px}}
@media print{
  body.users-report-printing{background:#fff!important}
  body.users-report-printing > *:not(.users-export-root){display:none!important}
  body.users-report-printing .users-export-root{position:static!important;left:auto!important;top:auto!important;width:auto!important;z-index:auto!important;background:#fff!important}
  body.users-report-printing .users-export-page{width:210mm!important;min-height:297mm!important;padding:11mm 10mm 9mm!important;box-shadow:none!important}
  body.users-report-printing .users-export-footer{left:10mm!important;right:10mm!important;bottom:5mm!important}
  @page{size:A4 portrait;margin:0}
}


/* v1.10.18 - Larger Responsible Person Card */
.detail-responsible-wrap{
  max-width:1220px;
  gap:14px;
  margin-top:18px;
}
.detail-responsible-card{
  gap:18px;
  padding:18px 22px;
  min-height:108px;
  border-radius:18px;
  border-color:#bfe1dc;
  background:rgba(255,255,255,.9);
  box-shadow:0 7px 20px rgba(12,57,53,.06);
}
.detail-responsible-photo{
  flex:0 0 78px;
  width:78px;
  height:78px;
}
.detail-responsible-photo .detail-owner-avatar,
.detail-owner-avatar{
  width:78px;
  height:78px;
  font-size:20px;
  border:3px solid #fff;
  box-shadow:0 6px 16px rgba(15,118,110,.18);
}
.detail-responsible-copy{
  gap:5px;
}
.detail-responsible-copy>span{
  font-size:16px;
  font-weight:900;
  color:#4c746f;
}
.detail-responsible-copy strong{
  font-size:25px;
  line-height:1.35;
  font-weight:900;
  color:#0b3f39;
}
.detail-responsible-copy strong.is-empty{
  font-size:21px;
}
.detail-responsible-copy small{
  font-size:14px;
  line-height:1.55;
  color:#66807c;
  font-weight:650;
}
.detail-responsible-edit{
  min-width:210px;
  min-height:72px;
  padding:14px 20px;
  border-radius:16px;
  font-size:18px;
  font-weight:900;
  align-self:center;
  box-shadow:0 5px 14px rgba(15,118,110,.08);
}
@media(max-width:900px){
  .detail-responsible-card{min-height:96px;padding:16px 18px;gap:15px}
  .detail-responsible-photo,.detail-responsible-photo .detail-owner-avatar,.detail-owner-avatar{width:66px;height:66px;flex-basis:66px}
  .detail-responsible-copy>span{font-size:14px}
  .detail-responsible-copy strong{font-size:21px}
  .detail-responsible-copy small{font-size:13px}
  .detail-responsible-edit{min-width:180px;min-height:60px;font-size:16px}
}
@media(max-width:720px){
  .detail-responsible-wrap{gap:10px}
  .detail-responsible-card{padding:15px 16px}
  .detail-responsible-copy strong{font-size:20px}
  .detail-responsible-edit{width:100%;min-width:0;min-height:52px}
}


/* v1.10.19 - Extra Large Responsible Profile Card */
.detail-responsible-wrap{
  max-width:1380px;
  gap:18px;
  margin-top:20px;
  align-items:stretch;
}
.detail-responsible-card{
  gap:28px;
  padding:24px 30px;
  min-height:205px;
  border-radius:22px;
  border:1px solid #b8ddd7;
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(245,252,250,.96));
  box-shadow:0 10px 26px rgba(12,57,53,.075);
}
.detail-responsible-photo{
  flex:0 0 160px;
  width:160px;
  height:160px;
  display:grid;
  place-items:center;
}
.detail-responsible-photo .detail-owner-avatar{
  width:160px;
  height:160px;
  flex-basis:160px;
  font-size:38px;
  border:5px solid #fff;
  box-shadow:0 10px 28px rgba(15,118,110,.22);
}
.detail-responsible-copy{
  gap:8px;
  align-content:center;
}
.detail-responsible-copy>span{
  font-size:20px;
  font-weight:900;
  color:#4c746f;
}
.detail-responsible-copy strong{
  font-size:34px;
  line-height:1.28;
  font-weight:950;
  color:#073d37;
  letter-spacing:-.01em;
}
.detail-responsible-copy strong.is-empty{
  font-size:27px;
}
.detail-responsible-copy small{
  font-size:17px;
  line-height:1.65;
  color:#607c77;
  font-weight:700;
}
.detail-responsible-edit{
  min-width:235px;
  min-height:86px;
  padding:18px 24px;
  border-radius:18px;
  font-size:20px;
  font-weight:900;
  align-self:center;
  box-shadow:0 7px 18px rgba(15,118,110,.11);
}
@media(max-width:1100px){
  .detail-responsible-card{min-height:175px;padding:22px 24px;gap:22px}
  .detail-responsible-photo{width:130px;height:130px;flex-basis:130px}
  .detail-responsible-photo .detail-owner-avatar{width:130px;height:130px;flex-basis:130px;font-size:32px}
  .detail-responsible-copy>span{font-size:18px}
  .detail-responsible-copy strong{font-size:29px}
  .detail-responsible-copy small{font-size:15px}
  .detail-responsible-edit{min-width:205px;min-height:72px;font-size:18px}
}
@media(max-width:760px){
  .detail-responsible-wrap{gap:12px}
  .detail-responsible-card{min-height:0;padding:20px;gap:18px;align-items:flex-start}
  .detail-responsible-photo{width:104px;height:104px;flex-basis:104px}
  .detail-responsible-photo .detail-owner-avatar{width:104px;height:104px;flex-basis:104px;font-size:27px;border-width:4px}
  .detail-responsible-copy>span{font-size:16px}
  .detail-responsible-copy strong{font-size:24px}
  .detail-responsible-copy small{font-size:14px}
  .detail-responsible-edit{width:100%;min-width:0;min-height:58px;font-size:17px}
}
@media(max-width:520px){
  .detail-responsible-card{flex-direction:column;align-items:center;text-align:center}
  .detail-responsible-photo{width:120px;height:120px;flex-basis:120px}
  .detail-responsible-photo .detail-owner-avatar{width:120px;height:120px;flex-basis:120px}
  .detail-responsible-copy{justify-items:center}
}


/* v1.10.20 - Disbursement percentage beside responsible profile */
.detail-responsible-actions{
  flex:0 0 250px;
  display:flex;
  flex-direction:column;
  gap:14px;
  align-self:stretch;
}
.detail-responsible-actions .detail-responsible-edit{
  width:100%;
  min-width:0;
  min-height:86px;
  align-self:stretch;
}
.detail-responsible-rate{
  flex:1 1 auto;
  min-height:105px;
  padding:14px 16px;
  display:grid;
  place-items:center;
  align-content:center;
  text-align:center;
  border:1px solid #9fd7d0;
  border-radius:20px;
  background:linear-gradient(145deg,#f8fdfc,#e9f8f5);
  box-shadow:0 8px 20px rgba(15,118,110,.08);
}
.detail-responsible-rate span{
  font-size:14px;
  font-weight:850;
  color:#557873;
  margin-bottom:2px;
}
.detail-responsible-rate strong{
  display:block;
  font-size:48px;
  line-height:1.05;
  font-weight:950;
  letter-spacing:-.035em;
  color:#0b7c72;
  font-variant-numeric:tabular-nums;
}
.detail-responsible-rate small{
  margin-top:4px;
  font-size:16px;
  font-weight:900;
  color:#516f6b;
}
@media(max-width:1100px){
  .detail-responsible-actions{flex-basis:220px;gap:12px}
  .detail-responsible-actions .detail-responsible-edit{min-height:72px}
  .detail-responsible-rate{min-height:94px}
  .detail-responsible-rate strong{font-size:40px}
}
@media(max-width:760px){
  .detail-responsible-actions{width:100%;flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .detail-responsible-actions .detail-responsible-edit{min-height:64px}
  .detail-responsible-rate{min-height:76px;padding:10px 12px;border-radius:16px}
  .detail-responsible-rate span{font-size:12px}
  .detail-responsible-rate strong{font-size:32px}
  .detail-responsible-rate small{font-size:13px}
}
@media(max-width:520px){
  .detail-responsible-actions{grid-template-columns:1fr}
  .detail-responsible-rate strong{font-size:38px}
}


/* =========================================================
   v1.10.21 - Extra Large Subproject Cards
   Make the sub-project section easier to read from a distance.
   ========================================================= */
.detail-subprojects-panel{
  padding:30px 32px;
  border-radius:24px;
}
.detail-subprojects-title{
  margin-bottom:20px;
  gap:20px;
}
.detail-subprojects-title h2{
  font-size:34px!important;
  line-height:1.2;
  font-weight:950;
  letter-spacing:-.02em;
}
.detail-subprojects-title p{
  margin-top:8px!important;
  font-size:17px!important;
  line-height:1.65;
}
.detail-subprojects-title .btn{
  min-height:52px;
  padding:13px 22px;
  border-radius:14px;
  font-size:17px;
  font-weight:900;
}

.subproject-summary{
  gap:14px;
  margin:20px 0 24px;
}
.subproject-summary>div{
  min-height:102px;
  padding:18px 22px;
  border-radius:18px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.subproject-summary span{
  font-size:15px;
  line-height:1.4;
  margin-bottom:7px;
}
.subproject-summary strong{
  font-size:26px;
  line-height:1.25;
  font-weight:950;
}

.subproject-list{
  gap:18px;
}
.subproject-card{
  grid-template-columns:58px minmax(0,1fr) auto;
  gap:20px;
  padding:24px 24px;
  border-radius:20px;
  box-shadow:0 7px 22px rgba(12,57,53,.055);
}
.subproject-number{
  width:52px;
  height:52px;
  border-radius:15px;
  font-size:20px;
  font-weight:950;
}
.subproject-title-row{
  gap:16px;
}
.subproject-title-row h3{
  margin:0;
  font-size:24px;
  line-height:1.45;
  font-weight:950;
  letter-spacing:-.01em;
}
.subproject-budget-chip{
  padding:8px 13px;
  border-radius:999px;
  font-size:15px;
  font-weight:950;
}
.subproject-meta{
  gap:18px;
  margin-top:10px;
  font-size:16px;
  line-height:1.65;
  font-weight:650;
}
.subproject-meta b{
  font-weight:900;
}
.subproject-finance{
  gap:12px;
  margin-top:16px;
}
.subproject-finance>div{
  min-height:100px;
  padding:14px 16px;
  border-radius:14px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.subproject-finance span,
.subproject-finance small{
  font-size:14px;
  line-height:1.4;
}
.subproject-finance strong{
  margin:5px 4px 0 0;
  font-size:22px;
  line-height:1.2;
  font-weight:950;
}
.subproject-rate-box strong{
  font-size:28px!important;
}
.subproject-rate-track{
  height:10px;
  margin-top:9px;
}
.subproject-rate-box>small{
  margin-top:5px;
  font-size:13px!important;
  font-weight:900;
}
.subproject-actions{
  gap:9px;
  max-width:290px;
}
.subproject-actions .btn,
.subproject-actions .history-action{
  min-height:44px;
  padding:10px 15px;
  border-radius:12px;
  font-size:15px;
  font-weight:900;
}
.subproject-chip,.mainproject-chip{
  padding:6px 10px;
  font-size:13px;
}
.subproject-empty{
  padding:42px 24px;
  border-radius:18px;
}
.subproject-empty-icon{
  width:58px;
  height:58px;
  font-size:30px;
  border-radius:16px;
}
.subproject-empty strong{font-size:20px}
.subproject-empty p{font-size:16px;line-height:1.65}

@media(max-width:1250px){
  .subproject-card{grid-template-columns:54px minmax(0,1fr)}
  .subproject-actions{grid-column:2;justify-content:flex-start;max-width:none}
  .subproject-title-row h3{font-size:22px}
}
@media(max-width:900px){
  .detail-subprojects-panel{padding:24px 22px}
  .detail-subprojects-title h2{font-size:29px!important}
  .detail-subprojects-title p{font-size:16px!important}
  .subproject-card{padding:20px;gap:16px}
  .subproject-title-row h3{font-size:21px}
  .subproject-meta{font-size:15px}
  .subproject-finance strong{font-size:20px}
}
@media(max-width:680px){
  .detail-subprojects-panel{padding:20px 16px}
  .detail-subprojects-title h2{font-size:26px!important}
  .detail-subprojects-title .btn{font-size:16px}
  .subproject-summary>div{min-height:88px;padding:15px 17px}
  .subproject-summary span{font-size:14px}
  .subproject-summary strong{font-size:23px}
  .subproject-card{grid-template-columns:46px minmax(0,1fr);padding:17px 15px}
  .subproject-number{width:44px;height:44px;font-size:18px}
  .subproject-title-row h3{font-size:20px}
  .subproject-budget-chip{font-size:13px;padding:6px 9px}
  .subproject-meta{font-size:14px}
  .subproject-finance>div{min-height:86px;padding:13px 14px}
  .subproject-finance span,.subproject-finance small{font-size:13px}
  .subproject-finance strong{font-size:21px}
  .subproject-rate-box strong{font-size:26px!important}
  .subproject-actions{grid-column:1/-1}
  .subproject-actions .btn,.subproject-actions .history-action{font-size:14px}
}


/* v1.10.22 - Personal Documents (Spark / no Cloud Storage) */
.document-unread-badge.has-new{background:#ef4444!important;color:#fff!important;box-shadow:0 0 0 3px rgba(239,68,68,.14)}
.personal-docs-hero,.document-manager-hero{background:linear-gradient(135deg,#f4fcfb,#ecf8f6)}
.personal-docs-hero-stats{display:flex;gap:10px;align-items:stretch}
.personal-docs-hero-stats>div{min-width:118px;padding:12px 16px;background:#fff;border:1px solid #cfe5e1;border-radius:16px;text-align:center}
.personal-docs-hero-stats small,.personal-docs-hero-stats span{display:block;color:#6b7e7c;font-size:12px}.personal-docs-hero-stats strong{display:block;font-size:28px;color:#0f766e;line-height:1.1;margin:3px 0}.personal-docs-hero-stats .unread{border-color:#fecaca;background:#fffafa}.personal-docs-hero-stats .unread strong{color:#dc2626}
.personal-docs-panel{margin-top:14px}.personal-docs-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--line)}.personal-docs-toolbar h3{margin:0;font-size:22px}.personal-docs-toolbar p{margin:4px 0 0;color:var(--muted)}
.personal-docs-list{display:grid;gap:12px;margin-top:16px}.personal-doc-card{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px;border:1px solid #d8e7e4;border-radius:18px;background:#fff;transition:.16s}.personal-doc-card.is-new{border-color:#82cfc5;background:linear-gradient(135deg,#f4fffd,#fff);box-shadow:inset 5px 0 0 #14b8a6,0 8px 22px rgba(15,118,110,.07)}.personal-doc-card:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,76,69,.08)}
.personal-doc-icon{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;font-size:30px;background:#edf8f6;border:1px solid #d4ebe7}.personal-doc-main{min-width:0}.personal-doc-main h3{margin:0;font-size:20px;color:#143d39}.personal-doc-main p{margin:8px 0;color:#506c68;line-height:1.6}.personal-doc-main small{display:block;color:#758986;margin-top:8px;overflow-wrap:anywhere}.personal-doc-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.personal-doc-title-row h3{margin:0}.personal-doc-new,.personal-doc-read{font-size:11px;font-weight:900;border-radius:999px;padding:5px 9px}.personal-doc-new{background:#dc2626;color:#fff}.personal-doc-read{background:#eef5f4;color:#607572}.personal-doc-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}.personal-doc-tags span{font-size:12px;font-weight:800;background:#eef8f6;color:#176c63;border-radius:999px;padding:5px 9px}.personal-doc-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.personal-doc-empty{min-height:230px;border:2px dashed #d7e6e3;border-radius:18px;display:grid;place-items:center;align-content:center;text-align:center;padding:30px;color:#647b77}.personal-doc-empty span{font-size:46px}.personal-doc-empty strong{font-size:20px;color:#355b56;margin-top:8px}.personal-doc-empty p{margin:6px 0 0}.personal-doc-empty.compact{min-height:170px}
.document-manager-layout{display:grid;grid-template-columns:minmax(330px,.72fr) minmax(0,1.28fr);gap:14px;margin-top:14px}.document-upload-card,.document-admin-list-card{padding:22px}.personal-document-form{display:grid;gap:10px;margin-top:16px}.personal-document-form>.field-label{margin-top:3px}.personal-doc-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.personal-doc-form-grid label{font-weight:750;color:#365c57;display:grid;gap:7px}.personal-document-file-box{display:grid;place-items:center;text-align:center;gap:5px;padding:20px;border:2px dashed #9bcfc8;border-radius:16px;background:#f7fcfb;cursor:pointer}.personal-document-file-box:hover{background:#ecf9f7}.personal-document-file-icon{font-size:34px}.personal-document-file-box strong{font-size:16px;color:#185f58;overflow-wrap:anywhere}.personal-document-file-box small{color:#718783;line-height:1.45}.document-admin-head{align-items:center}.admin-docs-list{max-height:680px;overflow:auto;padding-right:3px}.admin-doc-card{grid-template-columns:52px minmax(0,1fr) auto;padding:14px}.admin-doc-card .personal-doc-icon{width:48px;height:48px;font-size:25px}.admin-doc-card .personal-doc-main h3{font-size:17px}.personal-doc-delete{color:#b42318!important;border-color:#fecaca!important}
@media(max-width:1050px){.document-manager-layout{grid-template-columns:1fr}.admin-docs-list{max-height:none}.personal-doc-card{grid-template-columns:56px minmax(0,1fr)}.personal-doc-actions{grid-column:2;justify-content:flex-start}}
@media(max-width:680px){.personal-docs-hero-stats{width:100%;display:grid;grid-template-columns:1fr 1fr}.personal-docs-hero-stats>div{min-width:0}.personal-docs-toolbar{align-items:flex-start;flex-direction:column}.personal-doc-card,.admin-doc-card{grid-template-columns:48px minmax(0,1fr);padding:14px;gap:12px}.personal-doc-icon,.admin-doc-card .personal-doc-icon{width:46px;height:46px;font-size:24px}.personal-doc-main h3{font-size:17px}.personal-doc-actions{grid-column:1/-1}.personal-doc-actions .btn{flex:1}.personal-doc-form-grid{grid-template-columns:1fr}.document-upload-card,.document-admin-list-card{padding:16px}}


/* v1.10.24 - Editable System Settings */
.settings-edit-card{padding:24px}
.settings-preview-thresholds{margin-bottom:20px}
.settings-threshold-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.settings-threshold-editor label{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #d8e8e5;border-radius:14px;padding:14px 16px;background:#fbfdfd;font-weight:800;color:#284f4b}
.settings-threshold-editor label>div{display:flex;align-items:center;gap:7px;flex:0 0 auto}
.settings-threshold-editor input{width:105px;min-height:44px;border:1px solid #bdd8d4;border-radius:10px;padding:8px 10px;text-align:right;font-size:18px;font-weight:900;color:#0f5f58;background:#fff}
.settings-threshold-editor input:focus,.settings-exclusions-editor:focus{outline:none;border-color:#54b8ae;box-shadow:0 0 0 4px rgba(84,184,174,.15)}
.settings-help{margin:14px 0 0;padding:11px 13px;border-radius:11px;background:#f3f8f7;color:#617a77;font-size:12px;line-height:1.6}
.settings-exclusions-editor{width:100%;resize:vertical;min-height:230px;border:1px solid #cfe2df;border-radius:14px;padding:14px 16px;background:#fbfdfd;color:#173d38;font:700 14px/1.75 "Noto Sans Thai","Tahoma","Segoe UI",sans-serif}
.settings-current-list{margin-top:12px;border-top:1px solid var(--line);padding-top:12px;color:#506b67}
.settings-current-list summary{cursor:pointer;font-weight:800;color:#0f766e}
.settings-current-list .settings-exclusion-list{margin-top:10px}
.settings-save-card{grid-column:1/-1!important;display:flex;align-items:center;justify-content:space-between;gap:18px;background:linear-gradient(135deg,#effaf8,#f8fcfb);border-color:#bfe0db}
.settings-save-copy{display:grid;gap:4px}.settings-save-copy strong{font-size:18px;color:#0f5f58}.settings-save-copy span{font-size:12px;color:var(--muted)}
.settings-save-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:760px){.settings-threshold-editor{grid-template-columns:1fr}.settings-threshold-editor label{align-items:flex-start}.settings-save-card{display:grid}.settings-save-actions{justify-content:stretch}.settings-save-actions .btn{flex:1}.settings-edit-card{padding:18px}}


/* v1.10.25 - selectable comparison period */
.comparison-hero-main{min-width:0;flex:1}
.comparison-range-picker{
  display:flex;
  align-items:flex-end;
  gap:10px;
  flex-wrap:wrap;
  margin-top:16px;
  padding:12px;
  border-radius:16px;
  background:rgba(255,255,255,.11);
  border:1px solid rgba(255,255,255,.18);
}
.comparison-range-picker label{display:grid;gap:5px;min-width:220px;flex:1}
.comparison-range-picker label>span{font-size:12px;font-weight:900;color:#dcfffb;letter-spacing:.02em}
.comparison-range-picker select{
  width:100%;
  min-height:46px;
  padding:9px 36px 9px 12px;
  border:1px solid rgba(255,255,255,.42);
  border-radius:12px;
  background:#fff;
  color:#173d38;
  font-size:15px;
  font-weight:800;
  outline:none;
}
.comparison-range-picker select:focus{border-color:#8de8de;box-shadow:0 0 0 4px rgba(141,232,222,.22)}
.comparison-range-arrow{font-size:24px;font-weight:900;line-height:46px;color:#dffaf6}
.comparison-apply-btn{min-height:46px;padding:10px 18px;background:#fff;color:#0f766e;border:0;white-space:nowrap}
.comparison-apply-btn:hover{background:#eafffb}
.comparison-apply-btn:disabled,.comparison-range-picker select:disabled{opacity:.62;cursor:not-allowed}
@media(max-width:1100px){
  .comparison-hero{align-items:flex-start}
  .comparison-range-picker label{min-width:180px}
  .comparison-executive-btn{flex:0 0 auto}
}
@media(max-width:760px){
  .comparison-range-picker{display:grid;grid-template-columns:1fr;padding:10px}
  .comparison-range-picker label{min-width:0}
  .comparison-range-arrow{display:none}
  .comparison-apply-btn{width:100%}
}


/* v1.10.27 – UX Polish & Navigation Memory */
.breadcrumb{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:5px;color:#78908d;font-size:12px;min-height:18px}.breadcrumb button{border:0;background:transparent;padding:0;color:#0f766e;font:inherit;font-weight:750;cursor:pointer}.breadcrumb button:hover{text-decoration:underline}.breadcrumb span[aria-current="page"]{max-width:min(520px,58vw);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.global-loading{position:fixed;inset:0;z-index:300;background:rgba(244,247,247,.76);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px}.global-loading.hidden{display:none!important}.global-loading-card{min-width:min(330px,88vw);background:#fff;border:1px solid #cfe3e0;border-radius:22px;padding:25px 28px;display:grid;justify-items:center;gap:8px;box-shadow:0 20px 60px rgba(8,62,58,.18);color:#173d38;text-align:center}.global-loading-card strong{font-size:19px}.global-loading-card small{color:#78908d}.loading-spinner{width:42px;height:42px;border-radius:50%;border:4px solid #dcefeb;border-top-color:#0f766e;animation:nbccSpin .8s linear infinite}@keyframes nbccSpin{to{transform:rotate(360deg)}}
.toast{font-size:15px;font-weight:800;max-width:min(480px,calc(100vw - 28px));border:1px solid rgba(255,255,255,.18);box-shadow:0 14px 34px rgba(8,62,58,.24)}.nav-item.active{background:rgba(255,255,255,.15);box-shadow:inset 4px 0 0 #7fe0d5}.nav-item .nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:680px){.breadcrumb{font-size:11px}.breadcrumb span[aria-current="page"]{max-width:62vw}.global-loading-card strong{font-size:17px}}


/* v1.10.29 - Fiscal quarter information on public dashboard */
.guest-latest-report{grid-template-columns:auto minmax(0,1fr) auto auto}
.guest-quarter-info{display:flex;align-items:center;gap:8px;padding:9px 14px;border-radius:14px;background:#fff;border:1px solid #cfe5e1;box-shadow:0 4px 12px rgba(12,57,53,.04);white-space:nowrap}
.guest-quarter-info small{font-size:11px;color:#738a87;margin:0}
.guest-quarter-info strong{font-size:18px;color:#0f766e;line-height:1}
.guest-quarter-info span{font-size:12px;color:#4f6e6a;font-weight:800}
@media(max-width:980px){.guest-latest-report{grid-template-columns:auto minmax(0,1fr) auto}.guest-quarter-info{grid-column:2/3;width:max-content;max-width:100%}.guest-readonly-badge{grid-column:3/4;grid-row:1/3}}
@media(max-width:760px){.guest-latest-report{grid-template-columns:auto 1fr}.guest-quarter-info{grid-column:1/-1;width:100%;justify-content:center;white-space:normal;flex-wrap:wrap}.guest-latest-report .guest-readonly-badge{grid-column:1/-1;grid-row:auto;width:max-content}.guest-quarter-info strong{font-size:17px}}


/* v1.10.29 - Quarterly Target Panel */
.donut-wrap{gap:22px}
.quarter-target-panel{
  flex:1.45;
  min-width:250px;
  padding:14px 15px;
  border:1px solid #d7e9e5;
  border-radius:16px;
  background:linear-gradient(180deg,#fbfefd,#f4fbf9);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
.quarter-target-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:9px}
.quarter-target-head>div:first-child{display:grid;gap:3px}
.quarter-target-head strong{font-size:16px;color:#164b46}
.quarter-target-head small{font-size:11px;color:#68807d}
.quarter-target-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px;color:#58716d;margin:4px 0 6px}
.quarter-target-meta b{font-size:13px;color:#0f766e}
.quarter-current-rate{text-align:right;white-space:nowrap}
.quarter-current-rate span{display:block;font-size:10px;color:#6d8581}
.quarter-current-rate b{display:block;font-size:22px;color:#0f766e;line-height:1.15;font-variant-numeric:tabular-nums}
.quarter-target-summary{font-size:11px;font-weight:850;border-radius:10px;padding:7px 9px;margin-bottom:9px}
.quarter-target-summary.on-target{background:#e8f8ef;color:#087443}
.quarter-target-summary.below-target{background:#fff4e6;color:#a85a00}
.quarter-target-list{display:grid;gap:7px}
.quarter-target-row{padding:7px 8px;border:1px solid #e1ece9;border-radius:10px;background:#fff}
.quarter-target-row.active{border-color:#e7bd48;box-shadow:0 0 0 2px rgba(231,189,72,.12)}
.quarter-target-label{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;font-weight:800;color:#365b57}
.quarter-target-label strong{font-size:12px;color:#173f3b}
.quarter-target-label em{font-style:normal;font-size:9px;padding:2px 5px;border-radius:999px;background:#fff2c8;color:#8a5b00;margin-left:4px}
.quarter-target-track{height:6px;border-radius:999px;background:#e7efed;overflow:hidden;margin:5px 0}
.quarter-target-track i{display:block;height:100%;border-radius:999px;background:#18a38f}
.quarter-target-row.pending .quarter-target-track i{background:#e4a31e}
.quarter-target-status{font-size:9.5px;font-weight:750;color:#6c817e}
.quarter-target-row.passed .quarter-target-status{color:#168653}
.quarter-target-row.pending .quarter-target-status{color:#a96800}
.quarter-target-empty{padding:24px;text-align:center;color:#718682;font-size:12px}
@media(max-width:1250px){
  .donut-wrap{flex-wrap:wrap}
  .quarter-target-panel{flex-basis:100%;min-width:0}
}
@media(max-width:680px){
  .quarter-target-panel{width:100%;padding:13px}
  .quarter-target-head strong{font-size:15px}
  .quarter-current-rate b{font-size:20px}
}


/* v1.10.30 - Editable quarterly targets */
.quarter-target-head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px}
.quarter-target-edit-btn{border:1px solid #c7e2dd;background:#fff;color:#0f766e;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap}
.quarter-target-edit-btn:hover{background:#eaf8f6;border-color:#79bcb5}
.settings-quarter-editor{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}
.quarter-setting-card{display:grid;gap:10px;padding:14px;border:1px solid #dce9e7;border-radius:14px;background:#f8fcfb}
.quarter-setting-card>strong{font-size:15px;color:#164b46}
.quarter-setting-field{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:8px;align-items:center;font-weight:800}
.quarter-setting-field span{color:#58716d}
.quarter-setting-field input{width:100%;border:1px solid #cfe0dd;border-radius:10px;padding:10px 11px;font:inherit;font-weight:900;color:#0f766e;background:#fff}
.quarter-setting-field b{color:#58716d}
.quarter-target-modal-card{width:min(700px,100%)}
.quarter-target-modal-form{margin-top:18px}
.quarter-target-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.quarter-modal-card{display:grid;gap:10px;padding:14px;border:1px solid #dce9e7;border-radius:14px;background:#f8fcfb}
.quarter-modal-card>strong{font-size:15px;color:#164b46}
.quarter-modal-field{display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:8px;font-weight:850}
.quarter-modal-field>div{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}
.quarter-modal-field b{font-size:18px;color:#0f766e}
.quarter-target-modal-alert{margin-top:12px;padding:10px 12px;border-radius:10px;background:#fff2f0;border:1px solid #ffd2cc;min-height:0}
@media(max-width:760px){.quarter-target-head{grid-template-columns:1fr auto}.quarter-target-edit-btn{grid-column:1/-1;width:100%}.settings-quarter-editor,.quarter-target-modal-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.settings-quarter-editor,.quarter-target-modal-grid{grid-template-columns:1fr}}


/* v1.10.31 - full sidebar labels without truncation */
.sidebar nav{gap:8px}
.nav-item{display:flex;align-items:flex-start;gap:10px;min-height:48px}
.nav-item .nav-icon{flex:0 0 18px;line-height:1.2;margin-top:1px}
.nav-item .nav-label{display:block;flex:1;min-width:0;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.35;word-break:keep-all}
.nav-item .nav-badge{margin-left:auto;align-self:center;flex:0 0 auto}
@media (max-width:1000px){.nav-item .nav-label{white-space:normal!important}}


/* v1.10.32 - wider & larger sidebar for easier reading */
@media (min-width:1001px){
  .app-shell{grid-template-columns:290px 1fr}
  .sidebar{padding:20px 16px}
  .sidebar-brand{padding-left:6px;padding-right:6px}
  .sidebar-brand-logo{width:58px;height:58px;flex-basis:58px}
  .sidebar-brand-text strong{font-size:18px}
  .sidebar-brand-text small{font-size:13.5px}
  .sidebar nav{gap:9px}
  .nav-item{padding:13px 15px;min-height:52px;border-radius:12px;font-size:15.5px;font-weight:800}
  .nav-item .nav-icon{flex-basis:20px;font-size:17px}
  .nav-item .nav-label{font-size:15.5px;line-height:1.42}
  .nav-item .nav-badge{font-size:12px;min-width:28px;min-height:28px;padding:5px 8px}
  .user-chip{padding:14px 14px}
  .user-chip span{font-size:15px}
  .user-chip small{font-size:12px}
  .app-version{font-size:12px}
}
@media (max-width:1000px){
  .sidebar{width:280px;left:-300px}
  .nav-item{font-size:15px}
  .nav-item .nav-label{font-size:15px}
}


/* v1.10.35 - hidden remark alert + popup modal */
.table-scroll table{min-width:1340px}
.remark-cell,.auth-note-column{min-width:150px;width:165px;text-align:center}
.remark-alert-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:118px;border-radius:999px;padding:9px 12px;font:inherit;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap;transition:transform .18s ease,box-shadow .18s ease}
.remark-alert-btn.has-remark{border:1px solid #f6b7b1;background:#fff1f0;color:#b42318;box-shadow:0 4px 12px rgba(180,35,24,.10);animation:remarkPulse 1.7s ease-in-out infinite}
.remark-alert-btn.has-remark:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(180,35,24,.17)}
.remark-alert-btn.add-remark{border:1px solid #b9ddd8;background:#f0faf8;color:#0f766e}
.remark-alert-btn.add-remark:hover{background:#e5f6f3}
.remark-alert-dot{width:8px;height:8px;border-radius:50%;background:#e5484d;box-shadow:0 0 0 4px rgba(229,72,77,.12)}
.remark-none{color:#9aabaa;font-weight:800}
@keyframes remarkPulse{0%,100%{box-shadow:0 0 0 0 rgba(229,72,77,.22),0 4px 12px rgba(180,35,24,.10)}50%{box-shadow:0 0 0 7px rgba(229,72,77,0),0 7px 18px rgba(180,35,24,.18)}}
@media (prefers-reduced-motion:reduce){.remark-alert-btn.has-remark{animation:none}}
.project-remark-modal-card{width:min(720px,calc(100vw - 28px))}
.project-remark-modal-body{display:grid;gap:12px}
.project-remark-project-head{display:grid;gap:4px;padding:14px 16px;border:1px solid #d7e9e6;border-radius:14px;background:#f4fbfa}
.project-remark-project-head strong{font-size:20px;line-height:1.45;color:#143f3b}
.project-remark-project-head span{font-size:12px;color:#6c817e}
.project-remark-modal-textarea{width:100%;min-height:180px;resize:vertical;font-size:16px;line-height:1.65;padding:14px}
.project-remark-readonly-box{min-height:150px;padding:18px;border:1px solid #dbe8e6;border-radius:14px;background:#fbfdfd;color:#233f3c;font-size:17px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.project-remark-modal-audit{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:11px;background:#f7faf9;color:#6b7e7c;font-size:12px;line-height:1.5}
@media(max-width:760px){.remark-cell,.auth-note-column{min-width:135px;width:145px}.remark-alert-btn{min-width:104px;padding:8px 9px;font-size:10px}.project-remark-project-head strong{font-size:18px}.project-remark-modal-textarea{min-height:220px;font-size:15px}}


/* v1.10.36 - subproject remark alert */
.subproject-meta-with-remark{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.subproject-remark-alert{margin-left:auto;flex:0 0 auto}
@media(max-width:760px){.subproject-remark-alert{margin-left:0;width:100%;justify-content:center}}


/* v1.10.37 - ADMIN Backup / Restore */
.backup-hero{background:linear-gradient(135deg,#f2fbf9,#f7fbff)}
.backup-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}
.backup-card{padding:22px}
.backup-card-head{display:flex;gap:13px;align-items:flex-start;margin-bottom:18px}
.backup-card-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#edf8f6;font-size:24px;flex:0 0 48px;border:1px solid #d4e9e5}
.backup-card-head h3{font-size:21px;margin:0;color:#153f3b}.backup-card-head p{margin:5px 0 0;color:#6a817e;font-size:13px;line-height:1.55}
.backup-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.backup-action-card{border:1px solid #d6e7e4;background:#f9fcfb;border-radius:16px;padding:18px;text-align:left;cursor:pointer;display:grid;gap:5px;color:#173f3b;transition:.18s}
.backup-action-card:hover{transform:translateY(-1px);border-color:#82c7bf;box-shadow:0 8px 18px rgba(15,118,110,.08)}
.backup-action-card.primary{background:linear-gradient(135deg,#e9f8f5,#f7fdfc);border-color:#aad9d3}.backup-action-card>span{font-size:25px}.backup-action-card strong{font-size:17px}.backup-action-card small{color:#6b817e;line-height:1.45}
.backup-action-card:disabled{opacity:.55;cursor:wait;transform:none}
.backup-status{margin-top:14px;padding:13px 15px;border-radius:13px;background:#f3f8f7;border:1px solid #dfeae8;display:grid;gap:4px}.backup-status strong{color:#176b63}.backup-status span{font-size:12px;color:#6b817e;line-height:1.5}
.backup-scope{margin-top:18px;border-top:1px solid #e3ecea;padding-top:15px}.backup-scope h4{margin:0 0 9px;font-size:13px;color:#526d69}.backup-scope-chips{display:flex;gap:7px;flex-wrap:wrap}.backup-scope-chips span{padding:6px 9px;border-radius:999px;background:#f1f7f6;color:#42635f;font-size:11px;font-weight:800;border:1px solid #dce9e7}
.backup-file-drop{min-height:132px;border:2px dashed #b7d6d1;border-radius:17px;background:#f9fcfb;display:grid;place-items:center;align-content:center;gap:5px;text-align:center;cursor:pointer;padding:18px}.backup-file-drop:hover{background:#f1faf8;border-color:#6fb9b0}.backup-file-icon{font-size:32px}.backup-file-drop strong{font-size:15px}.backup-file-drop small{font-size:12px;color:#718783}
.restore-preview{margin-top:13px;border:1px solid #dce9e7;border-radius:14px;padding:14px;background:#fbfdfd}.restore-preview.empty{min-height:64px;display:grid;place-items:center;color:#829390}.restore-preview.error{display:grid;gap:5px;background:#fff6f5;border-color:#facbc7;color:#a42c22}.restore-preview-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:11px}.restore-preview-head strong{color:#087a59}.restore-preview-head span{font-size:10px;font-weight:900;padding:5px 8px;border-radius:999px;background:#e8f5f2;color:#176b63}.restore-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.restore-preview-grid>div{padding:9px 10px;border-radius:10px;background:#f3f8f7}.restore-preview-grid span,.restore-preview-grid b{display:block}.restore-preview-grid span{font-size:10px;color:#718783;margin-bottom:3px}.restore-preview-grid b{font-size:12px;color:#264e49}.restore-preview-note{margin-top:10px;padding:9px 10px;border-radius:9px;background:#fff8e7;color:#8a6508;font-size:11px;line-height:1.5}
.restore-confirm-box{display:grid;gap:11px;margin-top:13px;padding:13px;border:1px solid #f0d7a3;background:#fffaf0;border-radius:13px}.restore-confirm-box>label:first-child{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:#765712;line-height:1.5}.restore-confirm-box input[type=checkbox]{margin-top:3px}.restore-word-label{display:grid;gap:6px;font-size:12px;color:#765712}.restore-word-label input{border:1px solid #e7c982;border-radius:10px;padding:10px 11px;font:inherit;font-weight:900;text-transform:uppercase;background:#fff}.backup-restore-btn{width:100%;margin-top:12px;min-height:45px;background:#b42318;color:#fff}.backup-restore-btn:disabled{opacity:.4;cursor:not-allowed}.backup-safety-note{margin-top:12px;padding:10px 12px;border-radius:11px;background:#eef7ff;color:#315b7d;font-size:11px;line-height:1.5;border:1px solid #d2e5f5}
.backup-warning-card{display:flex;gap:14px;align-items:flex-start;margin-top:16px;background:#fff9ed;border-color:#f2dfb3}.backup-warning-icon{font-size:27px}.backup-warning-card h3{margin:0 0 5px;font-size:16px;color:#765712}.backup-warning-card p{margin:0;color:#765712;line-height:1.65;font-size:12px}
@media(max-width:980px){.backup-layout{grid-template-columns:1fr}}
@media(max-width:600px){.backup-mode-grid,.restore-preview-grid{grid-template-columns:1fr}.backup-card{padding:16px}}


/* v1.10.38 - developer credit on login screen */
.login-info{display:flex;flex-direction:column}
.login-developer-credit{margin-top:auto;padding-top:22px;border-top:1px solid rgba(255,255,255,.24);text-align:center;color:#fff}
.login-developer-credit span{display:block;font-size:14px;opacity:.78;letter-spacing:.15px}
.login-developer-credit strong{display:block;margin-top:5px;font-size:20px;font-weight:900;letter-spacing:.15px;text-shadow:0 1px 3px rgba(0,0,0,.12)}
@media(max-width:1000px){.login-developer-credit{display:none}}
