/* P³ ERP 1.4.4.1 – exact implementation of the approved Signal preview. */
:root{
  --p3-brand:#476f9a;
  --p3-brand-hover:#315d89;
  --p3-brand-soft:#e8f1fb;
  --p3-ink:#172033;
  --p3-muted:#657083;
  --p3-canvas:#f4f7fb;
  --p3-surface:#fff;
  --p3-border:#dce3ec;
  --p3-radius:18px;
  --p3-shadow:0 22px 60px rgba(23,32,51,.12);
}

body.kv145.kv1441-signal{
  --kv145-bg:var(--p3-canvas);
  --kv145-paper:var(--p3-surface);
  --kv145-ink:var(--p3-ink);
  --kv145-muted:var(--p3-muted);
  --kv145-line:var(--p3-border);
  --kv145-button:#eef3f8;
  --kv145-radius:16px;
  --kv145-header:68px;
  --kv145-side:190px;
  --kv14220-ink:var(--p3-ink);
  --kv14220-muted:var(--p3-muted);
  --kv14220-line:var(--p3-border);
  --kv14220-canvas:var(--p3-canvas);
  --kv14220-nav:var(--p3-brand);
  --kv14220-soft:var(--p3-brand-soft);
  background:var(--p3-canvas)!important;
  color:var(--p3-ink);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
}
body.kv145.kv1441-signal[data-kv147-area]{background:var(--p3-canvas)!important}

/* Header from the approved Signal shell. */
.kv145.kv1441-signal #appView{padding-top:68px!important}
.kv145.kv1441-signal #appView>.topbar{
  min-height:68px!important;
  height:68px!important;
  padding:10px 18px!important;
  gap:18px!important;
  background:rgba(255,255,255,.96)!important;
  border-bottom:1px solid #e3e8ef!important;
  box-shadow:none!important;
}
.kv145.kv1441-signal .topbar-brand{display:flex;align-items:center;gap:10px;min-width:155px}
.kv145.kv1441-signal .topbar-brand .shortlogo{width:38px;height:38px;border-radius:12px}
.kv145.kv1441-signal .topbar-brand .eyebrow{color:#748095!important;font-size:11px!important;font-weight:600!important;letter-spacing:.08em!important}
.kv145.kv1441-signal .topbar-brand h1{margin:1px 0 0!important;font-size:16px!important;font-weight:650!important;color:var(--p3-ink)!important}
.kv145.kv1441-signal #appView .userbox{flex:0 0 auto}
.kv145.kv1441-signal #kv145HeaderActions{gap:8px}
.kv145.kv1441-signal #kv145HeaderControls{display:flex;align-items:center;gap:8px}
.kv145.kv1441-signal #kvErpHeaderSearch{flex:1 1 420px;width:min(42vw,560px);max-width:560px;margin-left:auto;margin-right:0}
.kv145.kv1441-signal #kvErpHeaderSearch input{height:42px;min-height:42px;padding:0 12px;border:1px solid #d5dce6;border-radius:12px;background:#f8fafc}
.kv145.kv1441-signal :is(.kv145-icon,.kv1418-head-button){width:42px!important;min-width:42px!important;height:42px!important;min-height:42px!important;padding:0!important;border:0!important;border-radius:12px!important;background:#eef3f8!important;color:var(--p3-ink)!important;box-shadow:none!important}
.kv145.kv1441-signal :is(.kv145-icon,.kv1418-head-button):hover{background:#e2ebf4!important}
.kv145.kv1441-signal .kv145-person{max-width:180px;margin:0 2px 0 4px;font-weight:650;text-align:left}

/* One calm sidebar. Old area colours cannot leak through. */
@media(min-width:700px){
  .kv145.kv1441-signal #appView{--kv145-side:190px!important}
  .kv145.kv1441-signal #kv145Nav{
    display:flex!important;
    flex-direction:column;
    gap:5px;
    top:68px!important;
    width:190px!important;
    padding:14px 12px!important;
    overflow-x:hidden;
    overflow-y:auto;
    background:#eaf0f6!important;
    border-right:1px solid #dde4ec!important;
    box-shadow:none!important;
  }
  .kv145.kv1441-signal #kv145Nav .kv145-nav-tools{display:none!important}
  .kv145.kv1441-signal #kv145Nav .kv145-nav-label{display:none!important}
  .kv145.kv1441-signal #kv145Nav button[data-group]{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:flex-start!important;
    gap:11px;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:44px!important;
    margin:0!important;
    padding:8px 12px!important;
    border:0!important;
    border-radius:12px!important;
    background:transparent!important;
    color:#536074!important;
    box-shadow:none!important;
    font-size:13px;
    font-weight:600!important;
  }
  .kv145.kv1441-signal #kv145Nav button[data-group]>span:first-of-type{display:block!important;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .kv145.kv1441-signal #kv145Nav button[data-group] :is(.kv147-code,.kv145-favourite){display:none!important}
  .kv145.kv1441-signal #kv145Nav button[data-group]:hover{background:#f7f9fc!important;color:var(--p3-ink)!important}
  .kv145.kv1441-signal #kv145Nav button[data-group][aria-current="page"]{
    background:var(--p3-brand)!important;
    color:#fff!important;
    border:0!important;
    box-shadow:0 8px 18px color-mix(in srgb,var(--p3-brand) 28%,transparent)!important;
  }
  .kv145.kv1441-signal #appView>main.container,.kv145.kv1441-signal #appView>#devBanner{
    margin-left:190px!important;
    margin-right:0!important;
    width:calc(100% - 190px)!important;
  }
  .kv145.kv1441-signal #appView>main.container{padding:22px!important}
  .kv145.kv1441-signal #appView:is(.kv145-nav-open,.kv145-nav-pinned)>main.container{margin-left:190px!important;width:calc(100% - 190px)!important}
}

