body.portal-app{overflow:auto;height:100%}
.portal-app{
  --bg:#f4f2ee;--surface:#fffcf8;--surface2:#f7f4ef;--surface3:#ece8e1;
  --border:#e4dfd6;--border2:#d4cec3;
  --text:#1c1916;--text2:#6b645c;--text3:#9a9288;
  --send:#1c1916;--send-t:#fff;
  --accent:#b5695d;--accent-dim:rgba(181,105,93,.12);
  --ok:#2d8653;--warn:#b8860b;--danger:#b33;
  --shadow:0 10px 40px rgba(40,30,20,.08);
  background:var(--bg);color:var(--text);overflow:auto;height:100%;
}
.portal-app body,.portal-app{font-family:Inter,system-ui,sans-serif}
.portal-shell{max-width:1080px;margin:0 auto;padding:0 1.1rem 3rem}
.portal-app .top{position:sticky;top:0;background:rgba(244,242,238,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:10}
.portal-app .card{background:var(--surface);box-shadow:var(--shadow)}
.portal-app h1{font-size:1.7rem;letter-spacing:-.04em;font-weight:650;margin:.2rem 0 .2rem}
.plain{font-size:.92rem;color:var(--text2);line-height:1.55}
.kpi .why{font-size:.78rem;color:var(--text2);margin-top:.35rem}
.road .col{background:var(--surface)}
.portal-app .tabs{border-color:var(--border)}
.portal-app .tabs a.on{color:var(--text);border-bottom-color:var(--accent)}
@media print{
  .portal-app .top,.portal-app .tabs, .no-print{display:none!important}
  .portal-app{background:#fff}
}