:root{--nav:#102843;--nav2:#0a1e34;--active:#234464;--bg:#f4f6fa;--card:#fff;--line:#e5e9ef;--text:#172437;--muted:#758396;--blue:#3377cc;--teal:#10998e;--red:#de554d;--amber:#e59b24;--green:#16866f;--purple:#7256c7;--shadow:0 6px 24px rgba(16,40,67,.06)}*{box-sizing:border-box}body{margin:0;font:14px/1.45 Inter,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.shell{min-height:100vh}.sidebar{position:fixed;z-index:30;inset:0 auto 0 0;width:270px;background:linear-gradient(180deg,var(--nav),var(--nav2));color:#dce7f1;padding:18px 14px;display:flex;flex-direction:column}.brand{height:62px;display:flex;align-items:center;gap:12px;padding:0 7px 15px;border-bottom:1px solid rgba(255,255,255,.07)}.logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#2dd4bf,#38bdf8);color:#0c3347;display:grid;place-items:center;font-weight:900}.brand strong,.brand span{display:block}.brand strong{font-size:12px;letter-spacing:.8px;color:#fff}.brand span{font-size:9px;color:#88a2b7;margin-top:3px}.workspace{display:flex;align-items:center;gap:9px;margin:13px 2px 5px;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(255,255,255,.035)}.workspace>span{width:28px;height:28px;border-radius:8px;background:#204561;display:grid;place-items:center}.workspace b,.workspace small{display:block}.workspace b{font-size:10px}.workspace small{font-size:8px;color:#7e9ab0}.nav-scroll{overflow:auto;padding:5px 0 15px;max-height:calc(100vh - 250px)}.group-title{font-size:8px;letter-spacing:1.3px;color:#52728e;font-weight:900;padding:13px 11px 4px}.menu-btn{border:0;background:transparent;color:#aebfd0;width:100%;padding:9px 10px;border-radius:9px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;font-size:10px;margin:1px 0}.menu-btn:hover{background:rgba(255,255,255,.05);color:#fff}.menu-btn.active{background:linear-gradient(90deg,rgba(20,184,166,.22),rgba(58,130,180,.08));color:#fff;box-shadow:inset 3px 0 #2dd4bf}.nav-ico{width:19px;text-align:center;color:#78a4bd}.nav-badge{margin-left:auto;background:#d94c51;color:#fff;border-radius:999px;padding:1px 6px;font-size:8px}.user{margin-top:auto;border-top:1px solid rgba(255,255,255,.08);padding:16px 7px 8px;display:flex;gap:9px;align-items:center}.avatar{width:36px;height:36px;border-radius:10px;background:#edf4fb;color:#183b5b;display:grid;place-items:center;font-size:9px;font-weight:900}.user b,.user small{display:block}.user b{font-size:10px;color:#fff}.user small{font-size:8px;color:#8ba5ba}.logout{border:0;background:transparent;color:#809db5;text-align:left;padding:7px;cursor:pointer;font-size:9px}.main{margin-left:270px;min-height:100vh}.topbar{height:76px;position:sticky;top:0;z-index:20;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 26px}.top-left{display:flex;align-items:center;gap:10px}.mobile{display:none}.org{font-size:9px;letter-spacing:1.4px;color:#8a96a4;font-weight:900}.topbar h1{margin:3px 0 0;font-size:21px;font-weight:650}.actions{display:flex;align-items:center;gap:8px}.search-top{width:260px;height:36px;border:1px solid var(--line);background:#f8fafc;border-radius:10px;display:flex;align-items:center;gap:6px;padding:0 9px}.search-top input{border:0;outline:0;background:transparent;width:100%;font-size:9px}.email{font-size:9px;color:#788696;max-width:170px;overflow:hidden;text-overflow:ellipsis}.actions button,.btn{height:36px;border-radius:9px;padding:0 11px;cursor:pointer;font-size:9px;font-weight:800}.white,.btn{border:1px solid var(--line);background:#fff;color:#274158}.primary,.btn.primary{border:0;background:linear-gradient(135deg,#123658,#0e8d87);color:#fff}.bell{width:38px;padding:0!important;border:1px solid var(--line);background:#fff;position:relative}.bell i{position:absolute;right:-4px;top:-5px;background:#df4a3d;color:#fff;border-radius:50%;width:18px;height:18px;display:grid;place-items:center;font-style:normal;font-size:8px}.content{padding:24px 28px 60px;max-width:1700px;margin:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:15px;gap:20px}.eyebrow{font-size:8px;letter-spacing:1.4px;color:#2770ad;font-weight:900}.page-head h2{font-size:22px;margin:5px 0 3px}.page-head p{font-size:10px;color:var(--muted);margin:0}.head-actions{display:flex;gap:7px}.hero{border-radius:16px;padding:23px 25px;color:#fff;background:linear-gradient(115deg,#102947 0%,#174d81 57%,#128a83 100%);position:relative;overflow:hidden}.hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;border:1px solid rgba(255,255,255,.1);right:-100px;top:-145px}.hero h2{font-size:23px;margin:7px 0 5px}.hero p{font-size:10px;color:#d2e5ee}.hero-row{display:flex;justify-content:space-between;align-items:center;gap:18px}.hero-stats{display:flex;gap:25px;z-index:2}.hero-stats strong{display:block;font-size:22px;text-align:right}.hero-stats span{font-size:8px;color:#c4dbe7}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px;border-top:3px solid var(--c,var(--blue));box-shadow:0 2px 9px rgba(16,40,67,.025)}.kpi label{font-size:8px;color:#8390a0;font-weight:800}.kpi strong{display:block;font-size:21px;margin:7px 0 2px}.kpi small{font-size:8px;color:#8c97a4}.grid{display:grid;gap:12px;margin-top:12px}.cols-2{grid-template-columns:1fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.panel-pad{padding:18px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:13px}.panel-head h3{font-size:13px;margin:0}.panel-head p{font-size:8px;color:var(--muted);margin:3px 0}.toolbar{display:flex;gap:8px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}.toolbar input,.toolbar select,.field input,.field select,.field textarea{border:1px solid #dfe4ea;background:#fff;border-radius:8px;padding:8px;color:var(--text);font-size:9px}.toolbar input{flex:1;min-width:150px}.toolbar select{max-width:280px}.table-card{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;box-shadow:var(--shadow)}.table-title{padding:17px 18px 12px}.table-title h2{font-size:16px;margin:0}.table-title p{font-size:9px;color:var(--muted);margin:3px 0}.table-scroll{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:850px}.data-table th{text-align:left;padding:10px 12px;background:#fafbfd;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:8px;color:#7e8b99;letter-spacing:.35px}.data-table td{padding:11px 12px;border-bottom:1px solid #edf0f3;font-size:9px;vertical-align:middle}.data-table tbody tr:hover{background:#fbfcfe}.code{font-weight:800}.muted{font-size:8px;color:#8c98a5;margin-top:3px}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 7px;font-size:8px;background:#eaf3fd;color:#286ca8}.pill.good{background:#e8f8f2;color:#18775f}.pill.warn{background:#fff6e3;color:#946208}.pill.danger{background:#fff0f0;color:#b8433f}.pill.purple{background:#f0ecff;color:#6445b3}.mini-bar{width:100px;height:5px;background:#edf0f4;border-radius:6px;overflow:hidden;margin:3px 0}.mini-bar i{height:100%;display:block;background:linear-gradient(90deg,#3979c7,#18a28f)}.counters{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:12px 0}.counter{background:#fff;border:1px solid var(--line);border-radius:10px;padding:13px}.counter small{font-size:8px;color:#8b97a4}.counter strong{display:block;font-size:17px;margin-top:4px}.timeline{border-left:1px solid var(--line);margin-left:6px;padding-left:15px}.timeline-item{position:relative;margin-bottom:14px}.timeline-item:before{content:"";position:absolute;left:-19px;top:3px;width:7px;height:7px;border-radius:50%;background:#18a28f;box-shadow:0 0 0 3px #e5f8f4}.timeline-item b{font-size:9px}.timeline-item p{font-size:8px;color:var(--muted);margin:2px 0}.kanban{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.kan-col{background:#f7f9fc;border:1px solid var(--line);border-radius:11px;padding:10px;min-height:330px}.kan-head{display:flex;justify-content:space-between;font-size:9px;font-weight:800}.kan-card{background:#fff;border:1px solid var(--line);border-radius:9px;padding:10px;margin-top:8px}.kan-card b{font-size:9px}.kan-card p{font-size:8px;color:var(--muted)}.empty{padding:42px;text-align:center;color:#8996a5;font-size:9px}.empty strong{display:block;color:#53677a;font-size:11px;margin-bottom:4px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.field{display:grid;gap:5px}.field.full{grid-column:1/-1}.field label{font-size:8px;color:#657486;font-weight:800}.field textarea{min-height:80px;resize:vertical}.modal{position:fixed;z-index:60;inset:0;background:rgba(7,18,31,.42);display:none;align-items:center;justify-content:center}.modal.open{display:flex}.modal-card{width:min(700px,92vw);max-height:88vh;overflow:auto;background:#fff;border-radius:15px;padding:20px;box-shadow:0 24px 70px rgba(0,0,0,.24)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:15px}.modal-head small{font-size:8px;color:#2e7caa;font-weight:900}.modal-head h3{margin:2px 0 0}.modal-head button{border:0;background:transparent;font-size:22px}.form-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.toast-wrap{position:fixed;z-index:80;right:18px;bottom:18px;display:grid;gap:7px}.toast{background:#102843;color:#fff;padding:10px 13px;border-radius:9px;font-size:9px;box-shadow:var(--shadow)}.toast.err{background:#8b2e36}.boot-error{position:fixed;z-index:100;top:0;left:0;right:0;background:#8b2e36;color:#fff;padding:10px;text-align:center}.dropzone{border:1.5px dashed #c9d4df;border-radius:12px;background:#fbfcfe;padding:25px;text-align:center}.dropzone input{margin-top:10px}.metric-list{display:grid;gap:10px}.metric-line{display:grid;grid-template-columns:160px 1fr 55px;gap:10px;align-items:center;font-size:8px}.metric-line .bar{height:7px;background:#edf1f5;border-radius:7px;overflow:hidden}.metric-line .bar i{display:block;height:100%;background:linear-gradient(90deg,#3477c8,#16a08e)}.skeleton{height:260px;border-radius:14px;background:linear-gradient(90deg,#f1f3f6,#fafbfc,#f1f3f6);background-size:200% 100%;animation:sk 1.4s infinite}@keyframes sk{to{background-position:-200% 0}}@media(max-width:1100px){.sidebar{width:225px}.main{margin-left:225px}.search-top,.email{display:none}.kpis,.counters{grid-template-columns:repeat(2,1fr)}.cols-2,.cols-3{grid-template-columns:1fr}.kanban{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.sidebar{transform:translateX(-100%);width:260px;transition:.2s}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.mobile{display:block;border:1px solid var(--line);background:#fff;border-radius:8px}.content{padding:15px}.topbar{padding:0 12px}.kpis,.counters,.kanban{grid-template-columns:1fr}.actions .white{display:none}.hero-row{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}
/* === PMS V46 READABILITY UPGRADE ===
   Increased typography for desktop/mobile while preserving current layout.
   Baseline: 15px body, 13px navigation, 12-13px metadata/table/form text.
*/
:root{--pms-font-base:15px;--pms-font-small:12px;--pms-font-ui:13px;--pms-font-title:24px}
body{font-size:var(--pms-font-base);line-height:1.55}
.brand strong{font-size:14px}.brand span{font-size:11px;line-height:1.35}
.workspace b{font-size:13px}.workspace small{font-size:11px}
.group-title{font-size:11px;letter-spacing:1.15px;padding-top:16px;padding-bottom:6px}
.menu-btn{font-size:13px;line-height:1.35;padding:10px 11px;min-height:40px}
.nav-ico{font-size:15px;width:21px}.nav-badge{font-size:10px;padding:2px 7px}
.user b{font-size:13px}.user small{font-size:11px}.avatar{font-size:11px}.logout{font-size:12px}
.org{font-size:11px}.topbar h1{font-size:23px}.search-top input{font-size:12px}.email{font-size:12px}
.actions button,.btn{font-size:12px;min-height:38px}.bell i{font-size:10px}
.eyebrow{font-size:11px}.page-head h2{font-size:25px}.page-head p{font-size:13px;line-height:1.5}
.hero h2{font-size:25px}.hero p{font-size:13px;line-height:1.5}.hero-stats span{font-size:11px}.hero-stats strong{font-size:24px}
.kpi label{font-size:11px}.kpi strong{font-size:23px}.kpi small{font-size:11px}
.panel-head h3{font-size:16px}.panel-head p{font-size:12px;line-height:1.45}
.toolbar input,.toolbar select,.field input,.field select,.field textarea{font-size:13px;line-height:1.4;padding:9px 10px}
.table-title h2{font-size:19px}.table-title p{font-size:12px}
.data-table th{font-size:11px;line-height:1.35;padding:11px 12px}.data-table td{font-size:12px;line-height:1.45;padding:12px}
.muted{font-size:11px;line-height:1.4}.pill{font-size:11px;padding:4px 8px}
.counter small{font-size:11px}.counter strong{font-size:20px}
.timeline-item b{font-size:13px}.timeline-item p{font-size:12px;line-height:1.45}
.kan-head{font-size:12px}.kan-card b{font-size:13px}.kan-card p{font-size:12px;line-height:1.45}
.empty{font-size:12px;line-height:1.5}.empty strong{font-size:14px}
.field label{font-size:12px}.modal-head small{font-size:11px}.modal-head h3{font-size:18px}.toast{font-size:12px;line-height:1.45}
.dropzone{font-size:13px}.metric-line{font-size:12px;grid-template-columns:180px 1fr 65px}
input::placeholder,textarea::placeholder{font-size:12px}
@media(max-width:1100px){body{font-size:14px}.menu-btn{font-size:12px}.data-table td{font-size:12px}}
@media(max-width:760px){body{font-size:14px}.page-head h2{font-size:22px}.topbar h1{font-size:20px}.menu-btn{font-size:13px}.data-table th{font-size:11px}.data-table td{font-size:12px}.metric-line{grid-template-columns:130px 1fr 50px}}

/* === PMS V46 ENTERPRISE UX FINAL === */
:root{--pms-font-base:17px;--pms-font-small:13px;--pms-font-ui:15px;--pms-font-title:28px}
body{font-size:17px;line-height:1.58}
.sidebar{width:292px}.main{margin-left:292px}.brand strong{font-size:16px}.brand span{font-size:13px}.workspace b{font-size:15px}.workspace small{font-size:13px}.group-title{font-size:13px;padding:18px 12px 7px}.menu-btn{font-size:15px;min-height:44px;padding:11px 12px}.nav-ico{font-size:17px}.user b{font-size:15px}.user small,.logout{font-size:13px}.org{font-size:13px}.topbar h1{font-size:26px}.search-top input,.email{font-size:14px}.actions button,.btn{font-size:14px;min-height:41px;padding:0 14px}.content{padding:28px 32px 70px}.eyebrow{font-size:13px}.page-head h2{font-size:29px}.page-head p{font-size:15px}.hero h2{font-size:29px}.hero p{font-size:15px}.hero-stats strong{font-size:28px}.hero-stats span{font-size:13px}.kpi{padding:18px}.kpi label{font-size:13px}.kpi strong{font-size:26px}.kpi small{font-size:13px}.panel-head h3{font-size:19px}.panel-head p{font-size:14px}.table-title h2{font-size:22px}.table-title p{font-size:14px}.data-table th{font-size:13px;padding:13px 14px}.data-table td{font-size:14px;padding:14px}.muted{font-size:13px}.pill{font-size:13px;padding:5px 9px}.toolbar input,.toolbar select,.field input,.field select,.field textarea{font-size:15px;padding:11px 12px}.field label{font-size:14px}.counter small{font-size:13px}.counter strong{font-size:23px}.timeline-item b{font-size:15px}.timeline-item p,.timeline-item small{font-size:13px}.kan-head{font-size:14px}.kan-card b{font-size:15px}.kan-card p{font-size:13px}.empty{font-size:14px}.empty strong{font-size:17px}.metric-line{font-size:14px;grid-template-columns:210px 1fr 90px}.toast{font-size:14px}.dropzone{font-size:15px}
.kpis-wide{margin-bottom:15px}.module-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 16px;margin-bottom:14px}.module-toolbar>div:first-child{display:grid;gap:6px;min-width:340px}.module-toolbar label{font-size:13px;font-weight:800;color:#68788b}.module-toolbar select{height:42px;border:1px solid var(--line);border-radius:9px;padding:0 12px;font-size:14px;background:#fff}.toolbar-note{font-size:13px;color:var(--muted)}
.segmented{display:inline-flex;background:#edf2f7;border-radius:10px;padding:4px;gap:4px}.seg-btn{border:0;background:transparent;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:800;color:#62758a;cursor:pointer}.seg-btn.active{background:#fff;color:#173a5d;box-shadow:0 2px 8px rgba(16,40,67,.12)}.progress-controls{display:grid;gap:12px;margin:14px 0}.filter-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.filter-tabs{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;font-size:13px;cursor:pointer}.chip.active{background:#163c60;color:#fff;border-color:#163c60}.filter-row select{height:39px;border:1px solid var(--line);border-radius:9px;padding:0 10px;font-size:14px}.view-switch{display:flex;gap:6px;margin-left:auto}
.starter{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:145px}.starter h3{font-size:20px;margin:4px 0}.starter p{font-size:14px;color:var(--muted);max-width:720px}.starter-icon{font-size:28px;color:var(--blue)}
.chart-bars{display:grid;gap:12px}.chart-row{display:grid;grid-template-columns:minmax(120px,210px) 1fr 120px;gap:12px;align-items:center;font-size:13px}.chart-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-row>div{height:12px;background:#edf1f5;border-radius:8px;overflow:hidden}.chart-row i{display:block;height:100%;background:linear-gradient(90deg,#3477c8,#16a08e);border-radius:8px}.chart-row b{text-align:right;font-size:13px}.person-line{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #edf0f3}.person-line:last-child{border-bottom:0}.avatar-sm{width:36px;height:36px;border-radius:10px;background:#eaf3fd;color:#286ca8;display:grid;place-items:center;font-weight:900;font-size:12px}.person-line b,.person-line small{display:block}.person-line b{font-size:14px}.person-line small{font-size:12px;color:var(--muted)}
.import-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.upload-icon{width:54px;height:54px;border-radius:16px;background:#e8f6f4;color:#0b8f84;display:grid;place-items:center;font-size:28px;margin:0 auto 12px}.import-steps{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:15px 0}.import-steps span{font-size:12px;background:#eef3f8;border-radius:999px;padding:6px 10px;color:#587087}.field-help{font-size:12px;color:var(--muted)}
.info-row{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f3;font-size:14px}.info-row:last-child{border-bottom:0}.info-row span small{display:block;color:var(--muted);font-size:12px}.settings-hero{display:flex;align-items:center;gap:16px;background:linear-gradient(115deg,#102947,#174d81);color:#fff;padding:20px;border-radius:15px;margin-bottom:14px}.settings-hero h2{font-size:24px;margin:0 0 4px}.settings-hero p{margin:0;color:#cfe0ed;font-size:14px}.company-mark{width:62px;height:62px;border-radius:16px;background:var(--brand);border:1px solid rgba(255,255,255,.28);display:grid;place-items:center;font-weight:900;font-size:20px}.tag-row{display:flex;gap:8px;margin-top:9px}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.settings-list{display:grid;gap:0}.settings-list>div{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid #edf0f3}.settings-list label{font-size:13px;color:var(--muted)}.settings-list b{font-size:14px}.brand-preview{display:flex;gap:12px;align-items:center}.brand-preview>span{width:52px;height:52px;border-radius:13px}.brand-preview p{margin:2px 0;font-size:13px;color:var(--muted)}.admin-role-grid{grid-template-columns:repeat(3,1fr)!important}.role-card strong{display:block;font-size:28px;color:#173a5d;margin:7px 0}.role-card p{font-size:13px;color:var(--muted);margin:0}.progress-big{height:11px;background:#edf1f5;border-radius:10px;overflow:hidden;margin-bottom:16px}.progress-big i{display:block;height:100%;background:linear-gradient(90deg,#3477c8,#16a08e)}
.supplier-explain{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:14px 0}.supplier-explain>div{background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:15px}.supplier-explain b{font-size:15px}.supplier-explain p{font-size:13px;color:var(--muted);margin:5px 0}.supplier-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.supplier-head{display:flex;align-items:center;gap:11px}.supplier-head>div:nth-child(2){flex:1}.supplier-head h3{font-size:17px;margin:0}.supplier-head p{font-size:12px;color:var(--muted);margin:3px 0}.supplier-logo{width:44px;height:44px;border-radius:12px;background:#eaf3fd;color:#286ca8;display:grid;place-items:center;font-weight:900}.supplier-metrics{display:flex;gap:16px;margin:14px 0;padding:12px;background:#f7f9fc;border-radius:10px}.supplier-metrics span{font-size:13px}.supplier-metrics b{font-size:18px;margin-right:4px}.member-stack{display:grid}
@media(max-width:1200px){.sidebar{width:250px}.main{margin-left:250px}.settings-grid,.supplier-grid,.import-grid{grid-template-columns:1fr}.supplier-explain{grid-template-columns:1fr}.admin-role-grid{grid-template-columns:repeat(2,1fr)!important}.module-toolbar{align-items:stretch;flex-direction:column}.module-toolbar>div:first-child{min-width:0}.chart-row{grid-template-columns:140px 1fr 90px}}
@media(max-width:760px){body{font-size:16px}.sidebar{width:280px}.main{margin-left:0}.menu-btn{font-size:15px}.content{padding:16px}.page-head h2{font-size:25px}.kpi strong{font-size:23px}.data-table th{font-size:12px}.data-table td{font-size:13px}.settings-grid,.supplier-grid,.import-grid{grid-template-columns:1fr}.admin-role-grid{grid-template-columns:1fr!important}.chart-row{grid-template-columns:100px 1fr 70px}.filter-row{align-items:stretch}.view-switch{margin-left:0}.metric-line{grid-template-columns:130px 1fr 62px}}

/* V46 source-workbook UX */
.modal, .modal input, .modal select, .modal textarea, .modal button{font-size:16px!important}.field label{font-size:15px!important;font-weight:700}.field-help{font-size:14px!important}.dropzone b{font-size:20px!important}.dropzone p,.timeline-item p{font-size:15px!important}

.modal.show,.modal.open{display:flex!important}

/* === V46 OVERVIEW REFERENCE + WORKING NOTIFICATIONS === */
.overview-hero{min-height:300px;border-radius:22px;padding:42px;color:#fff;background:linear-gradient(115deg,#102947 0%,#173f72 58%,#117c7b 100%);display:flex;align-items:center;justify-content:space-between;gap:30px;overflow:hidden;position:relative}.overview-hero:after{content:"";position:absolute;width:410px;height:410px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-90px;top:-180px}.overview-copy{position:relative;z-index:2;max-width:760px}.overview-kicker{font-size:13px;letter-spacing:2px;font-weight:900;color:#9cc7ef}.overview-copy>p{font-size:15px;margin:28px 0 4px}.overview-copy h2{font-size:34px;line-height:1.2;margin:0 0 13px;font-weight:600}.overview-copy>span{font-size:14px;color:#c7dced}.overview-actions{display:flex;gap:10px;margin-top:28px}.overview-light{background:#fff!important;color:#173552!important}.health-ring{position:relative;z-index:2;min-width:260px;text-align:center}.health-ring>div{width:150px;height:150px;margin:auto;border-radius:50%;display:grid;place-content:center;background:radial-gradient(circle,#15395f 55%,transparent 57%),conic-gradient(#55ddb0 calc(var(--score)*1%),rgba(255,255,255,.14) 0)}.health-ring strong{font-size:42px;line-height:1}.health-ring small{font-size:10px;margin-top:8px}.health-ring>b{display:block;font-size:16px;margin-top:15px}.health-ring>span{font-size:12px;color:#c9dde7}.overview-kpis{grid-template-columns:repeat(5,1fr);margin:20px 0}.overview-main{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(340px,.9fr);gap:20px}.portfolio-panel,.priority-panel,.finance-panel,.quick-panel{padding:24px}.portfolio-panel .panel-head h3,.priority-panel .panel-head h3,.finance-panel .panel-head h3,.quick-panel .panel-head h3{font-size:21px}.link-btn{border:0;background:none;color:#235b96;font-weight:800;cursor:pointer}.project-health-row{width:100%;display:grid;grid-template-columns:9px minmax(250px,1.6fr) minmax(190px,1fr) 90px 90px;gap:15px;align-items:center;border:0;border-top:1px solid var(--line);background:#fff;padding:17px 3px;text-align:left;cursor:pointer}.project-health-row:hover{background:#fafcfe}.health-mark{width:8px;height:40px;border-radius:6px;background:#31af89}.project-desc b,.project-desc small,.health-score b,.health-score small,.warning-score b,.warning-score small{display:block}.project-desc b{font-size:14px}.project-desc small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-cell b{font-size:13px}.progress-cell i{height:6px;display:block;background:#edf1f5;border-radius:6px;margin-top:7px}.progress-cell em{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#3377cc,#10998e)}.health-score b,.warning-score b{font-size:20px}.health-score small,.warning-score small{font-size:11px;color:var(--muted)}.warning-score b{color:#b9792d}.priority-count{background:#fff4df;border-radius:9px;padding:8px 11px;color:#966112}.priority-row{display:grid;grid-template-columns:12px 1fr auto;gap:10px;align-items:center;border-top:1px solid var(--line);padding:14px 0}.priority-row>i{width:9px;height:9px;border-radius:50%;background:#e7a62e}.priority-row>i.danger{background:#e3544a}.priority-row span b,.priority-row span small{display:block}.priority-row span b{font-size:13px;line-height:1.35}.priority-row span small{font-size:11px;color:var(--muted);margin-top:3px}.priority-row em{font-size:10px;font-style:normal;background:#f3f5f8;border-radius:999px;padding:5px 8px}.overview-bottom{display:grid;grid-template-columns:1.7fr 1fr;gap:20px;margin-top:20px}.finance-chain{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.finance-chain>div{padding:18px;border-right:1px solid var(--line)}.finance-chain>div:last-child{border-right:0}.finance-chain label,.finance-chain strong,.finance-chain span{display:block}.finance-chain label{font-size:11px;color:var(--muted)}.finance-chain strong{font-size:19px;margin:13px 0 3px}.finance-chain span{font-size:11px}.finance-chain i{display:block;height:5px;background:linear-gradient(90deg,#3377cc,#10998e);margin-top:12px;border-radius:5px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.quick-grid button{border:1px solid var(--line);background:#fbfcfe;border-radius:12px;padding:14px;display:flex;gap:12px;text-align:left;cursor:pointer}.quick-grid button:hover{background:#f2f7fb}.quick-grid button>b{width:34px;height:34px;border-radius:9px;background:#eaf2fb;display:grid;place-items:center;color:#3377cc;font-size:17px}.quick-grid span{font-size:13px;font-weight:800}.quick-grid small{display:block;font-size:11px;color:var(--muted);font-weight:400;margin-top:3px}.notification-tools{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.notification-list{display:grid;gap:9px}.notification-item{display:grid;grid-template-columns:12px 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:14px}.notification-item>i{width:10px;height:10px;border-radius:50%;background:#3377cc}.notification-item.warning>i{background:#e59b24}.notification-item.critical>i{background:#de554d}.notification-item b{font-size:14px}.notification-item p{font-size:13px;margin:4px 0;color:#506276}.notification-item small{font-size:11px;color:var(--muted)}.notification-actions{display:flex;gap:6px}.bell{cursor:pointer}.bell:hover{background:#f5f8fb}
@media(max-width:1200px){.overview-kpis{grid-template-columns:repeat(2,1fr)}.overview-main,.overview-bottom{grid-template-columns:1fr}.overview-hero{padding:30px}.project-health-row{grid-template-columns:8px minmax(180px,1fr) 180px 70px 70px}}
@media(max-width:760px){.overview-hero{align-items:flex-start;flex-direction:column}.overview-copy h2{font-size:27px}.health-ring{align-self:center}.overview-kpis{grid-template-columns:1fr}.project-health-row{grid-template-columns:7px 1fr 70px}.progress-cell{grid-column:2/4}.health-score,.warning-score{display:none}.finance-chain,.quick-grid{grid-template-columns:1fr 1fr}.notification-item{grid-template-columns:10px 1fr}.notification-actions{grid-column:2}}

/* V46 PROJECT + SCHEDULE REFERENCE */
.project-catalog,.progress-shell{padding:0;overflow:hidden}.project-catalog-head,.progress-title{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line)}.project-catalog-head h3,.progress-title h3{font-size:22px;margin:0}.project-catalog-head p,.progress-title p{margin:5px 0 0;color:var(--muted);font-size:13px}.project-catalog-head input{width:330px;max-width:45%;font-size:16px;padding:13px}.project-table td:first-child b,.progress-ref-table td:nth-child(2)>b{display:block;font-size:15px}.project-table td:first-child small,.progress-ref-table td small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.project-progress{display:flex;align-items:center;gap:12px;min-width:170px}.project-progress i{height:6px;flex:1;background:#edf0f5;border-radius:9px}.project-progress em{display:block;height:100%;background:#3678c9;border-radius:9px}.btn.compact{padding:8px 12px}.project-modal-hero{padding:18px;background:#f7f8fb;border-radius:12px}.project-modal-hero h3{font-size:20px;margin:12px 0 7px}.project-modal-hero p{margin:0;color:var(--muted)}.project-modal-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.project-modal-kpis>div{border:1px solid var(--line);border-radius:12px;text-align:center;padding:20px}.project-modal-kpis b{display:block;font-size:26px}.project-modal-kpis span{font-size:11px;color:var(--muted)}
.progress-ref-controls{padding:0 24px 16px}.progress-ref-controls .filter-row{display:grid;grid-template-columns:180px 180px 250px minmax(260px,1fr) auto 50px;gap:12px;align-items:center}.progress-ref-controls select,.progress-ref-controls input{font-size:15px;min-height:48px}.view-switch{display:flex}.view-switch .btn{border-radius:0}.view-switch .btn:first-child{border-radius:8px 0 0 8px}.view-switch .btn:last-child{border-radius:0 8px 8px 0}.progress-ref-table th,.project-table th{background:#fafbfe;font-size:12px;letter-spacing:.5px}.progress-ref-table td{vertical-align:top}.progress-ref-table td:first-child{min-width:110px}.progress-ref-table td:nth-child(2){min-width:330px}.progress-ref-table td:nth-child(5){min-width:170px}
.dependency-panel{overflow:hidden;padding:0}.dependency-panel .panel-head{padding:20px}.gantt-head,.gantt-row{display:grid;grid-template-columns:minmax(300px,1.5fr) minmax(220px,1fr) minmax(280px,1.3fr) 70px;align-items:center;gap:14px}.gantt-head{padding:10px 16px;background:#f7f9fc;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px;font-weight:800;color:var(--muted)}.gantt-row{padding:12px 16px;border-bottom:1px solid var(--line);position:relative}.gantt-row.detail>div:first-child{padding-left:22px}.gantt-row>div:first-child b,.gantt-row>div:first-child span{display:block}.gantt-row>div:first-child span{font-size:12px;color:var(--muted);margin-top:3px}.dependency-text{font-size:12px;color:#506276}.gantt-track{height:30px;background:repeating-linear-gradient(90deg,#f6f8fb 0,#f6f8fb 24.5%,#e9edf2 25%,#f6f8fb 25.5%);position:relative;border-radius:5px;overflow:hidden}.gantt-track i{position:absolute;top:8px;height:14px;background:linear-gradient(90deg,#3377cc,#10998e);border-radius:5px}.gantt-track em{position:absolute;right:6px;top:6px;font-size:11px;font-style:normal;font-weight:800}.gantt-row.detail:before{content:"";position:absolute;left:20px;top:0;height:50%;width:12px;border-left:1px solid #9cb2c8;border-bottom:1px solid #9cb2c8}
@media(max-width:1200px){.progress-ref-controls .filter-row{grid-template-columns:1fr 1fr 1fr}.gantt-head,.gantt-row{grid-template-columns:minmax(240px,1fr) minmax(160px,.8fr) minmax(220px,1fr) 60px}}

/* === V46 REFERENCE MODULES FINAL === */
.progress-title{padding:22px 24px 8px;border-bottom:0}.progress-ref-controls{padding:8px 24px 18px}.progress-ref-controls .filter-row{grid-template-columns:175px 175px 250px minmax(260px,1fr) auto 42px}.small-switch .btn{padding:8px 11px;font-size:12px;min-height:38px}.progress-ref-table td{font-size:13px;padding-top:16px;padding-bottom:16px}.progress-ref-table td>b{font-size:14px}.progress-ref-table td small,.reference-table td small,.acceptance-card small{font-size:11px!important;color:#7a8796;line-height:1.35}.progress-ref-table th,.reference-table th{font-size:11px;color:#7d8795;font-weight:800;letter-spacing:.35px}.progress-ref-table td:nth-child(2)>b{font-size:14px}.subtext{font-size:11px!important;color:#7a8796!important}.kan-card{font-size:12px}.kan-card p b{font-size:13px}.kan-card-top{display:flex;justify-content:space-between;align-items:center}.kan-card .link-btn{font-size:11px;padding:5px 0}.module-reference{padding:0;overflow:hidden}.module-reference-head{padding:22px 24px 8px}.module-reference-head h3{font-size:21px;margin:0}.module-reference-head p{font-size:12px;color:var(--muted);margin:6px 0}.module-filter-row{display:grid;grid-template-columns:minmax(320px,1.4fr) minmax(280px,.7fr) auto;gap:12px;align-items:center;padding:12px 24px}.module-filter-row select,.module-filter-row input{min-height:47px;font-size:15px}.record-count{justify-self:end;background:#f1f5f9;border-radius:999px;padding:8px 12px;font-size:11px;font-weight:800}.module-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:8px 24px 18px}.module-kpis>div{background:#fbfbfd;border:1px solid #e8ebef;border-radius:10px;padding:16px}.module-kpis span,.module-kpis b{display:block}.module-kpis span{font-size:11px;color:#7b8794}.module-kpis b{font-size:17px;margin-top:10px}.reference-table td{font-size:13px;padding:16px 18px;vertical-align:top}.reference-table td>b{font-size:14px;line-height:1.35}.reference-table td small{display:block;margin-top:5px}.acceptance-list{padding:0 24px 24px}.acceptance-card{border:1px solid #dfe5eb;border-radius:14px;overflow:hidden;margin-bottom:14px}.acceptance-card-head{padding:18px;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid #e8edf2}.acceptance-card-head>div b,.acceptance-card-head>div small{display:block}.acceptance-card-head>div b{font-size:15px;margin:8px 0 4px}.summary-tag{display:inline-block;background:#245f9e;color:#fff;border-radius:7px;padding:7px 10px;font-size:10px;font-weight:900}.acceptance-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr}.acceptance-grid>div{padding:17px;border-right:1px solid #e8edf2}.acceptance-grid>div:last-child{border-right:0}.acceptance-grid span,.acceptance-grid b,.acceptance-grid small{display:block}.acceptance-grid span{font-size:10px;font-weight:800;color:#68788a}.acceptance-grid b{font-size:14px;margin:8px 0 3px}
@media(max-width:1200px){.progress-ref-controls .filter-row{grid-template-columns:1fr 1fr 1fr}.module-filter-row{grid-template-columns:1fr 1fr}.record-count{grid-column:2}.module-kpis{grid-template-columns:1fr 1fr}.acceptance-grid{grid-template-columns:1fr 1fr}.acceptance-grid>div{border-bottom:1px solid #e8edf2}}

/* === V46 PROGRESS + CASHFLOW REFINEMENT === */
.progress-ref-controls .filter-row{grid-template-columns:168px 190px 205px minmax(230px,1fr) auto 42px;gap:9px}
.progress-ref-controls #progressOwner{max-width:205px}
.small-switch{white-space:nowrap;align-items:center}
.small-switch .btn{font-size:11.5px!important;padding:7px 10px!important;min-height:34px!important}
.progress-count{font-size:12px;text-align:right}
.progress-ref-table td:nth-child(2)>b{font-size:14px;line-height:1.35}
.progress-ref-table .task-secondary{font-size:10.5px!important;line-height:1.35;color:#7b8795;margin-top:3px}
.progress-ref-table td:nth-child(3)>small{font-size:10.5px!important;color:#7b8795}
.progress-ref-table td:nth-child(5)>small,.progress-ref-table td:nth-child(6)>small{font-size:10.5px!important}
.schedule-kan-card .kan-due-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:9px;font-size:11px;color:#687789}
.schedule-kan-card .kan-due-row b{margin-left:auto;font-size:12px;color:#172534}
.schedule-kan-card .kan-action-row{display:flex;justify-content:flex-end;margin-top:7px}
.schedule-kan-card .kan-action-row .link-btn{font-size:11.5px;padding:2px 0}
.schedule-kan-card .mini-bar{margin-top:6px}
.schedule-kan-card .subtext{font-size:10.5px!important}
.gantt-row>div:first-child small{display:block;font-size:10.5px;color:#7b8795;margin-top:3px}
.cashflow-reference{padding:0;overflow:hidden}
.cashflow-reference .module-reference-head{padding:22px 22px 7px}
.cashflow-reference .module-filter-row{padding:0 22px 14px}
.cash-kpis{padding:0 22px 14px}
.cash-chart{margin:0 22px 18px;border:1px solid var(--line);border-radius:12px;padding:18px 16px 12px;background:#fff}
.cash-chart-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.cash-chart-head h3{margin:0;font-size:17px}.cash-chart-head p{margin:5px 0 0;font-size:11px;color:var(--muted)}
.cash-chart-head>b{font-size:16px;color:#1f5e9c}
.cash-bars{height:165px;display:grid;grid-template-columns:repeat(12,1fr);gap:18px;align-items:end;border-bottom:1px solid #dfe5ec;margin-top:16px;padding:0 18px}
.cash-bar-col{height:145px;display:grid;grid-template-rows:1fr 20px;align-items:end;text-align:center}
.cash-bar-track{height:118px;display:flex;align-items:flex-end;justify-content:center}
.cash-bar-track i{display:block;width:30px;max-width:65%;min-height:2px;border-radius:5px 5px 0 0;background:linear-gradient(#5799e8,#2d67b6)}
.cash-bar-col span{font-size:10px;color:#58697a}
.cashflow-table td>b{font-size:13px}.cashflow-table td>small{font-size:10.5px!important;color:#7b8795;margin-top:4px}
.cashflow-table th{font-size:10.5px!important;line-height:1.25}
@media(max-width:1250px){.progress-ref-controls .filter-row{grid-template-columns:150px 170px 180px minmax(210px,1fr) auto}.progress-count{display:none}.cash-bars{gap:9px}.cash-bar-track i{width:22px}}
@media(max-width:900px){.progress-ref-controls .filter-row{grid-template-columns:1fr 1fr}.small-switch{grid-column:1/3}.cash-bars{overflow-x:auto;grid-template-columns:repeat(12,42px)}}

/* === V46 TASK/CASHFLOW/APPROVAL FINAL === */
.deadline-field{background:#fff8ec;border:1px solid #efcf95;border-radius:10px;padding:10px 12px}
.deadline-field label{font-weight:900;color:#8a5514}.deadline-field small{display:block;margin-top:5px;font-size:10.5px;color:#8a6b43}.req{color:#d94c45}
.progress-ref-table .btn.compact{font-size:10.5px!important;line-height:1.05;padding:6px 7px!important;min-width:45px!important;max-width:56px;border-radius:8px}
.progress-ref-table td:last-child{width:62px;text-align:center}
.schedule-kan-card{padding:12px!important}.schedule-kan-card .kan-card-top{display:flex;justify-content:space-between;align-items:center}.schedule-kan-card .kan-action-row{justify-content:flex-end}.schedule-kan-card .kan-action-row .link-btn{font-size:10.5px!important;font-weight:800}
.cash-chart{min-height:230px!important;display:block!important}
.cash-empty-chart{height:155px;position:relative;padding:36px 20px 0}.cash-zero-line{position:absolute;left:20px;right:20px;bottom:43px;border-top:1px solid #dce3ea}.cash-month-labels{position:absolute;bottom:24px;left:20px;right:20px;display:grid;grid-template-columns:repeat(12,1fr);text-align:center;font-size:10px;color:#657486}.cash-empty-chart p{text-align:center;margin-top:70px;color:#8090a0;font-size:11px}
.record-count{background:#f3f6fa;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:800;color:#52677c}
.approval-shell{padding:0;overflow:hidden}.approval-head{display:flex;align-items:center;justify-content:space-between;padding:22px 24px 8px}.approval-head h3{margin:0;font-size:21px}.approval-head p{margin:5px 0 0;color:var(--muted);font-size:12px}.approval-shell .module-kpis{padding:10px 24px 20px}
.approval-table td>b{display:block;font-size:13px}.approval-table td>small{display:block;font-size:10.5px;color:#778697;margin-top:4px}.approval-table th{font-size:10.5px!important}
.approval-form-intro{display:flex;gap:14px;align-items:center;padding:14px 16px;margin-bottom:16px;border-radius:12px;background:linear-gradient(110deg,#edf5ff,#f7fbff)}.approval-form-icon{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;background:#163858;color:#fff;font-size:22px}.approval-form-intro h3{margin:0;font-size:18px}.approval-form-intro p{margin:4px 0 0;font-size:11.5px;color:#637589}.approval-submit{min-width:190px}
@media(max-width:800px){.approval-form-grid{grid-template-columns:1fr}.cash-month-labels{font-size:9px}}

/* V46 FINAL: progress deadline, cashflow alerts, Vietnamese file picker */
.task-create-lead{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;margin-bottom:12px;border:1px solid #dce7f1;border-radius:12px;background:#f4f8fc}.task-create-lead b,.task-create-lead small{display:block}.task-create-lead b{font-size:16px}.task-create-lead small{font-size:10.5px;color:#66798b;margin-top:3px}.task-create-lead>span{font-size:9.5px;font-weight:900;background:#163858;color:#fff;padding:5px 8px;border-radius:999px}
.deadline-prominent{background:#fff7e8!important;border:2px solid #e5ad4c!important;padding:10px 12px!important}.deadline-prominent label{color:#865614!important;font-weight:900!important}.deadline-prominent input{font-weight:800}
.progress-update-btn{width:48px!important;min-width:48px!important;height:42px!important;padding:3px!important;font-size:9.8px!important;line-height:1.05!important;border-radius:8px!important}
.schedule-kan-card .kan-percent{margin-left:auto!important;text-align:right!important;min-width:38px}.schedule-kan-card .kan-action-row{display:flex!important;justify-content:flex-end!important}.schedule-kan-card .kan-action-row button{margin-left:auto!important;font-size:10.5px!important}
.cash-chart{display:block!important;min-height:270px!important}.cash-bars{height:188px!important;align-items:end!important}.cash-bar-col{height:168px!important;grid-template-rows:23px 1fr 20px!important}.cash-bar-value{font-size:8.5px;color:#627487;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.cash-bar-track{height:125px!important}
.cash-over-budget{background:#fff0f0!important}.cash-over-budget:hover{background:#ffe5e5!important}.cash-over-budget td{border-color:#f3caca!important}.cash-over-budget td:first-child{box-shadow:inset 4px 0 0 #d43c35}.cash-danger-text{color:#c92b24!important}.cash-over-budget .pill.danger{background:#ffdeda!important;color:#ad241d!important;font-weight:900}
.vi-file-picker{display:flex;align-items:center;gap:10px;min-height:44px;padding:5px;border:1px solid var(--line);border-radius:9px;background:#fff}.vi-file-picker .btn{white-space:nowrap}.vi-file-picker span{font-size:12px;color:#667789;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* V46.16 progress/cashflow/documents */
.task-create-grid .date-important,.task-create-grid .deadline-prominent,.task-create-grid .responsible-important{background:#f8fbff;border:1px solid #cbdbea;border-radius:10px;padding:9px 11px}.task-create-grid .deadline-prominent{background:#fff7e9;border-color:#e5b158}.task-create-grid .responsible-important{background:#f3faf8;border-color:#bdded5}.task-create-grid label{font-weight:800}.task-create-grid .req{color:#d43c35}
.responsible-cell small{font-size:9.5px!important;color:#8693a0!important}.progress-update-btn{width:54px!important;min-width:54px!important;height:31px!important;padding:4px 5px!important;font-size:10px!important;line-height:1!important}.schedule-kan-card .kan-meta b{font-weight:700;color:#536678}
.cash-legend{display:flex;gap:16px;margin-top:8px;font-size:10px;color:#68798a}.cash-legend span{display:flex;align-items:center;gap:5px}.cash-legend i{width:9px;height:9px;border-radius:2px}.cash-legend i.actual{background:#2e70c8}.cash-legend i.plan{background:#59bca3}.cash-bars.dual{height:185px!important}.cash-bar-pair{height:145px;display:flex;align-items:flex-end;justify-content:center;gap:4px}.cash-bar-pair i{display:block;width:13px;min-height:1px;border-radius:4px 4px 0 0}.cash-bar-pair i.actual{background:linear-gradient(#5798e7,#2e69b8)}.cash-bar-pair i.plan{background:linear-gradient(#72d2ba,#2b9c84)}.cash-bars.dual .cash-bar-col{grid-template-rows:1fr 20px!important;height:165px!important}
.document-catalog{padding:0;overflow:hidden}.document-table td:first-child b,.document-table td:nth-child(2)b{display:block}.document-table td small{display:block;font-size:10px;color:#788897;margin-top:3px}.danger-outline{color:#b52d27!important;border-color:#e6bab7!important;background:#fff!important}

/* V46.17 — vertical progress form + true web-master cashflow */
.task-create-modal-body{overflow-x:hidden!important}
.task-create-vertical{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
.task-create-vertical>.field,.task-create-vertical>.field.full{grid-column:1!important;width:100%!important;min-width:0!important}
.task-create-vertical input,.task-create-vertical select,.task-create-vertical textarea{width:100%!important;box-sizing:border-box}
.sticky-form-actions{position:sticky;bottom:0;background:#fff;padding-top:12px;z-index:3;border-top:1px solid var(--line)}
.progress-ref-table th{white-space:nowrap}.progress-ref-table td:nth-child(2){min-width:315px}.progress-ref-table td:nth-child(4){min-width:118px}.progress-ref-table .task-secondary{font-size:10px!important;color:#7f8c9a!important}
.progress-update-btn{width:52px!important;min-width:52px!important;height:30px!important;padding:3px 5px!important;font-size:9.8px!important;border-radius:8px!important}
.schedule-kan-card{padding:12px 13px!important}.schedule-kan-card .kan-card-top{display:flex;justify-content:space-between}.schedule-kan-card .kan-meta{margin-top:7px!important}.schedule-kan-card .kan-due-row{margin-top:9px!important}.schedule-kan-card .kan-action-row{margin-top:7px!important}
.cash-paired-bars .cash-bar-pair{display:flex!important;align-items:flex-end!important;justify-content:center!important;gap:5px!important;height:145px!important}.cash-paired-bars .cash-bar-pair i{width:15px!important;min-height:1px;border-radius:4px 4px 0 0}.cash-paired-bars .cash-bar-pair i.actual{background:linear-gradient(#5798e7,#2e69b8)!important}.cash-paired-bars .cash-bar-pair i.plan{background:linear-gradient(#72d2ba,#2b9c84)!important}
.cash-chart-note{text-align:center;margin-top:8px;font-size:10.5px;color:#768697}
.cashflow-form-intro{padding:13px 14px;border:1px solid #cfe0ee;background:#f5f9fd;border-radius:12px;margin-bottom:14px}.cashflow-form-intro b,.cashflow-form-intro small{display:block}.cashflow-form-intro b{font-size:15px}.cashflow-form-intro small{font-size:10.5px;color:#66798b;margin-top:4px}
.cashflow-web-form{grid-template-columns:1fr 1fr}.cash-month-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.cash-month-inputs label{font-size:10px;color:#657587}.cash-month-inputs input{margin-top:4px;width:100%;box-sizing:border-box;padding:8px}
@media(max-width:800px){.cashflow-web-form{grid-template-columns:1fr}.cashflow-web-form>.field.full{grid-column:1}.cash-month-inputs{grid-template-columns:repeat(2,1fr)}}

/* V46.18 — import resilience, Vietnamese progress status, payment/contract */
.import-safe{padding:28px;text-align:center}.import-safe-icon{width:52px;height:52px;margin:0 auto 12px;border-radius:14px;display:grid;place-items:center;background:#edf5ff;color:#2467a8;font-size:24px}.import-safe h3{margin:0;font-size:20px}.import-safe p{max-width:680px;margin:8px auto 18px;color:#66788a;font-size:12px}.import-safe-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.import-file-label{cursor:pointer}.import-safe-name{margin-top:12px;font-size:11px;color:#7b8896}
.reference-table td>b{font-size:13px}.reference-table td>small{font-size:10.5px!important;color:#7c8997!important;margin-top:4px}.reference-table th{font-size:10.5px!important;white-space:normal}

/* === V46.20 EXECUTIVE DASHBOARD ONLY === */
.executive-dashboard{padding:24px 28px 40px;background:#f5f6fb}
.exec-hero{min-height:154px;border-radius:18px;padding:30px 34px;color:#fff;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(110deg,#0d2b51,#174d7b 65%,#087f83);overflow:hidden;position:relative}
.exec-hero:after{content:"";position:absolute;right:-70px;top:-120px;width:330px;height:330px;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 55px rgba(255,255,255,.035),0 0 0 110px rgba(255,255,255,.025)}
.exec-hero small{font-size:9px;letter-spacing:1.5px;font-weight:800;opacity:.85}.exec-hero h2{font-size:24px;margin:16px 0 8px}.exec-hero p{font-size:11px;opacity:.85}.exec-live{z-index:2;text-align:right}.exec-live span{display:block;border:1px solid rgba(255,255,255,.3);border-radius:999px;padding:7px 10px;font-size:9px}.exec-live small{display:block;margin-top:8px}
.exec-kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:14px 0}
.exec-kpi{background:#fff;border:1px solid #e7eaf0;border-radius:14px;padding:17px 16px;min-height:88px;box-shadow:0 4px 14px rgba(21,39,65,.03)}.exec-kpi small{font-size:8.5px;font-weight:900;color:#65758a;letter-spacing:.4px}.exec-kpi b{display:block;font-size:24px;margin:10px 0 8px;color:#122337}.exec-kpi p{font-size:9px;color:#8a96a4;margin:0}
.exec-mid-grid{display:grid;grid-template-columns:1.05fr 1.9fr 1fr;gap:14px;margin-bottom:14px}.exec-card{background:#fff;border:1px solid #e4e7ee;border-radius:14px;padding:18px;box-shadow:0 3px 12px rgba(17,35,56,.025)}.exec-card>small,.exec-ranking-head small{font-size:8.5px;letter-spacing:1px;color:#29709a;font-weight:900}.exec-card h3{font-size:14px;margin:8px 0 16px;font-weight:600}
.health-layout{display:flex;align-items:center;justify-content:center;gap:28px}.health-ring{--score:82;width:118px;height:118px;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(#2d9b72 calc(var(--score)*1%),#e9a42b 0 92%,#d4554f 0);}.health-ring:after{content:"";position:absolute;inset:16px;background:#fff;border-radius:50%}.health-ring b,.health-ring small{z-index:1}.health-ring b{font-size:27px}.health-ring small{font-size:8px;margin-top:35px;position:absolute;color:#778696}.health-legend{display:grid;gap:12px;font-size:9px;color:#637287}.health-legend span{display:grid;grid-template-columns:9px 1fr 15px;gap:7px;align-items:center}.health-legend i{width:8px;height:8px;border-radius:2px}.stable{background:#279a71}.attention{background:#e5a329}.critical{background:#d95750}
.exec-progress-list{display:grid;gap:13px}.exec-progress-row{display:grid;grid-template-columns:44px 1fr 36px 42px;gap:9px;align-items:center;font-size:9px}.exec-progress-row b{font-size:9px}.exec-progress-row span{font-weight:800}.exec-progress-row em{font-style:normal;text-align:right;border-radius:6px;padding:4px 5px;font-size:8px}.negative{color:#c34d42!important}.positive{color:#278b6c!important}.exec-progress-row em.negative{background:#fff4df}.exec-progress-row em.positive{background:#eaf8f3}.exec-compare-track{height:7px;background:#e7edf2;border-radius:999px;position:relative;overflow:hidden}.exec-compare-track i{position:absolute;left:0;height:100%;border-radius:999px}.exec-compare-track .plan{background:#d7dee5}.exec-compare-track .actual{background:#247bac;z-index:2;height:4px;top:1.5px}.exec-bar-legend{display:flex;justify-content:flex-end;gap:16px;margin-top:12px;font-size:8px;color:#788695}.exec-bar-legend i{display:inline-block;width:13px;height:4px;border-radius:2px;margin-right:4px}.exec-bar-legend i.actual{background:#247bac}.exec-bar-legend i.plan{background:#d7dee5}
.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.decision-grid>div{border:1px solid #e5e9ee;border-radius:10px;padding:13px}.decision-grid small{font-size:8px;color:#7d8996}.decision-grid b{display:block;font-size:22px;margin-top:10px;color:#be4d36}
.exec-finance{margin-bottom:14px}.finance-steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #edf0f4;margin:0 -18px -18px}.finance-steps>div{padding:15px 18px;border-right:1px solid #edf0f4;display:grid;grid-template-columns:28px 1fr;column-gap:9px;align-items:center}.finance-steps>div:last-child{border-right:0}.finance-steps span{grid-row:1/5;background:#f0f5fb;border-radius:7px;padding:8px 6px;font-size:8px;color:#4c7197;text-align:center}.finance-steps small{font-size:8px;color:#7e8b99}.finance-steps b{font-size:15px;margin:7px 0}.finance-steps em{font-size:7.5px;color:#8a96a2;font-style:normal}.exec-mini-track{height:4px;background:#edf1f4;border-radius:999px;overflow:hidden}.exec-mini-track i{display:block;height:100%;background:linear-gradient(90deg,#2776b9,#2ea37d)}
.exec-ranking{padding:0;overflow:hidden}.exec-ranking-head{display:flex;justify-content:space-between;align-items:center;padding:20px 18px 15px}.exec-ranking-head h3{margin:7px 0 0}.exec-filter-chips{display:flex;gap:7px}.exec-filter-chips span{font-size:8px;padding:7px 10px;border:1px solid #dfe5eb;border-radius:8px;background:#fff}.exec-filter-chips span:first-child{background:#eaf4ff;color:#2e6e9d}.exec-table th{font-size:8.5px!important}.exec-table td{padding-top:13px!important;padding-bottom:13px!important}.exec-table small{display:block;font-size:8px!important;color:#8a96a3;margin-top:4px}.exec-health-cell{display:flex;align-items:center;gap:10px}.exec-health-score{width:35px;height:35px;border-radius:8px;display:grid;place-items:center;font-weight:900;background:#eaf8f2;color:#257f62}.exec-health-score.attention{background:#fff5df;color:#9a6b17}.exec-health-score.critical{background:#ffebe8;color:#ad4037}.exec-risk-pill{display:inline-block;padding:6px 8px;border-radius:7px;font-size:8px;background:#e9f7f2;color:#287b62}.exec-risk-pill.attention{background:#fff3dc;color:#9b6813}.exec-risk-pill.critical{background:#ffe8e4;color:#b33d34}
@media(max-width:1200px){.exec-kpi-grid{grid-template-columns:repeat(3,1fr)}.exec-mid-grid{grid-template-columns:1fr}.finance-steps{grid-template-columns:1fr 1fr}.exec-table{min-width:980px}}

/* === V46.21 PROJECT DETAIL DASHBOARD ONLY === */
.project-detail-dashboard{padding:24px 28px 42px;background:#f5f6fb}
.pd-top-hero,.pd-project-hero{border-radius:18px;color:#fff;background:linear-gradient(110deg,#0d2b51,#174e7b 65%,#0c7f81);position:relative;overflow:hidden}
.pd-top-hero:after,.pd-project-hero:after{content:"";position:absolute;right:-70px;top:-120px;width:330px;height:330px;border:1px solid rgba(255,255,255,.08);border-radius:50%;box-shadow:0 0 0 55px rgba(255,255,255,.035),0 0 0 110px rgba(255,255,255,.025)}
.pd-top-hero{min-height:120px;padding:28px 30px;display:flex;justify-content:space-between;align-items:center}.pd-top-hero small,.pd-project-hero small{font-size:8.5px;letter-spacing:1.4px;font-weight:800;opacity:.86}.pd-top-hero h2{font-size:23px;margin:14px 0 7px}.pd-top-hero p{font-size:10.5px;opacity:.82;margin:0}.pd-top-actions{z-index:2;text-align:right;min-width:470px}.pd-project-selector select{width:100%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.28);color:#fff;border-radius:9px;padding:10px 13px;font-size:9px;font-weight:700}.pd-project-selector option{color:#111}.pd-live{display:inline-block;margin-top:7px;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:5px 8px;font-size:8px}.pd-top-actions>small{display:block;margin-top:7px}
.pd-project-hero{margin-top:14px;padding:34px 30px;display:flex;justify-content:space-between;align-items:center;min-height:126px}.pd-project-hero h2{font-size:22px;margin:12px 0 8px}.pd-project-hero p{font-size:10px;opacity:.82}.pd-project-meta{display:flex;gap:16px;margin-top:16px;font-size:8.5px}.pd-project-meta span{border-left:2px solid #4ed2a7;padding-left:9px}.pd-project-score{display:flex;gap:24px;align-items:center;z-index:2;padding-left:28px;border-left:1px solid rgba(255,255,255,.18)}.pd-project-score>div:last-child>b{display:block;font-size:27px}.pd-project-score>div:last-child>small{display:block;margin-top:3px}.pd-project-score em{display:inline-block;margin-top:8px;padding:5px 7px;border-radius:7px;font-size:8px;font-style:normal;background:#fff4df;color:#b35f38}.pd-health-ring{--score:72;width:92px;height:92px;border-radius:50%;background:conic-gradient(#55d7aa calc(var(--score)*1%),rgba(255,255,255,.18) 0);display:grid;place-items:center;position:relative}.pd-health-ring:after{content:"";position:absolute;inset:10px;background:#14446d;border-radius:50%}.pd-health-ring b,.pd-health-ring small{z-index:1}.pd-health-ring b{font-size:25px}.pd-health-ring small{position:absolute;margin-top:38px;font-size:7px;letter-spacing:0}
.pd-alert{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:11px;margin:12px 0;background:#fff8e9;border:1px solid #ecd7a8}.pd-alert.ok{background:#edf9f4;border-color:#cfe8dd}.pd-alert-icon{width:28px;height:28px;border-radius:8px;background:#e9a832;color:#fff;display:grid;place-items:center;font-weight:900}.pd-alert b{display:block;font-size:10px}.pd-alert small{font-size:8px;color:#7a8793}
.pd-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.pd-kpi{background:#fff;border:1px solid #e6e9ef;border-radius:11px;padding:14px 15px;border-top:3px solid #4b88c6}.pd-kpi.red{border-top-color:#d4554f}.pd-kpi.green{border-top-color:#2b9974}.pd-kpi.blue{border-top-color:#3d7dbd}.pd-kpi small{font-size:8px;color:#768493}.pd-kpi b{display:block;font-size:22px;margin:8px 0}.pd-kpi p{font-size:8px;color:#8995a1;margin:0}
.pd-analysis-grid{display:grid;grid-template-columns:1.18fr 1fr;gap:12px}.pd-card{background:#fff;border:1px solid #e4e7ed;border-radius:12px;padding:17px}.pd-card>small{font-size:8px;letter-spacing:1px;color:#2b719a;font-weight:900}.pd-card h3{font-size:13px;margin:7px 0 16px}.pd-line{display:flex;justify-content:space-between;font-size:8px;margin:9px 0 5px}.pd-big-track{height:7px;border-radius:999px;background:#e6ebef;overflow:hidden}.pd-big-track i{display:block;height:100%}.pd-big-track i.plan{background:#b9c5d1}.pd-big-track i.actual{background:linear-gradient(90deg,#e9a228,#d6534b)}.pd-task-stack{display:flex;height:7px;border-radius:999px;overflow:hidden;background:#e9edf1;margin-top:12px}.pd-task-stack i.done{background:#2d9b72}.pd-task-stack i.doing{background:#3b7fc2}.pd-task-stack i.late{background:#d65750}.pd-task-legend{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:9px;font-size:8px}.pd-task-legend span{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:5px}.pd-task-legend i{width:7px;height:7px;border-radius:2px}.pd-task-legend i.done{background:#2d9b72}.pd-task-legend i.doing{background:#3b7fc2}.pd-task-legend i.late{background:#d65750}.pd-task-legend i.todo{background:#cbd3da}
.pd-slow-list{border-top:1px solid #eef1f4;margin:15px -17px -17px;padding:13px 17px}.pd-slow-list h4{font-size:8.5px;margin:0 0 10px}.pd-slow-list>div{display:grid;grid-template-columns:44px 1fr auto;column-gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid #f0f2f5}.pd-slow-list>div>span{background:#f2f6fa;border-radius:6px;padding:5px 6px;font-size:7.5px}.pd-slow-list b{font-size:9px}.pd-slow-list small{grid-column:2;font-size:7.5px;color:#8793a0}.pd-slow-list em{grid-column:3;grid-row:1/3;font-size:9px;font-style:normal;color:#c24d42;font-weight:800}
.pd-fin-row{margin-bottom:12px}.pd-fin-row>div:first-child{display:grid;grid-template-columns:1fr auto auto;gap:8px;font-size:8px}.pd-fin-row b{font-size:9px}.pd-fin-row em{font-style:normal;color:#6c7c8c}.pd-fin-track{height:6px;border-radius:999px;background:#e9edf2;overflow:hidden;margin-top:5px}.pd-fin-track i{display:block;height:100%;background:linear-gradient(90deg,#3276ba,#2ca17c)}.pd-fin-summary{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #edf0f3;margin:15px -17px -17px}.pd-fin-summary>div{padding:12px 17px;border-right:1px solid #edf0f3;border-bottom:1px solid #edf0f3}.pd-fin-summary small{display:block;font-size:7.5px;color:#7b8996}.pd-fin-summary b{display:block;font-size:14px;margin-top:7px}
.pd-mini-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}.pd-mini{background:#fff;border:1px solid #e4e8ed;border-radius:11px;padding:14px}.pd-mini>small{font-size:8px;color:#2c7299;font-weight:900;letter-spacing:.6px}.pd-mini>div{display:flex;align-items:baseline;gap:10px;margin:11px 0 5px}.pd-mini b{font-size:23px}.pd-mini span{font-size:9px}.pd-mini p{font-size:7.5px;color:#8995a1;margin:0}
.pd-critical{padding:0;overflow:hidden}.pd-critical>small,.pd-critical>h3{display:block;padding-left:17px;padding-right:17px}.pd-critical>small{padding-top:16px}.pd-critical-list>div{display:grid;grid-template-columns:14px 1fr auto;align-items:center;gap:8px;padding:10px 17px;border-top:1px solid #edf0f4}.pd-warning-dot{width:7px;height:7px;border-radius:50%;background:#e4aa35}.pd-critical-list b{display:block;font-size:9px}.pd-critical-list small{font-size:7.5px;color:#8a96a2}.pd-critical-list em{font-size:7.5px;font-style:normal;border-radius:7px;padding:5px 7px}.pd-critical-list em.high{background:#ffe8e4;color:#b23c34}.pd-critical-list em.medium{background:#fff4df;color:#9b6813}
@media(max-width:1150px){.pd-analysis-grid{grid-template-columns:1fr}.pd-kpi-grid,.pd-mini-grid{grid-template-columns:1fr 1fr}.pd-top-hero{align-items:flex-start;gap:20px;flex-direction:column}.pd-top-actions{min-width:0;width:100%;text-align:left}.pd-project-hero{align-items:flex-start;gap:22px;flex-direction:column}.pd-project-score{border-left:0;padding-left:0}}

/* === V46.22 OVERVIEW ONLY — match reference /tongquan.jpg === */
.overview-v4622{padding:24px 28px 42px;background:#f5f6fb;min-height:100%}
.ov22-hero{min-height:258px;border-radius:18px;display:grid;grid-template-columns:minmax(0,1fr) 430px;overflow:hidden;position:relative;color:#fff;background:linear-gradient(105deg,#0f2e55 0%,#153e6c 57%,#0d7179 100%);box-shadow:0 8px 24px rgba(18,49,82,.08)}
.ov22-hero:before{content:"";position:absolute;right:-75px;top:-150px;width:430px;height:430px;border-radius:50%;border:1px solid rgba(255,255,255,.055);box-shadow:0 0 0 64px rgba(255,255,255,.025),0 0 0 128px rgba(255,255,255,.018)}
.ov22-copy{padding:38px 32px 30px;z-index:1;min-width:0}.ov22-kicker{font-size:10px;line-height:1.35;letter-spacing:1.6px;font-weight:900;color:#a9d0ff;white-space:normal}.ov22-copy>p{font-size:13px;margin:25px 0 8px;color:rgba(255,255,255,.88);line-height:1.35}.ov22-copy h2{font-size:29px;line-height:1.18;font-weight:500;letter-spacing:-.6px;margin:0 0 15px;max-width:760px;white-space:normal}.ov22-copy>span{display:block;font-size:11px;line-height:1.5;color:rgba(255,255,255,.76);max-width:740px}
.ov22-actions{display:flex;gap:10px;margin-top:24px}.ov22-actions button{height:42px;border-radius:9px;padding:0 17px;font-size:10.5px;font-weight:850;cursor:pointer}.ov22-primary{background:#fff;color:#18344f;border:1px solid rgba(255,255,255,.8)}.ov22-secondary{background:rgba(255,255,255,.045);color:#fff;border:1px solid rgba(255,255,255,.22)}
.ov22-health-zone{z-index:1;border-left:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px 28px;text-align:center}.ov22-health-ring{--score:77;width:128px;height:128px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#5ce0ae calc(var(--score)*1%),rgba(255,255,255,.15) 0);position:relative}.ov22-health-ring:after{content:"";position:absolute;inset:11px;background:#133d67;border-radius:50%}.ov22-health-ring>div{z-index:1;display:grid;place-items:center}.ov22-health-ring strong{font-size:39px;line-height:1;font-weight:800}.ov22-health-ring small{font-size:7px;margin-top:8px;letter-spacing:.2px;color:#d8e8f4}.ov22-health-zone>b{font-size:14px;margin-top:18px}.ov22-health-zone>span{font-size:9.5px;margin-top:8px;color:rgba(255,255,255,.72)}
.ov22-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:16px 0 18px}.ov22-kpi{height:132px;box-sizing:border-box;background:#fff;border:1px solid #e7eaf0;border-radius:14px;padding:18px 18px 14px;position:relative;overflow:hidden;box-shadow:0 3px 14px rgba(18,42,70,.03)}.ov22-kpi:after{content:"";position:absolute;right:-23px;bottom:-31px;width:78px;height:78px;border-radius:50%;background:#f2f5fa}.ov22-kpi small{display:block;max-width:calc(100% - 22px);font-size:9px;line-height:1.25;font-weight:900;letter-spacing:.4px;color:#657588;white-space:normal}.ov22-kpi>b{display:block;font-size:28px;line-height:1.08;margin:17px 0 13px;color:#102438;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ov22-kpi>p{font-size:9.5px;line-height:1.3;color:#8793a0;margin:0;white-space:normal;max-width:90%}.ov22-kpi>i{position:absolute;right:18px;top:18px;width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 4px #f4f7fa}.ov22-kpi>i.navy{background:#173b62}.ov22-kpi>i.red{background:#df554d}.ov22-kpi>i.green{background:#169b85}.ov22-kpi>i.blue{background:#397bc9}.ov22-kpi>i.purple{background:#7453c5}
.overview-v4622 .overview-main,.overview-v4622 .overview-bottom{margin-top:0}.overview-v4622 .panel-head h3{font-size:18px;line-height:1.25}.overview-v4622 .eyebrow{font-size:9px}.overview-v4622 .project-desc b{font-size:12.5px}.overview-v4622 .project-desc small,.overview-v4622 .priority-row small,.overview-v4622 .quick-grid small{font-size:10px;line-height:1.35}.overview-v4622 .priority-row b,.overview-v4622 .quick-grid span{font-size:12px}.overview-v4622 .finance-chain label{font-size:9px}.overview-v4622 .finance-chain strong{font-size:17px}
@media(max-width:1250px){.ov22-hero{grid-template-columns:minmax(0,1fr) 330px}.ov22-copy h2{font-size:25px}.ov22-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.overview-v4622{padding:16px}.ov22-hero{grid-template-columns:1fr}.ov22-health-zone{border-left:0;border-top:1px solid rgba(255,255,255,.1);padding:24px}.ov22-kpis{grid-template-columns:1fr 1fr}.ov22-copy{padding:28px 22px}.ov22-copy h2{font-size:23px}.ov22-actions{flex-wrap:wrap}}

/* === V46.23 EXCEL SYNC ONLY === */
.import-v4623-actions{display:flex;align-items:center;gap:12px;margin-top:18px}.import-v4623-actions>span{font-size:10.5px;color:#788695}.import-v4623-note{margin-top:16px;border:1px solid #dbe7f1;background:#f7fbfe;border-radius:10px;padding:13px 14px}.import-v4623-note b,.import-v4623-note span{display:block}.import-v4623-note b{font-size:11px;color:#245a82}.import-v4623-note span{font-size:10px;line-height:1.45;color:#71808f;margin-top:5px}.import-sync-status{display:flex;justify-content:space-between;gap:12px;align-items:center}.import-sync-status b{font-size:11px}.import-sync-status span{font-size:10px;color:#748393;text-align:right}.import-progress-track{height:9px;background:#e6ebf0;border-radius:999px;overflow:hidden;margin-top:10px}.import-progress-track>div{height:100%;width:0;background:linear-gradient(90deg,#2673bf,#269b82);transition:width .18s}.import-sync-stats{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:10px;font-size:9.5px;color:#6f7f8e}.import-sync-stats b{color:#183b5d}

/* === V46.24 EXCEL WORKBOOK HUB ONLY === */
.excel-hub-v4624{padding:18px 28px 40px;background:#f6f7fb;min-height:100%}
.excel-intro-card,.excel-recognition-shell,.excel-history-card{background:#fff;border:1px solid #e2e7ee;border-radius:12px}
.excel-intro-card{display:flex;align-items:flex-start;gap:13px;padding:16px 18px;background:#f8fbff;border-color:#dbe6f2}
.excel-step-badge{width:28px;height:28px;border-radius:7px;background:#102b4d;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900;flex:none}
.excel-intro-card h3{font-size:14px;margin:1px 0 5px;color:#17283d}.excel-intro-card p{font-size:10px;line-height:1.45;color:#7b8897;margin:0}
.excel-recognition-shell{margin-top:14px;padding:0 0 12px}.excel-recognition-banner{margin:14px 14px 0;padding:10px 12px;border:1px solid #eadbb8;background:#fff9e9;border-radius:8px;font-size:10px;color:#8d6e28}
.excel-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 14px 11px}.excel-section-head h3{font-size:13px;margin:0 0 4px}.excel-section-head p{font-size:9.5px;color:#7e8a98;margin:0}.excel-section-head>span{font-size:10px;color:#7d8996}.excel-link-btn{border:0;background:transparent;color:#315f8b;font-size:10px;cursor:pointer}
.excel-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;padding:0 14px}
.excel-module-card{min-height:103px;display:grid;grid-template-columns:24px 1fr auto;gap:9px;align-items:start;border:1px solid #dfe5ec;border-radius:9px;padding:13px 12px;cursor:pointer;position:relative;background:#fff}
.excel-module-card input{display:none}.excel-module-card.available.selected{border-color:#4e83bd;background:#f6f9ff}.excel-module-card.unavailable{opacity:.45;cursor:not-allowed}
.excel-checkbox{width:20px;height:20px;border-radius:6px;background:#3c79bf;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:900}.excel-module-card.unavailable .excel-checkbox{background:#eef1f4;color:#8895a2}
.excel-module-copy{min-width:0}.excel-module-copy b{display:block;font-size:11px;color:#1b2b3c;line-height:1.3}.excel-module-copy small{display:block;font-size:8px;color:#4e78a2;font-weight:800;margin-top:3px}.excel-module-copy em{display:block;font-size:8.5px;line-height:1.35;color:#7e8a98;font-style:normal;margin-top:7px}.excel-module-card>strong{font-size:8.5px;color:#536475;white-space:nowrap}
.excel-summary-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:14px 14px 0;padding:12px 13px;border:1px solid #e3e7ed;background:#fbfcfd;border-radius:8px}.excel-summary-bar b,.excel-summary-bar span{display:block}.excel-summary-bar b{font-size:10.5px}.excel-summary-bar span{font-size:8.5px;color:#7d8997;margin-top:3px}.btn.dark{background:#102b4d;color:#fff;border-color:#102b4d}
.excel-history-card{margin-top:14px;overflow:hidden}.excel-history-list>div{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(4,minmax(80px,.55fr));align-items:center;gap:8px;padding:10px 14px;border-top:1px solid #eef1f4;font-size:9px}.excel-history-list b,.excel-history-list small{display:block}.excel-history-list small{font-size:8px;color:#8894a1;margin-top:3px}.excel-history-list .has-error{color:#b94239;font-weight:800}.excel-history-empty{display:block!important;color:#8693a0}
.excel-floating-import{display:block;margin:14px 0 0 auto}.excel-modal-preview{border:1px solid #dfe6ed;background:#f8fafc;border-radius:9px;padding:12px}.excel-modal-preview b,.excel-modal-preview span{display:block}.excel-modal-preview b{font-size:11px}.excel-modal-preview span{font-size:9px;color:#778696;margin-top:5px}
@media(max-width:1100px){.excel-module-grid{grid-template-columns:1fr 1fr}.excel-history-list>div{grid-template-columns:1fr 80px 80px}.excel-history-list>div span:nth-child(4),.excel-history-list>div span:nth-child(5){display:none}}
@media(max-width:760px){.excel-hub-v4624{padding:14px}.excel-module-grid{grid-template-columns:1fr}.excel-summary-bar{align-items:flex-start;flex-direction:column}.excel-section-head{align-items:flex-start}.excel-history-list>div{grid-template-columns:1fr 70px}}

/* === V46.25 EXCEL INSTANT SYNC ONLY === */
.excel-hub-v4625{padding:22px 28px 44px;background:#f5f6fa;min-height:100%}.excel-center-card{background:#fff;border:1px solid #e1e6ed;border-radius:12px;padding:18px;min-height:380px}.excel-center-head{display:flex;justify-content:space-between;align-items:center;gap:18px;padding-bottom:14px}.excel-center-head h3{font-size:15px;margin:0 0 5px}.excel-center-head p{font-size:9.5px;color:#7b8794;margin:0}.excel-pick-btn{min-width:185px;background:#eef6ff;border-color:#a9bfd7;color:#244d74;font-weight:800}.excel-hub-v4625 .excel-intro-card{margin:0}.excel-hub-v4625 .excel-recognition-banner{margin:14px 0 0}.excel-detected-area{margin-top:6px}.excel-detected-area.hidden,.excel-recognition-banner.hidden,.excel-instant-status.hidden{display:none!important}.excel-hub-v4625 .excel-module-grid{padding:0}.excel-hub-v4625 .excel-section-head{padding-left:0;padding-right:0}.excel-hub-v4625 .excel-summary-bar{margin-left:0;margin-right:0}.excel-history-block{border-top:1px solid #e8ecf1;margin-top:18px;padding-top:3px}.excel-history-block .excel-history-list>div{grid-template-columns:1fr auto}.excel-instant-status{margin-top:14px;border:1px solid #cee1ed;background:#f7fbfe;border-radius:10px;padding:13px 14px}.excel-instant-status>div:first-child{display:flex;justify-content:space-between;gap:15px}.excel-instant-status b{font-size:10.5px}.excel-instant-status span{font-size:9px;color:#708090}.excel-instant-track{height:7px;border-radius:999px;background:#e3eaf0;overflow:hidden;margin-top:9px}.excel-instant-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,#2d77bd,#269b80);transition:width .2s}.excel-confirm-box{text-align:center;padding:6px 4px 12px}.excel-confirm-icon{width:50px;height:50px;border-radius:50%;margin:0 auto 10px;background:#e8f7f1;color:#218467;display:grid;place-items:center;font-size:24px;font-weight:900}.excel-confirm-box h3{font-size:17px;margin:0 0 8px}.excel-confirm-box>p{font-size:10.5px;color:#697988;line-height:1.5}.excel-confirm-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:13px 0}.excel-confirm-list span{display:flex;justify-content:space-between;border:1px solid #e3e8ed;border-radius:8px;padding:8px 9px;font-size:9px}.excel-confirm-list em{font-style:normal;color:#718293}.excel-confirm-note{font-size:9px;line-height:1.45;background:#fff8e8;border:1px solid #eadbb6;border-radius:8px;padding:9px;color:#806b3a}
@media(max-width:800px){.excel-center-head{align-items:flex-start;flex-direction:column}.excel-pick-btn{width:100%}.excel-confirm-list{grid-template-columns:1fr}}


/* V46.25.1.5.1.6.2 — Payment source-exact module */
.payment-reference-v162{overflow:hidden}
.payment-reference-v162 .module-reference-head{padding:24px 28px 12px}
.payment-reference-v162 .module-reference-head h3{font-size:21px;margin:0 0 5px}
.payment-reference-v162 .module-reference-head p{font-size:12px;color:#7c8794;margin:0}
.payment-reference-v162 .module-filters{display:grid;grid-template-columns:minmax(520px,1.65fr) minmax(300px,.85fr) auto;gap:12px;align-items:center;padding:8px 28px 15px}
.payment-reference-v162 .module-filters select,.payment-reference-v162 .module-filters input{height:48px;border:1px solid #d8dee7;border-radius:7px;background:#fff;padding:0 13px;font-size:14px}
.payment-reference-v162 .module-kpis{padding:0 28px 18px;gap:12px}
.payment-reference-v162 .module-kpis>div{min-height:80px;padding:15px 18px;border:1px solid #e1e6ec;border-radius:9px;background:#fff}
.payment-reference-v162 .module-kpis span{font-size:11px;color:#7a8794}
.payment-reference-v162 .module-kpis b{font-size:18px;margin-top:7px}
.payment-reference-v162 .payment-reference-table th{font-size:11px!important;padding:13px 15px!important}
.payment-reference-v162 .payment-reference-table td{font-size:13px!important;padding:16px 15px!important;vertical-align:top}
.payment-reference-v162 .payment-reference-table td>b{display:block;font-size:13px!important;line-height:1.4}
.payment-reference-v162 .payment-reference-table td small{display:block;font-size:10.5px!important;color:#7d8996;line-height:1.4;margin-top:4px}
@media(max-width:1150px){.payment-reference-v162 .module-filters{grid-template-columns:1fr 1fr}.payment-reference-v162 .module-filters .record-count{justify-self:start}}


/* V46.25.1.5.1.6.3.4 — Progress update UI only */
.progress-update-modal-body{padding:0!important;overflow:auto!important;max-height:calc(100vh - 120px)}
.progress-update-shell{padding:18px 20px 22px}
.progress-update-task{background:#f6f7fb;border-radius:8px;padding:13px 14px;margin-bottom:14px}
.progress-update-task>b{display:block;color:#245ca8;font-size:14px;margin-bottom:5px}
.progress-update-task>strong{display:block;font-size:13px;line-height:1.4;color:#17243a;margin-bottom:5px}
.progress-update-task>small{display:block;color:#798594;font-size:11px}
.progress-update-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.progress-update-form .field.full{grid-column:1/-1}
.progress-update-form .field label{font-size:11px;font-weight:700;color:#596676;margin-bottom:6px}
.progress-update-form input,.progress-update-form select,.progress-update-form textarea{width:100%;border:1px solid #d9dfe7;border-radius:7px;background:#fff;font-size:12px;padding:10px 11px}
.progress-update-form input,.progress-update-form select{height:42px}
.progress-save-wide{width:100%;height:42px;margin:14px 0 4px}
.progress-update-section{border-top:1px solid #edf0f4;margin-top:14px;padding-top:14px}
.progress-section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.progress-section-title>b{font-size:12px}
.progress-section-title>span{font-size:10px;color:#8a94a1}
.progress-history-list,.progress-discussion-list{display:flex;flex-direction:column;gap:8px}
.progress-history-item,.progress-discussion-item{border:1px solid #e7ebf0;border-radius:7px;padding:9px 10px;background:#fff}
.progress-history-item>div,.progress-discussion-item>div{display:flex;justify-content:space-between;gap:10px;align-items:center}
.progress-history-item b{font-size:12px;color:#1d5a9b}
.progress-history-item span{font-size:10px;color:#687687;margin-left:7px}
.progress-history-item small,.progress-discussion-item small{font-size:9.5px;color:#97a0aa}
.progress-history-item p,.progress-discussion-item p{font-size:11px;line-height:1.45;margin:6px 0 0;color:#4a5665}
.progress-empty-line{border:1px solid #e7ebf0;border-radius:7px;padding:13px;text-align:center;font-size:10px;color:#939ca7}
.progress-discussion-input{width:100%;margin-top:10px;border:1px solid #ccd7e5;border-radius:7px;padding:10px 11px;font-size:12px;resize:vertical}
.progress-discussion-actions{display:flex;justify-content:flex-end;margin-top:8px}
.progress-discussion-actions .btn{height:34px;padding:0 14px;font-size:11px}
.progress-cell-inline{display:flex;align-items:center;gap:8px;min-width:95px}
.progress-cell-inline .mini-bar{flex:1;min-width:55px}
.progress-cell-inline>b{font-size:11px;white-space:nowrap}
.progress-update-btn{height:31px!important;min-width:62px!important;padding:0 9px!important;font-size:10.5px!important;border-radius:7px!important}
.schedule-kan-card .kan-due-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.schedule-kan-card .kan-percent{margin-left:auto;font-size:11px}
.schedule-kan-card .kan-action-row{display:flex;align-items:center;justify-content:space-between;margin-top:7px}
.schedule-kan-card .kan-action-row .link-btn{margin-left:auto;font-size:10.5px}
.schedule-kan-card .kan-status-mini{font-size:9.5px;color:#7d8997;white-space:nowrap}
.progress-ref-table .task-secondary{font-size:10px!important;color:#7c8795!important;margin-top:3px!important}
.progress-ref-table td{vertical-align:middle}
@media(max-width:720px){.progress-update-form{grid-template-columns:1fr}.progress-update-form .field.full{grid-column:auto}}
.project-finance-note{margin-top:-6px;color:var(--muted)}.pd-project-investment{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.pd-investment-card{background:#fff;border:1px solid var(--line,#e5e7eb);border-radius:14px;padding:16px 18px;box-shadow:0 4px 18px rgba(15,35,60,.04)}.pd-investment-card span{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;color:#47708e;margin-bottom:7px}.pd-investment-card b{display:block;font-size:22px;color:#102a43;line-height:1.2}.pd-investment-card small{display:block;margin-top:6px;color:#7b8794}@media(max-width:800px){.pd-project-investment{grid-template-columns:1fr}}
/* V46.25.1.5.1.6.3.4.2.5 - isolated Data Administration UI */
.data-admin-panel{margin-top:16px}.data-admin-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.data-admin-kpis>div{border:1px solid #e3e9f1;border-radius:12px;padding:14px;background:#fafcff}.data-admin-kpis span,.data-admin-kpis small{display:block;color:#66758a}.data-admin-kpis b{display:block;font-size:20px;margin:5px 0}.data-admin-preserve{border:1px solid #cfe6dc;background:#f4fbf8;border-radius:12px;padding:14px}.data-admin-preserve p{display:flex;flex-wrap:wrap;gap:8px;margin:9px 0 0}.data-admin-preserve span{background:white;border:1px solid #d8ebe3;border-radius:999px;padding:5px 9px}.data-admin-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0}.data-admin-list>span{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #edf0f4;padding:8px}.data-admin-list em{font-style:normal;color:#66758a}.data-admin-danger{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #f0c8c8;background:#fff8f8;border-radius:12px;padding:15px}.data-admin-danger p{margin:4px 0;color:#765}.data-clear-warning{border:1px solid #efb8b8;background:#fff5f5;border-radius:12px;padding:14px;margin-bottom:12px}.data-clear-keep{border:1px solid #cfe6dc;background:#f5fbf8;border-radius:12px;padding:14px;margin-bottom:14px}.data-clear-warning p,.data-clear-keep p{margin:6px 0 0}.btn.danger-outline{border-color:#c93434;color:#b42323;background:#fff}.btn.danger-outline:hover{background:#fff0f0}@media(max-width:900px){.data-admin-kpis,.data-admin-list{grid-template-columns:1fr}.data-admin-danger{align-items:flex-start;flex-direction:column}}
.staff-module{overflow:hidden}.staff-module-head{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 20px 10px}.staff-module-head h3{margin:0 0 4px;font-size:20px}.staff-module-head p{margin:0;color:#6b778c}.staff-count{background:#f3f6fa;border-radius:999px;padding:7px 12px;font-weight:700;color:#536478}.staff-toolbar{display:grid;grid-template-columns:minmax(320px,1fr) minmax(260px,360px);gap:12px;padding:12px 20px}.staff-toolbar select,.staff-toolbar input{height:44px;border:1px solid #dfe5ec;border-radius:9px;padding:0 13px;background:white;font-size:14px}.staff-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:4px 20px 14px}.staff-kpis>div{border:1px solid #e5e9ef;border-radius:10px;background:#fbfcfe;padding:14px 16px}.staff-kpis span{display:block;color:#758196;font-size:12px;margin-bottom:8px}.staff-kpis b{font-size:18px}.staff-sheet-guide{margin:0 20px 14px;padding:16px;border:1px solid #dbe7f2;border-radius:12px;background:#f6faff}.staff-sheet-guide-top{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}.staff-sheet-badge{background:#1765ae;color:white;border-radius:6px;padding:8px 12px;font-size:11px;font-weight:800}.staff-sheet-guide-top b,.staff-sheet-guide-top small{display:block}.staff-sheet-guide-top small{color:#748197;margin-top:4px}.staff-guide-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.staff-guide-row>b{min-width:138px;font-size:12px}.staff-guide-row>span{font-size:11px;border:1px solid #dbe4ef;background:white;border-radius:999px;padding:5px 9px;color:#617086}.staff-table th{white-space:nowrap}.staff-table td{vertical-align:top}.staff-table td b,.staff-table td small{display:block}.staff-table td small{color:#7b8797;margin-top:4px}.staff-allocation{min-width:95px}.staff-allocation>b{font-size:13px;text-align:right;margin-bottom:5px}.staff-allocation>span{display:block;height:5px;border-radius:99px;background:#edf1f5;overflow:hidden}.staff-allocation i{display:block;height:100%;background:linear-gradient(90deg,#2f72c6,#16a085);border-radius:99px}.form-spacer{flex:1}@media(max-width:900px){.staff-toolbar,.staff-kpis{grid-template-columns:1fr}.staff-sheet-guide-top{grid-template-columns:1fr}}
/* V46.25.1.5.1.6.3.4.2.7 - Issues module only */
.issue-shell{overflow:hidden}.issue-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:20px 20px 12px}.issue-head h3{margin:0 0 4px;font-size:19px}.issue-head p{margin:0;color:#728096}.issue-add{min-width:110px}.issue-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 20px 14px}.issue-kpis>div{border:1px solid #e2e7ee;border-radius:9px;background:#fbfcfe;padding:14px 15px;min-height:70px}.issue-kpis b{display:block;font-size:18px;margin-bottom:8px}.issue-kpis span{font-size:11px;color:#748196}.issue-kpis>div:nth-child(1) b{color:#d88713}.issue-kpis>div:nth-child(2) b{color:#bd2626}.issue-kpis>div:nth-child(3) b{color:#bd2626}.issue-kpis>div:nth-child(4) b{color:#1b8060}.issue-filters{display:grid;grid-template-columns:minmax(320px,1fr) 180px auto;align-items:center;gap:10px;padding:0 20px 14px}.issue-filters select{height:42px;border:1px solid #dfe5ec;border-radius:8px;background:white;padding:0 12px}.issue-filters>span{text-align:right;color:#657286;font-size:12px}.issue-table th{white-space:nowrap}.issue-table td{vertical-align:top}.issue-table td>b,.issue-table td>small{display:block}.issue-table td>small{color:#7b8797;margin-top:4px;line-height:1.4}.issue-type,.issue-severity{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700;white-space:nowrap}.issue-type.risk{background:#f4ecff;color:#7c45a3}.issue-type.block{background:#eaf3ff;color:#366c9e}.issue-severity.medium{background:#fff3cf;color:#93670a}.issue-severity.high{background:#ffe5d6;color:#b74a18}.issue-severity.critical{background:#ffe1e1;color:#ad2525}.issue-severity.low{background:#e9f6ee;color:#28744d}.issue-overdue{color:#b42318!important;font-weight:700}.issue-form textarea{resize:vertical}.issue-form-actions .btn.primary{min-width:190px}.issue-form-actions{position:sticky;bottom:0;background:#fff;padding-top:12px}.modal.open .modal-dialog:has(.issue-form){max-width:540px}.modal.open .modal-dialog:has(.issue-form) .modal-body{max-height:74vh;overflow:auto}@media(max-width:900px){.issue-kpis{grid-template-columns:repeat(2,1fr)}.issue-filters{grid-template-columns:1fr}.issue-filters>span{text-align:left}}
/* V46.25.1.5.1.6.3.4.2.6.2 - Legal Web Entry */
.legal-entry-form .field label{font-weight:700}.legal-entry-form input,.legal-entry-form select,.legal-entry-form textarea{width:100%}.legal-form-note{margin:2px 0 14px;padding:10px 12px;border:1px solid #dce8f2;border-radius:9px;background:#f7fbff;color:#617186;font-size:12px;line-height:1.5}.legal-reference-table th{white-space:nowrap}.legal-reference-table td{vertical-align:top}.legal-reference-table td small{display:block;margin-top:4px;color:#788597;line-height:1.4}.legal-reference-table td:nth-child(2){min-width:250px}.legal-reference-table td:nth-child(4){min-width:210px}.legal-reference-table td:nth-child(5){min-width:190px}.legal-reference-table .btn.compact{white-space:nowrap}@media(max-width:900px){.legal-entry-form{grid-template-columns:1fr}}

/* V46.25.1.5.1.6.3.4.2.6.4 - plan before contract */
.cashflow-web-form #cfCarryPlan + small{display:block;color:#6f7d90;font-size:11px;line-height:1.45;margin-top:5px}
.cashflow-table td:nth-child(2) b{max-width:260px}

/* Approval Document Workflow 4.2.6.5 */
.approval-flow-help{display:block;color:#728096;font-size:11px;line-height:1.4;margin-top:5px}.approval-attachment-picker{border:1px dashed #cbd6e2;border-radius:10px;padding:14px;background:#f9fbfd}.approval-file-action{display:flex;align-items:center;gap:12px}.approval-file-action>span{color:#65758a;font-size:12px}.approval-file-list{display:grid;gap:6px;margin-top:10px}.approval-file-list>span{display:flex;justify-content:space-between;gap:12px;border:1px solid #e2e7ed;background:white;border-radius:8px;padding:8px 10px;font-size:12px}.approval-file-list em{font-style:normal;color:#7a8798}.approval-attach-count{white-space:nowrap;color:#536981;font-weight:700}.approval-detail-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;border-bottom:1px solid #e8edf2;padding-bottom:13px}.approval-detail-head h3{margin:3px 0 4px}.approval-detail-head p,.approval-detail-head small{margin:0;color:#6d7a8d}.approval-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}.approval-detail-grid>div{border:1px solid #e4e9ef;border-radius:9px;padding:10px;background:#fbfcfe}.approval-detail-grid label,.approval-detail-grid small{display:block;color:#7b8797;font-size:11px}.approval-detail-grid b{display:block;margin-top:5px}.approval-note,.approval-documents,.approval-decision-note,.approval-decision-box{border:1px solid #e2e7ed;border-radius:10px;padding:13px;margin-top:12px}.approval-note label,.approval-decision-note label,.approval-decision-box>label{font-size:12px;font-weight:700}.approval-note p,.approval-decision-note p{margin:7px 0 0;white-space:pre-wrap}.approval-doc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.approval-doc-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid #edf0f4}.approval-doc-row small{display:block;color:#7b8797;margin-top:3px}.approval-decision-box{background:#f8fbff}.approval-decision-box textarea{width:100%;margin-top:7px}.approval-readonly-note{margin-top:12px;padding:11px;border-radius:9px;background:#fff8e7;color:#765b19}@media(max-width:900px){.approval-detail-grid{grid-template-columns:1fr}.approval-file-action{align-items:flex-start;flex-direction:column}}

/* V46.25.1.5.1.6.3.4.2.6.5.2 - Approval project authority + compact action */
.approval-table th:last-child,.approval-table td:last-child{width:112px;min-width:112px;text-align:center;padding-left:8px;padding-right:8px}
.approval-action-btn{display:inline-flex!important;align-items:center;justify-content:center;white-space:nowrap!important;width:auto!important;min-width:88px;max-width:100px;height:34px;padding:0 10px!important;line-height:1!important;font-size:12px!important;border-radius:8px!important;margin:0 auto}
.approval-table td:last-child .approval-action-btn{vertical-align:middle}

/* V46.25.1.5.1.6.3.4.2.6.5.3 - Commercial Operations Final */
.commercial-hero{display:grid;grid-template-columns:1.35fr .55fr .7fr;align-items:center;gap:24px;margin:0 0 16px;padding:28px 28px;border-radius:16px;background:linear-gradient(108deg,#0b2749 0%,#174e84 62%,#147b78 100%);color:#fff;min-height:150px;overflow:hidden;position:relative}.commercial-hero:after{content:"";position:absolute;right:-80px;top:-130px;width:380px;height:380px;border-radius:50%;border:1px solid rgba(255,255,255,.08);box-shadow:0 0 0 55px rgba(255,255,255,.025),0 0 0 110px rgba(255,255,255,.018)}.commercial-hero>*{position:relative;z-index:1}.commercial-hero small{font-size:10px;font-weight:800;letter-spacing:1.6px;color:#a9c5e2}.commercial-hero h2{margin:13px 0 18px;font-size:25px;font-weight:600}.commercial-badges{display:flex;gap:8px}.commercial-badges span{font-size:11px;font-weight:700;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.25)}.commercial-badges .good{background:#e9fff4;color:#17704f;border-color:#c6f2dc}.commercial-readiness-ring{width:95px;height:95px;border-radius:50%;background:conic-gradient(#55dda5 calc(var(--p)*1%),rgba(255,255,255,.16) 0);display:grid;place-items:center;margin:auto}.commercial-readiness-ring:before{content:"";position:absolute}.commercial-readiness-ring>div{width:75px;height:75px;border-radius:50%;background:#174d7c;display:grid;place-content:center;text-align:center}.commercial-readiness-ring b{font-size:22px}.commercial-readiness-ring span{font-size:9px;color:#c7d7e8;margin-top:2px}.commercial-hero-action{text-align:right}.commercial-hero-action p{font-size:12px;margin:0 0 12px}.commercial-hero-action .btn{background:#fff;color:#162941;border:0;padding:11px 16px;font-weight:700}.commercial-usage{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.commercial-usage>div{background:#fff;border:1px solid #e3e8ef;border-radius:12px;padding:16px;min-height:112px}.commercial-usage span{display:flex;justify-content:space-between;color:#68768a;font-size:11px}.commercial-usage em{font-style:normal;color:#536477}.commercial-usage b{display:block;font-size:22px;margin:12px 0 8px}.commercial-usage b small{font-size:12px;color:#8190a3;font-weight:500}.commercial-usage i{display:block;height:5px;border-radius:99px;background:#edf1f5;overflow:hidden}.commercial-usage i u{display:block;height:100%;background:#3178cd;border-radius:99px}.commercial-usage>div>small{display:block;margin-top:8px;color:#7b8797;font-size:11px}.commercial-usage .dot{width:9px;height:9px;border-radius:50%;background:#21a57d}.commercial-two{display:grid;grid-template-columns:1.2fr 1fr;gap:14px;margin-bottom:16px}.commercial-ready,.commercial-info{padding:0}.commercial-ready .panel-head,.commercial-info .panel-head,.commercial-onboarding .panel-head,.commercial-support .panel-head{padding:18px 20px 14px;margin:0;border-bottom:1px solid #e8edf3}.commercial-ready .panel-head b{font-size:20px;color:#245689}.readiness-checks{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:14px 18px 18px}.readiness-checks>div{display:flex;align-items:center;gap:11px;border:1px solid #e5e9ef;border-radius:9px;padding:10px;background:#fbfcfe}.readiness-checks>div>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-weight:800}.readiness-checks .done>span{background:#e8f8f1;color:#1e936a}.readiness-checks .todo>span{background:#fff5df;color:#cf8313}.readiness-checks b,.readiness-checks small{display:block}.readiness-checks b{font-size:12px}.readiness-checks small{font-size:10px;color:#7b8797;margin-top:3px}.link-btn{background:none;border:0;color:#2461a0;font-weight:700;cursor:pointer;padding:4px}.commercial-info-grid{display:grid;grid-template-columns:1fr 1fr;padding:10px 20px}.commercial-info-grid>div{padding:12px 4px;border-bottom:1px solid #edf0f4}.commercial-info-grid label,.commercial-info-grid b{display:block}.commercial-info-grid label{font-size:10px;color:#7b8797;margin-bottom:5px}.commercial-info-grid b{font-size:12px}.commercial-renewal{margin:0 20px 17px;padding:11px;background:#f5f7fa;border-radius:7px;color:#68768a;font-size:11px}.commercial-onboarding,.commercial-support{margin-bottom:16px}.commercial-onboarding .panel-head>span{background:#e8faf4;color:#178467;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800}.onboarding-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px 18px 20px}.onboarding-card{border:1px solid #e3e8ee;border-radius:11px;padding:16px;min-height:150px}.onboarding-card.active{background:#f7f9ff;border-color:#aac4e8}.onboarding-top{display:flex;align-items:center;gap:10px}.onboarding-top>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#eef2f6;font-weight:800}.onboarding-card.active .onboarding-top>span{background:#3475c7;color:#fff}.onboarding-card h4{font-size:13px;margin:14px 0 6px}.onboarding-card p{font-size:11px;color:#68768a;min-height:30px;margin:0 0 15px}.onboarding-card>small{display:block;color:#8894a3;font-size:10px;margin-bottom:8px}.commercial-support-table td{vertical-align:top}.commercial-support-table td b,.commercial-support-table td small{display:block}.commercial-support-table td small{color:#7c8898;margin-top:4px}.support-sender{background:#f6f7fb;border-radius:8px;padding:13px;margin-bottom:14px}.support-sender b,.support-sender small{display:block}.support-sender small{color:#748195;margin-top:5px}.support-submit{min-width:180px}.commercial-config-form{grid-template-columns:1fr 1fr}.commercial-config-form .field.full{grid-column:1/-1}.modal.open .modal-dialog:has(.commercial-config-form){max-width:820px}.modal.open .modal-dialog:has(.commercial-config-form) .modal-body{max-height:76vh;overflow:auto}@media(max-width:1050px){.commercial-hero{grid-template-columns:1fr auto}.commercial-hero-action{grid-column:1/-1;text-align:left}.commercial-usage{grid-template-columns:repeat(2,1fr)}.commercial-two{grid-template-columns:1fr}.onboarding-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.commercial-hero{grid-template-columns:1fr}.commercial-readiness-ring{margin:0}.commercial-usage,.onboarding-grid,.readiness-checks,.commercial-info-grid,.commercial-config-form{grid-template-columns:1fr}.commercial-config-form .field.full{grid-column:auto}}

/* Company Setup Final 4.2.6.5.4 */
.company-hero{display:grid;grid-template-columns:78px 1fr auto;align-items:center;gap:16px;padding:22px 26px;margin:0 0 18px;border-radius:0 0 16px 16px;background:linear-gradient(105deg,#102847 0%,var(--brand,#12233f) 62%,#1b7775 100%);color:#fff;min-height:100px}.company-logo-hero{width:66px;height:66px;border-radius:12px;background:#fff;color:#172b48;display:grid;place-items:center;overflow:hidden;font-size:21px;font-weight:800}.company-logo-hero img{width:100%;height:100%;object-fit:contain}.company-hero h2{margin:0 0 4px;font-size:24px}.company-hero b{font-size:12px}.company-hero p{font-size:10px;color:#c5d4e4;margin:8px 0 0}.company-hero>span{align-self:start;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:8px 12px;font-size:10px}.company-success{display:flex;justify-content:space-between;align-items:center;background:#eefbf5;color:#31735d;border:1px solid #cdeedf;border-radius:8px;padding:13px 15px;margin-bottom:16px;font-size:12px}.company-success button{border:0;background:none;font-size:18px;color:#417d69;cursor:pointer}.company-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:16px}.company-profile-panel,.company-backup-panel{padding:0;overflow:hidden}.company-profile-panel .panel-head,.company-backup-panel .panel-head{padding:18px 20px 14px;margin:0;border-bottom:1px solid #e8edf2}.company-change-badge{background:#eaf9f2;color:#21805f;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:700}.company-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:18px 20px 4px}.company-form-grid .field.full{grid-column:1/-1}.company-form-grid label{font-size:11px;font-weight:700}.company-form-grid input,.company-form-grid select{height:42px}.company-color-wrap{display:grid;grid-template-columns:50px 1fr;gap:7px}.company-color-wrap input[type=color]{padding:3px}.company-save-btn{margin:8px 20px 16px}.company-logo-upload{display:grid;grid-template-columns:1fr minmax(130px,210px) auto;align-items:center;gap:12px;border-top:1px solid #edf0f4;margin:0 20px;padding:14px 0 18px}.company-logo-upload b,.company-logo-upload small{display:block}.company-logo-upload small,.company-logo-upload>span{font-size:10px;color:#768497}.company-safe-note{display:flex;align-items:flex-start;gap:12px;margin:16px 20px;background:#eaf8f2;border-radius:8px;padding:13px}.company-safe-note>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#1f9d76;color:white;font-weight:900}.company-safe-note b,.company-safe-note small{display:block}.company-safe-note small{font-size:10px;color:#6e7e7a;margin-top:3px}.company-backup-list{border-top:1px solid #eef1f4}.company-backup-row{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;padding:13px 20px;border-bottom:1px solid #edf0f4}.backup-json{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#eef5ff;color:#3569a7;font-size:10px;font-weight:800}.company-backup-row b,.company-backup-row small,.company-backup-row em{display:block}.company-backup-row b{font-size:11px}.company-backup-row small{font-size:9px;color:#718095;margin-top:3px}.company-backup-row em{font-style:normal;font-size:9px;color:#8591a0;margin-top:4px}.company-backup-row>div:last-child{display:flex;gap:6px}.company-backup-foot{padding:12px 20px;color:#7a8796;font-size:9px}.company-no-backup{padding:30px 20px;text-align:center;color:#768497;font-size:11px}@media(max-width:1050px){.company-layout{grid-template-columns:1fr}}@media(max-width:700px){.company-hero{grid-template-columns:64px 1fr}.company-hero>span{grid-column:1/-1;justify-self:start}.company-form-grid{grid-template-columns:1fr}.company-form-grid .field.full{grid-column:auto}.company-logo-upload,.company-backup-row{grid-template-columns:1fr}.company-backup-row>div:last-child{justify-content:flex-start}}

/* V46.25.1.5.1.6.3.4.2.6.5.4.1 - Company Setup Actions Fix */
.company-action-status{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-2px 0 16px;padding:11px 14px;border-radius:8px;border:1px solid}.company-action-status.ok{background:#effaf5;border-color:#cfeadf;color:#276b55}.company-action-status.warn{background:#fff8e8;border-color:#ecdcae;color:#8a671d}.company-action-status b{font-size:11px}.company-action-status span{font-size:10px}.company-main-actions{display:flex;align-items:center;gap:14px;padding:6px 20px 18px}.company-main-actions small{color:#748195}.company-logo-section{display:grid;grid-template-columns:76px 1fr auto;gap:14px;align-items:center;border-top:1px solid #e8edf2;padding:18px 20px}.company-logo-preview{width:70px;height:70px;border:1px solid #dbe3ec;border-radius:11px;background:#f8fafc;display:grid;place-items:center;overflow:hidden;font-weight:800;font-size:20px;color:#24405f}.company-logo-preview img{width:100%;height:100%;object-fit:contain}.company-logo-copy b,.company-logo-copy p,.company-logo-copy span{display:block}.company-logo-copy p{margin:4px 0;color:#748195;font-size:10px}.company-logo-copy span{font-size:10px;color:#46576b;font-weight:600}.company-logo-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.company-no-backup b,.company-no-backup p{display:block;margin:0}.company-no-backup p{margin-top:5px}@media(max-width:760px){.company-action-status{align-items:flex-start;flex-direction:column}.company-main-actions{align-items:flex-start;flex-direction:column}.company-logo-section{grid-template-columns:70px 1fr}.company-logo-actions{grid-column:1/-1;justify-content:flex-start}}

/* V46.25.1.5.1.6.3.4.2.6.5.5 - Admin Access Control Final */
.admin-access-hero{display:grid;grid-template-columns:1.1fr .95fr;gap:28px;background:linear-gradient(108deg,#102c51 0%,#174b82 62%,#147d75 100%);color:white;border-radius:16px;padding:26px;margin-bottom:16px}.admin-access-copy>small{font-size:10px;letter-spacing:1.5px;font-weight:800;color:#b7cce2}.admin-access-copy h2{font-size:25px;margin:13px 0 12px}.admin-access-copy>p{font-size:11px;line-height:1.6;color:#d7e3ee;max-width:650px}.admin-owner-protect{display:flex;align-items:center;gap:12px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);border-radius:9px;padding:13px;margin-top:18px}.admin-owner-protect>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#42d6a0;color:#073f3a;font-weight:900}.admin-owner-protect b,.admin-owner-protect small{display:block}.admin-owner-protect b{font-size:11px}.admin-owner-protect small{font-size:9px;color:#d7e4ed;margin-top:3px}.admin-grant-box{border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.09);border-radius:12px;padding:18px}.admin-grant-box h3{margin:0 0 3px;font-size:14px}.admin-grant-box>small{font-size:9px;color:#d5e2eb}.admin-grant-grid{display:grid;grid-template-columns:.7fr 1.2fr;gap:10px;margin:12px 0}.admin-grant-grid .full{grid-column:1/-1}.admin-grant-grid label{color:white;font-size:10px}.admin-grant-grid input,.admin-grant-grid select{height:38px;background:white}.admin-grant-box>.btn{background:#fff;color:#132944;border:0;font-weight:700}.admin-access-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.admin-access-kpis>div{background:#fff;border:1px solid #e2e7ed;border-radius:11px;padding:16px}.admin-access-kpis span{display:flex;justify-content:space-between;color:#748195;font-size:10px}.admin-access-kpis span i{width:8px;height:8px;border-radius:2px;background:#5c91df}.admin-access-kpis>div:nth-child(2) span i{background:#1eaa7e}.admin-access-kpis>div:nth-child(3) span i{background:#df9617}.admin-access-kpis>div:nth-child(4) span i{background:#d84b3e}.admin-access-kpis b{display:block;font-size:22px;margin:12px 0 7px}.admin-access-kpis small{color:#7c8997;font-size:9px}.admin-access-list,.admin-support-log{padding:0;margin-bottom:16px;overflow:hidden}.admin-access-list .panel-head,.admin-support-log .panel-head{padding:17px 18px 13px;margin:0;border-bottom:1px solid #e8edf2}.admin-access-filter{display:flex;gap:8px}.admin-access-filter input,.admin-access-filter select{height:36px;border:1px solid #dce3ea;border-radius:7px;padding:0 10px;font-size:10px}.admin-access-filter input{width:210px}.admin-access-table td{vertical-align:middle}.admin-user-cell{display:flex;align-items:flex-start;gap:10px}.admin-user-cell>span{display:grid;place-items:center;width:34px;height:34px;min-width:34px;border-radius:50%;background:#ece6ff;color:#647085;font-size:9px}.admin-user-cell b,.admin-user-cell small,.admin-user-cell i{display:block}.admin-user-cell b{font-size:11px}.admin-user-cell b em{font-style:normal;font-size:8px;color:#6d5ca5;margin-left:4px;background:#f1ecff;padding:2px 4px;border-radius:5px}.admin-user-cell small{font-size:9px;color:#7b8797;margin-top:3px}.admin-user-cell i{font-style:normal;font-size:8px;color:#929ba8;margin-top:3px}.admin-role-select{height:34px;min-width:110px;border:1px solid #d8dfe7;border-radius:6px;background:#fff;padding:0 8px}.admin-role-fixed{display:inline-block;padding:8px 11px;background:#f0f3f7;border:1px solid #dfe4ea;border-radius:6px;color:#677586}.admin-role-note{display:block;font-size:8px;color:#92805b;margin-top:5px}.admin-access-status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:700}.admin-access-status i{width:6px;height:6px;border-radius:50%}.admin-access-status.active{background:#eaf9f3;color:#147653}.admin-access-status.active i{background:#18a873}.admin-access-status.pending{background:#fff4dc;color:#956817}.admin-access-status.pending i{background:#e19a15}.admin-access-status.blocked{background:#fff0ee;color:#a54c43}.admin-access-status.blocked i{background:#d94c41}.admin-access-table td>b,.admin-access-table td>small{display:block}.admin-access-table td>small{font-size:8px;color:#8894a2;margin-top:4px}.admin-access-foot{display:flex;justify-content:space-between;padding:10px 18px;background:#fafbfd;color:#7c8795;font-size:9px}.admin-support-log .panel-head>span{background:#eaf8f2;color:#2a7c61;border-radius:999px;padding:6px 9px;font-size:9px}.admin-empty-log{text-align:center;padding:38px;color:#7b8795}.admin-data-lower{margin-top:16px}@media(max-width:1050px){.admin-access-hero{grid-template-columns:1fr}.admin-access-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.admin-access-kpis{grid-template-columns:1fr}.admin-grant-grid{grid-template-columns:1fr}.admin-grant-grid .full{grid-column:auto}.admin-access-filter{flex-direction:column}.admin-access-filter input{width:auto}}

/* V46.25.1.5.1.6.3.4.2.6.5.5.3 - Supplier Center Portal Final */
.supplier2-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:14px}.supplier2-kpis>div{background:#fff;border:1px solid #e2e8ef;border-radius:11px;padding:14px}.supplier2-kpis span,.supplier2-kpis small{display:block;color:#718095;font-size:10px}.supplier2-kpis b{display:block;font-size:21px;margin:9px 0 4px}.supplier2-main{padding:0;overflow:hidden}.supplier2-toolbar{display:flex;gap:10px;padding:14px}.supplier2-toolbar input,.supplier2-toolbar select{height:39px;border:1px solid #dce3eb;border-radius:8px;padding:0 11px}.supplier2-toolbar input{flex:1}.supplier2-info{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.supplier2-info>.panel{padding:18px}.supplier2-info h3{margin:0 0 13px}.supplier2-benefits{display:grid;grid-template-columns:1fr 1fr;gap:10px}.supplier2-benefits>div{border:1px solid #e5eaf0;border-radius:9px;padding:12px}.supplier2-benefits b,.supplier2-benefits span{display:block}.supplier2-benefits b{font-size:11px;color:#235da2}.supplier2-benefits span{font-size:9px;color:#718095;margin-top:5px}.supplier2-flow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:30px}.supplier2-flow span{flex:1;text-align:center;border:1px solid #dce5ef;border-radius:10px;padding:16px;font-weight:700;color:#24496f}.supplier2-flow small{display:block;font-weight:400;color:#7b8795;margin-top:6px}.supplier-wizard-note{border:1px solid #cfe5dc;background:#f1faf6;border-radius:9px;padding:12px;margin-bottom:14px}.supplier-wizard-note b,.supplier-wizard-note span{display:block}.supplier-wizard-note span{font-size:10px;color:#64786f;margin-top:5px}.supplier-domain{display:flex}.supplier-domain input{border-radius:8px 0 0 8px!important}.supplier-domain span{display:flex;align-items:center;border:1px solid #dce3ea;border-left:0;border-radius:0 8px 8px 0;padding:0 10px;background:#f6f8fa;color:#687789;font-size:11px}.supplier-modules{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border:1px solid #e3e8ee;border-radius:8px;padding:12px}.supplier-modules label{font-weight:500!important}.supplier-manage-tabs{display:flex;gap:16px;border-bottom:1px solid #e5eaf0;padding-bottom:10px;margin-bottom:12px}.supplier-manage-tabs>*{font-size:10px}.supplier-manage-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.supplier-manage-summary>div{border:1px solid #e3e8ee;border-radius:8px;padding:11px}.supplier-manage-summary small,.supplier-manage-summary b{display:block}.supplier-manage-summary small{color:#7a8795;font-size:9px}.supplier-manage-summary b{margin-top:5px}.supplier-mini-list{border:1px solid #e3e8ee;border-radius:8px;margin-bottom:13px}.supplier-mini-list>div{display:flex;justify-content:space-between;align-items:center;padding:9px 11px;border-bottom:1px solid #edf0f4}.supplier-mini-list>div:last-child{border-bottom:0}.supplier-mini-list b,.supplier-mini-list small{display:block}.supplier-mini-list small{color:#7b8796;margin-top:3px}.supplier-mini-list>p{padding:12px;color:#748195}.supplier-project-add{display:flex;gap:8px;margin-bottom:8px}.supplier-project-add select{flex:1;height:38px;border:1px solid #dce3ea;border-radius:7px;padding:0 9px}@media(max-width:1100px){.supplier2-kpis{grid-template-columns:repeat(3,1fr)}.supplier2-info{grid-template-columns:1fr}}@media(max-width:700px){.supplier2-kpis,.supplier2-benefits,.supplier-manage-summary,.supplier-modules{grid-template-columns:1fr}.supplier2-flow{flex-direction:column}.supplier2-toolbar{flex-direction:column}}

/* V46.25.1.5.1.6.3.4.2.6.5.5.4 - DATA ADMIN RESTORED FINAL */
.data-admin-hero{display:grid;grid-template-columns:1fr 270px;gap:24px;align-items:center;background:linear-gradient(110deg,#122c4d 0%,#174d7d 62%,#16736f 100%);color:#fff;border-radius:16px;padding:25px 28px;margin-bottom:16px}.data-admin-hero small{font-size:9px;letter-spacing:1.4px;font-weight:800;color:#b9cee1}.data-admin-hero h2{font-size:25px;margin:9px 0}.data-admin-hero p{font-size:11px;line-height:1.6;color:#d5e2ec;max-width:720px}.data-admin-hero-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.data-admin-hero-badges span{font-size:9px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);padding:6px 9px;border-radius:999px}.data-admin-hero-kpi{border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);border-radius:13px;padding:18px;text-align:center}.data-admin-hero-kpi b{display:block;font-size:34px}.data-admin-hero-kpi span,.data-admin-hero-kpi small{display:block}.data-admin-hero-kpi span{font-size:11px;margin-top:3px}.data-admin-hero-kpi small{font-size:9px;color:#d5e1eb;margin-top:8px}.data-admin-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-bottom:16px}.data-admin-scope,.data-admin-preserved,.data-admin-final{padding:0;overflow:hidden}.data-admin-scope .panel-head,.data-admin-preserved .panel-head{padding:17px 18px 13px;margin:0;border-bottom:1px solid #e8edf2}.data-admin-scope-list,.data-admin-preserve-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 18px}.data-admin-scope-list>div,.data-admin-preserve-list>div{display:flex;gap:8px;align-items:center;border:1px solid #e8edf2;border-radius:8px;padding:9px 10px;background:#fbfcfd}.data-admin-scope-list span{color:#b75a4e}.data-admin-preserve-list span{color:#19805e}.data-admin-scope-list b,.data-admin-preserve-list b{font-size:9px}.data-admin-table td,.data-admin-table th{padding:9px 18px}.data-admin-table code{font-size:9px}.data-admin-backup-state{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid #e8edf2;margin-top:8px}.data-admin-backup-state>div{display:flex;justify-content:space-between;gap:10px;padding:12px 18px;border-bottom:1px solid #eef1f4}.data-admin-backup-state span{font-size:9px;color:#7a8795}.data-admin-backup-state b{font-size:10px}.data-admin-final{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:19px 22px;border:1px solid #efd7d2;background:#fffaf9}.data-admin-final small{color:#a46156;font-size:9px;font-weight:800}.data-admin-final h3{margin:5px 0;font-size:16px}.data-admin-final p{font-size:10px;color:#788493;max-width:760px}.data-clear-backup,.data-clear-r2{padding:11px 12px;border-radius:8px;margin-bottom:10px}.data-clear-backup{background:#edf8f3;border:1px solid #cfe8dc;color:#286650}.data-clear-r2{background:#f5f7fa;border:1px solid #e0e5eb;color:#4f6173}.data-clear-backup b,.data-clear-r2 b{display:block;font-size:10px}.data-clear-backup p,.data-clear-r2 p{font-size:9px;margin:4px 0 0}@media(max-width:1000px){.data-admin-hero,.data-admin-grid{grid-template-columns:1fr}.data-admin-hero-kpi{text-align:left}.data-admin-scope-list,.data-admin-preserve-list{grid-template-columns:1fr}}@media(max-width:650px){.data-admin-final{align-items:flex-start;flex-direction:column}}

/* V46.25.1.5.1.6.3.4.2.6.5.5.6 PROFESSIONAL GANTT FINAL */
.professional-progress-shell{padding:0!important;overflow:hidden}.progress-top-tabs{display:flex;align-items:center;gap:0;padding:14px 16px 8px;border-bottom:1px solid #e7ebf0;background:#fff}.progress-tab{border:0;background:#fff;padding:10px 15px;font-weight:700;color:#536477;border-bottom:3px solid transparent;cursor:pointer}.progress-tab.active{color:#155bd7;border-bottom-color:#155bd7}.gantt-scale{display:flex;margin-left:22px;border:1px solid #dde4ec;border-radius:8px;overflow:hidden}.gantt-scale button{border:0;border-right:1px solid #e3e8ee;background:#fff;padding:8px 13px;cursor:pointer;color:#536477}.gantt-scale button:last-child{border-right:0}.gantt-scale button.active{background:#1766e8;color:#fff}.professional-progress-filters{display:grid;grid-template-columns:150px minmax(210px,1fr) 200px 175px minmax(210px,1fr) auto auto 46px;gap:8px;align-items:center;padding:10px 16px;border-bottom:1px solid #e7ebf0}.professional-progress-filters select,.professional-progress-filters input{height:38px;font-size:12px}.professional-progress-filters .btn{height:38px;padding:0 11px;font-size:11px}.professional-gantt{--table-width:970px;overflow:auto;background:#fff;position:relative}.gantt-header-row{display:grid;grid-template-columns:var(--table-width) minmax(1050px,1fr);position:sticky;top:0;z-index:12;background:#fff;border-bottom:1px solid #dfe5eb}.gantt-table-head{display:grid;grid-template-columns:30px 34px 82px 76px 52px minmax(260px,2.2fr) 110px 82px 82px 82px 86px;align-items:center;background:#fafbfd;border-right:2px solid #dde4ec;min-width:var(--table-width)}.gantt-table-head span{padding:10px 5px;font-size:9px;font-weight:800;color:#526273;border-right:1px solid #edf0f3;text-align:center}.gantt-time-head{display:grid;min-width:1050px}.gantt-time-cell{border-right:1px solid #e6eaf0;text-align:center;padding:7px 3px;background:#fbfcfe}.gantt-time-cell b,.gantt-time-cell small{display:block}.gantt-time-cell b{font-size:9px}.gantt-time-cell small{font-size:7.5px;color:#7c8998;margin-top:2px}.gantt-body{position:relative;min-width:calc(var(--table-width) + 1050px)}.professional-gantt-row{display:grid;grid-template-columns:var(--table-width) minmax(1050px,1fr);height:46px;border-bottom:1px solid #edf0f3;position:relative}.professional-gantt-row.summary{background:#fbfcff}.professional-gantt-row.critical{background:#fff9f8}.gantt-table-row{display:grid;grid-template-columns:30px 34px 82px 76px 52px minmax(260px,2.2fr) 110px 82px 82px 82px 86px;align-items:center;min-width:var(--table-width);border-right:2px solid #dde4ec}.gantt-table-row>div{padding:4px 5px;font-size:9.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-table-row>div:not(:last-child){border-right:1px solid #f0f2f5;height:100%;display:flex;align-items:center}.gantt-stt,.gantt-id,.gantt-project-code,.gantt-wbs{justify-content:center;font-weight:700}.gantt-id{font-size:8.2px!important;color:#59697b}.gantt-project-code{color:#173d77}.gantt-task-name{gap:5px!important}.gantt-task-name b{overflow:hidden;text-overflow:ellipsis}.gantt-collapse{border:0;background:#eef3f8;border-radius:4px;width:19px;height:19px;cursor:pointer;font-weight:800}.gantt-indent{width:19px;display:inline-block}.gantt-date-input,.gantt-percent-input{width:100%;height:27px;border:1px solid transparent;background:transparent;border-radius:5px;font-size:9px;padding:2px 3px}.gantt-date-input:hover,.gantt-date-input:focus,.gantt-percent-input:hover,.gantt-percent-input:focus{border-color:#b8c9df;background:#fff;outline:0}.gantt-percent-input{text-align:center;font-weight:800}.gantt-status-pill{border:0;border-radius:999px;padding:5px 7px;font-size:8.5px;font-weight:700;cursor:pointer;width:100%}.gantt-status-pill.done{background:#e7f7eb;color:#248a4a}.gantt-status-pill.doing{background:#e6f7ef;color:#267e57}.gantt-status-pill.not-started{background:#f1f3f6;color:#626d79}.gantt-status-pill.late{background:#fff0ec;color:#b94a3e}.gantt-timeline-row{position:relative;min-width:1050px;overflow:hidden}.gantt-row-grid{position:absolute;inset:0;display:grid;grid-template-columns:var(--gantt-cols)}.gantt-row-grid i{border-right:1px solid #e9edf2}.gantt-today-line{position:absolute;top:0;bottom:0;width:1px;background:#ef534f;z-index:3}.gantt-bar{position:absolute;top:10px;height:17px;border-radius:4px;border:1px solid transparent;overflow:visible;cursor:pointer;z-index:4;padding:0}.gantt-bar>span{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:rgba(0,0,0,.12)}.gantt-bar.doing{background:#236bed;border-color:#1759ce}.gantt-bar.done{background:#2da64d;border-color:#22853c}.gantt-bar.not-started{background:#eff6ff;border-color:#6ba2ef}.gantt-bar.not-started em{color:#426182}.gantt-bar.late{background:#ef8d55;border-color:#d96d31}.gantt-bar.summary{height:9px;top:13px;background:#46546a;border-color:#46546a;border-radius:2px}.gantt-bar.summary:before,.gantt-bar.summary:after{content:'';position:absolute;top:6px;width:7px;height:7px;background:#46546a;transform:rotate(45deg)}.gantt-bar.summary:before{left:-3px}.gantt-bar.summary:after{right:-3px}.gantt-bar.muted{opacity:.22}.critical-mode .gantt-bar.critical,.critical-mode .professional-gantt-row.critical .gantt-bar{box-shadow:0 0 0 2px #e54c3c}.gantt-dependency-layer{position:absolute;left:var(--table-width);right:0;top:0;bottom:0;pointer-events:none;z-index:5;min-width:1050px}.gantt-dependency-svg{width:100%;height:100%;overflow:visible}.gantt-dependency-svg path{fill:none;stroke:#6b7788;stroke-width:1.2;vector-effect:non-scaling-stroke;marker-end:url(#ganttArrow)}.critical-mode .gantt-dependency-svg path{stroke:#c84d42;stroke-width:1.5}.gantt-legend{display:flex;gap:22px;align-items:center;position:sticky;left:0;padding:11px 16px;border-top:1px solid #e6ebf0;background:#fff;font-size:9px;z-index:10}.gantt-legend span{display:flex;align-items:center;gap:6px}.gantt-legend i{width:11px;height:11px;border-radius:2px}.gantt-legend i.done{background:#2da64d}.gantt-legend i.doing{background:#236bed}.gantt-legend i.not-started{background:#eff6ff;border:1px solid #6ba2ef}.gantt-legend i.summary{width:17px;height:6px;background:#46546a}.progress-history-page{padding:18px}.progress-history-page-head{margin-bottom:14px}.progress-history-page-head h3{margin:0}.progress-history-page-head p{font-size:11px;color:#748195}.professional-task-create{grid-template-columns:1fr 1fr!important;gap:12px!important}.professional-task-create .full{grid-column:1/-1!important}.dependency-create-block{background:#f4f8ff;border:1px solid #d7e4f6;border-radius:9px;padding:10px}.dependency-create-block b,.dependency-create-block small{display:block}.dependency-create-block small{font-size:10px;color:#66788c;margin-top:3px}@media(max-width:1200px){.professional-progress-filters{grid-template-columns:1fr 1fr 1fr 1fr}.progress-count{display:none}.professional-gantt{--table-width:560px}}@media(max-width:760px){.progress-top-tabs{flex-wrap:wrap}.gantt-scale{margin-left:0;margin-top:8px}.professional-progress-filters{grid-template-columns:1fr 1fr}.professional-task-create{grid-template-columns:1fr!important}.professional-task-create .full{grid-column:1!important}}

/* V46.25.1.5.1.6.3.4.2.6.5.5.6.1 - Gantt Status Layout Final */
.gantt-progress-label{position:absolute;top:30px;transform:translateX(-50%);z-index:7;font-size:8.5px;font-weight:800;color:#1766e8;line-height:1;white-space:nowrap;pointer-events:none}.gantt-progress-label.summary{top:27px;color:#34455d}.gantt-end-status{position:absolute;top:8px;z-index:7;display:inline-flex;align-items:center;gap:4px;max-width:92px;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.95);box-shadow:0 1px 3px rgba(20,42,70,.08);font-size:7.8px;font-weight:700;white-space:nowrap;pointer-events:none}.gantt-end-status i{width:6px;height:6px;border-radius:50%;flex:0 0 6px}.gantt-end-status.done{color:#23824b}.gantt-end-status.done i{background:#2da64d}.gantt-end-status.doing{color:#1766c9}.gantt-end-status.doing i{background:#236bed}.gantt-end-status.not-started{color:#596677}.gantt-end-status.not-started i{background:#fff;border:1px solid #6ba2ef}.gantt-end-status.late{color:#b65434}.gantt-end-status.late i{background:#ef8d55}

/* 5.5.6.2 manual commit + dd/mm/yyyy */
.gantt-date-editor{display:grid;grid-template-columns:minmax(0,1fr) 25px;align-items:center;width:100%;position:relative}.gantt-date-input{width:100%;height:29px;border:1px solid #dbe3ec!important;background:#fff!important;border-radius:6px 0 0 6px!important;padding:3px 5px!important;font-size:8.7px!important;text-align:center}.gantt-date-input:focus{border-color:#4d8ff7!important;box-shadow:0 0 0 2px rgba(43,111,232,.10);outline:0}.gantt-date-input.invalid{border-color:#e05454!important;background:#fff7f7!important}.gantt-calendar-btn{height:29px;border:1px solid #dbe3ec;border-left:0;background:#f8fafc;border-radius:0 6px 6px 0;cursor:pointer;color:#405469;font-size:12px;line-height:1}.gantt-calendar-btn:hover{background:#eef4fb;color:#1766e8}.gantt-native-date{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;right:0;bottom:0}.gantt-percent-input{border-color:#dbe3ec!important;background:#fff!important}.gantt-commit-btn{border:1px solid #b9c8dc!important;background:#f4f7fb!important;color:#37516f!important;font-weight:800!important;min-width:106px}.gantt-commit-btn.dirty{background:#1766e8!important;color:#fff!important;border-color:#1766e8!important;box-shadow:0 3px 10px rgba(23,102,232,.18)}.gantt-commit-btn:disabled{opacity:.55;cursor:not-allowed}

/* 5.5.6.3 – immutable ID + server WBS */
.professional-task-create .auto-field{background:#f4f7fb!important;color:#42566e!important;border-color:#dce4ee!important;font-weight:800;cursor:not-allowed}.professional-task-create .auto-field+small{display:block;margin-top:5px;color:#76869a;font-size:10px}

/* 5.5.6.4 WBS tree + summary rollup */
.gantt-tree-actions{display:flex;gap:5px;margin-left:3px}.gantt-tree-actions button{height:31px;border:1px solid #c9d5e5;background:#fff;border-radius:7px;padding:0 9px;font-size:11px;font-weight:800;color:#31475f;cursor:pointer}.gantt-tree-actions button:hover:not(:disabled){border-color:#1766e8;color:#1766e8;background:#f5f9ff}.gantt-tree-actions button:disabled{opacity:.45;cursor:not-allowed}
.gantt-select{display:flex;align-items:center;justify-content:center}.gantt-select input,#ganttSelectAll{width:15px;height:15px;cursor:pointer}
.gantt-task-name{white-space:normal!important;overflow:visible!important;min-width:0;line-height:1.25!important;align-items:flex-start!important;padding-top:6px!important;padding-bottom:6px!important}.gantt-task-name b{white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important;display:block!important}
.professional-gantt-row,.gantt-table-row,.gantt-timeline-row{min-height:52px!important;height:auto!important}.gantt-table-row{align-items:stretch!important}.gantt-table-row>div{display:flex;align-items:center;min-height:52px}
.professional-progress-filters{display:grid!important;grid-template-columns:125px minmax(290px,2.2fr) minmax(150px,1fr) 118px 145px auto auto 38px!important;gap:7px!important}.professional-progress-filters>*{min-width:0!important}.progress-project-filter{width:100%!important}.progress-status-filter{width:118px!important}.progress-search-filter{width:145px!important}
.task-create-modal-body{max-height:82vh!important;overflow-y:auto!important;padding-right:8px!important}.professional-task-create{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}.professional-task-create .field{grid-column:1!important}.sticky-form-actions{position:sticky!important;bottom:-1px!important;background:#fff!important;padding:12px 0 4px!important;z-index:4;border-top:1px solid #e5eaf0}
@media(max-width:1250px){.professional-progress-filters{grid-template-columns:120px minmax(250px,2fr) 145px 112px 130px!important}.professional-progress-filters .btn,.professional-progress-filters .progress-count{display:none}}

/* 5.5.6.4.3 parent-child Gantt links + parent progress rollup */
.gantt-dependency-svg .gantt-parent-link{fill:none;stroke:#7b8da6;stroke-width:1.35;stroke-dasharray:2.5 2;vector-effect:non-scaling-stroke;opacity:.9}.gantt-dependency-svg .gantt-dependency-link{fill:none;stroke:#5f6f82;stroke-width:1.25;vector-effect:non-scaling-stroke;marker-end:url(#ganttArrow)}.critical-mode .gantt-dependency-svg .gantt-dependency-link{stroke:#c84d42;stroke-width:1.5}.gantt-legend .parent-link-legend{width:18px!important;height:0!important;border-top:2px dashed #7b8da6!important;border-radius:0!important;background:none!important}.summary-rollup-input{background:#f1f5f9!important;color:#334a62!important;border-color:#d8e1ea!important;cursor:not-allowed!important;font-weight:900!important}.professional-gantt-row.summary .gantt-progress-label{font-weight:900!important}


/* BUSINESS CORE MODULES PROFESSIONAL FINAL START */
.business-form-note{display:grid;gap:4px;padding:12px 14px;margin-bottom:14px;border:1px solid #d9e7f0;border-radius:10px;background:linear-gradient(135deg,#f7fbff,#f4fbf9);color:#41546a}.business-form-note b{font-size:12px;color:#214e72}.business-form-note span{font-size:10px;line-height:1.45}.business-core-form{grid-template-columns:repeat(2,minmax(0,1fr))}.business-core-form .field.full{grid-column:1/-1}.acceptance-actions{display:flex;justify-content:flex-end;margin-top:10px;padding-top:10px;border-top:1px solid #edf1f4}.settlement-reference-table td b,.settlement-reference-table td small{display:block}.settlement-reference-table td small{margin-top:3px;color:#7a8797}@media(max-width:720px){.business-core-form{grid-template-columns:1fr}.business-core-form .field.full{grid-column:auto}}
/* BUSINESS CORE MODULES PROFESSIONAL FINAL END */

/* BG-002 PAYMENT + CASHFLOW UPDATE ACTIONS */
.module-update-btn{display:inline-flex!important;align-items:center;justify-content:center;white-space:nowrap;min-width:88px;height:34px!important;padding:0 14px!important;border-radius:9px!important;line-height:1!important}.contract-update-btn{min-width:92px}.payment-reference-table td:last-child,.cashflow-table td:last-child{text-align:center;vertical-align:middle}

/* BG-003 PROJECT DETAIL MASTER DATA + CROSS-MODULE SUMMARY */
.project-master-form{grid-template-columns:repeat(2,minmax(0,1fr))}.project-master-form .field.full{grid-column:1/-1}.pd-project-hero{background:#fff!important;color:#142337!important;border:1px solid #e2e8ef;box-shadow:0 6px 22px rgba(15,42,70,.07);padding:26px 28px!important}.pd-project-hero:after{display:none!important}.pd-project-identity{display:flex;align-items:center;gap:18px;min-width:0}.pd-project-identity-icon{width:76px;height:76px;border-radius:12px;background:#e9f7f6;color:#109b9c;display:grid;place-items:center;font-size:35px;flex:0 0 76px}.pd-project-identity>div:last-child{min-width:0}.pd-project-hero h2{color:#111b28;margin:8px 0!important}.pd-project-hero p{color:#667587;opacity:1!important}.pd-project-hero .pd-project-identity small{color:#0a9a9b;opacity:1}.pd-project-meta{color:#516174;margin-top:11px!important}.pd-project-meta span{border-left:0!important;padding-left:0!important}.pd-project-score{color:#152438;border-left:1px solid #dfe5eb!important;gap:34px!important}.pd-project-score>div{text-align:center}.pd-project-score>div>span{display:block;font-size:10px;font-weight:700;margin-bottom:7px}.pd-health-ring,.pd-progress-ring{--score:0;width:90px;height:90px;border-radius:50%;display:grid;place-items:center;position:relative}.pd-health-ring{background:conic-gradient(#0ba6a4 calc(var(--score)*1%),#e7ecf0 0)!important}.pd-progress-ring{background:conic-gradient(#1675cf calc(var(--score)*1%),#e7ecf0 0)}.pd-health-ring:after,.pd-progress-ring:after{content:"";position:absolute;inset:9px;background:#fff!important;border-radius:50%}.pd-health-ring b,.pd-health-ring small,.pd-progress-ring b{z-index:1;color:#0b9c9b}.pd-progress-ring b{color:#126dcc;font-size:22px}.pd-health-ring small{position:absolute;margin-top:34px!important;color:#516174!important}.pd-project-score em{display:inline-block!important;margin-top:7px!important}.pd-project-investment{grid-template-columns:1.2fr 1fr 1fr!important;gap:12px!important}.pd-investment-card{display:flex;align-items:center;gap:14px;min-width:0}.pd-investment-card>i{width:58px;height:58px;border-radius:10px;background:#edf4fb;color:#176bc1;display:grid;place-items:center;font-size:25px;font-style:normal;flex:0 0 58px}.pd-investment-card.investor{border-color:#18a7a5;box-shadow:0 0 0 1px rgba(24,167,165,.13),0 4px 18px rgba(15,35,60,.04)}.pd-investment-card.investor>i{background:#e8f7f5;color:#0b9794}.pd-investment-card>div{min-width:0}.pd-investment-card b{font-size:17px!important;overflow-wrap:anywhere}.pd-investment-card span{margin-bottom:5px!important}.pd-project-milestones{display:grid;grid-template-columns:repeat(3,1fr);position:relative;background:#fff;border:1px solid #dfe6ed;border-radius:14px;padding:20px 24px;margin:12px 0;box-shadow:0 4px 18px rgba(15,35,60,.04)}.pd-project-milestones:before{content:"";position:absolute;left:18%;right:18%;top:49px;height:2px;background:#dce3e9}.pd-milestone{display:flex;align-items:center;gap:13px;position:relative;z-index:1;padding:0 15px}.pd-milestone>i{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:22px;flex:0 0 54px;border:1px solid}.pd-milestone.start>i{background:#f3f8ff;border-color:#bad7fa;color:#146ed1}.pd-milestone.expected>i{background:#fff8ed;border-color:#f2d29d;color:#e48311}.pd-milestone.actual>i{background:#f1f9f1;border-color:#c7e1c7;color:#258733}.pd-milestone>div{background:#fff;padding:3px 6px;min-width:0}.pd-milestone span,.pd-milestone b,.pd-milestone small{display:block}.pd-milestone span{font-size:9px;font-weight:900;letter-spacing:.04em}.pd-milestone.start span{color:#146ed1}.pd-milestone.expected span{color:#d9780d}.pd-milestone.actual span{color:#247e30}.pd-milestone b{font-size:18px;margin:5px 0;color:#152235}.pd-milestone small{font-size:8px;color:#738292}.pd-fin-summary b{overflow-wrap:anywhere}@media(max-width:1150px){.pd-project-investment{grid-template-columns:1fr!important}.pd-project-milestones{grid-template-columns:1fr;gap:14px}.pd-project-milestones:before{left:50px;right:auto;top:44px;bottom:44px;width:2px;height:auto}.pd-project-score{border-left:0!important;padding-left:0!important}.pd-milestone{padding:0}}@media(max-width:720px){.project-master-form{grid-template-columns:1fr}.project-master-form .field.full{grid-column:auto}.pd-project-identity{align-items:flex-start}.pd-project-score{flex-wrap:wrap}.pd-project-identity-icon{width:54px;height:54px;flex-basis:54px}.pd-milestone b{font-size:15px}}

/* BG-004 GANTT DEPENDENCY TYPE INLINE */
.professional-gantt{--table-width:1092px}.gantt-table-head,.gantt-table-row{grid-template-columns:30px 34px 82px 76px 52px minmax(260px,2.2fr) 110px 82px 82px 82px 116px 86px}.gantt-dependency-cell{display:flex!important;flex-direction:column;align-items:stretch!important;justify-content:center;gap:2px;padding:4px!important}.gantt-dependency-select{width:100%;height:28px;border:1px solid #cad7e6;border-radius:6px;background:#fff;color:#29445f;font-size:8.5px;font-weight:800;padding:0 3px;cursor:pointer;outline:0}.gantt-dependency-select:hover,.gantt-dependency-select:focus{border-color:#3c83e8;box-shadow:0 0 0 2px rgba(60,131,232,.10)}.gantt-dependency-select:disabled{background:#f1f4f7;color:#8995a3;border-color:#e0e5ea;cursor:not-allowed}.gantt-dependency-cell small{font-size:7.5px;color:#758497;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-legend{flex-wrap:wrap}

/* BG-005 PROGRESS KANBAN + STAGED UPDATE */
.gantt-kanban-btn{margin-left:7px!important;border:1px solid #8fb5ee!important;background:#f5f9ff!important;color:#1766c9!important;font-weight:800!important;min-width:92px}.gantt-kanban-btn:hover,.gantt-kanban-btn.active{background:#1766e8!important;border-color:#1766e8!important;color:#fff!important}.progress-draft-notice{display:flex;align-items:center;gap:8px;margin:10px 16px 0;padding:9px 12px;border:1px solid #bfd7fb;border-radius:8px;background:#f1f7ff;color:#275f9d;font-size:11px}.progress-draft-notice span{color:#1766e8}.progress-draft-notice small{color:#647a94}.progress-draft-notice.is-hidden{display:none}.progress-draft-help{margin:12px 0 0;padding:10px 12px;border:1px solid #cfe0f7;border-radius:8px;background:#f5f9ff;color:#536a84;font-size:11px}.professional-gantt-row.draft{background:#f5f9ff!important;box-shadow:inset 3px 0 #1766e8}.gantt-dependency-select.draft{border-color:#1766e8;background:#f1f7ff;box-shadow:0 0 0 2px rgba(23,102,232,.10)}
.progress-kanban-board{display:grid;grid-template-columns:repeat(4,minmax(255px,1fr));gap:12px;padding:14px 16px 18px;overflow-x:auto;background:#fff}.progress-kanban-column{min-width:255px;border:1px solid #e0e6ed;border-radius:11px;background:#f6f8fb;overflow:hidden;transition:border-color .15s,background .15s}.progress-kanban-column>header{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 13px;border-bottom:1px solid #e1e6ed;background:#f8fafd}.progress-kanban-column>header>div{display:flex;align-items:center;gap:8px}.progress-kanban-column>header i{width:8px;height:8px;border-radius:50%;background:#718197}.progress-kanban-column>header b{font-size:12px}.progress-kanban-column>header span{display:grid;place-items:center;min-width:26px;height:25px;padding:0 7px;border-radius:999px;background:#e9edf3;color:#47586c;font-size:10px;font-weight:800}.progress-kanban-column.in_progress>header i{background:#1766e8}.progress-kanban-column.late>header i{background:#e45b4e}.progress-kanban-column.late>header span{background:#ffe9e6;color:#bd443a}.progress-kanban-column.completed>header i{background:#28a267}.progress-kanban-column.completed>header span{background:#e5f7ee;color:#238157}.progress-kanban-column.drag-over{border-color:#1766e8;background:#edf5ff;box-shadow:0 0 0 2px rgba(23,102,232,.12)}.progress-kanban-list{display:flex;flex-direction:column;gap:10px;min-height:430px;max-height:calc(100vh - 360px);padding:10px;overflow-y:auto}.progress-kanban-card{position:relative;padding:12px;border:1px solid #dfe5ec;border-radius:9px;background:#fff;box-shadow:0 2px 7px rgba(20,45,75,.04);cursor:grab}.progress-kanban-card:hover{border-color:#b8c9dd;box-shadow:0 4px 12px rgba(20,45,75,.08)}.progress-kanban-card.dragging{opacity:.45}.progress-kanban-card.draft{border-color:#1766e8;box-shadow:0 0 0 2px rgba(23,102,232,.08)}.progress-kanban-card.summary{cursor:default;background:#fafbfd}.progress-kanban-card>em{position:absolute;right:10px;top:37px;border:1px solid #89b7f5;border-radius:5px;padding:2px 5px;background:#f1f7ff;color:#1766c9;font-size:8px;font-style:normal;font-weight:800}.progress-kanban-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.progress-kanban-card-top span{border-radius:5px;padding:3px 6px;background:#eaf3ff;color:#1766c9;font-size:9px;font-weight:900}.progress-kanban-card-top small{max-width:62%;overflow:hidden;text-overflow:ellipsis;color:#68778a;font-size:8.5px;white-space:nowrap}.progress-kanban-card h4{margin:10px 0 8px;padding-right:38px;font-size:12px;line-height:1.4;color:#18283a}.progress-kanban-meta{display:grid;gap:4px;color:#728095;font-size:9.5px}.progress-kanban-meta .overdue{color:#d34b42;font-weight:700}.progress-kanban-progress{display:grid;grid-template-columns:1fr 34px;align-items:center;gap:8px;margin-top:10px}.progress-kanban-progress>div{height:5px;border-radius:999px;background:#e9edf2;overflow:hidden}.progress-kanban-progress i{display:block;height:100%;border-radius:999px;background:#2876d5}.progress-kanban-column.late .progress-kanban-progress i{background:#df684f}.progress-kanban-column.completed .progress-kanban-progress i{background:#28a267}.progress-kanban-progress b{font-size:9px;text-align:right}.progress-kanban-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;padding-top:8px;border-top:1px solid #edf0f3}.progress-kanban-footer small{color:#8793a1;font-size:8.5px}.progress-kanban-footer .link-btn{font-size:9.5px;white-space:nowrap}.progress-kanban-empty{display:grid;place-items:center;min-height:100px;color:#95a0ae;font-size:10px}
@media(max-width:1250px){.progress-kanban-board{grid-template-columns:repeat(4,minmax(235px,1fr))}.progress-kanban-list{max-height:none}.gantt-kanban-btn{margin-left:0!important}}@media(max-width:760px){.progress-draft-notice{align-items:flex-start;flex-wrap:wrap}.progress-kanban-board{grid-template-columns:repeat(4,minmax(280px,1fr));padding:10px}.progress-kanban-list{min-height:350px}.gantt-kanban-btn{min-width:82px}}

/* BG-006 ACTION NOTIFICATIONS + KANBAN DEEP LINK + EDITABLE DEPENDENCY TYPE */
.action-notification-bell[hidden]{display:none!important}.action-notification-bell{display:grid;place-items:center;font-size:16px;line-height:1;color:#8a6a08;overflow:visible}.action-notification-bell>span{filter:saturate(.85);transform:translateY(1px)}.action-notification-bell:after{content:"Thông báo cần xử lý";position:absolute;right:50%;top:calc(100% + 9px);z-index:90;transform:translateX(50%) translateY(-3px);width:max-content;max-width:190px;padding:7px 9px;border-radius:7px;background:#172b42;color:#fff;font-size:10px;font-weight:700;line-height:1.25;box-shadow:0 6px 16px rgba(14,32,52,.22);opacity:0;visibility:hidden;pointer-events:none;transition:.15s}.action-notification-bell:hover:after,.action-notification-bell:focus-visible:after{opacity:1;visibility:visible;transform:translateX(50%) translateY(0)}.action-notification-bell:focus-visible{outline:2px solid #2e7cd8;outline-offset:2px}.action-center{margin:-15px -20px -20px}.action-center-head{display:flex;align-items:center;justify-content:space-between;padding:13px 22px;border-bottom:1px solid #edf0f4;background:#fbfcfe}.action-center-head b{font-size:10px;letter-spacing:.08em;color:#667587}.action-center-head span{display:grid;place-items:center;min-width:24px;height:24px;padding:0 7px;border-radius:999px;background:#eef2f6;color:#526174;font-size:10px;font-weight:900}.action-task-list{max-height:500px;overflow-y:auto}.action-task-row{width:100%;display:grid;grid-template-columns:78px minmax(0,1fr) 42px 13px;gap:12px;align-items:center;border:0;border-bottom:1px solid #edf0f3;background:#fff;padding:14px 22px;text-align:left;cursor:pointer;color:#172437}.action-task-row:hover,.action-task-row:focus-visible{background:#f7faff;outline:0}.action-task-tag{display:inline-flex;align-items:center;justify-content:center;width:72px;min-height:26px;border-radius:999px;font-size:9px;font-weight:900}.action-task-tag.overdue{background:#fff0ed;color:#bd4e43}.action-task-tag.slow{background:#fff7e5;color:#a56b12}.action-task-copy{min-width:0}.action-task-copy b,.action-task-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-task-copy b{font-size:11px}.action-task-copy small{margin-top:5px;color:#7d8998;font-size:9px}.action-task-row>strong{text-align:right;font-size:10px}.action-task-arrow{color:#7a899a;font-size:18px}.action-center-note{padding:11px 22px;background:#fbfcfe;color:#778596;font-size:9px}.progress-kanban-card.notification-focus{border-color:#1766e8!important;box-shadow:0 0 0 3px rgba(23,102,232,.22),0 10px 24px rgba(23,102,232,.18)!important;animation:bg006-focus-pulse 1.2s ease-in-out 2}.gantt-dependency-select:not(:disabled){background:#fff;color:#29445f;cursor:pointer}@keyframes bg006-focus-pulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.progress-kanban-card.notification-focus{animation:none;scroll-behavior:auto}}@media(max-width:760px){.action-task-row{grid-template-columns:68px minmax(0,1fr) 34px;padding:12px 14px;gap:8px}.action-task-tag{width:64px}.action-task-arrow{display:none}.action-task-copy b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.action-center{margin:-15px -20px -20px}.action-notification-bell:after{display:none}}

/* BG-007 CROSS-MODULE ACTION ALERTS */
.action-task-tag.info{background:#e8f7f5;color:#0b7f78}.module-alert-row{grid-template-columns:96px minmax(0,1fr) 76px 13px}.module-alert-row .action-task-tag{width:90px;padding:0 8px;text-align:center}.module-alert-row>strong{color:#344b65;white-space:nowrap}.module-notification-focus{position:relative;z-index:2;background:#eef6ff!important;box-shadow:inset 4px 0 #1766e8,0 0 0 2px rgba(23,102,232,.16)!important;animation:bg007-record-focus 1.2s ease-in-out 2}.module-notification-focus td:first-child{border-left-color:#1766e8!important}@keyframes bg007-record-focus{0%,100%{filter:none}50%{filter:brightness(.97)}}@media(prefers-reduced-motion:reduce){.module-notification-focus{animation:none}}@media(max-width:760px){.module-alert-row{grid-template-columns:72px minmax(0,1fr) 54px}.module-alert-row .action-task-tag{width:70px;padding:0 5px}.module-alert-row>strong{font-size:8.5px}}

/* BG-008 EXECUTIVE REPORT FORMAT, FILTER AND BUSINESS FLOW */
.executive-dashboard .health-card .health-layout{flex-direction:column;gap:20px;justify-content:flex-start}.executive-dashboard .health-card .health-ring{background:conic-gradient(#2d9b72 0 var(--good),#e9a42b var(--good) var(--attention-end),#d4554f var(--attention-end) 100%)}.executive-dashboard .health-card .health-ring.empty{background:#e7ecf0}.executive-dashboard .health-card .health-ring b{font-size:30px}.executive-dashboard .health-card .health-legend{width:100%;display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap}.executive-dashboard .health-card .health-legend span{grid-template-columns:9px auto 18px;white-space:nowrap}.exec-filter-chips button{appearance:none;border:1px solid #dfe5eb;border-radius:8px;background:#fff;color:#526277;font:inherit;font-size:8px;font-weight:700;padding:7px 10px;cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s}.exec-filter-chips button:hover{border-color:#9bbbd8;background:#f5f9fd}.exec-filter-chips button.active{border-color:#b9d4ee;background:#eaf4ff;color:#2e6e9d;box-shadow:inset 0 0 0 1px rgba(46,110,157,.05)}.exec-filter-chips button:focus-visible{outline:2px solid #1675cf;outline-offset:2px}@media(max-width:760px){.exec-ranking-head{align-items:flex-start;gap:14px;flex-direction:column}.exec-filter-chips{width:100%;overflow-x:auto;padding-bottom:3px}.exec-filter-chips button{white-space:nowrap}.executive-dashboard .health-card .health-legend{justify-content:flex-start}}

/* V4.8.1 hotfix - Project staff validation + document inline preview */
.document-table td:last-child{min-width:220px}.document-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:nowrap}.document-actions .btn{white-space:nowrap}.doc-view-btn{border-color:#9fcfd2!important;color:#0b6770!important;background:#f3fbfb!important}.doc-view-btn:hover{background:#e4f6f7!important}.document-actions .danger-outline{margin-left:1px}@media(max-width:900px){.document-table td:last-child{min-width:200px}.document-actions{justify-content:flex-start;flex-wrap:wrap}}

/* TPMS V4.8.1 UI hotfix: compact staff action + compact progress controls + print column toggle */
.staff-action-cell{width:86px;min-width:86px;text-align:center;vertical-align:middle!important}.staff-update-btn{height:30px!important;min-width:72px!important;padding:0 10px!important;border-radius:8px!important;white-space:nowrap!important;line-height:1!important;font-size:10px!important;font-weight:800!important;display:inline-flex!important;align-items:center;justify-content:center}.staff-update-btn:hover{border-color:#97adc4;background:#f7fafc}.progress-top-tabs{padding:9px 12px 7px!important;gap:6px!important;flex-wrap:wrap}.progress-tab-group{display:flex;align-items:center;border:1px solid #dde4ec;border-radius:8px;padding:2px;background:#fff}.progress-tab{padding:6px 10px!important;font-size:10.5px!important;border-bottom-width:2px!important;min-height:29px}.gantt-tree-actions{gap:4px!important;margin-left:0!important}.gantt-tree-actions button{height:29px!important;padding:0 7px!important;font-size:9.5px!important;border-radius:6px!important}.gantt-scale{margin-left:auto!important;height:31px;overflow:visible!important;align-items:stretch}.gantt-scale>button{height:29px!important;padding:0 8px!important;font-size:9.5px!important;white-space:nowrap}.gantt-column-toggle{position:relative;border-right:1px solid #e3e8ee;background:#fff}.gantt-column-toggle summary{height:29px;display:flex;align-items:center;gap:4px;padding:0 9px;cursor:pointer;list-style:none;color:#31475f;font-size:9.5px;font-weight:800;white-space:nowrap}.gantt-column-toggle summary::-webkit-details-marker{display:none}.gantt-column-toggle summary span{font-size:8px;color:#748497;background:#f0f4f8;border-radius:999px;padding:1px 5px}.gantt-column-toggle[open] summary{background:#f5f9ff;color:#1766e8}.gantt-column-menu{position:absolute;right:0;top:34px;z-index:80;min-width:190px;padding:10px;background:#fff;border:1px solid #dbe3ec;border-radius:9px;box-shadow:0 12px 30px rgba(16,40,67,.16);display:grid;gap:7px}.gantt-column-menu>b{font-size:10px;color:#31475f;margin-bottom:2px}.gantt-column-menu label{display:flex;align-items:center;gap:7px;font-size:10px;color:#536477;cursor:pointer}.gantt-column-menu input{accent-color:#1766e8}.gantt-column-menu button{height:27px;border:1px solid #d7e0ea;background:#f8fafc;border-radius:6px;font-size:9px;font-weight:800;color:#31506c;cursor:pointer}.gantt-column-menu button:hover{border-color:#1766e8;color:#1766e8}.gantt-commit-btn{font-weight:800!important}.professional-gantt{transition:--table-width .15s ease}.progress-top-tabs .gantt-scale{display:flex}.progress-top-tabs .gantt-scale .gantt-column-toggle+button{border-left:0}@media(max-width:1200px){.progress-top-tabs{align-items:flex-start}.gantt-scale{margin-left:0!important}.progress-tab-group{order:1}.gantt-tree-actions{order:2}.gantt-scale{order:3;width:100%;justify-content:flex-end}}@media print{.progress-top-tabs,.professional-progress-filters,.progress-draft-notice,.gantt-legend,.page-head .head-actions{display:none!important}.professional-gantt{overflow:visible!important}.gantt-header-row{position:static!important}}

/* TPMS V4.8.1 universal report export */
.tpms-report-export{position:relative}.tpms-report-trigger{display:inline-flex!important;align-items:center;gap:6px;white-space:nowrap;min-width:116px;justify-content:center}.tpms-report-trigger>span{font-size:9px;color:#75869a}.tpms-report-export.open .tpms-report-trigger{border-color:#9ab7cf;background:#f7fbff}.tpms-report-menu{display:none;position:absolute;right:0;top:44px;width:330px;background:#fff;border:1px solid #dce3eb;border-radius:12px;box-shadow:0 16px 42px rgba(15,39,66,.18);padding:10px;z-index:120}.tpms-report-export.open .tpms-report-menu{display:block}.tpms-report-menu-head{padding:5px 6px 9px;border-bottom:1px solid #edf1f5;margin-bottom:6px}.tpms-report-menu-head b,.tpms-report-menu-head small{display:block}.tpms-report-menu-head b{font-size:10px;color:#233a52}.tpms-report-menu-head small{font-size:8px;color:#8793a1;margin-top:2px}.tpms-report-menu>button{width:100%;border:1px solid transparent;background:#fff;border-radius:9px;padding:10px 8px;display:grid;grid-template-columns:36px 1fr auto;gap:9px;text-align:left;align-items:center;cursor:pointer}.tpms-report-menu>button:hover{background:#f8fbfd;border-color:#dce6ef}.tpms-report-menu i{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-style:normal;font-size:8px;font-weight:900}.tpms-report-menu i.excel{background:#e8f6ee;color:#16804a}.tpms-report-menu i.pdf{background:#fff0ec;color:#c34a37}.tpms-report-menu span b,.tpms-report-menu span small{display:block}.tpms-report-menu span b{font-size:9px}.tpms-report-menu span small{font-size:7.7px;color:#7d8997;margin-top:2px}.tpms-report-menu em{font-style:normal;font-size:8px;color:#2a6e9f}.report-exporting .tpms-report-trigger{opacity:.65;pointer-events:none}@media(max-width:1100px){.tpms-report-trigger{min-width:auto;padding:0 8px!important}.tpms-report-trigger{font-size:0!important}.tpms-report-trigger:first-letter{font-size:12px}.tpms-report-menu{right:-70px}}

/* V4.8.1 Supplier Workspace & Domain Manager */
.supplier-domain-manager{border:1px solid #dce7ef;border-radius:12px;padding:14px;margin:12px 0 16px;background:#fbfdff}.supplier-domain-manager h4{margin:0 0 6px}.workspace-url-box{display:flex;gap:8px}.workspace-url-box input{flex:1;min-width:0}.workspace-url-box .btn{white-space:nowrap}.supplier2-main td:nth-child(3) b{font-size:10px;word-break:break-all;color:#174f75}@media(max-width:700px){.workspace-url-box{flex-direction:column}}

/* TPMS V4.8.1 - Contract execution / acceptance source of truth */
.contract-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.contract-kpis small{display:block;margin-top:4px;color:var(--muted,#6b7280);font-size:11px}
.contract-ledger-table thead tr:first-child th{text-align:center;vertical-align:middle}
.contract-ledger-table thead tr:nth-child(2) th{font-size:11px;white-space:nowrap}
.contract-ledger-table td{vertical-align:top}
.contract-ledger-table .metric-executed b{color:#109766}
.contract-ledger-table .metric-accepted b{color:#146dd7}
.contract-ledger-table .metric-paid b{color:#d97706}
.contract-mini-bar{display:block;width:100%;height:4px;background:#edf1f5;border-radius:10px;margin-top:7px;overflow:hidden}
.contract-mini-bar i{display:block;height:100%;background:#20ad78;border-radius:inherit}
.contract-mini-bar.accepted i{background:#1677e8}
.contract-mini-bar.paid i{background:#f59e0b}
.contract-ledger-note{display:flex;gap:22px;flex-wrap:wrap;padding:11px 14px;border-top:1px solid #edf1f5;color:#667085;font-size:11px}
.business-value-source{border:1px solid #d8eee5;background:#f7fcf9;padding:10px;border-radius:10px}
.business-value-derived{border:1px solid #e6eaf0;background:#f8fafc;padding:10px;border-radius:10px}
.business-value-derived input[readonly]{background:#eef2f6;color:#475467}
@media(max-width:1200px){.contract-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* TPMS V4.8.1 - Contract final compact visual layout */
.contract-kpis{gap:12px}
.contract-kpis .contract-kpi{position:relative;overflow:hidden;min-height:116px;padding:18px 18px 16px 64px;border:1px solid #e4eaf1;border-radius:14px;box-shadow:0 4px 14px rgba(31,54,78,.05)}
.contract-kpis .contract-kpi:after{content:"";position:absolute;right:-12px;bottom:-18px;width:92px;height:92px;border-radius:50%;background:currentColor;opacity:.045}
.contract-kpis .contract-kpi>i{position:absolute;left:16px;top:18px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:900;font-size:15px;color:#fff;box-shadow:0 5px 12px rgba(15,45,75,.12)}
.contract-kpis .contract-kpi>span{display:block;color:#526477;font-size:11px;font-weight:700;margin-bottom:5px}
.contract-kpis .contract-kpi>b{display:block;white-space:nowrap;font-size:18px;line-height:1.2;color:#16263a}
.contract-kpis .kpi-count{background:linear-gradient(135deg,#fbfdff,#eef6ff);color:#1d6ee8}.contract-kpis .kpi-count>i{background:#1769e0}
.contract-kpis .kpi-value{background:linear-gradient(135deg,#fcfffd,#edf9f4);color:#15a06c}.contract-kpis .kpi-value>i{background:#11a36c}
.contract-kpis .kpi-executed{background:linear-gradient(135deg,#fefcff,#f4efff);color:#7c49d8}.contract-kpis .kpi-executed>i{background:#7447cf}
.contract-kpis .kpi-accepted{background:linear-gradient(135deg,#fffdf8,#fff4e7);color:#f3a01b}.contract-kpis .kpi-accepted>i{background:#f59b16}
.contract-kpis .kpi-paid{background:linear-gradient(135deg,#fbfdff,#edf7ff);color:#1787dd}.contract-kpis .kpi-paid>i{background:#1787dd}
.contract-ledger-table{table-layout:fixed;min-width:1180px}
.contract-ledger-table th,.contract-ledger-table td{padding-left:12px!important;padding-right:12px!important}
.contract-ledger-table th:nth-child(1),.contract-ledger-table td:nth-child(1){width:18%}
.contract-ledger-table th:nth-child(2),.contract-ledger-table td:nth-child(2){width:17%}
.contract-ledger-table th:nth-child(3),.contract-ledger-table td:nth-child(3){width:19%}
.contract-ledger-table th:nth-child(4),.contract-ledger-table td:nth-child(4){width:11%}
.contract-ledger-table th:nth-child(5),.contract-ledger-table td:nth-child(5){width:13%}
.contract-ledger-table th:nth-child(6),.contract-ledger-table td:nth-child(6){width:11%}
.contract-ledger-table th:nth-child(7),.contract-ledger-table td:nth-child(7){width:11%}
.contract-ledger-table th:nth-child(8),.contract-ledger-table td:nth-child(8){width:8%}
.contract-ledger-table th:nth-child(9),.contract-ledger-table td:nth-child(9){width:7%}
.contract-ledger-table td:nth-child(4),.contract-ledger-table td:nth-child(5),.contract-ledger-table td:nth-child(6),.contract-ledger-table td:nth-child(7){vertical-align:middle!important}
.contract-ledger-table .metric-executed b,.contract-ledger-table .metric-accepted b,.contract-ledger-table .metric-paid b{display:block;white-space:nowrap;font-size:12px;line-height:1.2}
.contract-ledger-table .metric-executed small,.contract-ledger-table .metric-accepted small,.contract-ledger-table .metric-paid small{display:block;white-space:nowrap;margin-top:6px}
.contract-contractor-cell b{display:block;line-height:1.35}.contract-date-meta{display:block!important;margin-top:8px!important;font-size:9px!important;color:#66778b!important;white-space:nowrap!important}
.contract-update-btn{height:30px!important;min-width:58px!important;padding:0 9px!important;border-radius:8px!important;font-size:9.5px!important;font-weight:800!important;white-space:nowrap!important}
.contract-action-cell{width:68px!important;text-align:center;vertical-align:middle!important}
.contract-ledger-table thead small{font-size:9px;font-weight:600;color:#78889b}
@media(max-width:1350px){.contract-ledger-table{min-width:1080px}.contract-ledger-table th,.contract-ledger-table td{padding-left:9px!important;padding-right:9px!important}.contract-kpis .contract-kpi{padding-left:58px}.contract-kpis .contract-kpi>b{font-size:16px}}

/* TPMS V4.8.1 - Contract layout final approved 2026-08-24 */
.contract-kpis{
  grid-template-columns:minmax(150px,.70fr) repeat(4,minmax(220px,1.15fr));
  gap:12px;
}
.contract-kpis .contract-kpi{min-width:0}
.contract-kpis .contract-kpi>span,
.contract-kpis .contract-kpi>b{white-space:nowrap;overflow:visible;text-overflow:clip}
.contract-kpis .contract-kpi>span{font-size:10.5px;letter-spacing:-.05px}
.contract-kpis .contract-kpi>b{font-size:17px;letter-spacing:-.15px}
.contract-kpis .kpi-count{padding-left:58px;padding-right:12px}
.contract-kpis .kpi-count>i{left:14px}
.contract-kpis .kpi-count>b{font-size:18px}

/* Exact 100% allocation: keeps execution / acceptance / payment on one line. */
.contract-ledger-table{table-layout:fixed;min-width:1220px;width:100%}
.contract-ledger-table th,.contract-ledger-table td{box-sizing:border-box;padding-left:9px!important;padding-right:9px!important}
.contract-ledger-table th:nth-child(1),.contract-ledger-table td:nth-child(1){width:12%}
.contract-ledger-table th:nth-child(2),.contract-ledger-table td:nth-child(2){width:14%}
.contract-ledger-table th:nth-child(3),.contract-ledger-table td:nth-child(3){width:13%}
.contract-ledger-table th:nth-child(4),.contract-ledger-table td:nth-child(4){width:13%}
.contract-ledger-table th:nth-child(5),.contract-ledger-table td:nth-child(5){width:14%}
.contract-ledger-table th:nth-child(6),.contract-ledger-table td:nth-child(6){width:11%}
.contract-ledger-table th:nth-child(7),.contract-ledger-table td:nth-child(7){width:11%}
.contract-ledger-table th:nth-child(8),.contract-ledger-table td:nth-child(8){width:6%}
.contract-ledger-table th:nth-child(9),.contract-ledger-table td:nth-child(9){width:6%}
.contract-ledger-table td:nth-child(1) small,
.contract-ledger-table td:nth-child(2) small{font-size:9.2px;line-height:1.35}
.contract-ledger-table td:nth-child(3) b{font-size:10.5px;line-height:1.3}
.contract-ledger-table .metric-executed,
.contract-ledger-table .metric-accepted,
.contract-ledger-table .metric-paid{overflow:hidden}
.contract-ledger-table .metric-executed b,
.contract-ledger-table .metric-accepted b,
.contract-ledger-table .metric-paid b{display:block!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;font-size:11.5px!important;line-height:1.2}
.contract-ledger-table .metric-executed small,
.contract-ledger-table .metric-accepted small,
.contract-ledger-table .metric-paid small{white-space:nowrap!important;font-size:9.5px;margin-top:5px}
.contract-ledger-table .contract-mini-bar{margin-top:6px}
.contract-ledger-table td:nth-child(8){text-align:center;vertical-align:middle!important;padding-left:4px!important;padding-right:4px!important}
.contract-ledger-table td:nth-child(8) .pill,
.contract-ledger-table td:nth-child(8) [class*="pill"]{font-size:8.8px;padding:5px 7px;white-space:nowrap}
.contract-action-cell{width:auto!important;padding-left:4px!important;padding-right:4px!important}
.contract-update-btn{height:28px!important;min-width:52px!important;padding:0 7px!important;font-size:9px!important}
.contract-date-meta{font-size:8.8px!important;white-space:nowrap!important}

@media(max-width:1450px){
  .contract-kpis{grid-template-columns:minmax(138px,.66fr) repeat(4,minmax(205px,1.16fr));gap:9px}
  .contract-kpis .contract-kpi{padding-right:10px;padding-left:54px;min-height:108px}
  .contract-kpis .contract-kpi>i{left:13px;width:34px;height:34px}
  .contract-kpis .contract-kpi>span{font-size:9.8px}
  .contract-kpis .contract-kpi>b{font-size:15.5px}
  .contract-ledger-table{min-width:1160px}
}
@media(max-width:1180px){
  .contract-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .contract-kpis .kpi-count{grid-column:span 2}
}


/* TPMS V4.8.1 - CONTRACT COLUMN UI FINAL (single independent columns) */
.contract-ledger-table{table-layout:fixed!important;width:100%!important;min-width:1210px!important}
.contract-ledger-table thead tr{height:58px}
.contract-ledger-table thead th{vertical-align:middle!important;text-align:center!important;line-height:1.18!important;white-space:normal!important;padding:9px 7px!important;font-size:10px!important;overflow:hidden}
.contract-ledger-table thead th small{display:block!important;margin-top:4px!important;font-size:8.5px!important;line-height:1!important;white-space:nowrap!important;color:#718096!important}
.contract-ledger-table td{box-sizing:border-box!important;padding-left:8px!important;padding-right:8px!important;overflow:hidden!important}
.contract-ledger-table th:nth-child(1),.contract-ledger-table td:nth-child(1){width:3%!important}
.contract-ledger-table th:nth-child(2),.contract-ledger-table td:nth-child(2){width:12%!important}
.contract-ledger-table th:nth-child(3),.contract-ledger-table td:nth-child(3){width:13%!important}
.contract-ledger-table th:nth-child(4),.contract-ledger-table td:nth-child(4){width:14%!important}
.contract-ledger-table th:nth-child(5),.contract-ledger-table td:nth-child(5){width:13%!important}
.contract-ledger-table th:nth-child(6),.contract-ledger-table td:nth-child(6){width:12%!important}
.contract-ledger-table th:nth-child(7),.contract-ledger-table td:nth-child(7){width:11%!important}
.contract-ledger-table th:nth-child(8),.contract-ledger-table td:nth-child(8){width:11%!important}
.contract-ledger-table th:nth-child(9),.contract-ledger-table td:nth-child(9){width:6%!important}
.contract-ledger-table th:nth-child(10),.contract-ledger-table td:nth-child(10){width:5%!important}
.contract-ledger-table .contract-stt{text-align:center!important;font-weight:700!important;vertical-align:top!important;padding-top:17px!important}
.contract-ledger-table td:nth-child(2) small,.contract-ledger-table td:nth-child(3) small{font-size:9px!important;line-height:1.35!important}
.contract-ledger-table td:nth-child(4) b{font-size:10.4px!important;line-height:1.3!important}
.contract-ledger-table td:nth-child(5),.contract-ledger-table td:nth-child(6),.contract-ledger-table td:nth-child(7),.contract-ledger-table td:nth-child(8){vertical-align:middle!important}
.contract-ledger-table td:nth-child(5)>b,.contract-ledger-table .metric-executed b,.contract-ledger-table .metric-accepted b,.contract-ledger-table .metric-paid b{display:block!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;font-size:11.2px!important;letter-spacing:-.1px!important;line-height:1.2!important}
.contract-ledger-table .metric-executed small,.contract-ledger-table .metric-accepted small,.contract-ledger-table .metric-paid small{display:block!important;white-space:nowrap!important;font-size:9.2px!important;line-height:1.15!important;margin-top:6px!important;overflow:hidden!important;text-overflow:ellipsis!important}
.contract-ledger-table .contract-mini-bar{display:block!important;width:100%!important;max-width:96px!important;height:4px!important;margin-top:7px!important;border-radius:999px!important;overflow:hidden!important}
.contract-ledger-table td:nth-child(9){text-align:center!important;vertical-align:middle!important;padding:4px!important}
.contract-ledger-table td:nth-child(9) .pill,.contract-ledger-table td:nth-child(9) [class*="pill"]{font-size:8.5px!important;padding:5px 6px!important;white-space:nowrap!important}
.contract-ledger-table td:nth-child(10){text-align:center!important;vertical-align:middle!important;padding:4px!important}
.contract-ledger-table td:nth-child(10) .contract-update-btn{min-width:0!important;width:auto!important;height:30px!important;padding:0 8px!important;font-size:9px!important;border-radius:8px!important;white-space:nowrap!important}
.contract-kpis{grid-template-columns:minmax(130px,.62fr) repeat(4,minmax(210px,1.18fr))!important;gap:9px!important}
.contract-kpis .contract-kpi{min-width:0!important;padding-left:54px!important;padding-right:10px!important}
.contract-kpis .contract-kpi>span,.contract-kpis .contract-kpi>b{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.contract-kpis .contract-kpi>span{font-size:9.8px!important}
.contract-kpis .contract-kpi>b{font-size:15.5px!important}
@media(max-width:1350px){
 .contract-ledger-table{min-width:1160px!important}
 .contract-kpis{grid-template-columns:minmax(120px,.6fr) repeat(4,minmax(190px,1.16fr))!important}
}
@media(max-width:1100px){
 .contract-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .contract-kpis .kpi-count{grid-column:span 2!important}
}


/* TPMS V4.8.1 Supplier Verification + Activation */
.supplier-state-stack{display:flex;flex-direction:column;gap:5px;align-items:flex-start;white-space:nowrap}.supplier-state{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800;line-height:1}.supplier-state.verified,.supplier-state.active{background:#e7f8f0;color:#08785b}.supplier-state.pending{background:#fff4dc;color:#9a6510}.good-text{color:#08785b!important}.warn-text{color:#9a6510!important}.supplier-manage-summary{grid-template-columns:repeat(5,minmax(0,1fr))!important}.activation-card{margin:14px 0 18px;padding:16px;border:1px solid #dce8ee;border-radius:16px;background:linear-gradient(135deg,#f8fcfd 0%,#f4fbf8 100%)}.activation-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.activation-card-head small{font-size:10px;font-weight:900;letter-spacing:.12em;color:#0c7590}.activation-card-head h4{margin:4px 0 5px}.activation-card-head p{margin:0;color:#697a86;font-size:12px}.activation-state{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.activation-state span{border-radius:999px;padding:6px 9px;font-size:11px;font-weight:900;white-space:nowrap}.activation-state .verified,.activation-state .active{background:#e5f8ef;color:#08785b}.activation-state .pending{background:#fff2d8;color:#93600c}.activation-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}.activation-checks>div{display:flex;gap:9px;align-items:flex-start;padding:10px 11px;background:#fff;border:1px solid #e5edf1;border-radius:11px}.activation-checks>div>span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-weight:900;flex:0 0 auto}.activation-checks .ok>span{background:#e1f7ed;color:#07805e}.activation-checks .no>span{background:#fff0e6;color:#b85518}.activation-checks b,.activation-checks small{display:block}.activation-checks small{margin-top:2px;color:#73828d;font-size:11px}.activation-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}@media(max-width:900px){.supplier-manage-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}.activation-card-head{flex-direction:column}.activation-checks{grid-template-columns:1fr}}

/* TPMS V4.8.1 - Supplier Trial/Demo/Commercial project access */
.workspace-mode-note{border:1px solid #d9e8ef;background:#f5fafc;border-radius:10px;padding:12px}.workspace-mode-note b,.workspace-mode-note span{display:block}.workspace-mode-note b{color:#145f76;margin-bottom:5px}.workspace-mode-note span{font-size:10px;color:#657789;line-height:1.45}.supplier-project-access{margin:16px 0;padding:14px;border:1px solid #dfe8ef;border-radius:11px;background:#fbfdfe}.supplier-project-access-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.supplier-project-access-head h4{margin:0 0 4px}.supplier-project-access-head p{margin:0;color:#68798a;font-size:10px;line-height:1.45;max-width:600px}.supplier-project-access-head>div:last-child{display:flex;gap:7px;flex-wrap:wrap}.supplier-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:300px;overflow:auto;padding-right:4px}.supplier-project-option{display:flex;gap:9px;align-items:flex-start;border:1px solid #e2e9ef;border-radius:9px;padding:10px;background:#fff;cursor:pointer}.supplier-project-option:has(input:checked){border-color:#81b8c7;background:#f1fafb}.supplier-project-option input{margin-top:3px}.supplier-project-option span,.supplier-project-option b,.supplier-project-option small{display:block}.supplier-project-option b{font-size:11px;color:#173f5c}.supplier-project-option small{font-size:9px;color:#728191;margin-top:3px;line-height:1.35}.supplier-project-option:has(input:disabled){opacity:.5;cursor:not-allowed}.supplier-manage-tabs .active-tab{color:#0f7285;font-weight:700}.supplier-manage-summary{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:900px){.supplier-project-grid{grid-template-columns:1fr}.supplier-project-access-head{flex-direction:column}.supplier-manage-summary{grid-template-columns:repeat(2,1fr)}}

/* TPMS V4.8.1 Progress STT + Bulk Delete */
.gantt-tree-actions .gantt-delete-btn{color:#b42323!important;border-color:#efc4c1!important;background:#fffafa!important}.gantt-tree-actions .gantt-delete-btn:hover:not(:disabled){color:#991b1b!important;border-color:#e99b96!important;background:#fff1f0!important}.progress-update-form #fSortOrder,.professional-task-create #fSortOrder{max-width:150px;font-weight:800;text-align:center}

/* TPMS V4.8.1 Progress Performance + STT Order Fix */
.professional-gantt-row.selected{background:#f0f9ff}
.professional-gantt-row.selected .gantt-table-row{box-shadow:inset 3px 0 0 #0e7490}

/* TPMS V4.8.1 – Project-wide STT */
.gantt-stt{font-weight:800;text-align:center;font-variant-numeric:tabular-nums}
.professional-gantt-row.draft .gantt-stt{background:#fff8dd}

/* TPMS V4.8.1 Progress Ultra Performance */
.professional-progress-filters select,.professional-progress-filters input{contain:layout style}
.progress-shell{contain:layout style}

/* V4.8.1 Verified Priority Order */
.gantt-stt{min-width:30px}

/* TMS V4.8.2 – Parent/Child + Update Verified */
.gantt-task-name .gantt-parent-ref{
  display:inline-flex;align-items:center;max-width:86px;padding:2px 5px;margin-left:4px;
  border-radius:999px;background:#eef5ff;color:#315f93;font-size:7.5px;font-weight:700;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 0 auto
}
.professional-gantt-row.detail .gantt-task-name{border-left:2px solid #d6e4f5}
.gantt-dependency-svg .gantt-parent-link{stroke:#527aa5;stroke-width:1.6;stroke-dasharray:3 2;opacity:1}
