
:root{
  --wf-blue:#1556a8;
  --wf-blue-dark:#0c376d;
  --wf-sky:#eaf3ff;
  --wf-ink:#162235;
  --wf-muted:#66758a;
  --wf-line:#dfe6ef;
  --wf-bg:#f5f7fb;
  --white:#fff;
  --ok:#16794b;
  --warn:#ad6800;
  --shadow:0 12px 30px rgba(20,47,83,.10);
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--wf-ink);background:var(--wf-bg)}
button,input,select{font:inherit}
button{cursor:pointer}
.topbar{background:var(--wf-blue-dark);color:#fff;padding:8px 28px;font-size:13px;display:flex;justify-content:space-between;gap:16px}
.header{position:sticky;top:0;z-index:20;background:#fff;border-bottom:1px solid var(--wf-line);box-shadow:0 3px 18px rgba(20,47,83,.05)}
.header-main{display:flex;align-items:center;gap:22px;padding:16px 28px}
.brand{display:flex;align-items:center;min-width:230px}
.logo-mark{font-size:32px;font-weight:900;letter-spacing:-2px;color:var(--wf-blue)}
.logo-mark span{color:#5d6672;font-size:18px;letter-spacing:2px;margin-left:6px}
.brand small{display:block;color:var(--wf-muted);font-size:11px;letter-spacing:.7px;margin-top:1px}
.search-wrap{flex:1;position:relative}
.search-wrap input{width:100%;border:1px solid #bfcbd9;border-radius:10px;padding:13px 44px 13px 15px;background:#fbfdff;outline:none}
.search-wrap input:focus{border-color:var(--wf-blue);box-shadow:0 0 0 3px rgba(21,86,168,.12)}
.search-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--wf-blue)}
.header-actions{display:flex;align-items:center;gap:10px}
.btn{border:0;border-radius:10px;padding:11px 15px;font-weight:700}
.btn-primary{background:var(--wf-blue);color:white}
.btn-soft{background:var(--wf-sky);color:var(--wf-blue-dark)}
.btn-outline{background:white;border:1px solid var(--wf-line);color:var(--wf-ink)}
.cart-btn{position:relative}
.cart-count{position:absolute;top:-8px;right:-7px;background:#d7263d;color:#fff;border-radius:99px;min-width:21px;height:21px;display:flex;align-items:center;justify-content:center;font-size:11px;border:2px solid white}
.nav{display:flex;gap:6px;padding:0 28px 13px;overflow:auto}
.nav button{white-space:nowrap;border:0;background:transparent;color:#425269;padding:7px 10px;border-radius:7px}
.nav button.active,.nav button:hover{background:var(--wf-sky);color:var(--wf-blue);font-weight:700}
.hero{margin:24px 28px 18px;border-radius:18px;background:linear-gradient(120deg,#0f3f79,#1673d2);color:#fff;padding:28px 30px;display:grid;grid-template-columns:1.5fr .8fr;gap:20px;box-shadow:var(--shadow)}
.hero h1{font-size:32px;margin:0 0 9px;letter-spacing:-.6px}
.hero p{margin:0;max-width:760px;line-height:1.55;color:#e8f2ff}
.hero-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}
.badge{border-radius:99px;padding:7px 10px;font-size:12px;font-weight:700;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25)}
.supplier-card{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:16px;align-self:stretch}
.supplier-card div{margin:5px 0;font-size:13px}
.supplier-card strong{display:inline-block;min-width:58px}
.layout{display:grid;grid-template-columns:260px 1fr;gap:20px;padding:0 28px 36px}
.sidebar{background:#fff;border:1px solid var(--wf-line);border-radius:14px;padding:17px;height:max-content;position:sticky;top:138px}
.sidebar h3{font-size:14px;margin:0 0 14px}
.filter-group{margin-bottom:17px}
.filter-group label{display:block;font-size:12px;font-weight:800;color:#4b5a6f;margin-bottom:6px;text-transform:uppercase;letter-spacing:.4px}
.filter-group select,.filter-group input{width:100%;border:1px solid var(--wf-line);padding:10px;border-radius:8px;background:#fff}
.check{display:flex;gap:8px;align-items:center;font-size:13px;color:#4d5a6b;margin:8px 0}
.catalog-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px;gap:10px}
.catalog-head h2{margin:0;font-size:22px}
.catalog-head p{margin:4px 0 0;color:var(--wf-muted);font-size:13px}
.sort-select{border:1px solid var(--wf-line);padding:9px 11px;border-radius:8px;background:white}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.card{background:#fff;border:1px solid var(--wf-line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;min-height:330px;transition:.18s ease}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#c6d7eb}
.product-visual{height:104px;background:linear-gradient(145deg,#f8fbff,#eaf2fc);display:flex;align-items:center;justify-content:center;position:relative}
.product-visual .device{font-size:42px}
.brand-pill{position:absolute;left:10px;top:10px;background:#fff;border:1px solid var(--wf-line);padding:4px 7px;border-radius:6px;font-size:10px;font-weight:800;color:var(--wf-blue-dark)}
.card-body{padding:14px;display:flex;flex-direction:column;flex:1}
.category-line{font-size:11px;color:var(--wf-muted);text-transform:uppercase;letter-spacing:.45px;margin-bottom:7px}
.product-title{font-weight:800;font-size:15px;line-height:1.3;min-height:39px}
.sku{font-size:11px;color:var(--wf-muted);margin:6px 0}
.desc{font-size:12px;color:#526174;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:52px}
.price-row{margin-top:auto;padding-top:12px;display:flex;align-items:end;justify-content:space-between;gap:8px}
.price{font-size:20px;font-weight:900;color:var(--wf-blue-dark)}
.price small{display:block;font-size:10px;font-weight:600;color:var(--wf-muted)}
.card-actions{display:flex;gap:7px;margin-top:11px}
.card-actions button{flex:1;padding:9px 8px;border-radius:8px;border:1px solid var(--wf-line);font-weight:750;background:#fff}
.card-actions .add{background:var(--wf-blue);color:#fff;border-color:var(--wf-blue)}
.pagination{display:flex;justify-content:center;gap:7px;margin-top:22px}
.pagination button{border:1px solid var(--wf-line);background:#fff;border-radius:7px;padding:8px 11px}
.pagination button.active{background:var(--wf-blue);color:#fff;border-color:var(--wf-blue)}
.drawer{position:fixed;right:-430px;top:0;width:410px;max-width:94vw;height:100vh;background:#fff;z-index:60;box-shadow:-10px 0 30px rgba(0,0,0,.16);transition:right .25s ease;display:flex;flex-direction:column}
.drawer.open{right:0}
.drawer-head{padding:18px;border-bottom:1px solid var(--wf-line);display:flex;justify-content:space-between;align-items:center}
.drawer-body{padding:12px 18px;overflow:auto;flex:1}
.cart-item{border-bottom:1px solid var(--wf-line);padding:13px 0}
.cart-item-title{font-weight:800;font-size:13px}
.cart-item-meta{color:var(--wf-muted);font-size:11px;margin:3px 0 8px}
.qty-row{display:flex;justify-content:space-between;align-items:center}
.qty-controls{display:flex;gap:5px;align-items:center}
.qty-controls button{width:28px;height:28px;border:1px solid var(--wf-line);background:#fff;border-radius:6px}
.drawer-foot{padding:16px 18px;border-top:1px solid var(--wf-line);background:#fbfcfe}
.total{display:flex;justify-content:space-between;font-weight:900;font-size:18px;margin-bottom:12px}
.drawer-foot .btn{width:100%;margin-top:7px}
.overlay{position:fixed;inset:0;background:rgba(11,25,43,.42);z-index:50;display:none}
.overlay.show{display:block}
.modal{position:fixed;z-index:70;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.28);width:min(850px,94vw);max-height:88vh;overflow:auto;display:none}
.modal.show{display:block}
.modal-head{padding:17px 20px;border-bottom:1px solid var(--wf-line);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:white;z-index:2}
.modal-body{padding:20px}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.detail-box{border:1px solid var(--wf-line);border-radius:10px;padding:12px}
.detail-box label{display:block;font-size:10px;text-transform:uppercase;font-weight:800;color:var(--wf-muted);margin-bottom:4px}
.specs{white-space:pre-wrap;line-height:1.55;font-size:13px;background:#f7f9fc;border-radius:10px;padding:13px}
.xml{background:#0e1726;color:#dce8f7;padding:16px;border-radius:10px;white-space:pre-wrap;word-break:break-word;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;max-height:430px;overflow:auto}
.empty{background:white;border:1px dashed #c7d2e0;border-radius:12px;padding:45px;text-align:center;color:var(--wf-muted)}
.footer{padding:18px 28px 35px;color:#718096;font-size:12px;text-align:center}
.dev-label{color:#ffe7a1;font-weight:800}
@media(max-width:1150px){.grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{position:static}.grid{grid-template-columns:repeat(2,1fr)}.hero{grid-template-columns:1fr}.supplier-card{display:none}}
@media(max-width:610px){.header-main{padding:12px 14px;flex-wrap:wrap}.brand{min-width:auto}.search-wrap{order:3;flex-basis:100%}.header-actions .btn-soft{display:none}.nav,.hero,.layout{margin-left:0;margin-right:0}.nav{padding-left:14px}.hero{border-radius:0;padding:23px 17px}.layout{padding:0 14px 28px}.grid{grid-template-columns:1fr}.topbar{padding:7px 14px}.detail-grid{grid-template-columns:1fr}}

.procurement-strip{margin:0 28px 20px;display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.procurement-strip>div{background:#fff;border:1px solid var(--wf-line);border-radius:12px;padding:12px 14px;box-shadow:0 5px 15px rgba(20,47,83,.05)}
.procurement-strip strong{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.55px;color:var(--wf-muted);margin-bottom:5px}
.procurement-strip span{font-size:13px;font-weight:800;color:var(--wf-blue-dark)}
.compare-table{width:100%;border-collapse:collapse;font-size:12px}
.compare-table th,.compare-table td{border:1px solid var(--wf-line);padding:9px;vertical-align:top;text-align:left}
.compare-table th{background:#f2f6fb;color:var(--wf-blue-dark)}
.compare-chip{display:inline-flex;align-items:center;gap:5px;background:#edf5ff;color:var(--wf-blue-dark);border:1px solid #cfe0f5;border-radius:99px;padding:5px 8px;font-size:11px;font-weight:750}
@media(max-width:900px){.procurement-strip{grid-template-columns:repeat(2,1fr);margin:0 14px 18px}}

.procurement-tools{margin:0 28px 18px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.tool-card{border:1px solid var(--wf-line);background:#fff;border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:11px;text-align:left;box-shadow:0 5px 16px rgba(20,47,83,.04)}
.tool-card>span{width:34px;height:34px;border-radius:10px;background:var(--wf-sky);color:var(--wf-blue);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:900}
.tool-card strong{display:block;font-size:13px;color:var(--wf-blue-dark)}
.tool-card small{display:block;font-size:11px;color:var(--wf-muted);margin-top:2px}
.favorite-btn{position:absolute;right:10px;top:10px;border:1px solid var(--wf-line);background:#fff;width:31px;height:31px;border-radius:9px;font-size:16px;display:flex;align-items:center;justify-content:center}
.favorite-btn.on{color:#d49b00;background:#fff8dc;border-color:#eed894}
.flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:12px}
.flow-step{border:1px solid var(--wf-line);border-radius:14px;padding:16px;background:#fbfdff;min-height:150px}
.flow-step b{display:flex;width:30px;height:30px;border-radius:50%;background:var(--wf-blue);color:white;align-items:center;justify-content:center;margin-bottom:12px}
.flow-step strong{display:block;color:var(--wf-blue-dark);font-size:16px;margin-bottom:7px}
.flow-step span{color:var(--wf-muted);font-size:12px;line-height:1.5}
.flow-arrow{font-size:28px;color:var(--wf-blue);font-weight:900}
.mobile-filter-btn{display:none}
@media(max-width:900px){.procurement-tools{grid-template-columns:repeat(2,1fr);margin:0 14px 16px}.flow{grid-template-columns:1fr}.flow-arrow{transform:rotate(90deg);text-align:center}}
@media(max-width:610px){.procurement-tools{grid-template-columns:1fr 1fr;gap:8px}.tool-card{padding:10px}.hero h1{font-size:25px}}

.category-showcase{margin:0 28px 18px;display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.category-tile{border:1px solid var(--wf-line);background:#fff;border-radius:14px;padding:14px 12px;text-align:left;transition:.16s;box-shadow:0 5px 16px rgba(20,47,83,.04)}
.category-tile:hover{transform:translateY(-2px);border-color:#bfd2e9;box-shadow:var(--shadow)}
.category-tile .ico{font-size:24px;margin-bottom:8px}
.category-tile strong{display:block;color:var(--wf-blue-dark);font-size:13px}
.category-tile small{display:block;color:var(--wf-muted);font-size:11px;margin-top:3px}
.contract-ribbon{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0 0}
.contract-ribbon span{background:#eef5fd;color:#164f91;border:1px solid #cfe0f3;border-radius:99px;padding:5px 8px;font-size:10px;font-weight:800}
.product-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}
.product-kpis .kpi{border:1px solid var(--wf-line);border-radius:10px;padding:10px;background:#fbfcfe}
.product-kpis .kpi label{display:block;color:var(--wf-muted);font-size:9px;text-transform:uppercase;font-weight:800;letter-spacing:.4px}
.product-kpis .kpi strong{display:block;margin-top:4px;color:var(--wf-blue-dark);font-size:13px}
.requisition-sheet{font-family:Arial,sans-serif;color:#111;padding:24px}
.requisition-sheet h1{font-size:22px;margin:0 0 4px}
.requisition-sheet .meta{font-size:12px;color:#555;margin-bottom:18px}
.requisition-sheet table{width:100%;border-collapse:collapse;font-size:11px}
.requisition-sheet th,.requisition-sheet td{border:1px solid #bbb;padding:7px;text-align:left;vertical-align:top}
.requisition-sheet th{background:#eee}
.requisition-sheet .grand{font-size:16px;font-weight:bold;text-align:right;margin-top:14px}
@media(max-width:1150px){.category-showcase{grid-template-columns:repeat(3,1fr)}}
@media(max-width:610px){.category-showcase{grid-template-columns:repeat(2,1fr);margin:0 14px 16px}.product-kpis{grid-template-columns:repeat(2,1fr)}}

.procurement-tools{grid-template-columns:repeat(5,1fr)}
.readiness-pill{display:inline-flex;align-items:center;border-radius:99px;padding:4px 7px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.35px}
.readiness-ready{background:#e8f7ef;color:#16794b;border:1px solid #bde6cf}
.readiness-review{background:#fff5db;color:#9a6700;border:1px solid #f1d999}
.readiness-incomplete{background:#fdeaea;color:#b42318;border:1px solid #f0b9b5}
.quality-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.quality-card{border:1px solid var(--wf-line);border-radius:12px;padding:14px;background:#fbfdff}
.quality-card strong{display:block;font-size:23px;color:var(--wf-blue-dark)}
.quality-card span{font-size:11px;color:var(--wf-muted)}
.quality-table{width:100%;border-collapse:collapse;font-size:12px}
.quality-table th,.quality-table td{padding:8px;border-bottom:1px solid var(--wf-line);text-align:left}
.quality-table th{color:var(--wf-muted);font-size:10px;text-transform:uppercase;letter-spacing:.45px}
@media(max-width:900px){.procurement-tools{grid-template-columns:repeat(2,1fr)}.quality-grid{grid-template-columns:repeat(2,1fr)}}

.status-banner{margin:18px 28px 10px;background:#fff;border:1px solid var(--wf-line);border-radius:14px;display:grid;grid-template-columns:2fr repeat(4,1fr);overflow:hidden;box-shadow:0 5px 16px rgba(20,47,83,.04)}
.status-banner>div{padding:11px 14px;border-right:1px solid var(--wf-line)}
.status-banner>div:last-child{border-right:0}
.status-banner strong{display:block;color:var(--wf-blue-dark);font-size:13px}
.status-banner span{display:block;color:var(--wf-muted);font-size:10px;margin-top:2px;text-transform:uppercase;letter-spacing:.45px}
.qa-list{display:grid;gap:8px}
.qa-item{border:1px solid var(--wf-line);border-radius:10px;padding:11px 12px;display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center}
.qa-dot{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:900}
.qa-pass{background:#e8f7ef;color:#16794b}
.qa-review{background:#fff4d6;color:#9a6700}
.qa-note{font-size:11px;color:var(--wf-muted)}
.qa-status{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.4px}
@media(max-width:900px){.status-banner{grid-template-columns:1fr 1fr;margin:14px}.status-banner>div{border-bottom:1px solid var(--wf-line)}}

.req-meta{border:1px solid var(--wf-line);border-radius:10px;padding:11px;background:#fff;margin-bottom:12px}
.req-meta-title{font-size:11px;font-weight:900;color:var(--wf-blue-dark);text-transform:uppercase;letter-spacing:.45px;margin-bottom:8px}
.req-meta-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.req-meta input,.req-meta textarea,.detail-box input{width:100%;border:1px solid var(--wf-line);border-radius:7px;padding:8px;background:#fbfdff}
.req-meta textarea{margin-top:7px;min-height:58px;resize:vertical}
.presentation-steps{display:grid;gap:10px}
.presentation-step{display:grid;grid-template-columns:38px 1fr;gap:11px;align-items:start;border:1px solid var(--wf-line);border-radius:12px;padding:13px;background:#fbfdff}
.presentation-step>b{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--wf-blue);color:#fff}
.presentation-step strong{display:block;color:var(--wf-blue-dark);margin-bottom:4px}
.presentation-step span{display:block;color:var(--wf-muted);font-size:12px;line-height:1.45}
.session-pill{display:inline-flex;gap:5px;align-items:center;background:#e8f7ef;color:#16794b;border:1px solid #bde6cf;border-radius:99px;padding:5px 8px;font-size:10px;font-weight:800}
@media(max-width:610px){.req-meta-grid{grid-template-columns:1fr}}

.admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}
.admin-card{border:1px solid var(--wf-line);border-radius:12px;padding:14px;background:#fbfdff}
.admin-card span{display:block;color:var(--wf-muted);font-size:9px;font-weight:900;letter-spacing:.5px}
.admin-card strong{display:block;color:var(--wf-blue-dark);font-size:22px;margin:4px 0}
.admin-card small{display:block;color:var(--wf-muted);font-size:10px}
.admin-actions{display:flex;gap:8px;flex-wrap:wrap}
.audit-list{display:grid;gap:6px;max-height:430px;overflow:auto}
.audit-row{border:1px solid var(--wf-line);border-radius:9px;padding:9px 10px;display:grid;grid-template-columns:145px 110px 1fr;gap:8px;font-size:11px}
.audit-row time{color:var(--wf-muted)}
.audit-row b{color:var(--wf-blue-dark)}
@media(max-width:900px){.admin-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:610px){.audit-row{grid-template-columns:1fr}.admin-grid{grid-template-columns:1fr 1fr}}

.release-hero{background:linear-gradient(120deg,#0c376d,#1556a8);color:#fff;border-radius:14px;padding:18px;display:grid;grid-template-columns:1fr auto;gap:15px;align-items:center}
.release-hero h2{margin:6px 0 5px;font-size:23px}
.release-hero p{margin:0;color:#e4efff;font-size:12px;line-height:1.5}
.release-tag{display:inline-block;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);border-radius:99px;padding:4px 8px;font-size:10px;font-weight:900}
.release-score{min-width:105px;text-align:center;border-left:1px solid rgba(255,255,255,.22);padding-left:16px}
.release-score strong{display:block;font-size:34px}
.release-score span{font-size:10px;text-transform:uppercase;letter-spacing:.4px}
.release-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:15px}
.release-grid>div{border:1px solid var(--wf-line);border-radius:10px;padding:10px;background:#fbfdff;display:flex;gap:8px;align-items:center}
.release-grid b{color:#16794b}
.release-grid span{font-size:11px;font-weight:700;color:#33445b}
@media(max-width:610px){.release-grid{grid-template-columns:1fr 1fr}.release-hero{grid-template-columns:1fr}.release-score{border-left:0;border-top:1px solid rgba(255,255,255,.22);padding:12px 0 0}}

.source-status{border:1px solid var(--wf-line);border-radius:12px;padding:13px 14px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin-bottom:9px}
.source-status strong{display:block;font-size:12px;color:var(--wf-blue-dark)}
.source-status span{display:block;font-size:11px;color:var(--wf-muted);margin-top:3px}
.source-status b{font-size:10px;border-radius:99px;padding:5px 8px;white-space:nowrap}
.source-warn{background:#fffaf0}.source-warn b{background:#fff0c2;color:#8a5b00}
.source-next{background:#f4f8ff}.source-next b{background:#e6effc;color:#17579d}
.source-ok{background:#f1fbf5}.source-ok b{background:#dff5e8;color:#16794b}
.source-copy{font-size:12px;line-height:1.55;color:#53647a}

.integration-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:8px;align-items:center}
.integration-flow>div{border:1px solid var(--wf-line);border-radius:12px;padding:12px;background:#fbfdff;text-align:center}
.integration-flow>div b{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--wf-blue);color:#fff;margin:0 auto 7px}
.integration-flow strong{display:block;color:var(--wf-blue-dark);font-size:12px}
.integration-flow span{display:block;color:var(--wf-muted);font-size:10px;margin-top:3px}
.integration-flow i{font-style:normal;color:var(--wf-muted);font-size:18px}
@media(max-width:850px){.integration-flow{grid-template-columns:1fr}.integration-flow i{transform:rotate(90deg);text-align:center}}

.permission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.permission-grid>div{border:1px solid var(--wf-line);border-radius:12px;padding:13px;background:#fbfdff}
.permission-grid strong{display:block;color:var(--wf-blue-dark);margin-bottom:8px}
.permission-grid span{display:block;color:var(--wf-muted);font-size:11px;padding:4px 0;border-bottom:1px dashed #e3e8ef}
.permission-grid span:last-child{border-bottom:0}
@media(max-width:750px){.permission-grid{grid-template-columns:1fr}}

.publish-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr auto 1fr;gap:7px;align-items:center;margin:12px 0 16px}
.publish-flow>div{border:1px solid var(--wf-line);border-radius:10px;padding:10px;background:#fbfdff;text-align:center}
.publish-flow b{display:flex;width:24px;height:24px;border-radius:50%;background:var(--wf-blue);color:#fff;align-items:center;justify-content:center;margin:0 auto 6px;font-size:11px}
.publish-flow span{font-size:10px;font-weight:700;color:#42556c}
.publish-flow i{font-style:normal;color:var(--wf-muted)}
.catalog-admin-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.staging-summary{border:1px solid var(--wf-line);border-radius:12px;padding:12px;background:#fff}
.staging-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.staging-card{border:1px solid var(--wf-line);border-radius:10px;padding:10px;background:#fbfdff}
.staging-card strong{display:block;font-size:20px;color:var(--wf-blue-dark)}
.staging-card span{font-size:10px;color:var(--wf-muted)}
@media(max-width:850px){.publish-flow{grid-template-columns:1fr}.publish-flow i{transform:rotate(90deg);text-align:center}.staging-grid{grid-template-columns:repeat(2,1fr)}}

.search-execute-btn{border:0;background:transparent;cursor:pointer;font-size:22px;color:#315d8f;padding:6px 8px;border-radius:8px}
.search-execute-btn:hover{background:#eef5fd}

/* =========================
   RC6 · Visual Polish Layer
   ========================= */

:root{
  --wf-navy:#0b2d57;
  --wf-blue:#145ba6;
  --wf-blue-dark:#0a376b;
  --wf-ink:#172335;
  --wf-muted:#66758a;
  --wf-line:#dbe4ef;
  --wf-soft:#f5f8fc;
  --wf-soft-blue:#edf4fb;
  --wf-white:#ffffff;
  --shadow:0 14px 36px rgba(28,55,90,.10);
  --shadow-soft:0 8px 24px rgba(28,55,90,.07);
  --radius-lg:20px;
  --radius-md:14px;
}

body{
  background:
    radial-gradient(circle at top right, rgba(27,93,162,.08), transparent 34%),
    linear-gradient(180deg,#f8fbff 0%,#f4f7fb 44%,#f7f9fc 100%);
  color:var(--wf-ink);
}

.topbar{
  background:linear-gradient(90deg,#082c56 0%,#0f447e 55%,#145ba6 100%);
  border-bottom:0;
  box-shadow:0 8px 24px rgba(9,39,74,.16);
}

.brand-lockup{
  letter-spacing:.1px;
}

.dev-label{
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.22)!important;
  color:#fff!important;
  box-shadow:none!important;
}

.header-main{
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(218,228,239,.85);
  box-shadow:0 3px 18px rgba(31,55,88,.05);
}

.logo-wordmark{
  transform:scale(1.02);
  transform-origin:left center;
}

.search-wrap{
  background:#fff;
  border:1px solid #cfdbe9;
  border-radius:18px;
  box-shadow:0 6px 18px rgba(25,59,99,.06);
  transition:.18s ease;
}

.search-wrap:focus-within{
  border-color:#7da7d2;
  box-shadow:0 0 0 4px rgba(26,91,163,.08),0 8px 22px rgba(25,59,99,.08);
}

.search-wrap input{
  font-size:15px;
  font-weight:600;
  color:#18324f;
}

.search-execute-btn{
  width:38px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:11px;
  background:#edf4fb;
  color:#155a9f;
}

.header-actions .btn,
.header-main .btn{
  border-radius:12px;
  font-weight:800;
}

.quick-nav{
  background:#fff;
  border-bottom:1px solid #e4ebf3;
}

.quick-nav button{
  border-radius:10px;
  font-weight:800;
  padding:10px 14px;
}

.quick-nav button:hover{
  background:#eff5fb;
  color:#104f91;
}

.status-banner{
  background:linear-gradient(180deg,#ffffff,#fbfdff);
  border:1px solid #dce6f0;
  box-shadow:var(--shadow-soft);
  border-radius:18px;
}

.status-banner>div{
  padding:14px 16px;
}

.status-banner strong{
  font-size:14px;
}

.status-banner span{
  letter-spacing:.55px;
}

.hero-premium{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 25%,rgba(255,255,255,.22),transparent 28%),
    linear-gradient(135deg,#0a376b 0%,#11579f 58%,#1c70bf 100%);
  border:0;
  border-radius:24px;
  box-shadow:0 22px 50px rgba(12,61,111,.20);
}

.hero-premium:after{
  content:"";
  position:absolute;
  width:280px;height:280px;
  border-radius:50%;
  right:-85px;top:-110px;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:
    0 0 0 30px rgba(255,255,255,.025),
    0 0 0 65px rgba(255,255,255,.02);
}

.hero-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  font-size:10px;
  font-weight:900;
  letter-spacing:.9px;
  color:#d9eaff;
  margin-bottom:10px;
}

.hero h1{
  letter-spacing:-.7px;
  font-size:clamp(30px,3.4vw,48px);
  line-height:1.03;
}

.hero p{
  color:#e7f1fb;
  max-width:820px;
  font-size:15px;
  line-height:1.6;
}

.hero .pill,
.hero .chip{
  backdrop-filter:blur(6px);
}

.hero .supplier-card{
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10);
}

.category-showcase{
  margin-top:18px;
  gap:12px;
}

.category-tile{
  position:relative;
  overflow:hidden;
  min-height:116px;
  background:linear-gradient(180deg,#fff,#fbfdff);
  border:1px solid #dbe5ef;
  border-radius:18px;
  padding:16px 14px;
  box-shadow:var(--shadow-soft);
}

.category-tile:after{
  content:"";
  position:absolute;
  width:70px;height:70px;border-radius:50%;
  right:-28px;bottom:-28px;
  background:rgba(28,112,191,.06);
}

.category-tile:hover{
  transform:translateY(-4px);
  border-color:#a9c5e0;
  box-shadow:0 16px 28px rgba(29,62,99,.10);
}

.category-tile .ico{
  width:42px;height:42px;
  display:flex;align-items:center;justify-content:center;
  border-radius:12px;
  background:#eef5fb;
  margin-bottom:10px;
}

.category-tile strong{
  font-size:13px;
}

.trust-strip{
  margin:0 28px 20px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}

.trust-strip>div{
  background:#fff;
  border:1px solid #dce5ef;
  border-radius:14px;
  padding:12px 14px;
  box-shadow:0 5px 14px rgba(20,47,83,.04);
}

.trust-strip strong{
  display:block;
  color:#738197;
  font-size:9px;
  letter-spacing:.7px;
  text-transform:uppercase;
  margin-bottom:4px;
}

.trust-strip span{
  display:block;
  color:#173858;
  font-size:12px;
  font-weight:800;
}

.procurement-tools{
  gap:12px;
}

.tool-card{
  border:1px solid #dce5ef;
  border-radius:16px;
  background:linear-gradient(180deg,#fff,#fbfdff);
  box-shadow:0 7px 20px rgba(20,47,83,.05);
  transition:.18s ease;
}

.tool-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 26px rgba(20,47,83,.09);
  border-color:#a8c5e1;
}

.tool-card>span{
  width:38px;height:38px;
  display:flex;align-items:center;justify-content:center;
  border-radius:11px;
  background:#edf4fb;
  color:#145b9e;
}

.catalog-shell,
.catalog-main,
.filters-panel{
  background:transparent;
}

.filters-panel{
  border:1px solid #dde6ef;
  border-radius:18px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow-soft);
}

.filter-group label{
  color:#38516e;
  font-weight:900;
  letter-spacing:.3px;
}

.filter-group input,
.filter-group select{
  border-radius:11px;
  border:1px solid #d3deea;
  background:#fbfdff;
}

.product-card{
  overflow:hidden;
  border:1px solid #dce5ef;
  border-radius:20px;
  background:#fff;
  box-shadow:0 9px 24px rgba(20,47,83,.06);
  transition:.18s ease;
}

.product-card:hover{
  transform:translateY(-5px);
  box-shadow:0 20px 36px rgba(20,47,83,.11);
  border-color:#a8c4df;
}

.product-visual{
  background:
    radial-gradient(circle at 78% 18%,rgba(28,112,191,.10),transparent 32%),
    linear-gradient(180deg,#f7fbff 0%,#edf4fb 100%);
  border-bottom:1px solid #e1e9f1;
}

.product-brand{
  background:#fff!important;
  border:1px solid #dce5ef!important;
  box-shadow:0 3px 8px rgba(20,47,83,.04);
}

.product-body{
  padding:15px 16px 16px;
}

.product-title{
  letter-spacing:-.2px;
  color:#153a61;
}

.product-desc{
  line-height:1.45;
}

.product-actions{
  gap:7px;
  padding-top:12px;
  border-top:1px solid #edf1f6;
  margin-top:12px;
}

.product-actions .btn{
  border-radius:10px;
  font-weight:850;
}

.readiness-pill{
  letter-spacing:.3px;
}

.pagination button{
  border-radius:10px;
}

.modal{
  border-radius:22px;
  box-shadow:0 30px 70px rgba(16,45,77,.25);
  overflow:hidden;
  border:1px solid #dbe5ef;
}

.modal-head{
  background:linear-gradient(180deg,#fff,#fbfdff);
  border-bottom:1px solid #e3eaf2;
}

.drawer{
  box-shadow:-24px 0 60px rgba(18,46,77,.22);
}

.drawer-head{
  background:linear-gradient(180deg,#fff,#fbfdff);
}

.contract-ribbon span{
  background:#edf4fb;
  border-color:#c9dbed;
  color:#124f8e;
}

.product-kpis .kpi,
.detail-box{
  background:linear-gradient(180deg,#fff,#fbfdff);
  border-color:#dde6ef;
}

.btn-primary{
  background:linear-gradient(180deg,#1a64ad,#11528f);
  border-color:#0f4c86;
  box-shadow:0 6px 14px rgba(20,91,166,.18);
}

.btn-primary:hover{
  filter:brightness(1.03);
  transform:translateY(-1px);
}

.btn-outline,
.btn-soft{
  border-radius:10px;
}

footer{
  background:#0d2f56;
  color:#dbe8f6;
  border-top:0;
}

@media(max-width:900px){
  .trust-strip{grid-template-columns:repeat(2,1fr);margin:0 14px 16px}
}

@media(max-width:610px){
  .hero-premium{border-radius:18px}
  .trust-strip{grid-template-columns:1fr 1fr}
  .status-banner{border-radius:14px}
}

/* RC6.1 Header/Search refinement */
.header-main{
  min-height:104px;
  padding-top:18px!important;
  padding-bottom:18px!important;
  align-items:center!important;
}

.logo-wordmark{
  min-width:250px;
}

.search-wrap{
  height:58px!important;
  min-height:58px!important;
  max-height:58px!important;
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  gap:6px!important;
  padding:7px 9px 7px 16px!important;
  overflow:hidden!important;
}

.search-wrap input{
  flex:1 1 auto!important;
  min-width:0!important;
  height:42px!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  padding:0!important;
  margin:0!important;
}

.search-execute-btn{
  position:static!important;
  flex:0 0 42px!important;
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  padding:0!important;
  margin:0!important;
  font-size:16px!important;
  border-radius:12px!important;
}

.search-wrap > svg,
.search-wrap > .search-icon,
.search-wrap > .icon-search{
  display:none!important;
}

.header-actions{
  gap:10px!important;
  align-items:center!important;
}

.header-actions .btn{
  min-height:46px;
  padding:0 16px!important;
  white-space:nowrap;
}

.quick-nav{
  padding-top:8px!important;
  padding-bottom:8px!important;
}

.status-banner{
  margin-top:14px!important;
  margin-bottom:16px!important;
}

.hero-premium{
  margin-top:0!important;
  padding-top:28px!important;
  padding-bottom:28px!important;
}

.hero-premium h1{
  max-width:760px;
  margin-bottom:12px!important;
}

.hero-premium p{
  max-width:760px;
}

@media(max-width:1100px){
  .header-main{
    grid-template-columns:220px minmax(280px,1fr)!important;
  }
  .header-actions{
    grid-column:1/-1;
    justify-content:flex-end;
  }
}

@media(max-width:760px){
  .header-main{
    display:block!important;
  }
  .logo-wordmark{
    margin-bottom:14px;
  }
  .search-wrap{
    width:100%!important;
    margin-bottom:12px;
  }
  .header-actions{
    justify-content:flex-start;
    flex-wrap:wrap;
  }
}

/* RC6.2 · Desktop composition refinement */
.topbar,
.header-main,
.quick-nav,
.status-banner,
.hero-premium,
.category-showcase,
.trust-strip,
.procurement-tools,
.catalog-shell,
footer{
  box-sizing:border-box;
}

.header-main{
  grid-template-columns:minmax(220px,280px) minmax(300px,1fr) auto!important;
  column-gap:18px!important;
  padding-left:24px!important;
  padding-right:24px!important;
}

.logo-wordmark{
  min-width:0!important;
  width:100%!important;
  max-width:265px!important;
}

.header-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
  max-width:520px;
}

.header-actions .btn{
  font-size:12px!important;
  padding-left:14px!important;
  padding-right:14px!important;
}

.quick-nav{
  padding-left:22px!important;
  padding-right:22px!important;
  overflow-x:auto;
  scrollbar-width:none;
}

.quick-nav::-webkit-scrollbar{display:none}

.status-banner{
  grid-template-columns:minmax(250px,1.7fr) repeat(4,minmax(110px,1fr))!important;
}

.hero-premium{
  display:grid!important;
  grid-template-columns:minmax(0,1.8fr) minmax(270px,.7fr)!important;
  gap:28px!important;
  align-items:center!important;
  padding:30px 34px!important;
}

.hero-premium .supplier-card{
  min-width:0!important;
  max-width:100%!important;
  padding:18px!important;
  border-radius:18px!important;
}

.hero-premium .supplier-card > *{
  min-width:0;
}

.hero-premium h1{
  font-size:clamp(32px,3.1vw,46px)!important;
}

.hero-premium p{
  font-size:14px!important;
  line-height:1.55!important;
}

.category-showcase{
  margin-top:20px!important;
}

@media(max-width:1180px){
  .header-main{
    grid-template-columns:220px minmax(280px,1fr)!important;
  }
  .header-actions{
    grid-column:1/-1!important;
    max-width:none!important;
    justify-content:flex-start!important;
  }
  .hero-premium{
    grid-template-columns:1fr!important;
  }
  .hero-premium .supplier-card{
    max-width:520px!important;
  }
}

@media(max-width:900px){
  .status-banner{
    grid-template-columns:repeat(2,1fr)!important;
  }
}


/* RC6.3 · Product commerce polish */
.header-actions .btn{
  font-size:11px!important;
  min-height:42px!important;
  padding:0 12px!important;
}

.product-card{
  min-height:430px;
  display:flex;
  flex-direction:column;
}

.product-body{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
}

.product-price-main{
  font-size:24px;
  line-height:1;
  font-weight:900;
  color:#0f4f8f;
  letter-spacing:-.6px;
  margin:8px 0 10px;
}

.product-price-main span{
  font-size:13px;
  color:#7a8798;
  font-weight:800;
  letter-spacing:0;
}

.product-meta-chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:10px 0 0;
}

.product-meta-chips span{
  display:inline-flex;
  align-items:center;
  border:1px solid #dde7f0;
  background:#f7faff;
  color:#48617d;
  border-radius:999px;
  padding:5px 8px;
  font-size:9px;
  font-weight:800;
  line-height:1.2;
}

.product-actions{
  margin-top:auto!important;
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
}

.product-actions .btn{
  min-height:40px;
  font-size:11px!important;
}

.product-actions .btn-primary{
  grid-column:1/-1;
}

.product-visual{
  min-height:150px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.product-visual .visual-icon,
.product-visual .ico{
  transform:scale(1.15);
}

.product-brand{
  font-size:10px!important;
  font-weight:900!important;
  letter-spacing:.2px;
}

.sku{
  font-size:10px!important;
  color:#738196!important;
}

.product-desc{
  color:#66758a!important;
  font-size:11px!important;
  line-height:1.5!important;
  min-height:49px;
}

.catalog-title-row{
  margin-bottom:14px!important;
}

.catalog-title-row h2{
  font-size:24px!important;
  letter-spacing:-.4px;
}

@media(max-width:900px){
  .product-card{min-height:0}
}

/* RC6.4 · Product grid and sticky-header refinement */

/* Give the catalog more horizontal breathing room */
.catalog-shell{
  grid-template-columns:300px minmax(0,1fr)!important;
  gap:18px!important;
  padding-left:22px!important;
  padding-right:22px!important;
}

.product-grid{
  grid-template-columns:repeat(3,minmax(250px,1fr))!important;
  gap:16px!important;
  align-items:stretch!important;
}

/* Prevent the first product row from hiding under sticky header/nav */
.catalog-main{
  scroll-margin-top:150px;
  padding-top:10px!important;
}

#productGrid{
  scroll-margin-top:150px;
}

/* Keep card actions readable and never clipped */
.product-card{
  min-width:0!important;
  min-height:470px!important;
}

.product-body{
  padding:16px 16px 18px!important;
  min-width:0!important;
}

.product-actions{
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
}

.product-actions .btn{
  min-width:0!important;
  width:100%!important;
  white-space:normal!important;
  line-height:1.15!important;
  padding:10px 8px!important;
  overflow:visible!important;
}

.product-actions .btn-primary{
  grid-column:1/-1!important;
  min-height:42px!important;
}

/* Make product text breathe */
.product-title{
  font-size:17px!important;
  line-height:1.25!important;
  min-height:42px;
}

.product-desc{
  min-height:52px!important;
}

.product-price-main{
  margin-top:12px!important;
}

/* Keep status/meta elements from crowding */
.product-meta-chips{
  min-height:28px;
}

.product-visual{
  min-height:165px!important;
}

/* Prevent sticky nav from overlaying content awkwardly */
.header-main{
  position:relative!important;
  top:auto!important;
}

.quick-nav{
  position:sticky!important;
  top:0!important;
  z-index:40!important;
  box-shadow:0 6px 16px rgba(20,47,83,.05);
}

/* Filters stay usable without taking over the page */
.filters-panel{
  position:sticky!important;
  top:82px!important;
  align-self:start!important;
  max-height:calc(100vh - 100px);
  overflow:auto;
}

/* Footer/cards */
.contract-strip{
  margin-top:22px!important;
}

@media(max-width:1280px){
  .product-grid{
    grid-template-columns:repeat(3,minmax(220px,1fr))!important;
  }
  .catalog-shell{
    grid-template-columns:270px minmax(0,1fr)!important;
  }
}

@media(max-width:1050px){
  .product-grid{
    grid-template-columns:repeat(2,minmax(230px,1fr))!important;
  }
}

@media(max-width:760px){
  .catalog-shell{
    display:block!important;
    padding-left:14px!important;
    padding-right:14px!important;
  }
  .filters-panel{
    position:relative!important;
    top:auto!important;
    max-height:none!important;
    margin-bottom:16px!important;
  }
  .product-grid{
    grid-template-columns:1fr!important;
  }
}

/* RC6.5 · Exact 3-column product grid + contained actions */
#productGrid.product-grid,
#productGrid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
  width:100%!important;
  min-width:0!important;
}

.catalog-main{
  min-width:0!important;
  overflow:hidden!important;
}

.product-card{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
}

.product-body{
  width:100%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}

.product-actions{
  width:100%!important;
  min-width:0!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:8px!important;
  box-sizing:border-box!important;
}

.product-actions > *{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

.product-actions .btn{
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

.product-actions .btn-primary{
  grid-column:1 / -1!important;
}

/* Keep the card footer/action area visible */
.product-card .product-body{
  padding-bottom:16px!important;
}

/* Internal tools are clearly separated from customer-facing catalog */
.internal-tools-head{
  margin:18px 28px 8px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:10px 14px;
  border:1px solid #dbe5ef;
  border-radius:14px;
  background:#f8fbff;
}

.internal-tools-head strong{
  display:block;
  color:#173858;
  font-size:12px;
}

.internal-tools-head span{
  display:block;
  color:#738197;
  font-size:10px;
  margin-top:2px;
}

.internal-tools-collapsed{
  display:none!important;
}

@media(max-width:1100px){
  #productGrid.product-grid,
  #productGrid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:720px){
  #productGrid.product-grid,
  #productGrid{
    grid-template-columns:1fr!important;
  }
  .internal-tools-head{
    margin:14px;
  }
}

/* RC6.6 · Presentation cleanup */
.product-visual-icon{
  font-size:44px;
  line-height:1;
  filter:saturate(.9);
}

.product-card{
  min-height:445px!important;
}

.product-visual{
  min-height:145px!important;
}

.product-title{
  min-height:auto!important;
}

.product-desc{
  min-height:42px!important;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.product-price-main .included-price{
  color:#16794b;
  font-size:18px;
  font-weight:900;
}

.product-price-main .consult-price{
  color:#6f7f91;
  font-size:15px;
  font-weight:800;
}

.internal-tools-head{
  margin-top:12px!important;
}

.internal-tools-collapsed + .catalog-shell{
  margin-top:10px!important;
}

.tool-card{
  min-height:76px;
}

/* RC6.7 · Customer view + icon polish */
.internal-tools-actions{display:flex;gap:8px;align-items:center}

.customer-view .internal-tools-head,
.customer-view #internalToolsPanel,
.customer-view .status-banner > div:first-child{
  display:none!important;
}

.customer-view .dev-label,
.customer-view #runtimeStatus{
  display:none!important;
}

.customer-view .status-banner{
  grid-template-columns:repeat(4,1fr)!important;
}

.customer-view footer{
  font-size:10px;
}

.product-visual-icon{
  font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;
}

/* RC7 · Presentation Candidate */
.customer-view .internal-tools-head,
.customer-view #internalToolsPanel,
.customer-view .dev-label,
.customer-view #runtimeStatus{
  display:none!important;
}

.customer-view .status-banner > div:first-child{
  display:none!important;
}

.customer-view .status-banner{
  grid-template-columns:repeat(4,1fr)!important;
}

.customer-view .hero-eyebrow{
  background:rgba(255,255,255,.12);
}

.customer-view .hero p{
  max-width:720px;
}

.customer-view footer{
  position:relative;
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.footer-view-toggle{
  position:absolute;
  right:18px;
  bottom:12px;
  border:0;
  background:transparent;
  color:rgba(255,255,255,.55);
  font-size:9px;
  cursor:pointer;
}

.footer-view-toggle:hover{
  color:#fff;
  text-decoration:underline;
}

.customer-view .footer-view-toggle{
  display:block;
}

body:not(.customer-view) .footer-view-toggle{
  color:rgba(255,255,255,.75);
}

.customer-view .tool-card,
.customer-view .admin-card,
.customer-view .quality-card{
  box-shadow:none;
}

.customer-view .trust-strip{
  margin-top:4px;
}

.customer-view .product-card{
  box-shadow:0 10px 25px rgba(20,47,83,.07);
}

.customer-view .product-actions .btn-primary{
  background:linear-gradient(180deg,#1a64ad,#11528f);
}

.customer-view .source-copy,
.customer-view .specs{
  color:#617188;
}

/* RC7.1 · Modal / Cart clarity hotfix */
.modal{
  max-height:calc(100vh - 34px)!important;
  overflow:hidden!important;
  z-index:1100!important;
}
.modal-head{
  position:sticky!important;
  top:0!important;
  z-index:5!important;
  background:#fff!important;
}
.modal-body{
  max-height:calc(100vh - 110px)!important;
  overflow:auto!important;
}
.modal-head .modalClose{
  min-width:42px!important;
  min-height:42px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.drawer{z-index:1200!important;}
.overlay{z-index:1000!important;}
#cartDrawer.open{
  transform:translateX(0)!important;
  visibility:visible!important;
  opacity:1!important;
}

/* RC7.2 · Cart completion controls */
.btn-danger-soft{
  border:1px solid #e7c7c7;
  background:#fff7f7;
  color:#9f3030;
  border-radius:10px;
  font-weight:800;
  min-height:42px;
}
.btn-danger-soft:hover{
  background:#fff0f0;
}
.drawer-foot .btn{
  width:100%;
}

.runtime-error-close{float:right;border:0;background:transparent;font-size:16px;cursor:pointer;color:#6f5300}

/* RC7.6 · Cart vertical-scroll fix */
#cartDrawer,
.cart-drawer,
.drawer{
  height:100vh!important;
  max-height:100vh!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}

#cartDrawer .drawer-head,
.cart-drawer .drawer-head,
.drawer .drawer-head{
  flex:0 0 auto!important;
}

#cartDrawer .drawer-body,
#cartDrawer .cart-body,
#cartDrawer .cart-content,
#cartDrawer .drawer-content,
.cart-drawer .drawer-body,
.drawer .drawer-body{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  padding-bottom:24px!important;
}

#cartDrawer .drawer-foot,
#cartDrawer .cart-footer,
.cart-drawer .drawer-foot,
.drawer .drawer-foot{
  flex:0 0 auto!important;
  position:sticky!important;
  bottom:0!important;
  background:#fff!important;
  z-index:4!important;
  padding-bottom:max(18px, env(safe-area-inset-bottom))!important;
  box-shadow:0 -8px 18px rgba(20,47,83,.06);
}

/* If the existing markup has no explicit scroll-body class, make the middle region scrollable. */
#cartDrawer{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior:contain!important;
  padding-bottom:28px!important;
}

/* Give the final cXML button extra room above the bottom edge/taskbar. */
#returnBtn{
  margin-bottom:24px!important;
  min-height:48px!important;
  position:relative!important;
  z-index:5!important;
}

/* RC8.1 cart action binding hotfix */
.cart-actions-status{
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.5px;
  color:#66809a;
  margin:4px 0 8px;
}
#emptyCartBtn,#exportBtn,#printBtn,#returnBtn{
  pointer-events:auto!important;
  cursor:pointer!important;
  position:relative!important;
  z-index:20!important;
}

/* RC9 · Mobile-first navigation and action access */
.mobile-dock,.mobile-sheet{display:none}
@media(max-width:700px){
  body{padding-bottom:78px}
  .topbar{display:none}
  .header{top:0}
  .header-main{padding:10px 12px;display:grid;grid-template-columns:1fr auto;gap:10px}
  .brand{min-width:0}
  .logo-mark{font-size:25px}
  .logo-mark span{font-size:14px;letter-spacing:1.5px}
  .brand small{font-size:9px}
  .search-wrap{grid-column:1/-1;order:3;width:100%}
  .search-wrap input{padding:12px 44px 12px 13px;font-size:15px}
  .header-actions{display:none!important}
  .nav{padding:8px 10px 10px;gap:2px;scrollbar-width:none}
  .nav::-webkit-scrollbar{display:none}
  .nav button{padding:7px 9px;font-size:13px}
  .hero{margin-top:10px}
  .mobile-dock{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:120;background:rgba(255,255,255,.98);border-top:1px solid var(--wf-line);box-shadow:0 -10px 28px rgba(20,47,83,.14);padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));backdrop-filter:blur(10px)}
  .mobile-dock button{position:relative;border:0;background:transparent;color:#31445e;display:flex;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 2px;border-radius:10px;font-weight:800}
  .mobile-dock button:active,.mobile-dock button.active{background:var(--wf-sky);color:var(--wf-blue)}
  .mobile-dock button>span{font-size:21px;line-height:1.1}
  .mobile-dock small{font-size:10px;white-space:nowrap}
  .mobile-dock .mobile-cart b{position:absolute;top:0;right:17%;background:#d7263d;color:#fff;border-radius:99px;min-width:18px;height:18px;font-size:10px;display:flex;align-items:center;justify-content:center;border:2px solid #fff}
  .mobile-sheet{position:fixed;inset:0;z-index:130;background:rgba(7,18,33,.34);align-items:flex-end;justify-content:center;padding:12px 12px calc(88px + env(safe-area-inset-bottom))}
  .mobile-sheet.open{display:flex}
  .mobile-sheet-card{background:#fff;border-radius:18px;width:min(520px,100%);padding:10px;box-shadow:0 24px 55px rgba(10,32,59,.28)}
  .mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 12px}
  .mobile-sheet-head button{border:0;background:#eef3f8;width:34px;height:34px;border-radius:10px}
  .mobile-sheet-card>button{width:100%;border:1px solid var(--wf-line);background:#fff;border-radius:12px;padding:14px;display:flex;align-items:center;gap:12px;font-weight:800;color:var(--wf-blue-dark);margin-top:8px;text-align:left}
  .mobile-sheet-card>button:first-of-type{margin-top:0}
  .mobile-sheet-card>button span{font-size:14px}
  .modal{width:calc(100vw - 16px);max-height:calc(100dvh - 88px);top:8px;left:8px;right:8px;bottom:auto;transform:none;border-radius:14px}
  .drawer{width:calc(100vw - 8px);max-width:none;right:4px;top:4px;bottom:calc(74px + env(safe-area-inset-bottom));border-radius:14px;max-height:none}
}

/* RC9.2 · Mobile cart / bottom dock coexistence fix */
@media(max-width:700px){
  :root{
    --wf-mobile-dock-space: calc(78px + env(safe-area-inset-bottom));
  }

  body{
    padding-bottom:var(--wf-mobile-dock-space)!important;
  }

  /* Keep navigation above every drawer/modal layer used by the catalog. */
  .mobile-dock{
    z-index:1000!important;
  }

  .mobile-sheet{
    z-index:1100!important;
  }

  /* Override legacy RC7.6 100vh rules on mobile. */
  #cartDrawer,
  .cart-drawer,
  .drawer{
    top:4px!important;
    right:4px!important;
    bottom:var(--wf-mobile-dock-space)!important;
    width:calc(100vw - 8px)!important;
    max-width:none!important;
    height:auto!important;
    max-height:calc(100dvh - var(--wf-mobile-dock-space) - 8px)!important;
    min-height:0!important;
    overflow:hidden!important;
    padding-bottom:0!important;
    border-radius:14px 14px 0 0!important;
    z-index:900!important;
    box-sizing:border-box!important;
  }

  #cartDrawer .drawer-head,
  .cart-drawer .drawer-head,
  .drawer .drawer-head{
    flex:0 0 auto!important;
    position:sticky!important;
    top:0!important;
    z-index:5!important;
    background:#fff!important;
  }

  #cartDrawer .drawer-body,
  #cartDrawer .cart-body,
  #cartDrawer .cart-content,
  #cartDrawer .drawer-content,
  .cart-drawer .drawer-body,
  .drawer .drawer-body{
    flex:1 1 auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
    padding-bottom:24px!important;
  }

  #cartDrawer .drawer-foot,
  #cartDrawer .cart-footer,
  .cart-drawer .drawer-foot,
  .drawer .drawer-foot{
    flex:0 0 auto!important;
    position:relative!important;
    bottom:auto!important;
    padding-bottom:18px!important;
  }

  /* Ensure final cart action never sits under the mobile dock. */
  #returnBtn{
    margin-bottom:8px!important;
  }
}

/* RC9.3 · Mobile cart bottom-sheet positioning */
@media(max-width:700px){
  #cartDrawer,
  .cart-drawer,
  .drawer{
    position:fixed!important;
    left:8px!important;
    right:8px!important;
    top:auto!important;
    bottom:var(--wf-mobile-dock-space)!important;

    width:auto!important;
    max-width:none!important;

    height:auto!important;
    min-height:0!important;
    max-height:calc(100dvh - var(--wf-mobile-dock-space) - 16px)!important;

    margin:0!important;
    transform:none!important;

    border-radius:18px 18px 0 0!important;
    overflow:hidden!important;

    display:flex!important;
    flex-direction:column!important;

    z-index:950!important;
  }

  #cartDrawer .drawer-head,
  .cart-drawer .drawer-head,
  .drawer .drawer-head{
    position:sticky!important;
    top:0!important;
    z-index:4!important;
    flex:0 0 auto!important;
    background:#fff!important;
  }

  #cartDrawer .drawer-body,
  #cartDrawer .cart-body,
  #cartDrawer .cart-content,
  #cartDrawer .drawer-content,
  .cart-drawer .drawer-body,
  .drawer .drawer-body{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    padding-bottom:20px!important;
  }

  #cartDrawer .drawer-foot,
  #cartDrawer .cart-footer,
  .cart-drawer .drawer-foot,
  .drawer .drawer-foot{
    position:relative!important;
    bottom:auto!important;
    flex:0 0 auto!important;
    padding-bottom:16px!important;
  }

  .mobile-dock{
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    z-index:1000!important;
  }
}

/* RC9.4 · Mobile cart full-scroll fix
   The complete cart scrolls; header remains sticky. This avoids clipping
   the requisition/actions footer when it is taller than the viewport. */
@media(max-width:700px){
  #cartDrawer{
    position:fixed!important;
    left:8px!important;
    right:8px!important;
    top:12px!important;
    bottom:var(--wf-mobile-dock-space)!important;

    width:auto!important;
    height:auto!important;
    max-height:none!important;
    min-height:0!important;

    margin:0!important;
    transform:none!important;

    display:block!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;

    border-radius:18px 18px 0 0!important;
    box-sizing:border-box!important;
    z-index:950!important;
    background:#fff!important;
    padding-bottom:18px!important;
  }

  #cartDrawer .drawer-head{
    position:sticky!important;
    top:0!important;
    z-index:20!important;
    background:#fff!important;
    border-bottom:1px solid #dbe4ee!important;
  }

  #cartDrawer .drawer-body{
    display:block!important;
    min-height:0!important;
    max-height:none!important;
    height:auto!important;
    overflow:visible!important;
  }

  #cartDrawer .drawer-foot{
    display:block!important;
    position:relative!important;
    bottom:auto!important;
    min-height:0!important;
    max-height:none!important;
    height:auto!important;
    overflow:visible!important;
    padding-bottom:28px!important;
  }

  #cartDrawer .drawer-foot > button{
    width:100%!important;
  }

  #cartDrawer #returnBtn{
    margin-bottom:16px!important;
  }

  .mobile-dock{
    position:fixed!important;
    left:0!important;
    right:0!important;
    bottom:0!important;
    z-index:1000!important;
  }
}



/* RC9.7 · Mobile initial cart visibility fix
   RC9.4 intentionally positioned the full-scroll cart inside the mobile viewport,
   but that rule also made the drawer visible even without the .open state.
   Keep RC9.4 scrolling behavior while restoring explicit closed/open states. */
@media(max-width:700px){
  #cartDrawer:not(.open){
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    transform:translateY(110%)!important;
  }

  #cartDrawer.open{
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
    transform:none!important;
  }

  #overlay:not(.show){
    visibility:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
  }

  #overlay.show{
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
}
