:root{
  /* SAP Fiori-inspired enterprise palette */
  --sap-shell:#354a5f;
  --sap-shell-deep:#223548;
  --sap-shell-soft:#3f5870;
  --sap-blue:#0a6ed1;
  --sap-blue-hover:#0854a0;
  --sap-blue-light:#eaf3fc;
  --sap-blue-soft:#d1e8ff;
  --sap-sky:#5899da;
  --sap-canvas:#f7f7f7;
  --sap-surface:#ffffff;
  --sap-surface2:#f5f6f7;
  --sap-text:#32363a;
  --sap-muted:#6a6d70;
  --sap-border:#d9d9d9;
  --sap-border-strong:#b7bdc3;
  --sap-success:#107e3e;
  --sap-success-bg:#ebf5ec;
  --sap-warning:#e9730c;
  --sap-warning-bg:#fff4e5;
  --sap-error:#bb0000;
  --sap-error-bg:#ffebeb;
  --sap-info:#0a6ed1;
  --sap-teal:#07838f;
  --sap-purple:#945ecf;
  --sap-shadow:0 1px 3px rgba(34,53,72,.12),0 6px 18px rgba(34,53,72,.06);
  --sap-shadow-hover:0 2px 5px rgba(34,53,72,.16),0 10px 24px rgba(34,53,72,.08);

  /* Backward-compatible aliases used by existing templates */
  --shop:var(--sap-shell-deep);--shop2:var(--sap-shell);--shop3:var(--sap-shell-soft);--steel:#647987;
  --canvas:var(--sap-canvas);--surface:var(--sap-surface);--surface2:var(--sap-surface2);
  --ink:var(--sap-text);--muted:var(--sap-muted);--line:var(--sap-border);
  --amber:var(--sap-blue);--amber2:#4db1ff;--cyan:var(--sap-blue);--cyan2:var(--sap-sky);
  --green:var(--sap-success);--red:var(--sap-error);--orange:var(--sap-warning);--blue:var(--sap-blue);
  --shadow:var(--sap-shadow);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--sap-canvas);font-family:"72","72full","Segoe UI",Arial,Helvetica,sans-serif;color:var(--sap-text);font-size:14px}