/* Page title and route use the same quiet hierarchy as the preview. */
.kv145.kv1441-signal #kv145Pagebar{margin:0 0 18px!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
.kv145.kv1441-signal .kv145-page-title{justify-content:flex-start;gap:14px;margin:0 0 12px!important}
.kv145.kv1441-signal .kv145-page-title>div:first-child{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:center}
.kv145.kv1441-signal .kv145-page-title small{grid-column:2;color:var(--p3-brand-hover)!important;font-size:11px!important;font-weight:700!important;letter-spacing:.09em!important;text-transform:uppercase}
.kv145.kv1441-signal .kv145-page-title h2{grid-column:1/-1;display:flex;align-items:center;gap:12px;margin:2px 0 0!important;color:var(--p3-ink)!important;font-size:clamp(1.55rem,2.2vw,2rem)!important;font-weight:720!important;letter-spacing:-.025em!important}
.kv145.kv1441-signal .kv145-page-title .kv147-code{display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:13px;background:var(--p3-brand-soft);color:var(--p3-brand-hover);font-size:11px;font-weight:800}
.kv145.kv1441-signal .kv145-page-title>.kv145-icon{margin-left:auto}
.kv145.kv1441-signal .kv145-subnav{display:flex;gap:6px;flex-wrap:wrap;padding:5px!important;border:1px solid var(--p3-border)!important;border-radius:14px!important;background:#fff!important}
.kv145.kv1441-signal .kv145-subnav button{flex:0 1 auto!important;min-height:40px!important;padding:8px 12px!important;border:0!important;border-radius:10px!important;background:transparent!important;color:#526174!important;font-weight:650}
.kv145.kv1441-signal .kv145-subnav button[aria-current="page"]{background:var(--p3-brand)!important;color:#fff!important;box-shadow:0 6px 14px rgba(71,111,154,.2)!important}
.kv145.kv1441-signal .kv144-path{min-height:36px;margin:0 0 15px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.kv145.kv1441-signal .kv144-path button{min-height:36px;padding:6px 10px;border:1px solid #d5dce6;border-radius:10px;background:#fff}
.kv145.kv1441-signal .kv144-path__trail button{min-height:32px;padding:4px 6px;border:0;background:transparent}
.kv145.kv1441-signal .kv144-path [aria-current]{padding:6px 9px;border-radius:8px;background:var(--p3-brand-soft);color:var(--p3-brand-hover)}

/* Shared surfaces and controls from Signal. */
.kv145.kv1441-signal :is(.card,.erp133-panel,.erp120-panel,.erp135-card,.kv131-panel,.kv140-panel,.kv144-supplier-card){border:1px solid var(--p3-border);border-radius:16px;background:#fff;box-shadow:0 8px 26px rgba(23,32,51,.05)}
.kv145.kv1441-signal :is(.primary,button.primary){background:var(--p3-brand)!important;border-color:var(--p3-brand)!important;color:#fff!important;box-shadow:0 7px 16px rgba(71,111,154,.2)}
.kv145.kv1441-signal :is(.secondary,.rangebtn,.kv136-button){background:#eef3f8!important;border:1px solid transparent!important;color:var(--p3-ink)!important}
.kv145.kv1441-signal :is(.rangebtn.active,.erp139-subtabs button.active,.erp135-sales-filter.active,.kv-article-tabs button.active){background:var(--p3-brand)!important;color:#fff!important}
.kv145.kv1441-signal input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),.kv145.kv1441-signal select,.kv145.kv1441-signal textarea{border-color:#d5dce6;border-radius:9px;background:#fff;color:var(--p3-ink)}
.kv145.kv1441-signal :is(button,input,select,textarea,a,summary):focus-visible{outline:3px solid #8eb5dc!important;outline-offset:2px!important}

/* Exact compact sales editor hierarchy from the approved clickable preview. */
.kv145.kv1441-signal .v217-sales-workspace{gap:10px;color:var(--p3-ink)}
.kv145.kv1441-signal .v217-workspace-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:0;border:0;border-radius:0;background:transparent}
.kv145.kv1441-signal .v217-workspace-tabs button{justify-content:center;min-height:46px;padding:8px 12px;border:1px solid var(--p3-border);border-radius:11px;background:#fff;color:var(--p3-ink);font-weight:700;box-shadow:none}
.kv145.kv1441-signal .v217-workspace-tabs button[aria-selected="true"]{border-color:var(--p3-brand);background:var(--p3-brand);color:#fff;box-shadow:none}
.kv145.kv1441-signal .v217-workspace-tabs b{min-width:24px;height:24px;padding:3px 6px;background:var(--p3-brand-soft);color:var(--p3-brand-hover)}
.kv145.kv1441-signal .v217-workspace-tabs button[aria-selected="true"] b{background:#fff;color:var(--p3-brand)}
.kv145.kv1441-signal .v217-editor{border:0;border-radius:0;background:transparent;box-shadow:none}
.kv145.kv1441-signal .v217-editor-head{display:flex;align-items:center;gap:10px;margin-bottom:9px;padding:0;border:0;background:transparent}
.kv145.kv1441-signal .v217-editor-title{min-width:0}
.kv145.kv1441-signal .v217-editor-title h2{margin:0!important;font-size:20px!important;line-height:1.2;font-weight:750}
.kv145.kv1441-signal .v217-editor-title p{margin:2px 0 0;color:var(--p3-muted);font-size:12px}
.kv145.kv1441-signal .v217-state{min-height:28px;padding:0 9px;background:var(--p3-brand-soft);color:var(--p3-brand-hover);font-size:12px}
.kv145.kv1441-signal .v217-editor-actions{margin-left:auto}
.kv145.kv1441-signal .v217-editor-actions>button,.kv145.kv1441-signal .v217-editor-menu>summary{min-height:40px;height:40px;border-radius:9px}
.kv145.kv1441-signal .v217-document-summary{grid-template-columns:minmax(230px,1.3fr) minmax(220px,1fr) minmax(220px,1fr) minmax(260px,1.15fr);border:1px solid var(--p3-border);border-radius:13px;background:#fff}
.kv145.kv1441-signal .v217-document-summary>section{padding:9px 11px;border-color:var(--p3-border)}
.kv145.kv1441-signal .v217-customer-card .v217-avatar{width:38px;height:38px;border-radius:11px;background:var(--p3-brand-soft);color:var(--p3-brand-hover)}
.kv145.kv1441-signal .v217-document-details{margin:7px 0 0;border:1px solid var(--p3-border);border-radius:10px;background:#fff}
.kv145.kv1441-signal .v217-editor .v130-section{margin-top:10px;border:1px solid var(--p3-border);border-radius:13px;background:#fff;box-shadow:none}
.kv145.kv1441-signal .v217-editor .v130-section-head{grid-template-columns:auto minmax(190px,1fr) minmax(160px,220px) auto auto;gap:8px;padding:9px 11px;border-bottom:1px solid var(--p3-border);background:#f7f9fb}
.kv145.kv1441-signal .v217-editor .v130-section-head input{min-height:36px;height:36px}
.kv145.kv1441-signal .v217-position-bar{grid-template-columns:auto minmax(115px,auto) minmax(0,1fr) auto 42px 42px;gap:8px;padding:8px 11px;background:#fff}
.kv145.kv1441-signal .v217-position-number{width:28px;height:28px;border-radius:8px;background:var(--p3-brand-soft);color:var(--p3-brand-hover)}
.kv145.kv1441-signal .v217-position-type{background:var(--p3-brand-soft);color:var(--p3-brand-hover)}
.kv145.kv1441-signal .v217-position-body{grid-template-columns:minmax(300px,1.5fr) minmax(190px,.75fr) minmax(300px,1fr);gap:10px;padding:10px 11px 12px;border-top:1px solid var(--p3-border);background:#f7f9fb}
.kv145.kv1441-signal .v217-position-group{padding:9px;border:1px solid var(--p3-border);border-radius:10px;background:#fff}
.kv145.kv1441-signal .v217-position-group:last-child{grid-column:auto}
.kv145.kv1441-signal .v217-position-group>header{margin-bottom:7px;color:var(--p3-ink);font-size:13px;letter-spacing:0;text-transform:none}
.kv145.kv1441-signal .v217-position-group>header span{display:none}
.kv145.kv1441-signal .v217-position-fields{gap:7px}
.kv145.kv1441-signal .v217-position-fields>label{gap:3px;color:var(--p3-muted);font-size:11px;font-weight:700}
.kv145.kv1441-signal .v217-position-body :is(input,select,textarea){min-height:38px;padding:7px 9px;border-radius:8px}
.kv145.kv1441-signal .v217-description-field textarea,.kv145.kv1441-signal .v217-editor .v130-line-desc textarea{min-height:66px}
.kv145.kv1441-signal .v217-article-actions{min-height:38px}
.kv145.kv1441-signal .v217-position-body .v139-qtybox{gap:7px}
.kv145.kv1441-signal .v217-price-grid,.kv145.kv1441-signal .v217-price-fields{gap:7px}
.kv145.kv1441-signal .v217-price-result{padding:9px;border-radius:9px;background:#f7f9fb}
.kv145.kv1441-signal .v217-section-actions,.kv145.kv1441-signal .v217-section-footer{padding:9px 11px;background:#fff;border-top:1px solid var(--p3-border)}
.kv145.kv1441-signal .v217-section-actions button,.kv145.kv1441-signal .v217-section-footer button{min-height:40px}

/* Keep all three functional position groups until the preview's real breakpoint. */
@media(max-width:880px) and (min-width:641px){
  .kv145.kv1441-signal .v217-position-body{grid-template-columns:minmax(0,1.2fr) minmax(190px,.8fr)}
  .kv145.kv1441-signal .v217-position-group:last-child{grid-column:1/-1}
  .kv145.kv1441-signal .v217-document-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:699px){
  .kv145.kv1441-signal #appView{padding-top:62px!important}
  .kv145.kv1441-signal #appView>.topbar{height:62px!important;min-height:62px!important;padding:9px 10px!important}
  .kv145.kv1441-signal .topbar-brand{min-width:0}
  .kv145.kv1441-signal .topbar-brand .shortlogo{width:34px;height:34px}
  .kv145.kv1441-signal .topbar-brand h1{font-size:15px!important}
  .kv145.kv1441-signal #appView>main.container{padding:14px 10px calc(90px + env(safe-area-inset-bottom))!important}
  .kv145.kv1441-signal #kv145Pagebar{margin-bottom:12px!important}
  .kv145.kv1441-signal .kv145-page-title{margin-bottom:9px!important}
  .kv145.kv1441-signal .kv145-page-title h2{font-size:1.45rem!important}
  .kv145.kv1441-signal .kv145-subnav{overflow-x:auto;flex-wrap:nowrap;padding:4px!important}
  .kv145.kv1441-signal .kv145-subnav button{flex:0 0 auto!important;min-height:44px!important;white-space:nowrap}
  .kv145.kv1441-signal #kv145Bottom{grid-template-columns:repeat(4,minmax(0,1fr));padding:7px max(7px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left));background:#fff;border-top:1px solid var(--p3-border);box-shadow:0 -8px 25px rgba(23,32,51,.08)}
  .kv145.kv1441-signal #kv145Bottom button{min-height:52px;border-radius:11px;background:transparent!important;color:#536074!important}
  .kv145.kv1441-signal #kv145Bottom button[aria-current="page"]{background:var(--p3-brand-soft)!important;color:var(--p3-brand-hover)!important}
  .kv145.kv1441-signal .kv144-path{position:static;margin:0 0 10px}
  .kv145.kv1441-signal .kv144-path__trail button{max-width:110px}
  .kv145.kv1441-signal .v217-workspace-tabs{grid-template-columns:1fr;gap:5px}
  .kv145.kv1441-signal .v217-workspace-tabs button{justify-content:space-between;min-height:44px}
  .kv145.kv1441-signal .v217-editor-head{align-items:flex-start;flex-wrap:wrap}
  .kv145.kv1441-signal .v217-editor-title{flex:1 1 210px}
  .kv145.kv1441-signal .v217-editor-actions{width:100%;margin-left:0}
  .kv145.kv1441-signal .v217-editor-actions>button{flex:1;min-height:44px}
  .kv145.kv1441-signal .v217-document-summary{grid-template-columns:1fr}
  .kv145.kv1441-signal .v217-document-summary>section{padding:9px 10px;border-right:0;border-bottom:1px solid var(--p3-border)}
  .kv145.kv1441-signal .v217-document-summary>section:last-child{border-bottom:0}
  .kv145.kv1441-signal .v217-editor .v130-section-head{grid-template-columns:auto minmax(0,1fr) auto}
  .kv145.kv1441-signal .v217-position-bar{grid-template-columns:minmax(0,1fr) 44px 44px;padding:8px 9px}
  .kv145.kv1441-signal .v217-position-body{grid-template-columns:1fr;padding:9px}
  .kv145.kv1441-signal .v217-position-group:last-child{grid-column:auto}
  .kv145.kv1441-signal .v217-position-body :is(input,select,textarea),.kv145.kv1441-signal .v217-article-actions{min-height:44px}
  .kv145.kv1441-signal .v217-price-fields{grid-template-columns:1fr}
}

@media print{
  .kv145.kv1441-signal #kv145Nav,.kv145.kv1441-signal #kv145Bottom,.kv145.kv1441-signal #appView>.topbar{display:none!important}
  .kv145.kv1441-signal #appView{padding-top:0!important}
}
