/* BLACKSNOW V34 | Perfex visual refinement, NO application changes */
body.portal-body{--p-surface:#FFFFFF;--p-base:#F8F6F8;--p-text:#231F29;--p-muted:#6D6570;--p-rule:#E7E0E5;--p-bordeaux:#88455A;--p-rose:#F2E7EB;--p-deep:#211E27;--p-radius:16px;--p-gap:14px;background:var(--p-base);color:var(--p-text);font-size:13px}
body.portal-body .app{grid-template-columns:238px minmax(0,1fr)}
body.portal-body .sidebar{padding:22px 13px 16px;gap:11px;background:var(--p-deep)}
body.portal-body .sidebar .brand{padding:0 9px 8px}
body.portal-body .sidebar .bs-logo{width:192px;max-width:100%}
body.portal-body .sidebar-caption{padding:10px 11px 4px;letter-spacing:.115em;font-size:9.5px;color:#B8ACB8}
body.portal-body .sidebar .nav-item{min-height:38px;padding:8px 11px;margin:1px 0;border-radius:10px;font-size:12.5px;gap:9px;color:#E5DDE4}
body.portal-body .sidebar .nav-item.active{background:#88455A!important;border:1px solid #9F6374!important;box-shadow:inset 3px 0 #E7BCCD!important;color:#fff}
body.portal-body .topbar{height:67px;padding-inline:clamp(20px,2.8vw,42px);background:#FFFFFFF2}
body.portal-body .content{max-width:1580px;padding:clamp(22px,2.5vw,34px) clamp(20px,2.8vw,42px) 75px}
body.portal-body h1{font-size:clamp(29px,2.7vw,42px);letter-spacing:-.043em;margin-bottom:9px;line-height:1.13}
body.portal-body h2{font-size:clamp(18px,1.5vw,22px);line-height:1.25}
body.portal-body .intro,body.portal-body :is(.v21-head,.v22-head,.finance-intro,.service-head){margin-bottom:18px;padding-bottom:0}
body.portal-body :is(.intro,.v21-head,.v22-head,.finance-intro,.service-head) p{font-size:13px;line-height:1.52}
body.portal-body :is(.panel,.v21-panel,.v22-panel,.finance-panel,.service-panel,.invoice-table-panel){border:1px solid var(--p-rule);border-radius:var(--p-radius);box-shadow:0 5px 20px #23192308;padding:clamp(17px,1.5vw,23px)}
body.portal-body :is(.v21-kpis,.v22-kpis,.service-kpis,.finance-metrics,.invoice-metrics){gap:12px;margin-bottom:14px}
body.portal-body :is(.v21-kpi,.v22-kpi,.finance-kpi,.service-kpi,.invoice-metric){padding:17px 19px;min-height:108px;border-radius:var(--p-radius);box-shadow:none}
body.portal-body .number{font-size:clamp(27px,2.6vw,37px);margin:7px 0 3px}
body.portal-body :is(.metric-value,.service-kpi strong,.finance-kpi strong){line-height:1.15;letter-spacing:-.025em}
body.portal-body .v21-welcome{padding:23px 25px;border-radius:18px;background:#F3E7EB;border-color:#E8D7DF}
body.portal-body :is(.v21-welcome,.panel,.v21-panel,.v22-panel) :is(p,small){overflow-wrap:break-word}
body.portal-body .v21-banner{min-height:0;border-radius:18px}
body.portal-body .grid{gap:13px}
body.portal-body :is(.v21-layout,.v22-grid,.invoice-layout){gap:13px}
body.portal-body :is(table,.finance-table,.v21-table,.v22-table) th{padding-block:10px;background:#FAF8FA;white-space:nowrap;color:#655D68}
body.portal-body :is(table,.finance-table,.v21-table,.v22-table) td{padding-block:12px;line-height:1.45}
body.portal-body :is(.panel-title,.v21-panelhead,.v22-panelhead){margin-bottom:12px}
body.portal-body :is(.panel-title h2,.v21-panelhead h2,.v22-panelhead h2){font-size:19px}
body.portal-body .btn{min-height:37px;padding:8px 14px;font-size:12px}
body.portal-body :is(.filters,.finance-tabs,.invoice-filterline){gap:7px;margin-bottom:14px}
body.portal-body :is(.chip,.finance-tabs a){font-size:11px}
body.portal-body .detail-hero{border-radius:18px;padding:25px;margin-bottom:14px}
body.portal-body .status{font-size:10.5px;padding:5px 9px;border-radius:999px}
body.portal-body .status.warn{background:#FFF1DA;color:#8B5C0E}
body.portal-body .status.red{background:#F8E1E5;color:#8F3349}
body.portal-body .status.blue{background:#E6EEF4;color:#365D76}
body.portal-body .status:not(.warn):not(.blue):not(.neutral):not(.red){background:#E5EFE8;color:#306344}
body.portal-body .breadcrumbs{color:#746B76}
body.portal-body .breadcrumbs strong{color:#302936}
body.portal-body .round{background:#F7F3F6;border:1px solid #E8DDE4}
body.portal-body .note,body.portal-body .info{background:#F4E9EE;color:#604958;border:1px solid #E6D6DF}
body.portal-body .panel.dark,body.portal-body .v21-banner{background:#27222E!important;border-color:#27222E!important}
body.portal-body .sidebar-bottom{border-color:#4C414D}
body.portal-body a:focus-visible,body.portal-body button:focus-visible{outline:3px solid #AF7185;outline-offset:3px}
@media (max-width:1150px){body.portal-body .app{grid-template-columns:216px minmax(0,1fr)}body.portal-body .content{padding-inline:22px}body.portal-body .sidebar .bs-logo{width:178px}}
@media (max-width:760px){body.portal-body .app{display:block}body.portal-body .sidebar{position:fixed;top:0;bottom:0;left:0;width:min(85vw,290px);height:100dvh;z-index:40;transform:translateX(-110%)}body.portal-body .sidebar.show{transform:translateX(0)}body.portal-body .topbar{height:64px;padding-inline:15px}body.portal-body .content{padding:19px 15px 65px}body.portal-body .intro{gap:13px}body.portal-body :is(.panel,.v21-panel,.v22-panel,.finance-panel,.service-panel){padding:17px}body.portal-body :is(.v21-kpis,.v22-kpis,.service-kpis,.finance-metrics,.invoice-metrics){gap:9px}body.portal-body :is(.v21-kpi,.v22-kpi,.finance-kpi,.service-kpi,.invoice-metric){padding:14px 15px;min-height:100px}body.portal-body .v21-welcome{padding:19px}body.portal-body .detail-hero{padding:20px}body.portal-body .v21-kpi strong{font-size:24px}}
@media (max-width:400px){body.portal-body :is(.v21-kpis,.v22-kpis,.service-kpis,.finance-metrics,.invoice-metrics){grid-template-columns:1fr 1fr}body.portal-body .number{font-size:27px}}
@media print{body.portal-body .panel,body.portal-body .v21-panel,body.portal-body .finance-panel{box-shadow:none!important}}