.app-shell{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:100vh}
.sidebar{position:sticky;top:0;height:100vh;overflow:auto;background:linear-gradient(180deg,var(--sap-shell-deep) 0%,var(--sap-shell) 55%,#2d4257 100%);color:#eef4f8;border-right:1px solid #1b2d3d;box-shadow:3px 0 12px rgba(34,53,72,.16);z-index:20}
.sidebar:before{content:"";display:block;height:4px;background:linear-gradient(90deg,#00a4ef 0%,#0a6ed1 42%,#075caf 100%)}
.brand-zone{display:flex;align-items:center;gap:12px;padding:20px 18px 16px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand-mark{width:44px;height:44px;border-radius:6px;display:grid;place-items:center;background:#0a6ed1;color:#fff;font-size:23px;box-shadow:inset 0 -2px 0 rgba(0,0,0,.15),0 2px 6px rgba(0,0,0,.16)}
.brand-name{font-weight:800;font-size:19px;letter-spacing:.01em;color:#fff}.brand-product{font-size:11px;letter-spacing:.16em;color:#c7d7e5;font-weight:700}
.plant-badge{margin:14px 14px 18px;padding:11px 12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);display:flex;gap:10px;align-items:center;border-radius:6px}.plant-badge strong{display:block;font-size:12px;color:#fff}.plant-badge small{display:block;color:#bfd0de;margin-top:2px}
.status-beacon{width:8px;height:8px;border-radius:50%;background:#36b37e;box-shadow:0 0 0 4px rgba(54,179,126,.16);display:inline-block;flex:0 0 auto}
.nav-section-label{padding:0 18px 8px;color:#9fb4c5;text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:800}.shop-nav{padding:0 9px}
.shop-nav .nav-link{color:#d5e0e8;padding:9px 10px;border-radius:4px;margin:2px 0;display:flex;gap:10px;align-items:center;font-weight:600;font-size:13px;border-left:3px solid transparent;transition:background .15s,color .15s,border-color .15s}.shop-nav .nav-link:hover{background:rgba(255,255,255,.10);color:#fff}.shop-nav .nav-link.active{background:#fff;color:#1f3346;border-left-color:#0a6ed1;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.nav-icon{width:24px;text-align:center;color:#a9c0d1}.shop-nav .active .nav-icon{color:#0a6ed1}.sidebar-foot{margin:20px 14px 16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12)}.foot-row{display:flex;justify-content:space-between;gap:12px;padding:5px 2px;color:#adc0ce;font-size:11px}.foot-row strong{color:#eef4f8;font-weight:600}
.main-shell{min-width:0}
.topbar{height:74px;background:#fff;border-bottom:1px solid var(--sap-border);display:flex;justify-content:space-between;align-items:center;padding:0 24px;position:sticky;top:0;z-index:15;box-shadow:0 1px 4px rgba(34,53,72,.08)}
.topbar-title{display:flex;align-items:center;gap:10px}.page-context{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--sap-blue);font-weight:800}.topbar h1{font-size:23px;margin:2px 0 0;font-weight:700;color:var(--sap-text)}.topbar-right{display:flex;align-items:center;gap:10px}.status-tile{padding:5px 12px;border-left:1px solid var(--sap-border);min-width:115px}.status-label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#85898d}.status-tile strong{display:block;font-size:12px;margin-top:2px}.state-ok{color:var(--sap-success)}
.export-btn{border:1px solid #89919a;background:#fff;color:var(--sap-blue);font-weight:700;border-radius:4px}.export-btn:hover{background:var(--sap-blue-light);border-color:var(--sap-blue);color:var(--sap-blue-hover)}.mobile-nav-toggle{display:none;border:0;background:none;font-size:24px;color:var(--sap-blue)}
.ops-strip{min-height:42px;background:#eef2f5;color:#425466;display:flex;align-items:center;gap:10px;padding:6px 24px;border-bottom:1px solid #cbd2d8;position:sticky;top:74px;z-index:14}.horizon-form label{display:flex;align-items:center;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#536779;font-weight:700}.horizon-form .form-select{width:94px;background:#fff;color:var(--sap-text);border-color:#b7bdc3}.ops-chip{font-size:11px;padding:5px 9px;border-radius:3px;border:1px solid #cad4dd;background:#fff;color:#425466}.ops-chip i{color:var(--sap-blue);margin-right:4px}.ops-hint{margin-left:auto;font-size:11px;color:#6d7f8f}.content-area{padding:22px 24px 36px;max-width:1900px;margin:0 auto}
.hero-banner{background:linear-gradient(115deg,var(--sap-shell-deep) 0%,var(--sap-shell) 64%,#0a6ed1 140%);color:#fff;border:1px solid #2f4b64;border-left:5px solid #0a6ed1;padding:22px 24px;border-radius:6px;box-shadow:var(--sap-shadow);display:flex;justify-content:space-between;align-items:center;gap:20px}.hero-banner h2{font-size:24px;margin:2px 0 8px}.hero-banner p{color:#d9e5ee;max-width:850px}.eyebrow,.section-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:#76828c}.hero-banner .eyebrow{color:#86c8ff}.hero-pill{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.20);padding:12px 15px;border-radius:4px;min-width:260px}.hero-pill strong{color:#b9ddff}
.dashboard-card,.metric-card{background:var(--sap-surface);border:1px solid var(--sap-border);border-radius:6px;box-shadow:var(--sap-shadow);overflow:hidden}.panel-header,.dashboard-card>.card-header{min-height:54px;background:#fff;border-bottom:1px solid var(--sap-border);padding:12px 16px;display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-header:after{content:"";position:absolute}.panel-header h5,.dashboard-card>.card-header{font-size:14px;font-weight:700;margin:0;color:var(--sap-text)}.panel-subtitle{font-size:11px;color:var(--sap-muted);margin-top:3px}.panel-tools{font-size:11px;color:#7a7f83;white-space:nowrap}.live-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:var(--sap-success);margin-right:4px}.panel-body,.dashboard-card>.card-body{padding:16px}
.chart-card{border-top:3px solid #d1e8ff}.chart-card:hover{border-top-color:var(--sap-blue)}.metric-card{position:relative;min-height:100px;transition:transform .12s,box-shadow .12s}.metric-accent{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--sap-blue)}.metric-card-body,.metric-card .card-body{padding:15px 16px 14px 19px}.metric-label{color:var(--sap-muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;margin-bottom:7px}.metric-value{font-size:27px;font-weight:700;color:var(--sap-text);line-height:1.05}.small-metric{font-size:23px}.kpi-grid .metric-card:hover{transform:translateY(-1px);box-shadow:var(--sap-shadow-hover)}
.run-config{background:#fff;border:1px solid #c7ccd1;border-radius:6px;box-shadow:var(--sap-shadow);overflow:hidden}.run-console{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;border-left:4px solid var(--sap-blue)}.run-console-left{display:flex;align-items:center;gap:11px}.console-icon{width:38px;height:38px;display:grid;place-items:center;background:var(--sap-blue-light);border:1px solid #c2dcf5;border-radius:4px;color:var(--sap-blue);font-size:17px}.console-kicker{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#7b8084;font-weight:700}.console-selection{font-size:16px;font-weight:700;color:var(--sap-text);margin-top:1px}.run-console-actions{display:flex;gap:8px}.btn-run{background:var(--sap-blue);border:1px solid var(--sap-blue);color:#fff;font-weight:700;border-radius:4px;min-width:138px;box-shadow:0 1px 2px rgba(10,110,209,.18)}.btn-run:hover,.btn-run:focus{background:var(--sap-blue-hover);border-color:var(--sap-blue-hover);color:#fff}.btn-config{background:#fff;color:var(--sap-blue);border:1px solid #89919a;border-radius:4px;font-weight:700}.btn-config:hover{background:var(--sap-blue-light);border-color:var(--sap-blue);color:var(--sap-blue-hover)}
.config-drawer{border-top:1px solid var(--sap-border);background:#f8f9fa;padding:16px}.config-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.config-drawer-head h6{margin:3px 0 0;font-size:14px}.config-note{font-size:11px;color:#777d82}.config-grid{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:12px}.config-field{display:flex;flex-direction:column;gap:5px;font-size:11px;font-weight:700;color:#5c6368}.config-field .form-control,.config-field .form-select{font-size:13px}.form-control,.form-select{border-radius:4px;border-color:#89919a}.form-control:focus,.form-select:focus{border-color:var(--sap-blue);box-shadow:0 0 0 .15rem rgba(10,110,209,.16)}
.chart-host{min-height:330px}.chart-card .panel-body{padding:8px 10px 4px}.plotly-shell{min-height:520px}.modebar{opacity:.6}.table-scroll{max-height:510px;overflow:auto}.shop-table{font-size:12px;margin:0}.shop-table thead{position:sticky;top:0;z-index:2}.shop-table thead th{background:var(--sap-shell)!important;color:#fff!important;border-color:#50677b!important;padding:9px 8px;text-transform:uppercase;letter-spacing:.03em;font-size:10px;white-space:nowrap}.shop-table tbody td{padding:8px;border-color:#e5e5e5;white-space:nowrap}.shop-table tbody tr:nth-child(even){background:#fafafa}.shop-table tbody tr:hover{background:var(--sap-blue-light)}
.info-strip{background:#eef6fd;border:1px solid #b9d8f5;border-left:4px solid var(--sap-blue);border-radius:4px;padding:10px 12px;color:#30485d}.shop-callout{border:1px solid var(--sap-border);background:#fff;padding:14px 16px;border-radius:6px}.shop-callout.warning{border-left:4px solid var(--sap-warning);background:#fffdf9}.shop-callout.danger{border-left:4px solid var(--sap-error);background:#fffafa}
.process-lane{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.process-step{background:#edf4fb;border:1px solid #cadff3;border-radius:3px;padding:7px 9px;font-size:11px;font-weight:650;color:#244766}.lane-title{width:96px;font-weight:800}.heat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.heat-box{border:1px solid var(--sap-border);border-radius:5px;padding:14px;background:#fff}.heat-value{font-size:24px;font-weight:700}.alert-row{border:1px solid var(--sap-border);border-left-width:4px;border-radius:4px;padding:10px 12px;margin-bottom:9px;background:#fff}.severity-critical,.severity-high{border-left-color:var(--sap-error)}.severity-medium{border-left-color:var(--sap-warning)}.severity-low{border-left-color:var(--sap-success)}.recommendation-card{border:1px solid var(--sap-border);border-radius:4px;padding:10px;margin-bottom:9px;background:#fff}
.scenario-grid-v4{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;align-items:end}.scenario-grid-v4 label{font-weight:650;font-size:11px;color:#59636b}.scenario-actions-v4{align-self:end}.copilot-messages{min-height:250px;max-height:390px;overflow:auto;border:1px solid var(--sap-border);background:#f5f7f9;padding:12px;border-radius:4px}.chat-bubble{max-width:92%;padding:10px 12px;border-radius:5px;margin-bottom:10px}.bubble-user{margin-left:auto;background:#eaf3fc;border:1px solid #bad8f3;color:#234661}.bubble-bot{background:#fff;border:1px solid #d9d9d9}.badge-shop{font-size:10px;border-radius:3px;padding:5px 7px;font-weight:750}.badge-ok{background:var(--sap-success-bg);color:var(--sap-success)}.badge-warn{background:var(--sap-warning-bg);color:#8d4700}.badge-risk{background:var(--sap-error-bg);color:var(--sap-error)}
.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:10px}.section-head h3{font-size:17px;margin:0;font-weight:700}.section-head p{font-size:11px;color:var(--sap-muted);margin:3px 0 0}.quick-stat{background:var(--sap-shell);color:#fff;padding:9px 11px;border-radius:4px;font-size:11px}.quick-stat strong{color:#b9ddff}
.btn-primary{background:var(--sap-blue);border-color:var(--sap-blue)}.btn-primary:hover,.btn-primary:focus{background:var(--sap-blue-hover);border-color:var(--sap-blue-hover)}.btn-outline-primary{color:var(--sap-blue);border-color:var(--sap-blue)}.btn-outline-primary:hover{background:var(--sap-blue);border-color:var(--sap-blue);color:#fff}.dropdown-item:active{background:var(--sap-blue)}
.text-success{color:var(--sap-success)!important}.text-danger{color:var(--sap-error)!important}.text-warning{color:var(--sap-warning)!important}.bg-primary{background-color:var(--sap-blue)!important}
@media(max-width:1400px){.config-grid{grid-template-columns:repeat(3,minmax(160px,1fr))}.scenario-grid-v4{grid-template-columns:repeat(3,minmax(160px,1fr))}.ops-hint{display:none}}
@media(max-width:1050px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-280px;width:270px;transition:left .2s}.sidebar.open{left:0}.mobile-nav-toggle{display:block}.topbar-right .status-tile{display:none}.ops-strip{top:74px;overflow:auto}.content-area{padding:16px}.config-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media(max-width:700px){.topbar{padding:0 14px}.topbar h1{font-size:18px}.ops-strip{padding:6px 14px}.ops-chip{display:none}.run-console{align-items:flex-start;flex-direction:column}.run-console-actions{width:100%}.run-console-actions .btn{flex:1}.config-grid,.scenario-grid-v4{grid-template-columns:1fr}.hero-banner{display:block}.hero-pill{margin-top:14px;min-width:0}.chart-host{min-height:280px}}

/* V6 security, identity and audit surfaces */
.user-menu-btn{display:flex;align-items:center;gap:.55rem;border:1px solid #d9d9d9;background:#fff;color:#32363a;padding:.35rem .55rem;border-radius:.35rem;min-height:42px}.user-menu-btn:hover{background:#f5f6f7;border-color:#89919a}.user-avatar{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#0a6ed1;color:#fff;font-weight:700}.user-meta{display:flex;flex-direction:column;align-items:flex-start;line-height:1.05}.user-meta small{font-size:.7rem;color:#6a6d70;margin-top:.2rem}.user-menu .dropdown-menu{min-width:240px}
.auth-body{min-height:100vh;margin:0;background:#eef1f4;font-family:"72","Segoe UI",Arial,sans-serif;color:#32363a}.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,42%) 1fr}.auth-brand-panel{background:linear-gradient(145deg,#223548 0%,#354a5f 58%,#0a6ed1 140%);color:#fff;padding:clamp(2rem,6vw,6rem);display:flex;flex-direction:column;justify-content:center}.auth-brand-panel h1{font-size:clamp(2rem,4vw,3.4rem);font-weight:700;max-width:650px}.auth-brand-panel p{font-size:1.08rem;max-width:630px;color:rgba(255,255,255,.82);margin:1rem 0 2rem}.auth-brand-mark{width:66px;height:66px;border-radius:14px;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-size:2rem;margin-bottom:1.5rem;border:1px solid rgba(255,255,255,.16)}.auth-feature{display:flex;align-items:center;gap:.75rem;margin:.55rem 0;color:rgba(255,255,255,.9)}.auth-feature i{font-size:1.15rem;color:#91c8f6}.auth-form-panel{display:flex;align-items:center;justify-content:center;padding:2rem}.auth-card{width:min(100%,460px);background:#fff;border:1px solid #d9d9d9;border-radius:.5rem;padding:2rem;box-shadow:0 10px 35px rgba(34,53,72,.10)}.auth-card-wide{width:min(100%,640px)}.auth-card h2{font-weight:700}.auth-foot{font-size:.78rem;color:#6a6d70;margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e5e5e5}.role-card{border:1px solid #d9d9d9;border-left:4px solid #0a6ed1;border-radius:.35rem;padding:1rem;height:100%;background:#fff}.audit-table-wrap{max-height:680px;overflow:auto}.audit-table-wrap thead th{position:sticky;top:0;z-index:1;background:#f7f7f7}.empty-state-card{max-width:720px;margin:6vh auto;background:#fff;border:1px solid #d9d9d9;border-radius:.5rem;padding:3rem;text-align:center;box-shadow:0 8px 30px rgba(34,53,72,.08)}.empty-state-icon{font-size:3rem;color:#0a6ed1;margin-bottom:1rem}.shop-table code{font-size:.75rem;color:#354a5f}.security-note{border-left:4px solid #0a6ed1;background:#f0f7ff;padding:.85rem 1rem;border-radius:.25rem}
@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-brand-panel{min-height:36vh;padding:2rem}.auth-form-panel{padding:1.25rem}.user-meta{display:none}.status-tile{display:none}}
.permission-chip{font-weight:500;font-size:.68rem;letter-spacing:.01em}
