:root{font-family:Inter,Arial,sans-serif;color:#1f2937;background:#f4f7fb}
*{box-sizing:border-box}body{margin:0}.sidebar{position:fixed;inset:0 auto 0 0;width:235px;background:#102a43;color:#fff;padding:24px;overflow-y:auto}.brand{font-size:20px;font-weight:800}.user{color:#9fb3c8;margin:8px 0 22px}.sidebar a{display:block;color:#d9e2ec;text-decoration:none;padding:10px 12px;border-radius:8px;margin:4px 0}.sidebar a:hover{background:#243b53}.logout{margin-top:20px;width:100%;background:#243b53;color:white;border:0;padding:10px;border-radius:8px}.content{margin-left:235px;padding:32px;min-height:100vh}.login-shell{min-height:100vh;display:grid;place-items:center}.login-card{background:#fff;width:min(420px,92vw);padding:30px;border-radius:14px;box-shadow:0 8px 30px #0001}.page-head{display:flex;align-items:center;justify-content:space-between}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.card{background:white;padding:20px;border-radius:12px;box-shadow:0 2px 12px #0001}.card span{color:#627d98}.card strong{display:block;font-size:30px;margin-top:8px}.warning{border-left:5px solid #d97706}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:22px}table{width:100%;border-collapse:collapse;background:white;border-radius:12px;overflow:hidden;box-shadow:0 2px 12px #0001;margin-bottom:22px}th,td{padding:12px;border-bottom:1px solid #e5e7eb;text-align:left;font-size:14px}th{background:#eaf2f8}.primary,button{background:#0f6db5;color:white;border:0;border-radius:8px;padding:10px 16px;text-decoration:none;cursor:pointer}.secondary{background:#e2e8f0;color:#334155;border-radius:8px;padding:10px 16px;text-decoration:none}.search{display:flex;gap:10px;margin:18px 0}.search input{max-width:440px}.form-card{background:white;padding:24px;border-radius:12px;max-width:780px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-card.single-column{grid-template-columns:1fr}.form-card label{font-weight:700}.form-card input,.form-card select,.form-card textarea,.login-card input{width:100%;padding:10px;border:1px solid #cbd5e1;border-radius:8px;margin-top:6px}.form-card input[type=checkbox]{width:auto;margin-right:8px}.form-card textarea{min-height:90px}.form-card small{display:block;font-weight:400;color:#64748b;margin-top:5px}.error{display:block;color:#b91c1c;font-size:12px}.message,.notice,.help-card,.success-box,.error-box,.warning-box{padding:14px 16px;border-radius:10px;margin:16px 0}.message,.success-box{background:#dcfce7;color:#166534}.message.error,.error-box{background:#fee2e2;color:#991b1b}.notice,.warning-box{background:#fef3c7;color:#92400e}.help-card{background:#e0f2fe;color:#075985}.pill{padding:4px 8px;border-radius:99px;font-weight:700;font-size:12px}.pill.ok{background:#dcfce7;color:#166534}.pill.reorder{background:#fef3c7;color:#92400e}.pill.out{background:#fee2e2;color:#991b1b}.actions{display:flex;gap:12px;align-items:center;margin-top:22px}.actions form{margin:0}.sample-list pre{white-space:pre-wrap;background:#fff;padding:12px;border-radius:8px;border:1px solid #e2e8f0;overflow:auto}@media(max-width:900px){.sidebar{position:static;width:auto}.content{margin-left:0}.cards,.grid-2{grid-template-columns:1fr 1fr}.form-card{grid-template-columns:1fr}}@media(max-width:600px){.cards,.grid-2{grid-template-columns:1fr}.content{padding:18px}table{display:block;overflow-x:auto}.actions{align-items:stretch;flex-direction:column}}
.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:800;color:#627d98;margin:0 0 6px}.product-cards{grid-template-columns:repeat(4,minmax(160px,1fr))}table a{color:#0f6db5;font-weight:700;text-decoration:none}table a:hover{text-decoration:underline}

.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:28px}
.section-head h2{margin:0}
.compact-actions{margin:0;flex-direction:row}
.row-actions{white-space:nowrap}
.row-actions a{margin-right:10px;text-decoration:none;color:#0f6db5;font-weight:700}
.row-actions .danger-link{color:#b91c1c}
.form-actions{display:flex;align-items:center;gap:10px;grid-column:1/-1}
.confirm-card{background:#fff;padding:26px;border-radius:12px;max-width:620px;box-shadow:0 2px 12px #0001}
.danger-button{background:#b91c1c}

.card-link{display:block;text-decoration:none;color:inherit}
.card-link small{display:block;margin-top:8px;color:#92400e;font-weight:700}
.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}
.filter-bar a{background:#e2e8f0;color:#334155;text-decoration:none;padding:8px 12px;border-radius:999px;font-weight:700}
.filter-bar a.active{background:#0f6db5;color:#fff}
.sort-link{text-decoration:none;color:#17365D;font-weight:800}
table td a{color:#0f6db5;text-decoration:none;font-weight:700}

.clickable-row{cursor:pointer}
.clickable-row:hover{background:#f8fafc}
.view-link{white-space:nowrap}
.detail-panel{background:#fff;padding:20px;border-radius:12px;box-shadow:0 2px 12px #0001}
.detail-list{display:grid;grid-template-columns:minmax(140px,190px) 1fr;gap:10px 16px;margin:0}
.detail-list dt{font-weight:800;color:#486581}
.detail-list dd{margin:0}
.card small{display:block;margin-top:6px;color:#627d98;font-size:13px}
@media(max-width:600px){.detail-list{grid-template-columns:1fr}.detail-list dt{margin-top:8px}}

.global-search{margin:14px 0}.global-search input{width:100%;padding:9px;border:0;border-radius:8px}
.scan-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:20px}.scanner-card{background:#fff;padding:18px;border-radius:12px;box-shadow:0 2px 12px #0001}.scanner-card video{width:100%;min-height:280px;max-height:520px;background:#0f172a;border-radius:10px;object-fit:cover}.manual-code{display:flex;gap:8px;margin-top:14px}.manual-code input{flex:1}.scan-actions{display:grid;gap:12px}.scan-actions a{background:#fff;padding:18px;border-radius:12px;text-decoration:none;color:#1f2937;box-shadow:0 2px 12px #0001}.scan-actions strong,.scan-actions span{display:block}.scan-actions span{color:#627d98;margin-top:5px}.mobile-task{max-width:620px}.large-button{font-size:18px;padding:14px}.label-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.barcode-label{background:#fff;border:1px solid #cbd5e1;padding:12px;text-align:center;break-inside:avoid}.barcode-label strong,.barcode-label span{display:block}.barcode-label svg{max-width:100%}.label-sheet{max-width:520px}.no-print{}
@media(max-width:800px){.scan-layout{grid-template-columns:1fr}.scanner-card video{min-height:240px}.sidebar nav{display:grid;grid-template-columns:1fr 1fr;gap:4px}.sidebar nav a{margin:0}}
@media print{.sidebar,.no-print,.message{display:none!important}.content{margin:0;padding:0}.label-grid{grid-template-columns:repeat(3,1fr);gap:4mm}.barcode-label{padding:4mm;box-shadow:none}.label-sheet{max-width:none}.barcode-label svg{width:100%}}

.product-thumb{width:64px;height:64px;object-fit:contain;border:1px solid #e2e8f0;border-radius:9px;background:#fff;display:block}
.product-thumb.placeholder{font-size:10px;color:#94a3b8;display:grid;place-items:center;text-align:center;padding:5px}
.image-cell{width:84px}
.product-hero{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:26px;align-items:start;margin-bottom:20px}
.product-image-panel{background:#fff;border-radius:14px;padding:18px;box-shadow:0 2px 12px #0001}
.product-main-image{display:block;width:100%;height:280px;object-fit:contain;background:#fff;border-radius:10px}
.product-main-image.placeholder{display:grid;place-items:center;color:#94a3b8;background:#f8fafc;border:1px dashed #cbd5e1}
.product-hero-content{min-width:0}
@media(max-width:800px){.product-hero{grid-template-columns:1fr}.product-main-image{height:240px}.product-image-panel{max-width:420px}}

/* v3.4 compact product catalogue */
.product-list-table th,.product-list-table td{padding:7px 10px;vertical-align:middle}
.product-list-table .product-thumb{width:38px;height:38px;border-radius:6px}
.product-list-table .product-thumb.placeholder{font-size:8px;padding:2px}
.product-list-table .image-cell{width:54px;padding-top:5px;padding-bottom:5px}
.product-list-table tbody tr{height:48px}
@media(max-width:600px){.product-list-table .product-thumb{width:32px;height:32px}.product-list-table .image-cell{width:44px}}

/* v3.5 forced compact catalogue thumbnails */
table.product-list-table td.image-cell{
    width:42px !important;
    min-width:42px !important;
    max-width:42px !important;
    padding:4px 6px !important;
}
table.product-list-table img.product-list-thumb,
table.product-list-table .product-list-thumb{
    width:28px !important;
    height:28px !important;
    max-width:28px !important;
    max-height:28px !important;
    object-fit:contain !important;
    border-radius:4px !important;
}
table.product-list-table tbody tr{
    height:38px !important;
}
table.product-list-table th,
table.product-list-table td{
    padding-top:5px !important;
    padding-bottom:5px !important;
}

.inline-form{display:inline;margin:0}
.warning-link{color:#92400e;text-decoration:none;font-weight:800}
.warning-button{background:#d97706}
.permanent-delete{max-width:800px}

/* v3.7.2 product lifecycle buttons */
.action-link{display:inline-block;text-decoration:none}
.compact-actions{flex-wrap:wrap}

/* =========================================================
   KEYFAST HUB 4.0 BRAND THEME
   ========================================================= */
:root{
  --kf-red:#d9332a;
  --kf-red-dark:#a9211b;
  --kf-charcoal:#17191d;
  --kf-panel:#202329;
  --kf-panel-2:#292d34;
  --kf-silver:#e8ebef;
  --kf-cyan:#45d9eb;
  --kf-text:#20242a;
  --kf-muted:#667085;
  --kf-border:#e4e7ec;
  --kf-bg:#f5f6f8;
}
html{background:var(--kf-bg)}
body{background:var(--kf-bg);color:var(--kf-text);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
.sidebar{width:260px;background:linear-gradient(180deg,#15171b 0%,#202329 100%);padding:22px 18px 18px;border-right:1px solid #30343b;display:flex;flex-direction:column;box-shadow:8px 0 28px rgba(20,24,31,.08)}
.content{margin-left:260px;padding:34px 38px 48px;max-width:1800px}
.brand-lockup{display:flex;align-items:center;gap:8px;text-decoration:none;padding:2px 4px 18px;border-bottom:1px solid rgba(255,255,255,.09)}
.brand-lockup img{width:156px;height:58px;object-fit:contain;object-position:center;filter:drop-shadow(0 2px 3px rgba(0,0,0,.28))}
.brand-lockup span{background:var(--kf-red);color:white;font-weight:900;font-size:10px;letter-spacing:.17em;padding:5px 6px;border-radius:4px;margin-left:-7px}
.user-panel{display:flex;align-items:center;gap:10px;padding:17px 4px 13px;color:#fff}
.user-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--kf-red),#f05b51);font-weight:900;box-shadow:0 0 0 3px rgba(217,51,42,.15)}
.user-panel div{display:flex;flex-direction:column;line-height:1.15}.user-panel small{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#8f98a6;margin-bottom:4px}.user-panel strong{font-size:13px}
.global-search{position:relative;margin:4px 0 18px}.global-search input{background:#2a2e35;color:#fff;border:1px solid #383d46;padding:10px 11px 10px 34px;outline:none}.global-search input:focus{border-color:var(--kf-cyan);box-shadow:0 0 0 3px rgba(69,217,235,.11)}.global-search input::placeholder{color:#87909c}.search-symbol{position:absolute;left:12px;top:8px;color:var(--kf-cyan);font-size:18px}
.sidebar nav{flex:1}.nav-label{display:block;color:#6f7885;font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;padding:8px 10px 6px}.admin-label{margin-top:16px}
.sidebar a{display:flex;align-items:center;gap:11px;color:#c8ced7;padding:9px 11px;border-radius:8px;margin:2px 0;font-size:13px;font-weight:650;transition:.16s ease}.sidebar nav a span{width:17px;text-align:center;color:#8d96a4;font-size:16px}.sidebar a:hover{background:#292d34;color:#fff;text-decoration:none}.sidebar nav a:hover span{color:var(--kf-cyan)}.sidebar nav a.active{background:linear-gradient(90deg,rgba(217,51,42,.22),rgba(217,51,42,.06));color:#fff;box-shadow:inset 3px 0 0 var(--kf-red)}.sidebar nav a.active span{color:#ff6d64}
.sidebar-footer{border-top:1px solid rgba(255,255,255,.09);padding:15px 4px 0;display:grid;grid-template-columns:1fr auto;align-items:center;color:#d7dbe1}.sidebar-footer>span{font-size:12px;font-weight:800}.sidebar-footer>small{font-size:10px;color:#78818e}.sidebar-footer form{grid-column:1/-1}.logout{background:#2a2e35;border:1px solid #383d46;margin-top:12px;font-weight:750}.logout:hover{background:#343942}
h1,h2,h3{color:#1b1e23;letter-spacing:-.025em}.page-head h1,.dashboard-hero h1{margin:0;font-size:34px}.page-head p{color:var(--kf-muted)}
.primary,button{background:var(--kf-red);box-shadow:0 5px 14px rgba(217,51,42,.18);font-weight:750}.primary:hover,button:hover{background:var(--kf-red-dark)}.secondary{background:#eef0f3;color:#343941;border:1px solid #dfe3e8}.danger-button{background:#b42318}
.card,table,.form-card,.detail-panel,.confirm-card,.scanner-card,.scan-actions a,.product-image-panel{border:1px solid var(--kf-border);box-shadow:0 5px 18px rgba(25,31,40,.055)}
table{border-radius:14px}th{background:#f1f3f5;color:#596273;font-size:11px;text-transform:uppercase;letter-spacing:.055em}th,td{border-bottom:1px solid #edf0f3}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcfd}table a{color:#bd2c24}.sort-link{color:#353a42}
.form-card{border-radius:15px}.form-card input,.form-card select,.form-card textarea,.login-card input{border:1px solid #d2d7de;background:#fff;transition:.15s ease}.form-card input:focus,.form-card select:focus,.form-card textarea:focus,.login-card input:focus{outline:0;border-color:var(--kf-cyan);box-shadow:0 0 0 3px rgba(69,217,235,.14)}
.eyebrow{color:var(--kf-red);letter-spacing:.13em}.pill.ok{background:#eaf8ef;color:#167345}.pill.reorder{background:#fff2da;color:#9a5b00}.pill.out{background:#fee8e7;color:#b42318}

.dashboard-hero{position:relative;overflow:hidden;min-height:150px;background:linear-gradient(112deg,#17191d 0%,#292d34 72%,#343941 100%);border-radius:18px;padding:30px 34px;color:#fff;display:flex;align-items:center;justify-content:space-between;box-shadow:0 16px 38px rgba(25,28,34,.16)}
.dashboard-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 25%,rgba(69,217,235,.18),transparent 24%),linear-gradient(105deg,transparent 56%,rgba(255,255,255,.035) 56% 57%,transparent 57%)}
.dashboard-hero>div{position:relative;z-index:2}.dashboard-hero h1{color:#fff;font-size:36px}.dashboard-hero p:not(.eyebrow){color:#bdc4ce;margin-bottom:0}.dashboard-hero .eyebrow{color:#ff665d}.dashboard-hero img{position:absolute;right:10px;bottom:-170px;width:330px;opacity:.34;filter:grayscale(.15) drop-shadow(0 15px 20px rgba(0,0,0,.3))}
.dashboard-cards{grid-template-columns:repeat(4,minmax(185px,1fr));gap:17px}.metric-card{display:flex;align-items:center;gap:16px;padding:19px}.metric-card>div{min-width:0}.metric-card .metric-icon{width:42px;height:42px;flex:0 0 42px;border-radius:11px;display:grid;place-items:center;background:#f1f3f5;color:#555e6b;font-size:21px;font-weight:900}.metric-card strong{font-size:27px;margin:2px 0 0;color:#1c2026}.metric-card small{margin-top:2px;color:#87909c}.metric-card.warning{border-left:1px solid var(--kf-border);border-top:3px solid var(--kf-red)}.metric-card.warning .metric-icon{background:#fee8e7;color:var(--kf-red)}
.dashboard-grid{gap:20px}.dashboard-section{background:#fff;border:1px solid var(--kf-border);border-radius:16px;padding:6px 18px 18px;box-shadow:0 5px 18px rgba(25,31,40,.05)}.dashboard-section table{box-shadow:none;border-radius:10px;margin:0}.dashboard-section .section-head{margin:14px 2px 13px}.dashboard-section .section-head h2{font-size:20px}.dashboard-section .section-head .eyebrow{margin-bottom:3px}.text-link{color:var(--kf-red);text-decoration:none;font-weight:750;font-size:13px}.stock-number,.movement-number{display:inline-flex;min-width:31px;justify-content:center;border-radius:999px;padding:3px 8px;font-weight:800}.stock-number.low,.movement-number.negative{background:#fee8e7;color:#b42318}.movement-number.positive{background:#eaf8ef;color:#167345}.empty-state{text-align:center;color:#7c8592;padding:28px 12px}

.login-shell{display:block;background:#121418;min-height:100vh}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(520px,1.25fr) minmax(390px,.75fr)}.login-visual{position:relative;overflow:hidden;display:flex;align-items:center;padding:8vh 7vw;background:radial-gradient(circle at 58% 35%,rgba(69,217,235,.22),transparent 24%),linear-gradient(145deg,#191c21 0%,#2a2e34 63%,#17191d 100%)}.login-visual:before{content:"";position:absolute;inset:0;opacity:.16;background-image:linear-gradient(rgba(69,217,235,.25) 1px,transparent 1px),linear-gradient(90deg,rgba(69,217,235,.25) 1px,transparent 1px);background-size:55px 55px;mask-image:linear-gradient(to right,transparent,black 30%,black 70%,transparent)}.login-brand-copy{position:relative;z-index:2;max-width:590px;align-self:flex-start;margin-top:7vh}.login-wordmark{width:310px;height:105px;object-fit:contain}.hub-badge{display:inline-block;margin-left:-8px;vertical-align:20px;background:var(--kf-red);color:white;font-size:12px;font-weight:900;letter-spacing:.18em;padding:6px 8px;border-radius:5px}.login-brand-copy h1{color:#fff;font-size:44px;line-height:1.08;max-width:560px;margin:20px 0 15px}.login-brand-copy p{color:#b8c0cb;font-size:17px;line-height:1.6;max-width:520px}.login-mascot{position:absolute;width:min(650px,63vw);right:-80px;bottom:-110px;filter:drop-shadow(0 38px 38px rgba(0,0,0,.45));opacity:.92}.login-panel{display:grid;place-items:center;background:#f5f6f8;padding:40px}.login-card{width:min(430px,100%);padding:38px 40px;border-radius:18px;box-shadow:0 18px 50px rgba(25,31,40,.12);border:1px solid #e2e5ea}.login-card-mark{width:58px;height:58px;border-radius:14px;overflow:hidden;box-shadow:0 7px 20px rgba(25,31,40,.15);margin-bottom:24px}.login-card-mark img{width:100%;height:100%;object-fit:cover}.login-card h2{font-size:31px;margin:4px 0 6px}.login-intro{color:#727b88;margin:0 0 24px}.login-card label{font-size:13px;font-weight:750;color:#353a42}.login-card input{padding:12px;margin-top:7px}.login-button{width:100%;padding:13px;margin-top:8px;font-size:14px}.login-security{text-align:center;color:#98a0ab;font-size:11px;margin:20px 0 0;text-transform:uppercase;letter-spacing:.09em}

@media(max-width:1100px){.dashboard-cards{grid-template-columns:repeat(2,1fr)}.login-page{grid-template-columns:1fr 430px}.login-visual{padding:7vh 5vw}.login-brand-copy h1{font-size:38px}.login-mascot{width:570px;right:-170px}}
@media(max-width:900px){.sidebar{position:static;width:auto;min-height:auto}.content{margin-left:0;padding:24px}.brand-lockup{justify-content:flex-start}.sidebar-footer{display:none}.sidebar nav{grid-template-columns:repeat(2,minmax(0,1fr))}.nav-label{grid-column:1/-1}.login-page{grid-template-columns:1fr}.login-visual{min-height:390px;padding:45px}.login-panel{padding:30px}.login-mascot{width:430px;right:-80px;bottom:-135px}.login-brand-copy{margin:0;align-self:center}.login-brand-copy h1{font-size:35px;max-width:470px}.login-brand-copy p{max-width:470px}.dashboard-hero img{right:-30px}}
@media(max-width:600px){.content{padding:16px}.dashboard-cards{grid-template-columns:1fr}.dashboard-hero{padding:24px;min-height:175px}.dashboard-hero h1{font-size:29px}.dashboard-hero img{width:250px;right:-90px;bottom:-120px}.metric-card{padding:16px}.login-visual{min-height:330px;padding:28px}.login-wordmark{width:225px;height:80px}.login-brand-copy h1{font-size:29px;margin-top:7px}.login-brand-copy p{font-size:14px;max-width:300px}.login-mascot{width:330px;right:-105px;bottom:-120px;opacity:.65}.login-panel{padding:22px 15px}.login-card{padding:28px 24px}.sidebar nav{grid-template-columns:1fr}.nav-label{grid-column:auto}.grid-2{grid-template-columns:1fr}}


/* Keyfast Hub v4.1 dashboard shell */
:root{--sidebar-w:274px;--topbar-h:70px}
body{background:#f7f8fa;color:#111827}
.sidebar{width:var(--sidebar-w);padding:16px 12px 20px;background:linear-gradient(180deg,#101820 0%,#121d26 65%,#0b151d 100%);overflow:hidden}
.brand-lockup{height:72px;padding:0 2px 14px;border:0}.brand-lockup img{width:210px;height:64px;background:#fff;border-radius:4px;object-fit:contain;padding:4px;filter:none;box-shadow:0 3px 12px rgba(0,0,0,.3)}
.sidebar nav{overflow:auto;padding-right:2px}.sidebar nav a{font-size:14px;padding:11px 13px;margin:3px 0;color:#eef2f5;border-radius:8px}.sidebar nav a span{font-size:19px;color:#fff}.sidebar nav a.active{background:linear-gradient(135deg,#e9261b,#ef342b);box-shadow:0 5px 14px rgba(218,30,20,.27);inset:auto}.sidebar nav a.active span{color:#fff}.sidebar nav a:hover{background:rgba(255,255,255,.09)}
.sidebar-mascot{height:245px;display:flex;align-items:flex-end;justify-content:center;position:relative;margin-top:8px}.sidebar-mascot:before{content:"";position:absolute;inset:20px -20px -10px;background:radial-gradient(circle,rgba(0,180,220,.2),transparent 62%)}.sidebar-mascot img{position:relative;width:235px;max-height:245px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 15px 15px rgba(0,0,0,.5))}.sidebar-footer{display:flex;flex-direction:column;text-align:center;gap:5px;border:0;padding:10px 0 0}.sidebar-footer strong{color:#fff;font-size:13px}.sidebar-footer small{color:#b6bec6;font-size:11px}
.topbar{position:fixed;top:0;left:var(--sidebar-w);right:0;height:var(--topbar-h);display:flex;align-items:center;padding:0 28px;background:#fff;border-bottom:1px solid #e5e7eb;z-index:20}.menu-button{background:transparent;color:#111827;box-shadow:none;font-size:24px;padding:7px;border:0}.menu-button:hover{background:#f3f4f6}.top-search{position:absolute;left:50%;transform:translateX(-50%);width:min(390px,35vw)}.top-search input{width:100%;border:1px solid #dfe3e8;border-radius:7px;padding:11px 14px 11px 42px;background:#fff}.top-search span{position:absolute;left:15px;top:6px;font-size:23px;color:#64748b}.top-user{margin-left:auto;display:flex;align-items:center;gap:11px}.top-user>div{display:flex;flex-direction:column}.top-user strong{font-size:13px}.top-user small{font-size:11px;color:#64748b}.notification{position:relative;font-size:23px;padding-right:8px;border-right:1px solid #e5e7eb}.notification b{position:absolute;top:-5px;right:3px;background:#e52d25;color:#fff;font-size:9px;width:16px;height:16px;border-radius:50%;display:grid;place-items:center}.top-user .user-avatar{width:38px;height:38px;background:#20262c}.top-logout{background:transparent;color:#111827;box-shadow:none;padding:6px}.top-logout:hover{background:#f3f4f6}
.content{margin-left:var(--sidebar-w);padding:calc(var(--topbar-h) + 24px) 32px 0;max-width:none;min-height:100vh}.dashboard-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.dashboard-title-row h1{font-size:30px;margin:0}.dashboard-title-row p{margin:4px 0 0;color:#4b5563}.period-control{background:#fff;border:1px solid #dfe3e8;border-radius:7px;padding:11px 15px;font-size:13px;font-weight:700}
.kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(170px,1fr));gap:17px;margin-bottom:20px}.kpi-card{background:#fff;border:1px solid #e2e5e9;border-radius:8px;padding:20px 17px;display:flex;align-items:center;gap:13px;box-shadow:0 3px 9px rgba(15,23,42,.05);text-decoration:none;color:inherit}.kpi-card:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,23,42,.09);text-decoration:none}.kpi-icon{width:54px;height:54px;flex:0 0 54px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:25px;font-weight:900}.kpi-icon.red{background:linear-gradient(145deg,#e9162a,#f2352a)}.kpi-icon.green{background:linear-gradient(145deg,#1a9e4b,#35bd65)}.kpi-icon.orange{background:linear-gradient(145deg,#ff7612,#ff982d)}.kpi-icon.blue{background:linear-gradient(145deg,#0876c9,#258ee2)}.kpi-card small{text-transform:uppercase;font-size:11px;color:#111827}.kpi-card strong{display:block;font-size:27px;color:#111827;white-space:nowrap;margin:3px 0}.kpi-card p{font-size:12px;color:#64748b;margin:0}.green-text{color:#009c36!important}.orange-text{color:#f05b00!important}.red-text{color:#e51d1d!important}.blue-text{color:#086ad8!important}
.analytics-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;margin-bottom:20px}.dash-panel{background:#fff;border:1px solid #e2e5e9;border-radius:8px;box-shadow:0 3px 9px rgba(15,23,42,.04);overflow:hidden}.panel-head{min-height:54px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf0f2}.panel-head h2{font-size:17px;margin:0}.panel-head>span,.panel-head a{font-size:12px;padding:7px 11px;border:1px solid #dfe3e8;border-radius:6px;color:#111827;text-decoration:none;background:#fff}.activity-chart{height:260px;display:flex;padding:22px 24px 15px}.chart-axis{display:flex;flex-direction:column;justify-content:space-between;font-size:10px;color:#64748b;padding:4px 12px 28px 0}.activity-bars{flex:1;display:flex;align-items:flex-end;justify-content:space-around;border-left:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;background:repeating-linear-gradient(to top,transparent 0,transparent 49px,#eef1f4 50px);padding:0 14px}.activity-column{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px}.activity-bar{width:min(36px,55%);min-height:5px;background:linear-gradient(180deg,#1f8be5,#1267bd);border-radius:5px 5px 0 0;box-shadow:0 4px 9px rgba(23,118,200,.18)}.activity-bar.negative{background:linear-gradient(180deg,#ef4138,#d92319)}.activity-column small{height:20px;font-size:10px;color:#4b5563}.location-body{display:grid;grid-template-columns:220px 1fr;align-items:center;padding:24px 22px;min-height:260px}.donut{width:190px;height:190px;border-radius:50%;background:conic-gradient(#197bd2 0 calc(var(--p1)*1%),#ed332b calc(var(--p1)*1%) calc((var(--p1) + var(--p2))*1%),#21a657 calc((var(--p1) + var(--p2))*1%) 100%);display:grid;place-items:center;position:relative}.donut:after{content:"";width:83px;height:83px;border-radius:50%;background:#fff;position:absolute}.donut span{z-index:1;font-size:21px;font-weight:900;text-align:center}.donut span small{display:block;font-size:10px;color:#64748b;font-weight:500}.location-list>div{display:grid;grid-template-columns:16px 1fr auto 48px;gap:8px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0f2;font-size:12px}.location-list .dot{width:9px;height:9px;border-radius:50%;background:#197bd2}.location-list .dot-2{background:#ed332b}.location-list .dot-3{background:#21a657}.location-list .dot-4{background:#ff8a19}.location-list .dot-5{background:#7b55c7}.location-list b{text-align:right}.location-total{grid-template-columns:16px 1fr auto!important;border:0!important;padding-top:14px!important}
.lower-grid{grid-template-columns:1.15fr 1fr}.alert-icon{display:inline-grid;place-items:center;width:20px;height:20px;background:#ed332b;color:white;border-radius:4px;font-size:13px}.table-panel table{border:0;box-shadow:none;border-radius:0;margin:0}.table-panel th{background:#fff;text-transform:none;color:#111827;font-size:11px}.table-panel td{font-size:11px;padding:10px 12px}.danger-number{color:#e31f19;font-weight:800}.category-list{padding:8px 18px 15px}.category-row{display:grid;grid-template-columns:28px minmax(120px,1.1fr) minmax(90px,1.2fr) 90px 48px;align-items:center;gap:10px;padding:10px 0;font-size:12px}.category-icon{width:23px;height:23px;border-radius:6px;background:#e9f3ff;color:#0878d1;display:grid;place-items:center}.category-row:nth-child(2) .category-icon{background:#ffeceb;color:#ef332b}.category-row:nth-child(3) .category-icon{background:#e9f8ed;color:#16a54c}.category-row:nth-child(4) .category-icon{background:#fff1e5;color:#f87809}.category-row:nth-child(5) .category-icon{background:#f1e9ff;color:#7a47bd}.progress{height:7px;border-radius:999px;background:#e5e8ec;overflow:hidden}.progress i{display:block;height:100%;border-radius:999px;background:#177bd2}.category-row:nth-child(2) .progress i{background:#ed332b}.category-row:nth-child(3) .progress i{background:#21a657}.category-row:nth-child(4) .progress i{background:#ff8415}.category-row:nth-child(5) .progress i{background:#7b55c7}.category-row>b{text-align:right}.app-footer{text-align:center;padding:23px 0;color:#334155;font-size:11px;border-top:1px solid #e5e7eb;margin-top:6px}
@media(max-width:1350px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.location-body{grid-template-columns:180px 1fr}.donut{width:155px;height:155px}.category-row{grid-template-columns:28px 1fr 1fr 75px 42px}}
@media(max-width:1050px){.analytics-grid{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr)}.top-search{display:none}}
@media(max-width:900px){.topbar{position:static;margin-left:0}.content{margin-left:0;padding:24px}.sidebar{width:auto}.sidebar-mascot{display:none}.brand-lockup img{width:190px}.sidebar nav{display:grid;grid-template-columns:repeat(2,1fr)}.kpi-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.kpi-grid{grid-template-columns:1fr}.dashboard-title-row{align-items:flex-start}.period-control{display:none}.location-body{grid-template-columns:1fr;justify-items:center}.location-list{width:100%;margin-top:15px}.category-row{grid-template-columns:28px 1fr 70px 42px}.category-row .progress{display:none}.top-user>div{display:none}}

/* v4.1.1 category manager */
.category-manager-grid{align-items:start;margin:20px 0}.category-manager-grid .form-card{max-width:none}.category-manager-grid h2{margin-top:0}.inline-category-form{display:flex;align-items:center;gap:8px}.inline-category-form input{min-width:210px;padding:9px 10px;border:1px solid #d2d7de;border-radius:8px}.inline-category-form .secondary{cursor:pointer}.danger-button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
@media(max-width:700px){.inline-category-form{min-width:320px}.category-manager-grid{grid-template-columns:1fr}}
/* Keyfast Hub v4.2 online beta */
.role-grid,.system-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.system-grid .wide{grid-column:1/-1}.detail-list{display:grid;grid-template-columns:160px 1fr;gap:10px 18px;margin:0}.detail-list dt{font-weight:700;color:#64748b}.detail-list dd{margin:0;font-weight:600}.check-list p{margin:8px 0}.table-subtext{display:block;color:#64748b;margin-top:3px}.inline-form{display:inline}.actions{white-space:nowrap}.filter-bar{display:flex;gap:12px;align-items:center;margin-bottom:18px}.filter-bar input{flex:1}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:#e31e24;font-weight:800;font-size:.75rem;margin-bottom:4px}.status-pill.out{background:#fee2e2;color:#991b1b}.btn[disabled]{opacity:.45;cursor:not-allowed}@media(max-width:800px){.role-grid,.system-grid{grid-template-columns:1fr}.filter-bar{align-items:stretch;flex-direction:column}.detail-list{grid-template-columns:1fr}.system-grid .wide{grid-column:auto}}

/* Keyfast Hub v4.3 — Dashboard 2.0 */
.dashboard2-title{align-items:flex-end}.dashboard2-title .eyebrow{margin:0 0 5px}.period-selector{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid #dfe3e8;border-radius:9px;padding:9px 12px;box-shadow:0 3px 9px rgba(15,23,42,.04)}.period-selector label{font-size:11px;font-weight:800;text-transform:uppercase;color:#64748b}.period-selector select{border:0;background:transparent;font-weight:800;padding:3px 26px 3px 5px}
.value-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:17px}.value-kpi-card{position:relative;overflow:hidden;background:#fff;border:1px solid #e2e5e9;border-radius:10px;padding:21px 18px;display:flex;align-items:center;gap:14px;box-shadow:0 4px 13px rgba(15,23,42,.05);text-decoration:none;color:inherit}.value-kpi-card:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:4px;background:var(--kpi-accent)}.value-kpi-card:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,.09)}.value-kpi-card.cost{--kpi-accent:#177bd2}.value-kpi-card.retail{--kpi-accent:#7b55c7}.value-kpi-card.profit{--kpi-accent:#19a55a}.value-kpi-card.reorder{--kpi-accent:#eb332b}.value-icon{width:50px;height:50px;flex:0 0 50px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--kpi-accent) 13%,white);color:var(--kpi-accent);font-size:22px;font-weight:900}.value-kpi-card small{display:block;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-size:10px;font-weight:800}.value-kpi-card strong{display:block;font-size:25px;line-height:1.1;margin:5px 0;color:#111827}.value-kpi-card p{font-size:11px;color:#64748b;margin:0}
.mini-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:20px}.mini-kpi{background:#fff;border:1px solid #e2e5e9;border-radius:8px;padding:14px 15px;text-decoration:none;color:#111827;display:grid;grid-template-columns:1fr auto;align-items:center}.mini-kpi:hover{text-decoration:none;background:#fbfcfd}.mini-kpi span{font-size:11px;text-transform:uppercase;color:#64748b;font-weight:800}.mini-kpi strong{font-size:22px}.mini-kpi small{grid-column:1/-1;font-size:10px;color:#64748b;margin-top:3px}.mini-kpi.healthy{border-left:4px solid #19a55a}.mini-kpi.warning{border-left:4px solid #ff8a19}.mini-kpi.danger{border-left:4px solid #eb332b}.mini-kpi.info{border-left:4px solid #177bd2}
.dashboard2-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:20px;margin-bottom:20px}.dashboard2-grid.primary-grid{grid-template-columns:1.55fr .85fr}.dashboard2-grid.triple-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard2-head{align-items:flex-start}.dashboard2-head>div h2{margin:0}.dashboard2-head>div p{font-size:10px;color:#64748b;margin:4px 0 0}.dashboard2-head>span{font-weight:800}.chart-legend{display:flex!important;gap:13px}.chart-legend span{border:0!important;padding:0!important;display:flex;align-items:center;gap:5px}.chart-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}.legend-in{background:#177bd2}.legend-out{background:#eb332b}
.movement-summary{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #edf0f2}.movement-summary div{padding:13px 18px;border-right:1px solid #edf0f2}.movement-summary div:last-child{border-right:0}.movement-summary span{display:block;color:#64748b;font-size:10px;text-transform:uppercase;font-weight:800}.movement-summary strong{font-size:18px}.movement-summary div:first-child strong{color:#16884b}.movement-summary div:nth-child(2) strong,.movement-summary div:nth-child(3) strong{color:#d92c25}.dual-activity-chart{height:230px;display:flex;align-items:flex-end;justify-content:space-around;padding:24px 18px 15px;background:repeating-linear-gradient(to top,transparent 0,transparent 49px,#eef1f4 50px)}.dual-column{height:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px}.bar-pair{width:72%;height:calc(100% - 25px);display:flex;align-items:flex-end;justify-content:center;gap:4px}.bar-pair i{width:34%;min-width:5px;min-height:3px;border-radius:4px 4px 0 0}.bar-in{background:linear-gradient(180deg,#2b94eb,#1169bc)}.bar-out{background:linear-gradient(180deg,#ef4a41,#cf221b)}.dual-column small{font-size:9px;color:#64748b;white-space:nowrap}
.health-body{display:grid;grid-template-columns:190px 1fr;align-items:center;padding:26px 20px;min-height:310px}.health-donut{width:165px;height:165px;border-radius:50%;background:conic-gradient(#1aa55a 0 calc(var(--healthy)*1%),#ff8a19 calc(var(--healthy)*1%) calc((var(--healthy) + var(--low))*1%),#e9322a calc((var(--healthy) + var(--low))*1%) 100%);display:grid;place-items:center;position:relative}.health-donut:after{content:"";position:absolute;width:88px;height:88px;border-radius:50%;background:#fff}.health-donut span{position:relative;z-index:1;text-align:center;font-size:22px;font-weight:900}.health-donut small{display:block;font-size:9px;color:#64748b}.health-list a{display:grid;grid-template-columns:12px 1fr auto 42px;align-items:center;gap:8px;padding:13px 0;border-bottom:1px solid #edf0f2;color:#111827;text-decoration:none;font-size:12px}.health-list a:last-child{border:0}.health-list a:hover{text-decoration:none;color:#177bd2}.health-dot{width:9px;height:9px;border-radius:50%}.healthy-dot{background:#1aa55a}.low-dot{background:#ff8a19}.out-dot{background:#e9322a}.health-list b{text-align:right;color:#64748b}
.qty-pill{display:inline-grid;place-items:center;min-width:32px;padding:4px 8px;border-radius:999px;background:#fff0e6;color:#c45400;font-weight:900}.positive-number{color:#16884b;font-weight:900}.rank-list{padding:7px 18px 14px}.rank-row{display:grid;grid-template-columns:30px 1fr auto;gap:11px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0f2}.rank-row:last-child{border-bottom:0}.rank-number{width:25px;height:25px;border-radius:7px;background:#eaf3fc;color:#177bd2;display:grid;place-items:center;font-size:11px;font-weight:900}.rank-main>div:first-child{display:flex;justify-content:space-between;gap:10px}.rank-main strong{font-size:12px}.rank-main span{font-size:9px;color:#64748b}.rank-progress{height:6px;border-radius:999px;background:#e9edf1;overflow:hidden;margin-top:7px}.rank-progress i{display:block;height:100%;background:linear-gradient(90deg,#177bd2,#40a4ee);border-radius:999px}.rank-value{text-align:right}.rank-value strong{display:block;font-size:12px}.rank-value span{font-size:9px;color:#64748b}.supplier-progress i{background:linear-gradient(90deg,#7b55c7,#a986e8)}.location-rank{background:#e9f8ef;color:#16884b}.supplier-rank{background:#f1ebfb;color:#7350b3}
.compact-list{padding:4px 17px 10px}.compact-list a{display:grid;grid-template-columns:31px 1fr auto;align-items:center;gap:9px;color:#111827;text-decoration:none;padding:10px 0;border-bottom:1px solid #edf0f2}.compact-list a:last-child{border:0}.compact-list a:hover{text-decoration:none;color:#177bd2}.compact-icon{width:27px;height:27px;border-radius:8px;background:#eaf3fc;color:#177bd2;display:grid;place-items:center;font-size:11px;font-weight:900}.compact-icon.fast{background:#e9f8ef;color:#16884b}.compact-icon.stale{background:#fff0e6;color:#d36512}.compact-list strong{display:block;font-size:11px}.compact-list small{display:block;color:#64748b;font-size:9px;margin-top:2px}.compact-list b{font-size:11px;white-space:nowrap}.recent-receipts-panel{margin-bottom:20px}.horizontal-ranks .rank-row{padding:13px 0}
@media(max-width:1400px){.value-kpi-grid{grid-template-columns:repeat(2,1fr)}.mini-kpi-grid{grid-template-columns:repeat(3,1fr)}.dashboard2-grid.triple-grid{grid-template-columns:1fr 1fr}.dashboard2-grid.triple-grid .compact-panel:last-child{grid-column:1/-1}}
@media(max-width:1100px){.dashboard2-grid,.dashboard2-grid.primary-grid{grid-template-columns:1fr}.health-body{grid-template-columns:180px 1fr}.dashboard2-grid.triple-grid{grid-template-columns:1fr}.dashboard2-grid.triple-grid .compact-panel:last-child{grid-column:auto}}
@media(max-width:750px){.value-kpi-grid,.mini-kpi-grid{grid-template-columns:1fr}.dashboard2-title{align-items:flex-start;flex-direction:column;gap:12px}.period-selector{width:100%;justify-content:space-between}.movement-summary{grid-template-columns:1fr}.movement-summary div{border-right:0;border-bottom:1px solid #edf0f2}.health-body{grid-template-columns:1fr;justify-items:center}.health-list{width:100%;margin-top:18px}.dual-activity-chart{padding-left:8px;padding-right:8px}.bar-pair{width:90%}.rank-main>div:first-child{flex-direction:column;gap:2px}}


/* v5.0 operations dashboard */
.morning-brief{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(100deg,#111b29,#18324d);color:#fff;border-radius:12px;padding:17px 21px;margin:0 0 18px;box-shadow:0 8px 24px rgba(15,23,42,.13)}.morning-brief strong{display:block;font-size:15px;margin-top:3px}.brief-kicker{text-transform:uppercase;letter-spacing:.12em;font-size:9px;color:#7fc8ff;font-weight:900}.brief-actions{display:flex;gap:9px}.brief-actions a{color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.24);border-radius:7px;padding:8px 11px;font-size:11px;font-weight:800}.brief-actions a:hover{background:#fff;color:#14253a;text-decoration:none}.operations-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.value-kpi-card.fleet .value-icon{background:#edf7ff;color:#1678c6}.value-kpi-card.warning .value-icon{background:#fff3df;color:#d87500}.inventory-type-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;border:1px solid #e2e5e9;border-radius:10px;margin-bottom:20px;overflow:hidden}.inventory-type-strip>div{padding:15px 18px;border-right:1px solid #edf0f2}.inventory-type-strip>div:last-child{border:0}.inventory-type-strip span,.inventory-type-strip small{display:block;color:#64748b;font-size:10px}.inventory-type-strip strong{display:block;font-size:18px;margin:3px 0}.fleet-list{padding:8px 18px 16px}.fleet-row{display:grid;grid-template-columns:58px minmax(130px,1fr) minmax(120px,1fr);align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid #edf0f2;color:#111827;text-decoration:none}.fleet-row:hover{text-decoration:none;color:#177bd2}.fleet-badge{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#edf7ff;color:#126dba;font-weight:900;font-size:13px}.fleet-row small{display:block;color:#64748b;margin-top:3px}.fleet-meter{height:8px;background:#e8edf2;border-radius:99px;overflow:hidden}.fleet-meter i{display:block;height:100%;min-width:10px;background:linear-gradient(90deg,#ef3b33,#ff9a24,#19a55a);border-radius:99px}.fleet-meter i.is-zero{width:10px!important;min-width:10px;background:#ef3b33}.fleet-meter i.is-low{background:linear-gradient(90deg,#ef3b33,#ff9a24)}.fleet-meter i.is-partial{background:linear-gradient(90deg,#ef3b33,#ff9a24,#19a55a)}.fleet-meter i.is-ready{background:#19a55a}.today-grid{display:grid;grid-template-columns:1fr 1fr;padding:16px;gap:12px}.today-grid div{background:#f7f9fb;border:1px solid #e7ebef;border-radius:9px;padding:18px}.today-grid span{display:block;font-size:10px;text-transform:uppercase;font-weight:800;color:#64748b}.today-grid strong{font-size:25px;margin-top:4px;display:block}.health-action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px}.health-action-grid a{background:#f8fafc;border:1px solid #e5e9ed;border-radius:8px;padding:13px;color:#111827;text-decoration:none;display:flex;justify-content:space-between;align-items:center}.health-action-grid a:hover{text-decoration:none;border-color:#9dc9eb}.health-action-grid a.danger strong{color:#df2d26}.health-action-grid span{font-size:11px;color:#536274}.health-action-grid strong{font-size:18px}.purchase-row{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0f2}.purchase-row small{display:block;color:#64748b;margin-top:2px}.purchase-row b{text-align:right}
@media(max-width:1150px){.operations-kpis,.inventory-type-strip{grid-template-columns:repeat(2,1fr)}.inventory-type-strip>div:nth-child(2){border-right:0}.health-action-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.morning-brief{align-items:flex-start;flex-direction:column}.brief-actions{width:100%}.brief-actions a{flex:1;text-align:center}.operations-kpis,.inventory-type-strip{grid-template-columns:1fr}.inventory-type-strip>div{border-right:0;border-bottom:1px solid #edf0f2}.fleet-row{grid-template-columns:52px 1fr}.fleet-meter{grid-column:1/-1}.today-grid,.health-action-grid{grid-template-columns:1fr}}

/* v5.1 purchasing */
.po-status{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;background:#eef1f4;color:#526071}.po-status.draft{background:#eef1f4;color:#526071}.po-status.ordered{background:#eaf3fc;color:#176db2}.po-status.part_received{background:#fff3df;color:#b76800}.po-status.received{background:#e8f7ee;color:#147342}.po-status.cancelled{background:#fee8e7;color:#b42318}.po-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));background:#fff;border:1px solid var(--kf-border);border-radius:13px;overflow:hidden;margin-bottom:20px;box-shadow:0 5px 18px rgba(25,31,40,.05)}.po-summary-grid>div{padding:17px;border-right:1px solid #edf0f2}.po-summary-grid>div:last-child{border:0}.po-summary-grid span{display:block;color:#64748b;font-size:9px;text-transform:uppercase;font-weight:900;letter-spacing:.06em;margin-bottom:6px}.po-summary-grid strong:not(.po-status){font-size:16px}.po-actions{display:flex;gap:10px;align-items:center;margin-top:20px}.po-actions form{margin:0}.text-danger{background:none;box-shadow:none;color:#b42318;padding:4px;border:0;font-size:11px}.text-danger:hover{background:none;text-decoration:underline}.receive-card{max-width:none}.receive-card .table-scroll{margin-top:20px}.qty-input{width:95px!important;padding:8px!important}.recent-po-panel{margin-bottom:20px}
@media(max-width:1100px){.po-summary-grid{grid-template-columns:repeat(3,1fr)}.po-summary-grid>div:nth-child(3){border-right:0}}
@media(max-width:700px){.po-summary-grid{grid-template-columns:1fr 1fr}.po-summary-grid>div:nth-child(2n){border-right:0}.po-actions{flex-direction:column;align-items:stretch}.po-actions a,.po-actions button{width:100%;text-align:center}}

/* v5.3 purchasing intelligence */
.purchase-centre-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px;margin-bottom:20px}.purchase-centre-kpis>a,.purchase-centre-kpis>div{display:block;background:#fff;border:1px solid var(--kf-border);border-radius:12px;padding:17px;color:#111827;text-decoration:none;box-shadow:0 4px 16px rgba(25,31,40,.04)}.purchase-centre-kpis>a:hover{border-color:#93c5e8;text-decoration:none;transform:translateY(-1px)}.purchase-centre-kpis span{display:block;color:#64748b;font-size:9px;text-transform:uppercase;font-weight:900;letter-spacing:.06em}.purchase-centre-kpis strong{display:block;font-size:24px;margin:5px 0}.purchase-centre-kpis small{display:block;color:#64748b;font-size:10px}.supplier-kpis{grid-template-columns:repeat(4,1fr)}.product-history-kpis{grid-template-columns:repeat(3,1fr)}.timeline-list{padding:12px 18px 18px}.timeline-list a,.timeline-entry{display:grid;grid-template-columns:14px 1fr;gap:10px;padding:11px 0;border-bottom:1px solid #edf0f2;color:#111827;text-decoration:none}.timeline-list a:last-child,.timeline-entry:last-child{border-bottom:0}.timeline-list a:hover{text-decoration:none;color:#177bd2}.timeline-dot{width:10px;height:10px;margin-top:4px;border-radius:50%;background:#177bd2;box-shadow:0 0 0 4px #eaf3fc}.timeline-list strong{display:block;font-size:11px}.timeline-list small{display:block;color:#64748b;font-size:9px;margin-top:3px}.po-timeline-panel{margin-top:20px}
@media(max-width:1250px){.purchase-centre-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.purchase-centre-kpis,.supplier-kpis,.product-history-kpis{grid-template-columns:1fr 1fr}}

/* Product-page purchase-order quick add — compact responsive layout */
.quick-po-panel{margin-top:18px;padding:14px 16px;border:1px solid #e2e8f0;border-radius:14px;background:#fff;display:block;box-shadow:0 6px 20px rgba(15,23,42,.06);min-width:0;overflow:hidden}
.quick-po-copy{display:flex;align-items:center;gap:11px;min-width:0;margin-bottom:12px}.quick-po-copy strong,.quick-po-copy small{display:block}.quick-po-copy small{color:#64748b;margin-top:2px}.quick-po-icon,.quick-po-add{display:inline-flex;align-items:center;justify-content:center;font-size:1.55rem;font-weight:800}.quick-po-icon{width:38px;height:38px;border-radius:50%;background:#fee2e2;color:#b91c1c;flex:0 0 38px}.quick-po-form{display:grid;grid-template-columns:minmax(70px,.55fr) minmax(170px,1.55fr) minmax(130px,1fr);gap:10px;align-items:end;min-width:0}.quick-po-form label{margin:0;min-width:0;width:100%}.quick-po-form .quick-po-qty{grid-column:1}.quick-po-form .quick-po-supplier{grid-column:2}.quick-po-form .quick-po-depot{grid-column:3}.quick-po-form .quick-po-order{grid-column:1 / span 2}.quick-po-form .quick-po-expected{grid-column:3}.quick-po-form label span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:#64748b;margin-bottom:4px}.quick-po-form input,.quick-po-form select{margin:0;padding:9px 10px;width:100%;max-width:100%;min-width:0}.quick-po-add{grid-column:1 / -1;width:100%;height:38px;border:0;border-radius:9px;background:#e31e24;color:#fff;cursor:pointer;box-shadow:0 6px 14px rgba(227,30,36,.25)}.quick-po-add:hover{transform:translateY(-1px);filter:brightness(.96)}
@media(min-width:1320px){.quick-po-form{grid-template-columns:80px minmax(180px,1.35fr) minmax(130px,.85fr) minmax(190px,1.45fr) 145px 42px}.quick-po-form .quick-po-qty,.quick-po-form .quick-po-supplier,.quick-po-form .quick-po-depot,.quick-po-form .quick-po-order,.quick-po-form .quick-po-expected,.quick-po-add{grid-column:auto}.quick-po-add{width:42px;border-radius:50%}}
@media(max-width:760px){.quick-po-form{grid-template-columns:1fr 1fr}.quick-po-form .quick-po-qty{grid-column:1}.quick-po-form .quick-po-supplier{grid-column:2}.quick-po-form .quick-po-depot,.quick-po-form .quick-po-order,.quick-po-form .quick-po-expected,.quick-po-add{grid-column:1 / -1}}
@media(max-width:520px){.quick-po-form{grid-template-columns:1fr}.quick-po-form .quick-po-qty,.quick-po-form .quick-po-supplier,.quick-po-form .quick-po-depot,.quick-po-form .quick-po-order,.quick-po-form .quick-po-expected,.quick-po-add{grid-column:1}.quick-po-copy{align-items:flex-start}}

.po-status.complete{background:#e8f7ee;color:#147342}.shortage-panel{border-left:4px solid #d97706;background:#fffaf0}.completion-warning{padding:16px;border:1px solid #f2c879;background:#fff8e8;border-radius:12px;margin-bottom:18px}.completion-warning strong{font-size:18px}.completion-warning p{margin:6px 0 0;color:#6b7280}.complete-order-card{max-width:900px}

/* Keyfast Hub 5.5.0 — Stock Control */
.transfer-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(260px,360px);gap:24px;align-items:start}.transfer-form{max-width:none}.transfer-route{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:end}.transfer-arrow{display:grid;place-items:center;width:42px;height:42px;margin-bottom:1px;border-radius:50%;background:#eef4f8;color:#0f6db5;font-size:24px;font-weight:900}.transfer-details{display:grid;grid-template-columns:minmax(120px,.45fr) 1fr;gap:16px}.transfer-summary{position:sticky;top:94px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:22px;box-shadow:0 5px 18px rgba(20,33,46,.06)}.transfer-summary h2{margin-top:0}.transfer-stat{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-top:1px solid #edf0f2}.transfer-stat strong{font-size:24px}.transfer-summary>small{display:block;color:#64748b;margin:3px 0 15px}.transfer-receipt{background:#fff;border:1px solid #e3e8ed;border-radius:16px;padding:26px;box-shadow:0 8px 24px rgba(20,33,46,.06)}.transfer-receipt span{display:block;color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;margin-bottom:7px}.transfer-receipt-product{padding-bottom:20px;border-bottom:1px solid #e8edf1}.transfer-receipt-product strong{font-size:20px}.transfer-receipt-route{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:28px 0;border-bottom:1px solid #e8edf1}.transfer-receipt-route>b{font-size:30px;color:#0f6db5}.transfer-receipt-route strong{display:block;font-size:21px}.transfer-receipt-route small{color:#64748b}.transfer-receipt-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding-top:22px}.transfer-notes{margin-top:22px;padding-top:18px;border-top:1px solid #e8edf1}.transfer-notes p{margin-bottom:0}.menu-button{display:none}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-scrim{display:none}
@media(max-width:1050px){.transfer-layout{grid-template-columns:1fr}.transfer-summary{position:static}.menu-button{display:inline-grid;place-items:center}.sidebar{transform:translateX(-100%);transition:transform .2s ease;z-index:60}.topbar{left:0}.content{margin-left:0}.sidebar-scrim{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:55}.sidebar-open .sidebar-scrim{display:block}}
@media(max-width:650px){.transfer-route{grid-template-columns:1fr}.transfer-arrow{transform:rotate(90deg);margin:auto}.transfer-details,.transfer-receipt-meta{grid-template-columns:1fr}.transfer-receipt-route{grid-template-columns:1fr;text-align:center}.transfer-receipt-route>b{transform:rotate(90deg)}}
@media(max-width:1050px){.sidebar{position:fixed;inset:0 auto 0 0;width:min(274px,86vw);min-height:100vh}.topbar{position:fixed;top:0;margin-left:0}.content{padding:calc(var(--topbar-h) + 20px) 24px 24px}}
@media(max-width:600px){.content{padding:calc(var(--topbar-h) + 14px) 16px 20px}.top-search{display:none}}


/* v5.5.1 location inventory and clearer product lifecycle actions */
.location-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px;margin-top:20px}.location-inventory-card{display:block;background:#fff;border:1px solid #e3e7ec;border-radius:16px;padding:20px;color:inherit;text-decoration:none;box-shadow:0 5px 18px rgba(16,24,32,.05);transition:.16s ease}.location-inventory-card:hover{transform:translateY(-2px);border-color:#c9d0d8;box-shadow:0 9px 24px rgba(16,24,32,.09)}.location-inventory-card h2{margin:12px 0 4px}.location-inventory-card p{margin:0;color:#68707b}.location-card-head{display:flex;justify-content:space-between;align-items:center}.location-type-badge{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;background:#eef1f4;padding:5px 8px;border-radius:999px}.location-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid #edf0f3}.location-stats div{display:flex;flex-direction:column}.location-stats strong{font-size:1.08rem}.location-stats small{color:#737b85;margin-top:3px}.location-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;margin:20px 0}.summary-card{background:#fff;border:1px solid #e3e7ec;border-radius:14px;padding:17px}.summary-card small{display:block;color:#68707b;margin-bottom:7px}.summary-card strong{font-size:1.5rem}.location-filter-panel{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #e3e7ec;border-radius:14px;padding:12px;margin-bottom:16px}.location-filter-panel input{flex:1;min-width:240px}.location-filter-panel select{min-width:145px}.table-scroll{overflow-x:auto}.cost-estimate{display:inline-block;margin-left:5px;font-size:.66rem;text-transform:uppercase;color:#8a5b00;background:#fff3cd;padding:2px 4px;border-radius:4px}.table-action{font-weight:750;text-decoration:none}.valuation-note{font-size:.82rem;color:#6f7780}.product-lifecycle-actions{display:flex;gap:8px;flex-wrap:wrap;padding-left:8px;margin-left:2px;border-left:1px solid #dfe3e8}.lifecycle-button{display:inline-flex;align-items:center;gap:7px;border-radius:9px;padding:10px 13px;text-decoration:none;font-weight:800;border:1px solid transparent;line-height:1.1}.lifecycle-button.archive{background:#fff7e6;color:#7a4b00;border-color:#f0d49b}.lifecycle-button.archive:hover{background:#ffefcb}.lifecycle-button.recycle{background:#fff0f0;color:#9f1c1c;border-color:#efb8b8}.lifecycle-button.recycle:hover{background:#ffe0e0}.lifecycle-button.restore{background:#edf8f1;color:#19633b;border-color:#b9dec8;box-shadow:none}.lifecycle-button.restore:hover{background:#dff2e7}.product-lifecycle-actions .inline-form{margin:0}@media(max-width:900px){.location-summary-grid{grid-template-columns:repeat(2,1fr)}.product-lifecycle-actions{width:100%;padding:10px 0 0;margin:4px 0 0;border-left:0;border-top:1px solid #dfe3e8}}@media(max-width:520px){.location-summary-grid{grid-template-columns:1fr}.location-stats{grid-template-columns:1fr}.lifecycle-button{width:100%;justify-content:center}.product-lifecycle-actions,.product-lifecycle-actions .inline-form{width:100%}}


/* Keyfast Hub 5.5.2 — persistent purchase-order receipt details */
.receipt-history-list { display: grid; gap: 14px; }
.receipt-record { border: 1px solid var(--line, #dfe5ec); border-radius: 14px; padding: 16px; background: var(--surface, #fff); }
.receipt-record-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.receipt-record-head small { display: block; margin-top: 4px; color: var(--muted, #667085); }
.receipt-details { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(260px, 1.2fr); gap: 12px 24px; margin: 0; }
.receipt-details div { min-width: 0; }
.receipt-details dt { color: var(--muted, #667085); font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 4px; }
.receipt-details dd { margin: 0; overflow-wrap: anywhere; }
.receipt-items { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line, #e7ebf0); font-size: .9rem; }
.receipt-items > span:first-child { color: var(--muted, #667085); margin-right: 2px; }
.timeline-detail { display: block; margin-top: 5px; color: var(--muted, #667085); font-size: .88rem; }
@media (max-width: 720px) { .receipt-details { grid-template-columns: 1fr; } .receipt-record-head { align-items: flex-start; } }

/* 5.5.2 depot-aware purchase suggestions */
.suggestion-location { margin: 0 0 2rem; }
.suggestion-location-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-left:4px solid var(--accent, #2563eb); }
.suggestion-location-head h2 { margin:.15rem 0 .25rem; }
.suggestion-location-value { min-width:150px; text-align:right; }
.suggestion-location-value span { display:block; font-size:.78rem; color:var(--muted, #64748b); text-transform:uppercase; letter-spacing:.05em; }
.suggestion-location-value strong { display:block; font-size:1.45rem; margin-top:.2rem; }
.suggestion-supplier-panel { margin-top:.85rem; }
.suggestion-supplier-panel h3 { margin:0; font-size:1.2rem; }
.suggestion-qty-input { width:100px; }
@media (max-width: 720px) {
  .suggestion-location-head { align-items:flex-start; flex-direction:column; }
  .suggestion-location-value { text-align:left; }
}

/* Category inventory detail */
.category-location-list {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.category-location-chip {
  display: inline-flex;
  flex-direction: column;
  gap: .1rem;
  min-width: 170px;
  padding: .55rem .7rem;
  border: 1px solid var(--border, #d9e0e7);
  border-radius: .65rem;
  background: var(--surface-soft, #f7f9fb);
  text-decoration: none;
}
.category-location-chip span {
  font-size: .82rem;
  color: var(--muted, #657180);
}
.category-location-chip:hover {
  border-color: currentColor;
  background: var(--surface, #fff);
}

/* v5.5.3 centred sidebar branding and category value selector */
.sidebar-mascot {
  width: 100%;
  height: 230px;
  margin: 12px auto 0;
  align-items: flex-end;
  justify-content: center;
  text-align: center;
}
.sidebar-mascot img {
  display: block;
  width: 216px;
  max-width: 92%;
  max-height: 225px;
  margin: 0 auto;
  object-position: center bottom;
}
.sidebar-footer {
  width: 100%;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding-left: 0;
  padding-right: 0;
}
.sidebar-footer strong,
.sidebar-footer small {
  display: block;
  width: 100%;
  margin: 0;
  text-align: center;
}
.category-value-summary {
  min-width: 260px;
  padding: 14px 16px;
  border: 1px solid var(--kf-border, #e4e7ec);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(25,31,40,.055);
  text-align: right;
}
.category-value-summary > span,
.category-value-summary > small {
  display: block;
  color: var(--kf-muted, #667085);
}
.category-value-summary > span {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.category-value-summary > strong {
  display: block;
  margin: 2px 0;
  font-size: 28px;
  color: var(--kf-red, #d9332a);
}
.category-selection-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 10px;
}
.category-selection-actions button { padding: 7px 11px; }
.category-grand-total {
  margin-top: 10px;
  padding-top: 9px;
  border-top: 1px solid #edf0f3;
  color: var(--kf-muted, #667085);
  font-size: 12px;
}
.category-select-column { width: 48px; text-align: center; }
.category-select-column input {
  width: 18px;
  height: 18px;
  margin: 0;
  cursor: pointer;
  accent-color: var(--kf-red, #d9332a);
}
.category-value-row.category-row-selected { background: #fff5f4; }
.category-value-row.category-row-selected:hover { background: #ffefed; }
@media (max-width: 760px) {
  .page-head { align-items: flex-start; flex-direction: column; gap: 14px; }
  .category-value-summary { width: 100%; text-align: left; }
  .category-selection-actions { justify-content: flex-start; }
}


/* v5.5.4 reference-style sidebar mascot */
.sidebar-mascot {
  width: calc(100% + 4px);
  height: auto;
  min-height: 0;
  margin: 18px -2px 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #07131c;
}
.sidebar-mascot::before { display: none; }
.sidebar-mascot img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  max-height: none;
  margin: 0;
  object-fit: cover;
  object-position: center;
  filter: none;
}
.sidebar-footer {
  padding: 12px 8px 16px;
  gap: 6px;
  background: #07131c;
}
.sidebar-footer strong { font-size: 15px; line-height: 1.2; }
.sidebar-footer small { font-size: 12px; line-height: 1.25; }

/* v5.5.5 category value chart and sortable category columns */
.category-insights-grid{margin:0 0 20px}.category-chart-card{background:#fff;border:1px solid var(--line,#dfe5eb);border-radius:16px;padding:22px;box-shadow:0 8px 24px rgba(25,42,62,.06)}
.category-chart-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.category-chart-heading h2{margin:0 0 4px}.category-chart-heading p{margin:0;color:var(--muted,#68778b)}.category-chart-heading>strong{font-size:1.35rem;white-space:nowrap}
.category-chart-layout{display:grid;grid-template-columns:minmax(230px,320px) minmax(280px,1fr);gap:28px;align-items:center}.category-value-pie{width:min(100%,300px);aspect-ratio:1;border-radius:50%;position:relative;margin:auto;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}.category-value-pie:after{content:"";position:absolute;inset:24%;background:#fff;border-radius:50%;box-shadow:0 0 0 1px rgba(20,35,55,.06)}.category-pie-centre{position:absolute;inset:25%;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.category-pie-centre span{font-size:.78rem;color:var(--muted,#68778b)}.category-pie-centre strong{font-size:1rem;margin-top:3px}.category-chart-legend{display:grid;gap:10px}.category-chart-legend-item{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid #edf0f3}.category-chart-swatch{width:12px;height:12px;border-radius:4px}.category-chart-label{display:flex;flex-direction:column;min-width:0}.category-chart-label strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-chart-label small{color:var(--muted,#68778b)}.category-chart-amount{font-weight:700;white-space:nowrap}
.table-sort-button{appearance:none;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;padding:0;display:inline-flex;align-items:center;gap:6px;cursor:pointer}.table-sort-button:hover,.table-sort-button:focus-visible{color:var(--primary,#1769d2)}.table-sort-button span{font-size:.85em;color:#8995a5}.table-sort-button.sort-active span{color:currentColor}
@media(max-width:800px){.category-chart-layout{grid-template-columns:1fr}.category-chart-heading{flex-direction:column}.category-chart-heading>strong{font-size:1.15rem}.category-value-pie{max-width:260px}}

/* v5.5.6 Suggested PO selection workflow */
.suggestion-supplier-head { cursor: pointer; }
.suggestion-supplier-select { display: flex; align-items: center; gap: 12px; cursor: pointer; margin: 0; }
.suggestion-supplier-select input { width: 20px; height: 20px; margin: 0; accent-color: var(--primary, #d9271c); }
.suggestion-supplier-select span { display: grid; gap: 3px; }
.suggestion-supplier-select strong { font-size: 1.08rem; }
.suggestion-supplier-select small { color: var(--muted, #667085); font-weight: 500; }
.suggestion-selection-summary { position: sticky; bottom: 14px; z-index: 5; display: grid; grid-template-columns: repeat(3, minmax(120px, 1fr)) auto; align-items: center; gap: 18px; box-shadow: 0 12px 30px rgba(15, 23, 42, .16); }
.suggestion-selection-summary > div:not(.button-row) { display: grid; gap: 3px; }
.suggestion-selection-summary span { color: var(--muted, #667085); font-size: .82rem; }
.suggestion-selection-summary strong { font-size: 1.15rem; }
.suggestion-selection-summary .button-row { justify-content: flex-end; flex-wrap: wrap; }
#create-selected-pos:disabled { opacity: .55; cursor: not-allowed; }
@media (max-width: 980px) { .suggestion-selection-summary { grid-template-columns: repeat(3, 1fr); } .suggestion-selection-summary .button-row { grid-column: 1 / -1; justify-content: stretch; } .suggestion-selection-summary .button-row button { flex: 1; } }
@media (max-width: 620px) { .suggestion-selection-summary { grid-template-columns: 1fr; } .suggestion-selection-summary .button-row { grid-column: auto; } }

/* v5.5.8 product search dashboard */
.product-page-head{margin-bottom:18px}.product-search-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#0b1c2b 0%,#16334b 60%,#1e4f6b 100%);color:#fff;border-radius:20px;padding:34px;box-shadow:0 14px 34px rgba(12,30,48,.16);margin-bottom:22px}.product-search-hero:after{content:"";position:absolute;width:280px;height:280px;border-radius:50%;right:-90px;top:-130px;background:rgba(255,255,255,.07)}.product-search-copy{position:relative;z-index:1;max-width:760px}.product-search-copy h2{font-size:clamp(1.55rem,3vw,2.35rem);margin:5px 0 8px}.product-search-copy p{color:rgba(255,255,255,.76);margin:0}.product-search-hero .eyebrow{color:#8fd7ff}.product-feature-search{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:24px}.product-feature-search input{min-height:56px;border-radius:12px;border:1px solid rgba(255,255,255,.25);padding:0 18px;font-size:1.05rem;background:#fff;color:#17212b;box-shadow:0 8px 20px rgba(0,0,0,.12)}.product-feature-search button{min-width:170px;border-radius:12px}.product-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.product-stat-grid .summary-card{display:grid;gap:5px}.product-stat-grid small{color:var(--muted,#68778b)}.product-insights-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:20px}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.section-heading h2{margin:3px 0 3px}.section-heading p{margin:0;color:var(--muted,#68778b)}.section-heading>strong{white-space:nowrap;font-size:1.15rem}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.7rem;font-weight:800;color:var(--primary,#1769d2)}.popularity-chart{display:grid;gap:7px}.popularity-row{display:grid;grid-template-columns:minmax(180px,1.25fr) minmax(120px,1fr) 42px;align-items:center;gap:14px;padding:10px 8px;border-radius:10px;text-decoration:none;color:inherit}.popularity-row:hover{background:#f6f9fc}.popularity-label{display:grid;min-width:0}.popularity-label strong,.popularity-label small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popularity-label small{color:var(--muted,#68778b)}.popularity-bar-track{height:12px;border-radius:999px;background:#edf1f5;overflow:hidden}.popularity-bar-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#1b78bd,#49b6d6)}.popularity-value{text-align:right}.rare-product-list{display:grid}.rare-product-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:13px 4px;border-bottom:1px solid #edf0f3;text-decoration:none;color:inherit}.rare-product-row:hover{background:#f8fafc}.rare-product-row>div:first-child{display:grid;align-content:center;min-width:0}.rare-product-row small{color:var(--muted,#68778b)}.rare-product-metrics{display:grid;text-align:right;min-width:110px}.rare-product-metrics span{font-size:.82rem}.rare-product-metrics strong{font-size:1rem}.empty-insight,.empty-search-state{display:grid;gap:4px;text-align:center;color:var(--muted,#68778b);padding:32px 16px}.product-results-panel{margin-top:0}.table-scroll{overflow-x:auto}
@media(max-width:1050px){.product-stat-grid{grid-template-columns:repeat(2,1fr)}.product-insights-grid{grid-template-columns:1fr}}@media(max-width:650px){.product-search-hero{padding:24px 18px}.product-feature-search{grid-template-columns:1fr}.product-feature-search button{width:100%}.product-stat-grid{grid-template-columns:1fr 1fr}.popularity-row{grid-template-columns:minmax(0,1fr) 38px}.popularity-bar-track{grid-column:1/-1}.rare-product-row{grid-template-columns:1fr}.rare-product-metrics{text-align:left;grid-template-columns:repeat(3,auto);gap:10px;align-items:center}.product-page-head{align-items:flex-start}}

/* v5.5.9 stock location manager and ServiceM8-ready staff mapping */
.location-manager-head{margin-bottom:18px}.location-overview-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:20px}.location-overview-grid .summary-card.warning strong{color:#b26a00}.location-overview-grid .summary-card.danger strong{color:#c4312b}.location-manager-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.75fr);gap:20px;align-items:start}.location-network-panel,.staff-location-panel{min-width:0}.location-manager-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.location-manager-card{padding:0;overflow:hidden}.location-card-main{display:block;padding:20px;color:inherit;text-decoration:none}.location-manager-card h3{margin:10px 0 2px;font-size:1.2rem}.location-code{color:var(--muted,#68778b);margin:0 0 14px}.location-readiness-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.location-assignee-list{display:grid;gap:5px;margin-top:14px;padding-top:12px;border-top:1px solid #edf0f3;font-size:.86rem}.location-assignee-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-card-actions{display:flex;justify-content:space-between;gap:10px;padding:11px 20px;border-top:1px solid #edf0f3;background:#f8fafc}.location-card-actions a{font-size:.86rem;font-weight:700;text-decoration:none}.staff-assignment-form{display:grid;gap:12px;padding:15px;border:1px solid #e5eaf0;border-radius:14px;background:#f8fafc}.staff-assignment-form label{display:grid;gap:5px;font-size:.82rem;font-weight:700}.staff-assignment-form select,.staff-assignment-form input{width:100%}.optional-label{font-weight:500;color:var(--muted,#68778b)}.staff-assignment-form button:disabled{opacity:.5;cursor:not-allowed}.assignment-list{display:grid;margin-top:16px}.assignment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 2px;border-bottom:1px solid #edf0f3}.assignment-row>div{display:grid;gap:2px}.assignment-row small{color:var(--muted,#68778b)}.link-button{appearance:none;border:0;background:transparent;padding:6px;cursor:pointer;font:inherit;font-weight:700}.danger-text{color:#c4312b}.form-panel{max-width:760px}.replenishment-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0 10px;padding:14px 16px;border:1px solid #dfe6ed;border-radius:12px;background:#f8fafc}.replenishment-toolbar>div{display:grid;gap:3px}.replenishment-toolbar span{font-size:.84rem;color:var(--muted,#68778b)}.rule-number-input{width:78px;min-width:68px;padding:7px}.rule-bin-input{width:110px;min-width:90px;padding:7px}
@media(max-width:1180px){.location-overview-grid{grid-template-columns:repeat(3,1fr)}.location-manager-grid{grid-template-columns:1fr}.location-manager-cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.location-overview-grid{grid-template-columns:repeat(2,1fr)}.location-manager-cards{grid-template-columns:1fr}.replenishment-toolbar{align-items:flex-start;flex-direction:column}.replenishment-toolbar button{width:100%}}

/* V5.6.0 product catalogue visibility and initial-stock workflow */
.product-summary-link{color:inherit;text-decoration:none;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.product-summary-link:hover{transform:translateY(-2px);border-color:#bfcbd7;box-shadow:0 8px 20px rgba(16,24,32,.08)}.product-filter-tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px}.product-filter-tabs a{display:inline-flex;gap:7px;align-items:center;padding:9px 12px;border:1px solid #dfe5eb;border-radius:999px;background:#fff;color:inherit;text-decoration:none;font-size:.86rem;font-weight:700}.product-filter-tabs a:hover,.product-filter-tabs a.active{background:#102c43;color:#fff;border-color:#102c43}.product-filter-tabs strong{font-size:.78rem;padding:2px 6px;border-radius:999px;background:rgba(127,145,160,.16)}.product-filter-tabs a.active strong{background:rgba(255,255,255,.18)}.stock-setup-badge{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:5px 8px;font-size:.73rem;font-weight:800}.stock-setup-badge.ready{background:#e8f6ed;color:#1d6b3c}.stock-setup-badge.pending{background:#fff3d6;color:#8a5700}@media(max-width:650px){.product-filter-tabs{display:grid;grid-template-columns:1fr 1fr}.product-filter-tabs a{justify-content:space-between}.product-filter-tabs a:first-child{grid-column:1/-1}}

/* Keyfast Hub 5.6.2 — interface polish and mobile-first usability */
:root{
  --kf-navy:#102a43;
  --kf-blue:#0f6db5;
  --kf-red:#e31e24;
  --kf-bg:#f4f7fb;
  --kf-surface:#fff;
  --kf-text:#1f2937;
  --kf-muted:#64748b;
  --kf-line:#dfe5ec;
  --kf-radius:14px;
  --kf-shadow:0 7px 24px rgba(15,23,42,.07);
}
html{scroll-behavior:smooth}
body{background:var(--kf-bg);color:var(--kf-text);line-height:1.45;-webkit-font-smoothing:antialiased}
.skip-link{position:fixed;left:12px;top:8px;z-index:999;transform:translateY(-160%);background:#fff;color:#102a43;padding:10px 14px;border-radius:9px;box-shadow:var(--kf-shadow);font-weight:800;text-decoration:none}
.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:3px solid rgba(15,109,181,.35);outline-offset:3px}
button,.primary,.secondary,.lifecycle-button,input,select,textarea{min-height:42px}
button,.primary,.secondary,.lifecycle-button{display:inline-flex;align-items:center;justify-content:center;font-weight:750;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}
button:hover,.primary:hover,.secondary:hover,.lifecycle-button:hover{transform:translateY(-1px)}
button:active,.primary:active,.secondary:active,.lifecycle-button:active{transform:translateY(0)}
.card,.summary-card,.form-card,.confirm-card,table,.help-card,.notice,.warning-box,.success-box,.error-box{border:1px solid var(--kf-line);box-shadow:var(--kf-shadow)}
.card,.summary-card{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.card-link:hover .card,.card-link.card:hover,.location-inventory-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(15,23,42,.10);border-color:#cbd5e1}
.page-head{gap:18px;margin-bottom:18px;flex-wrap:wrap}
.page-head h1{margin:0;font-size:clamp(1.6rem,2.5vw,2.25rem);letter-spacing:-.025em}
.page-head p{color:var(--kf-muted);margin:.35rem 0 0}
.section-head{padding-bottom:10px;border-bottom:1px solid var(--kf-line)}
input,select,textarea{font:inherit;background:#fff;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;color:var(--kf-text)}
input:hover,select:hover,textarea:hover{border-color:#94a3b8}
input:focus,select:focus,textarea:focus{border-color:var(--kf-blue);box-shadow:0 0 0 3px rgba(15,109,181,.12);outline:0}
table{border-radius:var(--kf-radius)}
th{font-size:.76rem;text-transform:uppercase;letter-spacing:.045em;color:#526274;background:#eef4f8}
tbody tr{transition:background .12s ease}
tbody tr:hover{background:#f8fafc}
.message{position:relative;border:1px solid rgba(22,101,52,.16);box-shadow:none}
.filter-bar a{border:1px solid transparent;transition:.15s ease}
.filter-bar a:hover{background:#d8e2ec;border-color:#c5d1dc;text-decoration:none}
.filter-bar a.active{background:var(--kf-navy);color:#fff}
.top-user strong,.top-user small{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mobile-bottom-nav{display:none}

@media(max-width:760px){
  body{padding-bottom:78px}
  .content{padding-left:14px;padding-right:14px;padding-bottom:28px}
  .topbar{padding:0 12px;gap:10px}
  .top-user>div,.top-user .notification{display:none}
  .top-user{gap:7px}
  .page-head{align-items:flex-start}
  .page-head>.actions,.page-head>.compact-actions{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .page-head>.actions>* ,.page-head>.compact-actions>*{width:100%;margin:0}
  .cards,.product-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .card,.summary-card{padding:15px}
  .card strong{font-size:24px}
  .filter-bar{flex-wrap:nowrap;overflow-x:auto;padding:2px 2px 8px;margin-right:-14px;scrollbar-width:none}
  .filter-bar::-webkit-scrollbar{display:none}
  .filter-bar a{flex:0 0 auto}
  .form-card{padding:18px 15px;width:100%;max-width:none}
  .form-actions,.actions{width:100%}
  .form-actions>* ,.actions>*{width:100%}
  .table-scroll,table{margin-left:-2px;margin-right:-2px}
  th,td{padding:11px 10px;white-space:nowrap}
  .mobile-bottom-nav{display:grid;position:fixed;z-index:70;left:8px;right:8px;bottom:8px;height:64px;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.96);border:1px solid #dbe3ea;border-radius:18px;box-shadow:0 12px 34px rgba(15,23,42,.22);backdrop-filter:blur(12px);padding:5px 4px calc(5px + env(safe-area-inset-bottom))}
  .mobile-bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:#64748b;text-decoration:none;border-radius:12px;font-weight:750;min-width:0}
  .mobile-bottom-nav a>span{font-size:1.25rem;line-height:1}
  .mobile-bottom-nav a small{font-size:.65rem;white-space:nowrap}
  .mobile-bottom-nav a.active{color:var(--kf-blue);background:#eef6fc}
  .mobile-bottom-nav .mobile-scan-icon{display:grid;place-items:center;width:36px;height:36px;margin-top:-18px;border-radius:50%;background:var(--kf-red);color:#fff;border:4px solid #fff;box-shadow:0 5px 12px rgba(227,30,36,.28);font-size:1.15rem}
  .mobile-bottom-nav a:nth-child(3) small{margin-top:-2px}
}
@media(max-width:430px){
  .cards,.product-cards{grid-template-columns:1fr}
  .page-head>.actions,.page-head>.compact-actions{grid-template-columns:1fr}
  .location-card-grid{grid-template-columns:1fr}
  .top-user .user-avatar{width:34px;height:34px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Keyfast Hub 5.6.4 — vehicle compatibility catalogue */
.vehicle-page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.vehicle-page-head h1{margin-bottom:5px}.vehicle-page-head p:last-child{margin:0;color:#687483}
.vehicle-search-hero{background:linear-gradient(135deg,#102c43,#173e5d);border-radius:17px;padding:20px;box-shadow:0 9px 25px rgba(16,44,67,.16);margin-bottom:18px}.vehicle-search-hero label{display:block;color:#dbe9f3;font-size:.8rem;font-weight:800;margin-bottom:8px}.vehicle-search-row{display:flex;gap:9px}.vehicle-search-row input{flex:1;margin:0;background:#fff;border-color:#fff;font-size:1rem;padding:13px 14px}.vehicle-search-row button{min-width:110px;background:#e31e24;border-color:#e31e24;padding:0 20px}
.vehicle-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(135px,1fr));gap:12px;margin-bottom:18px}.vehicle-summary-card{background:#fff;border:1px solid #e0e6ec;border-radius:14px;padding:15px 16px;box-shadow:0 4px 14px rgba(16,24,32,.04)}.vehicle-summary-card span,.vehicle-summary-card small{display:block;color:#687483}.vehicle-summary-card span{font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.vehicle-summary-card strong{display:block;font-size:1.75rem;line-height:1.15;margin:7px 0 3px;color:#102c43}.vehicle-summary-card small{font-size:.75rem}
.vehicle-filter-panel{display:flex;align-items:end;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid #e0e6ec;border-radius:14px;padding:14px;margin-bottom:13px}.vehicle-filter-panel label{margin:0;min-width:155px;flex:1;font-size:.75rem;font-weight:800;color:#596575}.vehicle-filter-panel select,.vehicle-filter-panel input{display:block;width:100%;margin:5px 0 0;min-height:40px}.vehicle-filter-panel button,.vehicle-filter-panel .secondary{min-height:40px;margin:0;white-space:nowrap}
.vehicle-results-head{display:flex;align-items:center;justify-content:space-between;margin:12px 2px;color:#596575}.vehicle-results-head strong{color:#102c43}.vehicle-table-wrap{border-radius:14px;box-shadow:0 5px 18px rgba(16,24,32,.05)}.vehicle-catalogue-table{margin:0;box-shadow:none;min-width:1120px}.vehicle-catalogue-table td{vertical-align:middle}.vehicle-verified-pill{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:.7rem;font-weight:800;white-space:nowrap}.vehicle-verified-pill.yes{background:#e7f6ec;color:#17663a}.vehicle-verified-pill.no{background:#eef1f4;color:#626d79}
.vehicle-pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin:19px 0 4px}.vehicle-pagination a{display:inline-flex;padding:9px 13px;background:#fff;border:1px solid #dce3e9;border-radius:9px;text-decoration:none;font-weight:750}.vehicle-pagination span{color:#687483;font-size:.86rem}
@media(max-width:1100px){.vehicle-summary-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.vehicle-search-row{flex-direction:column}.vehicle-search-row button{min-height:44px}.vehicle-summary-grid{grid-template-columns:repeat(2,1fr)}.vehicle-summary-card:last-child{grid-column:1/-1}.vehicle-filter-panel{display:grid;grid-template-columns:1fr 1fr}.vehicle-filter-panel label{min-width:0}.vehicle-filter-panel button,.vehicle-filter-panel .secondary{width:100%}.vehicle-results-head{align-items:flex-end}.vehicle-pagination{justify-content:space-between;gap:6px}.vehicle-pagination a{padding:8px 10px}.vehicle-pagination span{font-size:.76rem}}

/* V5.6.4 vehicle compatibility product linking */
.compatibility-product-manager { margin-bottom: 1rem; }
.compatibility-product-search { max-width: 900px; }
.compatibility-search-results { margin-top: 1rem; display: grid; gap: .65rem; }
.compatibility-product-result { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .8rem 1rem; border: 1px solid var(--border, #dfe5eb); border-radius: 10px; background: var(--surface, #fff); }
.compatibility-product-result small { display: block; margin-top: .2rem; color: var(--muted, #667085); }
.compatibility-product-result form { margin: 0; flex: 0 0 auto; }
.danger-link { border: 0; background: transparent; color: #b42318; cursor: pointer; padding: .35rem .5rem; font-weight: 700; }
@media (max-width: 680px) {
  .compatibility-product-result { align-items: stretch; flex-direction: column; }
  .compatibility-product-result button { width: 100%; }
}
