/* PMS additions on top of the shared portal stylesheet */
.content{max-width:1560px}
.sect-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:22px 0 10px;font-weight:700}
.kpis.k6{grid-template-columns:repeat(6,minmax(0,1fr))}
.kpi .value{font-size:1.45rem}
.kpi .foot{line-height:1.35}
.kpi.k-warn .value{color:#b45309}
.kpi.k-ok::before{background:var(--ok)}

/* management dashboard */
.attention{margin-bottom:16px;border-left:4px solid var(--bad)}
.attention h2{display:flex;gap:8px;align-items:center}
.att-list{list-style:none;margin:0;padding:6px 0}
.att-list>li{border-bottom:1px solid var(--line)}
.att-list>li:last-child{border-bottom:none}
.att-list summary{display:flex;gap:10px;align-items:center;padding:10px 18px;cursor:pointer;list-style:none}
.att-list summary::-webkit-details-marker{display:none}
.att-list summary:hover{background:#fafbfd}
.att-list .dot{width:10px;height:10px;border-radius:50%;flex:none;background:#d97706}
.att-bad .dot{background:#dc2626}
.att-text{font-weight:600;flex:1}
.att-sub{margin:0 0 10px 38px;padding:0;list-style:none;font-size:.88rem}
.att-sub li{padding:3px 0}
.dash-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.dash-groups .dgroup:last-child:nth-child(odd){grid-column:1/-1}
.dgroup{padding:14px 16px}
.dgroup h3{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--brand);margin:0 0 10px}
.minis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.minis.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.minis.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.minis.card{grid-template-columns:repeat(3,minmax(0,1fr))}
.mini{background:#f7f9fc;border:1px solid var(--line);border-radius:8px;padding:9px 11px;min-width:0}
.mini .ml{font-size:.7rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;line-height:1.25;min-height:1.8em}
.mini .mv{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini.k-bad{background:var(--bad-soft);border-color:#f3c5c5}.mini.k-bad .mv{color:var(--bad)}
.mini.k-warn{background:var(--warn-soft);border-color:#f3dcb4}.mini.k-warn .mv{color:#92400e}
.mini.k-ok .mv{color:var(--ok)}

/* project header and tabs */
.phead{margin-bottom:14px}
.phead-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}
.phead h1{margin:2px 0 4px}
.pcode{background:var(--nav);color:#fff;border-radius:6px;padding:1px 8px;font-size:.8em;margin-right:4px;vertical-align:2px}
.crumb{font-size:.8rem}
.tabs{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--line-2);margin-top:12px;scrollbar-width:thin}
.tabs a{padding:8px 12px;white-space:nowrap;color:var(--muted);border-bottom:2px solid transparent;font-weight:500;font-size:.9rem}
.tabs a:hover{color:var(--ink);text-decoration:none}
.tabs a.on{color:var(--brand);border-bottom-color:var(--brand)}

/* health and status */
.h-on-track{background:var(--ok-soft);color:var(--ok)}
.h-at-risk{background:var(--warn-soft);color:var(--warn)}
.h-critical{background:var(--bad-soft);color:var(--bad)}
.st-active,.st-approved,.st-delivered,.st-installed,.st-compliant,.st-valid,.st-completed,.st-recovered,.st-invoiced,.st-passed{background:var(--ok-soft);color:var(--ok)}
.st-approved-with-comments,.st-bill-approved,.st-measurement-certified,.st-responded,.st-partly-recovered{background:#e0f5f9;color:#0e7490}
.st-pipeline,.st-potential,.st-submitted,.st-bill-submitted,.st-measurement-submitted,.st-po-placed,.st-received,.st-released,.st-ready-for-installation{background:var(--info-soft);color:var(--info)}
.st-under-negotiation,.st-under-preparation,.st-pending-po,.st-pending-approval,.st-pending,.st-partly-delivered,.st-mitigating,.st-documents-pending,.st-expiring,.st-billed,.st-not-started,.st-draft{background:var(--warn-soft);color:var(--warn)}
.st-revise--resubmit,.st-rejected,.st-blocked,.st-non-compliant,.st-expired,.st-missing,.st-failed,.st-terminated,.st-lost{background:var(--bad-soft);color:var(--bad)}
.st-on-hold,.st-not-released,.st-not-applicable,.st-superseded,.st-for-information{background:#eef1f5;color:#475569}
.rs-active{background:var(--brand-soft);color:var(--brand)}
.rs-requested{background:var(--warn-soft);color:var(--warn)}
.rs-closed{background:#eef1f5;color:#475569}
.rs-rejected,.rs-cancelled{background:var(--bad-soft);color:var(--bad)}
.flag{display:inline-block;font-size:.72rem;font-weight:600;padding:1px 7px;border-radius:999px;background:#eef1f5;color:#475569;margin:1px 3px 1px 0;white-space:nowrap}
.flag.bad{background:var(--bad-soft);color:var(--bad)}
.flag.warn{background:var(--warn-soft);color:var(--warn)}
tr.row-late td:first-child{box-shadow:inset 3px 0 0 #dc2626}

/* registers */
.reg{margin-bottom:16px;scroll-margin-top:12px}
.reg-help{color:var(--muted);font-size:.84rem;margin:10px 18px}
.reg-t td{padding:8px 12px}.reg-t th{padding:8px 12px}
.t.compact td,.t.compact th{padding:7px 12px}
.t tfoot th{background:#f8fafc;color:var(--ink);font-size:.82rem;text-transform:none;letter-spacing:0}
.inline-search{display:flex;gap:6px}
.inline-search input,.inline-search select{padding:5px 8px;font-size:.85rem;width:auto}
.inline-search input{width:160px}
.pct-in{width:70px;padding:3px 6px;text-align:right;border:1px solid var(--line-2);border-radius:6px;font:inherit}
.bulk-bar{display:flex;justify-content:flex-end;gap:10px;align-items:center;padding:10px 18px;border-top:1px solid var(--line);background:#fafbfd}
.form-grid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
fieldset.plain{border:0;padding:0;margin:0;min-width:0}
fieldset[disabled] input,fieldset[disabled] select,fieldset[disabled] textarea{background:#f8fafc;color:var(--ink)}
.hist{list-style:none;margin:0;padding:0}
.hist li{padding:8px 18px;border-bottom:1px solid var(--line)}
.steps{padding-left:20px}.steps li{margin:8px 0}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px 16px}
form.reserve{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
form.reserve input{width:auto;padding:4px 6px;font-size:.84rem}
form.reserve input[name=qty]{width:74px}form.reserve input[name=remarks]{width:120px}
.btn[disabled]{opacity:.45;cursor:not-allowed}

/* charts */
svg.chart{width:100%;height:auto;display:block}
svg.chart .ax{font-size:10px;fill:var(--muted)}
svg.chart .hit{fill:transparent;cursor:crosshair}
svg.chart .hit:hover{fill:rgba(15,27,45,.08)}
.donut-wrap .dc{font-size:22px;font-weight:700;fill:var(--ink)}
.donut-wrap .ax{font-size:10px;fill:var(--muted)}
.bars .row{grid-template-columns:minmax(90px,170px) 1fr minmax(44px,auto)}
.bars .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bars .fill{background:#2a78d6}
.bullets .brow{display:grid;grid-template-columns:minmax(80px,150px) 1fr minmax(110px,auto);gap:10px;align-items:center;padding:6px 0;font-size:.86rem}
.bullets .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.btrack{position:relative;height:14px;background:#eef2f7;border-radius:4px}
.bfc{position:absolute;left:0;top:0;bottom:0;background:#b7d3f6;border-radius:4px}
.bac{position:absolute;left:0;top:3px;bottom:3px;background:#1c5cab;border-radius:3px}
.bbu{position:absolute;top:-3px;bottom:-3px;width:3px;margin-left:-1px;background:#0f1b2d;border-radius:2px}
.bbu.over{background:#dc2626}
.bullets .n{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.bullets .n small{font-weight:400;color:var(--muted)}
.key{flex-wrap:wrap;margin-top:8px}
.pp{display:flex;flex-direction:column;gap:3px;margin-bottom:3px;min-width:110px}
.pp-t{height:5px;background:#eef2f7;border-radius:3px;overflow:hidden}
.pp-t span{display:block;height:100%;border-radius:3px}
table.matrix{border-collapse:separate;border-spacing:3px;margin:auto}
table.matrix td{width:48px;height:34px;text-align:center;font-weight:700;border-radius:5px}
table.matrix th{font-size:.75rem;color:var(--muted);padding:0 4px}
.m-ok{background:#e7f6ec;color:#14532d}.m-warn{background:#fdf3e2;color:#78350f}.m-bad{background:#fdecec;color:#7f1d1d}

@media (max-width:1300px){.kpis.k6{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.dash-groups{grid-template-columns:1fr}.minis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis.k6{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.g3{grid-template-columns:1fr}.inline-search input{width:110px}}
@media print{.tabs,.bulk-bar,.inline-search{display:none!important}}

.t td.num{white-space:nowrap}
