/* KNEHLER PARTNERS — small additions on top of the original styles.css */

/* smooth scrolling is handled in script (Lenis); the browser's own smooth-scroll must be off */
html.lenis,html.lenis body{height:auto}
html.lenis{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

/* ---------- Page transition: a beige panel drops down over the page, then on down and away ---------- */
html.kp-enter::after{content:"";position:fixed;left:0;right:0;top:-1px;height:calc(100lvh + 2px);z-index:9999;background:var(--paper,#f1ede5)}
html.kp-enter::before{content:"";position:fixed;left:0;right:0;top:-1px;height:100svh;z-index:10000;background:url(../knehler-monogram.png) center/46px auto no-repeat;opacity:.92;pointer-events:none}
.kp-curtain{position:fixed;left:0;right:0;top:-1px;height:calc(100lvh + 2px);z-index:9998;background:var(--paper,#f1ede5);border-bottom:1px solid var(--line);pointer-events:none;transform:translate3d(0,-100%,0);will-change:transform;backface-visibility:hidden;visibility:hidden}
.kp-curtain::before{content:"";position:absolute;left:0;right:0;top:0;height:100svh;background:url(../knehler-monogram.png) center/46px auto no-repeat;opacity:0;transition:opacity .35s ease}
.kp-curtain.is-in,.kp-curtain.is-cover,.kp-curtain.is-out{visibility:visible}
.kp-curtain.is-in{transform:translate3d(0,0,0);transition:transform .75s cubic-bezier(.76,0,.24,1);pointer-events:all}
.kp-curtain.is-in::before{opacity:.92;transition-delay:.35s}
.kp-curtain.is-cover{transform:translate3d(0,0,0)}
.kp-curtain.is-cover::before{opacity:.92;transition:none}
.kp-curtain.is-out{transform:translate3d(0,100%,0);transition:transform .95s cubic-bezier(.76,0,.24,1)}
.kp-curtain.is-out::before{opacity:0;transition-delay:0s}
@media (prefers-reduced-motion:reduce){ .kp-curtain{display:none} html.kp-enter::after,html.kp-enter::before{display:none} }

/* ---------- Products page: the catalogue alone, four across ---------- */
.kp-products{padding-top:clamp(28px,3vw,48px)}
.kp-products .product-card{min-height:0!important}
.kp-products .product-card .meta{margin-top:18px}
@media (min-width:1081px){
  .kp-products .product-grid{grid-template-columns:repeat(4,1fr)!important}
  .kp-products .product-card{min-height:0;padding:34px 20px 24px}
}

/* ---------- Homepage selected products: four across on desktop ---------- */
@media (min-width:1001px){
  .selected-products-section .editorial-product-grid{grid-template-columns:repeat(4,1fr)}
  .selected-products-section .editorial-product{min-height:520px;padding:46px 22px 30px}
  .selected-products-section .editorial-product:nth-child(3n){border-right:1px solid rgba(29,26,23,.27)}
  .selected-products-section .editorial-product:nth-child(4n){border-right:0}
  .selected-products-section .editorial-product:nth-child(n+4){border-top:0}
  .selected-products-section .editorial-product:nth-child(n+5){border-top:1px solid rgba(29,26,23,.27)}
}

/* ---------- Capability photographs fill their frames ---------- */
.cap-card .image img.kp-photo{object-fit:cover!important;padding:0!important;width:100%;height:100%}

/* ---------- Homepage image motion ---------- */
/* capability and project photographs slide slowly inside their frames with the scroll */
.kp-pan{overflow:hidden}
.kp-pan > img{scale:1.12;translate:0 var(--pan,0px);will-change:translate}

/* ---------- "Material, product and process": three images scroll into a composition,
   hold while the text is read, then scroll away. Everything is tied to scroll position,
   so scrolling back reverses it exactly. ---------- */
.kp-story{position:relative;height:300vh;border-top:1px solid rgba(19,17,15,.18);border-bottom:1px solid rgba(19,17,15,.18)}
.kp-story-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.kp-s{position:absolute;margin:0;overflow:hidden;will-change:transform;backface-visibility:hidden;transform:translate3d(0,0,0);contain:layout paint}
.kp-s img{width:100%;height:100%;object-fit:cover;display:block}
/* writing on the left, images on the right */
.kp-story-title{position:absolute;left:2.4%;top:13vh;z-index:3;will-change:opacity}
.kp-story-title span{display:block;writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--serif);font-size:28px;line-height:1;letter-spacing:.015em}
.kp-story-note{position:absolute;left:9%;top:50%;width:min(26vw,400px);margin-top:-9vh;display:grid;grid-template-columns:30px 1fr;gap:14px;z-index:3;will-change:opacity,transform}
.kp-story-note .note-number{padding-top:5px;font-family:var(--sans);font-size:8.5px;letter-spacing:.12em;color:var(--muted)}
.kp-story-note h3{margin:0 0 14px;font-family:var(--serif);font-size:30px;line-height:1.04;font-weight:400;letter-spacing:-.012em}
.kp-story-note p{margin:0;font-family:var(--serif);font-size:12px;line-height:1.72;color:#3c3732}
.kp-s-a{left:41%;top:12vh;width:26vw;height:66vh}
.kp-s-b{right:6%;top:9vh;width:20vw;height:25vh}
.kp-s-c{right:6%;top:42vh;width:24vw;height:38vh}

@media (max-width:760px){
  .kp-story{height:280vh}
  .kp-story-title{display:none}
  .kp-story-note{left:6%;right:6%;top:10vh;margin-top:0;width:auto;grid-template-columns:22px 1fr}
  .kp-story-note h3{font-size:22px;margin-bottom:10px}
  .kp-story-note p{font-size:11px}
  .kp-s-a{left:6%;top:38vh;width:54vw;height:42vh}
  .kp-s-b{left:auto;right:6%;top:34vh;width:32vw;height:18vh}
  .kp-s-c{right:6%;top:56vh;width:38vw;height:26vh}
}
/* reduced motion: a still composition */
@media (prefers-reduced-motion:reduce){
  .kp-story{height:auto}
  .kp-story-stage{position:relative;height:100vh}
}

/* ---------- Capabilities: three categories side by side ---------- */
@media (min-width:1001px){
  .cap-grid.kp-cap3{grid-template-columns:repeat(3,1fr)!important}
  .kp-cap3 .cap-card:nth-child(even){border-right:1px solid rgba(19,17,15,.14)}
  .kp-cap3 .cap-card:nth-child(3n){border-right:0}
  .kp-cap3 .cap-card .image{aspect-ratio:4/5}
}

/* ---------- "How it works" + "From discovery to delivery": on hover the number and title grow
   from where the small writing sits into an enlarged, centred layout (number | title, description
   below). The full-size type does the moving, starting scaled down to match the small writing,
   so it stays sharp throughout. Moving away reverses it. Offsets set in kp.js. ---------- */
@media (hover:hover) and (pointer:fine){
  .kp-hstep{position:relative;overflow:hidden;container-type:inline-size}
  /* the small writing hands over the instant the hover starts, and returns once the big type is home */
  .kp-morph{transition:opacity .06s linear .8s}
  .kp-on .kp-morph{opacity:0;transition:opacity .06s linear 0s}
  .kp-desc{transition:opacity .45s ease .3s,transform .8s cubic-bezier(.65,0,.25,1)}
  .kp-on .kp-desc{opacity:0;transform:translate3d(0,var(--dy,0),0);transition:opacity .3s ease,transform .8s cubic-bezier(.65,0,.25,1)}

  .kp-big{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3.2cqi;padding:0 6cqi;text-align:center;pointer-events:none}
  .kp-big .row{display:flex;align-items:center;gap:3.4cqi}
  .kp-big .bn{font-family:var(--serif);font-size:calc(var(--fs,12.5cqi) * .92);line-height:1;color:var(--muted);font-variant-numeric:lining-nums}
  .kp-big .bt{font-family:var(--serif);font-size:var(--fs,12.5cqi);line-height:1;letter-spacing:-.01em;white-space:nowrap}
  .kp-big .bn,.kp-big .bt{transform-origin:0 0;opacity:0;
    transform:translate(var(--tx,0),var(--ty,0)) scale(var(--s,1));
    transition:transform .8s cubic-bezier(.65,0,.25,1),opacity .06s linear .8s}
  .kp-on .kp-big .bn,.kp-on .kp-big .bt{opacity:1;transform:none;
    transition:transform .8s cubic-bezier(.65,0,.25,1),opacity .06s linear 0s}
  .kp-measure .kp-big .bn,.kp-measure .kp-big .bt{transform:none!important;transition:none!important}
  .kp-big .bl{width:1px;align-self:stretch;min-height:calc(var(--fs,12.5cqi) * 1.3);background:currentColor;transform:scaleY(0);transition:transform .35s cubic-bezier(.4,0,.2,1)}
  .kp-on .kp-big .bl{transform:scaleY(1);transition:transform .7s cubic-bezier(.16,1,.3,1) .45s}
  .kp-big .bd{margin:0;max-width:84cqi;font-family:var(--serif);font-size:max(3.3cqi,11px);line-height:1.4;opacity:0;transform:translate3d(0,8px,0);transition:opacity .2s ease,transform .3s ease}
  .kp-on .kp-big .bd{opacity:1;transform:none;transition:opacity .6s ease .55s,transform .9s cubic-bezier(.16,1,.3,1) .5s}
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:reduce){
  .kp-hstep *{transition-duration:.01ms!important;transition-delay:0s!important}
}

/* ---------- Explore: sample cards (like paint chips). One sits in the centre; the others wait
   either side. Arrows, a click on a side card, swipe or arrow keys bring the next one in. ---------- */
.kp-explore{overflow:hidden}
.kp-deck{--cw:min(300px,60vw);position:relative;padding:clamp(10px,2vw,24px) 0 clamp(10px,2vw,30px);outline:none}
.kp-deck-stage{position:relative;height:calc(var(--cw) * 1.42 + 40px);overflow:visible}
/* each card is a real mounted sample: textured cotton paper, a separate paper band across the top
   holding the name, and the photograph set into the card with a generous paper border.
   Side cards lie slightly askew and out of focus. */
.kp-chip{position:absolute;left:50%;top:0;width:var(--cw);margin-left:calc(var(--cw) / -2);display:flex;flex-direction:column;
  padding:0 calc(var(--cw) * .085) calc(var(--cw) * .095);border-radius:1px;color:#2b2723;text-decoration:none;
  background:#f1ece2 url("../explore/linen.jpg") center/calc(var(--cw) * 1.3) auto no-repeat;
  box-shadow:inset 0 0 0 .5px rgba(40,32,24,.10),.5px 1px 1px rgba(40,32,24,.10),2px 5px 8px -3px rgba(40,32,24,.13),12px 26px 34px -20px rgba(40,32,24,.34);
  transform:translate3d(calc(var(--d,0) * var(--cw) * 1.0),calc(var(--a,0) * 18px),0) rotate(var(--rot,0deg)) scale(var(--sc,1));transform-origin:50% 70%;
  opacity:var(--op,1);z-index:var(--z,1);filter:blur(var(--bl,0px));cursor:pointer;
  transition:transform 1s cubic-bezier(.65,0,.25,1),opacity .8s cubic-bezier(.65,0,.25,1),filter .8s cubic-bezier(.65,0,.25,1),box-shadow .8s ease}
.kp-chip.is-active{box-shadow:inset 0 0 0 .5px rgba(40,32,24,.10),.5px 1px 1px rgba(40,32,24,.10),3px 8px 12px -5px rgba(40,32,24,.15),18px 38px 50px -28px rgba(40,32,24,.42)}
/* the name band: a second strip of paper laid across the top, catching a little shadow beneath */
.kp-chip-label{position:relative;display:block;margin:0 calc(var(--cw) * -.085) calc(var(--cw) * .08);padding:calc(var(--cw) * .075) calc(var(--cw) * .05) calc(var(--cw) * .07);text-align:center;
  background:linear-gradient(rgba(255,253,248,.38),rgba(255,253,248,.30)),#f3eee5 url("../explore/linen.jpg") center top/calc(var(--cw) * 1.3) auto no-repeat;
  box-shadow:0 .5px 0 rgba(40,32,24,.14),0 2px 3px -1px rgba(40,32,24,.10),0 6px 10px -8px rgba(40,32,24,.22);
  font-family:var(--serif);font-size:calc(var(--cw) * .052);line-height:1.15;letter-spacing:.01em;color:#25211d;white-space:nowrap}
.kp-chip-label::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:rgba(255,255,255,.7)}
.kp-chip-label b{font-weight:400;text-transform:uppercase;letter-spacing:.03em}
.kp-chip-label i{font-style:italic;color:#9a9188}
/* the photograph, mounted into the card */
.kp-chip-img{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:#e7e0d4;
  box-shadow:0 0 0 .5px rgba(40,32,24,.16)}
.kp-chip-img img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9) contrast(.96);transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.kp-chip-img::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(125deg,rgba(255,255,255,.08),rgba(255,255,255,0) 40%,rgba(30,20,10,.05));
  box-shadow:inset 0 0 0 1px rgba(30,20,10,.06),inset 0 1px 2px rgba(30,20,10,.10)}
.kp-chip.is-active:hover .kp-chip-img img{transform:scale(1.03)}
.kp-chip:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
/* small arrows either side */
.kp-deck-arrow{all:unset;position:absolute;top:calc(var(--cw) * .74);z-index:20;width:44px;height:44px;display:grid;place-items:center;cursor:pointer;color:var(--ink);
  transition:transform .6s cubic-bezier(.16,1,.3,1),opacity .4s ease;opacity:.7}
.kp-deck-arrow svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1}
.kp-deck-arrow:hover{opacity:1}
.kp-deck-arrow.prev{left:calc(50% - var(--cw) * 1.62)}
.kp-deck-arrow.next{right:calc(50% - var(--cw) * 1.62)}
.kp-deck-arrow.prev:hover{transform:translateX(-4px)}
.kp-deck-arrow.next:hover{transform:translateX(4px)}
.kp-deck-arrow:focus-visible{outline:1px solid var(--ink);outline-offset:2px}
@media (max-width:760px){ .kp-deck-arrow.prev{left:6px} .kp-deck-arrow.next{right:6px} .kp-deck-arrow{top:calc(var(--cw) * .7);width:36px;height:36px;border-radius:50%;background:rgba(243,239,231,.86);opacity:1} .kp-deck-arrow svg{width:18px;height:18px} }
.kp-deck-nav{display:flex;align-items:center;justify-content:center;gap:34px;margin-top:30px;font-family:var(--sans);font-size:9.5px;letter-spacing:.16em;color:var(--muted)}
.kp-deck-nav b{font-weight:400;color:var(--ink)}
.kp-deck-nav button{all:unset;cursor:pointer;font-family:var(--sans);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);padding:6px 0;
  background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .5s cubic-bezier(.16,1,.3,1)}
.kp-deck-nav button:hover{background-size:100% 1px}
.kp-deck-nav button:focus-visible{outline:1px solid var(--ink);outline-offset:3px}
@media (max-width:760px){ .kp-deck{--cw:min(240px,60vw)} .kp-chip{transform:translate3d(calc(var(--d,0) * var(--cw) * .74),calc(var(--a,0) * 14px),0) rotate(var(--rot,0deg)) scale(var(--sc,1))} }
@media (prefers-reduced-motion:reduce){ .kp-chip,.kp-chip-img img{transition:none} }

/* ---------- Capability pages (Furniture + Lighting, Surfaces, Joinery) ---------- */
.cap-card a.image{display:block}
.cap-card h3 a{color:inherit;text-decoration:none}
.cap-card h3 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.kp-cap-hero{margin:0 var(--pad,24px);}
.kp-cap-hero .kp-cap-img{aspect-ratio:16/8;overflow:hidden}
.kp-cap-img img{width:100%;height:100%;object-fit:cover;display:block}
.kp-cap-status{font-family:var(--sans);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.kp-cap-list{list-style:none;padding:0;margin:26px 0 0;columns:2;column-gap:30px;font-family:var(--serif);font-size:13px;line-height:1.9}
.kp-cap-gallery{display:grid;grid-template-columns:1.15fr .85fr 1fr;gap:clamp(16px,2.4vw,40px);align-items:start}
.kp-cap-gallery .kp-cap-fig:nth-child(2){margin-top:12vh}
.kp-cap-gallery .kp-cap-fig:nth-child(3){margin-top:4vh}
.kp-cap-fig{margin:0}
.kp-cap-fig .kp-cap-img{aspect-ratio:4/5;overflow:hidden}
.kp-cap-fig figcaption{margin-top:12px;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-cap-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(19,17,15,.18)}
.kp-cap-steps li{padding:28px 28px 40px 0;border-right:1px solid rgba(19,17,15,.14)}
.kp-cap-steps li + li{padding-left:28px}
.kp-cap-steps li:last-child{border-right:0}
.kp-cap-steps .n{font-family:var(--sans);font-size:9.5px;letter-spacing:.14em;color:var(--muted)}
.kp-cap-steps h3{font-family:var(--serif);font-weight:400;font-size:22px;margin:40px 0 10px}
.kp-cap-steps p{font-family:var(--serif);font-size:13px;line-height:1.6;margin:0;max-width:34ch}
.kp-cap-next{border-top:1px solid rgba(19,17,15,.18);margin:0 var(--pad,24px)}
.kp-cap-next a{display:flex;justify-content:space-between;align-items:baseline;padding:44px 0 70px;color:var(--ink);text-decoration:none}
.kp-cap-next span{font-family:var(--sans);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.kp-cap-next b{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4vw,56px);letter-spacing:-.015em;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.kp-cap-next a:hover b{transform:translateX(-12px)}
/* images rise gently into place as they come into view */
.kp-cap-page [data-cap-reveal]{opacity:0;transform:translate3d(0,40px,0);transition:opacity 1.2s cubic-bezier(.16,1,.3,1),transform 1.4s cubic-bezier(.16,1,.3,1)}
.kp-cap-page [data-cap-reveal].in{opacity:1;transform:none}
.kp-cap-page [data-cap-reveal]:nth-child(2){transition-delay:.12s}.kp-cap-page [data-cap-reveal]:nth-child(3){transition-delay:.24s}
@media (max-width:760px){
  .kp-cap-hero .kp-cap-img{aspect-ratio:4/3}
  .kp-cap-gallery{grid-template-columns:1fr 1fr}
  .kp-cap-gallery .kp-cap-fig:nth-child(2){margin-top:8vh}
  .kp-cap-gallery .kp-cap-fig:nth-child(3){grid-column:1/-1;margin-top:0}
  .kp-cap-steps{grid-template-columns:1fr}
  .kp-cap-steps li,.kp-cap-steps li + li{padding:22px 0 26px;border-right:0;border-bottom:1px solid rgba(19,17,15,.14)}
  .kp-cap-steps h3{margin-top:14px}
  .kp-cap-list{columns:1}
}
@media (prefers-reduced-motion:reduce){ .kp-cap-page [data-cap-reveal]{opacity:1;transform:none;transition:none} }

/* ---------- "From discovery to delivery": a timeline that draws itself with the scroll.
   The section holds on screen; a fine line runs across, and each stage rises in as the
   line reaches its marker. Scrolling back reverses it. ---------- */
.kp-journey{position:relative;height:320vh;border-top:1px solid rgba(19,17,15,.18)}
.kp-journey-stage{position:sticky;top:0;height:100vh;height:100svh;display:flex;flex-direction:column;justify-content:center;padding:0 var(--pad,24px);overflow:hidden}
.kp-journey-stage .section-head{position:absolute;top:calc(var(--kp-hdr,60px) + 6vh);left:var(--pad,24px);right:var(--pad,24px)}
.kp-tl-count{font-family:var(--sans);font-size:9.5px;letter-spacing:.16em;color:var(--muted);align-self:center}
.kp-tl-count b{font-weight:400;color:var(--ink)}
.kp-tl{position:relative;margin-top:6vh}
.kp-tl-line{position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(19,17,15,.14)}
.kp-tl-line i{position:absolute;inset:0;background:var(--ink);transform-origin:0 50%;transform:scaleX(var(--p,0))}
.kp-tl-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(8,1fr);position:relative}
.kp-tl-step{position:relative;display:grid;grid-template-rows:1fr auto 1fr;min-height:46vh;padding-right:14px}
.kp-tl-dot{grid-row:2;width:7px;height:7px;border-radius:50%;background:var(--paper);box-shadow:0 0 0 1px rgba(19,17,15,.3);
  transform:translateY(0);transition:background .5s ease,box-shadow .5s ease,transform .6s cubic-bezier(.16,1,.3,1)}
.kp-tl-top{grid-row:1;align-self:end;padding-bottom:26px;display:flex;flex-direction:column;gap:12px;
  opacity:.16;transform:translate3d(0,14px,0);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform 1.1s cubic-bezier(.16,1,.3,1)}
.kp-tl-top .n{font-family:var(--sans);font-size:9.5px;letter-spacing:.14em;color:var(--muted)}
.kp-tl-top h3{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(20px,1.9vw,30px);line-height:1;letter-spacing:-.01em;color:var(--ink)}
.kp-tl-step p{grid-row:3;align-self:start;margin:0;padding-top:24px;font-family:var(--serif);font-size:12.5px;line-height:1.55;color:#5a534b;max-width:20ch;
  opacity:0;transform:translate3d(0,-8px,0);transition:opacity .8s ease .1s,transform 1s cubic-bezier(.16,1,.3,1) .1s}
.kp-tl-step.on .kp-tl-top{opacity:1;transform:none}
.kp-tl-step.on p{opacity:1;transform:none}
.kp-tl-step.on .kp-tl-dot{background:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.kp-tl-step.now .kp-tl-dot{transform:scale(1.6)}

/* phones: the same idea running down the page */
@media (max-width:760px){
  .kp-journey{height:300vh}
  .kp-tl-count{display:none}
  .kp-journey-stage .section-head{top:calc(var(--kp-hdr,56px) + 3vh)}
  .kp-tl{margin-top:10vh}
  .kp-tl-line{left:3px;right:auto;top:0;bottom:0;width:1px;height:auto}
  .kp-tl-line i{transform-origin:50% 0;transform:scaleY(var(--p,0))}
  .kp-tl-steps{grid-template-columns:1fr}
  .kp-tl-step{min-height:0;grid-template-rows:auto;grid-template-columns:7px 1fr;column-gap:18px;padding:0 0 3.2vh}
  .kp-tl-dot{grid-row:1;grid-column:1;margin-top:5px}
  .kp-tl-top{grid-row:1;grid-column:2;padding:0;flex-direction:row;align-items:baseline;gap:12px}
  .kp-tl-top h3{font-size:20px}
  .kp-tl-step p{grid-row:2;grid-column:2;padding-top:4px;font-size:11.5px;max-width:none}
}
@media (prefers-reduced-motion:reduce){
  .kp-journey{height:auto}
  .kp-journey-stage{position:relative;height:auto;padding-top:120px;padding-bottom:80px}
  .kp-tl-top,.kp-tl-step p{opacity:1;transform:none;transition:none}
}

/* ---------- How it works: each step links to its own page ---------- */
.process-grid a.step{position:relative;color:inherit;text-decoration:none;cursor:pointer}
.process-grid a.step::after{content:"View \2192";position:absolute;top:15px;right:18px;font-family:var(--sans);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);opacity:.75;transition:opacity .5s ease,transform .7s cubic-bezier(.16,1,.3,1)}
.process-grid a.step:nth-child(3n+1)::after{right:18px}
@media (hover:hover) and (pointer:fine){ .process-grid a.step:hover::after{opacity:1;transform:translateX(4px)} }
.process-grid a.step:focus-visible{outline:1px solid currentColor;outline-offset:-1px}

/* ---------- process step pages ---------- */
.kp-proc-nav{display:grid;grid-template-columns:repeat(6,1fr);margin:26px var(--pad,24px) 0;border-top:1px solid var(--line)}
.kp-proc-nav a{position:relative;padding:12px 10px 0 0;font-family:var(--serif);font-size:12px;color:var(--muted);text-decoration:none;transition:color .4s ease}
.kp-proc-nav a span{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.12em;margin-bottom:5px}
.kp-proc-nav a::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:0 50%;transition:transform .8s cubic-bezier(.16,1,.3,1)}
.kp-proc-nav a[aria-current],.kp-proc-nav a:hover{color:var(--ink)}
.kp-proc-nav a[aria-current]::before{transform:scaleX(1)}
@media (hover:hover){ .kp-proc-nav a:hover::before{transform:scaleX(.35)} .kp-proc-nav a[aria-current]:hover::before{transform:scaleX(1)} }

.kp-proc-hero{display:grid;grid-template-columns:1fr minmax(0,.62fr);gap:clamp(30px,6vw,110px);align-items:center;padding:clamp(48px,6vw,90px) var(--pad,24px) clamp(56px,7vw,100px)}
.kp-proc-num{display:block;font-family:var(--sans);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:22px}
.kp-proc-num em{font-style:normal;color:var(--muted)}
.kp-proc-text h1{margin:0 0 26px;font-family:var(--serif);font-weight:400;font-size:clamp(46px,6.4vw,104px);line-height:.95;letter-spacing:-.02em}
.kp-proc-text h2{margin:0 0 24px;max-width:22ch;font-family:var(--serif);font-weight:400;font-size:clamp(20px,1.9vw,28px);line-height:1.2}
.kp-proc-text p{margin:0 0 14px;max-width:46ch;font-family:var(--serif);font-size:13px;line-height:1.6}
.kp-proc-fig{margin:0;justify-self:end;width:min(100%,calc(74vh * .8))}
.kp-proc-fig .kp-cap-img{aspect-ratio:4/5;overflow:hidden}
.kp-proc-cols{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.kp-proc-cols>div{padding:18px 24px 30px 0}
.kp-proc-cols>div+div{padding-left:24px;border-left:1px solid var(--line)}
.kp-proc-cols h3{margin:0 0 18px;font-family:var(--sans);font-size:9.5px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.kp-proc-list{list-style:none;margin:0;padding:0;font-family:var(--serif);font-size:15px;line-height:1.35}
.kp-proc-list li{padding:11px 0;border-bottom:1px solid var(--line)}
.kp-proc-list li:last-child{border-bottom:0}
.kp-proc-quote{margin:clamp(40px,5vw,70px) 0 0;max-width:30ch;font-family:var(--serif);font-size:clamp(22px,2.3vw,34px);line-height:1.15;letter-spacing:-.01em}
.kp-proc-pager{display:flex;justify-content:space-between;align-items:baseline;gap:24px}
.kp-proc-pager a{display:flex;flex-direction:column;gap:10px;padding:44px 0 70px;color:var(--ink);text-decoration:none}
.kp-proc-pager .kp-next-a{align-items:flex-end;text-align:right}
.kp-proc-pager i{font-family:var(--serif);font-style:normal;font-size:clamp(18px,1.6vw,24px);color:var(--muted);transition:color .4s ease,transform .8s cubic-bezier(.16,1,.3,1)}
.kp-proc-pager .kp-prev-a:hover i{color:var(--ink);transform:translateX(8px)}
@media (max-width:860px){
  .kp-proc-nav{grid-template-columns:repeat(3,1fr);row-gap:14px}
  .kp-proc-hero{grid-template-columns:1fr;align-items:start}
  .kp-proc-fig{width:100%}
  .kp-proc-cols{grid-template-columns:1fr}
  .kp-proc-cols>div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}
  .kp-proc-pager .kp-prev-a span{display:none}
}

/* section titles without the small numbers beside them */
.section-head.kp-nonum{grid-template-columns:minmax(0,1fr) auto!important}
@media (max-width:860px){
  .section-head.kp-nonum{grid-template-columns:1fr!important;row-gap:10px}
  .section-head.kp-nonum .text-link,.section-head.kp-nonum .kp-cap-status{grid-column:1!important}
}
.kp-story-note{grid-template-columns:1fr!important}

/* products page: the three categories sit directly above the product grid */
.kp-prod-cats{padding-bottom:28px!important;border-bottom:0!important}
.kp-prod-cats + .kp-products{padding-top:clamp(64px,7vw,100px)!important}

/* =========================================================
   Clickable affordances
   ========================================================= */
/* one arrow for every text link; it slides on hover */
.text-link::after{content:"\2192";display:inline-block;margin-left:.8em;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.text-link:hover::after{transform:translateX(4px)}
/* card titles carry a quieter arrow that moves when the card is hovered */
.cap-card h3 a::after,.product-card h3::after,.editorial-product-meta p::after{content:"\2192";display:inline-block;margin-left:.45em;font-family:var(--sans);font-size:.72em;color:var(--muted);transition:transform .6s cubic-bezier(.16,1,.3,1),color .4s ease}
.cap-card:hover h3 a::after,.product-card:hover h3::after,.editorial-product:hover .editorial-product-meta p::after{transform:translateX(5px);color:var(--ink)}

/* photographs ease in and dim slightly when their card is hovered */
.editorial-product-image,.project-index-images figure{overflow:hidden}
.cap-card .image img,.product-card .image img,.editorial-product-image img,.project-index-images img,.home-project-image img{transition:transform 1.4s cubic-bezier(.16,1,.3,1),filter .8s ease}
@media (hover:hover) and (pointer:fine){
  .cap-card:hover .image img,.product-card:hover .image img,.editorial-product:hover .editorial-product-image img,.project-index-card:hover .project-index-images img,.home-project-image:hover img{transform:scale(1.035);filter:brightness(.94)}
}

/* cursor: the normal cursor everywhere, except over clickable cards, where a small labelled ring takes its place */
@media (hover:hover) and (pointer:fine){
  html.kp-cur .kp-chip,html.kp-cur .cap-card .image,html.kp-cur .product-card,html.kp-cur .editorial-product,html.kp-cur .project-index-card,html.kp-cur .home-project-image,
  html.kp-cur .process-grid .step,html.kp-cur .kp-cap-next a,html.kp-cur .kp-proc-pager a,html.kp-cur .kp-deck-arrow,
  html.kp-cur .kp-chip *,html.kp-cur .cap-card .image *,html.kp-cur .product-card *,html.kp-cur .editorial-product *,html.kp-cur .project-index-card *,html.kp-cur .home-project-image *,
  html.kp-cur .process-grid .step *,html.kp-cur .kp-cap-next a *,html.kp-cur .kp-proc-pager a *,html.kp-cur .kp-deck-arrow *{cursor:none}
}
.kp-cursor{position:fixed;left:0;top:0;width:0;height:0;z-index:400;pointer-events:none;transition:opacity .3s ease}
.kp-cursor.is-hidden{opacity:0}
.kp-cursor .d{display:none}
.kp-cursor .r{position:absolute;left:-27px;top:-27px;width:54px;height:54px;border-radius:50%;background:rgba(243,239,231,.94);box-shadow:0 0 0 1px rgba(19,17,15,.28),0 5px 14px -7px rgba(19,17,15,.25);display:grid;place-items:center;transform:scale(.15);opacity:0;transition:transform .55s cubic-bezier(.16,1,.3,1),opacity .25s ease}
.kp-cursor .r b{font-family:var(--sans);font-weight:400;font-size:7.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);padding-left:.16em}
.kp-cursor.is-big .r{transform:none;opacity:1}
.kp-cursor.is-mini .r{transform:scale(.52);opacity:1}
.kp-cursor.is-mini .r b{font-size:17px;letter-spacing:0;padding:0 0 3px}
.kp-cursor.is-down .r{transform:scale(.9)}
.kp-cursor.is-mini.is-down .r{transform:scale(.46)}

/* touch screens: no hover, so taps answer with a brief dim */
@media (hover:none){
  a,button{-webkit-tap-highlight-color:transparent}
  .cap-card .image:active img,.product-card:active .image img,.editorial-product:active img,.project-index-card:active img,.kp-chip.is-active:active .kp-chip-img img{filter:brightness(.88);transition:filter .1s}
  .process-grid a.step:active,.kp-proc-nav a:active{background:rgba(19,17,15,.04)}
  .text-link:active,.btn:active{opacity:.6}
  .process-grid a.step::after{opacity:1;color:var(--ink)}
}

/* capability cards: a short, even list (two by two) so every card ends on the same line */
.cap-card ul{display:grid!important;grid-template-columns:max-content max-content;column-gap:38px;columns:auto!important;margin:12px 0 18px!important;padding:0;list-style:none;font-family:var(--serif);font-size:10px!important;line-height:1.7!important;color:#3c3732}
.cap-card ul li{white-space:nowrap}
#past-works{scroll-margin-top:110px}

/* ---------- Project gallery: one continuous flow ----------
   The section is pinned for its length; each photograph rises through the screen in its own
   lane at its own pace, so the images overlap and hand over to one another as you scroll. */
.project-gallery.kp-flow-on{display:block!important;position:relative;padding:0!important;margin:0!important;height:var(--flow-h,700vh)}
.kp-flow-on .kp-flow-stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.kp-flow-on .project-photo{position:absolute!important;top:0;left:0;margin:0!important;padding:0!important;will-change:transform;transform:translate3d(0,110vh,0)}
.kp-flow-on .project-photo img{width:100%;height:auto;display:block}
.kp-flow-count{position:absolute;left:var(--pad,24px);bottom:22px;z-index:5;font-family:var(--sans);font-size:9px;letter-spacing:.16em;color:var(--muted)}
.kp-flow-count b{font-weight:400;color:var(--ink)}

/* the scroll arrow, repeated on the statement screen and on the timeline while there is more to scroll */
.kp-cue2,.kp-cue-tl{opacity:0;transition:opacity .5s ease}
.kp-cue-tl{position:absolute;left:50%;bottom:22px;width:9px;height:52px;transform:translateX(-50%);z-index:3}
@media (prefers-reduced-motion:reduce){ .kp-cue2,.kp-cue-tl{display:none} }

/* every button matches "Start an enquiry" in the header: same type, size, line and padding */
a.btn,button.btn,.btn.ghost,.intro-grid .copy .btn,.section .btn{
  display:inline-flex!important;align-items:center;justify-content:center;
  height:36px!important;min-height:36px!important;padding:0 13px!important;
  font-family:Arial,Helvetica,sans-serif!important;font-size:8.5px!important;font-weight:400!important;
  letter-spacing:.12em!important;text-transform:uppercase!important;line-height:normal!important;
  border:1px solid rgba(19,17,15,.62)!important;border-radius:0!important;
  background:transparent;color:var(--ink);text-decoration:none;transition:background .22s,color .22s}
a.btn:hover,button.btn:hover{background:var(--ink)!important;color:var(--paper)!important}

/* ---------- Site search: a quiet bar the height of the header ---------- */
.kp-search{position:fixed;inset:0;z-index:350;background:rgba(19,17,15,0);transition:background .45s ease}
.kp-search.is-open{background:rgba(19,17,15,.08)}
.kp-search-in{background:var(--paper);border-bottom:1px solid rgba(19,17,15,.14);max-height:80vh;max-height:80svh;display:flex;flex-direction:column;transform:translateY(-102%);transition:transform .55s cubic-bezier(.76,0,.24,1)}
.kp-search.is-open .kp-search-in{transform:none}
.kp-search-bar{display:flex;align-items:center;gap:18px;height:var(--kp-hdr,57px);min-height:52px;padding:0 var(--pad,24px);border-bottom:1px solid rgba(19,17,15,.1)}
.kp-search-lbl{display:none}
.kp-search-bar input{flex:1;min-width:0;border:0;background:transparent;outline:none;font-family:var(--serif);font-size:15px;letter-spacing:.005em;line-height:1.3;color:var(--ink);padding:0;-webkit-appearance:none;appearance:none;border-radius:0}
.kp-search-bar input::placeholder{color:rgba(19,17,15,.38)}
.kp-search-bar input::-webkit-search-cancel-button{display:none}
.kp-search-x{flex:none;border:0;background:none;height:auto;padding:4px 0;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);cursor:pointer;transition:color .3s}
.kp-search-x:hover{color:var(--ink);background:none}
.kp-search-res{overflow:auto;padding:16px var(--pad,24px) 22px;overscroll-behavior:contain}
.kp-search-hint{margin:0 0 12px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(19,17,15,.42)}
.kp-search-none{margin:0;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-search-sug{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 24px}
.kp-search-sug a{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);text-decoration:none;padding-bottom:3px;border-bottom:1px solid transparent;transition:border-color .3s}
.kp-search-sug a:hover,.kp-search-sug a.is-sel{border-color:currentColor}
.kp-search-list{list-style:none;margin:0;padding:0;max-width:820px}
.kp-search-list a{display:grid;grid-template-columns:96px 1fr;column-gap:20px;row-gap:3px;padding:11px 0;border-top:1px solid rgba(19,17,15,.08);color:var(--ink);text-decoration:none;transition:opacity .3s}
.kp-search-list li:first-child a{border-top:0}
.kp-search-list a:hover .t,.kp-search-list a.is-sel .t{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.kp-search-list .k{grid-row:1/3;padding-top:4px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(19,17,15,.45)}
.kp-search-list .t{font-family:var(--serif);font-size:14px;line-height:1.3}
.kp-search-list .s{grid-column:2;font-family:var(--serif);font-size:11px;line-height:1.55;color:#6f685f;max-width:640px}
.kp-search-list mark{background:none;color:var(--ink)}
html.kp-search-on{overflow:hidden}
@media (max-width:760px){
  .kp-search-list a{grid-template-columns:1fr}
  .kp-search-list .k{grid-row:auto;padding:0}
  .kp-search-list .s{grid-column:1}
}
@media (prefers-reduced-motion:reduce){ .kp-search-in{transition:none} }

/* Explore: a shorter section — tighter padding, smaller samples, counter closer */
.section.kp-explore{padding-top:clamp(48px,5vw,72px)!important;padding-bottom:clamp(36px,4vw,56px)!important}
.kp-explore .section-head{margin-bottom:clamp(14px,2vw,26px)!important}
.kp-deck{--cw:min(250px,56vw);padding:0!important}
.kp-deck-stage{height:calc(var(--cw) * 1.42 + 22px)!important}
.kp-deck-count{margin-top:4px!important}
@media (max-width:760px){ .kp-deck{--cw:min(220px,58vw)} }

/* =========================================================
   Client portal
   ========================================================= */
.kp-portal{padding:0 var(--pad,24px) clamp(70px,8vw,120px)}
/* signed out */
.kp-pt-signin{display:grid;grid-template-columns:1fr minmax(280px,380px);gap:clamp(40px,8vw,140px);align-items:start;padding-top:clamp(50px,7vw,100px)}
.kp-pt-intro h1{margin:0 0 22px;font-family:var(--serif);font-weight:400;font-size:clamp(40px,5.4vw,78px);line-height:.98;letter-spacing:-.02em}
.kp-pt-lede{margin:0 0 26px;max-width:34ch;font-family:var(--serif);font-size:clamp(17px,1.5vw,21px);line-height:1.35}
.kp-pt-points{list-style:none;margin:0;padding:0;border-top:1px solid rgba(19,17,15,.14);max-width:420px}
.kp-pt-points li{padding:10px 0;border-bottom:1px solid rgba(19,17,15,.14);font-family:var(--serif);font-size:13px}
.kp-pt-form{position:relative;display:flex;flex-direction:column;gap:18px;padding:30px 28px 26px;border:1px solid rgba(19,17,15,.18)}
.kp-pt-flag{position:absolute;top:-1px;right:-1px;margin:0;padding:6px 9px;background:var(--ink);color:var(--paper);font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase}
.kp-pt-form label{display:flex;flex-direction:column;gap:7px}
.kp-pt-form label span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-pt-form input{border:0;border-bottom:1px solid rgba(19,17,15,.3);background:transparent;padding:6px 0 8px;font-family:var(--serif);font-size:15px;color:var(--ink);outline:none;border-radius:0;transition:border-color .3s}
.kp-pt-form input:focus{border-color:var(--ink)}
.kp-pt-form input::placeholder{color:rgba(19,17,15,.3)}
.kp-pt-form .btn{align-self:flex-start;margin-top:4px;cursor:pointer}
.kp-pt-note{margin:0;font-family:var(--serif);font-size:11px;line-height:1.5;color:var(--muted)}
.kp-pt-alt{margin:0}
/* signed in */
.kp-pt-app{display:grid;grid-template-columns:200px 1fr;gap:clamp(30px,5vw,80px);padding-top:clamp(36px,4vw,56px)}
.kp-pt-side{position:sticky;top:calc(var(--kp-hdr,57px) + 28px);align-self:start;display:flex;flex-direction:column;gap:22px}
.kp-pt-who{margin:0;display:flex;flex-direction:column;gap:4px}
.kp-pt-co{font-family:var(--serif);font-size:16px}
.kp-pt-mail{font-family:var(--serif);font-size:11px;color:var(--muted);word-break:break-all}
.kp-pt-nav{display:flex;flex-direction:column;border-top:1px solid rgba(19,17,15,.14)}
.kp-pt-nav a{padding:10px 0;border-bottom:1px solid rgba(19,17,15,.14);font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .3s,padding .5s cubic-bezier(.16,1,.3,1)}
.kp-pt-nav a:hover{color:var(--ink)}
.kp-pt-nav a.on{color:var(--ink);padding-left:10px;box-shadow:inset 1px 0 0 var(--ink)}
.kp-pt-out{all:unset;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-pt-out:hover{color:var(--ink)}
.kp-pt-sample{margin:0;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(19,17,15,.38)}
.kp-pt-main{min-width:0}
.kp-pt-main.in{animation:kp-pt-in .6s cubic-bezier(.16,1,.3,1)}
@keyframes kp-pt-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.kp-pt-head{margin-bottom:clamp(26px,3vw,40px)}
.kp-pt-kicker{margin:0 0 10px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-pt-kicker a{color:inherit;text-decoration:none}
.kp-pt-kicker a:hover{color:var(--ink)}
.kp-pt-head h2{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(28px,3vw,42px);line-height:1.05;letter-spacing:-.01em}
.kp-pt-meta{margin:10px 0 0;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-pt-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(19,17,15,.14);border-bottom:1px solid rgba(19,17,15,.14);margin-bottom:clamp(30px,4vw,50px)}
.kp-pt-stats div{padding:18px 18px 20px 0;display:flex;flex-direction:column;gap:8px}
.kp-pt-stats div+div{padding-left:18px;border-left:1px solid rgba(19,17,15,.14)}
.kp-pt-stats b{font-family:var(--serif);font-weight:400;font-size:clamp(20px,2vw,28px);line-height:1.1}
.kp-pt-stats span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-pt-block{margin-bottom:clamp(30px,4vw,48px)}
.kp-pt-block h3{margin:0 0 12px;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-pt-empty{margin:0;font-family:var(--serif);font-size:13px;color:var(--muted)}
.kp-pt-todo,.kp-pt-approvals,.kp-pt-items,.kp-pt-docs,.kp-pt-log{list-style:none;margin:0;padding:0;border-top:1px solid rgba(19,17,15,.14)}
.kp-pt-todo a{display:flex;flex-direction:column;gap:4px;padding:13px 0;border-bottom:1px solid rgba(19,17,15,.14);color:var(--ink);text-decoration:none}
.kp-pt-todo .w,.kp-pt-approvals .w{font-family:var(--serif);font-size:15px}
.kp-pt-todo .m,.kp-pt-approvals .m{font-family:var(--serif);font-size:11px;color:var(--muted)}
.kp-pt-todo a:hover .w{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.kp-pt-todo .w::after{content:"\2192";font-family:var(--sans);font-size:.6em;margin-left:.5em;color:var(--muted)}
/* order rows */
.kp-pt-orders{border-top:1px solid rgba(19,17,15,.14)}
.kp-pt-thead,.kp-pt-order{display:grid;grid-template-columns:90px 1.3fr 1fr 1.2fr;column-gap:16px;align-items:baseline}
.kp-pt-thead{padding:10px 0;border-bottom:1px solid rgba(19,17,15,.14);font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(19,17,15,.45)}
.kp-pt-order{padding:16px 0 18px;border-bottom:1px solid rgba(19,17,15,.14);color:var(--ink);text-decoration:none;transition:background .3s}
.kp-pt-order:hover{background:rgba(19,17,15,.025)}
.kp-pt-order .id{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em}
.kp-pt-order .pj{font-family:var(--serif);font-size:16px}
.kp-pt-order .pj::after{content:"\2192";font-family:var(--sans);font-size:.6em;margin-left:.5em;color:var(--muted);display:inline-block;transition:transform .6s cubic-bezier(.16,1,.3,1)}
.kp-pt-order:hover .pj::after{transform:translateX(4px);color:var(--ink)}
.kp-pt-order .st,.kp-pt-order .eta{font-family:var(--serif);font-size:12px;color:#4d4740}
.kp-pt-order .kp-pt-track{grid-column:1/-1;margin-top:14px}
/* progress tracker */
.kp-pt-track{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);position:relative}
.kp-pt-track li{position:relative;padding-top:14px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(19,17,15,.4)}
.kp-pt-track li::before{content:"";position:absolute;left:0;right:0;top:3px;height:1px;background:rgba(19,17,15,.16)}
.kp-pt-track li.done::before{background:var(--ink)}
.kp-pt-track li.now::before{background:linear-gradient(90deg,var(--ink) 0 50%,rgba(19,17,15,.16) 50%)}
.kp-pt-track i{position:absolute;left:0;top:0;width:7px;height:7px;border-radius:50%;background:var(--paper);box-shadow:inset 0 0 0 1px rgba(19,17,15,.3);z-index:1}
.kp-pt-track li.done i{background:var(--ink);box-shadow:none}
.kp-pt-track li.now i{background:var(--ink);box-shadow:0 0 0 4px rgba(19,17,15,.1)}
.kp-pt-track li.done,.kp-pt-track li.now{color:var(--ink)}
.kp-pt-track span{display:block;padding-right:8px}
.kp-pt-track.big li{padding-top:18px;font-size:8.5px}
.kp-pt-track.big i{width:9px;height:9px;top:-1px}
.kp-pt-track.big a{color:inherit;text-decoration:none;display:block;padding-right:8px}
.kp-pt-track.big a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.kp-pt-now{margin:18px 0 0;font-family:var(--serif);font-size:13px;color:var(--muted)}
.kp-pt-now b{font-weight:400;color:var(--ink)}
/* approvals, items, documents, log */
.kp-pt-approvals li{display:grid;grid-template-columns:1fr auto;column-gap:20px;row-gap:3px;align-items:center;padding:14px 0;border-bottom:1px solid rgba(19,17,15,.14)}
.kp-pt-approvals .m{grid-column:1}
.kp-pt-approvals .btn,.kp-pt-tick{grid-column:2;grid-row:1/3}
.kp-pt-approvals .btn{cursor:pointer}
.kp-pt-tick{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-pt-tick::before{content:"\2713";margin-right:6px;color:var(--ink)}
.kp-pt-approvals li.ok .w{color:var(--muted)}
.kp-pt-items li{display:grid;grid-template-columns:64px 1fr auto;column-gap:18px;align-items:center;padding:12px 0;border-bottom:1px solid rgba(19,17,15,.14)}
.kp-pt-items .img{grid-row:1/3;width:64px;height:64px;background:var(--paper2,#ebe5da);display:grid;place-items:center;overflow:hidden}
.kp-pt-items .img img{width:86%;height:86%;object-fit:contain}
.kp-pt-items .n{font-family:var(--serif);font-size:15px;align-self:end}
.kp-pt-items .q{grid-row:1/3;grid-column:3;font-family:var(--serif);font-size:13px;color:var(--muted)}
.kp-pt-items .no{grid-column:2;font-family:var(--serif);font-size:11px;color:var(--muted);align-self:start}
.kp-pt-docs li{display:grid;grid-template-columns:1.3fr 1.2fr 100px auto;column-gap:16px;align-items:center;padding:11px 0;border-bottom:1px solid rgba(19,17,15,.14)}
.kp-pt-docs.compact li{grid-template-columns:1fr auto auto}
.kp-pt-docs .n{font-family:var(--serif);font-size:14px}
.kp-pt-docs .o,.kp-pt-docs .d{font-family:var(--serif);font-size:11px;color:var(--muted)}
.kp-pt-docs .o a{color:inherit}
.kp-pt-dl{all:unset;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid currentColor;padding-bottom:2px;justify-self:end}
.kp-pt-dl:disabled{color:var(--muted);cursor:default}
.kp-pt-two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,56px)}
.kp-pt-log li{display:grid;grid-template-columns:60px 1fr;column-gap:14px;padding:10px 0;border-bottom:1px solid rgba(19,17,15,.14);font-family:var(--serif);font-size:12px}
.kp-pt-log .d{color:var(--muted)}
.kp-pt-help{margin:8px 0 0;font-family:var(--serif);font-size:13px;color:var(--muted);display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}
.kp-pt-dl-list{margin:0;border-top:1px solid rgba(19,17,15,.14)}
.kp-pt-dl-list div{display:grid;grid-template-columns:200px 1fr;column-gap:24px;padding:16px 0;border-bottom:1px solid rgba(19,17,15,.14)}
.kp-pt-dl-list dt{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:4px}
.kp-pt-dl-list dd{margin:0;font-family:var(--serif);font-size:14px;line-height:1.6}
@media (max-width:860px){
  .kp-pt-signin{grid-template-columns:1fr}
  .kp-pt-app{grid-template-columns:1fr;gap:26px}
  .kp-pt-side{position:static;gap:14px}
  .kp-pt-nav{flex-direction:row;flex-wrap:wrap;border-top:0;border-bottom:1px solid rgba(19,17,15,.14);gap:0 18px}
  .kp-pt-nav a{border-bottom:0;padding:10px 0}
  .kp-pt-nav a.on{padding-left:0;box-shadow:inset 0 -1px 0 var(--ink)}
  .kp-pt-stats{grid-template-columns:1fr}
  .kp-pt-stats div+div{padding-left:0;border-left:0;border-top:1px solid rgba(19,17,15,.14)}
  .kp-pt-thead{display:none}
  .kp-pt-order{grid-template-columns:1fr auto;row-gap:4px}
  .kp-pt-order .pj{grid-column:1/-1;grid-row:1}
  .kp-pt-track span,.kp-pt-track.big a{font-size:7px;letter-spacing:.06em;word-break:break-word}
  .kp-pt-two{grid-template-columns:1fr}
  .kp-pt-docs li{grid-template-columns:1fr auto}
  .kp-pt-docs .o,.kp-pt-docs .d{grid-column:1}
  .kp-pt-docs .kp-pt-dl{grid-row:1/4;grid-column:2}
  .kp-pt-dl-list div{grid-template-columns:1fr;row-gap:6px}
}
.kp-pt-signin[hidden],.kp-pt-app[hidden]{display:none!important}

/* =========================================================
   Typesetting: even lines everywhere
   Headings and short lines are balanced so each line carries a similar amount;
   running text avoids leaving a single word on its last line.
   ========================================================= */
h1,h2,h3,h4,h5,.big,.lede h2,.kp-proc-text h2,.kp-proc-quote,.kp-entry-statement h1,
figcaption,.kp-cap-list li,.kp-proc-list li,.step p,.kp-big .bd,.kp-tl-step p,.kp-story-note h3,
.kp-pt-head h2,.kp-pt-lede,.kp-search-list .s,.editorial-product-meta p,.product-card p,
.quote-box h3,.page-hero .lede p,.kp-cap-next b,.kp-chip-label{text-wrap:balance}
p,li,dd,blockquote,.copy p,.kp-proc-text p,.kp-pt-note{text-wrap:pretty}
.step p{max-width:300px}
.kp-proc-text h2{max-width:20ch}
.project-title-block{grid-template-columns:1fr!important}
.project-index-meta{grid-template-columns:1fr auto!important}
@media (max-width:860px){ .project-index-meta{grid-template-columns:1fr!important} }
/* portal: messages and uploads */
.kp-pt-by{font-style:normal;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-left:8px}
.kp-pt-upload{display:flex;align-items:baseline;gap:12px;margin-top:14px;cursor:pointer}
.kp-pt-upload input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.kp-pt-upload span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid currentColor;padding-bottom:3px}
.kp-pt-upload span::before{content:"+ ";}
.kp-pt-upload em{font-style:normal;font-family:var(--serif);font-size:11px;color:var(--muted)}
.kp-pt-upload:focus-within span{outline:1px solid var(--ink);outline-offset:3px}
.kp-pt-msgs{list-style:none;margin:0 0 14px;padding:0;border-top:1px solid rgba(19,17,15,.14);max-width:720px}
.kp-pt-msgs li{padding:12px 0;border-bottom:1px solid rgba(19,17,15,.14)}
.kp-pt-msgs li.staff{padding-left:0}
.kp-pt-msgs li.client{padding-left:clamp(20px,6vw,80px)}
.kp-pt-msgs li.none{font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-pt-msgs .who{display:block;margin-bottom:5px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-pt-msgs p{margin:0;font-family:var(--serif);font-size:13px;line-height:1.55}
.kp-pt-say{display:flex;gap:14px;align-items:flex-end;max-width:720px}
.kp-pt-say textarea{flex:1;min-width:0;resize:vertical;border:0;border-bottom:1px solid rgba(19,17,15,.3);background:transparent;padding:6px 0;font-family:var(--serif);font-size:13px;line-height:1.5;color:var(--ink);outline:none;border-radius:0}
.kp-pt-say textarea:focus{border-color:var(--ink)}
.kp-pt-say .btn{cursor:pointer;flex:none}

/* =========================================================
   Staff area
   ========================================================= */
.kp-st-ms{margin:0;font-family:var(--serif);font-size:14px;line-height:1.5}
.kp-staff-link{color:inherit;text-decoration:none;opacity:.7}
.kp-staff-link:hover{opacity:1;text-decoration:underline}
.kp-st-badge{display:inline-grid;place-items:center;min-width:14px;height:14px;margin-left:6px;padding:0 4px;border-radius:7px;background:var(--ink);color:var(--paper);font-weight:400;font-size:7.5px;letter-spacing:0;vertical-align:1px}
.kp-st-badge[hidden]{display:none}
.kp-st-reset{opacity:.7}
.kp-st-headrow{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.kp-st-headrow h3{margin:0}
.kp-st-toast{margin:0 0 22px;padding:11px 14px;border:1px solid rgba(19,17,15,.18);background:rgba(255,253,248,.5);font-family:var(--serif);font-size:12.5px;animation:kp-pt-in .5s cubic-bezier(.16,1,.3,1)}
.kp-st-toast::before{content:"\2713";margin-right:8px}
.kp-st-order .pj em{display:block;font-style:normal;font-family:var(--serif);font-size:11px;color:var(--muted);margin-top:2px}
.kp-st-order .st b{font-weight:400;color:var(--ink);border-bottom:1px solid currentColor}
.kp-st-cthead,.kp-st-crow{grid-template-columns:1.2fr 2fr 100px!important}
.kp-st-crow .pj::after{content:none}
/* board */
.kp-st-board{display:grid;grid-template-columns:repeat(6,1fr);border-top:1px solid rgba(19,17,15,.14)}
.kp-st-board>div{padding:12px 12px 16px 0;min-height:90px}
.kp-st-board>div+div{padding-left:12px;border-left:1px solid rgba(19,17,15,.14)}
.kp-st-board .h{margin:0 0 10px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-st-board a{display:block;padding:8px 0;border-top:1px solid rgba(19,17,15,.08);color:var(--ink);text-decoration:none}
.kp-st-board a b{display:block;font-weight:400;font-family:var(--serif);font-size:13px}
.kp-st-board a span{font-family:var(--serif);font-size:10.5px;color:var(--muted)}
.kp-st-board a:hover b{text-decoration:underline;text-underline-offset:3px}
.kp-st-board .e{margin:0;color:rgba(19,17,15,.3)}
.kp-st-act a{color:inherit}
/* stage control */
.kp-st-steps{display:grid;grid-template-columns:repeat(6,1fr);gap:0;border-top:1px solid rgba(19,17,15,.14);border-bottom:1px solid rgba(19,17,15,.14)}
.kp-st-steps button{all:unset;position:relative;cursor:pointer;padding:24px 10px 14px 0;font-family:var(--serif);font-size:13px;color:rgba(19,17,15,.45);transition:color .3s}
.kp-st-steps button+button{padding-left:10px;border-left:1px solid rgba(19,17,15,.08)}
.kp-st-steps button span{display:block;margin-bottom:4px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em}
.kp-st-steps button i{position:absolute;top:10px;left:auto;width:7px;height:7px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(19,17,15,.3)}
.kp-st-steps button.done,.kp-st-steps button.now{color:var(--ink)}
.kp-st-steps button.done i{background:var(--ink);box-shadow:none}
.kp-st-steps button.now i{background:var(--ink);box-shadow:0 0 0 4px rgba(19,17,15,.1)}
.kp-st-steps button.now{background:rgba(19,17,15,.035)}
.kp-st-steps button:hover{color:var(--ink);background:rgba(19,17,15,.025)}
.kp-st-steps button:focus-visible{outline:1px solid var(--ink);outline-offset:-1px}
.kp-st-row{margin-top:12px}
.kp-st-link{all:unset;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid currentColor;padding-bottom:3px}
.kp-st-danger .kp-st-link{color:#8a3b2e}
/* forms */
.kp-st-form2{display:flex;flex-direction:column;align-items:flex-start;gap:16px;max-width:860px}
.kp-st-inline{margin-top:16px;padding-top:16px;border-top:1px dashed rgba(19,17,15,.14)}
.kp-st-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px 22px;width:100%}
.kp-st-grid1{grid-template-columns:1fr}
.kp-st-f{display:flex;flex-direction:column;gap:6px}
.kp-st-f span{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-st-f input,.kp-st-f select{border:0;border-bottom:1px solid rgba(19,17,15,.3);background:transparent;padding:5px 0 7px;font-family:var(--serif);font-size:14px;color:var(--ink);outline:none;border-radius:0;-webkit-appearance:none;appearance:none;min-width:0}
.kp-st-f select{background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='5'%3E%3Cpath d='M.5.5l4 4 4-4' fill='none' stroke='%2313110f'/%3E%3C/svg%3E") right 2px center no-repeat;padding-right:16px}
.kp-st-f input:focus,.kp-st-f select:focus{border-color:var(--ink)}
.kp-st-f input::placeholder{color:rgba(19,17,15,.3)}
.kp-st-dim{opacity:.35}
.kp-st-check{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-st-check input{accent-color:#13110f}
.kp-st-form2 .btn{cursor:pointer}
.kp-st-x{all:unset;cursor:pointer;margin-left:10px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid transparent}
.kp-st-x:hover{color:#8a3b2e;border-color:currentColor}
.kp-pt-approvals .kp-st-x{grid-column:2;grid-row:1/3;margin:0}
.kp-st-docs li{grid-template-columns:1fr 110px 50px auto!important}
.kp-st-drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:14px;padding:26px 16px;border:1px dashed rgba(19,17,15,.28);cursor:pointer;text-align:center;transition:background .3s,border-color .3s}
.kp-st-drop input{position:absolute;width:1px;height:1px;opacity:0}
.kp-st-drop span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase}
.kp-st-drop em{font-style:normal;font-family:var(--serif);font-size:11px;color:var(--muted)}
.kp-st-drop:hover,.kp-st-drop.over{background:rgba(19,17,15,.03);border-color:var(--ink)}
.kp-st-drop:focus-within{outline:1px solid var(--ink);outline-offset:2px}
.kp-st-msgs li.client{padding-left:clamp(20px,6vw,80px)}
.kp-st-inbox li.new .w{font-weight:400}
.kp-st-inbox li.new a{box-shadow:inset 2px 0 0 var(--ink);padding-left:12px}
.kp-st-inbox .m b{font-weight:400;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
@media (max-width:860px){
  .kp-st-board{grid-template-columns:1fr 1fr}
  .kp-st-board>div+div{border-left:0;padding-left:0}
  .kp-st-board>div:nth-child(even){padding-left:12px;border-left:1px solid rgba(19,17,15,.14)}
  .kp-st-board>div{border-bottom:1px solid rgba(19,17,15,.08)}
  .kp-st-steps{grid-template-columns:repeat(3,1fr)}
  .kp-st-steps button:nth-child(4){padding-left:0;border-left:0}
  .kp-st-cthead{display:none}
  .kp-st-crow{grid-template-columns:1fr auto!important}
  .kp-st-crow .st{grid-column:1/-1}
  .kp-st-docs li{grid-template-columns:1fr auto!important}
}
/* staff + portal form fixes: keep the site's general form styles out */
.kp-portal .kp-st-check{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:8px;width:auto;margin:0;font-family:var(--serif);font-size:12px;letter-spacing:0;text-transform:none;color:var(--muted)}
.kp-portal .kp-st-check input{width:13px!important;height:13px!important;margin:0;padding:0;flex:none}
.kp-portal .kp-pt-say textarea{height:auto!important;min-height:40px!important;max-height:200px;padding:8px 0!important;margin:0!important;border:0!important;border-bottom:1px solid rgba(19,17,15,.3)!important;background:transparent!important;font-size:13px!important}
.kp-portal .kp-pt-say textarea:focus{border-bottom-color:var(--ink)!important}
.kp-portal .kp-st-f input,.kp-portal .kp-st-f select{height:auto!important;margin:0!important;border:0!important;border-bottom:1px solid rgba(19,17,15,.3)!important;background-color:transparent!important;padding:5px 0 7px!important}
.kp-portal .kp-st-f select{padding-right:16px!important}
.kp-portal .kp-st-f input:focus,.kp-portal .kp-st-f select:focus{border-bottom-color:var(--ink)!important}
.footer-bottom span:last-child{white-space:nowrap}
.footer-bottom .kp-staff-link{font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}
.footer-bottom .kp-staff-link{display:inline!important;margin:0!important;padding:0!important}
.kp-portal .kp-pt-upload em,.kp-portal .kp-st-drop em{text-transform:none!important;letter-spacing:0!important;font-size:11px!important;font-family:var(--serif)!important}
.kp-pt-alt{display:flex;flex-wrap:wrap;gap:12px 26px}

/* =========================================================
   Portal + staff: refined app layout (V75)
   ========================================================= */
html.kp-app-on .breadcrumb,html.kp-app-on .footer{display:none}
.kp-app[hidden]{display:none!important}
.kp-app{--a-line:rgba(19,17,15,.12);--a-line2:rgba(19,17,15,.2);--a-card:rgba(255,253,248,.55);min-height:calc(100vh - 57px);display:flex;flex-direction:column;margin:0 calc(var(--pad,24px) * -1)}
.kp-portal:has(.kp-app:not([hidden])){padding-bottom:0}
/* app bar */
.kp-app-bar{position:sticky;top:var(--kp-hdr,57px);z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;height:54px;padding:0 var(--pad,24px);background:rgba(243,239,231,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--a-line)}
.kp-app-who{display:flex;align-items:baseline;gap:12px;min-width:0}
.kp-app-label{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.kp-app-co{font-weight:400;font-family:var(--serif);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-app-tabs{display:flex;gap:30px;height:100%}
.kp-app-tabs a{position:relative;display:flex;align-items:center;gap:6px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .3s}
.kp-app-tabs a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--ink);transform:scaleX(0);transition:transform .5s cubic-bezier(.16,1,.3,1)}
.kp-app-tabs a:hover{color:var(--ink)}
.kp-app-tabs a.on{color:var(--ink)}
.kp-app-tabs a.on::after{transform:none}
.kp-app-badge{display:inline-grid;place-items:center;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:var(--ink);color:var(--paper);font-weight:400;font-size:8.5px;letter-spacing:0}
.kp-app-badge[hidden]{display:none}
.kp-app-me{display:flex;justify-content:flex-end;align-items:center;gap:18px;min-width:0}
.kp-app-mail{font-family:var(--serif);font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-app-out,.kp-app-reset{all:unset;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);white-space:nowrap}
.kp-app-reset{color:var(--muted)}
.kp-app-out:hover,.kp-app-reset:hover{text-decoration:underline;text-underline-offset:3px}
.kp-app-main{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:clamp(36px,5vw,64px) var(--pad,24px) 80px}
.kp-app-main.in{animation:kp-pt-in .55s cubic-bezier(.16,1,.3,1)}
.kp-app-foot{display:flex;justify-content:space-between;gap:20px;padding:18px var(--pad,24px);border-top:1px solid var(--a-line);font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-app-foot a{color:inherit}
/* headings */
.kp-a-back{display:inline-block;margin-bottom:20px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-decoration:none}
.kp-a-back::before{content:"\2190";margin-right:8px;font-size:9.5px}
.kp-a-back:hover{color:var(--ink)}
.kp-a-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:clamp(26px,3vw,38px)}
.kp-a-kicker{margin:0 0 10px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-a-kicker a{color:inherit}
.kp-a-head h1{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.4vw,46px);line-height:1.02;letter-spacing:-.015em}
.kp-a-meta{display:flex;align-items:center;gap:12px;margin:14px 0 0;font-family:var(--serif);font-size:13px;color:var(--muted)}
.kp-a-actions{display:flex;align-items:center;gap:22px}
.kp-a-sec{margin-bottom:clamp(34px,4vw,48px)}
.kp-a-sec h2,.kp-a-label{margin:0 0 14px;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-a-sec h2 .kp-a-dim{margin-left:6px}
.kp-a-sechead{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.kp-a-dim{color:var(--muted);font-weight:400}
.kp-a-label .kp-a-dim{margin-left:8px;opacity:.7;text-transform:none;letter-spacing:0;font-family:var(--serif);font-size:11px}
.kp-a-link{all:unset;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid currentColor;padding-bottom:2px;white-space:nowrap}
.kp-a-link:hover{opacity:.65}
.kp-a-empty{margin:0;padding:22px 0;border-top:1px solid var(--a-line);font-family:var(--serif);font-size:13px;color:var(--muted)}
.kp-a-note{margin:24px 0 0;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-a-toast{margin:0 0 24px;padding:12px 16px;border:1px solid var(--a-line2);background:var(--a-card);font-family:var(--serif);font-size:13px;animation:kp-pt-in .5s cubic-bezier(.16,1,.3,1)}
.kp-a-toast::before{content:"\2713";margin-right:10px}
/* chips + progress */
.kp-a-chip{display:inline-flex;align-items:center;height:20px;padding:0 9px;border:1px solid var(--a-line2);border-radius:10px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);white-space:nowrap}
.kp-a-chip.done{color:var(--muted)}
.kp-a-chip.hot,em.hot{background:var(--ink);border-color:var(--ink);color:var(--paper)}
em.hot{display:inline-grid;place-items:center;min-width:15px;height:15px;padding:0 4px;border-radius:8px;font-style:normal;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:0}
.kp-a-prog{display:grid;grid-template-columns:repeat(6,1fr);gap:3px}
.kp-a-prog i{height:3px;background:rgba(19,17,15,.12)}
.kp-a-prog i.done{background:var(--ink)}
.kp-a-prog i.now{background:linear-gradient(90deg,var(--ink) 0 55%,rgba(19,17,15,.12) 55%)}
.kp-a-progress{margin-bottom:clamp(26px,3vw,36px)}
.kp-a-progress .kp-a-prog i{height:4px}
.kp-a-steps{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:3px}
.kp-a-steps a{display:block;font-family:var(--serif);font-size:12px;color:rgba(19,17,15,.4);text-decoration:none;line-height:1.3}
.kp-a-steps span{display:block;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;margin-bottom:3px}
.kp-a-steps li.done a,.kp-a-steps li.now a{color:var(--ink)}
.kp-a-steps li.now a{font-weight:400;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.kp-a-steps a:hover{color:var(--ink)}
/* cards */
.kp-a-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.kp-a-card{display:flex;flex-direction:column;gap:8px;padding:20px 20px 18px;border:1px solid var(--a-line);background:var(--a-card);color:var(--ink);text-decoration:none;transition:border-color .3s,transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s}
a.kp-a-card:hover{border-color:var(--a-line2);transform:translateY(-2px);box-shadow:0 14px 30px -22px rgba(19,17,15,.35)}
.kp-a-ocard .top{display:flex;justify-content:space-between;align-items:center}
.kp-a-ocard .id,.kp-a-row .id{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;color:var(--muted)}
.kp-a-ocard .pj,.kp-a-ccard .pj{margin-top:6px;font-family:var(--serif);font-size:21px;line-height:1.15}
.kp-a-ocard .eta,.kp-a-ccard .m{font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-a-ocard .kp-a-prog{margin-top:10px}
.kp-a-ocard .flag{margin-top:6px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.kp-a-ocard .flag::before{content:"";display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:var(--ink);vertical-align:1px}
.kp-a-ccard .foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--a-line);font-family:var(--serif);font-size:12px}
.kp-a-quick{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.kp-a-quick .kp-a-card{flex-direction:row;align-items:baseline;gap:10px}
.kp-a-quick b{font-weight:400;font-family:var(--serif);font-size:26px}
.kp-a-quick span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
/* attention block */
.kp-a-attn{padding:22px 22px 8px;border:1px solid var(--ink);background:var(--a-card)}
.kp-a-attn .kp-a-list{border-top:0}
.kp-a-attn .kp-a-list li:last-child{border-bottom:0}
/* lists */
.kp-a-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--a-line)}
.kp-a-list>li{display:flex;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--a-line)}
.kp-a-list>li>div{flex:1;min-width:0}
.kp-a-list .w{margin:0;font-family:var(--serif);font-size:15px;line-height:1.3}
.kp-a-list .m{margin:3px 0 0;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-a-list .m a{color:inherit}
.kp-a-appr.ok .w{color:var(--muted)}
.kp-a-tick{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-a-tick::before{content:"\2713";margin-right:6px;color:var(--ink)}
.kp-a-list .btn{cursor:pointer;flex:none}
.kp-a-item .img{flex:none;width:56px;height:56px;display:grid;place-items:center;background:#ebe5da}
.kp-a-item .img img{width:86%;height:86%;object-fit:contain}
.kp-a-item .q{font-family:var(--serif);font-size:14px;color:var(--muted);flex:none}
.kp-a-doc .ic{flex:none;width:40px;height:48px;display:grid;place-items:center;border:1px solid var(--a-line2);font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.1em;color:var(--muted)}
.kp-a-x{all:unset;cursor:pointer;flex:none;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-a-x:hover{color:#8a3b2e;text-decoration:underline;text-underline-offset:3px}
.kp-a-inrow{padding:0!important}
.kp-a-inrow a{flex:1;display:flex;align-items:center;gap:16px;padding:14px 0;color:var(--ink);text-decoration:none}
.kp-a-inrow a>div{flex:1;min-width:0}
.kp-a-inrow .k{flex:none;width:76px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-a-inrow a:hover .w{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.kp-a-inrow.new .k{color:var(--ink)}
.kp-a-person .kp-a-chip{flex:none}
/* rows (staff orders) */
.kp-a-rows{border-top:1px solid var(--a-line)}
.kp-a-row{display:grid;grid-template-columns:76px minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr);column-gap:18px;row-gap:12px;align-items:center;padding:16px 0 18px;border-bottom:1px solid var(--a-line);color:var(--ink);text-decoration:none;transition:background .3s}
.kp-a-row:hover{background:rgba(19,17,15,.022)}
.kp-a-row .pj b{display:block;font-weight:400;font-family:var(--serif);font-size:16px}
.kp-a-row .pj em{font-style:normal;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-a-row .st{display:flex;align-items:center;gap:8px}
.kp-a-row .eta{font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-a-row .kp-a-prog{grid-column:2/-1}
.kp-a-row .st em.hot{width:auto;padding:0 7px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.1em;text-transform:uppercase}
/* toolbar, tabs, search */
.kp-a-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.kp-a-toolbar .kp-a-subtabs{margin:0;border:0}
.kp-a-search{width:min(280px,100%);border:0;border-bottom:1px solid var(--a-line2);background:transparent;padding:6px 0;font-family:var(--serif);font-size:13px;color:var(--ink);outline:none;border-radius:0;-webkit-appearance:none;appearance:none}
.kp-a-search:focus{border-color:var(--ink)}
.kp-a-search::placeholder{color:rgba(19,17,15,.35)}
.kp-a-subtabs{display:flex;gap:26px;overflow-x:auto;scrollbar-width:none;margin-bottom:26px;border-bottom:1px solid var(--a-line)}
.kp-a-subtabs::-webkit-scrollbar{display:none}
.kp-a-subtabs a{position:relative;flex:none;display:flex;align-items:center;gap:6px;padding:0 0 12px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-decoration:none}
.kp-a-subtabs a em{font-style:normal;color:rgba(19,17,15,.4)}
.kp-a-subtabs a:hover{color:var(--ink)}
.kp-a-subtabs a.on{color:var(--ink)}
.kp-a-subtabs a.on::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--ink)}
.kp-a-toolbar .kp-a-subtabs a{padding-bottom:6px}
.kp-a-tabbody{animation:kp-pt-in .45s cubic-bezier(.16,1,.3,1)}
.kp-a-latest{margin:0;padding:16px 0;border-top:1px solid var(--a-line);border-bottom:1px solid var(--a-line);font-family:var(--serif);font-size:15px}
.kp-a-latest .kp-a-dim{margin-right:14px;font-size:12px}
/* stats + board */
.kp-a-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:clamp(30px,4vw,44px)}
.kp-a-stats a{display:flex;flex-direction:column;gap:8px;padding:18px 20px;border:1px solid var(--a-line);background:var(--a-card);color:var(--ink);text-decoration:none;transition:border-color .3s}
.kp-a-stats a:hover{border-color:var(--a-line2)}
.kp-a-stats b{font-weight:400;font-family:var(--serif);font-size:30px;line-height:1}
.kp-a-stats span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-a-board{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.kp-a-board>div{min-height:110px;padding:12px;border:1px solid var(--a-line);background:rgba(255,253,248,.3)}
.kp-a-board .h{margin:0 0 10px;font-family:var(--serif);font-size:12px;color:var(--ink)}
.kp-a-board .h span{display:block;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;color:var(--muted);margin-bottom:3px}
.kp-a-board a{display:block;margin-top:6px;padding:9px 10px;border:1px solid var(--a-line);background:var(--paper);color:var(--ink);text-decoration:none;transition:border-color .3s}
.kp-a-board a:hover{border-color:var(--ink)}
.kp-a-board a b{display:block;font-weight:400;font-family:var(--serif);font-size:13px;line-height:1.25}
.kp-a-board a span{font-family:var(--serif);font-size:10.5px;color:var(--muted)}
.kp-a-board .e{margin:0;color:rgba(19,17,15,.25)}
/* stage stepper */
.kp-a-stage{margin-bottom:28px}
.kp-a-stepper{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}
.kp-a-stepper button{all:unset;cursor:pointer;position:relative;padding:14px 12px 12px;border-top:3px solid rgba(19,17,15,.12);font-family:var(--serif);font-size:13px;line-height:1.25;color:rgba(19,17,15,.45);transition:color .3s,background .3s}
.kp-a-stepper button span{display:block;margin-bottom:4px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em}
.kp-a-stepper button.done{border-top-color:var(--ink);color:var(--ink)}
.kp-a-stepper button.now{border-top-color:var(--ink);color:var(--ink);background:var(--a-card);box-shadow:inset 0 0 0 1px var(--a-line)}
.kp-a-stepper button:hover{background:rgba(19,17,15,.04);color:var(--ink)}
.kp-a-stepper button:focus-visible{outline:1px solid var(--ink);outline-offset:2px}
/* forms */
.kp-a-panel{padding:24px;border:1px solid var(--a-line);background:var(--a-card);margin-bottom:28px}
.kp-a-form{display:flex;flex-direction:column;gap:20px}
.kp-a-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px 24px}
.kp-a-one{grid-template-columns:1fr}
.kp-a-field{display:flex;flex-direction:column;gap:7px;margin:0}
.kp-a-field span{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-app .kp-a-field input,.kp-app .kp-a-field select{height:auto!important;margin:0!important;width:100%;border:0!important;border-bottom:1px solid var(--a-line2)!important;background:transparent!important;padding:6px 0 8px!important;font-family:var(--serif)!important;font-size:14px!important;color:var(--ink);outline:none;border-radius:0!important;-webkit-appearance:none;appearance:none;box-shadow:none!important}
.kp-app .kp-a-field select{background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='5'%3E%3Cpath d='M.5.5l4 4 4-4' fill='none' stroke='%2313110f'/%3E%3C/svg%3E") right 2px center no-repeat!important;padding-right:18px!important}
.kp-app .kp-a-field input:focus,.kp-app .kp-a-field select:focus{border-bottom-color:var(--ink)!important}
.kp-a-field input::placeholder{color:rgba(19,17,15,.3)}
.kp-a-dimmed{opacity:.35}
.kp-a-formfoot{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.kp-a-formfoot .btn,.kp-a-say .btn{cursor:pointer}
.kp-app .kp-a-check{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:8px;margin:0;font-family:var(--serif);font-size:12px;color:var(--muted);text-transform:none;letter-spacing:0}
.kp-app .kp-a-check input{width:13px!important;height:13px!important;margin:0;accent-color:#13110f}
.kp-a-add{margin-top:16px}
.kp-a-add summary{display:inline-block;cursor:pointer;list-style:none;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid currentColor;padding-bottom:2px}
.kp-a-add summary::-webkit-details-marker{display:none}
.kp-a-add[open] summary{margin-bottom:16px;color:var(--muted);border-color:transparent}
.kp-a-add[open] .kp-a-form{padding:22px;border:1px solid var(--a-line);background:var(--a-card);animation:kp-pt-in .4s cubic-bezier(.16,1,.3,1)}
.kp-a-after{margin:22px 0 0}
.kp-a-danger{margin-top:40px;padding-top:20px;border-top:1px solid var(--a-line)}
.kp-a-danger .kp-a-link{color:#8a3b2e}
/* uploads */
.kp-a-drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:18px;padding:28px 16px;border:1px dashed var(--a-line2);cursor:pointer;text-align:center;transition:background .3s,border-color .3s}
.kp-a-drop input{position:absolute;width:1px;height:1px;opacity:0}
.kp-a-drop span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase}
.kp-a-drop span::before{content:"+ "}
.kp-a-drop em{font-style:normal!important;font-family:var(--serif)!important;font-size:12px!important;letter-spacing:0!important;text-transform:none!important;color:var(--muted)}
.kp-a-drop:hover,.kp-a-drop.over{background:var(--a-card);border-color:var(--ink)}
.kp-a-drop:focus-within{outline:1px solid var(--ink);outline-offset:2px}
/* messages */
.kp-a-msgs{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column;gap:12px;max-width:720px}
.kp-a-msgs li{max-width:82%;padding:12px 16px;border:1px solid var(--a-line);background:var(--a-card)}
.kp-a-msgs li.me{align-self:flex-end;background:rgba(19,17,15,.05)}
.kp-a-msgs li.none{max-width:none;border:0;background:none;padding:0;font-family:var(--serif);font-size:13px;color:var(--muted)}
.kp-a-msgs .who{margin:0 0 5px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-a-msgs p{margin:0;font-family:var(--serif);font-size:13.5px;line-height:1.55}
.kp-a-say{display:flex;gap:14px;align-items:flex-end;max-width:720px}
.kp-app .kp-a-say textarea{flex:1;min-width:0;height:auto!important;min-height:44px!important;resize:vertical;margin:0!important;border:0!important;border-bottom:1px solid var(--a-line2)!important;background:transparent!important;padding:8px 0!important;font-family:var(--serif)!important;font-size:13.5px!important;line-height:1.5;color:var(--ink);outline:none;border-radius:0!important;box-shadow:none!important}
.kp-app .kp-a-say textarea:focus{border-bottom-color:var(--ink)!important}
/* timeline */
.kp-a-timeline{list-style:none;margin:0;padding:0;border-left:1px solid var(--a-line2);margin-left:4px}
.kp-a-timeline li{position:relative;display:flex;align-items:baseline;gap:16px;padding:0 0 18px 22px;font-family:var(--serif);font-size:14px}
.kp-a-timeline li::before{content:"";position:absolute;left:-4px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--paper);box-shadow:inset 0 0 0 1px var(--ink)}
.kp-a-timeline li:first-child::before{background:var(--ink)}
.kp-a-timeline .d{flex:none;width:52px;font-size:12px;color:var(--muted)}
.kp-a-timeline li>span:nth-child(2){flex:1}
/* definition list */
.kp-a-dl{margin:0;border-top:1px solid var(--a-line)}
.kp-a-dl>div{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:18px 0;border-bottom:1px solid var(--a-line)}
.kp-a-dl dt{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:5px}
.kp-a-dl dd{margin:0;font-family:var(--serif);font-size:14px;line-height:1.7}
/* phones */
@media (max-width:860px){
  .kp-app-bar{grid-template-columns:1fr auto;grid-template-rows:auto auto;height:auto;row-gap:0;padding-top:10px}
  .kp-app-who{grid-column:1}
  .kp-app-me{grid-column:2}
  .kp-app-mail,.kp-app-reset{display:none}
  .kp-app-tabs{grid-column:1/-1;grid-row:2;gap:22px;height:40px;overflow-x:auto;scrollbar-width:none}
  .kp-app-tabs::-webkit-scrollbar{display:none}
  .kp-app-tabs a{flex:none}
  .kp-a-stats,.kp-a-quick{grid-template-columns:1fr}
  .kp-a-board{grid-template-columns:1fr 1fr}
  .kp-a-stepper{grid-template-columns:repeat(3,1fr)}
  .kp-a-steps{grid-template-columns:repeat(3,1fr);row-gap:10px}
  .kp-a-row{grid-template-columns:1fr auto}
  .kp-a-row .id{grid-column:1/-1}
  .kp-a-row .pj{grid-column:1}
  .kp-a-row .st{grid-column:2;grid-row:2}
  .kp-a-row .eta{grid-column:1/-1}
  .kp-a-row .kp-a-prog{grid-column:1/-1}
  .kp-a-list>li{flex-wrap:wrap}
  .kp-a-appr .btn{width:100%}
  .kp-a-dl>div{grid-template-columns:1fr;gap:6px}
  .kp-a-msgs li{max-width:92%}
  .kp-app-foot{flex-direction:column;gap:6px}
}
.kp-a-subtabs a em.hot{color:var(--paper)}

/* staff: confirm a stage change */
html.kp-modal-on{overflow:hidden}
.kp-modal{position:fixed;inset:0;z-index:500;display:grid;place-items:center;padding:20px;background:rgba(19,17,15,0);transition:background .25s ease}
.kp-modal.in{background:rgba(19,17,15,.28)}
.kp-modal-card{width:min(560px,100%);max-height:calc(100vh - 40px);max-height:calc(100svh - 40px);overflow:auto;padding:30px 30px 24px;background:var(--paper);border:1px solid rgba(19,17,15,.2);box-shadow:0 30px 60px -30px rgba(19,17,15,.45);opacity:0;transform:translateY(12px);transition:opacity .25s ease,transform .45s cubic-bezier(.16,1,.3,1)}
.kp-modal.in .kp-modal-card{opacity:1;transform:none}
.kp-modal-card h2{margin:0;font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.15;letter-spacing:-.01em;text-wrap:balance}
.kp-modal-from{display:flex;align-items:center;gap:10px;margin:14px 0 0;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-modal-from span{font-size:11px;color:var(--ink)}
.kp-modal-lede{margin:22px 0 10px;font-family:var(--serif);font-size:14px}
.kp-modal-list{list-style:none;margin:0;padding:0;border-top:1px solid rgba(19,17,15,.12)}
.kp-modal-list li{padding:12px 0;border-bottom:1px solid rgba(19,17,15,.12)}
.kp-modal-list label{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:12px;margin:0;cursor:pointer;font-family:var(--serif);font-size:14px;line-height:1.4;text-transform:none;letter-spacing:0;color:var(--ink)}
.kp-modal-list input{flex:none;width:15px!important;height:15px!important;margin:2px 0 0!important;accent-color:#13110f;cursor:pointer}
.kp-modal-list .s{font-style:normal;margin-left:6px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-modal-list .note{margin:5px 0 0 27px;font-family:var(--serif);font-size:11.5px;color:var(--muted)}
.kp-modal-list li.auto.ok .note::before{content:"\2713  ";color:var(--ink)}
.kp-modal-list li.auto.miss .note{color:#8a3b2e}
.kp-modal-list li.auto.miss .note::before{content:"!  ";font-weight:700}
.kp-modal-notify{margin-top:18px!important}
.kp-modal-foot{display:flex;justify-content:flex-end;align-items:center;gap:22px;margin-top:22px}
.kp-modal-foot .btn{cursor:pointer}
.kp-modal-foot .btn:disabled{opacity:.35;cursor:not-allowed;background:transparent!important;color:var(--ink)!important}
.kp-modal-left{margin:10px 0 0;text-align:right;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
@media (max-width:560px){ .kp-modal{align-items:end;padding:0} .kp-modal-card{width:100%;max-height:88svh;padding:24px 20px 20px} .kp-modal-foot{justify-content:space-between} }
@media (prefers-reduced-motion:reduce){ .kp-modal,.kp-modal-card{transition:none} }
.kp-modal .kp-a-check{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:8px;margin:0;font-family:var(--serif);font-size:12.5px;color:var(--muted);text-transform:none;letter-spacing:0}
.kp-modal .kp-a-check input{width:13px!important;height:13px!important;margin:0!important;accent-color:#13110f}

/* client: stages you can open, with what each needs */
.kp-a-stagebtns{display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin-top:8px}
.kp-a-stagebtns button{all:unset;cursor:pointer;padding:8px 6px 10px 0;font-family:var(--serif);font-size:12.5px;line-height:1.3;color:rgba(19,17,15,.42);border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.kp-a-stagebtns button span{display:block;margin-bottom:3px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em}
.kp-a-stagebtns button.done,.kp-a-stagebtns button.now{color:var(--ink)}
.kp-a-stagebtns button:hover{color:var(--ink)}
.kp-a-stagebtns button.sel{border-bottom-color:var(--ink)}
.kp-a-stagebtns button:focus-visible{outline:1px solid var(--ink);outline-offset:2px}
.kp-a-stagepanel{margin-top:-1px;padding:22px 24px 20px;border:1px solid rgba(19,17,15,.14);background:rgba(255,253,248,.55);animation:kp-pt-in .4s cubic-bezier(.16,1,.3,1)}
.kp-a-stagepanel:empty{display:none}
.kp-a-sp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.kp-a-sp-head .kp-a-kicker{margin-bottom:6px}
.kp-a-sp-head h3{margin:0;font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.1}
.kp-a-sp-head .lede{margin:6px 0 0;font-family:var(--serif);font-size:13px;color:var(--muted)}
.kp-a-sp-q{margin:0 0 8px;font-family:var(--serif);font-size:14px}
.kp-a-count{margin:0 0 10px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-a-gate{list-style:none;margin:0;padding:0;border-top:1px solid rgba(19,17,15,.12)}
.kp-a-gate li{display:flex;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid rgba(19,17,15,.12)}
.kp-a-gate li>div{flex:1;min-width:0}
.kp-a-gate li p{margin:0;font-family:var(--serif);font-size:14px;line-height:1.35}
.kp-a-gate li i{flex:none;width:16px;height:16px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(19,17,15,.35);display:grid;place-items:center}
.kp-a-gate li.done i{background:var(--ink);box-shadow:none}
.kp-a-gate li.done i::after{content:"";width:6px;height:3px;border-left:1.2px solid var(--paper);border-bottom:1.2px solid var(--paper);transform:translateY(-1px) rotate(-45deg)}
.kp-a-gate li.done p{color:var(--muted)}
.kp-a-gate .tag{flex:none;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-a-gate .tag.you{padding:4px 8px;border-radius:10px;background:var(--ink);color:var(--paper)}
.kp-a-sp-more{margin:16px 0 0}
/* staff: the next stage's checklist under the stage bar */
.kp-a-next{margin-top:16px;padding:16px 18px 6px;border:1px solid rgba(19,17,15,.12);background:rgba(255,253,248,.55)}
.kp-a-next .kp-a-label{margin-bottom:8px}
.kp-a-next ul{list-style:none;margin:0;padding:0}
.kp-a-next li{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 0;border-top:1px solid rgba(19,17,15,.08)}
.kp-a-next label{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;flex:1;min-width:220px;margin:0;cursor:pointer;font-family:var(--serif);font-size:13.5px;text-transform:none;letter-spacing:0;color:var(--ink)}
.kp-a-next input{width:14px!important;height:14px!important;margin:0!important;accent-color:#13110f;cursor:pointer}
.kp-a-next li.done label{color:var(--muted)}
.kp-a-next em{font-style:normal;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-a-next em.who{padding:3px 7px;border:1px solid rgba(19,17,15,.2);border-radius:9px}
.kp-a-next li:not(.done) em.auto{color:#8a3b2e;text-transform:none;letter-spacing:0;font-family:var(--serif);font-size:11.5px}
@media (max-width:860px){
  .kp-a-stagebtns{grid-template-columns:repeat(3,1fr)}
  .kp-a-stagepanel{padding:18px 16px}
  .kp-a-gate li{flex-wrap:wrap}
  .kp-a-gate .tag{margin-left:30px}
}
/* messages + automatic emails */
.kp-a-note-top{margin:-14px 0 22px}
.kp-a-mails li{align-items:flex-start}
.kp-a-mails .m{margin:0 0 4px!important}
.kp-a-mails .b{margin:6px 0 0;font-family:var(--serif);font-size:12.5px;line-height:1.5;color:#4d4740;white-space:pre-line}
.kp-a-mails .to{display:flex;flex-wrap:wrap;gap:4px 10px;margin:10px 0 0;font-family:var(--serif);font-size:11.5px;color:var(--muted)}
.kp-a-mails .to span{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);padding-top:2px}
.kp-a-mails .to span:nth-of-type(2){margin-left:14px}
.kp-modal-mail{margin:18px 0 0;font-family:var(--serif);font-size:12.5px;color:var(--muted)}
.kp-modal-mail::before{content:"\2709  ";color:var(--ink)}
.kp-a-emails{margin-top:34px}

/* form field hints (trade application) */
.kp-field-hint{display:block;margin-top:7px;font-size:11px;line-height:1.4;color:var(--muted,#7a7268)}
.field[hidden]{display:none!important}

/* ---------- languages ---------- */
html.kp-i18n-wait body{visibility:hidden;animation:kpI18nShow 0s 1.5s forwards}
@keyframes kpI18nShow{to{visibility:visible}}
.kp-lang{position:relative;display:inline-flex}
.kp-lang-btn{background:none;border:0;padding:0;cursor:pointer;font-family:var(--sans);color:inherit;text-transform:uppercase}
.kp-lang-menu{position:absolute;top:calc(100% + 14px);right:-14px;z-index:60;list-style:none;margin:0;padding:6px 0;min-width:132px;background:var(--paper,#f3efe7);border:1px solid var(--line,#d9d1c4);box-shadow:0 10px 30px rgba(19,17,15,.08)}
.kp-lang-menu[hidden]{display:none}
.kp-lang-menu button{display:block;width:100%;text-align:left;background:none;border:0;padding:9px 16px;font:inherit;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted,#777168);cursor:pointer}
.kp-lang-menu button:hover,.kp-lang-menu button:focus-visible{color:var(--ink,#13110f)}
.kp-lang-menu button[aria-current]{color:var(--ink,#13110f);text-decoration:underline;text-underline-offset:4px}
.kp-lang-mob{display:flex;gap:18px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line,#d9d1c4)}
.kp-lang-mob button{background:none;border:0;padding:0;font:inherit;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted,#777168);cursor:pointer}
.kp-lang-mob button[aria-current]{color:var(--ink,#13110f);text-decoration:underline;text-underline-offset:4px}
/* long German and French words: break cleanly rather than overflow */
html:lang(de) main, html:lang(fr) main, html:lang(it) main, html:lang(de) .footer, html:lang(fr) .footer, html:lang(it) .footer{overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}
/* wording that lives in the stylesheet */
html:lang(de) .process-grid a.step::after{content:"Ansehen \2192"}
html:lang(fr) .process-grid a.step::after{content:"Voir \2192"}
html:lang(it) .process-grid a.step::after{content:"Vedi \2192"}
html:lang(zh) .process-grid a.step::after{content:"查看 \2192"}
@media(max-width:760px){
  html:lang(de) .nav-actions:after{content:"Anfrage"}
  html:lang(fr) .nav-actions:after{content:"Demande"}
  html:lang(it) .nav-actions:after{content:"Richiesta"}
  html:lang(zh) .nav-actions:after{content:"咨询"}
}
@media(max-width:420px){
  html:lang(de) .footer-top, html:lang(fr) .footer-top, html:lang(it) .footer-top{column-gap:12px}
}
/* top menu: each item stays on one line; tighter spacing on smaller laptops */
.nav-links a{white-space:nowrap}
@media(max-width:1320px){ .nav-links{gap:16px} }
@media(max-width:1180px){ .nav-links{gap:12px} }

/* Simplified Chinese: Chinese typefaces after the Latin ones, so names and numbers keep the house style */
html:lang(zh){
  --serif:Georgia,'Times New Roman','Songti SC','STSong','Noto Serif SC','Source Han Serif SC','SimSun',serif;
  --sans:Arial,Helvetica,'PingFang SC','Hiragino Sans GB','Noto Sans SC','Microsoft YaHei',sans-serif;
}
html:lang(zh) body{line-break:strict;word-break:normal}
html:lang(zh) p, html:lang(zh) li{line-height:1.85}
/* Chinese characters need more size than the tiny uppercase labels used for Latin text */
html:lang(zh) .nav-links a, html:lang(zh) .utility-link, html:lang(zh) .enquire-btn{font-size:11px;letter-spacing:.06em}
html:lang(zh) .footer h4, html:lang(zh) .kp-cap-status, html:lang(zh) .breadcrumb{font-size:11px;letter-spacing:.06em}
html:lang(zh) .kp-lang-menu button{font-size:11px}

/* ---------- forms: tidy controls everywhere (dropdowns, number fields) ---------- */
.form-panel select{
  -webkit-appearance:none;appearance:none;border:0;border-bottom:1px solid rgba(19,17,15,.4);border-radius:0;
  background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23151412' stroke-width='1.1'/%3E%3C/svg%3E") no-repeat right 2px center;
  padding-right:22px;cursor:pointer
}
.form-panel input[type=number]{-moz-appearance:textfield;appearance:textfield}
.form-panel input[type=number]::-webkit-inner-spin-button,.form-panel input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* ---------- trade application ---------- */
.kp-tf .form-section{padding:38px 0 42px}
.kp-tf-head h2{margin:0 0 26px}
.kp-tf .fields{gap:30px 34px;align-items:start}
.kp-tf .field label,.kp-tf legend{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 4px;padding:0;color:var(--ink)}
.kp-tf input:not([type=radio]):not([type=checkbox]):not([type=file]),.kp-tf select{
  font-family:var(--serif);font-size:16px;line-height:1.3;padding:9px 0 10px;border-bottom:1px solid rgba(19,17,15,.28);transition:border-color .25s ease
}
.kp-tf select{padding-right:22px}
.kp-tf select:invalid{color:var(--muted)}
.kp-tf input::placeholder{color:rgba(19,17,15,.32)}
.kp-tf input:focus,.kp-tf select:focus{border-bottom-color:var(--ink);outline:none}
.kp-tf input:focus-visible,.kp-tf select:focus-visible{box-shadow:0 1px 0 0 var(--ink)}
.kp-opt{font-family:var(--serif);text-transform:none;letter-spacing:0;font-size:12px;color:var(--muted);margin-left:6px}
.kp-tf-head .kp-opt{font-size:13px}
.kp-tf .kp-field-hint{font-family:var(--serif)}

/* tap-to-select options */
.kp-pills-set{border:0;margin:0;padding:0;min-width:0}
.kp-tf legend{margin-bottom:12px}
.kp-pills{display:flex;flex-wrap:wrap;gap:8px}
.kp-tf .kp-pill{position:relative;display:inline-flex;margin:0;font-size:inherit;text-transform:none;letter-spacing:0;cursor:pointer}
.kp-pill input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer;border:0}
.kp-pill span{display:inline-block;padding:9px 16px 10px;border:1px solid rgba(19,17,15,.22);border-radius:999px;font-family:var(--serif);font-size:14px;line-height:1.2;color:var(--ink);transition:background .2s ease,color .2s ease,border-color .2s ease}
.kp-pill:hover span{border-color:var(--ink)}
.kp-pill input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.kp-pill input:focus-visible+span{outline:1px solid var(--ink);outline-offset:3px}

/* file drop area */
.kp-tf .kp-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;margin:0;padding:34px 20px;border:1px dashed rgba(19,17,15,.3);text-align:center;text-transform:none;letter-spacing:0;font-size:inherit;cursor:pointer;transition:border-color .25s ease,background .25s ease}
.kp-drop:hover,.kp-drop.is-over{border-color:var(--ink);background:rgba(19,17,15,.025)}
.kp-drop input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;padding:0}
.kp-drop-t{font-family:var(--serif);font-size:16px;color:var(--ink)}
.kp-drop-t u{text-underline-offset:3px}
.kp-drop-s{font-family:var(--serif);font-size:13px;color:var(--muted)}
.kp-drop-list{list-style:none;margin:10px 0 0;padding:0;font-family:var(--serif);font-size:13px;color:var(--ink)}
.kp-drop-list li+li{margin-top:3px}

/* submit + thank you */
.kp-tf-submit{display:flex;align-items:center;gap:24px;flex-wrap:wrap;border-bottom:0!important}
.kp-tf-note{margin:0;font-family:var(--serif);font-size:13px;color:var(--muted)}
.kp-tf-done{padding:56px 0 20px}
.kp-tf-done h2{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3vw,40px);margin:0 0 12px;text-transform:none;letter-spacing:0}
.kp-tf-done p{margin:0;font-family:var(--serif);font-size:16px;color:var(--muted);max-width:42ch}
.kp-tf.is-sent .form-section{display:none}
.kp-tf.is-sent .kp-tf-done{display:block}

@media(max-width:760px){
  .kp-tf .fields{grid-template-columns:1fr;gap:26px}
  .kp-tf .form-section{padding:30px 0 34px}
  .kp-tf-submit{flex-direction:column;align-items:flex-start;gap:14px}
}
.kp-tf .kp-pill span{text-transform:none;letter-spacing:0}
.kp-tf .field label,.kp-tf legend{display:flex;align-items:baseline;flex-wrap:wrap;min-height:18px;line-height:18px}
.kp-tf .field>label{height:18px;overflow:visible;white-space:nowrap}
.kp-tf .kp-opt{line-height:18px}
.kp-tf select.is-empty{color:var(--muted)}

/* ---------- process: a bigger, clearer step bar (Our process page + each step page) ---------- */
.kp-proc-nav{position:sticky;top:var(--kp-hdr,64px);z-index:30;margin:0;padding:18px var(--pad,24px) 0;border-top:0;background:var(--paper,#f3efe7);gap:0 6px}
.kp-proc-nav a{display:block;padding:18px 14px 20px 0;border-top:2px solid rgba(19,17,15,.14);font-size:clamp(16px,1.45vw,22px);line-height:1.15;color:var(--muted);cursor:pointer}
.kp-proc-nav a span{font-size:10px;letter-spacing:.16em;margin-bottom:9px;color:inherit}
.kp-proc-nav a::before{top:-2px;height:2px}
.kp-proc-nav a::after{content:"\2192";position:absolute;right:14px;top:18px;font-family:var(--sans);font-size:12px;opacity:0;transform:translateX(-6px);transition:opacity .4s ease,transform .6s cubic-bezier(.16,1,.3,1)}
.kp-proc-nav a.is-done{color:rgba(19,17,15,.62)}
.kp-proc-nav a.is-done::before{transform:scaleX(1);background:rgba(19,17,15,.35)}
.kp-proc-nav a[aria-current]{color:var(--ink)}
.kp-proc-nav a[aria-current]::before{background:var(--ink)}
@media (hover:hover){
  .kp-proc-nav a:hover{color:var(--ink)}
  .kp-proc-nav a:not([aria-current]):hover::after{opacity:1;transform:none}
}
.kp-proc-nav a:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
.kp-proc-nav.is-stuck{box-shadow:0 1px 0 var(--line)}
@media (max-width:860px){
  .kp-proc-nav{grid-template-columns:repeat(3,1fr);row-gap:0;padding-top:10px}
  .kp-proc-nav a{padding:12px 10px 14px 0;font-size:15px}
  .kp-proc-nav a span{margin-bottom:5px}
  .kp-proc-nav a::after{display:none}
}

/* Our process page: title above the bar, each step in place */
.kp-proc-title{padding:clamp(34px,4.5vw,64px) var(--pad,24px) clamp(18px,2.4vw,30px)}
.kp-proc-title h1{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(46px,6.4vw,104px);line-height:.95;letter-spacing:-.02em}
.kp-proc-all .kp-proc-text h2.kp-proc-h{margin:0 0 24px;max-width:none;font-size:clamp(40px,5vw,84px);line-height:.95;letter-spacing:-.02em}
.kp-proc-lede{margin:0 0 24px!important;max-width:22ch!important;font-size:clamp(20px,1.9vw,28px)!important;line-height:1.2!important}
.kp-proc-panel[hidden]{display:none}
.kp-proc-panel.is-in .kp-proc-hero{animation:kpProcIn .7s cubic-bezier(.16,1,.3,1) both}
@keyframes kpProcIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){ .kp-proc-panel.is-in .kp-proc-hero{animation:none} }
@media (max-width:860px){
  .kp-proc-nav{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:0 8px;padding-right:var(--pad,24px)}
  .kp-proc-nav::-webkit-scrollbar{display:none}
  .kp-proc-nav a{flex:0 0 auto;min-width:38%;scroll-snap-align:start;white-space:nowrap;padding:12px 18px 14px 0}
}
@media (max-width:860px){ .kp-proc-nav::after{content:"";flex:0 0 40px} }
@media (max-width:860px){ .kp-proc-nav{scroll-padding-left:var(--pad,24px)} }

/* process steps: the text spreads across the space beside the photo */
@media (min-width:861px){ .kp-proc-hero{grid-template-columns:minmax(0,1fr) minmax(0,.62fr);align-items:center} }
.kp-proc-text{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(28px,3.4vw,56px);align-content:center}
.kp-proc-text>.kp-proc-num,.kp-proc-text>h1,.kp-proc-text>h2,.kp-proc-text>.kp-proc-lede{grid-column:1/-1}
.kp-proc-text h2,.kp-proc-text .kp-proc-lede{max-width:24ch!important;font-size:clamp(24px,2.5vw,38px)!important;line-height:1.14!important;margin-bottom:clamp(28px,3vw,44px)!important}
.kp-proc-all .kp-proc-text h2.kp-proc-h{max-width:none!important;font-size:clamp(40px,5vw,84px)!important;line-height:.95!important;margin-bottom:24px!important}
.kp-proc-text p:not(.kp-proc-lede){max-width:none;margin:0;font-size:clamp(14px,1.08vw,16.5px);line-height:1.62;padding-top:18px;border-top:1px solid var(--line)}
@media (max-width:860px){
  .kp-proc-text{grid-template-columns:1fr}
  .kp-proc-text p:not(.kp-proc-lede){padding-top:14px;margin-bottom:14px}
  .kp-proc-text p:not(.kp-proc-lede)+p{border-top:0;padding-top:0}
}

/* process steps: the closing statement sits centred under the two lists */
.kp-proc-quote{margin:clamp(56px,7vw,110px) auto 0!important;max-width:26ch!important;text-align:center;font-size:clamp(26px,3vw,46px)!important;line-height:1.12!important;text-wrap:balance}
.kp-proc-quote::before{content:"";display:block;width:44px;height:1px;margin:0 auto clamp(26px,3vw,40px);background:var(--ink)}
@media (max-width:860px){ .kp-proc-quote{max-width:none!important;font-size:clamp(24px,7vw,32px)!important} }
/* shorter statements, slightly smaller: never more than two lines */
.kp-proc-quote{max-width:30ch!important;font-size:clamp(21px,2.2vw,32px)!important;line-height:1.18!important}
@media (max-width:860px){ .kp-proc-quote{font-size:clamp(20px,5.6vw,26px)!important} }
/* statements: room for one line; the two-part ones break where the wording does */
.kp-proc-quote{max-width:min(100%,32em)!important}
@media (min-width:861px){ .kp-proc-quote{text-wrap:nowrap} }
@media (max-width:860px){ .kp-proc-quote{text-wrap:balance} }

/* ---------- Trade: introduction, what's included, and the application on one page ---------- */
.kp-trade-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,6vw,110px);align-items:start;padding:clamp(48px,6vw,96px) var(--pad,24px) clamp(44px,5vw,80px)}
.kp-trade-hero h1{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(46px,6.4vw,104px);line-height:.95;letter-spacing:-.02em}
.kp-trade-intro{max-width:52ch}
.kp-trade-intro .kp-trade-lede{margin:0 0 18px;font-family:var(--serif);font-size:clamp(22px,2.2vw,32px);line-height:1.15}
.kp-trade-intro p{margin:0 0 26px;font-family:var(--serif);font-size:clamp(14px,1.08vw,16px);line-height:1.6}
.kp-trade-benefits{padding-top:0!important}
.kp-trade-benefits .kp-proc-list li{font-size:clamp(15px,1.2vw,18px)}
.kp-trade-apply{scroll-margin-top:calc(var(--kp-hdr,64px) + 10px);border-top:1px solid var(--line)}
.kp-trade-apply .form-intro h2{margin:0 0 28px;font-family:var(--serif);font-weight:400;font-size:clamp(36px,4.4vw,64px);line-height:.98;letter-spacing:-.02em;text-transform:none}
.kp-trade-apply .form-intro{top:calc(var(--kp-hdr,64px) + 30px)}
@media (max-width:860px){
  .kp-trade-hero{grid-template-columns:1fr;align-items:start}
}
/* Trade: what's included, as a compact two-row table */
.kp-trade-hero{padding-bottom:clamp(30px,3.4vw,52px)}
.kp-trade-benefits{padding:0 var(--pad,24px) clamp(44px,5vw,72px)}
.kp-trade-table{border-bottom:1px solid var(--line)}
.kp-trade-row{display:grid;grid-template-columns:minmax(160px,.26fr) 1fr;gap:12px 28px;align-items:baseline;padding:16px 0;border-top:1px solid var(--line)}
.kp-trade-row h3{margin:0;font-family:var(--sans);font-size:9.5px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.kp-trade-row ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px 20px;margin:0;padding:0;list-style:none;font-family:var(--serif);font-size:clamp(14px,1.05vw,16px);line-height:1.3}
@media (max-width:1100px){ .kp-trade-row ul{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:760px){
  .kp-trade-row{grid-template-columns:1fr;gap:10px;padding:14px 0}
  .kp-trade-row ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}
}
.kp-trade-table{border-bottom:0}
.kp-trade-benefits{padding-bottom:0}
.kp-trade-apply{padding-top:clamp(48px,5vw,80px)!important}

/* ---------- Trade, refined: one calm two-column rhythm ---------- */
.kp-trade-hero,.kp-trade-apply{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,6vw,110px);padding-left:var(--pad,24px);padding-right:var(--pad,24px)}
.kp-trade-hero{align-items:start;padding-top:clamp(48px,6vw,96px);padding-bottom:clamp(56px,6vw,96px)}
.kp-trade-intro{max-width:54ch}
.kp-trade-intro p{margin:0 0 0}
.kp-trade-intro .kp-trade-lede{margin:0 0 18px}
.kp-trade-incl{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px;margin-top:clamp(34px,3.6vw,52px);padding-top:22px;border-top:1px solid var(--line)}
.kp-trade-incl h3{margin:0 0 12px;font-family:var(--sans);font-size:9.5px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.kp-trade-incl ul{margin:0;padding:0;list-style:none;font-family:var(--serif);font-size:14px;line-height:1.85;color:var(--ink)}
.kp-trade-apply{align-items:start;padding-top:clamp(56px,6vw,96px)!important;padding-bottom:clamp(64px,7vw,110px);border-top:1px solid var(--line);scroll-margin-top:calc(var(--kp-hdr,64px) + 10px)}
.kp-trade-apply>h2{position:sticky;top:calc(var(--kp-hdr,64px) + 30px);margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(28px,2.8vw,42px);line-height:1.05;letter-spacing:-.01em;text-transform:none}
.kp-trade-apply .kp-tf{border-top:0}
.kp-trade-apply .kp-tf .form-section:first-child{padding-top:0}
@media (max-width:860px){
  .kp-trade-hero,.kp-trade-apply{grid-template-columns:1fr}
  .kp-trade-apply>h2{position:static}
  .kp-trade-incl{grid-template-columns:1fr 1fr;gap:20px}
}
/* Trade: one grid — title across the top; left column for headings, right column for text and the form */
.kp-trade-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);row-gap:0;align-items:start}
.kp-trade-hero h1{grid-column:1/-1;margin:0 0 clamp(40px,4.6vw,72px)}
.kp-trade-hero .kp-trade-lede,.kp-trade-apply>h2{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.6vw,40px);line-height:1.08;letter-spacing:-.01em;max-width:16ch}
.kp-trade-intro{max-width:56ch;padding-top:6px}
.kp-trade-intro>p{margin:0;font-size:clamp(15px,1.15vw,17px);line-height:1.6}
@media (max-width:860px){
  .kp-trade-hero .kp-trade-lede{margin-bottom:22px}
  .kp-trade-intro{padding-top:0}
}
.kp-trade-incl{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}.kp-trade-incl h3,.kp-trade-incl li{overflow-wrap:break-word;hyphens:auto;-webkit-hyphens:auto}
.kp-trade-hero .kp-trade-lede,.kp-trade-apply>h2{max-width:none;padding-right:clamp(0px,2vw,24px)}

/* ---------- Trade: text stack beside a photo, like the process pages ---------- */
.kp-trade-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.62fr);gap:clamp(30px,6vw,110px);align-items:center;padding:clamp(40px,5vw,80px) var(--pad,24px) clamp(56px,6vw,96px)}
.kp-trade-text h1{margin:0 0 clamp(22px,2.4vw,34px);font-family:var(--serif);font-weight:400;font-size:clamp(46px,6.4vw,104px);line-height:.95;letter-spacing:-.02em}
.kp-trade-text .kp-trade-lede{margin:0 0 20px;font-family:var(--serif);font-size:clamp(24px,2.5vw,38px);line-height:1.14;max-width:none}
.kp-trade-text .kp-trade-body{margin:0;max-width:52ch;font-family:var(--serif);font-size:clamp(15px,1.15vw,17px);line-height:1.6}
.kp-trade-text .kp-trade-incl{max-width:560px}
.kp-trade-fig{margin:0;justify-self:end;width:min(100%,calc(78vh * .75))}
.kp-trade-fig img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover}
@media (max-width:860px){
  .kp-trade-top{grid-template-columns:1fr;align-items:start}
  .kp-trade-fig{width:100%;justify-self:stretch}
}

/* scroll arrow (same as the homepage): a line that draws downward with an arrowhead */
.kp-cue{position:absolute;left:50%;bottom:26px;width:9px;height:52px;transform:translateX(-50%);z-index:3;cursor:pointer}
.kp-cue::before{content:"";position:absolute;left:4px;top:0;width:1px;height:46px;background:var(--line)}
.kp-cue i{position:absolute;left:4px;top:0;width:1px;height:46px;overflow:hidden}
.kp-cue i::after{content:"";position:absolute;inset:0;background:var(--ink);animation:kp-cue 2.4s cubic-bezier(.76,0,.24,1) infinite}
.kp-cue::after{content:"";position:absolute;left:1px;bottom:3px;width:6px;height:6px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);transform:rotate(45deg)}
@keyframes kp-cue{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}
@media (prefers-reduced-motion:reduce){ .kp-cue i::after{animation:none} }
.kp-trade-top{position:relative;padding-bottom:clamp(110px,9vw,140px)}
/* Trade: content sits higher; the arrow stays in view near the bottom of the screen until the form appears */
.kp-trade-top{padding-top:clamp(24px,3vw,48px);padding-bottom:clamp(64px,6vw,96px);align-items:start}
.kp-trade-fig{width:min(100%,calc((100vh - 200px) * .75))}
.kp-cue.is-float{position:fixed;bottom:22px;transition:opacity .5s ease}
.kp-cue.is-float.is-gone{opacity:0;pointer-events:none}

/* ---------- Trade: the application as its own island ---------- */
.kp-trade-top{padding-top:clamp(20px,2.4vw,40px);padding-bottom:clamp(36px,4vw,60px)}
.kp-trade-fig{width:min(100%,calc((100vh - 330px) * .75))}
.kp-island-band{background:#ebe5db;padding:clamp(56px,6vw,96px) var(--pad,24px) clamp(72px,8vw,130px);scroll-margin-top:var(--kp-hdr,64px)}
.kp-island-head{max-width:640px;margin:0 auto clamp(28px,3vw,44px);text-align:center}
.kp-island-head h2{margin:0 0 14px;font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.2vw,48px);line-height:1.05;letter-spacing:-.01em;text-transform:none}
.kp-island-head p{margin:0 auto;max-width:48ch;font-family:var(--serif);font-size:clamp(14px,1.05vw,16px);line-height:1.6;color:var(--muted);text-wrap:balance}
.kp-island{max-width:920px;margin:0 auto;padding:clamp(28px,4vw,60px) clamp(22px,4.4vw,68px) clamp(20px,3vw,44px);background:#f8f5ef;border:1px solid rgba(19,17,15,.1);box-shadow:0 30px 80px -40px rgba(19,17,15,.22)}
.kp-island .kp-tf{border-top:0}
.kp-island .kp-tf .form-section:first-child{padding-top:0}
.kp-island .kp-tf .form-section:last-of-type{border-bottom:0}
/* rises into place as it scrolls into view */
.kp-island-band .kp-island,.kp-island-band .kp-island-head{transition:opacity 1s ease,transform 1.1s cubic-bezier(.16,1,.3,1)}
.kp-island-band.kp-pre .kp-island-head{opacity:0;transform:translateY(24px)}
.kp-island-band.kp-pre .kp-island{opacity:0;transform:translateY(64px)}
.kp-island-band .kp-island{transition-delay:.08s}
@media (prefers-reduced-motion:reduce){ .kp-island-band .kp-island,.kp-island-band .kp-island-head{transition:none;opacity:1!important;transform:none!important} }
@media (max-width:760px){
  .kp-island-band{padding-left:12px;padding-right:12px}
  .kp-island{padding:26px 18px 16px}
}
/* tighter introduction so the island peeks into the first screen */
.kp-trade-text h1{font-size:clamp(46px,5.6vw,88px);margin-bottom:clamp(16px,1.8vw,26px)}
.kp-trade-text .kp-trade-lede{font-size:clamp(22px,2.2vw,32px);margin-bottom:14px}
.kp-trade-text .kp-trade-incl{margin-top:clamp(22px,2.4vw,34px);padding-top:18px}
.kp-trade-incl ul{line-height:1.7}
.kp-trade-top{padding-bottom:clamp(28px,3vw,44px)}
.kp-island-band{padding-top:clamp(40px,4vw,64px)}
@media (min-width:861px){ .kp-trade-fig{width:min(100%,calc((100vh - 380px) * .75))} }
@media (min-width:861px){ .kp-trade-fig{width:min(100%,calc(max(380px,100vh - 470px) * .75))} .kp-trade-top{align-items:center} }

/* ---------- Trade: centred introduction (no photo), mirroring the centred application below ---------- */
.kp-trade-top.kp-trade-center{display:block;position:relative;text-align:center;padding:clamp(44px,5vw,80px) var(--pad,24px) clamp(96px,8vw,120px)}
.kp-trade-center .kp-trade-text{max-width:760px;margin:0 auto}
.kp-trade-center .kp-trade-body{margin:0 auto;max-width:54ch;text-wrap:balance}
.kp-trade-center .kp-trade-incl{max-width:520px;margin-left:auto;margin-right:auto;text-align:center}
.kp-trade-center .kp-cue:not(.is-float){bottom:24px}

/* ---------- Headings across the site: one calmer scale ---------- */
main h1{font-size:clamp(36px,4.4vw,64px)!important;line-height:1!important;letter-spacing:-.015em!important}
.product-info h1{font-size:clamp(32px,3.4vw,48px)!important}
.kp-proc-text h1,.kp-proc-all .kp-proc-text h2.kp-proc-h{font-size:clamp(34px,3.9vw,56px)!important;line-height:1!important}
.kp-proc-text h2:not(.kp-proc-h),.kp-proc-text .kp-proc-lede,.kp-trade-text .kp-trade-lede,.page-hero .lede h2{font-size:clamp(19px,1.75vw,26px)!important;line-height:1.2!important}
.intro-grid .big{font-size:clamp(26px,2.7vw,40px)!important;line-height:1.1!important}
.section-head h2{font-size:clamp(22px,2vw,30px)!important}
.kp-cap-next b,.kp-proc-pager b{font-size:clamp(24px,2.6vw,38px)!important}
.kp-island-head h2,.kp-tf-done h2{font-size:clamp(26px,2.5vw,36px)!important}
.kp-proc-quote{font-size:clamp(18px,1.7vw,26px)!important}
.form-intro h1{font-size:clamp(34px,3.8vw,56px)!important}
.kp-story-note h3,.kp-story h3{font-size:clamp(22px,2vw,28px)!important}
/* the homepage's opening statement keeps its own, smaller size */
.kp-entry-statement h1{font-size:clamp(17px,1.7vw,27px)!important;line-height:1.2!important;letter-spacing:-.005em!important}
@media (max-width:760px){ .kp-entry-statement h1{font-size:20px!important} }

/* ---------- Portfolio of completed works: Products, then Projects ---------- */
.kp-port-sub{margin:clamp(26px,3vw,40px) 0 18px;font-family:var(--serif);font-weight:400;font-size:clamp(19px,1.6vw,24px);letter-spacing:-.005em}
#projects.kp-port-sub{margin-top:clamp(64px,7vw,110px);padding-top:clamp(28px,3vw,40px);border-top:1px solid var(--line)}
.kp-project-card .image img{width:100%;height:100%;object-fit:cover}
.kp-port-sub{scroll-margin-top:calc(var(--kp-hdr,64px) + 24px)}

/* top bar: Search as an icon, in the corner beside the language */
.utility-link.kp-ico{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin:0 -4px;color:var(--ink)}
.utility-link.kp-ico svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:round;transition:opacity .3s ease}
.utility-link.kp-ico::after{display:none!important}
@media (hover:hover){ .utility-link.kp-ico:hover svg{opacity:.55} }
.utility-link.kp-ico:focus-visible{outline:1px solid var(--ink);outline-offset:2px}
/* language switcher in the far right corner: its list opens inward */
.kp-lang{margin-left:6px}
.kp-lang-menu{right:0}

/* ---------- About: the story told as you scroll ---------- */
.kp-sa-page .kp-sa-eyebrow{font-family:var(--sans);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 26px}
.kp-sa-open,.kp-sa-close{text-align:center;padding:0 var(--pad,24px);display:flex;flex-direction:column;align-items:center}
.kp-sa-open{min-height:calc(100vh - var(--kp-hdr,57px) - 46px);min-height:calc(100svh - var(--kp-hdr,57px) - 46px);justify-content:center;position:relative;padding-bottom:90px}
.kp-sa-page .kp-sa-open h1{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.5vw,36px)!important;line-height:1.12!important;letter-spacing:-.01em!important;margin:0}
.kp-sa-intro{font-family:var(--serif);font-size:12.5px;line-height:1.75;color:var(--ink);max-width:440px;margin:24px auto 0}
.kp-sa-open .kp-cue{position:absolute;left:50%;bottom:34px;transform:translateX(-50%)}

.kp-sa{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-top:1px solid var(--line)}
.kp-sa-media{position:sticky;top:var(--kp-hdr,57px);height:calc(100vh - var(--kp-hdr,57px));height:calc(100svh - var(--kp-hdr,57px));padding:clamp(24px,4vh,48px) 0 clamp(24px,4vh,48px) var(--pad,24px);display:flex;flex-direction:column}
.kp-sa-frame{position:relative;flex:1;overflow:hidden;background:var(--paper2)}
.kp-sa-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity 1.1s cubic-bezier(.16,1,.3,1),transform 2.4s cubic-bezier(.16,1,.3,1)}
.kp-sa-frame img.on{opacity:1;transform:none}
.kp-sa-count{margin:16px 0 0;font-size:9px;letter-spacing:.1em;color:var(--muted)}
.kp-sa-count b{font-weight:400;color:var(--ink)}
.kp-sa-text{padding:0 var(--pad,24px) 0 clamp(40px,7vw,120px)}
.kp-sa-ch{min-height:calc(100vh - var(--kp-hdr,57px));min-height:calc(100svh - var(--kp-hdr,57px));display:flex;flex-direction:column;justify-content:center;max-width:470px;opacity:.3;transform:translate3d(0,14px,0);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform 1.1s cubic-bezier(.16,1,.3,1)}
.kp-sa-ch.on{opacity:1;transform:none}
.kp-sa-n{display:flex;gap:14px;align-items:baseline;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 24px}
.kp-sa-n b{font-weight:400;color:var(--ink)}
.kp-sa-ch h2{font-family:var(--serif);font-weight:400;font-size:clamp(20px,1.75vw,26px);line-height:1.2;letter-spacing:-.005em;margin:0 0 18px}
.kp-sa-p{font-family:var(--serif);font-size:12.5px;line-height:1.75;margin:0;max-width:400px}
.kp-sa-mimg{display:none}

.kp-sa-close{border-top:1px solid var(--line);padding-top:clamp(90px,14vh,150px);padding-bottom:clamp(90px,14vh,150px)}
.kp-sa-close h2{font-family:var(--serif);font-weight:400;font-size:clamp(20px,1.75vw,26px);line-height:1.2;letter-spacing:-.005em;margin:0;max-width:24ch}
.kp-sa-ctas{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:16px 30px;margin-top:38px}

@media (max-width:860px){
  .kp-sa{display:block}
  .kp-sa-media{display:none}
  .kp-sa-text{padding:0 var(--pad,20px)}
  .kp-sa-ch{min-height:0;max-width:none;padding:56px 0 64px;border-bottom:1px solid var(--line);opacity:1;transform:none}
  .kp-sa-ch:last-child{border-bottom:0}
  .kp-sa-mimg{display:block;margin:0 0 28px;aspect-ratio:4/5;overflow:hidden;background:var(--paper2)}
  .kp-sa-mimg img{width:100%;height:100%;object-fit:cover;display:block}
}
@media (prefers-reduced-motion:reduce){ .kp-sa-ch,.kp-sa-frame img{transition:none} }
@media (max-width:860px){ .kp-sa-page .kp-sa-open h1{font-size:25px!important} }

/* ---------- Contact: the original layout, closer together and smaller ---------- */
.kp-ct{padding:clamp(56px,9vh,92px) var(--pad,24px) clamp(72px,11vh,120px)}
.kp-ct-page .kp-ct h1{font-family:var(--serif);font-weight:400;font-size:clamp(26px,2.4vw,34px)!important;line-height:1.1!important;letter-spacing:-.01em!important;margin:0 0 clamp(48px,7vh,76px)}
.kp-ct-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(32px,4.5vw,72px)}
.kp-ct-box{border-top:1px solid var(--line);padding:20px 0 42px}
.kp-ct-box h3{font-family:var(--serif);font-weight:400;font-size:15px;letter-spacing:0;margin:0 0 18px}
.kp-ct-box .text-link{min-width:0;display:inline-block}
.kp-ct-meta{margin-top:14px}
.kp-ct-meta>div{border-top:1px solid var(--line);padding-top:20px}
.kp-ct-eyebrow{font-family:var(--sans);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}
.kp-ct-meta p:not(.kp-ct-eyebrow){font-family:var(--serif);font-size:12px;line-height:1.7;margin:0}
@media (max-width:760px){
  .kp-ct-grid{grid-template-columns:1fr}
  .kp-ct-box{padding-bottom:24px}
  .kp-ct-meta>div+div{margin-top:20px}
}

/* Start an enquiry: laid out like the trade application; the description box matches the other fields */
.kp-tf textarea{display:block;width:100%;min-height:104px;resize:vertical;margin:0;border:0;border-bottom:1px solid rgba(19,17,15,.28);border-radius:0;background:transparent;padding:9px 0 10px;font-family:var(--serif);font-size:16px;line-height:1.5;color:var(--ink);box-shadow:none;transition:border-color .25s ease}
.kp-tf textarea::placeholder{color:rgba(19,17,15,.32)}
.kp-tf textarea:focus{border-bottom-color:var(--ink);outline:none}
.kp-enq #enquire{scroll-margin-top:calc(var(--kp-hdr,64px) + 10px)}

/* page openings: the short description sits directly under its line, not floating on the right */
.page-hero .lede{display:block!important;max-width:640px}
.page-hero .lede p{margin:16px 0 0!important;max-width:520px;font-family:var(--serif);font-size:13px;line-height:1.7;color:var(--ink)}
@media (max-width:760px){ .page-hero .lede p{font-size:12px} }

/* ---------- Capability pages + Legal: a quieter, more refined scale ---------- */
.kp-cap-page .page-hero,.kp-legal-page .page-hero{padding:clamp(52px,7vh,80px) var(--pad,24px) clamp(44px,6vh,64px)}
.kp-cap-page .page-hero h1,.kp-legal-page .page-hero h1{font-size:clamp(30px,2.9vw,42px)!important;line-height:1.08!important;letter-spacing:-.01em!important}
.kp-cap-page .page-hero .lede,.kp-legal-page .page-hero .lede{margin-top:22px}
.kp-cap-page .page-hero .lede h2,.kp-legal-page .page-hero .lede h2{font-size:clamp(16px,1.3vw,19px)!important;line-height:1.35!important;letter-spacing:0!important;color:var(--ink)}
.kp-cap-page .page-hero .lede p,.kp-legal-page .page-hero .lede p{margin-top:10px!important;font-size:12.5px;color:var(--muted)}
.kp-cap-page .kp-cap-hero .kp-cap-img{aspect-ratio:16/7}
.kp-cap-page .section,.kp-legal-page .section{padding-top:clamp(56px,8vh,84px);padding-bottom:clamp(56px,8vh,84px)}
.kp-cap-page .section-head{margin-bottom:clamp(28px,4vh,44px);align-items:baseline}
.kp-cap-page .section-head h2{font-size:clamp(17px,1.35vw,20px)!important;letter-spacing:0!important}
.kp-cap-page .intro-grid{padding:0;gap:clamp(40px,9vw,140px)}
.kp-cap-page .intro-grid .big{font-size:clamp(20px,1.75vw,26px)!important;line-height:1.25!important;letter-spacing:-.005em!important;max-width:28ch}
.kp-cap-page .intro-grid .copy{font-size:13px;line-height:1.75;max-width:520px}
.kp-cap-page .intro-grid .copy p{margin-bottom:14px}
.kp-cap-page .kp-cap-list{margin-top:20px;font-size:12.5px;line-height:2;border-top:1px solid var(--line);padding-top:16px}
.kp-cap-page .kp-cap-status{font-size:9px;letter-spacing:.14em}
.kp-cap-page .kp-cap-fig figcaption{font-size:11px;margin-top:10px;color:var(--muted)}
.kp-cap-page .kp-cap-gallery .kp-cap-fig:nth-child(2){margin-top:8vh}
.kp-cap-page .kp-cap-gallery .kp-cap-fig:nth-child(3){margin-top:3vh}
.kp-cap-page .section.alt .intro-grid{align-items:center}
.kp-cap-page .section.alt .btn{margin-top:4px!important}
.kp-cap-next a{padding:30px 0 46px}
.kp-cap-next b{font-size:clamp(20px,1.9vw,28px)!important}
.kp-cap-next span{font-size:9px;letter-spacing:.14em}
/* legal: tidy two-column list in the site's serif */
.kp-legal-page .legal-list{column-gap:clamp(32px,4.5vw,72px);row-gap:0}
.kp-legal-page .legal-item{padding:18px 0 26px;min-height:0}
.kp-legal-page .legal-item h3{font-family:var(--serif);font-weight:400;font-size:15px;letter-spacing:0;margin:0 0 8px}
.kp-legal-page .legal-item p{font-size:12px;margin:0 0 6px}
.kp-legal-page .legal-item p strong{font-weight:400;font-family:var(--sans);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
@media (max-width:760px){
  .kp-cap-page .kp-cap-hero .kp-cap-img{aspect-ratio:4/3}
  .kp-cap-page .intro-grid{gap:22px}
}

/* About: the line that joins the chapter labels */
.kp-sa-text{position:relative}
.kp-sa-thread{position:absolute;left:clamp(14px,2.6vw,46px);width:1px;background:var(--line);pointer-events:none}
.kp-sa-done{position:absolute;left:0;top:0;width:1px;height:0;background:var(--ink);transition:height 1s cubic-bezier(.76,0,.24,1)}
.kp-sa-next{position:absolute;left:0;width:1px;overflow:hidden;transition:top 1s cubic-bezier(.76,0,.24,1),height 1s cubic-bezier(.76,0,.24,1)}
.kp-sa-next i{position:absolute;inset:0;overflow:hidden}
.kp-sa-next i::after{content:"";position:absolute;inset:0;background:var(--ink);animation:kp-cue 2.4s cubic-bezier(.76,0,.24,1) infinite}
.kp-sa-next.is-off{opacity:0}
.kp-sa-thread b{position:absolute;left:-3px;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--paper);box-shadow:0 0 0 1px rgba(19,17,15,.3);transition:background .5s ease,box-shadow .5s ease,transform .5s ease}
.kp-sa-thread b.on{background:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.kp-sa-thread b.now{transform:scale(1.45)}
@media (max-width:860px){ .kp-sa-thread{display:none} }
@media (prefers-reduced-motion:reduce){ .kp-sa-next i::after{animation:none} .kp-sa-done,.kp-sa-next{transition:none} }

/* =========================================================
   One quiet type scale across the whole site
   ========================================================= */
/* page titles */
main h1,.form-intro h1,.kp-trade-text h1,.kp-proc-text h1,.kp-proc-all .kp-proc-text h2.kp-proc-h,
.kp-sa-page .kp-sa-open h1,.kp-ct-page .kp-ct h1,.kp-cap-page .page-hero h1,.kp-legal-page .page-hero h1{
  font-size:clamp(28px,2.6vw,38px)!important;line-height:1.1!important;letter-spacing:-.01em!important;font-weight:400}
.product-info h1{font-size:clamp(24px,2.1vw,30px)!important;line-height:1.15!important}
/* opening lines under a title */
.kp-proc-text h2:not(.kp-proc-h),.kp-proc-text .kp-proc-lede,.kp-trade-text .kp-trade-lede,.page-hero .lede h2{font-size:clamp(16px,1.3vw,19px)!important;line-height:1.35!important;letter-spacing:0!important}
.kp-trade-text .kp-trade-body,.form-intro p{font-size:13px!important;line-height:1.7!important}
/* section titles */
.section-head h2{font-size:clamp(17px,1.35vw,20px)!important;letter-spacing:0!important}
.intro-grid .big,.intro-grid h3.big{font-size:clamp(20px,1.75vw,26px)!important;line-height:1.25!important;letter-spacing:-.005em!important}
.kp-island-head h2,.kp-tf-done h2{font-size:clamp(20px,1.75vw,26px)!important;line-height:1.2!important}
.kp-story-note h3,.kp-story h3{font-size:clamp(18px,1.5vw,22px)!important;line-height:1.2!important}
.kp-tl-top h3{font-size:clamp(16px,1.3vw,19px)!important}
.kp-proc-quote{font-size:clamp(16px,1.35vw,20px)!important}
.kp-cap-next b,.kp-proc-pager b{font-size:clamp(18px,1.5vw,22px)!important}
.kp-sa-ch h2,.kp-sa-close h2{font-size:clamp(19px,1.6vw,24px)!important}
/* the homepage's opening statement keeps its own size */
.kp-entry-statement h1{font-size:clamp(17px,1.7vw,27px)!important;line-height:1.2!important;letter-spacing:-.005em!important}
@media (max-width:760px){
  main h1,.form-intro h1,.kp-trade-text h1,.kp-proc-text h1,.kp-sa-page .kp-sa-open h1,.kp-ct-page .kp-ct h1{font-size:26px!important}
  .kp-entry-statement h1{font-size:20px!important}
}

/* breadcrumbs: one style everywhere, all capitals */
.breadcrumb,.breadcrumb a{font-family:var(--sans)!important;font-size:9px!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:var(--muted)}
.breadcrumb a{text-decoration:none;transition:color .25s ease}
.breadcrumb a:hover{color:var(--ink)}
html:lang(zh) .breadcrumb,html:lang(zh) .breadcrumb a{font-size:11px!important;letter-spacing:.06em!important}

/* footer: brand, then four even columns of small links */
.footer{padding-top:clamp(48px,7vh,72px)}
.footer-top{display:grid;grid-template-columns:1.3fr repeat(4,minmax(0,1fr));column-gap:clamp(20px,3vw,48px);row-gap:36px;align-items:start;padding-bottom:clamp(40px,6vh,64px)}
.footer-brand{gap:18px}
.footer-wordmark{width:150px!important}
.footer-monogram{width:30px!important;height:30px!important}
.footer h4{font-family:var(--sans);font-size:9px!important;font-weight:400;letter-spacing:.14em!important;text-transform:uppercase;color:var(--muted);margin:0 0 14px!important}
.footer-top a,.footer-top p{display:block;font-family:var(--serif);font-size:12px!important;line-height:1.95!important;color:var(--ink);margin:0!important;padding:0!important;text-decoration:none}
.footer-top p{color:var(--muted)}
.footer-top a{transition:opacity .25s ease}
@media (hover:hover){ .footer-top a:hover{opacity:.55} }
.footer-top p[style]{margin-top:12px!important}
.footer-bottom{font-family:var(--sans);font-size:9px!important;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-top:18px;padding-bottom:22px}
@media (max-width:900px){
  .footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer-top>div:first-child{grid-column:1/-1}
}

/* =========================================================
   Staff: schedules + invoices
   ========================================================= */
.kp-app-main.kp-a-wide{max-width:1440px}
.kp-sch-sum{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--a-line);border-bottom:1px solid var(--a-line);margin:0 0 28px}
.kp-sch-sum>div{padding:14px 14px 13px 0;display:flex;flex-direction:column;gap:6px;min-width:0}
.kp-sch-sum>div+div{padding-left:14px;border-left:1px solid var(--a-line)}
.kp-sch-sum span{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-sch-sum b{font-weight:400;font-family:var(--serif);font-size:15px;white-space:nowrap}
.kp-sch-sum .hi b{font-size:16px}
.kp-sch-bar{display:flex;justify-content:space-between;align-items:center;gap:16px 24px;flex-wrap:wrap;margin:0 0 16px}
.kp-sch-bar-l,.kp-sch-bar-r{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.kp-sch-bar .btn{cursor:pointer}
.kp-sch-bar .kp-a-dim{font-family:var(--serif);font-size:12px}
.kp-sch-wrap{overflow-x:auto;border-top:1px solid var(--a-line2)}
.kp-sch{width:100%;min-width:1080px;border-collapse:collapse;font-family:var(--serif);font-size:13px;color:var(--ink)}
.kp-sch th{padding:11px 10px 10px 0;text-align:left;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--a-line2);white-space:nowrap}
.kp-sch td{padding:11px 10px 11px 0;border-bottom:1px solid var(--a-line);vertical-align:top}
.kp-sch th.n,.kp-sch td.n{text-align:right}
.kp-sch td.ck,.kp-sch th.ck{width:26px;padding-right:6px}
.kp-sch td.nm{width:22%}
.kp-sch td.sp{width:20%;color:#3b3631}
.kp-sch .sm{display:block;margin-top:3px;font-family:var(--serif);font-size:11px;color:var(--muted);line-height:1.35}
.kp-sch td.n .sm{font-size:10px}
.kp-sch input[data-f]{width:68px;margin:0;padding:3px 0 4px;border:0;border-bottom:1px solid var(--a-line2);background:transparent;font:inherit;font-size:13px;color:var(--ink);text-align:right;border-radius:0;outline:none;-moz-appearance:textfield}
.kp-sch input[data-f]:focus{border-bottom-color:var(--ink)}
.kp-sch select[data-f]{margin:0;padding:3px 16px 4px 0;border:0;border-bottom:1px solid var(--a-line2);background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f'/%3E%3C/svg%3E") right 2px center/7px no-repeat;font:inherit;font-size:12px;color:var(--ink);border-radius:0;-webkit-appearance:none;appearance:none;outline:none;cursor:pointer}
.kp-sch td.c{white-space:nowrap}
.kp-sch td.c b{font-weight:400}
.kp-sch tr.kp-sch-area td{padding:22px 0 8px;border-bottom:1px solid var(--a-line2)}
.kp-sch tr.kp-sch-area span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-right:14px}
.kp-sch tr.kp-sch-area em{font-style:normal;font-size:12px;color:var(--muted)}
.kp-sch tr.sub td{background:rgba(19,17,15,.018)}
.kp-sch tr.sub td.nm{padding-left:14px}
.kp-sch .tw{color:var(--muted);margin-right:6px}
.kp-sch-open{all:unset;cursor:pointer;font-family:var(--serif);font-size:14px;color:var(--ink);border-bottom:1px solid transparent;transition:border-color .2s}
.kp-sch-open:hover,.kp-sch-open:focus-visible{border-bottom-color:var(--ink)}
.kp-sch input[type=checkbox]{width:13px;height:13px;margin:2px 0 0;accent-color:var(--ink);cursor:pointer}
@media (hover:hover){ .kp-sch tbody tr[data-row]:hover td{background:rgba(255,253,248,.7)} }
@media (max-width:900px){ .kp-sch-sum{grid-template-columns:repeat(2,minmax(0,1fr))} .kp-sch-sum>div,.kp-sch-sum>div+div{padding:12px 0;border-left:0;border-bottom:1px solid var(--a-line)} }

/* line editor + create dialog (they sit outside the app, so their fields are styled here) */
.kp-sch-modal .kp-modal-card{width:min(760px,100%)}
.kp-sch-modal .kp-a-fields{margin-top:22px;grid-template-columns:repeat(2,minmax(0,1fr))}
.kp-sch-modal .kp-a-span{grid-column:1/-1}
.kp-sch-modal .kp-a-field[hidden]{display:none}
.kp-sch-modal .kp-a-field input,.kp-sch-modal .kp-a-field select{height:auto;margin:0;width:100%;border:0;border-bottom:1px solid rgba(19,17,15,.2);background:transparent;padding:6px 0 8px;font-family:var(--serif);font-size:14px;color:var(--ink);outline:none;border-radius:0;-webkit-appearance:none;appearance:none;box-shadow:none}
.kp-sch-modal .kp-a-field select{background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f'/%3E%3C/svg%3E") right 2px center/7px no-repeat;padding-right:16px;cursor:pointer}
.kp-sch-modal .kp-a-field input:focus,.kp-sch-modal .kp-a-field select:focus{border-bottom-color:var(--ink)}
.kp-sch-modal .kp-a-dim{text-transform:none;letter-spacing:0;font-family:var(--serif);font-size:11px}
.kp-sch-calc{margin:20px 0 0;padding:12px 14px;border:1px solid rgba(19,17,15,.14);background:rgba(255,253,248,.6);font-family:var(--serif);font-size:12.5px;color:var(--ink)}
.kp-sch-calc span{color:var(--muted);margin:0 4px}
.kp-sch-kinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:6px}
.kp-sch-kind{position:relative;cursor:pointer}
.kp-sch-kind input{position:absolute;opacity:0}
.kp-sch-kind span{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid rgba(19,17,15,.18);transition:border-color .2s,background .2s}
.kp-sch-kind b{font-weight:400;font-family:var(--serif);font-size:15px}
.kp-sch-kind em{font-style:normal;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-sch-kind input:checked+span{border-color:var(--ink);background:rgba(255,253,248,.8);box-shadow:inset 0 0 0 1px var(--ink)}
.kp-sch-kind input:focus-visible+span{outline:1px solid var(--ink);outline-offset:3px}
.kp-sch-check{display:flex;gap:10px;align-items:flex-start;margin-top:18px;font-family:var(--serif);font-size:13px;cursor:pointer}
.kp-sch-check input{accent-color:var(--ink);margin-top:3px}
@media (max-width:560px){ .kp-sch-modal .kp-a-fields,.kp-sch-kinds{grid-template-columns:1fr} }

/* the quote / invoice document */
.kp-inv-acts{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:0 0 22px}
.kp-inv-acts .btn{cursor:pointer}
.kp-inv{max-width:860px;margin:0 auto;padding:clamp(28px,5vw,64px);background:#fffdf8;border:1px solid var(--a-line);box-shadow:0 30px 60px -40px rgba(19,17,15,.35);font-family:var(--serif);color:var(--ink)}
.kp-inv .l{margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.kp-inv-top{display:flex;justify-content:space-between;gap:30px;padding-bottom:28px;border-bottom:1px solid var(--a-line2)}
.kp-inv-mark{width:170px;height:auto;display:block;margin-bottom:16px}
.kp-inv-top p{margin:0;font-size:11.5px;line-height:1.7;color:#4a443e}
.kp-inv-id{text-align:right}
.kp-inv-id h2{margin:0 0 14px;font-family:var(--serif);font-weight:400;font-size:24px;letter-spacing:-.005em}
.kp-inv-id dl{display:grid;grid-template-columns:auto auto;justify-content:end;gap:4px 18px;margin:0;font-size:12px}
.kp-inv-id dt{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);align-self:center}
.kp-inv-id dd{margin:0}
.kp-inv-to{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:24px 0}
.kp-inv-to p{margin:0;font-size:13px;line-height:1.6}
.kp-inv-lines{width:100%;border-collapse:collapse;font-size:12.5px}
.kp-inv-lines th{padding:9px 0;text-align:left;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--a-line2);border-bottom:1px solid var(--a-line2)}
.kp-inv-lines td{padding:12px 0;border-bottom:1px solid var(--a-line);vertical-align:top}
.kp-inv-lines th.n,.kp-inv-lines td.n{text-align:right;padding-left:18px;white-space:nowrap}
.kp-inv-lines td b{font-weight:400;font-size:13.5px}
.kp-inv-lines td span{display:block;margin-top:3px;font-size:11.5px;color:#5c554e}
.kp-inv-lines td span.fab{color:var(--ink)}
.kp-inv-lines td span.fab::before{content:"Fabric: ";color:var(--muted)}
.kp-inv-lines tr.ar td{padding:18px 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--a-line)}
.kp-inv-tot{display:flex;justify-content:flex-end;padding:20px 0 6px}
.kp-inv-tot dl{display:grid;grid-template-columns:auto auto;gap:7px 34px;margin:0;font-size:13px;min-width:300px}
.kp-inv-tot dt{color:#4a443e}
.kp-inv-tot dd{margin:0;text-align:right;white-space:nowrap}
.kp-inv-tot .b{padding-top:8px;border-top:1px solid var(--a-line2);font-size:14.5px;color:var(--ink)}
.kp-inv-tot .due{padding:10px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);font-size:15px;color:var(--ink)}
.kp-inv-notes{padding:22px 0 0}
.kp-inv-notes p:not(.l){margin:0;font-size:12.5px;line-height:1.6}
.kp-inv-foot{margin-top:30px;padding-top:18px;border-top:1px solid var(--a-line2)}
.kp-inv-foot p:not(.l){margin:0 0 4px;font-size:11.5px;line-height:1.6;color:#4a443e}
@media (max-width:640px){ .kp-inv-top,.kp-inv-to{flex-direction:column;grid-template-columns:1fr} .kp-inv-id{text-align:left} .kp-inv-id dl{justify-content:start} .kp-inv-tot dl{min-width:0;width:100%} }
@media print{
  html.kp-print-inv body *{visibility:hidden!important}
  html.kp-print-inv #kp-inv-doc,html.kp-print-inv #kp-inv-doc *{visibility:visible!important}
  html.kp-print-inv #kp-inv-doc{position:absolute;left:0;top:0;width:100%;max-width:none;margin:0;padding:0;border:0;box-shadow:none;background:#fff}
  html.kp-print-inv .site-header,html.kp-print-inv .kp-cursor,html.kp-print-inv .kp-curtain{display:none!important}
  @page{size:A4;margin:16mm}
}
/* the site's form labels are capitals; inside the schedule dialogs, the option cards and tick box read as plain text */
.kp-sch-modal .kp-sch-kind,.kp-sch-modal .kp-sch-check{text-transform:none!important;letter-spacing:0!important;font-size:13px!important;margin:0!important}
.kp-sch-modal .kp-sch-check{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:10px;color:var(--ink)}
.kp-sch-modal .kp-sch-check input{width:14px!important;height:14px!important;flex:none;margin:2px 0 0!important;padding:0!important;border:0!important}
.kp-sch-modal .kp-sch-kind input{width:1px!important;height:1px!important}
@media print{
  html.kp-print-inv,html.kp-print-inv body,html.kp-print-inv main,html.kp-print-inv .kp-app,html.kp-print-inv .kp-portal{background:#fff!important}
  html.kp-print-inv .footer,html.kp-print-inv .kp-app-bar,html.kp-print-inv .kp-app-foot,html.kp-print-inv .breadcrumb,html.kp-print-inv .kp-inv-acts,html.kp-print-inv .kp-a-back,html.kp-print-inv .kp-a-toast{display:none!important}
  html.kp-print-inv #kp-inv-doc{left:0!important;right:0!important;width:auto!important;box-sizing:border-box}
  html.kp-print-inv .kp-app{min-height:0!important}
}

/* ---------- Schedules: easier to read ---------- */
.kp-sch-kpi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.5fr);gap:0;border-top:1px solid var(--a-line);border-bottom:1px solid var(--a-line);margin:0 0 30px}
.kp-kpi{display:flex;flex-direction:column;gap:6px;padding:18px 20px 18px 0}
.kp-kpi+.kp-kpi,.kp-split{padding-left:20px;border-left:1px solid var(--a-line)}
.kp-kpi span,.kp-split-h{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-kpi b{font-weight:400;font-family:var(--serif);font-size:clamp(22px,2vw,28px);letter-spacing:-.01em;white-space:nowrap}
.kp-kpi em{font-style:normal;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-kpi-ok em{color:#4d6b45}
.kp-kpi-low em,.kp-kpi-bad em{color:#9a5a2c}
.kp-kpi-bad b{color:#8a3b2e}
.kp-split{display:flex;flex-direction:column;gap:10px;padding:18px 0 16px 20px}
.kp-split-h em{font-style:normal;text-transform:none;letter-spacing:0;font-family:var(--serif);font-size:12px;margin-left:6px}
.kp-split-bar{display:flex;height:10px;background:rgba(19,17,15,.06);overflow:hidden}
.kp-split-bar i{display:block;height:100%;transition:width .6s cubic-bezier(.16,1,.3,1)}
.kp-split i.cost{background:#bfb3a2}.kp-split i.ship{background:#8f8676}.kp-split i.profit{background:#13110f}
.kp-split ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 18px;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-split li{display:flex;align-items:center;gap:6px}
.kp-split li i{width:8px;height:8px;display:inline-block}
.kp-split li b{font-weight:400;color:var(--ink)}
.kp-split li em{font-style:normal}

.kp-sch-tools{display:flex;justify-content:space-between;align-items:center;gap:14px 24px;flex-wrap:wrap;margin:0 0 14px}
.kp-sch-tools-l,.kp-sch-tools-r{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.kp-sch-tools .btn{cursor:pointer}
.kp-sch-ghost{all:unset;cursor:pointer;display:inline-flex;align-items:center;height:34px;padding:0 14px;border:1px solid var(--a-line2);font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);transition:border-color .2s,background .2s}
.kp-sch-ghost:hover{border-color:var(--ink);background:rgba(255,253,248,.7)}
.kp-sch-find{width:240px;height:34px;margin:0;padding:0 12px;border:1px solid var(--a-line2);background:rgba(255,253,248,.6);font-family:var(--serif);font-size:13px;color:var(--ink);border-radius:0;outline:none}
.kp-sch-find:focus{border-color:var(--ink)}
.kp-sch-seg{display:inline-flex;border:1px solid var(--a-line2)}
.kp-sch-seg button{all:unset;cursor:pointer;height:32px;padding:0 14px;display:inline-flex;align-items:center;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);transition:background .2s,color .2s}
.kp-sch-seg button.on{background:var(--ink);color:var(--paper)}
.kp-sch-filter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.kp-sch-filter button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 12px;border:1px solid var(--a-line2);border-radius:14px;font-family:var(--serif);font-size:12.5px;color:var(--ink);transition:border-color .2s,background .2s}
.kp-sch-filter button em{font-style:normal;color:var(--muted);font-size:11.5px}
.kp-sch-filter button.on{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.kp-sch-filter button.on em{color:rgba(243,239,231,.7)}
.kp-sch-filter button i{width:8px;height:8px;border-radius:50%}

/* status colours: a quiet scale from first specified to delivered */
.s0{--st:#b9b1a6;--sb:rgba(185,177,166,.16)}.s1{--st:#b78b4b;--sb:rgba(183,139,75,.14)}.s2{--st:#6b7f4e;--sb:rgba(107,127,78,.14)}.s3{--st:#4f6475;--sb:rgba(79,100,117,.13)}.s4{--st:#7a5c7a;--sb:rgba(122,92,122,.12)}.s5{--st:#3f5b5a;--sb:rgba(63,91,90,.13)}.s6{--st:#13110f;--sb:rgba(19,17,15,.08)}
.kp-sch-filter button i{background:var(--st)}
.kp-sch select.kp-st{padding:5px 22px 6px 10px!important;border:1px solid var(--st)!important;border-radius:14px;background-color:var(--sb)!important;font-size:12px;color:var(--ink)}

.kp-sch{min-width:980px;font-size:13.5px}
.kp-sch.client{min-width:760px}
.kp-sch td{padding:14px 12px 14px 0;vertical-align:middle}
.kp-sch td.nm{width:auto;min-width:280px}
.kp-sch td.nm .sp{display:block;margin-top:4px;font-size:12.5px;color:#4a443e;line-height:1.4}
.kp-sch td.nm .sm{font-size:11px}
.kp-sch-type{display:inline-block;margin-left:8px;padding:1px 7px;border:1px solid var(--a-line2);border-radius:9px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);vertical-align:2px}
.kp-sch-open{font-size:15px}
.kp-sch td.n .v{font-size:14px}
.kp-sch td.n b.v{font-size:15px}
.kp-sch input[data-f]{width:76px;font-size:14px;padding:4px 0 5px;transition:border-color .2s,background .2s}
.kp-sch input[data-f]:hover{border-bottom-color:rgba(19,17,15,.45)}
.kp-sch input[data-f]:focus{background:rgba(255,253,248,.9)}
.kp-mg-in{display:inline-flex;align-items:baseline;gap:2px}
.kp-mg-in input[data-f]{width:46px}
.kp-mg-in i{font-style:normal;color:var(--muted);font-size:12px}
.kp-mg{display:block;margin:7px 0 0 auto;width:62px;height:3px;background:rgba(19,17,15,.08);overflow:hidden}
.kp-mg i{display:block;height:100%;transition:width .4s cubic-bezier(.16,1,.3,1),background .3s}
.kp-mg.ok i{background:#6b7f4e}.kp-mg.low i{background:#b78b4b}.kp-mg.bad i{background:#a3523f}
.kp-sch tr.flash td{animation:kp-sch-flash 1s ease}
@keyframes kp-sch-flash{0%{background:rgba(183,139,75,.12)}100%{background:transparent}}
.kp-sch tbody[hidden],.kp-sch tr[hidden]{display:none}
.kp-sch tr.kp-sch-area td{padding:26px 0 10px}
.kp-sch tr.kp-sch-area button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:10px}
.kp-sch tr.kp-sch-area button i{width:7px;height:7px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);transform:rotate(45deg) translate(-2px,-2px);transition:transform .3s}
.kp-sch-grp.shut tr.kp-sch-area button i{transform:rotate(-45deg)}
.kp-sch-grp.shut tr[data-row]{display:none}
.kp-sch tr.kp-sch-area span{font-size:9px;margin:0}
.kp-sch tr.kp-sch-area em{margin-left:14px}
.kp-sch tr.kp-sch-area b{font-weight:400;margin-left:14px;font-size:14px}
.kp-sch tr.kp-sch-area em.mg{margin-left:10px}

.kp-sch-cta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:22px 0 0}
.kp-sch-cta .btn{cursor:pointer}
.kp-sch-cta .kp-a-dim{font-family:var(--serif);font-size:12.5px}
/* selection bar: slides up from the bottom while lines are ticked */
.kp-sch-selbar{position:fixed;left:0;right:0;bottom:0;z-index:60;transform:translateY(110%);transition:transform .45s cubic-bezier(.16,1,.3,1);pointer-events:none}
.kp-sch-selbar.on{transform:none;pointer-events:auto}
.kp-sch-selbar-in{max-width:1440px;margin:0 auto 16px;width:calc(100% - 2 * var(--pad,24px));display:flex;align-items:center;justify-content:space-between;gap:14px 24px;flex-wrap:wrap;padding:14px 18px;background:var(--ink);color:var(--paper);box-shadow:0 20px 40px -20px rgba(19,17,15,.6)}
.kp-sch-selbar p{margin:0;font-family:var(--serif);font-size:14px}
.kp-sch-selbar p b{font-weight:400}
.kp-sch-selbar p span{margin-left:10px;color:rgba(243,239,231,.7);font-size:12.5px}
.kp-sch-selbar-acts{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.kp-sch-selbar label{display:inline-flex;align-items:center;gap:8px;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(243,239,231,.7)}
.kp-sch-selbar select,.kp-sch-selbar input{height:30px;margin:0;padding:0 8px;border:1px solid rgba(243,239,231,.35);background:transparent;color:var(--paper);font-family:var(--serif);font-size:12.5px;border-radius:0;outline:none;text-transform:none;letter-spacing:0}
.kp-sch-selbar input{width:56px}
.kp-sch-selbar select option{color:#13110f}
.kp-sch-selbar .kp-sch-ghost{height:30px;border-color:rgba(243,239,231,.35);color:var(--paper)}
.kp-sch-selbar .kp-sch-ghost:hover{background:rgba(243,239,231,.1)}
.kp-sch-selbar .btn{background:var(--paper)!important;color:var(--ink)!important;border-color:var(--paper)!important;cursor:pointer}
.kp-sch-x{all:unset;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(243,239,231,.7);border-bottom:1px solid currentColor}

/* quotes + invoices: what has been billed and paid */
.kp-sch-money{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--a-line);margin:0 0 26px}
.kp-sch-money>div{display:flex;flex-direction:column;gap:6px;padding:16px 16px 16px 0}
.kp-sch-money>div+div{padding-left:16px;border-left:1px solid var(--a-line)}
.kp-sch-money span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-sch-money b{font-weight:400;font-family:var(--serif);font-size:20px}
.kp-sch-money .due b{color:#9a5a2c}
.kp-sch-money-bar{grid-column:1/-1;display:flex;height:6px;background:rgba(19,17,15,.07);padding:0!important;border:0!important}
.kp-sch-money-bar i{display:block;height:100%}
.kp-sch-money-bar .paid{background:#6b7f4e}.kp-sch-money-bar .billed{background:#b78b4b}
.kp-sch-inv .amt{font-weight:400;font-family:var(--serif);font-size:15px;margin-left:auto;white-space:nowrap}
.kp-a-chip.hot{border-color:#b78b4b;color:#8a5a22}
@media (max-width:1000px){ .kp-sch-kpi{grid-template-columns:repeat(3,minmax(0,1fr))} .kp-split{grid-column:1/-1;border-left:0!important;padding-left:0!important;border-top:1px solid var(--a-line)} }
@media (max-width:640px){
  .kp-sch-kpi{grid-template-columns:1fr} .kp-kpi,.kp-kpi+.kp-kpi{padding:14px 0;border-left:0;border-bottom:1px solid var(--a-line)}
  .kp-sch-money{grid-template-columns:repeat(2,minmax(0,1fr))} .kp-sch-money>div:nth-child(3){padding-left:0;border-left:0}
  .kp-sch-find{width:100%} .kp-sch-tools-r{width:100%}
  .kp-sch-selbar-in{margin-bottom:0;width:100%}
}
.kp-sch-money .kp-sch-money-bar{flex-direction:row;gap:0}
.kp-app-main:has(.kp-sch-selbar.on){padding-bottom:130px}
/* margin range: target 60%, lowest 40% (the mark on each meter) */
.kp-mg{position:relative;overflow:visible;width:70px}
.kp-mg i{position:relative;z-index:1}
.kp-mg u{position:absolute;top:-3px;bottom:-3px;width:1px;background:rgba(19,17,15,.45);z-index:2}
.kp-sch tr.kp-sch-area em.mg.ok{color:#4d6b45}.kp-sch tr.kp-sch-area em.mg.low{color:#9a5a2c}.kp-sch tr.kp-sch-area em.mg.bad{color:#8a3b2e}
.kp-kpi-low em{color:#9a5a2c}.kp-kpi-bad em{color:#8a3b2e}

/* ---------- Schedules: products with cost sheets ---------- */
.kp-split i.product{background:#bfb3a2}.kp-split i.fabric{background:#d8cbb4}.kp-split i.shipping{background:#8f8676}.kp-split i.expense{background:#6e675c}
.kp-sch td.nm .fb{display:block;margin-top:3px;font-size:12px;color:var(--ink)}
.kp-sch-costs{display:inline;margin-right:8px;font-family:var(--serif);font-size:11px;color:var(--muted)}
.kp-sch td.nm .kp-sch-costs{display:block;margin-top:5px}
.kp-sch-gap{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:2px 9px;border:1px solid #c9a46e;border-radius:10px;background:rgba(183,139,75,.1);font-family:var(--serif);font-size:11px;color:#8a5a22}
.kp-sch-gap::before{content:"";width:6px;height:6px;border-radius:50%;background:#b78b4b}
.kp-sch-gap:hover{background:rgba(183,139,75,.2)}
.kp-sch-done{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-family:var(--serif);font-size:11px;color:#4d6b45}
.kp-sch-done::before{content:"";width:6px;height:6px;border-radius:50%;background:#6b7f4e}
.kp-sch-tools .kp-sch-done{margin:0;font-size:12.5px}
.kp-sch-gapall{border-color:#c9a46e!important;color:#8a5a22!important;background:rgba(183,139,75,.08)!important}
.kp-sch-warn{margin:0 0 16px;padding:11px 14px;border:1px solid #c9a46e;background:rgba(183,139,75,.08);font-family:var(--serif);font-size:12.5px;color:#6b4a1c}

.kp-sheet-modal .kp-modal-card{width:min(1180px,100%);padding:28px 30px 22px}
.kp-sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:18px;border-bottom:1px solid rgba(19,17,15,.14)}
.kp-sheet-head h2{margin:0}
.kp-sheet-status{display:inline-flex!important;align-items:center;gap:10px;margin:4px 0 0!important}
.kp-sheet-status select{padding:5px 22px 6px 10px;border:1px solid var(--st);border-radius:14px;background:var(--sb) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f'/%3E%3C/svg%3E") right 8px center/7px no-repeat;font-family:var(--serif);font-size:12.5px;color:var(--ink);-webkit-appearance:none;appearance:none;text-transform:none;letter-spacing:0;cursor:pointer}
.kp-sheet-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:30px;margin-top:20px}
.kp-sheet-main section{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid rgba(19,17,15,.1)}
.kp-sheet-main section:last-child{border-bottom:0;margin-bottom:0}
.kp-sheet-h{margin:0 0 14px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.kp-sheet-h span{margin-left:10px;text-transform:none;letter-spacing:0;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-sheet-modal .kp-sheet-fields{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0;gap:14px 20px}
.kp-sheet-modal .kp-a-span2{grid-column:span 2}.kp-sheet-modal .kp-a-span3{grid-column:1/-1}
.kp-sheet-h2{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.kp-sheet-h2 .kp-sheet-h{margin:0}
.kp-sheet-adds{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.kp-sheet-adds .kp-sch-ghost{height:30px}
.kp-sheet-adds select{height:30px;padding:0 26px 0 12px;border:1px solid rgba(19,17,15,.2);background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f'/%3E%3C/svg%3E") right 10px center/7px no-repeat;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);-webkit-appearance:none;appearance:none;border-radius:0;cursor:pointer}
.kp-sheet-wrap{overflow-x:auto}
.kp-sheet-t{width:100%;min-width:700px;border-collapse:collapse;font-family:var(--serif);font-size:13px}
.kp-sheet-t th{padding:8px 8px 8px 0;text-align:left;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid rgba(19,17,15,.2);white-space:nowrap}
.kp-sheet-t td{padding:9px 8px 9px 0;border-bottom:1px solid rgba(19,17,15,.08);vertical-align:top}
.kp-sheet-t .n{text-align:right}.kp-sheet-t .c{text-align:center}
.kp-sheet-t td.d{min-width:230px}
.kp-sheet-t .kind{display:block;margin-bottom:3px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-sheet-t tr.k-product .kind{color:var(--ink)}.kp-sheet-t tr.k-fabric .kind{color:#8a6a3c}.kp-sheet-t tr.k-shipping .kind{color:#4f6475}
.kp-sheet-t input,.kp-sheet-t select{margin:0;padding:3px 0 4px;border:0;border-bottom:1px solid rgba(19,17,15,.2);background:transparent;font-family:var(--serif);font-size:13px;color:var(--ink);border-radius:0;outline:none;-webkit-appearance:none;appearance:none;text-transform:none;letter-spacing:0;box-shadow:none;height:auto}
.kp-sheet-t input:focus,.kp-sheet-t select:focus{border-bottom-color:var(--ink)}
.kp-sheet-t td.d input{width:100%}
.kp-sheet-t td.d input.sub{margin-top:4px;font-size:11.5px;color:#5c554e}
.kp-sheet-t .hint{display:block;margin-top:4px;font-size:11px;color:var(--muted)}
.kp-sheet-t td.n input{width:64px;text-align:right}
.kp-sheet-t td.n select{width:42px;margin-left:4px;font-size:11.5px;color:var(--muted)}
.kp-sheet-t td select[data-k="basis"]{width:118px;font-size:12px}
.kp-sheet-t td select[data-k="cur"]{width:52px;font-size:12px}
.kp-sheet-t .pc{font-style:normal;color:var(--muted);margin-left:2px}
.kp-sheet-t .na{color:var(--muted);font-size:12px}
.kp-sheet-t td.aud{white-space:nowrap;padding-top:12px}
.kp-sheet-t input[type=checkbox]{width:14px;height:14px;margin-top:6px;accent-color:var(--ink);border:0;cursor:pointer;-webkit-appearance:auto;appearance:auto}
.kp-sheet-t td.x button{all:unset;cursor:pointer;width:22px;height:22px;display:grid;place-items:center;margin-top:2px;font-size:16px;color:var(--muted)}
.kp-sheet-t td.x button:hover{color:#8a3b2e}
.kp-sheet-checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}
.kp-sheet-checks li{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid rgba(19,17,15,.12);font-family:var(--serif);font-size:13px}
.kp-sheet-checks li i{width:8px;height:8px;border-radius:50%;flex:none}
.kp-sheet-checks li.in i{background:#6b7f4e}.kp-sheet-checks li.no i{background:#b9b1a6}.kp-sheet-checks li.gap{border-color:#c9a46e;background:rgba(183,139,75,.07)}.kp-sheet-checks li.gap i{background:#b78b4b}
.kp-sheet-checks li span{flex:1}
.kp-sheet-checks li em{font-style:normal;font-size:11.5px;color:var(--muted)}
.kp-sheet-checks li button{all:unset;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid currentColor}
.kp-sheet-checks li.no{color:var(--muted)}
.kp-sheet-side{position:sticky;top:0;align-self:start;padding:18px 18px 16px;border:1px solid rgba(19,17,15,.14);background:rgba(255,253,248,.7)}
.kp-sheet-sum{margin:0 0 14px}
.kp-sheet-sum>div{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-family:var(--serif);font-size:13px}
.kp-sheet-sum dt{color:#4a443e}.kp-sheet-sum dd{margin:0;white-space:nowrap}
.kp-sheet-sum .b{border-top:1px solid rgba(19,17,15,.18);margin-top:4px;padding-top:8px}
.kp-sheet-sum .b dt,.kp-sheet-sum .b dd{color:var(--ink)}
.kp-sheet-sum .m dt,.kp-sheet-sum .m dd{color:var(--muted);font-size:12px}
.kp-sheet-sum .big dd{font-size:17px}
.kp-sheet-sum .profit dd{color:#4d6b45}
.kp-sheet-margin{padding:12px 0 14px;margin-bottom:10px;border-top:1px solid rgba(19,17,15,.18);border-bottom:1px solid rgba(19,17,15,.18)}
.kp-sheet-margin label{display:flex!important;justify-content:space-between;align-items:center;margin:0 0 8px!important;font-family:Arial,Helvetica,sans-serif;font-size:8.5px!important;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.kp-sheet-margin input{width:52px;margin:0;padding:3px 0 4px;border:0;border-bottom:1px solid rgba(19,17,15,.3);background:transparent;font-family:var(--serif);font-size:18px;text-align:right;color:var(--ink);border-radius:0;outline:none;height:auto}
.kp-sheet-margin .kp-mg{width:100%;margin:6px 0 8px}
.kp-sheet-margin p{margin:0;font-family:var(--serif);font-size:12px}
.kp-sheet-margin p.ok{color:#4d6b45}.kp-sheet-margin p.low{color:#9a5a2c}.kp-sheet-margin p.bad{color:#8a3b2e}
@media (max-width:900px){ .kp-sheet-body{grid-template-columns:1fr} .kp-sheet-side{position:static} .kp-sheet-modal .kp-sheet-fields{grid-template-columns:repeat(2,minmax(0,1fr))} .kp-sheet-checks{grid-template-columns:1fr} }
@media (max-width:560px){ .kp-sheet-modal .kp-sheet-fields{grid-template-columns:1fr} .kp-sheet-modal .kp-a-span2{grid-column:auto} }

/* ---------- Schedules: adding products, portfolio, suppliers ---------- */
.kp-sheet .kp-modal-foot,.kp-pf-modal .kp-modal-foot{position:sticky;bottom:-22px;z-index:3;margin:22px -30px -22px;padding:14px 30px 16px;background:var(--paper);border-top:1px solid rgba(19,17,15,.14)}
.kp-pf-modal .kp-modal-foot{bottom:-24px;margin-bottom:-24px}
.kp-sch-quick{margin:4px 0 22px;padding:16px 18px 14px;border:1px solid var(--a-line2);background:rgba(255,253,248,.6)}
.kp-sch-quick-h{margin:0 0 12px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.kp-sch-quick-h span{margin-left:10px;text-transform:none;letter-spacing:0;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-sch-quick-f{display:grid;grid-template-columns:2fr 1.1fr 1.8fr .55fr .8fr .7fr auto;gap:12px 14px;align-items:end}
.kp-sch-quick label{display:flex!important;flex-direction:column;gap:5px;margin:0!important;min-width:0}
.kp-sch-quick label span{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-sch-quick input,.kp-sch-quick select{width:100%;margin:0;padding:6px 0 7px;border:0;border-bottom:1px solid var(--a-line2);background:transparent;font-family:var(--serif);font-size:14px;color:var(--ink);border-radius:0;outline:none;height:auto;-webkit-appearance:none;appearance:none;text-transform:none;letter-spacing:0;box-shadow:none}
.kp-sch-quick select{padding-right:16px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f'/%3E%3C/svg%3E") right 2px center/7px no-repeat;cursor:pointer}
.kp-sch-quick input:focus,.kp-sch-quick select:focus{border-bottom-color:var(--ink)}
.kp-sch-quick .btn{cursor:pointer;height:36px}
.kp-sch-quick-hint{margin:8px 0 0;min-height:16px;font-family:var(--serif);font-size:12px;color:#4d6b45}
.kp-sch td.nm .nmx{display:flex;gap:14px;align-items:flex-start}
.kp-sch td.nm .nmw{min-width:0}
.kp-sch-thumb{flex:none;width:52px;height:52px;object-fit:contain;background:#fffdf8;border:1px solid var(--a-line)}
.kp-sch-thumb.none{display:block;background:repeating-linear-gradient(135deg,rgba(19,17,15,.04) 0 6px,transparent 6px 12px)}
.kp-sch.client .kp-sch-thumb{width:60px;height:60px}
.kp-sheet-t td.d select.sub{display:block;width:100%;margin-top:4px;padding:3px 16px 4px 0;font-size:11.5px;color:#5c554e;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f'/%3E%3C/svg%3E") right 2px center/7px no-repeat}
.kp-sheet-fields select[name="supplier"]{background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f'/%3E%3C/svg%3E") right 2px center/7px no-repeat!important;padding-right:16px!important;cursor:pointer}
/* portfolio picker */
.kp-pf-modal .kp-modal-card{width:min(980px,100%)}
.kp-pf-find{width:100%;margin:6px 0 16px}
.kp-pf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.kp-pf-card{position:relative;border:1px solid rgba(19,17,15,.14);background:#fffdf8;transition:border-color .2s,box-shadow .2s}
.kp-pf-card[hidden]{display:none}
.kp-pf-card.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.kp-pf-pick{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:4px;width:100%;box-sizing:border-box;padding:12px 14px 10px}
.kp-pf-pick img{width:100%;height:150px;object-fit:contain;margin-bottom:6px}
.kp-pf-pick .n{font-family:var(--serif);font-size:15px;color:var(--ink)}
.kp-pf-pick .m{font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-pf-pick .c{font-family:var(--serif);font-size:11.5px;color:#4d6b45}
.kp-pf-pick .tick{position:absolute;top:10px;right:10px;width:20px;height:20px;border:1px solid rgba(19,17,15,.3);border-radius:50%;background:#fffdf8}
.kp-pf-card.on .tick{background:var(--ink);border-color:var(--ink)}
.kp-pf-card.on .tick::after{content:"";position:absolute;left:6px;top:3px;width:5px;height:9px;border-right:1.5px solid #fffdf8;border-bottom:1.5px solid #fffdf8;transform:rotate(45deg)}
.kp-pf-qty{display:flex;align-items:center;gap:0;margin:0 14px 12px;border:1px solid rgba(19,17,15,.18);width:max-content}
.kp-pf-qty button{all:unset;cursor:pointer;width:28px;height:28px;display:grid;place-items:center;font-size:15px;color:var(--ink)}
.kp-pf-qty button:hover{background:rgba(19,17,15,.05)}
.kp-pf-qty input{width:38px;height:28px;margin:0;padding:0;border:0;border-left:1px solid rgba(19,17,15,.18);border-right:1px solid rgba(19,17,15,.18);background:transparent;text-align:center;font-family:var(--serif);font-size:13px;border-radius:0;outline:none}
.kp-pf-opts{margin-top:18px}
.kp-pf-modal .kp-modal-foot .kp-a-dim{margin-right:auto;font-family:var(--serif);font-size:12.5px}
/* suppliers */
.kp-sp-note{font-family:var(--serif);font-size:12.5px}
.kp-sp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.kp-sp-card{all:unset;cursor:pointer;box-sizing:border-box;display:flex;flex-direction:column;gap:6px;padding:20px 20px 18px;border:1px solid var(--a-line);background:var(--a-card);transition:border-color .3s,transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s}
.kp-sp-card:hover{border-color:var(--a-line2);transform:translateY(-2px);box-shadow:0 14px 30px -22px rgba(19,17,15,.35)}
.kp-sp-card .n{font-family:var(--serif);font-size:17px;color:var(--ink)}
.kp-sp-card .p{font-family:var(--serif);font-size:12.5px;color:var(--muted)}
.kp-sp-card .m{font-family:var(--serif);font-size:13px;color:#3b3631}
.kp-sp-card .f{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.kp-sp-card .f span{padding:2px 9px;border:1px solid var(--a-line2);border-radius:10px;font-family:var(--serif);font-size:11.5px;color:var(--ink)}
.kp-sp-card .c{margin-top:8px;padding-top:10px;border-top:1px solid var(--a-line);font-family:var(--serif);font-size:12px;color:#3b3631}
.kp-sp-card .c.dim{color:var(--muted)}
@media (max-width:1100px){ .kp-sch-quick-f{grid-template-columns:repeat(3,minmax(0,1fr))} .kp-sch-quick .w2{grid-column:span 2} }
@media (max-width:760px){ .kp-pf-grid{grid-template-columns:repeat(2,minmax(0,1fr))} .kp-sch-quick-f{grid-template-columns:repeat(2,minmax(0,1fr))} .kp-sch-quick .w2{grid-column:1/-1} }
@media (max-width:480px){ .kp-pf-grid{grid-template-columns:1fr} }
.kp-modal-card:focus{outline:none}

/* ---------- Schedules: cleaner reading ---------- */
.kp-sch td{padding-top:16px;padding-bottom:16px}
.kp-sch td.nm .sp{margin-top:3px;font-size:12.5px;color:var(--muted)}
.kp-sch td.nm .fb{margin-top:3px;font-size:12px;color:#5c554e}
.kp-sch td.nm .fb::before{content:"Fabric · ";color:var(--muted)}
.kp-sch td.nm .kp-sch-gap{margin-top:7px}
.kp-sch td.sup{width:16%;font-family:var(--serif);font-size:12.5px;color:#4a443e;line-height:1.35}
.kp-sch td.sup .dim{color:var(--muted)}
.kp-sch td.n .v{font-size:14px}
.kp-sch td.n .sm{margin-top:4px}
.kp-sch input[data-f="qty"]{width:44px}
.kp-sch-thumb{width:46px;height:46px}
.kp-sch td.nm .nmx{gap:12px}
.kp-sch-filter button.gap{border-color:#c9a46e;color:#8a5a22}
.kp-sch-filter button.gap i{background:#b78b4b}
.kp-sch-filter button.gap.on{background:#8a5a22;border-color:#8a5a22;color:#fffdf8}
.kp-sch-filter button.gap.on em{color:rgba(255,253,248,.75)}
.kp-sch-quick{padding:14px 18px 12px}
.kp-sch-quick-h{margin-bottom:10px}
.kp-sch-quick-hint{min-height:0;margin-top:6px}
.kp-sch-quick-hint:empty{display:none}
.kp-kpi em{font-size:12px}
.kp-split-h{margin-bottom:2px}
.kp-pf-pick .c.none{color:var(--muted)}
.kp-sch tr.kp-sch-area em{margin-left:10px;font-size:12px}
.kp-sch tr.kp-sch-area em.mg{margin-left:12px}
.kp-sch tr.kp-sch-area em.mg.ok{color:#4d6b45}.kp-sch tr.kp-sch-area em.mg.low{color:#9a5a2c}.kp-sch tr.kp-sch-area em.mg.bad{color:#8a3b2e}
.kp-sch.client td.nm{min-width:340px}

/* ---------- Schedules: quieter screen ---------- */
.kp-sch-kpi{border-bottom:0;margin-bottom:34px}
.kp-kpi b{font-size:clamp(22px,1.9vw,26px)}
.kp-split-bar{height:5px}
.kp-split ul{gap:4px 16px}
.kp-split li i{width:6px;height:6px;border-radius:50%}
.kp-split li em{color:var(--ink)}
.kp-sch-tools{margin-bottom:18px}
.kp-sch-tools-l{gap:10px}
.kp-sch-find{width:200px;height:auto;padding:6px 0 7px;border:0;border-bottom:1px solid var(--a-line2);background:transparent}
.kp-sch-seg{border:0;gap:14px}
.kp-sch-seg button{height:auto;padding:4px 0;border-bottom:1px solid transparent}
.kp-sch-seg button.on{background:none;color:var(--ink);border-bottom-color:var(--ink)}
/* filters: plain words, the chosen one underlined */
.kp-sch-filter{gap:20px;margin:0 0 6px;padding-bottom:12px;border-bottom:1px solid var(--a-line)}
.kp-sch-filter button,.kp-sch-filter button.gap{height:auto;padding:2px 0;gap:5px;border:0;border-bottom:1px solid transparent;border-radius:0;background:none!important;font-size:13px;color:var(--muted)}
.kp-sch-filter button i{display:none}
.kp-sch-filter button em,.kp-sch-filter button.on em,.kp-sch-filter button.gap.on em{color:rgba(19,17,15,.38);font-size:11px}
.kp-sch-filter button:hover{color:var(--ink)}
.kp-sch-filter button.on{color:var(--ink);border-bottom-color:var(--ink)}
.kp-sch-filter button.gap{color:#9a5a2c}
.kp-sch-filter button.gap.on{color:#8a5a22;border-bottom-color:#8a5a22}
/* quick add: one quiet line */
.kp-sch-quick{margin:0 0 4px;padding:14px 0 16px;border:0;border-bottom:1px solid var(--a-line);background:none}
.kp-sch-quick .btn{height:32px}
/* table */
.kp-sch thead th{font-size:7.5px}
.kp-sch input[data-f]{border-bottom-color:transparent!important}
.kp-sch tr:hover input[data-f]{border-bottom-color:rgba(19,17,15,.2)!important}
.kp-sch input[data-f]:focus{border-bottom-color:var(--ink)!important;background:none}
.kp-mg-in{justify-content:flex-end}
.kp-mg-in input[data-f]{width:34px;text-align:right}
.kp-mg-in.ok input{color:#4d6b45}.kp-mg-in.low input{color:#9a5a2c}.kp-mg-in.bad input{color:#8a3b2e}
.kp-mg-in.ok i{color:#4d6b45}.kp-mg-in.low i{color:#9a5a2c}.kp-mg-in.bad i{color:#8a3b2e}
.kp-sch td.n b.v{font-size:14.5px}
.kp-sch td.nm .sp{font-size:12px}
.kp-sch td.nm .fb{font-size:11.5px}
.kp-sch-thumb.none{background:rgba(19,17,15,.035);border-color:transparent}
/* status: words with a small dot, no box */
.kp-sch select.kp-st{padding:4px 16px 4px 13px!important;border:0!important;border-radius:0;font-size:12.5px;cursor:pointer;
  background:radial-gradient(circle,var(--st) 0 3px,transparent 3.5px) left center/8px 8px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f' fill-opacity='.35'/%3E%3C/svg%3E") right 2px center/7px no-repeat!important}
.kp-sch td.st{width:120px}
.kp-sch tr.kp-sch-area td{padding:30px 0 10px}
.kp-sch tr.kp-sch-area b{font-size:13px;color:#4a443e}
.kp-sch tr.kp-sch-area em.mg{font-size:11.5px}
/* selection bar: only there while products are ticked */
.kp-sch-selbar{visibility:hidden;transition:transform .45s cubic-bezier(.16,1,.3,1),visibility 0s .45s}
.kp-sch-selbar.on{visibility:visible;transition:transform .45s cubic-bezier(.16,1,.3,1)}
.kp-sch-selbar-in{padding:12px 18px}
.kp-sch-selbar p{font-size:13.5px}
.kp-sch-wrap{margin-bottom:10px}
@media (max-width:760px){ .kp-sch-tools-l{width:100%} .kp-sch-find{width:100%} .kp-sch-tools-r{gap:16px} }
.kp-sch-quick{border-bottom:0;padding-bottom:18px}
.kp-sch-quick input::-webkit-calendar-picker-indicator{display:none!important;opacity:0}
.kp-sch-wrap .kp-sch thead th{border-top:1px solid var(--a-line)}

/* ---------- Cost sheet: simpler cost table ---------- */
.kp-sch-thumb.draw{object-fit:cover;background:#ede8df}
.kp-sheet-t{min-width:640px;font-size:13px}
.kp-sheet-t th{padding:0 10px 8px 0}
.kp-sheet-t td{padding:10px 10px 10px 0;vertical-align:baseline}
.kp-sheet-t tr.grp td{padding:20px 10px 6px 0;border-bottom:1px solid rgba(19,17,15,.16);font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.kp-sheet-t tr.grp td.n{font-family:var(--serif);font-size:12.5px;letter-spacing:0;text-transform:none;color:var(--muted)}
.kp-sheet-t tbody tr.grp:first-child td{padding-top:6px}
.kp-sheet-t tr.none td{padding:12px 0;font-size:12px;color:var(--muted);border-bottom:0}
/* fields read as text until hovered or edited */
.kp-sheet-t input:not([type=checkbox]),.kp-sheet-t select{border-bottom-color:transparent!important;transition:border-color .2s}
.kp-sheet-t tr:hover input:not([type=checkbox]),.kp-sheet-t tr:hover select{border-bottom-color:rgba(19,17,15,.18)!important}
.kp-sheet-t input:focus,.kp-sheet-t select:focus{border-bottom-color:var(--ink)!important}
.kp-sheet-t select{background:none!important;padding-right:0!important;cursor:pointer}
.kp-sheet-t td.d{min-width:220px;width:44%}
.kp-sheet-t td.d input.nm{font-size:13.5px}
.kp-sheet-t .kind{margin:0 0 2px;font-family:var(--serif);font-size:11px;letter-spacing:0;text-transform:none;color:#8a6a3c}
.kp-sheet-t td.d input.sub,.kp-sheet-t td.d select.sub{margin-top:1px;font-size:11.5px;color:var(--muted)}
.kp-sheet-t td.d input.sub:placeholder-shown{opacity:0;height:0;padding:0;transition:none}
.kp-sheet-t tr:hover td.d input.sub:placeholder-shown,.kp-sheet-t td.d input.sub:placeholder-shown:focus{opacity:1;height:auto;padding:3px 0 4px}
.kp-sheet-t tr.k-fabric td.d input.sub:placeholder-shown{opacity:1;height:auto;padding:3px 0 4px}
.kp-sheet-t .hint{margin-top:1px;font-size:11.5px}
.kp-sheet-t td.q{white-space:nowrap;width:90px}
.kp-sheet-t td.q input{width:40px}
.kp-sheet-t td.q select{width:auto;margin-left:3px;font-size:12px;color:var(--muted)}
.kp-sheet-t td.cost{white-space:nowrap}
.kp-sheet-t .cx{display:inline-flex;align-items:baseline;gap:5px}
.kp-sheet-t .cx input{width:64px;text-align:right}
.kp-sheet-t .cx select[data-k="cur"]{width:auto;font-size:12px;color:var(--muted)}
.kp-sheet-t .cx select.bs{width:auto;font-size:12px;color:var(--muted)}
.kp-sheet-t tr:hover .cx select{color:var(--ink)}
.kp-sheet-t td.aud{width:96px;padding-top:10px;font-size:13.5px;color:var(--ink)}
.kp-sheet-t td.c{width:52px}
.kp-sheet-t input[type=checkbox]{margin-top:0;vertical-align:-2px}
.kp-sheet-t td.x{width:22px}
.kp-sheet-t td.x button{margin-top:-3px;opacity:0;transition:opacity .2s}
.kp-sheet-t tr:hover td.x button,.kp-sheet-t td.x button:focus{opacity:1}
@media (hover:none){ .kp-sheet-t td.x button{opacity:1} .kp-sheet-t td.d input.sub:placeholder-shown{opacity:1;height:auto;padding:3px 0 4px} }
.kp-sheet-adds{margin-top:12px;gap:22px}
.kp-sheet-adds .kp-sch-ghost,.kp-sheet-adds select{height:auto;padding:4px 0;border:0;border-bottom:1px solid transparent;background:none;font-family:var(--serif);font-size:12.5px;letter-spacing:0;text-transform:none;color:var(--ink)}
.kp-sheet-adds select{padding-right:14px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f'/%3E%3C/svg%3E") right 0 center/7px no-repeat}
.kp-sheet-adds .kp-sch-ghost:hover,.kp-sheet-adds select:hover{background-color:transparent;border-bottom-color:var(--ink)}

/* ---------- Cost sheet: one calm page ---------- */
.kp-sheet-modal .kp-modal-card{padding:26px 30px 22px}
.kp-sheet-head{display:flex;align-items:center;gap:18px;padding-bottom:20px}
.kp-sheet-pic{flex:none;width:76px;height:76px;object-fit:contain;background:#fffdf8;border:1px solid rgba(19,17,15,.1)}
.kp-sheet-modal .kp-sheet-id{display:block;flex:1;min-width:0}
.kp-sheet-name{display:block;width:100%;margin:0 0 10px;padding:0 0 2px;border:0;border-bottom:1px solid transparent;background:none;font-family:var(--serif);font-size:clamp(22px,2.2vw,28px);line-height:1.15;color:var(--ink);outline:none;border-radius:0}
.kp-sheet-name:hover{border-bottom-color:rgba(19,17,15,.15)}.kp-sheet-name:focus{border-bottom-color:var(--ink)}
.kp-sheet-row{display:flex;flex-wrap:wrap;gap:10px 22px}
.kp-sheet-mini{display:flex!important;align-items:baseline;gap:7px;margin:0!important}
.kp-sheet-mini span{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-sheet-mini input,.kp-sheet-mini select{width:120px;margin:0;padding:2px 0 3px;border:0;border-bottom:1px solid transparent;background:none;font-family:var(--serif);font-size:13px;color:var(--ink);outline:none;border-radius:0;-webkit-appearance:none;appearance:none;text-transform:none;letter-spacing:0;height:auto;box-shadow:none}
.kp-sheet-mini.w select{width:auto;max-width:230px;cursor:pointer}
.kp-sheet-mini.s input{width:34px}.kp-sheet-mini.s select{width:auto;cursor:pointer}
.kp-sheet-mini input:hover,.kp-sheet-mini select:hover{border-bottom-color:rgba(19,17,15,.2)}
.kp-sheet-mini input:focus,.kp-sheet-mini select:focus{border-bottom-color:var(--ink)}
.kp-sheet-head>select.kp-st{align-self:flex-start;margin-top:6px;padding:4px 16px 4px 13px;border:0;font-family:var(--serif);font-size:13px;color:var(--ink);-webkit-appearance:none;appearance:none;cursor:pointer;
  background:radial-gradient(circle,var(--st) 0 3px,transparent 3.5px) left center/8px 8px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f' fill-opacity='.35'/%3E%3C/svg%3E") right 2px center/7px no-repeat}
.kp-sheet-body{grid-template-columns:minmax(0,1fr) 270px;gap:34px;margin-top:6px}
.kp-sheet-main section{padding-bottom:18px;margin-bottom:6px;border-bottom:0}
.kp-sheet-h span{color:#9a5a2c}
/* costs to check, inside the table */
.kp-sheet-t tbody[data-gaps] td{padding:9px 10px 9px 0;border-bottom:1px solid rgba(19,17,15,.08);font-size:13px;color:#8a5a22}
.kp-sheet-t tr.gap i{display:inline-block;width:6px;height:6px;margin-right:9px;border-radius:50%;background:#b78b4b;vertical-align:2px}
.kp-sheet-t tr.gap .acts{text-align:right;white-space:nowrap}
.kp-sheet-t tr.gap button,.kp-sheet-t tr.skipped button{all:unset;cursor:pointer;margin-left:16px;font-family:var(--serif);font-size:12.5px;color:var(--ink);border-bottom:1px solid rgba(19,17,15,.35)}
.kp-sheet-t tr.gap button+button{color:var(--muted);border-bottom-color:transparent}
.kp-sheet-t tr.gap button:hover{border-bottom-color:currentColor}
.kp-sheet-t tr.skipped td{font-size:11.5px!important;color:var(--muted)!important;border-bottom:0!important}
.kp-sheet-t tr.skipped button{margin-left:3px;font-size:11.5px;color:var(--muted)}
/* details: closed unless needed */
.kp-sheet-more{border-top:1px solid rgba(19,17,15,.12);padding-top:14px}
.kp-sheet-more summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:12px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.kp-sheet-more summary::-webkit-details-marker{display:none}
.kp-sheet-more summary::before{content:"+";font-family:var(--serif);font-size:14px;letter-spacing:0;width:10px}
.kp-sheet-more[open] summary::before{content:"\2212"}
.kp-sheet-more summary span{font-family:var(--serif);font-size:12px;letter-spacing:0;text-transform:none;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-sheet-more .kp-sheet-fields{margin-top:16px}
/* price panel */
.kp-sheet-side{padding:20px 20px 18px}
.kp-sheet-sum{margin:0}
.kp-sheet-sum>div{align-items:baseline;padding:6px 0}
.kp-sheet-sum dt small,.kp-sheet-sum dd small{display:block;font-size:11px;color:var(--muted)}
.kp-sheet-sum dd small{display:inline;margin-left:6px}
.kp-sheet-sum .b{border-top:0;margin:0;padding-top:0}
.kp-sheet-sum .b dd{font-size:15px}
.kp-sheet-sum .big{border-top:1px solid rgba(19,17,15,.16);margin-top:6px;padding-top:10px}
.kp-sheet-sum .big dd{font-size:20px}
.kp-sheet-margin{margin:16px 0 16px;padding:14px 0 12px}
.kp-sheet-margin input[data-mrange]{-webkit-appearance:none;appearance:none;width:100%;height:18px;margin:4px 0 0;padding:0;border:0;background:none;cursor:pointer;--c:#6b7f4e}
.kp-sheet-margin input[data-mrange].low{--c:#b78b4b}.kp-sheet-margin input[data-mrange].bad{--c:#a3523f}
.kp-sheet-margin input[data-mrange]::-webkit-slider-runnable-track{height:3px;background:linear-gradient(90deg,var(--c) var(--fill,50%),rgba(19,17,15,.1) var(--fill,50%))}
.kp-sheet-margin input[data-mrange]::-moz-range-track{height:3px;background:linear-gradient(90deg,var(--c) var(--fill,50%),rgba(19,17,15,.1) var(--fill,50%))}
.kp-sheet-margin input[data-mrange]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-top:-5.5px;border-radius:50%;background:#fffdf8;border:1.5px solid var(--ink)}
.kp-sheet-margin input[data-mrange]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:#fffdf8;border:1.5px solid var(--ink)}
.kp-sheet-scale{position:relative;height:16px;margin:2px 7px 6px}
.kp-sheet-scale span{position:absolute;top:0;transform:translateX(-50%);font-family:var(--serif);font-size:10.5px;color:var(--muted);white-space:nowrap}
.kp-sheet-scale span::before{content:"";position:absolute;left:50%;top:-8px;width:1px;height:6px;background:rgba(19,17,15,.35)}
.kp-sheet-margin p{font-size:12px}
@media (max-width:900px){ .kp-sheet-head{flex-wrap:wrap} .kp-sheet-pic{width:56px;height:56px} }
.kp-sheet-head>select.kp-st{width:auto!important;flex:none}
.kp-sheet-adds select{width:auto!important}
.kp-sheet-adds{align-items:baseline}
.kp-sheet-t .cx input::placeholder{color:rgba(19,17,15,.3)}
.kp-sheet-t .cx input:placeholder-shown{border-bottom-color:rgba(19,17,15,.2)!important}
@media (max-width:900px){ .kp-sheet-body{grid-template-columns:1fr} .kp-sheet-side{position:static} }
@media (max-width:560px){ .kp-sheet-modal .kp-modal-card{padding:20px 16px 18px} .kp-sheet-row{gap:8px 16px} .kp-sheet-head>select.kp-st{margin-top:0} }

/* ---------- Schedule: framed table, status filter, boxed quick add ---------- */
/* status filter */
.kp-sch-filter{align-items:center;gap:6px 22px;margin:0 0 16px;padding:14px 0;border-top:1px solid var(--a-line);border-bottom:1px solid var(--a-line)}
.kp-sch-fl{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.kp-sch-filter button,.kp-sch-filter button.gap{gap:7px;padding:5px 0;border:1px solid transparent;border-radius:16px;font-size:13.5px;color:#4a443e}
.kp-sch-filter button i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--st)}
.kp-sch-filter button.gap i{background:#b78b4b}
.kp-sch-filter button.on,.kp-sch-filter button.gap.on{padding:5px 13px;margin:0 -6px;border-color:rgba(19,17,15,.22);background:#e7e1d6!important;color:var(--ink)}
.kp-sch-filter button.gap.on{color:#8a5a22}
.kp-sch-filter button[data-sch-status=""] i{display:none}
.kp-sch-filter button:hover{color:var(--ink)}
.kp-sch-count{margin-left:auto;font-family:var(--serif);font-size:13px;color:var(--muted)}
/* quick add: a framed panel with a header strip */
.kp-sch-quick{margin:0 0 18px;padding:0;border:1px solid rgba(19,17,15,.13);background:#f6f3ed}
.kp-sch-quick-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:12px 16px;border-bottom:1px solid rgba(19,17,15,.1)}
.kp-sch-quick-h{display:block!important;margin:0!important;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.kp-sch-quick-h span{margin-left:12px;font-family:var(--serif);font-size:13px;letter-spacing:0;text-transform:none;color:#5c554e}
.kp-sch-quick-k{font-family:var(--serif);font-size:12.5px;color:var(--muted);white-space:nowrap}
.kp-sch-quick-f{padding:14px 16px 16px}
.kp-sch-quick-hint{margin:-6px 16px 12px!important}
/* the table sits in a frame: tinted header, shaded room bands, light product rows */
.kp-sch-wrap{border:1px solid rgba(19,17,15,.13);background:#faf8f3}
.kp-sch{border-collapse:collapse}
.kp-sch thead th{padding:16px 12px 14px 0;background:#ece7df;border-top:0!important;border-bottom:1px solid rgba(19,17,15,.13)}
.kp-sch thead th:first-child,.kp-sch td.ck{padding-left:18px;width:30px}
.kp-sch tr.kp-sch-area td{padding:14px 18px 13px;background:#e7e1d6;border-bottom:1px solid rgba(19,17,15,.12);border-top:0}
.kp-sch tbody tr[data-row] td{background:#faf8f3;border-bottom:1px solid rgba(19,17,15,.1)}
.kp-sch tbody tr[data-row]:hover td{background:#fffdf9}
.kp-sch tbody:last-child tr[data-row]:last-child td{border-bottom:0}
.kp-sch td.st{padding-right:18px}
.kp-sch-thumb{width:58px;height:58px;background:#fffdf8;border:1px solid rgba(19,17,15,.12)}
.kp-sch-thumb.draw{background:#ede8df}
.kp-sch td.nm .nmx{gap:16px;align-items:center}
.kp-sch td.nm .cd{display:block;margin-bottom:3px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-sch-open{font-size:15.5px}
.kp-sch td{padding-top:18px;padding-bottom:18px}
.kp-sch tr.flash td{animation:kp-sch-flash 1s ease}
@media (max-width:760px){ .kp-sch-quick-h span{display:block;margin:6px 0 0} .kp-sch-quick-k{display:none} }
.kp-sch-filter button.gap{color:#9a5a2c}
/* price panel: full breakdown */
.kp-sheet-side .kp-sheet-h[data-for]{margin:0 0 12px}
.kp-sheet-sum>div{padding:5px 0}
.kp-sheet-sum .b{border-top:1px solid rgba(19,17,15,.18);margin-top:4px;padding-top:8px}
.kp-sheet-sum .b dd{font-size:13px}
.kp-sheet-sum .m dt,.kp-sheet-sum .m dd{color:var(--muted);font-size:12px}
.kp-sheet-sum .big dd{font-size:18px}
.kp-sheet-sum .big{margin-top:6px;padding-top:10px}
.kp-sheet-margin{margin:12px 0 12px;border-top:1px solid rgba(19,17,15,.18);border-bottom:1px solid rgba(19,17,15,.18)}

/* ---------- Supplier page: details + products with prices ---------- */
a.kp-sp-card{text-decoration:none}
.kp-sp-info{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:0 0 34px;border-top:1px solid var(--a-line);border-bottom:1px solid var(--a-line)}
.kp-sp-info>div{padding:14px 16px 14px 0;min-width:0}
.kp-sp-info>div+div{padding-left:16px;border-left:1px solid var(--a-line)}
.kp-sp-info>div.w{grid-column:1/-1;border-left:0;padding-left:0;border-top:1px solid var(--a-line)}
.kp-sp-info dt{margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-sp-info dd{margin:0;font-family:var(--serif);font-size:13.5px;color:var(--ink);overflow-wrap:anywhere}
.kp-sp-info dd a{color:inherit}
.kp-sp-info .dim{color:var(--muted)}
.kp-sp-prodhead{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 14px}
.kp-sp-prodhead .kp-sheet-h{margin:0}
.kp-sp-prodhead .kp-sheet-h span{color:var(--muted)}
.kp-sp-prodhead .kp-sch-tools-r{display:flex;align-items:center;gap:14px}
.kp-spp{min-width:900px}
.kp-spp td{vertical-align:middle}
.kp-spp td:first-child,.kp-spp th:first-child{padding-left:18px}
.kp-spp td.cat{font-family:var(--serif);font-size:13px;color:#4a443e}
.kp-spp td .sm{display:block;margin-top:3px;font-size:11px;color:var(--muted)}
.kp-spp td.pr{white-space:nowrap}
.kp-spp-price{display:inline-flex;align-items:baseline;gap:6px}
.kp-spp-price input{width:80px;margin:0;padding:3px 0 4px;border:0;border-bottom:1px solid rgba(19,17,15,.22);background:none;font-family:var(--serif);font-size:15px;text-align:right;color:var(--ink);outline:none;border-radius:0}
.kp-spp-price input::placeholder{font-size:12.5px;color:#9a5a2c}
.kp-spp-price input:focus{border-bottom-color:var(--ink)}
.kp-spp-price select{margin:0;padding:3px 0 4px;border:0;background:none;font-family:var(--serif);font-size:12.5px;color:var(--muted);-webkit-appearance:none;appearance:none;cursor:pointer;width:auto}
.kp-spp td.ld,.kp-spp td.up{font-family:var(--serif);font-size:12.5px;color:#4a443e;white-space:nowrap}
.kp-spp td.n[data-aud]{font-family:var(--serif);font-size:13.5px;color:#4a443e;white-space:nowrap}
.kp-spp td.x{padding-right:18px;text-align:right}
.kp-spp .dim{color:var(--muted)}
.kp-spp-empty{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.kp-spp-h{margin:24px 0 12px!important}
.kp-pf-pick .m.sp{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
@media (max-width:1000px){ .kp-sp-info{grid-template-columns:repeat(3,minmax(0,1fr))} .kp-sp-info>div:nth-child(4){border-left:0;padding-left:0} .kp-sp-info>div:nth-child(n+4){border-top:1px solid var(--a-line)} }
@media (max-width:560px){ .kp-sp-info{grid-template-columns:repeat(2,minmax(0,1fr))} .kp-sp-info>div{border-left:0!important;padding-left:0!important;border-top:1px solid var(--a-line)} }
.kp-spp td.ld,.kp-spp th:nth-child(5){padding-left:28px}
.kp-spp td.up,.kp-spp th:nth-child(6){padding-left:10px}
.kp-spp-form .kp-spp-h{margin:22px 0 0!important}
.kp-spp-form .kp-spp-h+.kp-a-fields{margin-top:6px}

/* ================= Programa-style views ================= */
.s7{--st:#8a6aa0;--sb:rgba(138,106,160,.13)}
/* schedule views */
.kp-sch-views a em.hot{display:inline-grid;place-items:center;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:#9a5a2c;color:#fffdf8;font-size:8.5px;letter-spacing:0}
.kp-sch-views a em.go{display:inline-grid;place-items:center;min-width:15px;height:15px;padding:0 4px;border-radius:8px;background:#4d6b45;color:#fffdf8;font-size:8.5px;letter-spacing:0}
/* client review chips */
.kp-rv{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:2px 9px 3px;border:1px solid rgba(19,17,15,.18);border-radius:10px;font-family:var(--serif);font-style:normal;font-size:11.5px;color:#5c554e;white-space:nowrap}
.kp-rv::before{content:"";width:6px;height:6px;border-radius:50%;background:#b9b1a6}
.kp-rv.waiting{border-color:#c3afd0;color:#6b4f80}.kp-rv.waiting::before{background:#8a6aa0}
.kp-rv.approved{border-color:#aebd9f;color:#4d6b45}.kp-rv.approved::before{background:#6b7f4e}
.kp-rv.changes{border-color:#d9a58c;color:#8a3b2e}.kp-rv.changes::before{background:#a3523f}
.kp-sch td.nm .kp-rv{margin-right:6px}
.kp-sch-link{display:inline-block;margin-top:6px;font-family:var(--serif);font-size:11.5px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
/* approvals */
.kp-ap-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid rgba(19,17,15,.13);background:#faf8f3;margin:0 0 18px}
.kp-ap-sum>div{display:flex;flex-direction:column;gap:4px;padding:16px 18px}
.kp-ap-sum>div+div{border-left:1px solid rgba(19,17,15,.1)}
.kp-ap-sum b{font-weight:400;font-family:var(--serif);font-size:26px}
.kp-ap-sum span{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-ap-sum .changes b{color:#8a3b2e}.kp-ap-sum .waiting b{color:#6b4f80}.kp-ap-sum .approved b{color:#4d6b45}
.kp-ap-acts{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:0 0 26px}
.kp-ap-acts .btn{cursor:pointer}
.kp-ap-acts .kp-a-dim{font-family:var(--serif);font-size:12.5px}
.kp-ap-sec{margin:0 0 26px}
.kp-ap-sec .kp-sheet-h span{color:var(--muted)}
.kp-ap-list{list-style:none;margin:0;padding:0;border:1px solid rgba(19,17,15,.13);background:#faf8f3}
.kp-ap-row{display:grid;grid-template-columns:58px minmax(0,2.2fr) minmax(0,1.3fr) minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px 18px}
.kp-ap-row+.kp-ap-row{border-top:1px solid rgba(19,17,15,.1)}
.kp-ap-row.changes{background:rgba(163,82,63,.045)}
.kp-ap-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.kp-ap-main .cd{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-ap-main .sp{font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-ap-say{margin:6px 0 0;padding:8px 12px;border-left:2px solid #a3523f;background:#fffdf8;font-family:var(--serif);font-size:13px;color:var(--ink)}
.kp-ap-st{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.kp-ap-st .m{font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-ap-pr{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-family:var(--serif)}
.kp-ap-pr b{font-weight:400;font-size:15px}.kp-ap-pr span{font-size:11px;color:var(--muted)}
.kp-ap-btn{display:flex;gap:14px;justify-content:flex-end;white-space:nowrap}
.kp-a-link.dim{color:var(--muted)}
/* procurement */
.kp-pc-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid rgba(19,17,15,.13);background:#faf8f3;margin:0 0 26px}
.kp-pc-strip>div{display:flex;flex-direction:column;gap:4px;padding:14px 16px;color:rgba(19,17,15,.38)}
.kp-pc-strip>div+div{border-left:1px solid rgba(19,17,15,.1)}
.kp-pc-strip>div.on{color:var(--ink)}
.kp-pc-strip b{font-weight:400;font-family:var(--serif);font-size:22px}
.kp-pc-strip span{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase}
.kp-pc-grp{margin:0 0 24px;border:1px solid rgba(19,17,15,.13);background:#faf8f3}
.kp-pc-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;background:#e7e1d6;border-bottom:1px solid rgba(19,17,15,.12)}
.kp-pc-head .n{margin:0;font-family:var(--serif);font-size:16px}.kp-pc-head .n a{color:inherit}
.kp-pc-head .m{margin:2px 0 0;font-family:var(--serif);font-size:12px;color:#5c554e}
.kp-pc-head .btn{cursor:pointer}
.kp-pc-t{width:100%;border-collapse:collapse;font-family:var(--serif);font-size:13px}
.kp-pc-t th{padding:12px 12px 10px 0;text-align:left;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid rgba(19,17,15,.1)}
.kp-pc-t td{padding:12px 12px 12px 0;border-bottom:1px solid rgba(19,17,15,.08);vertical-align:middle}
.kp-pc-t tr:last-child td{border-bottom:0}
.kp-pc-t th:first-child,.kp-pc-t td:first-child{padding-left:18px}
.kp-pc-t .n{text-align:right}
.kp-pc-t td.nm .nmx{display:flex;gap:12px;align-items:center}
.kp-pc-t .kp-sch-thumb{width:44px;height:44px}
.kp-pc-t .nmw{display:flex;flex-direction:column;gap:2px}
.kp-pc-t .cd{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-pc-t .sp{font-size:11.5px;color:var(--muted)}
.kp-pc-t .kp-rv{margin:0}
.kp-pc-sel{margin:0;padding:4px 16px 4px 13px;border:0;font-family:var(--serif);font-size:13px;color:var(--ink);-webkit-appearance:none;appearance:none;cursor:pointer;background:radial-gradient(circle,var(--pc,#b9b1a6) 0 3px,transparent 3.5px) left center/8px 8px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f' fill-opacity='.35'/%3E%3C/svg%3E") right 2px center/7px no-repeat}
.kp-pc-sel.p1{--pc:#b78b4b}.kp-pc-sel.p2{--pc:#4f6475}.kp-pc-sel.p3{--pc:#7a5c7a}.kp-pc-sel.p4{--pc:#3f5b5a}.kp-pc-sel.p5{--pc:#6b7f4e}
.kp-pc-t input[data-pc-eta]{width:96px;margin:0;padding:3px 0 4px;border:0;border-bottom:1px solid transparent;background:none;font-family:var(--serif);font-size:13px;color:var(--ink);outline:none;border-radius:0}
.kp-pc-t tr:hover input[data-pc-eta],.kp-pc-t input[data-pc-eta]:placeholder-shown{border-bottom-color:rgba(19,17,15,.18)}
.kp-pc-t input[data-pc-eta]:focus{border-bottom-color:var(--ink)}
.kp-pc-t a{color:var(--ink)}
.kp-pc-pos{margin:0 0 28px}
.kp-pc-pos .amt{font-weight:400;font-family:var(--serif);font-size:14px;margin-left:auto;white-space:nowrap}
/* purchase order dialog */
.kp-po-pick{list-style:none;margin:10px 0 20px;padding:0;border:1px solid rgba(19,17,15,.14)}
.kp-po-pick li+li{border-top:1px solid rgba(19,17,15,.1)}
.kp-po-pick label{display:flex!important;align-items:center;gap:12px;margin:0!important;padding:10px 12px;cursor:pointer;text-transform:none;letter-spacing:0}
.kp-po-pick input{accent-color:#13110f;width:15px;height:15px}
.kp-po-pick .kp-sch-thumb{width:40px;height:40px}
.kp-po-pick span{flex:1;display:flex;flex-direction:column;gap:2px;font-family:var(--serif);font-size:13.5px;color:var(--ink)}
.kp-po-pick b{font-weight:400}.kp-po-pick em{font-style:normal;font-size:11.5px;color:var(--muted)}
.kp-po-pick .kp-rv{margin:0}
/* specification document */
.kp-specdoc .kp-spec-room{margin:26px 0 0}
.kp-specdoc .kp-spec-room>.l{margin:0 0 6px;padding-bottom:8px;border-bottom:1px solid rgba(19,17,15,.25);font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase}
.kp-spec-it{display:grid;grid-template-columns:96px minmax(0,1fr) 210px;gap:20px;padding:14px 0;border-bottom:1px solid rgba(19,17,15,.1);break-inside:avoid}
.kp-spec-it img,.kp-spec-it>span{width:96px;height:96px;object-fit:contain;background:#faf8f3}
.kp-spec-it p{margin:0 0 3px;font-family:var(--serif);font-size:12.5px;color:#4a443e}
.kp-spec-it p.cd{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-spec-it p.n{font-size:16px;color:var(--ink)}
.kp-spec-it dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-family:var(--serif);font-size:12.5px}
.kp-spec-it dt{color:var(--muted)}.kp-spec-it dd{margin:0}
/* library */
.kp-lib-tools{display:flex;justify-content:space-between;align-items:center;gap:12px 24px;flex-wrap:wrap;margin:0 0 20px}
.kp-lib-tools .kp-sch-filter{flex:1;margin:0}
.kp-lib-tools .kp-sch-tools-r{display:flex;gap:16px;align-items:center}
.kp-lib-sup{margin:0;padding:6px 18px 7px 0;border:0;border-bottom:1px solid var(--a-line2);background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f'/%3E%3C/svg%3E") right 2px center/7px no-repeat;font-family:var(--serif);font-size:13px;color:var(--ink);-webkit-appearance:none;appearance:none;border-radius:0;max-width:260px;cursor:pointer}
.kp-lib-warn{color:#9a5a2c}
.kp-lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.kp-lib-card{display:flex;flex-direction:column;border:1px solid rgba(19,17,15,.13);background:#faf8f3;transition:border-color .3s,box-shadow .4s}
.kp-lib-card:hover{border-color:rgba(19,17,15,.3);box-shadow:0 14px 30px -24px rgba(19,17,15,.4)}
.kp-lib-card .img{height:190px;display:grid;place-items:center;background:#fffdf8;border-bottom:1px solid rgba(19,17,15,.08)}
.kp-lib-card .img img{max-width:80%;max-height:160px;object-fit:contain}
.kp-lib-card .b{flex:1;padding:14px 16px 6px}
.kp-lib-card .b p{margin:0 0 4px;font-family:var(--serif)}
.kp-lib-card .cd{font-family:Arial,Helvetica,sans-serif!important;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-lib-card .n{font-size:16px;color:var(--ink)}
.kp-lib-card .s{font-size:12px;color:var(--muted)}.kp-lib-card .s a{color:inherit}
.kp-lib-card .p{margin-top:8px!important;font-size:14px;color:var(--ink)}.kp-lib-card .p span{font-size:11.5px;color:var(--muted)}
.kp-lib-card .f{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px 14px}
.kp-lib-card .btn{cursor:pointer;height:32px}
/* dashboard: needs attention */
.kp-pulse-list{list-style:none;margin:0;padding:0;border:1px solid rgba(19,17,15,.13);background:#faf8f3}
.kp-pulse-list li+li{border-top:1px solid rgba(19,17,15,.09)}
.kp-pulse-list a{display:grid;grid-template-columns:10px minmax(0,1.3fr) minmax(0,1.2fr) minmax(0,1fr);gap:16px;align-items:baseline;padding:13px 18px;color:var(--ink);text-decoration:none;font-family:var(--serif);font-size:13.5px}
.kp-pulse-list a:hover{background:#fffdf9}
.kp-pulse-list i{width:7px;height:7px;border-radius:50%;background:#b9b1a6;align-self:center}
.kp-pulse-list .hot i{background:#a3523f}.kp-pulse-list .go i{background:#6b7f4e}
.kp-pulse-list .m{font-size:12.5px;color:#5c554e}
.kp-pulse-list .p{font-size:12px;color:var(--muted);text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* client portal: selections */
.kp-sel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:14px}
.kp-sel-card{display:flex;flex-direction:column;border:1px solid rgba(19,17,15,.14);background:#faf8f3}
.kp-sel-card .img{height:220px;display:grid;place-items:center;background:#fffdf8;border-bottom:1px solid rgba(19,17,15,.08)}
.kp-sel-card .img img{max-width:80%;max-height:190px;object-fit:contain}
.kp-sel-card .b{padding:16px 18px 18px;font-family:var(--serif)}
.kp-sel-card .b p{margin:0 0 4px;font-size:13px;color:#4a443e}
.kp-sel-card .cd{font-family:Arial,Helvetica,sans-serif!important;font-size:7.5px!important;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)!important}
.kp-sel-card h3{margin:0 0 6px;font-weight:400;font-size:19px}
.kp-sel-card dl{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:10px 0 14px;padding-top:10px;border-top:1px solid rgba(19,17,15,.1);font-size:13px}
.kp-sel-card dt{color:var(--muted)}.kp-sel-card dd{margin:0}
.kp-sel-acts{display:flex;align-items:center;gap:18px}
.kp-sel-acts .btn{cursor:pointer}
.kp-sel-say{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.kp-sel-say[hidden]{display:none}
.kp-sel-say textarea{width:100%;padding:10px 12px;border:1px solid rgba(19,17,15,.2);background:#fffdf8;font-family:var(--serif);font-size:13.5px;resize:vertical;border-radius:0}
.kp-sel-say .btn{align-self:flex-start;cursor:pointer}
.kp-sel-done{color:#4d6b45!important}
.kp-sel-chg{color:#8a3b2e!important}
.kp-sel-card.approved{opacity:.85}
.kp-sel-past{margin-top:22px}
.kp-sel-past summary{cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase}
.kp-sel-past summary span{margin-left:6px;color:var(--muted)}
.kp-sel-teaser .btn{cursor:pointer}
@media (max-width:900px){
  .kp-ap-row{grid-template-columns:48px minmax(0,1fr);}
  .kp-ap-st,.kp-ap-pr,.kp-ap-btn{grid-column:2}.kp-ap-pr{align-items:flex-start}.kp-ap-btn{justify-content:flex-start}
  .kp-pc-strip{grid-template-columns:repeat(3,minmax(0,1fr))} .kp-pc-strip>div:nth-child(4){border-left:0} .kp-pc-strip>div:nth-child(n+4){border-top:1px solid rgba(19,17,15,.1)}
  .kp-pc-grp{overflow-x:auto} .kp-pc-t{min-width:760px}
  .kp-ap-sum{grid-template-columns:repeat(2,minmax(0,1fr))} .kp-ap-sum>div:nth-child(3){border-left:0} .kp-ap-sum>div:nth-child(n+3){border-top:1px solid rgba(19,17,15,.1)}
  .kp-pulse-list a{grid-template-columns:10px minmax(0,1fr)} .kp-pulse-list .m,.kp-pulse-list .p{grid-column:2;text-align:left}
  .kp-spec-it{grid-template-columns:72px minmax(0,1fr)} .kp-spec-it dl{grid-column:2} .kp-spec-it img,.kp-spec-it>span{width:72px;height:72px}
}

/* ---------- joinery + stone in schedules ---------- */
.kp-sheet-attrs{margin:0 0 6px;padding:14px 16px 4px;border:1px solid rgba(19,17,15,.12);background:#f6f3ed}
.kp-sheet-attrs[hidden]{display:none}
.kp-sheet-attrs .kp-sheet-h{margin:0 0 10px}
.kp-sheet-attrgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:4px 20px}
.kp-sheet-attrgrid .kp-a-field{margin:0 0 10px}
.kp-sch td.nm .at{display:block;margin-top:3px;font-size:12px;color:#5c554e}
.kp-sch-fl.sep{margin-left:14px;padding-left:18px;border-left:1px solid var(--a-line)}
.kp-sch-quick-f{grid-template-columns:2fr .9fr 1fr 1.7fr .5fr .8fr .7fr auto}
@media (max-width:1100px){ .kp-sch-quick-f{grid-template-columns:repeat(3,minmax(0,1fr))} }
.kp-sch-share{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:5px 12px;border:1px solid rgba(19,17,15,.2);border-radius:14px;font-family:var(--serif);font-size:12.5px;color:#5c554e}
.kp-sch-share::before{content:"";width:7px;height:7px;border-radius:50%;background:#b9b1a6}
.kp-sch-share.on{border-color:#aebd9f;color:#4d6b45}.kp-sch-share.on::before{background:#6b7f4e}
.kp-sch-share:hover{border-color:var(--ink)}
.kp-pf-pick .c+.m.sp{margin-top:-2px}

/* ---------- client portal: the client's schedule ---------- */
.kp-a-head [data-cs-print]{align-self:flex-end;cursor:pointer}
.kp-cs-sch{margin:0 0 48px}
.kp-cs-top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:0 0 16px}
.kp-cs-top h2{margin:4px 0 0;font-weight:400;font-family:var(--serif);font-size:clamp(20px,2vw,26px)}
.kp-cs-top .btn{cursor:pointer}
.kp-cs-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid rgba(19,17,15,.13);background:#faf8f3;margin:0 0 18px}
.kp-cs-sum>div{display:flex;flex-direction:column;gap:5px;padding:16px 20px}
.kp-cs-sum>div+div{border-left:1px solid rgba(19,17,15,.1)}
.kp-cs-sum span{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-cs-sum b{font-weight:400;font-family:var(--serif);font-size:24px}
.kp-cs-sum em{font-style:normal;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-cs-sum .you b{color:#6b4f80}
.kp-cs-filter{display:flex;flex-wrap:wrap;gap:6px 20px;margin:0 0 6px;padding:10px 0 12px;border-bottom:1px solid var(--a-line)}
.kp-cs-filter button{all:unset;cursor:pointer;padding:5px 0;border:1px solid transparent;border-radius:16px;font-family:var(--serif);font-size:13.5px;color:#4a443e}
.kp-cs-filter button em{font-style:normal;font-size:11px;color:rgba(19,17,15,.4);margin-left:3px}
.kp-cs-filter button.on{padding:5px 13px;margin:0 -6px;border-color:rgba(19,17,15,.22);background:#e7e1d6;color:var(--ink)}
.kp-cs-room{margin:22px 0 0;border:1px solid rgba(19,17,15,.13);background:#faf8f3}
.kp-cs-rh{display:flex;justify-content:space-between;align-items:baseline;margin:0;padding:12px 18px;background:#e7e1d6;border-bottom:1px solid rgba(19,17,15,.12)}
.kp-cs-rh span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase}
.kp-cs-rh b{font-weight:400;font-family:var(--serif);font-size:14px}
.kp-cs-row{display:grid;grid-template-columns:96px minmax(0,1fr) 70px 120px 200px;gap:20px;align-items:start;padding:18px}
.kp-cs-row+.kp-cs-row{border-top:1px solid rgba(19,17,15,.09)}
.kp-cs-row.st-you{background:rgba(138,106,160,.05)}
.kp-cs-row .img{width:96px;height:96px;background:#fffdf8;border:1px solid rgba(19,17,15,.1);overflow:hidden}
.kp-cs-row .img img{width:100%;height:100%;object-fit:contain}
.kp-cs-row .d p{margin:0 0 3px;font-family:var(--serif);font-size:12.5px;color:#4a443e}
.kp-cs-row .d p span.l{display:inline-block;min-width:74px;color:var(--muted)}
.kp-cs-row .d .cd{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-cs-row h3{margin:0 0 5px;font-weight:400;font-family:var(--serif);font-size:17px}
.kp-cs-row .q{font-family:var(--serif);font-size:13.5px;text-align:right}
.kp-cs-row .q span.l,.kp-cs-row .pr span{display:block;font-size:11px;color:var(--muted)}
.kp-cs-row .q .v{white-space:nowrap}
.kp-cs-row .q span.l{margin-bottom:2px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase}
.kp-cs-row .pr{text-align:right;font-family:var(--serif)}
.kp-cs-row .pr b{font-weight:400;font-size:16px}
.kp-cs-row .st{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.kp-cs-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 4px;border:1px solid rgba(19,17,15,.18);border-radius:12px;font-family:var(--serif);font-size:12px;color:#5c554e;white-space:nowrap}
.kp-cs-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:#b9b1a6}
.kp-cs-pill.you{border-color:#c3afd0;color:#6b4f80}.kp-cs-pill.you::before{background:#8a6aa0}
.kp-cs-pill.ok{border-color:#aebd9f;color:#4d6b45}.kp-cs-pill.ok::before{background:#6b7f4e}
.kp-cs-pill.go{border-color:#a9b6c0;color:#3f5363}.kp-cs-pill.go::before{background:#4f6475}
.kp-cs-pill.done{border-color:rgba(19,17,15,.4);color:var(--ink)}.kp-cs-pill.done::before{background:var(--ink)}
.kp-cs-pill.chg{border-color:#d9a58c;color:#8a3b2e}.kp-cs-pill.chg::before{background:#a3523f}
.kp-cs-note{margin:0;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-cs-note.chg{color:#8a3b2e}.kp-cs-note.chg span{color:var(--muted)}
.kp-cs .kp-sel-acts{gap:14px;flex-wrap:wrap}
.kp-cs .kp-sel-say{width:100%}
.kp-cs-tot{display:grid;grid-template-columns:1fr auto;gap:6px 30px;max-width:340px;margin:22px 0 10px auto;font-family:var(--serif);font-size:14px}
.kp-cs-tot dt{color:#5c554e}.kp-cs-tot dd{margin:0;text-align:right}
.kp-cs-tot .b{padding-top:8px;border-top:1px solid rgba(19,17,15,.25);font-size:18px;color:var(--ink)}
.kp-cs .kp-a-note{text-align:right}
@media (max-width:900px){
  .kp-cs-row{grid-template-columns:72px minmax(0,1fr)} .kp-cs-row .img{width:72px;height:72px}
  .kp-cs-row .q,.kp-cs-row .pr,.kp-cs-row .st{grid-column:2;text-align:left}
  .kp-cs-sum{grid-template-columns:1fr} .kp-cs-sum>div+div{border-left:0;border-top:1px solid rgba(19,17,15,.1)}
  .kp-cs-top{flex-direction:column;align-items:flex-start}
}
@media print{ html.kp-print-inv .kp-cs .kp-sel-acts,html.kp-print-inv .kp-cs .kp-sel-say,html.kp-print-inv .kp-cs-filter{display:none!important} }

/* ---------- custom work on the public site: process steps, plans upload, materials library ---------- */
.kp-custom-lede{max-width:620px;margin:0 0 30px;font-family:var(--serif);font-size:15px;line-height:1.6;color:#4a443e}
.kp-custom-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line,rgba(19,17,15,.16))}
.kp-custom-steps li{position:relative;padding:22px 24px 26px 0;border-bottom:1px solid var(--line,rgba(19,17,15,.16))}
.kp-custom-steps li:not(:nth-child(3n+1)){padding-left:24px;border-left:1px solid var(--line,rgba(19,17,15,.16))}
.kp-custom-steps .n{display:block;margin-bottom:14px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;color:var(--muted)}
.kp-custom-steps h3{margin:0 0 8px;font-weight:400;font-family:var(--serif);font-size:19px;line-height:1.25}
.kp-custom-steps p{margin:0;font-family:var(--serif);font-size:13.5px;line-height:1.6;color:#4a443e}
.kp-matlink .text-link{display:inline-block;margin-top:14px}
.kp-plans .form-intro h2{margin:0 0 12px;font-weight:400;font-family:var(--serif);font-size:clamp(26px,3vw,36px)}
.kp-mats-filter{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0 0 28px;padding-bottom:14px;border-bottom:1px solid var(--line,rgba(19,17,15,.16))}
.kp-mats-filter button{all:unset;cursor:pointer;padding:5px 0;border:1px solid transparent;border-radius:16px;font-family:var(--serif);font-size:14px;color:#4a443e}
.kp-mats-filter button.on{padding:5px 14px;margin:0 -8px;border-color:rgba(19,17,15,.22);background:#e7e1d6;color:var(--ink)}
.kp-mats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 26px}
.kp-mat[hidden]{display:none}
.kp-mat .sw{aspect-ratio:4/3;overflow:hidden;background:#e7e1d6}
.kp-mat .sw img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.kp-mat:hover .sw img{transform:scale(1.04)}
.kp-mat .b{padding-top:16px}
.kp-mat .k{margin:0 0 6px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.kp-mat h3{margin:0 0 4px;font-weight:400;font-family:var(--serif);font-size:20px}
.kp-mat .t{margin:0 0 12px;font-family:var(--serif);font-size:13.5px;color:#4a443e}
.kp-mat dl{display:grid;grid-template-columns:auto 1fr;gap:5px 16px;margin:0 0 14px;padding-top:12px;border-top:1px solid var(--line,rgba(19,17,15,.16));font-family:var(--serif);font-size:13px}
.kp-mat dt{color:var(--muted)}.kp-mat dd{margin:0}
.kp-mats-note{margin:34px 0 0;max-width:640px;font-family:var(--serif);font-size:12.5px;color:var(--muted)}
@media (max-width:900px){ .kp-custom-steps{grid-template-columns:1fr 1fr} .kp-custom-steps li{padding-left:0!important;border-left:0!important} .kp-custom-steps li:nth-child(2n){padding-left:20px!important;border-left:1px solid var(--line,rgba(19,17,15,.16))!important} .kp-mats-grid{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .kp-custom-steps{grid-template-columns:1fr} .kp-custom-steps li:nth-child(2n){padding-left:0!important;border-left:0!important} .kp-mats-grid{grid-template-columns:1fr} }

/* ---------- drawings, slab photos, QC photos, site visits ---------- */
.kp-media-wrap{margin:0 0 14px}
.kp-media-wrap:empty{display:none}
.kp-media{padding:14px 0 16px;border-top:1px solid rgba(19,17,15,.12)}
.kp-media .kp-sheet-h span{color:var(--muted)!important}
.kp-dw{list-style:none;margin:0 0 10px;padding:0;border:1px solid rgba(19,17,15,.12);background:#fffdf8}
.kp-dw li{display:flex;align-items:baseline;gap:12px;padding:9px 12px;font-family:var(--serif);font-size:13px}
.kp-dw li+li{border-top:1px solid rgba(19,17,15,.08)}
.kp-dw li b{font-weight:400;min-width:48px}
.kp-dw li span{flex:1;color:#5c554e}
.kp-dw li.old{color:var(--muted)}.kp-dw li.old b{color:var(--muted)}
.kp-dw em{font-style:normal;font-size:11.5px;color:#9a5a2c}
.kp-x{all:unset;cursor:pointer;width:20px;text-align:center;font-size:15px;color:var(--muted)}
.kp-x:hover{color:#8a3b2e}
.kp-mg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin:0 0 10px}
.kp-mg-grid figure{position:relative;margin:0;border:1px solid rgba(19,17,15,.12);background:#fffdf8}
.kp-mg-grid figure.pick{border-color:#6b7f4e;box-shadow:inset 0 0 0 1px #6b7f4e}
.kp-mg-grid img{display:block;width:100%;height:100px;object-fit:cover;cursor:zoom-in}
.kp-mg-grid input{width:100%;margin:0;padding:6px 8px;border:0;border-top:1px solid rgba(19,17,15,.08);background:none;font-family:var(--serif);font-size:12px;color:var(--ink);outline:none;box-sizing:border-box}
.kp-mg-grid i{position:absolute;left:6px;top:6px;padding:2px 8px;border-radius:9px;background:#4d6b45;color:#fffdf8;font-style:normal;font-family:var(--serif);font-size:11px}
.kp-mg-grid .kp-x{position:absolute;right:4px;top:4px;width:22px;height:22px;line-height:22px;border-radius:50%;background:rgba(255,253,248,.92)}
.kp-media-add{display:inline-flex!important;align-items:center;cursor:pointer;margin:0!important;padding:4px 0;font-family:var(--serif);font-size:12.5px;letter-spacing:0;text-transform:none;color:var(--ink);border-bottom:1px solid transparent}
.kp-media-add:hover{border-bottom-color:var(--ink)}
.kp-media-add input{position:absolute;width:1px;height:1px;opacity:0}
.kp-ap-slab{margin:4px 0 0;font-family:var(--serif);font-size:12px;color:#4d6b45}
.kp-ap-slab.dim{color:var(--muted)}
.kp-sv{margin:0 0 28px}
.kp-sv .kp-sheet-h span{color:#9a5a2c}
.kp-sv-t{border:1px solid rgba(19,17,15,.13);background:#faf8f3}
.kp-sv-t input[type=date]{margin:0;padding:3px 0 4px;border:0;border-bottom:1px solid rgba(19,17,15,.18);background:none;font-family:var(--serif);font-size:13px;color:var(--ink);outline:none;border-radius:0}
.kp-pc-sel.sv0{--pc:#b78b4b}.kp-pc-sel.sv1{--pc:#4f6475}.kp-pc-sel.sv2{--pc:#6b7f4e}
.kp-sv .kp-a-note{margin-top:8px}
/* client schedule: slabs, drawings, photos, site visits */
.kp-cs-dw{margin:8px 0 0;font-family:var(--serif);font-size:12.5px;color:#4a443e}
.kp-cs-dw span.l{display:inline-block;min-width:74px;color:var(--muted)}
.kp-cs-dw em{font-style:normal;color:var(--muted)}
.kp-cs-dw .kp-a-link{margin-left:8px;cursor:pointer}
.kp-cs-slabs{margin:12px 0 0;padding:12px;border:1px solid rgba(19,17,15,.12);background:#fffdf8}
.kp-cs-slabs.need{border-color:#c3afd0}
.kp-cs-slabs .h,.kp-cs-ph .h{margin:0 0 8px!important;font-family:Arial,Helvetica,sans-serif!important;font-size:7.5px!important;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)!important}
.kp-cs-slabs .g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.kp-cs-slabs .sl{all:unset;cursor:pointer;display:flex;flex-direction:column;border:1px solid rgba(19,17,15,.14);background:#faf8f3;transition:border-color .2s,box-shadow .2s}
.kp-cs-slabs .sl:disabled{cursor:default}
.kp-cs-slabs .sl img{width:100%;height:84px;object-fit:cover}
.kp-cs-slabs .sl span{padding:5px 7px 6px;font-family:var(--serif);font-size:11px;color:#5c554e}
.kp-cs-slabs .sl.on{border-color:#6b4f80;box-shadow:inset 0 0 0 1px #6b4f80}
.kp-cs-slabs .sl.on span::before{content:"\2713  ";color:#6b4f80}
.kp-cs-slabs .m{margin:8px 0 0!important;font-size:12px!important;color:var(--muted)!important}
.kp-cs-ph{margin:12px 0 0}
.kp-cs-ph .g{display:flex;flex-wrap:wrap;gap:6px}
.kp-cs-ph button{all:unset;cursor:zoom-in}
.kp-cs-ph img{width:72px;height:72px;object-fit:cover;border:1px solid rgba(19,17,15,.12)}
.kp-cs-site{margin:0 0 18px;border:1px solid rgba(19,17,15,.13);background:#faf8f3}
.kp-cs-site .h{margin:0;padding:12px 18px;border-bottom:1px solid rgba(19,17,15,.1);font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase}
.kp-cs-site ul{list-style:none;margin:0;padding:0}
.kp-cs-site li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1.2fr) auto;gap:14px;align-items:baseline;padding:11px 18px;font-family:var(--serif);font-size:13px}
.kp-cs-site li+li{border-top:1px solid rgba(19,17,15,.08)}
.kp-cs-site .i{color:#5c554e}.kp-cs-site .d{color:var(--muted)}
.kp-cs-site .bk .d{color:var(--ink)}
.kp-cs-site .s{font-size:12px;color:#9a5a2c;white-space:nowrap}
.kp-cs-site .bk .s{color:#3f5363}.kp-cs-site .done .s{color:#4d6b45}
@media (max-width:700px){ .kp-cs-site li{grid-template-columns:1fr 1fr} .kp-cs-slabs .g{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* ---------- staff: Website content ---------- */
.kp-ws-tools{display:flex;justify-content:space-between;align-items:center;gap:12px 20px;flex-wrap:wrap;margin:0 0 16px}
.kp-ws-tools .kp-sch-filter{flex:1;margin:0;min-height:20px}
.kp-ws-acts{display:flex;align-items:center;gap:18px}
.kp-ws-acts .btn{cursor:pointer}
.kp-ws-list{list-style:none;margin:0;padding:0;border:1px solid rgba(19,17,15,.13);background:#faf8f3}
.kp-ws-list li{display:grid;grid-template-columns:64px minmax(0,1fr) auto auto auto;gap:18px;align-items:center;padding:12px 18px}
.kp-ws-list li+li{border-top:1px solid rgba(19,17,15,.09)}
.kp-ws-list li.off{opacity:.55}
.kp-ws-list img,.kp-ws-list .noimg{width:64px;height:64px;object-fit:cover;background:#ede8df;border:1px solid rgba(19,17,15,.1)}
.kp-ws-list .w{display:flex;flex-direction:column;gap:2px;min-width:0}
.kp-ws-list .cd{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-ws-list .sp{font-family:var(--serif);font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-ws-vis{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:7px;padding:4px 11px;border:1px solid rgba(19,17,15,.2);border-radius:13px;font-family:var(--serif);font-size:12px;color:var(--muted);white-space:nowrap}
.kp-ws-vis::before{content:"";width:6px;height:6px;border-radius:50%;background:#b9b1a6}
.kp-ws-vis.on{border-color:#aebd9f;color:#4d6b45}.kp-ws-vis.on::before{background:#6b7f4e}
.kp-ws-list .mv{display:flex;gap:2px}
.kp-ws-list .mv button{all:unset;cursor:pointer;width:26px;height:26px;display:grid;place-items:center;border:1px solid rgba(19,17,15,.14);font-size:12px;color:var(--ink)}
.kp-ws-list .mv button:disabled{opacity:.25;cursor:default}
.kp-ws-list .mv button:not(:disabled):hover{border-color:var(--ink)}
.kp-ws-img{display:grid;grid-template-columns:150px minmax(0,1fr);gap:20px;align-items:start;margin:8px 0 18px}
.kp-ws-img .pv{width:150px;height:150px;display:grid;place-items:center;background:#ede8df;border:1px solid rgba(19,17,15,.12);overflow:hidden}
.kp-ws-img .pv img{width:100%;height:100%;object-fit:cover}
.kp-ws-img .pv span{font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-ws-img .c{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.kp-ws-img .kp-a-field{width:100%}
.kp-ws-show{display:flex!important;align-items:center;gap:8px;margin:14px 0 0!important;font-family:var(--serif);font-size:13px;letter-spacing:0;text-transform:none;color:var(--ink)}
.kp-ws-show input{accent-color:#13110f;width:15px;height:15px}
@media (max-width:700px){ .kp-ws-list li{grid-template-columns:52px minmax(0,1fr)} .kp-ws-list li>*:nth-child(n+3){grid-column:2} .kp-ws-img{grid-template-columns:1fr} }

/* ---------- Build your joinery / What we can do with stone ---------- */
.kp-build-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:44px;align-items:start}
.kp-bsteps{display:flex;flex-direction:column;gap:0}
.kp-bstep{margin:0;padding:22px 0 24px;border:0;border-top:1px solid var(--line,rgba(19,17,15,.16));min-width:0}
.kp-bstep legend{display:flex;align-items:baseline;gap:12px;padding:0;margin:0 0 4px;float:left;width:100%}
.kp-bstep legend .n{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;color:var(--muted)}
.kp-bstep legend .t{font-family:var(--serif);font-size:20px;color:var(--ink)}
.kp-bstep .h{clear:both;margin:0 0 14px;padding-top:2px;font-family:var(--serif);font-size:13px;line-height:1.55;color:#5c554e}
.kp-bopts{display:flex;flex-wrap:wrap;gap:8px}
.kp-bo{all:unset;cursor:pointer;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:6px;width:92px;padding:10px 6px 9px;border:1px solid rgba(19,17,15,.14);background:#faf8f3;text-align:center;transition:border-color .2s,box-shadow .2s,background .2s}
.kp-bo:hover{border-color:rgba(19,17,15,.4)}
.kp-bo.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:#fffdf8}
.kp-bo:focus-visible{outline:1px solid var(--ink);outline-offset:2px}
.kp-bo svg{width:52px;height:38px;fill:none;stroke:currentColor;stroke-width:1.2;color:var(--ink)}
.kp-bo span{font-family:var(--serif);font-size:12px;line-height:1.25;color:var(--ink)}
.kp-bo.sw img,.kp-bo.sw i{display:block;width:52px;height:38px;object-fit:cover;border:1px solid rgba(19,17,15,.12);background-size:cover;background-position:center}
.kp-bo .fin{position:relative;overflow:hidden}
.kp-bo .fin.f-polished::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.6),rgba(255,255,255,0) 40%,rgba(255,255,255,.2) 65%,rgba(255,255,255,0))}
.kp-bo .fin.f-honed::after{content:"";position:absolute;inset:0;background:rgba(243,239,232,.25)}
.kp-bo .fin.f-leathered::after{content:"";position:absolute;inset:0;background:radial-gradient(rgba(0,0,0,.18) 1px,transparent 1.4px) 0 0/4px 4px}
.kp-bo .fin.f-brushed::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(255,255,255,.3) 0 1px,transparent 1px 3px)}
.kp-bo .fin.f-splitface{filter:contrast(1.15) brightness(.9)}
.kp-bo .fin.f-splitface::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.25),transparent 40%),radial-gradient(circle at 70% 70%,rgba(0,0,0,.25),transparent 45%)}
.kp-bo.ref{border-style:dashed;justify-content:center;min-height:82px}
.kp-bo.ref .plus{font-weight:400;font-family:var(--serif);font-size:20px;line-height:1;color:var(--ink)}
.kp-bo.ref em{font-style:normal;font-family:var(--serif);font-size:11px;color:#8a5a22}
.kp-bview{position:sticky;top:calc(var(--kp-hdr,64px) + 20px);display:flex;flex-direction:column;gap:14px;padding:18px;border:1px solid rgba(19,17,15,.13);background:#faf8f3}
.kp-bstage{aspect-ratio:600/360;background:#f3efe7;border:1px solid rgba(19,17,15,.08)}
.kp-bstage svg{display:block;width:100%;height:100%}
.kp-bsum{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 18px;margin:0}
.kp-bsum div{min-width:0}
.kp-bsum dt{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-bsum dd{margin:3px 0 0;font-family:var(--serif);font-size:13.5px;color:var(--ink)}
.kp-bref{margin:0;padding:8px 12px;border-left:2px solid #b78b4b;background:#fffdf8;font-family:var(--serif);font-size:12.5px;color:#5c554e}
.kp-bref[hidden]{display:none}
.kp-bview .btn{align-self:flex-start;cursor:pointer}
.kp-bnote{margin:0;font-family:var(--serif);font-size:12px;color:var(--muted)}
@media (max-width:980px){ .kp-build-grid{grid-template-columns:1fr} .kp-bview{position:sticky;top:calc(var(--kp-hdr,56px) + 6px);z-index:5;order:-1;padding:10px} .kp-bsum,.kp-bview .btn,.kp-bnote,.kp-bref{display:none} }
@media (max-width:980px){ .kp-build .kp-bsteps+.kp-bview{order:-1} }
@media (max-width:560px){ .kp-bo{width:calc(33.33% - 6px)} }

.kp-bo{width:calc((100% - 48px) / 7);min-width:76px}
@media (max-width:560px){ .kp-bo{width:calc((100% - 16px) / 3)} }
.kp-mats-top{display:flex;justify-content:space-between;align-items:center;gap:14px 24px;flex-wrap:wrap;margin:0 0 28px;padding-bottom:14px;border-bottom:1px solid var(--line,rgba(19,17,15,.16))}
.kp-mats-top .kp-mats-filter{margin:0;padding:0;border:0}
.kp-mats-top .btn{cursor:pointer}
.kp-mat .u{margin:0 0 14px;padding-top:12px;border-top:1px solid var(--line,rgba(19,17,15,.16));font-family:var(--serif);font-size:13px;color:var(--ink)}
.kp-mat .u span{display:block;margin-bottom:3px;font-size:12px;color:var(--muted)}
.kp-project-card .meta .st{margin-top:8px;font-family:var(--serif);font-size:13px;line-height:1.5;color:#5c554e;text-transform:none;letter-spacing:0}

/* ---------- V142 client portal: Make something (brief builder) ---------- */
.kp-app-tabs a.kp-app-mk::before{content:"+ "}
.kp-a-make{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px 22px;margin:0 0 30px;padding:20px 22px;background:var(--ink);color:#f6f3ec!important;text-decoration:none!important;transition:opacity .25s}
.kp-a-make:hover{opacity:.92}
.kp-a-make .b{font-family:var(--serif);font-size:20px;line-height:1.2}
.kp-a-make span:not(.b){font-family:var(--serif);font-size:13px;color:rgba(246,243,236,.75)}
.kp-a-make em{font-style:normal;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;border:1px solid rgba(246,243,236,.5);padding:9px 14px;white-space:nowrap}
@media (max-width:700px){ .kp-a-make{grid-template-columns:1fr} .kp-a-make em{justify-self:start} }
.kp-mk{max-width:980px}
.kp-mk-any{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 28px;padding:24px 26px;margin:0 0 6px;background:var(--ink);color:#f6f3ec}
.kp-mk-any .b{grid-column:1;margin:0;font-family:var(--serif);font-size:26px;line-height:1.15}
.kp-mk-any p:not(.b){grid-column:1;margin:0;font-family:var(--serif);font-size:13px;line-height:1.55;color:rgba(246,243,236,.78);max-width:560px}
.kp-mk-any .btn{grid-column:2;grid-row:1 / span 2;background:#f6f3ec!important;color:var(--ink)!important;border-color:#f6f3ec!important}
@media (max-width:700px){ .kp-mk-any{grid-template-columns:1fr} .kp-mk-any .btn{grid-column:1;grid-row:auto;justify-self:start;margin-top:10px} }
.kp-mk-step{padding:24px 0 26px;border-top:1px solid var(--a-line)}
.kp-mk-step:first-of-type{border-top:0}
.kp-mk-sh{display:flex;align-items:baseline;gap:12px;margin:0 0 4px}
.kp-mk-sh .n{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;color:var(--muted)}
.kp-mk-sh .t{font-family:var(--serif);font-size:21px;color:var(--ink)}
.kp-mk-sh .kp-opt{margin-left:auto}
.kp-mk-h{margin:0 0 14px;font-family:var(--serif);font-size:13px;line-height:1.55;color:#5c554e;max-width:620px}
.kp-mk-cats{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--a-line2);width:max-content;max-width:100%;margin-top:12px}
.kp-mk-cats button{all:unset;cursor:pointer;padding:12px 20px;font-family:var(--serif);font-size:14px;color:var(--ink);border-left:1px solid var(--a-line2);transition:background .2s}
.kp-mk-cats button:first-child{border-left:0}
.kp-mk-cats button:hover{background:var(--a-card)}
.kp-mk-cats button.on{background:var(--ink);color:#f6f3ec}
.kp-mk-cats button:focus-visible{outline:1px solid var(--ink);outline-offset:2px}
.kp-mk-opts{display:flex;flex-wrap:wrap;gap:8px}
.kp-mk-opts .kp-bo{width:108px;min-width:0;min-height:86px;justify-content:center}
.kp-mk-opts .kp-bo.own{border-style:solid;background:#fffdf8}
.kp-mk-opts .kp-bo.own span{font-style:italic}
.kp-bo.kp-mk-add{background:var(--ink);border-color:var(--ink);color:#f6f3ec}
.kp-bo.kp-mk-add span{color:#f6f3ec}
.kp-bo.kp-mk-add .plus{font-family:var(--serif);font-size:26px;line-height:1}
.kp-bo.kp-mk-add:hover{opacity:.88;border-color:var(--ink)}
@media (max-width:560px){ .kp-mk-opts .kp-bo{width:calc((100% - 16px) / 3)} }
.kp-mk-own{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;max-width:620px}
.kp-mk-own input{flex:1 1 260px;height:42px;padding:0 12px;border:1px solid var(--ink);background:#fffdf8;font-family:var(--serif);font-size:14px;color:var(--ink)}
.kp-mk-files{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.kp-mk-files li{position:relative;width:118px}
.kp-mk-files img,.kp-mk-files .doc{display:flex;align-items:center;justify-content:center;width:118px;height:92px;object-fit:cover;border:1px solid var(--a-line2);background:#efebe3;font-family:Arial,Helvetica,sans-serif;font-size:9px;letter-spacing:.14em;color:var(--muted)}
.kp-mk-files .n{display:block;margin-top:5px;font-family:var(--serif);font-size:11px;color:#5c554e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-mk-files .x{all:unset;cursor:pointer;position:absolute;top:4px;right:4px;width:22px;height:22px;line-height:21px;text-align:center;background:rgba(19,17,15,.75);color:#fff;font-size:14px}
.kp-mk-drop{margin-top:10px;max-width:620px}
.kp-mk-chk{display:flex;align-items:center;gap:10px;margin:16px 0 0;font-family:var(--serif);font-size:14px;color:var(--ink);cursor:pointer}
.kp-mk-chk input{width:16px;height:16px;accent-color:var(--ink)}
.kp-mk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 18px;margin-top:6px}
@media (max-width:800px){ .kp-mk-grid{grid-template-columns:1fr 1fr} }
@media (max-width:520px){ .kp-mk-grid{grid-template-columns:1fr} }
.kp-mk-f{display:flex;flex-direction:column;gap:6px;min-width:0}
.kp-mk-f.full{grid-column:1 / -1;margin-top:16px;max-width:620px}
.kp-mk-grid .kp-mk-f.full{margin-top:0;max-width:none}
.kp-mk-f span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-mk-f input,.kp-mk-f select,.kp-mk-f textarea{box-sizing:border-box;width:100%;min-height:42px;padding:9px 12px;border:1px solid var(--a-line2);background:#fffdf8;font-family:var(--serif);font-size:14px;color:var(--ink);border-radius:0}
.kp-mk-f input:focus,.kp-mk-f select:focus,.kp-mk-f textarea:focus{outline:none;border-color:var(--ink)}
.kp-mk-send{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 30px;padding:24px 0 10px;border-top:1px solid var(--ink)}
.kp-mk-send .kp-a-note{margin:0;max-width:520px}
.kp-mk-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--a-line)}
.kp-mk-list li{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:18px;padding:16px 0;border-bottom:1px solid var(--a-line)}
.kp-mk-list .img{width:72px;height:56px;background:#efebe3;overflow:hidden}
.kp-mk-list .img img{width:100%;height:100%;object-fit:cover;display:block}
.kp-mk-list p{margin:0}
.kp-mk-list .k{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-mk-list .w{font-family:var(--serif);font-size:16px;color:var(--ink);margin:3px 0}
.kp-mk-list .m{font-family:var(--serif);font-size:12px;color:#5c554e}
.kp-mk-st{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border:1px solid var(--a-line2);white-space:nowrap}
.kp-mk-st.ok{background:var(--ink);color:#f6f3ec;border-color:var(--ink)}
.kp-mk-st.rv{border-color:var(--ink)}
.kp-mk-st.off{opacity:.5}
.kp-mk-send .btn{background:var(--ink)!important;color:#f6f3ec!important;border-color:var(--ink)!important;padding-left:28px;padding-right:28px}
label.kp-mk-chk{text-transform:none!important;letter-spacing:0!important;font-family:var(--serif)!important;font-size:14px!important}
/* staff: briefs */
.kp-br-list{display:flex;flex-direction:column;gap:18px}
.kp-br{padding:22px 24px;border:1px solid var(--a-line2);background:var(--a-card)}
.kp-br.new{border-color:var(--ink);box-shadow:inset 3px 0 0 var(--ink)}
.kp-br-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:14px 24px;align-items:flex-start}
.kp-br h2{margin:4px 0 8px;font-family:var(--serif);font-size:22px;font-weight:400}
.kp-br-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.kp-br-tags span{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;padding:5px 9px;border:1px solid var(--a-line2)}
.kp-br-tags .own{background:var(--ink);color:#f6f3ec;border-color:var(--ink)}
.kp-br-tags .phys{border-color:#8a5a22;color:#8a5a22}
.kp-br-act{display:flex;align-items:center;gap:12px}
.kp-br-act select{height:40px;padding:0 10px;border:1px solid var(--a-line2);background:#fffdf8;font-family:var(--serif);font-size:13px}
.kp-br-pics{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 4px}
.kp-br-pics button{all:unset;cursor:zoom-in;display:flex;flex-direction:column;gap:4px;width:128px}
.kp-br-pics img{width:128px;height:96px;object-fit:cover;border:1px solid var(--a-line2)}
.kp-br-pics span{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-br-dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px 24px;margin:16px 0 0;padding-top:16px;border-top:1px solid var(--a-line)}
.kp-br-dl dt{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.kp-br-dl dd{margin:0;font-family:var(--serif);font-size:13px;line-height:1.5;color:var(--ink)}
.kp-br-dl em{font-size:11px;color:#8a5a22}
.kp-br-act .btn{white-space:nowrap}
.kp-br-act select{width:auto!important;min-width:150px}
.kp-plans-portal{margin-top:14px;font-family:var(--serif);font-size:13px;color:var(--muted)}
.kp-plans-portal a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
/* V143: process steps. The enlarged hover layout exists only for a mouse; titles line up in every row
   (each description keeps room for two lines) */
.kp-big{display:none}
@media (hover:hover) and (pointer:fine){ .kp-big{display:flex} }
.process-grid .step p{min-height:3em}
@media (max-width:1100px){
  .process-grid .step{min-height:0}
  .process-grid .step .n{margin-bottom:34px}
}
@media (max-width:760px){
  .process-grid .step p{min-height:0}
  .process-grid .step .n{margin-bottom:22px}
}
@media (hover:none){
  .process-grid .step{min-height:0}
  .process-grid .step .n{margin-bottom:34px}
}
@media (max-width:760px){
  .process-grid a.step::after,.process-grid a.step:nth-child(3n+1)::after{right:0}
}
.kp-mk-drop.over{background:var(--a-card);border-color:var(--ink)}
.kp-mk-drop.busy{opacity:.6;pointer-events:none}
.kp-mk-drop.busy span::before{content:""}
/* V145: upload boxes are the file input itself; brief detail page in the staff area */
.kp-mk-drop{position:relative;overflow:hidden}
.kp-mk-drop input[type=file]{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;cursor:pointer;z-index:2;font-size:0}
.kp-mk-drop.busy{opacity:.6}
.kp-mk-files .s{display:block;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.1em;color:var(--muted)}
.kp-br-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--a-line)}
.kp-br-rows li{border-bottom:1px solid var(--a-line)}
.kp-br-rows a{display:grid;grid-template-columns:84px 1fr auto auto;align-items:center;gap:18px;padding:14px 8px;color:inherit;text-decoration:none;transition:background .2s}
.kp-br-rows a:hover{background:var(--a-card)}
.kp-br-rows li.new a{box-shadow:inset 3px 0 0 var(--ink)}
.kp-br-rows .img{width:84px;height:64px;background:#efebe3;overflow:hidden}
.kp-br-rows .img img{width:100%;height:100%;object-fit:cover;display:block}
.kp-br-rows .w{display:flex;flex-direction:column;gap:3px;min-width:0}
.kp-br-rows .k{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-br-rows .t{font-family:var(--serif);font-size:18px;color:var(--ink)}
.kp-br-rows .t em{font-style:normal;color:var(--muted)}
.kp-br-rows .m{font-family:var(--serif);font-size:12px;color:#5c554e}
.kp-br-rows .go{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase}
.kp-br-rows .go::after{content:" \2192"}
@media (max-width:640px){ .kp-br-rows a{grid-template-columns:64px 1fr;gap:12px} .kp-br-rows .img{width:64px;height:50px} .kp-br-rows .kp-mk-st,.kp-br-rows .go{grid-column:2;justify-self:start} }
.kp-br-sel{height:42px;padding:0 10px;border:1px solid var(--a-line2);background:#fffdf8;font-family:var(--serif);font-size:13px;width:auto!important}
.kp-br-page{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start}
@media (max-width:980px){ .kp-br-page{grid-template-columns:1fr} }
.kp-br-side{position:sticky;top:calc(var(--kp-hdr,56px) + 70px)}
@media (max-width:980px){ .kp-br-side{position:static} }
.kp-br-notes{margin:12px 0 0;padding:14px 16px;background:var(--a-card);border-left:2px solid var(--ink);font-family:var(--serif);font-size:14px;line-height:1.55}
.kp-br-dl em.own{font-style:normal;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;padding:3px 6px;background:var(--ink);color:#f6f3ec;margin-left:6px;vertical-align:2px}
.kp-br-side .kp-br-dl{grid-template-columns:1fr;border-top:0;padding-top:0}
.kp-br-gal{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:18px}
.kp-br-gal li{display:flex;flex-direction:column;gap:5px;min-width:0}
.kp-br-gal .pv{all:unset;cursor:zoom-in;display:block;aspect-ratio:4/3;background:#efebe3;border:1px solid var(--a-line2);overflow:hidden}
.kp-br-gal .pv img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.kp-br-gal .pv:hover img{transform:scale(1.03)}
.kp-br-gal .pv.doc{display:flex;align-items:center;justify-content:center;cursor:pointer}
.kp-br-gal .pv.doc b{font-family:Arial,Helvetica,sans-serif;font-size:11px;letter-spacing:.16em;color:var(--ink);border:1px solid var(--ink);padding:10px 14px;font-weight:400}
.kp-br-gal .n{font-family:var(--serif);font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-br-gal .s{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.1em;color:var(--muted)}
.kp-br-gal .a{display:flex;gap:14px}
.kp-br-none{margin:10px 0 0;font-family:var(--serif);font-size:13px}
.kp-br-phys{display:flex;gap:10px;align-items:center;margin:14px 0 0;font-family:var(--serif);font-size:14px;text-transform:none;letter-spacing:0}
.kp-br-note{box-sizing:border-box;width:100%;padding:10px 12px;border:1px solid var(--a-line2);background:#fffdf8;font-family:var(--serif);font-size:14px;margin:10px 0 8px}
/* V146: file viewer (photos, PDFs page by page, everything else with Download) */
.kp-fv{position:fixed;inset:0;z-index:100000;display:flex;flex-direction:column;background:#16130f;color:#f6f3ec;animation:kp-pt-in .3s ease}
.kp-fv-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;border-bottom:1px solid rgba(246,243,236,.15);flex-wrap:wrap}
.kp-fv-t{display:flex;flex-direction:column;gap:3px;min-width:0}
.kp-fv-t .n{font-family:var(--serif);font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:56vw}
.kp-fv-t .c{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,243,236,.6)}
.kp-fv-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.kp-fv-b{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:#f6f3ec!important;text-decoration:none!important;border:1px solid rgba(246,243,236,.4);padding:9px 12px;cursor:pointer}
.kp-fv-b:hover{border-color:#f6f3ec}
.kp-fv-b[hidden]{display:none}
.kp-fv-x{all:unset;cursor:pointer;width:36px;height:36px;line-height:34px;text-align:center;font-size:24px;color:#f6f3ec}
.kp-fv-stage{flex:1;overflow:auto;display:flex;align-items:flex-start;justify-content:center;padding:16px;-webkit-overflow-scrolling:touch}
.kp-fv-img{max-width:100%;max-height:calc(100vh - 110px);object-fit:contain;margin:auto;display:block;background:#fff}
.kp-fv-pdf{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}
.kp-fv-pdf canvas{max-width:100%;height:auto!important;background:#fff;box-shadow:0 4px 24px rgba(0,0,0,.35)}
.kp-fv-pg{margin:2px 0 14px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(246,243,236,.55)}
.kp-fv-msg{margin:auto;max-width:460px;text-align:center;font-family:var(--serif);font-size:15px;line-height:1.55;color:rgba(246,243,236,.85)}
.kp-fv-msg b{display:block;font-weight:400;font-size:19px;color:#f6f3ec;margin-bottom:8px}
.kp-fv-arrow{all:unset;cursor:pointer;position:absolute;top:50%;width:48px;height:64px;margin-top:-32px;text-align:center;font-size:40px;line-height:60px;color:#f6f3ec;background:rgba(19,17,15,.5)}
.kp-fv-arrow.prev{left:8px}.kp-fv-arrow.next{right:8px}
.kp-fv-arrow[hidden]{display:none}
@media (max-width:640px){ .kp-fv-t .n{max-width:80vw} .kp-fv-arrow{top:auto;bottom:16px;margin:0} }
.kp-a-drop.busy{opacity:.6;pointer-events:none}
/* V147: the trade application sits at the foot of the log-in page */
html.kp-app-on .kp-login-trade{display:none}
.kp-login-trade{margin:clamp(56px,7vw,110px) calc(50% - 50vw) 0}
.kp-island-head p.kp-login-trade-k{margin:0 0 14px;max-width:none;letter-spacing:.18em!important;font-family:Arial,Helvetica,sans-serif;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.kp-login-trade .kp-trade-incl{max-width:520px;margin:28px auto 0;text-align:left}
@media (max-width:560px){ .kp-login-trade .kp-trade-incl{grid-template-columns:1fr 1fr;gap:18px;padding:22px 4px 0} .kp-login-trade .kp-trade-incl ul{font-size:13px} }
/* V148: Orders holds its sections (staff: Orders, Clients, Schedules, Briefs · client: Orders, Schedule, Make something, Documents) in a side bar */
.kp-app-main.kp-has-side{max-width:1280px}
.kp-side-wrap{display:grid;grid-template-columns:190px minmax(0,1fr);gap:clamp(28px,3.4vw,56px);align-items:start}
.kp-side{position:sticky;top:calc(var(--kp-hdr,56px) + 74px);display:flex;flex-direction:column;border-top:1px solid var(--a-line2,rgba(19,17,15,.2))}
.kp-side a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 2px 14px 12px;border-bottom:1px solid var(--a-line,rgba(19,17,15,.12));font-family:var(--serif);font-size:15px;color:#5c554e;text-decoration:none;transition:color .2s,background .2s;box-shadow:inset 0 0 0 transparent}
.kp-side a:hover{color:var(--ink);background:var(--a-card,rgba(255,253,248,.55))}
.kp-side a.on{color:var(--ink);box-shadow:inset 2px 0 0 var(--ink);background:var(--a-card,rgba(255,253,248,.55))}
.kp-side a em{font-style:normal;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.1em;color:var(--muted);min-width:18px;text-align:right}
.kp-side a em.hot{min-width:18px;height:18px;line-height:18px;padding:0 5px;border-radius:9px;background:var(--ink);color:#f6f3ec;text-align:center}
.kp-side a.mk{color:var(--ink)}
.kp-side-main{min-width:0}
.kp-side-main>.kp-a-head:first-child,.kp-side-main>.kp-a-toast+.kp-a-head,.kp-side-main>.kp-a-back:first-child{margin-top:0}
@media (max-width:860px){
  .kp-side-wrap{grid-template-columns:1fr;gap:22px}
  .kp-side{position:static;flex-direction:row;overflow-x:auto;border-top:0;border-bottom:1px solid var(--a-line2,rgba(19,17,15,.2));-webkit-overflow-scrolling:touch;scrollbar-width:none;margin:0 calc(var(--pad,24px) * -1);padding:0 var(--pad,24px)}
  .kp-side::-webkit-scrollbar{display:none}
  .kp-side a{flex:0 0 auto;border-bottom:0;padding:12px 14px;font-size:14px;white-space:nowrap}
  .kp-side a.on{box-shadow:inset 0 -2px 0 var(--ink)}
}
@media print{ .kp-side{display:none!important} .kp-side-wrap{display:block} }
/* V148: log-in box wider; a scroll arrow, and the top of the trade application shows below it */
.kp-pt-signin{grid-template-columns:minmax(0,1fr) minmax(320px,540px);padding-top:clamp(36px,4.4vw,64px)}
@media (max-width:860px){ .kp-pt-signin{grid-template-columns:1fr} }
.kp-portal:has(.kp-app[hidden]){padding-bottom:0}
.kp-cue.kp-login-cue{position:relative;display:block;left:auto;bottom:auto;transform:none;margin:clamp(28px,3.4vw,44px) auto 0}
html.kp-app-on .kp-login-cue{display:none}
.kp-login-trade{margin-top:clamp(18px,2.4vw,30px)}
.kp-login-trade.kp-island-band{padding-top:clamp(40px,4.4vw,60px)}
@media (max-width:560px){ .kp-pt-points{display:none} .kp-pt-signin{gap:26px;padding-top:24px} .kp-cue.kp-login-cue{margin-top:18px} .kp-login-trade.kp-island-band{padding-top:30px} }
/* V149: each order's schedule */
.kp-osch{display:grid;gap:10px;padding:22px 24px;margin-bottom:14px;border:1px solid var(--a-line2,rgba(19,17,15,.2));background:var(--a-card,rgba(255,253,248,.55));color:inherit;text-decoration:none;transition:border-color .2s}
.kp-osch:hover{border-color:var(--ink)}
.kp-osch .k{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-osch .t{font-family:var(--serif);font-size:22px;color:var(--ink)}
.kp-osch .nums{display:flex;flex-wrap:wrap;gap:8px 26px;font-family:var(--serif);font-size:13px;color:#5c554e}
.kp-osch .nums b{font-weight:400;color:var(--ink);font-size:16px}
.kp-osch .nums .hot b{color:#8a2a1a}
.kp-osch .go{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.kp-osch .go::after{content:" \2192"}
.kp-osch-none .btn{margin-top:14px}
.kp-cs-bar{display:flex;justify-content:flex-end;margin:-6px 0 12px}
/* V149: the description on "Our process" grows from the small writing like the number and title */
@media (hover:hover) and (pointer:fine){
  .kp-big .bd{text-align:left;text-wrap:balance;transform-origin:0 0;opacity:0;transform:translate(var(--tx,0),var(--ty,0)) scale(var(--s,1));transition:transform .8s cubic-bezier(.65,0,.25,1),opacity .06s linear .8s}
  .kp-on .kp-big .bd{opacity:1;transform:none;transition:transform .8s cubic-bezier(.65,0,.25,1),opacity .06s linear 0s}
  .kp-measure .kp-big .bd{transform:none!important;transition:none!important}
  .step p.kp-morph{text-wrap:balance}
}
.kp-mk-ohead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;margin:0 0 18px}
.kp-mk-ohead .kp-a-note{margin:0;max-width:520px}
/* each line of the grown description ends centred in the box */
@media (hover:hover) and (pointer:fine){
  .kp-big .bd{text-align:center}
  .kp-big .bd .ln{display:block;white-space:nowrap;transform:translateX(var(--lx,0));transition:transform .8s cubic-bezier(.65,0,.25,1)}
  .kp-on .kp-big .bd .ln{transform:none}
  .kp-measure .kp-big .bd .ln{transform:translateX(var(--lx,0))!important;transition:none!important}
}
/* V152: Explore shows two cards each side; the outer ones smaller and softer */
.kp-chip{transform:translate3d(calc(var(--dx,var(--d,0)) * var(--cw)),calc(var(--a,0) * 18px),0) rotate(var(--rot,0deg)) scale(var(--sc,1))}
.kp-deck-arrow.prev{left:max(8px,calc(50% - var(--cw) * 2.5))}
.kp-deck-arrow.next{right:max(8px,calc(50% - var(--cw) * 2.5))}
@media (max-width:1100px){ .kp-chip[data-a="2"]{opacity:0!important;pointer-events:none} .kp-deck-arrow.prev{left:calc(50% - var(--cw) * 1.62)} .kp-deck-arrow.next{right:calc(50% - var(--cw) * 1.62)} }
@media (max-width:760px){ .kp-chip{transform:translate3d(calc(var(--dx,var(--d,0)) * var(--cw) * .74),calc(var(--a,0) * 14px),0) rotate(var(--rot,0deg)) scale(var(--sc,1))} .kp-deck-arrow.prev{left:6px} .kp-deck-arrow.next{right:6px} }
/* ---------- V153: staff area — one left-hand menu ---------- */
.kp-st-app .kp-st-shell{display:grid;grid-template-columns:232px minmax(0,1fr);align-items:start;min-height:calc(100vh - var(--kp-hdr,57px))}
.kp-st-nav{position:sticky;top:var(--kp-hdr,57px);height:calc(100vh - var(--kp-hdr,57px));overflow-y:auto;display:flex;flex-direction:column;border-right:1px solid var(--a-line,rgba(19,17,15,.12));background:rgba(255,253,248,.35);padding:22px 0 18px}
.kp-st-who{padding:0 22px 18px;display:flex;flex-direction:column;gap:4px;border-bottom:1px solid var(--a-line,rgba(19,17,15,.12));margin-bottom:10px}
.kp-st-who b{font-family:var(--serif);font-weight:400;font-size:17px;color:var(--ink)}
.kp-st-nav .kp-app-tabs{display:flex;flex-direction:column;gap:0;height:auto;padding:0 10px}
.kp-st-nav .kp-app-tabs .g{margin:16px 12px 6px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.kp-st-nav .kp-app-tabs a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;font-family:var(--serif);font-size:15px;letter-spacing:0;text-transform:none;color:#5c554e;border-radius:2px;transition:background .2s,color .2s}
.kp-st-nav .kp-app-tabs a::after{display:none}
.kp-st-nav .kp-app-tabs a:hover{color:var(--ink);background:rgba(19,17,15,.04)}
.kp-st-nav .kp-app-tabs a.on{color:var(--ink);background:rgba(19,17,15,.07);box-shadow:inset 2px 0 0 var(--ink)}
.kp-st-nav .kp-app-tabs a:first-child{font-size:16px}
.kp-st-foot{margin-top:auto;padding:16px 22px 0;display:flex;flex-direction:column;align-items:flex-start;gap:8px;border-top:1px solid var(--a-line,rgba(19,17,15,.12))}
.kp-st-foot .kp-app-mail{font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-st-foot button{all:unset;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-st-foot button:hover{color:var(--ink)}
.kp-st-app .kp-app-main{max-width:1180px;margin:0;padding:clamp(28px,3.4vw,48px) clamp(24px,3.4vw,52px) 80px}
.kp-st-app .kp-app-main.kp-a-wide{max-width:1500px}
@media (max-width:900px){
  .kp-st-app .kp-st-shell{grid-template-columns:1fr}
  .kp-st-nav{position:sticky;top:var(--kp-hdr,57px);z-index:20;height:auto;flex-direction:row;align-items:center;padding:0;border-right:0;border-bottom:1px solid var(--a-line,rgba(19,17,15,.12));background:var(--bg,#f2eee7)}
  .kp-st-who,.kp-st-foot,.kp-st-nav .kp-app-tabs .g{display:none}
  .kp-st-nav .kp-app-tabs{flex-direction:row;overflow-x:auto;scrollbar-width:none;padding:0 12px}
  .kp-st-nav .kp-app-tabs::-webkit-scrollbar{display:none}
  .kp-st-nav .kp-app-tabs a{flex:none;padding:12px 12px;font-size:14px;white-space:nowrap}
  .kp-st-nav .kp-app-tabs a.on{box-shadow:inset 0 -2px 0 var(--ink);background:none}
  .kp-st-app .kp-app-main{padding:24px var(--pad,18px) 60px}
}
/* breadcrumbs */
.kp-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 18px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-crumbs a{color:var(--muted);text-decoration:none}
.kp-crumbs a:hover{color:var(--ink)}
.kp-crumbs a::after{content:"/";margin-left:8px;color:rgba(19,17,15,.25)}
.kp-crumbs span{color:var(--ink)}
/* whose turn */
.kp-turns{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,2.6vw,36px);margin:0 0 36px}
@media (max-width:860px){ .kp-turns{grid-template-columns:1fr} }
.kp-turn-col{border-top:2px solid var(--ink);padding-top:16px}
.kp-turn-col.them{border-top-color:rgba(19,17,15,.28)}
.kp-turn-h h2{margin:0;font-family:var(--serif);font-weight:400;font-size:24px;display:flex;align-items:baseline;gap:10px}
.kp-turn-h h2 em{font-style:normal;font-family:Arial,Helvetica,sans-serif;font-size:9.5px;letter-spacing:.1em;min-width:22px;height:22px;line-height:22px;text-align:center;border-radius:11px;background:var(--ink);color:#f6f3ec;padding:0 6px}
.kp-turn-col.them .kp-turn-h h2 em{background:rgba(19,17,15,.12);color:var(--ink)}
.kp-turn-h p{margin:4px 0 14px;font-family:var(--serif);font-size:13px;color:var(--muted)}
.kp-turn-g{border:1px solid var(--a-line,rgba(19,17,15,.12));background:var(--a-card,rgba(255,253,248,.55));margin-bottom:10px}
.kp-turn-o{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid var(--a-line,rgba(19,17,15,.12));text-decoration:none;color:inherit}
.kp-turn-o b{font-family:var(--serif);font-weight:400;font-size:16px;color:var(--ink)}
.kp-turn-o span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.kp-turn-g ul{list-style:none;margin:0;padding:0}
.kp-turn-g li+li{border-top:1px solid rgba(19,17,15,.07)}
.kp-turn-g li a{display:flex;flex-direction:column;gap:2px;padding:10px 16px 10px 30px;position:relative;text-decoration:none;color:inherit;transition:background .2s}
.kp-turn-g li a::before{content:"";position:absolute;left:16px;top:16px;width:6px;height:6px;border-radius:50%;background:var(--ink)}
.kp-turn-col.them .kp-turn-g li a::before{background:transparent;border:1px solid rgba(19,17,15,.45)}
.kp-turn-g li a::after{content:"\2192";position:absolute;right:16px;top:10px;font-size:12px;color:var(--muted);opacity:0;transition:opacity .2s,transform .3s}
.kp-turn-g li a:hover{background:rgba(19,17,15,.035)}
.kp-turn-g li a:hover::after{opacity:1;transform:translateX(3px)}
.kp-turn-g .w{font-family:var(--serif);font-size:14px;color:var(--ink);padding-right:24px}
.kp-turn-g .m{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-turn-chip{font-style:normal!important;display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:10px;margin-left:6px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.kp-turn-chip.us{background:var(--ink);color:#f6f3ec}
.kp-turn-chip.them{border:1px solid rgba(19,17,15,.3);color:var(--ink)}
.kp-turn-strip{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 28px}
@media (max-width:700px){ .kp-turn-strip{grid-template-columns:1fr} }
.kp-turn-strip>div{border:1px solid var(--a-line,rgba(19,17,15,.12));padding:14px 16px;background:var(--a-card,rgba(255,253,248,.55))}
.kp-turn-strip .us{border-top:2px solid var(--ink)}
.kp-turn-strip .h{margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);display:flex;gap:8px;align-items:center}
.kp-turn-strip .h em{font-style:normal;color:var(--muted)}
.kp-turn-strip ul{list-style:none;margin:0;padding:0}
.kp-turn-strip li a{display:block;padding:5px 0 5px 14px;position:relative;font-family:var(--serif);font-size:14px;color:var(--ink);text-decoration:none}
.kp-turn-strip li a::before{content:"";position:absolute;left:0;top:12px;width:5px;height:5px;border-radius:50%;background:var(--ink)}
.kp-turn-strip .them li a::before{background:transparent;border:1px solid rgba(19,17,15,.45)}
.kp-turn-strip li a:hover{text-decoration:underline;text-underline-offset:3px}
.kp-turn-strip .none{margin:0;font-family:var(--serif);font-size:13px;color:var(--muted)}
.kp-turn-strip li a .w{display:block}
.kp-turn-strip li a .m{display:block;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:2px}
.kp-turn-client{margin-bottom:30px}
/* V153: smoother drop-downs — search slides on its own layer; the phone menu slides instead of jumping */
.kp-search-in{will-change:transform;transition-duration:.42s;contain:layout paint}
.kp-search{transition-duration:.3s}
.mobile-nav{transform:translateY(-8px);opacity:0;transition:transform .26s cubic-bezier(.16,1,.3,1),opacity .2s ease;will-change:transform,opacity}
.mobile-nav.is-open{transform:none;opacity:1}
@media (prefers-reduced-motion:reduce){ .mobile-nav,.kp-search-in{transition:none} }

/* V153 — messages across languages */
.kp-tr { display: block; }
.kp-tr .kp-tr-text { margin: 0; }
.kp-tr-bar { display: flex; flex-wrap: wrap; align-items: center; gap: .35em .75em; margin: .45em 0 0; font-size: .78rem; letter-spacing: .02em; color: var(--kp-muted, #7a746c); }
.kp-tr-bar span::before { content: ""; display: inline-block; width: .9em; height: .9em; margin-right: .4em; vertical-align: -.12em; background: currentColor; opacity: .75;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h8M8 3v2m2.5 0c-.8 4-3.4 7-6.5 8.5M6 9c1 2 3 3.5 5 4.5'/%3E%3Cpath d='m12 21 4.5-10L21 21m-7.5-3h6'/%3E%3C/svg%3E") center/contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5h8M8 3v2m2.5 0c-.8 4-3.4 7-6.5 8.5M6 9c1 2 3 3.5 5 4.5'/%3E%3Cpath d='m12 21 4.5-10L21 21m-7.5-3h6'/%3E%3C/svg%3E") center/contain no-repeat; }
.kp-tr-btn { appearance: none; background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.kp-tr-btn:hover { color: var(--kp-ink, #1d1b18); }
.kp-tr-btn:disabled { opacity: .6; cursor: progress; text-decoration: none; }
.kp-tr-orig { margin: .5em 0 0; padding: .55em .8em; border-left: 2px solid rgba(0,0,0,.15); background: rgba(0,0,0,.035); font-size: .92em; color: var(--kp-muted, #6f6a63); }
.kp-tr-tag { display: inline-block; padding: .05em .4em; margin-right: .15em; border: 1px solid currentColor; border-radius: 3px; font-size: .68em; letter-spacing: .08em; line-height: 1.5; vertical-align: .12em; opacity: .7; }
.kp-a-msgs li.me .kp-tr-bar, .kp-a-msgs li.me .kp-tr-orig { color: inherit; opacity: .8; }
.kp-br-notes .kp-tr-text { white-space: normal; }
.kp-a-say + .kp-a-sec { margin-top: 2.75rem; }

/* V153 — drop-downs open straight away: a quick ease-out instead of a slow start, no live blur behind the bar */
.site-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(243,239,231,.985)}
.kp-app-bar{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(243,239,231,.985)}
.kp-search{transition:background .25s ease;contain:layout paint}
.kp-search-in{transition:transform .34s cubic-bezier(.16,1,.3,1);will-change:transform;backface-visibility:hidden}
.kp-search:not(.is-open) .kp-search-in{transition-duration:.24s;transition-timing-function:cubic-bezier(.7,0,.84,0)}

/* V154 — the portal side bar lists each order; documents live inside their order */
.kp-side-h{margin:18px 0 6px 12px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-side a.kp-side-o{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:10px;row-gap:3px}
.kp-side a.kp-side-o .t{grid-column:1;line-height:1.25}
.kp-side a.kp-side-o .k{grid-column:1;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-side a.kp-side-o em{grid-column:2;grid-row:1 / span 2;align-self:center}
.kp-side a.kp-side-o.done:not(.on) .t{color:#8b847c}
@media (max-width:860px){
  .kp-side-h{display:none}
  .kp-side a.kp-side-o{display:flex;align-items:center;gap:8px}
  .kp-side a.kp-side-o .k{display:none}
}

/* V155 — each order's sections open under it in the side bar; on phones they are buttons on the page */
.kp-side-sub{display:grid;grid-template-rows:1fr;border-bottom:1px solid var(--a-line,rgba(19,17,15,.12));background:var(--a-card,rgba(255,253,248,.55));box-shadow:inset 2px 0 0 var(--ink)}
.kp-side-sub>div{overflow:hidden;min-height:0;padding:2px 0 10px}
.kp-side-sub.grow{animation:kpSubOpen .38s cubic-bezier(.16,1,.3,1) both}
.kp-side-sub.grow .kp-side-s{animation:kpSubItem .4s cubic-bezier(.16,1,.3,1) both}
.kp-side-sub.grow .kp-side-s:nth-child(2){animation-delay:.03s}.kp-side-sub.grow .kp-side-s:nth-child(3){animation-delay:.06s}.kp-side-sub.grow .kp-side-s:nth-child(4){animation-delay:.09s}.kp-side-sub.grow .kp-side-s:nth-child(5){animation-delay:.12s}
@keyframes kpSubOpen{from{grid-template-rows:0fr}to{grid-template-rows:1fr}}
@keyframes kpSubItem{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.kp-side .kp-side-o.on{border-bottom-color:transparent}
.kp-side a.kp-side-s{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 0 22px;padding:9px 12px 9px 16px;border:0;border-left:1px solid rgba(19,17,15,.16);background:none;box-shadow:none;font-family:Arial,Helvetica,sans-serif;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#6d665e}
.kp-side a.kp-side-s:hover{color:var(--ink);background:none}
.kp-side a.kp-side-s.on{color:var(--ink);font-weight:700;border-left-color:var(--ink);box-shadow:inset 2px 0 0 var(--ink);background:none}
.kp-side a.kp-side-s em{font-weight:400}
.kp-side a.kp-side-s em.n{color:var(--muted);font-size:9.5px}
/* the section heading on the page */
.kp-a-sectitle{margin:6px 0 22px;padding-bottom:14px;border-bottom:1px solid var(--a-line2,rgba(19,17,15,.2))}
.kp-a-sectitle h2{margin:0;font-family:var(--serif);font-weight:400;font-size:26px;letter-spacing:-.005em;text-transform:none;color:var(--ink)}
.kp-a-progress+.kp-a-sectitle{margin-top:34px}
/* phones and tablets: the sections as clear buttons under the order's name */
.kp-a-secnav{display:none}
@media (max-width:860px){
  .kp-side-sub{display:none}
  .kp-a-secnav{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 22px}
  .kp-a-secnav a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 6px;border:1px solid rgba(19,17,15,.18);background:var(--a-card,rgba(255,253,248,.55));font-family:Arial,Helvetica,sans-serif;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;text-align:center;color:#5c554e;text-decoration:none;transition:background .2s,color .2s,border-color .2s}
  .kp-a-secnav a.on{background:var(--ink);border-color:var(--ink);color:#f6f3ec}
  .kp-a-secnav a em{font-style:normal;min-width:16px;height:16px;line-height:16px;padding:0 4px;border-radius:8px;background:var(--ink);color:#f6f3ec;font-size:9px;letter-spacing:0}
  .kp-a-secnav a em.n{background:none;color:var(--muted)}
  .kp-a-secnav a.on em{background:#f6f3ec;color:var(--ink)}
  .kp-a-secnav a.on em.n{background:none;color:rgba(246,243,236,.7)}
  .kp-a-sectitle h2{font-size:22px}
}
@media (min-width:600px) and (max-width:860px){ .kp-a-secnav{grid-template-columns:repeat(5,1fr)} }
@media (max-width:599px){ .kp-a-secnav{grid-template-columns:repeat(2,1fr)} .kp-a-secnav a:first-child{grid-column:1 / -1} }
@media (prefers-reduced-motion:reduce){ .kp-side-sub.grow,.kp-side-sub.grow .kp-side-s{animation:none} }

/* V157 — create a new order / start your first order */
.kp-a-headbtns{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.kp-side a.kp-side-new{margin-top:14px;border:1px solid var(--ink);justify-content:center;padding:13px 12px;font-family:Arial,Helvetica,sans-serif;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);box-shadow:none}
.kp-side a.kp-side-new:hover,.kp-side a.kp-side-new.on{background:var(--ink);color:#f6f3ec;box-shadow:none}
.kp-a-first{padding:44px 40px 42px;border:1px solid rgba(19,17,15,.14);background:var(--a-card,rgba(255,253,248,.6))}
.kp-a-first h2{margin:8px 0 14px;font-family:var(--serif);font-weight:400;font-size:34px;letter-spacing:-.01em;text-transform:none;color:var(--ink)}
.kp-a-first>p:not(.kp-a-kicker){max-width:560px;margin:0 0 28px;font-size:15px;line-height:1.6;color:#5c554e}
.kp-a-first-steps{list-style:none;counter-reset:fs;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:0 0 32px;padding:0}
.kp-a-first-steps li{counter-increment:fs;padding-top:14px;border-top:1px solid rgba(19,17,15,.2);display:flex;flex-direction:column;gap:6px}
.kp-a-first-steps li::before{content:"0" counter(fs);font-family:Arial,Helvetica,sans-serif;font-size:9px;letter-spacing:.12em;color:var(--muted)}
.kp-a-first-steps b{font-family:var(--serif);font-weight:400;font-size:17px;color:var(--ink)}
.kp-a-first-steps span{font-size:13px;line-height:1.5;color:#6d665e}
.kp-a-neworder .kp-a-fields{grid-template-columns:1fr 1fr}
.kp-a-neworder .kp-a-wide{grid-column:1 / -1}
.kp-a-neworder textarea{width:100%;resize:vertical}
.kp-a-neworder .kp-opt{font-style:normal;margin-left:6px;color:var(--muted);text-transform:none;letter-spacing:.02em}
.kp-a-req{border-left:2px solid var(--ink);padding-left:14px}
@media (max-width:860px){
  .kp-side a.kp-side-new{margin:0 0 0 8px;align-self:center;padding:9px 12px}
  .kp-a-first{padding:30px 22px}
  .kp-a-first h2{font-size:28px}
  .kp-a-first-steps{grid-template-columns:1fr}
  .kp-a-neworder .kp-a-fields{grid-template-columns:1fr}
}
.kp-app .kp-a-neworder textarea{margin:0;border:0;border-bottom:1px solid var(--a-line2);background:transparent;padding:6px 0 8px;font-family:var(--serif);font-size:14px;line-height:1.5;color:var(--ink);outline:none;border-radius:0;box-shadow:none}
.kp-app .kp-a-neworder textarea:focus{border-bottom-color:var(--ink)}
.kp-a-neworder textarea::placeholder{color:rgba(19,17,15,.3)}
.kp-a-neworder .kp-a-field span .kp-opt{font-size:inherit}
.kp-a-first>p:not(.kp-a-kicker),.kp-a-first-steps span{font-family:var(--serif)}
.kp-a-first .btn{background:var(--ink);border-color:var(--ink);color:#f6f3ec}
.kp-a-first .btn:hover{background:transparent;color:var(--ink)}

/* V158 — "Create a new order" as the last tile among the orders */
.kp-a-card.kp-a-newcard{align-items:center;justify-content:center;gap:14px;min-height:186px;border-style:dashed;border-color:rgba(19,17,15,.28);background:transparent;color:var(--ink)}
.kp-a-newcard .plus{position:relative;width:46px;height:46px}
.kp-a-newcard .plus::before,.kp-a-newcard .plus::after{content:"";position:absolute;left:50%;top:50%;background:currentColor;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.kp-a-newcard .plus::before{width:46px;height:1px;transform:translate(-50%,-50%)}
.kp-a-newcard .plus::after{width:1px;height:46px;transform:translate(-50%,-50%)}
.kp-a-newcard .l{font-family:Arial,Helvetica,sans-serif;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:#5c554e;transition:color .3s}
.kp-a-card.kp-a-newcard:hover{border-style:solid;border-color:var(--ink);background:var(--a-card)}
.kp-a-newcard:hover .plus::before{transform:translate(-50%,-50%) rotate(90deg)}
.kp-a-newcard:hover .plus::after{transform:translate(-50%,-50%) rotate(90deg)}
.kp-a-newcard:hover .l{color:var(--ink)}
@media (prefers-reduced-motion:reduce){ .kp-a-newcard .plus::before,.kp-a-newcard .plus::after{transition:none} }

/* V159 — new order builder: the project, then rooms and their pieces as a schedule (no prices) */
.kp-no{display:flex;flex-direction:column;gap:26px}
.kp-no-step{margin:0 0 18px;font-family:Arial,Helvetica,sans-serif;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.kp-no-step b{display:inline-block;min-width:26px;font-weight:400;color:var(--muted)}
.kp-no-step .kp-opt{font-style:normal;margin-left:6px;color:var(--muted);text-transform:none;letter-spacing:.02em;font-family:var(--serif);font-size:11px}
.kp-no-lede{max-width:640px;margin:-6px 0 22px;font-family:var(--serif);font-size:14px;line-height:1.55;color:#6d665e}
.kp-no-sched{padding:28px 24px 26px;border:1px solid var(--a-line,rgba(19,17,15,.12));background:var(--a-card,rgba(255,253,248,.6))}
.kp-no-room{margin:0 0 22px;border:1px solid rgba(19,17,15,.14);background:#fbf9f4}
.kp-no-rhead{display:flex;align-items:center;gap:16px;padding:14px 18px;border-bottom:1px solid rgba(19,17,15,.12);background:rgba(19,17,15,.025)}
.kp-app .kp-no-rname{flex:1;min-width:0;margin:0;padding:2px 0;border:0;border-bottom:1px solid transparent;background:transparent;font-family:var(--serif);font-size:22px;letter-spacing:-.005em;color:var(--ink);outline:none;border-radius:0;box-shadow:none}
.kp-app .kp-no-rname:hover,.kp-app .kp-no-rname:focus{border-bottom-color:rgba(19,17,15,.3)}
.kp-no-rname::placeholder{color:rgba(19,17,15,.3)}
.kp-no-rcount{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
/* each piece is one schedule line: no. | piece | type | qty | size | material, then files and notes underneath */
.kp-no-row{position:relative;display:grid;grid-template-columns:34px minmax(0,2.2fr) minmax(0,1.1fr) 64px minmax(0,1.1fr) minmax(0,1.6fr) 30px;gap:0 16px;align-items:end;padding:16px 18px 18px;border-bottom:1px solid rgba(19,17,15,.1)}
.kp-no-n{align-self:center;padding-top:14px;font-family:Arial,Helvetica,sans-serif;font-size:9px;letter-spacing:.12em;color:var(--muted)}
.kp-no-c{display:flex;flex-direction:column;gap:6px;min-width:0}
.kp-no-c .h,.kp-no-fg .h{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-app .kp-no-c input,.kp-app .kp-no-c select{width:100%;height:auto;margin:0;padding:5px 0 7px;border:0;border-bottom:1px solid var(--a-line2,rgba(19,17,15,.22));background:transparent;font-family:var(--serif);font-size:14px;color:var(--ink);outline:none;border-radius:0;box-shadow:none;-webkit-appearance:none;appearance:none}
.kp-app .kp-no-c select{background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 9px) 52%,calc(100% - 5px) 52%;background-size:4px 4px;background-repeat:no-repeat;padding-right:18px;cursor:pointer}
.kp-app .kp-no-c input:focus,.kp-app .kp-no-c select:focus{border-bottom-color:var(--ink)}
.kp-no-c input::placeholder{color:rgba(19,17,15,.3)}
.kp-no-del{align-self:center;margin-top:14px;width:30px;height:30px;border:0;background:none;font-size:20px;line-height:1;color:var(--muted);cursor:pointer}
.kp-no-del:hover{color:var(--ink)}
.kp-no-files{grid-column:2 / -1;display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:14px 16px;margin-top:16px}
.kp-no-fg{display:flex;flex-direction:column;gap:8px;min-width:0}
.kp-no-fg .l{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.kp-no-file{display:inline-flex;align-items:center;gap:6px;max-width:100%;height:34px;padding:0 4px 0 0;border:1px solid rgba(19,17,15,.14);background:#fff}
.kp-no-file img{width:32px;height:32px;object-fit:cover;display:block}
.kp-no-file b{display:grid;place-items:center;width:32px;height:32px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;font-weight:400;letter-spacing:.08em;color:var(--muted);border-right:1px solid rgba(19,17,15,.1)}
.kp-no-file .n{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:#5c554e}
.kp-no-file .x{border:0;background:none;width:18px;height:18px;font-size:14px;line-height:1;color:var(--muted);cursor:pointer}
.kp-no-file .x:hover{color:var(--ink)}
.kp-no-up{position:relative;display:inline-flex;align-items:center;height:34px;padding:0 12px;border:1px dashed rgba(19,17,15,.3);cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:#5c554e;transition:border-color .2s,color .2s}
.kp-no-up:hover{border-style:solid;border-color:var(--ink);color:var(--ink)}
.kp-no-up input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.kp-no-busy{grid-column:1 / -1;margin:0;font-size:12px;color:var(--muted)}
.kp-no-addp{display:flex;align-items:center;gap:10px;width:100%;padding:14px 18px;border:0;background:none;text-align:left;font-family:Arial,Helvetica,sans-serif;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#5c554e;cursor:pointer;transition:background .2s,color .2s}
.kp-no-addp span{font-family:var(--serif);font-size:20px;line-height:1;letter-spacing:0}
.kp-no-addp:hover{background:rgba(19,17,15,.03);color:var(--ink)}
.kp-no-addroom{padding:22px 0 2px}
.kp-no-addroom .h{margin:0 0 12px;font-family:var(--serif);font-size:16px;color:var(--ink)}
.kp-no-addroom .chips{display:flex;flex-wrap:wrap;gap:8px}
.kp-no-addroom button{height:38px;padding:0 16px;border:1px solid rgba(19,17,15,.2);background:#fff;font-family:var(--serif);font-size:14px;color:var(--ink);cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.kp-no-addroom button:hover{border-color:var(--ink)}
.kp-no-addroom button.own{border-style:dashed;font-family:Arial,Helvetica,sans-serif;font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.kp-no-more .kp-a-field textarea{width:100%;resize:vertical}
.kp-app .kp-no-more textarea{margin:0;border:0;border-bottom:1px solid var(--a-line2);background:transparent;padding:6px 0 8px;font-family:var(--serif);font-size:14px;line-height:1.5;color:var(--ink);outline:none;border-radius:0;box-shadow:none}
.kp-no-foot{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:22px;padding:16px 0;border-top:1px solid var(--a-line2,rgba(19,17,15,.2));background:var(--paper,#f3efe7)}
.kp-no-foot .sum{flex:1;display:flex;gap:18px;margin:0;font-family:Arial,Helvetica,sans-serif;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-no-need input{border-bottom-color:#a3402a!important}
.kp-no-need span{color:#a3402a}
@media (max-width:1100px){
  .kp-no-row{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) 30px;gap:12px 14px;align-items:end}
  .kp-no-n{grid-row:1}
  .kp-no-what{grid-column:2 / 4}
  .kp-no-del{grid-column:4;grid-row:1}
  .kp-no-type{grid-column:2}
  .kp-no-qty{grid-column:3}
  .kp-no-dims{grid-column:2}
  .kp-no-fin{grid-column:3}
  .kp-no-files{grid-column:2 / 4;grid-template-columns:1fr;margin-top:6px}
}
@media (max-width:600px){
  .kp-no-sched{padding:20px 14px;margin:0 calc(var(--pad,24px) * -1);border-left:0;border-right:0}
  .kp-no-rhead{flex-wrap:wrap;padding:12px 14px}
  .kp-no-rname{font-size:19px}
  .kp-no-row{grid-template-columns:22px minmax(0,1fr) minmax(0,1fr) 26px;padding:14px}
  .kp-no-foot{flex-wrap:wrap;gap:12px 18px}
  .kp-no-foot .sum{flex-basis:100%}
  .kp-no-foot .btn{flex:1;text-align:center;justify-content:center}
}

/* V160 — schedule life (draft → quotation → confirmed), decisions and comments beside each piece, + New piece inside the schedule */
.kp-cs-row{grid-template-columns:96px minmax(0,1fr) 60px 110px 240px}
.kp-cs-row .st{padding-left:18px;border-left:1px solid rgba(19,17,15,.08);align-self:stretch}
.kp-cs-row.st-dec{opacity:.62}
.kp-cs-row.st-dec h3{text-decoration:line-through;text-decoration-thickness:1px}
.kp-cs-pill.dec{border-color:rgba(19,17,15,.25);color:var(--muted)}.kp-cs-pill.dec::before{background:transparent;border:1px solid var(--muted)}
.kp-cs-note.dec{color:var(--muted)}
.kp-cs-note .kp-a-link{font-size:9px}
.kp-cs-rm{font-size:9px;color:var(--muted)}
.kp-cs-cmts{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.kp-cs-cmts ul{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:6px}
.kp-cs-cmts li{padding:7px 9px;border-left:2px solid rgba(19,17,15,.18);background:rgba(255,253,248,.8)}
.kp-cs-cmts li.them{border-left-color:var(--ink);background:#fff}
.kp-cs-cmts li .w{display:block;margin-bottom:2px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-cs-cmts li p{margin:0;font-family:var(--serif);font-size:12.5px;line-height:1.45;color:#3e3934}
.kp-cs-cmts .kp-cs-cbtn{font-size:9px}
.kp-cs-cmts .kp-sel-say textarea{min-height:56px}
.kp-cs-state{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;margin:0 0 18px;padding:16px 18px;border:1px solid rgba(19,17,15,.12);background:#fffdf8}
.kp-cs-state p{flex:1;min-width:240px;margin:2px 0 0;font-family:var(--serif);font-size:14px;line-height:1.5;color:#5c554e}
.kp-cs-state p b{font-weight:400;color:var(--ink)}
.kp-cs-state.quoted{border-color:#c3afd0;background:rgba(138,106,160,.05)}
.kp-cs-state.confirmed{border-color:#aebd9f}
.kp-cs-qa{flex-basis:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:14px;margin-top:4px;border-top:1px solid rgba(138,106,160,.25)}
.kp-cs-qa span{font-family:var(--serif);font-size:14px;color:#5c554e}.kp-cs-qa b{font-weight:400;font-size:18px;color:var(--ink)}
.kp-cs-qa .btn{background:var(--ink);color:#f6f3ec;border-color:var(--ink)}
.kp-cs-qa .btn:disabled{opacity:.4}
/* + New piece */
.kp-np-open{display:flex;align-items:center;gap:22px;width:100%;margin:0 0 22px;padding:22px 24px;border:1px dashed rgba(19,17,15,.3);background:transparent;text-align:left;cursor:pointer;color:var(--ink);transition:border-color .25s,background .25s}
.kp-np-open:hover{border-style:solid;border-color:var(--ink);background:var(--a-card,rgba(255,253,248,.6))}
.kp-np-open .plus{position:relative;flex:none;width:38px;height:38px}
.kp-np-open .plus::before,.kp-np-open .plus::after{content:"";position:absolute;left:50%;top:50%;background:currentColor;transform:translate(-50%,-50%);transition:transform .5s cubic-bezier(.16,1,.3,1)}
.kp-np-open .plus::before{width:38px;height:1px}.kp-np-open .plus::after{width:1px;height:38px}
.kp-np-open:hover .plus::before,.kp-np-open:hover .plus::after{transform:translate(-50%,-50%) rotate(90deg)}
.kp-np-open .t{display:flex;flex-direction:column;gap:4px}
.kp-np-open b{font-weight:400;font-family:Arial,Helvetica,sans-serif;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase}
.kp-np-open em{font-style:normal;font-family:var(--serif);font-size:14px;color:#6d665e}
.kp-np{margin:0 0 24px;padding:22px 22px 18px}
.kp-np-head{display:flex;justify-content:space-between;align-items:baseline}
.kp-np-room{display:flex;flex-direction:column;gap:10px;margin:2px 0 14px}
.kp-np-room .h{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-np-room .chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.kp-np-room button{height:34px;padding:0 13px;border:1px solid rgba(19,17,15,.18);background:#fff;font-family:var(--serif);font-size:13.5px;color:#5c554e;cursor:pointer}
.kp-np-room button.have{color:var(--ink);border-color:rgba(19,17,15,.35)}
.kp-np-room button.on{background:var(--ink);border-color:var(--ink);color:#f6f3ec}
.kp-app .kp-np-own{height:34px;width:160px;margin:0;padding:0 10px;border:1px dashed rgba(19,17,15,.3);background:transparent;font-family:var(--serif);font-size:13.5px;color:var(--ink);outline:none;border-radius:0;box-shadow:none}
.kp-app .kp-np-own:focus,.kp-app .kp-np-own.on{border-style:solid;border-color:var(--ink)}
.kp-np .kp-no-row{padding:12px 0 16px;border:0;grid-template-columns:0 minmax(0,2.2fr) minmax(0,1.1fr) 64px minmax(0,1.1fr) minmax(0,1.6fr) 0;gap:0 16px}
.kp-np .kp-no-n,.kp-np .kp-no-del{visibility:hidden;width:0;min-width:0;overflow:hidden;padding:0;margin:0}
.kp-np .kp-no-files{grid-column:2 / 7}
.kp-np-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:14px;border-top:1px solid rgba(19,17,15,.12)}
.kp-np-foot .kp-a-dim{font-family:var(--serif);font-size:13px}
.kp-np-briefs{margin-top:34px}
/* staff: where the schedule is in its life */
.kp-sch-state{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 18px;padding:14px 18px;border:1px solid rgba(19,17,15,.14);background:#fffdf8}
.kp-sch-state p{flex:1;min-width:260px;margin:0;font-family:var(--serif);font-size:14px;color:#5c554e}
.kp-sch-state p b{font-weight:400;color:var(--ink)}
.kp-sch-state .warn{color:#a3523f}
.kp-sch-chip{padding:4px 10px;border:1px solid currentColor;border-radius:12px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase}
.kp-sch-state.draft .kp-sch-chip{color:#8a6a2f}
.kp-sch-state.quoted{border-color:#c3afd0}.kp-sch-state.quoted .kp-sch-chip{color:#6b4f80}
.kp-sch-state.confirmed{border-color:#aebd9f}.kp-sch-state.confirmed .kp-sch-chip{color:#4d6b45}
.kp-rv.declined{color:var(--muted);border-color:rgba(19,17,15,.25)}
.kp-ap-row.declined{opacity:.7}
.kp-ap-cmts{margin-top:8px;max-width:520px}
.kp-ap-cmts ul{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column;gap:5px}
.kp-ap-cmts li{padding:6px 9px;border-left:2px solid var(--ink);background:#fff}
.kp-ap-cmts li.me{border-left-color:rgba(19,17,15,.2);background:transparent}
.kp-ap-cmts li .w{display:block;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-ap-cmts li p{margin:2px 0 0;font-family:var(--serif);font-size:13px}
.kp-ap-reply{display:flex;gap:10px;align-items:center}
.kp-app .kp-ap-reply input{flex:1;height:30px;margin:0;padding:0 2px;border:0;border-bottom:1px solid rgba(19,17,15,.2);background:transparent;font-family:var(--serif);font-size:13px;outline:none;border-radius:0;box-shadow:none}
@media (max-width:900px){
  .kp-cs-row{grid-template-columns:72px minmax(0,1fr)}
  .kp-cs-row .st{padding-left:0;border-left:0;padding-top:12px;border-top:1px solid rgba(19,17,15,.08)}
  .kp-np .kp-no-row{grid-template-columns:0 minmax(0,1fr) minmax(0,1fr) 0}
  .kp-np .kp-no-what{grid-column:2 / 4}.kp-np .kp-no-type,.kp-np .kp-no-dims{grid-column:2}.kp-np .kp-no-qty,.kp-np .kp-no-fin{grid-column:3}
  .kp-np .kp-no-files{grid-column:2 / 4}
  .kp-np-open{padding:18px}
}
/* estimated costs in the cost sheet */
.kp-sheet-est{margin-left:auto;float:right;border:0;background:none;padding:0;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.kp-sheet-t tr.est td{background:rgba(195,160,90,.06)}
.kp-sheet-t .kind.est{display:inline-block;margin:0 8px 0 0;padding:1px 6px;border:1px dashed #b8955a;border-radius:9px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.1em;text-transform:uppercase;color:#8a6a2f;vertical-align:2px}
.kp-sheet-t tr.est [data-k="cost"]{color:#8a6a2f;font-style:italic}
.kp-sheet-t input.need{border-bottom-color:#a3402a!important}
.kp-est-h{margin:26px 0 12px}

/* V162 — remake cover: a reserve on every piece, then profit */
.kp-split i.reserve{background:#a88a5a}
.kp-sheet-remake{padding:12px 0 10px;border-top:1px solid rgba(19,17,15,.18)}
.kp-sheet-remake label{display:flex!important;justify-content:space-between;align-items:center;margin:0!important;font-family:Arial,Helvetica,sans-serif;font-size:8.5px!important;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.kp-sheet-remake p{margin:4px 0 0;font-family:var(--serif);font-size:12px;color:var(--muted)}
.kp-sheet-remake+.kp-sheet-margin{margin-top:0}
.kp-app .kp-sheet-remake input,.kp-sheet-remake input{width:52px;margin:0;padding:3px 0 4px;border:0;border-bottom:1px solid rgba(19,17,15,.3);background:transparent;font-family:var(--serif);font-size:18px;text-align:right;color:var(--ink);border-radius:0;outline:none;height:auto;box-shadow:none}
/* V163 — total profit, with the remake reserve and the profit on top listed under it */
.kp-sheet-sum .pp dt,.kp-sheet-sum .pp dd{font-size:.92em;color:#6d665e}
.kp-sheet-sum .pp dt{padding-left:12px;border-left:1px solid rgba(19,17,15,.15)}
.kp-sheet-sum .profit.tot{padding-top:6px;border-top:1px solid rgba(19,17,15,.15)}
.kp-sheet-sum .profit.tot dt{color:var(--ink)}
/* V164 — size and freight by volume in the cost sheet */
.kp-sheet-size{margin-top:10px;align-items:flex-end;flex-wrap:wrap}
.kp-sheet-size .kp-sheet-mini input{width:74px}
.kp-cbm{flex:1 1 260px;margin:0 0 6px;font-family:var(--serif);font-size:13px;color:#5c554e}
.kp-cbm b{font-weight:400;color:var(--ink)}
.kp-cbm span{color:var(--muted);font-size:12px}
.kp-use-cbm{display:block;margin-top:4px;padding:0;border:0;background:none;font-family:var(--serif);font-size:12px;color:#8a6a2f;text-decoration:underline;text-underline-offset:3px;cursor:pointer;text-align:left}

/* V166 — Data: the rates behind every price */
.kp-rates .kp-rates-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;margin-bottom:14px}
.kp-rates .kp-rates-h h2{margin:0}
.kp-rates .kp-rates-h p{flex:1 1 320px;margin:0;font-family:var(--serif);font-size:13.5px;color:#6d665e}
.kp-rates-acts{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.kp-rates-auto{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:13.5px;color:#5c554e}
.kp-rates-warn{margin:0 0 20px;padding:12px 16px;border-left:2px solid #b78b4b;background:rgba(183,139,75,.08);font-family:var(--serif);font-size:14px;color:#6b4f2a}
.kp-rates .kp-a-fields{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.kp-rates-note{margin-bottom:16px}
.kp-app .kp-rates-auto{font-family:var(--serif)!important;font-size:13.5px!important;letter-spacing:0!important;text-transform:none!important;color:#5c554e!important;white-space:nowrap}
.kp-app .kp-rates-auto input{width:auto!important;height:auto!important;margin:0!important;accent-color:#13110f}
.kp-rates .kp-rates-h{align-items:center}
.kp-rates-flag{display:block;margin-top:6px;color:#8a6a2f}
.kp-rates .kp-rates-h p b{font-weight:400;color:var(--ink)}
form[data-rates]+.kp-a-sec{margin-top:40px}

/* V168 — staff: the order you're in opens under Orders, with its sections (like the client portal) */
.kp-st-sub{display:grid;grid-template-rows:1fr;margin:2px 0 6px 12px;border-left:1px solid rgba(19,17,15,.14)}
.kp-st-sub>div{overflow:hidden;min-height:0;padding:4px 0 6px}
.kp-st-sub.grow{animation:kpSubOpen .38s cubic-bezier(.16,1,.3,1) both}
.kp-st-sub.grow a{animation:kpSubItem .4s cubic-bezier(.16,1,.3,1) both}
.kp-st-sub.grow a:nth-child(2){animation-delay:.03s}.kp-st-sub.grow a:nth-child(3){animation-delay:.06s}.kp-st-sub.grow a:nth-child(4){animation-delay:.09s}.kp-st-sub.grow a:nth-child(5){animation-delay:.12s}
.kp-st-nav .kp-app-tabs .kp-st-sub a{border-radius:0}
.kp-st-nav .kp-app-tabs a.kp-st-sub-o{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px 10px 14px;font-size:15px!important;color:var(--ink)}
.kp-st-sub-o .t{line-height:1.2}
.kp-st-sub-o .k{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-st-nav .kp-app-tabs a.kp-st-sub-s{margin-left:14px;padding:8px 10px 8px 14px;border-left:1px solid rgba(19,17,15,.16);font-family:Arial,Helvetica,sans-serif;font-size:9.5px!important;letter-spacing:.14em;text-transform:uppercase;color:#6d665e}
.kp-st-nav .kp-app-tabs a.kp-st-sub-s:hover{background:none;color:var(--ink)}
.kp-st-nav .kp-app-tabs a.kp-st-sub-s.on{color:var(--ink);font-weight:700;background:none;border-left-color:var(--ink);box-shadow:inset 2px 0 0 var(--ink)}
.kp-st-sub-s em{font-style:normal;font-weight:400;min-width:16px;height:16px;line-height:16px;padding:0 5px;border-radius:8px;background:var(--ink);color:#f6f3ec;font-size:9px;letter-spacing:0;text-align:center}
.kp-st-sub-s em.n{background:none;color:var(--muted)}
@media (max-width:900px){
  .kp-st-sub{display:none}
  .kp-st-app .kp-a-secnav{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0 0 22px}
  .kp-st-app .kp-a-secnav a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 6px;border:1px solid rgba(19,17,15,.18);background:var(--a-card,rgba(255,253,248,.55));font-family:Arial,Helvetica,sans-serif;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;text-align:center;color:#5c554e;text-decoration:none}
  .kp-st-app .kp-a-secnav a.on{background:var(--ink);border-color:var(--ink);color:#f6f3ec}
  .kp-st-app .kp-a-secnav a em{font-style:normal;min-width:16px;height:16px;line-height:16px;padding:0 4px;border-radius:8px;background:var(--ink);color:#f6f3ec;font-size:9px}
  .kp-st-app .kp-a-secnav a em.n{background:none;color:var(--muted)}
  .kp-st-app .kp-a-secnav a.on em{background:#f6f3ec;color:var(--ink)}
}
@media (max-width:520px){ .kp-st-app .kp-a-secnav{grid-template-columns:repeat(2,1fr)} }
@media (max-width:599px){ .kp-st-app .kp-a-secnav{grid-template-columns:repeat(2,1fr)} .kp-st-app .kp-a-secnav a:first-child{grid-column:auto} }
/* V170 — the order's shipping, once, at the bottom of the schedule */
.kp-sch tbody.kp-sch-shipg tr.kp-sch-area .kp-sch-areah{display:inline-block;margin-left:17px}
.kp-sch tr.kp-sch-shiprow td{background:var(--a-soft,#f6f3ee)}
.kp-sch-shipn{font-weight:400;font-size:14px;display:block;margin-bottom:2px}
.kp-sch-shipmiss{display:block;margin-top:6px;font-size:12px;color:#9a5b1e}
.kp-sch-shipmiss .kp-a-link{font-size:12px}
.kp-sch tr.kp-sch-totrow td{padding:16px 10px;border-top:1px solid var(--ink);font-size:13px}
.kp-sch tr.kp-sch-totrow td:first-child{font-family:Arial,Helvetica,sans-serif;font-size:9px;letter-spacing:.16em;text-transform:uppercase}
.kp-sch tr.kp-sch-totrow b{font-weight:400;font-size:15px;display:block}
.kp-sch tr.kp-sch-totrow .sm{display:block;font-size:11px;color:var(--muted)}
.kp-inv-shipnote{margin:6px 0 0;font-size:12px}
.kp-cs-shipln{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px;font-family:var(--serif)}
.kp-cs-shipln p{margin:0}
.kp-cs-shipln p b{display:block;font-weight:400;font-size:15px}
.kp-cs-shipln p span{font-size:13px;color:var(--muted)}
.kp-cs-shipln p b,.kp-cs-shipln>b{font-family:var(--serif)}
.kp-cs-shipln>b{font-weight:400;white-space:nowrap}
.kp-st-shell>.kp-app-main{min-width:0}
.kp-sch-totm{display:none}
@media (max-width:760px){ .kp-sch tr.kp-sch-totrow td:first-child .kp-sch-totm{display:block;margin-top:8px;font-family:var(--serif);font-size:15px;letter-spacing:0;text-transform:none} }
/* V171 — CBM per piece on the schedule, and the shipping sheet */
.kp-sch td.cbm{white-space:nowrap}
.kp-sch td.cbm .v{font-size:13px}
.kp-sch td.cbm .v.dec{text-decoration:line-through;color:var(--muted)}
.kp-sch td.cbm .sm{display:block;font-size:10.5px;color:var(--muted)}
.kp-sch-nosize{all:unset;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:#9a5b1e;border-bottom:1px solid currentColor;padding-bottom:1px;white-space:nowrap}
.kp-sch tr.kp-sch-area em.kp-sch-acbm{font-size:11.5px;color:var(--muted)}
.kp-sch .kp-sch-shipg tr.kp-sch-area td{cursor:pointer}
.kp-sch .kp-sch-shipg tr.kp-sch-area button i{transform:rotate(-45deg) translate(-1px,-1px)}
.kp-sch .kp-sch-shipg tr.kp-sch-area:hover td{background:rgba(19,17,15,.05)}
.kp-sch-shipn.kp-sch-open{font-size:15px}
.kp-sch-shipgo{display:inline-block;margin-top:8px}
.kp-sch td.cbm b.v{font-weight:400;font-size:15px}
.kp-ship-modal .kp-modal-card{width:min(1000px,100%)}
.kp-ship-rates{display:grid;grid-template-columns:200px 220px minmax(0,1fr);gap:20px;align-items:end;margin:22px 0 6px}
.kp-ship-rates .kp-a-field input{height:auto;margin:0;width:100%;border:0;border-bottom:1px solid rgba(19,17,15,.2);background:transparent;padding:6px 0 8px;font-family:var(--serif);font-size:16px;color:var(--ink);outline:none;border-radius:0;box-shadow:none}
.kp-ship-src{margin:0;font-size:12px;color:var(--muted);line-height:1.5}
.kp-ship-wrap{overflow-x:auto;margin-top:18px;flex-shrink:0}
.kp-ship-t{width:100%;border-collapse:collapse;font-family:var(--serif);font-size:13.5px;min-width:720px}
.kp-ship-t th{font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 10px 8px 0;border-bottom:1px solid rgba(19,17,15,.2);white-space:nowrap}
.kp-ship-t th.n,.kp-ship-t td.n{text-align:right}
.kp-ship-t td{padding:10px 10px 10px 0;border-bottom:1px solid rgba(19,17,15,.08);vertical-align:middle}
.kp-ship-t td.n:last-child,.kp-ship-t th.n:last-child{padding-right:0}
.kp-ship-t tr.ar td{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;padding-top:18px;color:var(--ink)}
.kp-ship-t td.nm b{font-weight:400;display:block}
.kp-ship-t td.nm span{display:block;font-size:11.5px;color:var(--muted)}
.kp-ship-t td.n b{font-weight:400}
.kp-ship-sz{display:inline-flex;align-items:center;gap:6px}
.kp-ship-sz input{width:58px;border:0;border-bottom:1px solid rgba(19,17,15,.2);background:transparent;padding:4px 0;font-family:var(--serif);font-size:13.5px;text-align:center;outline:none;border-radius:0}
.kp-ship-sz input:focus{border-bottom-color:var(--ink)}
.kp-ship-sz i{font-style:normal;color:var(--muted);font-size:11px}
.kp-ship-t tr.miss td{background:rgba(154,91,30,.07)}
.kp-ship-t tr.miss .kp-ship-sz input{border-bottom-color:#9a5b1e}
.kp-ship-t tr.dec td{color:var(--muted)}
.kp-ship-t [data-ship-sum] td{border-bottom:0;padding:6px 0}
.kp-ship-t [data-ship-sum] tr.tv td{padding-top:16px;border-top:1px solid rgba(19,17,15,.2)}
.kp-ship-t [data-ship-sum] tr.b td{font-size:16px;border-top:1px solid rgba(19,17,15,.12);padding-top:10px}
.kp-ship-t [data-ship-sum] td span{font-size:11.5px;color:var(--muted);margin-left:8px}
.kp-ship-miss{margin:14px 0 0;font-family:var(--serif);font-size:13.5px;color:#9a5b1e;flex-shrink:0}
@media (max-width:760px){ .kp-ship-rates{grid-template-columns:1fr 1fr} .kp-ship-src{grid-column:1/-1} }
.kp-cs-row .q em.cbm{display:block;margin-top:6px;font-style:normal;font-size:12px;color:var(--muted)}
details.kp-cs-ship>summary{list-style:none;cursor:pointer}
details.kp-cs-ship>summary::-webkit-details-marker{display:none}
details.kp-cs-ship>summary:hover .kp-cs-shipln{background:rgba(19,17,15,.03)}
.kp-cs-shipln p .kp-cs-shipx{display:table;margin-top:8px;font-style:normal;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:1px;color:var(--ink)}
details.kp-cs-ship[open] .kp-cs-shipx{opacity:.5}
.kp-cs-shipd{padding:0 18px 18px;font-family:var(--serif)}
.kp-cs-shipd table{width:100%;border-collapse:collapse;font-size:13.5px}
.kp-cs-shipd th{font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 8px 8px 0;border-bottom:1px solid rgba(19,17,15,.15)}
.kp-cs-shipd td{padding:9px 8px 9px 0;border-bottom:1px solid rgba(19,17,15,.07);vertical-align:top}
.kp-cs-shipd .n{text-align:right;padding-right:0}
.kp-cs-shipd td span.a{display:block;font-size:11.5px;color:var(--muted)}
.kp-cs-shipd td em{font-style:normal;font-size:12px;color:#9a5b1e}
.kp-cs-shipd tbody.sum td{border-bottom:0;padding:6px 0}
.kp-cs-shipd tbody.sum tr:first-child td{border-top:1px solid rgba(19,17,15,.2);padding-top:12px}
.kp-cs-shipd tbody.sum tr.b td{font-size:15px;border-top:1px solid rgba(19,17,15,.12);padding-top:10px}
.kp-cs-shipm{margin:12px 0 0;font-size:12.5px;color:#9a5b1e}
/* V172 — cleaner schedules */
.kp-sch-addl{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-right:2px}
.kp-sch-ghost.on{background:var(--ink);color:var(--paper,#f3efe7);border-color:var(--ink)}
.kp-sch-tools-r{gap:18px}
.kp-sch-filter{margin-bottom:0;border-bottom:0}
.kp-sch-jump{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin:0 0 18px;padding:12px 0 14px;border-top:1px solid var(--a-line);border-bottom:1px solid var(--a-line)}
.kp-sch-jump button{all:unset;cursor:pointer;font-family:var(--serif);font-size:13.5px;color:var(--ink);border-bottom:1px solid transparent;padding-bottom:1px;transition:border-color .2s}
.kp-sch-jump button:hover{border-bottom-color:var(--ink)}
.kp-sch-jump button em{font-style:normal;font-size:11px;color:var(--muted);margin-left:2px}
.kp-sch-jump .kp-sch-fl{margin-right:4px}
.kp-sch td.sup{max-width:190px}
.kp-sch td.sup{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kp-sch-danger{display:flex;gap:28px;margin-top:28px}
.kp-sch-quick{margin-bottom:18px}

/* client schedule: tidier header, collapsible site visits, room jump */
.kp-cs-topacts{display:flex;align-items:center;gap:22px}
.kp-cs-site>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:18px;padding:13px 18px}
.kp-cs-site>summary::-webkit-details-marker{display:none}
.kp-cs-site>summary .h{padding:0;border:0}
.kp-cs-site>summary .h em{font-style:normal;color:var(--muted);margin-left:4px}
.kp-cs-site>summary .nx{font-family:var(--serif);font-size:13px;color:#5c554e;flex:1}
.kp-cs-site>summary i{font-style:normal;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:1px}
.kp-cs-site[open]>summary{border-bottom:1px solid rgba(19,17,15,.1)}
.kp-cs-site[open]>summary i{opacity:.5}
.kp-cs-filter{align-items:center}
.kp-cs-jump{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px}
.kp-cs-jump .l{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.kp-cs-jump button{all:unset;cursor:pointer;font-family:var(--serif);font-size:13.5px;border-bottom:1px solid transparent;padding-bottom:1px}
.kp-cs-jump button:hover{border-bottom-color:var(--ink)}
.kp-cs-addwrap{margin:22px 0 0}
html.kp-print-inv .kp-cs-addwrap,html.kp-print-inv .kp-cs-jump,html.kp-print-inv .kp-cs-topacts{display:none!important}
@media (max-width:700px){ .kp-cs-jump{margin-left:0;width:100%;padding-top:6px} .kp-cs-site>summary{flex-wrap:wrap;gap:6px 14px} .kp-cs-site>summary .nx{flex-basis:100%;order:3} }
.kp-cs-top.one{align-items:center;margin-bottom:14px}
.kp-cs-rh span{font-size:9px}
@media (max-width:700px){
  .kp-cs-sum{grid-template-columns:repeat(3,minmax(0,1fr))} .kp-cs-sum>div{padding:12px 12px;gap:4px} .kp-cs-sum>div+div{border-top:0;border-left:1px solid rgba(19,17,15,.1)}
  .kp-cs-sum b{font-size:18px} .kp-cs-sum em{font-size:11px} .kp-cs-sum span{font-size:7.5px;line-height:1.5}
  .kp-cs-top.one{flex-direction:row;align-items:center} .kp-cs-top.one .kp-a-kicker{display:none}
  .kp-sch-tools-r{gap:14px} .kp-sch-tools-r .btn{flex:1;text-align:center;justify-content:center}
}
/* V173 — easier-to-read schedule rows: figures in one clean face with lined-up digits, one line of detail, clear headers */
.kp-sch{font-variant-numeric:lining-nums tabular-nums}
.kp-sch thead th{font-size:8.5px;letter-spacing:.14em;color:#5c554e;padding-top:14px;padding-bottom:13px;white-space:nowrap}
.kp-sch td{padding-top:14px;padding-bottom:14px}
/* figures */
.kp-sch td.n,.kp-sch td.n .v,.kp-sch td.n b.v,.kp-sch td.n input[data-f],.kp-sch td.n .kp-mg-in i,.kp-sch td.cbm .v,.kp-sch td.cbm b.v{font-family:var(--sans);font-size:13px;letter-spacing:0;font-variant-numeric:lining-nums tabular-nums}
.kp-sch td.n b.v{font-weight:700;font-size:13.5px}
.kp-sch td.n .sm,.kp-sch td.cbm .sm{font-family:var(--sans);font-size:10.5px;letter-spacing:0;color:var(--muted);margin-top:3px}
.kp-sch td.n input[data-f]{color:var(--ink)}
.kp-mg-in{gap:0} .kp-mg-in input[data-f]{width:26px} .kp-sch td.n .kp-mg-in i{font-size:13px}
.kp-mg-in.ok input,.kp-mg-in.ok i{color:#4d6b45}
/* the product cell */
.kp-sch-thumb{width:48px;height:48px}
.kp-sch td.nm .nmx{gap:14px;align-items:center}
.kp-sch td.nm .nmw{min-width:0;max-width:440px}
.kp-sch td.nm .cd{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;margin-bottom:4px;min-height:12px}
.kp-sch td.nm .cd .tg{font-family:var(--sans);font-size:10px;letter-spacing:.06em;text-transform:none;color:var(--muted)}
.kp-sch td.nm .cd .kp-sch-gap{margin:0;padding:1px 8px;font-family:var(--sans);font-size:10px;letter-spacing:0;border-radius:9px;color:#8a5a22}
.kp-sch td.nm .cd .kp-sch-gap::before{width:5px;height:5px}
.kp-sch td.nm .cd .kp-rv{margin:0;font-family:var(--sans);font-size:10px;letter-spacing:0}
.kp-sch-open{font-size:15px;line-height:1.25}
.kp-sch td.nm .sp{display:block;margin-top:3px;font-size:12.5px;color:#6b645c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-sch td.nm .kp-sch-link{display:inline-block;margin-top:4px;font-family:var(--sans);font-size:10px}
/* supplier */
.kp-sch td.sup{font-family:var(--sans);font-size:12px;color:#5c554e;max-width:170px}
/* status */
.kp-sch select.kp-st{font-family:var(--sans);font-size:12px}
.kp-sch td.st{width:128px}
/* room headers and the shipping/total rows use the same figures */
.kp-sch tr.kp-sch-area b,.kp-sch tr.kp-sch-area em,.kp-sch tr.kp-sch-totrow b,.kp-sch tr.kp-sch-totrow td.n{font-family:var(--sans);font-variant-numeric:lining-nums tabular-nums}
.kp-sch tr.kp-sch-area b{font-size:13px;font-weight:700;color:var(--ink)}
.kp-sch tr.kp-sch-area em{font-size:11.5px}
.kp-sch tr.kp-sch-area span{font-size:9.5px}
.kp-sch tr.kp-sch-totrow b{font-size:14px;font-weight:700}
.kp-sch td.nm .kp-sch-shipn{font-size:15px}
.kp-sch-nosize{font-size:9px}
.kp-sch td.st{width:150px;min-width:150px}
.kp-sch select.kp-st{width:auto!important;min-width:128px;max-width:none}
.kp-sch td.nm .cd .kp-sch-gap,.kp-sch td.nm .cd .kp-rv{text-transform:none}
.kp-sch td.n.mg{width:64px}
/* client schedule: the same clear figures */
.kp-cs-row .q .v,.kp-cs-row .q em.cbm,.kp-cs-row .pr b,.kp-cs-row .pr span,.kp-cs-rh b,.kp-cs-shipln>b,.kp-cs-shipd .n,.kp-cs-tot dd{font-family:var(--sans);font-variant-numeric:lining-nums tabular-nums;letter-spacing:0}
.kp-cs-row .q .v{font-size:13px}
.kp-cs-row .q em.cbm{font-size:11px}
.kp-cs-row .pr b{font-size:14px;font-weight:700}
.kp-cs-row .pr span{font-size:11px}
.kp-cs-rh b,.kp-cs-shipln>b{font-size:13.5px;font-weight:700}
.kp-cs-row .d .cd{font-family:var(--sans);font-size:10px;letter-spacing:.06em;text-transform:none}
/* client overview: upcoming site visits and delivery, as a small calendar */
.kp-up ul{list-style:none;margin:0;padding:0;border:1px solid rgba(19,17,15,.13);background:#faf8f3}
.kp-up li{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:18px;align-items:center;padding:14px 18px}
.kp-up li+li{border-top:1px solid rgba(19,17,15,.08)}
.kp-up .cal{display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:60px;border:1px solid rgba(19,17,15,.16);background:#fffdf8;font-family:var(--sans);line-height:1.1}
.kp-up .cal em{font-style:normal;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-up .cal b{font-weight:700;font-size:20px;margin:2px 0;font-variant-numeric:lining-nums tabular-nums;color:var(--ink)}
.kp-up li.bk .cal{border-color:#3f5363;background:rgba(63,83,99,.06)}
.kp-up .cal.tbc{border-style:dashed;background:transparent}
.kp-up .cal.tbc b{color:var(--muted);font-weight:400}
.kp-up .t p{margin:0}
.kp-up .w{font-family:var(--serif);font-size:15.5px;color:var(--ink)}
.kp-up .m{margin-top:2px!important;font-family:var(--serif);font-size:13px;color:#6b645c}
.kp-up .s{font-family:var(--sans);font-size:11.5px;padding:4px 10px;border-radius:12px;white-space:nowrap;border:1px solid rgba(19,17,15,.15);color:#5c554e}
.kp-up li.bk .s{border-color:rgba(63,83,99,.4);color:#3f5363;background:rgba(63,83,99,.07)}
.kp-up li.tb .s{border-color:rgba(154,90,44,.35);color:#9a5a2c}
.kp-up .kp-a-note{margin-top:10px}
@media (max-width:560px){ .kp-up li{grid-template-columns:56px minmax(0,1fr);gap:14px} .kp-up .s{grid-column:2;justify-self:start} }
@media (max-width:560px){ .kp-up li{row-gap:6px;padding:12px 14px} .kp-up .s{font-size:10.5px;padding:3px 9px} }
/* V175 — packing allowance and LCL / full-container shipping */
.kp-ship-mode{display:inline-block;padding:1px 7px;margin-right:4px;border-radius:9px;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.06em;vertical-align:1px}
.kp-ship-mode.lcl{background:rgba(183,139,75,.15);color:#7a5520}
.kp-ship-mode.fcl{background:rgba(63,83,99,.12);color:#3f5363}
.kp-ship-rates{grid-template-columns:220px 160px 160px minmax(0,1fr)}
.kp-ship-rates select{height:auto;margin:0;width:100%;border:0;border-bottom:1px solid rgba(19,17,15,.2);background:transparent;padding:6px 0 8px;font-family:var(--serif);font-size:15px;color:var(--ink);border-radius:0;outline:none}
.kp-ship-plan{margin-top:20px;flex-shrink:0}
.kp-ship-rec{padding:16px 18px;border:1px solid rgba(19,17,15,.14);background:#fffdf8}
.kp-ship-rec p{margin:0}
.kp-ship-rec .k{font-family:var(--sans);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.kp-ship-rec .t{margin-top:6px!important;font-family:var(--serif);font-size:20px}
.kp-ship-rec .t .kp-ship-mode{font-size:11px;vertical-align:3px}
.kp-ship-rec .w{margin-top:4px!important;font-family:var(--serif);font-size:13px;color:#6b645c}
.kp-ship-fill{margin-top:12px;height:8px;background:rgba(19,17,15,.08);border-radius:4px;overflow:hidden}
.kp-ship-fill i{display:block;height:100%;background:#3f5363;border-radius:4px}
.kp-ship-fillt{display:block;margin-top:5px;font-family:var(--sans);font-size:11px;color:var(--muted)}
.kp-ship-warn{margin-top:10px!important;font-family:var(--serif);font-size:13px;color:#8a3b2e}
.kp-ship-opts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}
.kp-ship-opt{padding:12px 14px;border:1px solid rgba(19,17,15,.12);background:transparent}
.kp-ship-opt.on{border-color:var(--ink);background:#fffdf8}
.kp-ship-opt .h{display:block;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.06em;color:#5c554e}
.kp-ship-opt .h em{font-style:normal;font-weight:400;margin-left:4px;padding:1px 6px;border-radius:8px;background:var(--ink);color:#f3efe7}
.kp-ship-opt b{display:block;margin-top:4px;font-family:var(--sans);font-size:16px;font-weight:700;font-variant-numeric:lining-nums tabular-nums}
.kp-ship-opt .m{display:block;margin-top:3px;font-family:var(--serif);font-size:12px;color:#6b645c;line-height:1.35}
.kp-ship-t{font-variant-numeric:lining-nums tabular-nums}
.kp-ship-t td.n,.kp-ship-t td.n b{font-family:var(--sans);font-size:12.5px}
.kp-ship-pk{display:inline-flex;align-items:baseline;gap:2px}
.kp-ship-t input.pk{width:34px;border:0;border-bottom:1px solid rgba(19,17,15,.2);background:transparent;padding:3px 0;font-family:var(--sans);font-size:12.5px;text-align:right;outline:none;border-radius:0}
.kp-ship-t input.kg{width:56px;border:0;border-bottom:1px solid rgba(19,17,15,.2);background:transparent;padding:3px 0;font-family:var(--sans);font-size:12.5px;text-align:right;outline:none;border-radius:0}
.kp-ship-pk i{font-style:normal;color:var(--muted);font-size:11px}
.kp-ship-t [data-ship-sum] td{font-family:var(--serif)}
.kp-ship-t [data-ship-sum] td.n{font-family:var(--sans)}
.kp-ship-t{min-width:820px}
.kp-sch td.nm .kp-ship-mode{font-size:10px}
@media (max-width:760px){ .kp-ship-opts{grid-template-columns:1fr 1fr} .kp-ship-rates{grid-template-columns:1fr 1fr} }
/* V176 — duty, customs, packaging, insurance and delivery at the bottom of the schedule */
.kp-sheet-note{margin-left:auto;font-family:var(--serif);font-size:12px;text-transform:none;letter-spacing:0;color:var(--muted);max-width:420px;text-align:right;line-height:1.35}
.kp-sch-estm{display:inline-block;margin-left:6px;padding:0 6px;border-radius:8px;background:rgba(183,139,75,.14);color:#7a5520;font-family:var(--sans);font-size:10px;font-style:normal;letter-spacing:.03em;vertical-align:1px}
.kp-sch tr.kp-sch-shiprow td{padding-top:11px;padding-bottom:11px}
.kp-sch tr.kp-sch-shiprow + tr.kp-sch-shiprow td{border-top:1px solid rgba(19,17,15,.06)}
.kp-sch tr.kp-sch-shiprow .kp-sch-shipn{font-size:14px}
.kp-sch tr.kp-sch-shiprow td.nm .sp{white-space:normal}
.kp-sch tr.kp-sch-shipadd td{padding:10px 0 14px;background:var(--a-soft,#f6f3ee)}
.kp-sch tr.kp-sch-shipadd .kp-a-link{margin-right:14px}
.kp-sch tr.kp-sch-shipadd .kp-a-dim{font-size:12px}
.kp-ship-oc{margin-top:26px;flex-shrink:0}
.kp-ship-oc .kp-sheet-h span{font-family:var(--serif);font-size:12px;letter-spacing:0;text-transform:none;color:var(--muted);margin-left:8px}
.kp-oc-t{min-width:0!important;margin-top:6px}
.kp-oc-t td.nm input{width:100%;max-width:300px;border:0;border-bottom:1px solid rgba(19,17,15,.15);background:transparent;padding:4px 0;font-family:var(--serif);font-size:14px;outline:none;border-radius:0}
.kp-oc-t select,.kp-ship-oc select[data-oc-add]{border:0;border-bottom:1px solid rgba(19,17,15,.15);background:transparent;padding:4px 14px 4px 0;font-family:var(--serif);font-size:13px;color:var(--ink);outline:none;border-radius:0}
.kp-oc-t .kp-ship-pk select{font-family:var(--sans);font-size:11.5px;margin-right:6px}
.kp-oc-t tr.est td{background:rgba(183,139,75,.05)}
.kp-oc-t td.x button{all:unset;cursor:pointer;color:var(--muted);font-size:16px;padding:0 6px}
.kp-ship-oc select[data-oc-add]{margin-top:12px}
.kp-ship-tot{min-width:0!important;margin-top:18px;flex-shrink:0}
.kp-sheet-h .kp-sheet-note{color:var(--muted)!important}
.kp-sch tr.kp-sch-shiprow.one td{cursor:pointer;border-top:1px solid rgba(19,17,15,.13);padding-top:16px;padding-bottom:16px;background:#ece7df}
.kp-sch tr.kp-sch-shiprow.one:hover td{background:#e7e1d6}
.kp-sch tr.kp-sch-shiprow.one .kp-sch-shipn{font-size:15.5px}
/* V177 — New enquiries */
.kp-enq-rows li{display:flex;align-items:center}
.kp-enq-rows li>a{flex:1;min-width:0}
.kp-enq-rows .kp-enq-done{flex:none;margin:0 12px 0 4px;white-space:nowrap}
.kp-enq-rows .img.none{display:flex;align-items:center;justify-content:center}
.kp-enq-rows .img.none i{font-style:normal;font-family:var(--serif);font-size:24px;color:#9b938a}
.kp-enq-rows .k{text-transform:none;letter-spacing:.02em;font-family:var(--sans);font-size:11px}
.kp-enq-t{display:inline-block;margin-right:6px;padding:1px 7px;border-radius:9px;font-family:var(--sans);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.kp-enq-t.web{background:rgba(63,83,99,.12);color:#3f5363}
.kp-enq-t.order{background:rgba(77,107,69,.13);color:#4d6b45}
.kp-enq-t.piece{background:rgba(183,139,75,.15);color:#7a5520}
.kp-enq-t.brief{background:rgba(122,92,122,.13);color:#6b4f6b}
.kp-enq-f a{text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:13.5px}
.kp-enq-f a.on{border-bottom:1px solid var(--ink)}
.kp-enq-f a em{font-style:normal;font-size:11px;color:var(--muted);margin-left:2px}
@media (max-width:700px){ .kp-enq-rows li{flex-wrap:wrap} .kp-enq-rows .kp-enq-done{margin:0 0 10px 110px} }
/* V178 — accepted enquiries: the client starts an order from them */
.kp-enq-card{margin:0 0 28px;padding:26px 28px;border:1px solid rgba(19,17,15,.16);background:#fbf9f4;box-shadow:inset 3px 0 0 #4d6b45}
.kp-enq-card h2{margin:6px 0 8px;font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.4vw,30px)}
.kp-enq-card .kp-enq-lede{margin:0 0 16px;font-family:var(--serif);font-size:15px;color:#4a443e;max-width:640px}
.kp-enq-card dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px 24px;margin:0 0 16px}
.kp-enq-card dt,.kp-enq-dl dt{font-family:var(--sans);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-enq-card dd,.kp-enq-dl dd{margin:3px 0 0;font-family:var(--serif);font-size:14px;color:var(--ink)}
.kp-enq-msg{margin:0 0 18px;font-family:var(--serif);font-style:italic;font-size:14px;color:#5c554e;max-width:640px}
.kp-enq-from>summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:14px}
.kp-enq-from>summary::-webkit-details-marker{display:none}
.kp-enq-from>summary h2{margin:0}
.kp-enq-dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 24px;margin:14px 0 0}
.kp-enq-band{border-left:3px solid #3f5363;padding-left:14px}
.kp-enq-band.ok{border-left-color:#4d6b45}
.kp-enq-accept textarea{width:100%;font-family:var(--serif);font-size:14px;line-height:1.5;border:1px solid rgba(19,17,15,.2);background:#fffdf8;padding:10px 12px;border-radius:0}
@media (min-width:901px){ .kp-st-nav{height:calc(100dvh - var(--kp-hdr,57px));overscroll-behavior:contain;padding-bottom:24px} }
/* V178 — pieces fold-out in the shipping sheet, packing list */
.kp-ship-pcs{margin-top:22px;border:1px solid rgba(19,17,15,.14);background:#fffdf8;flex-shrink:0}
.kp-ship-pcs>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:14px 16px}
.kp-ship-pcs>summary::-webkit-details-marker{display:none}
.kp-ship-pcs>summary .h{font-family:var(--sans);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.kp-ship-pcs>summary .m{flex:1;font-family:var(--serif);font-size:13.5px;color:#5c554e}
.kp-ship-pcs>summary .m b{font-weight:400;color:var(--ink)}
.kp-ship-pcs>summary .m em{font-style:normal;color:#9a5b1e}
.kp-ship-pcs>summary i{font-style:normal;font-family:var(--sans);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid currentColor}
.kp-ship-pcs[open]>summary{border-bottom:1px solid rgba(19,17,15,.1)}
.kp-ship-pcs[open]>summary i{opacity:.5}
.kp-ship-pcs .kp-ship-wrap{margin:0;padding:0 16px 10px}
.kp-ship-pl{margin-right:auto}
.kp-sch-shipacts{display:flex;gap:18px;flex-wrap:wrap}
.kp-pkl-sum{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid rgba(19,17,15,.13);margin:22px 0}
.kp-pkl-sum>div{padding:12px 14px}.kp-pkl-sum>div+div{border-left:1px solid rgba(19,17,15,.1)}
.kp-pkl-sum span{display:block;font-family:var(--sans);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-pkl-sum b{display:block;margin-top:4px;font-family:var(--sans);font-weight:700;font-size:15px;font-variant-numeric:lining-nums tabular-nums}
.kp-pkl-t{font-size:12px}
.kp-pkl-t td,.kp-pkl-t th{padding:8px 6px!important;vertical-align:top}
.kp-pkl-t td.n{font-family:var(--sans);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.kp-pkl-t td b{font-weight:400}
.kp-pkl-t td span{display:block;font-size:11px;color:var(--muted)}
.kp-pkl-t tr.miss td{background:rgba(183,139,75,.08)}
.kp-pkl-t em{font-style:normal;color:#9a5b1e}
.kp-pkl-t tfoot td{border-top:1px solid var(--ink);font-family:var(--sans);font-size:12px}
.kp-pkl .kp-inv-to{grid-template-columns:repeat(3,minmax(0,1fr))}
@media print{ .kp-pkl{font-size:10px} }
@media (max-width:700px){ .kp-pkl-sum{grid-template-columns:repeat(2,minmax(0,1fr))} }
/* packing list, cleaner: grouped by supplier, one line per piece, figures aligned */
.kp-pkl-t{width:100%;border-collapse:collapse;table-layout:fixed;font-family:var(--sans);font-size:12px;font-variant-numeric:lining-nums tabular-nums;margin-top:6px}
.kp-pkl-t col.c-no{width:38px}.kp-pkl-t col.c-q{width:52px}.kp-pkl-t col.c-sz{width:150px}.kp-pkl-t col.c-v{width:96px}.kp-pkl-t col.c-kg{width:90px}
.kp-pkl-t th{padding:10px 8px!important;text-align:left;font-weight:400;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--ink);vertical-align:bottom}
.kp-pkl-t th span{display:block;margin-top:3px;letter-spacing:.06em;text-transform:none;font-size:10px}
.kp-pkl-t th.n,.kp-pkl-t td.n{text-align:right}
.kp-pkl-t td{padding:10px 8px!important;border-bottom:1px solid rgba(19,17,15,.08);vertical-align:top;white-space:nowrap}
.kp-pkl-t td.no{color:var(--muted)}
.kp-pkl-t td.pc{white-space:normal;min-width:0}
.kp-pkl-t td.pc .nm{display:block;font-family:var(--serif);font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kp-pkl-t td.pc .nm i{font-style:normal;font-family:var(--sans);font-size:10.5px;color:var(--muted);margin-left:6px}
.kp-pkl-t td.pc .ds{display:block;margin-top:2px;font-family:var(--serif);font-size:12px;color:#6b645c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kp-pkl-t td span{display:block;margin-top:2px;font-size:10px;color:var(--muted)}
.kp-pkl-t td b{font-weight:700}
.kp-pkl-t tr.sp td{padding-top:18px!important;background:none;border-bottom:1px solid rgba(19,17,15,.25);font-size:11px;color:var(--ink);font-weight:700}
.kp-pkl-t tr.sp td.n{font-weight:400;color:var(--muted)}
.kp-pkl-t tr.miss td{background:rgba(183,139,75,.07)}
.kp-pkl-t em{font-style:normal;color:#9a5b1e}
.kp-pkl-t tfoot td{border-top:1px solid var(--ink);border-bottom:0;padding-top:12px!important;font-size:12px}
@media print{ .kp-pkl-t td.pc .nm,.kp-pkl-t td.pc .ds{white-space:normal} }
.kp-pkl-t col.c-no{width:30px}.kp-pkl-t col.c-q{width:40px}.kp-pkl-t col.c-sz{width:128px}.kp-pkl-t col.c-v{width:80px}.kp-pkl-t col.c-kg{width:70px}
.kp-pkl-t tr.sp td .ct{display:inline;margin-left:8px;font-weight:400;color:var(--muted);font-size:10.5px}
.kp-pkl-t td.pc .ds{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* V180 — size as width, depth and height boxes (mm); the CBM shows as they type */
@media (min-width:1101px){ .kp-no-row{grid-template-columns:34px minmax(0,2fr) minmax(0,1fr) 56px minmax(220px,1.7fr) minmax(0,1.4fr) 30px} }
@media (min-width:901px){ .kp-np .kp-no-row{grid-template-columns:0 minmax(0,2fr) minmax(0,1fr) 56px minmax(220px,1.7fr) minmax(0,1.4fr) 0} }
.kp-no-wdh{display:flex;align-items:flex-start;gap:6px}
.kp-no-wdh label{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.kp-no-wdh input{width:100%;min-width:0;text-align:center}
.kp-no-wdh small{font-family:var(--sans);font-size:10px;color:var(--muted);text-align:center;letter-spacing:.02em}
.kp-no-wdh i{font-style:normal;color:var(--muted);font-size:12px;padding-top:9px}
.kp-no-cbm{font-style:normal;font-family:var(--sans);font-size:10px;letter-spacing:0;text-transform:none;color:#4d6b45;margin-left:6px}
.kp-mk-wdh>span:first-child{display:block}
@media (max-width:1100px){ .kp-no-row .kp-no-dims,.kp-no-row .kp-no-fin{grid-column:2 / 4} }
@media (max-width:900px){ .kp-np .kp-no-row .kp-no-dims,.kp-np .kp-no-row .kp-no-fin{grid-column:2 / 4} }
.kp-no-row .kp-no-wdh label{position:relative}
.kp-no-row .kp-no-wdh small{position:absolute;left:0;right:0;top:100%;margin-top:3px}
.kp-no-row{padding-bottom:26px}
.kp-np .kp-no-row{padding-bottom:24px}
/* V181 — + New piece in depth; simple on the schedule */
.kp-np-more{border-top:1px solid rgba(19,17,15,.1);margin-top:6px}
.kp-np-more section{padding:16px 0 4px}
.kp-np-more section+section{border-top:1px solid rgba(19,17,15,.06)}
.kp-np-sh{margin:0 0 10px;font-family:var(--sans);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.kp-np-sh span{margin-left:8px;font-family:var(--serif);font-size:12px;letter-spacing:0;text-transform:none;color:var(--muted)}
.kp-np-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 18px}
.kp-np-grid .kp-a-field input,.kp-np-grid .kp-a-field select{height:auto;margin:0;width:100%;border:0;border-bottom:1px solid rgba(19,17,15,.2);background:transparent;padding:6px 0 8px;font-family:var(--serif);font-size:14.5px;color:var(--ink);border-radius:0;outline:none;box-shadow:none}
.kp-np-grid .kp-a-field input:focus,.kp-np-grid .kp-a-field select:focus{border-bottom-color:var(--ink)}
.kp-np-grid .kp-a-field:has(input[type=url]){grid-column:1 / -1}
@media (max-width:900px){ .kp-np-grid{grid-template-columns:1fr 1fr} }
@media (max-width:520px){ .kp-np-grid{grid-template-columns:1fr} }
.kp-cs-line{margin:2px 0 0!important;font-family:var(--serif);font-size:13px;color:#5c554e;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.kp-cs-more{margin:8px 0 2px}
.kp-cs-more>summary{cursor:pointer;list-style:none;display:inline-block;font-family:var(--sans);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid currentColor;padding-bottom:1px}
.kp-cs-more>summary::-webkit-details-marker{display:none}
.kp-cs-more[open]>summary{opacity:.55;margin-bottom:8px}
.kp-cs-more dl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:4px 14px;margin:0}
.kp-cs-more dl div{display:contents}
.kp-cs-more dt{font-family:var(--serif);font-size:12.5px;color:var(--muted)}
.kp-cs-more dd{margin:0;font-family:var(--serif);font-size:12.5px;color:#3b3631}
.kp-cs-row .pr .tbc{font-family:var(--serif);font-size:12.5px;color:var(--muted)}
/* V182 — Start a new piece, inside the order's schedule */
.kp-mk-in{margin:22px 0 0;padding:26px 28px 8px;border:1px solid rgba(19,17,15,.16);background:#fbf9f4}
.kp-mk-inhead{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}
.kp-mk-inhead h2{margin:6px 0 0;font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.6vw,34px)}
.kp-mk-sch .kp-mk-any{padding:22px 26px}
.kp-mk-rooms{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.kp-mk-rooms button{all:unset;cursor:pointer;padding:8px 14px;border:1px solid rgba(19,17,15,.2);background:#fffdf8;font-family:var(--serif);font-size:14px}
.kp-mk-rooms button.on{background:var(--ink);color:#f3efe7;border-color:var(--ink)}
.kp-mk-rooms input{flex:1;min-width:160px;max-width:240px;border:1px dashed rgba(19,17,15,.3);background:transparent;padding:8px 12px;font-family:var(--serif);font-size:14px;outline:none}
.kp-mk-sch select[data-mk-v],.kp-mk select[data-mk-v="install"]{width:100%}
@media (max-width:700px){ .kp-mk-in{padding:18px 14px 4px;margin-left:0;margin-right:0} }
/* sign-in pages (staff + client portal): room before the footer */
.kp-pt-signin{padding-bottom:clamp(80px,10vw,140px);min-height:min(540px,calc(100vh - 260px));box-sizing:border-box}
/* V182 — status as a clickable pill (bubble) */
.kp-sch select.kp-st,.kp-sheet-head>select.kp-st{-webkit-appearance:none;appearance:none;cursor:pointer;padding:6px 28px 6px 26px!important;border:1px solid var(--st)!important;border-radius:999px!important;font-family:var(--sans);font-size:12px;color:var(--ink);line-height:1.2;
  background:radial-gradient(circle,var(--st) 0 3.5px,transparent 4px) 11px center/9px 9px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f' fill-opacity='.55'/%3E%3C/svg%3E") right 11px center/8px no-repeat,var(--sb)!important;
  transition:box-shadow .2s,background-color .2s}
.kp-sch select.kp-st:hover,.kp-sheet-head>select.kp-st:hover{box-shadow:0 0 0 3px var(--sb)}
.kp-sch select.kp-st:focus-visible,.kp-sheet-head>select.kp-st:focus-visible{outline:none;box-shadow:0 0 0 3px var(--sb),0 0 0 4px var(--st)}
.kp-sch select.kp-st{min-width:0!important}
.kp-sch td.st{width:150px}
.kp-sch td.nm{min-width:220px}.kp-sch td.nm .nmw{max-width:360px}.kp-sch td.sup{max-width:140px;width:140px}.kp-sch td.st{width:140px;padding-right:12px!important}
/* V183 — the client's status bubble opens a menu: approve, request a change, decline, ask, undo, remove */
.kp-cs-stm{position:relative}
.kp-cs-pillb{cursor:pointer;font:inherit;font-family:var(--serif);font-size:13px;padding:5px 12px 6px;background:#fffdf8;transition:box-shadow .2s}
.kp-cs-pillb i{display:inline-block;width:7px;height:7px;margin-left:4px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.7}
.kp-cs-pillb:hover{box-shadow:0 0 0 3px rgba(19,17,15,.06)}
.kp-cs-pillb[aria-expanded=true] i{transform:rotate(-135deg) translate(-2px,-1px)}
.kp-cs-menu{position:absolute;z-index:30;top:calc(100% + 6px);left:0;min-width:210px;padding:6px;background:#fffdf8;border:1px solid rgba(19,17,15,.16);box-shadow:0 12px 30px rgba(19,17,15,.12)}
.kp-cs-menu button{all:unset;box-sizing:border-box;display:block;width:100%;cursor:pointer;padding:9px 12px;font-family:var(--serif);font-size:14px;color:var(--ink)}
.kp-cs-menu button:hover,.kp-cs-menu button:focus-visible{background:rgba(19,17,15,.05)}
.kp-cs-menu button.ok{color:#4d6b45}
.kp-cs-menu button.dec{color:#8a3b2e}
.kp-cs-menu button+button{border-top:1px solid rgba(19,17,15,.06)}

/* V184 — decline reason pop-up (client schedule) */
.kp-dec-modal .kp-modal-card{width:min(600px,100%)}
.kp-dec-k{margin:0 0 10px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:#8a3b2e}
.kp-dec-why{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 20px}
.kp-dec-why .kp-pill{cursor:pointer}
.kp-dec-why .kp-pill input{position:absolute;opacity:0;pointer-events:none}
.kp-dec-why .kp-pill span{display:inline-block;padding:8px 14px;border:1px solid rgba(19,17,15,.22);border-radius:999px;font-family:var(--serif);font-size:13px;line-height:1.2;transition:background .15s,border-color .15s,color .15s}
.kp-dec-why .kp-pill:hover span{border-color:rgba(19,17,15,.5)}
.kp-dec-why .kp-pill input:checked+span{background:#13110f;border-color:#13110f;color:var(--paper)}
.kp-dec-why .kp-pill input:focus-visible+span{outline:2px solid #13110f;outline-offset:2px}
.kp-dec-c{display:flex;flex-direction:column;gap:8px}
.kp-dec-c>span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-dec-c em{font-style:normal;margin-left:6px;color:#8a3b2e}
.kp-dec-c textarea{width:100%;box-sizing:border-box;padding:12px 14px;border:1px solid rgba(19,17,15,.22);background:#fff;font-family:var(--serif);font-size:14px;line-height:1.45;resize:vertical}
.kp-dec-c textarea:focus{outline:none;border-color:#13110f}
.kp-dec-err{margin:10px 0 0;font-family:var(--serif);font-size:13px;color:#8a3b2e}
.kp-dec-go:not(:disabled){background:#8a3b2e!important;border-color:#8a3b2e!important;color:#fff!important}
.kp-dec-modal .kp-dec-why .kp-pill{position:relative;display:inline-flex;margin:0;font-size:inherit;text-transform:none;letter-spacing:0;opacity:1}
.kp-dec-modal .kp-dec-why .kp-pill span{text-transform:none;letter-spacing:0;color:var(--ink);font-size:14px}
.kp-dec-modal .kp-dec-why .kp-pill input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--paper);opacity:1}
.kp-dec-modal .kp-modal-foot .btn.kp-dec-go:not(:disabled){background:#8a3b2e!important;border-color:#8a3b2e!important;color:#fff!important}
.kp-dec-modal .kp-modal-foot .btn.kp-dec-go:not(:disabled):hover{background:#6f2e24!important;border-color:#6f2e24!important}

/* V187 — phone bar: Enquire on the left, Menu as a three-line icon */
@media (max-width:760px){
  .nav-actions:after{content:none!important;display:none!important}
  .site-header .menu-btn{position:relative;width:30px;height:30px;margin-right:-6px;padding:0;font-size:0!important;line-height:0;color:var(--ink,#13110f);-webkit-tap-highlight-color:transparent;cursor:pointer}
  .site-header .menu-btn::before,.site-header .menu-btn::after{content:"";position:absolute;left:6px;right:6px;top:50%;height:1px;margin-top:-.5px;background:currentColor;transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .2s ease}
  .site-header .menu-btn::before{box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor}
  .site-header .menu-btn::after{opacity:0}
  .site-header .menu-btn[aria-expanded="true"]::before{box-shadow:none;transform:rotate(45deg)}
  .site-header .menu-btn[aria-expanded="true"]::after{opacity:1;transform:rotate(-45deg)}
}
@media (prefers-reduced-motion:reduce){ .site-header .menu-btn::before,.site-header .menu-btn::after{transition:none} }

/* V191 — phone: Our process as a compact list (number · title, description under, small arrow) */
@media (max-width:760px){
  .process-grid{display:block!important;border-top:1px solid rgba(29,26,23,.22)!important;border-left:0!important}
  .process-grid a.step,.process-grid a.step:nth-child(n){display:grid!important;grid-template-columns:30px 1fr 18px;align-items:baseline;column-gap:10px;min-height:0!important;height:auto!important;padding:16px 0 17px!important;margin:0!important;border:0!important;border-bottom:1px solid rgba(29,26,23,.22)!important}
  .process-grid a.step .n{grid-column:1;margin:0!important;font-family:Arial,Helvetica,sans-serif;font-size:9px!important;letter-spacing:.12em;color:var(--muted,#777168)}
  .process-grid a.step>div{grid-column:2;min-width:0}
  .process-grid a.step h3{margin:0 0 4px!important;font-family:var(--serif);font-weight:400!important;font-size:18px!important;line-height:1.2;letter-spacing:0}
  .process-grid a.step p{margin:0!important;max-width:none!important;font-size:12.5px!important;line-height:1.45!important;color:var(--muted,#6d675e)}
  .process-grid a.step::after,html:lang(de) .process-grid a.step::after,html:lang(fr) .process-grid a.step::after,html:lang(it) .process-grid a.step::after,html:lang(zh) .process-grid a.step::after{content:"\2192"!important;position:static!important;grid-column:3;grid-row:1;justify-self:end;align-self:center;font-family:var(--serif);font-size:15px!important;letter-spacing:0!important;text-transform:none;opacity:.55!important;transform:none!important;color:inherit!important}
  .process-grid a.step:active::after{opacity:1!important;transform:translateX(3px)!important}
}

/* V193 — phone menu (after Jacquemus, in KNEHLER's style): search line, hairline list, small utility rows, language toggle */
.mobile-nav.kp-mnav{position:fixed;left:0;right:0;top:var(--kp-hh,56px);bottom:0;z-index:99;margin:0;padding:0!important;border-top:1px solid rgba(29,26,23,.28)!important;background:var(--paper,#f3efe7);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;transform:none;opacity:0;transition:opacity .22s ease}
.mobile-nav.kp-mnav.is-open{opacity:1}
html.kp-mnav-on .site-header{transform:none!important;opacity:1!important;visibility:visible!important;background:var(--paper,#f3efe7)!important}
.kp-mnav-in{display:flex;flex-direction:column;min-height:100%;box-sizing:border-box;padding:22px 0 calc(30px + env(safe-area-inset-bottom,0px))}
.kp-mnav-pad{padding:0 var(--mobile-pad,18px)}
.kp-mnav-search{display:flex!important;align-items:center;gap:12px;margin:0 var(--mobile-pad,18px);padding:10px 0 12px;border-bottom:1px solid rgba(29,26,23,.4);color:var(--muted,#777168)!important;text-decoration:none;font-family:var(--serif);font-size:15px;text-transform:none!important;letter-spacing:0!important}
.kp-mnav-search svg{flex:none;width:17px;height:17px;fill:none;stroke:var(--ink,#13110f);stroke-width:1.3}
.kp-mnav-main{display:flex;flex-direction:column;margin-top:26px;border-top:1px solid rgba(29,26,23,.13)}
.kp-mnav-main a{display:block;padding:17px var(--mobile-pad,18px) 16px;border-bottom:1px solid rgba(29,26,23,.13);color:var(--ink,#13110f);text-decoration:none;font-family:var(--serif);font-size:19px;line-height:1.25;letter-spacing:0;text-transform:none}
.kp-mnav-main a:active{background:rgba(19,17,15,.035)}
.kp-mnav-main a[aria-current]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.kp-mnav-util{display:flex;flex-direction:column;gap:2px;margin-top:auto;padding:44px var(--mobile-pad,18px) 0}
.kp-mnav-util a{display:flex!important;align-items:center;gap:16px;padding:9px 0;color:var(--ink,#13110f)!important;text-decoration:none;font-family:var(--serif);font-size:15px;line-height:1.2;text-transform:none!important;letter-spacing:0!important}
.kp-mnav-util a svg{flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.kp-mnav-langbtn{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:6px 0;background:none;border:0;color:var(--ink,#13110f);font-family:var(--serif);font-size:14px;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;cursor:pointer;align-self:flex-start}
.kp-mnav-langbtn i{display:block;width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.kp-mnav-langbtn[aria-expanded="true"] i{transform:translateY(1px) rotate(-135deg)}
.kp-mnav-util .kp-lang-mob{display:flex;flex-wrap:wrap;gap:10px 18px;margin:8px 0 0;padding:0;border:0}
.kp-mnav-util .kp-lang-mob[hidden]{display:none}
.kp-mnav-util .kp-lang-mob button{font-family:Arial,Helvetica,sans-serif;font-size:9px!important;letter-spacing:.16em;padding:6px 0}
@media (prefers-reduced-motion:reduce){ .mobile-nav.kp-mnav{transition:none} }

/* V194 — phone menu: Log in + Start an enquiry as boxes (like the desktop bar); languages always listed */
.kp-mnav-util{gap:0}
.kp-mnav-boxes{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kp-mnav-util a.kp-mnav-box{display:flex!important;align-items:center;justify-content:center;gap:0;min-height:40px;padding:0 10px;border:1px solid var(--ink,#13110f);color:var(--ink,#13110f)!important;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em!important;text-transform:uppercase!important;text-align:center;transition:background .2s,color .2s}
.kp-mnav-util a.kp-mnav-box:active{background:var(--ink,#13110f);color:var(--paper,#f3efe7)!important}
.kp-mnav-util .kp-lang-mob,.kp-mnav-util .kp-lang-mob[hidden]{display:flex!important;margin-top:22px}

/* V195 — client schedule on phones: compact rows (picture · name · qty + price · status), everything else under Details; tidier bars */
.kp-cs-mline,.kp-cs-msum,.kp-m-only{display:none}
@media (max-width:760px){
  /* portal bar scrolls away instead of sticking */
  .kp-app-bar{position:static!important}
  /* order sections: one quiet row of tabs */
  .kp-a-secnav{display:flex!important;gap:22px;margin:0 0 20px!important;padding:0;border-bottom:1px solid rgba(19,17,15,.14);overflow-x:auto;scrollbar-width:none}
  .kp-a-secnav::-webkit-scrollbar{display:none}
  .kp-a-secnav a,.kp-a-secnav a:first-child{flex:none;grid-column:auto!important;min-height:0!important;padding:10px 0 11px!important;margin-bottom:-1px;border:0!important;border-bottom:1px solid transparent!important;background:none!important;color:var(--muted)!important;font-size:8.5px!important}
  .kp-a-secnav a.on{border-bottom-color:var(--ink)!important;color:var(--ink)!important}
  .kp-a-secnav a.on em{background:var(--ink)!important;color:#f6f3ec!important}
  .kp-a-secnav a em.n,.kp-a-secnav a.on em.n{background:none!important;color:var(--muted)!important}
  /* summary as three quiet lines */
  .kp-cs-sum{display:none!important}
  .kp-cs-msum{display:block;margin:0 0 16px;padding:0;border-top:1px solid rgba(19,17,15,.12)}
  .kp-cs-msum>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid rgba(19,17,15,.12)}
  .kp-cs-msum dt{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
  .kp-cs-msum dd{margin:0;font-family:var(--serif);font-size:16px}
  .kp-cs-msum dd em{font-style:normal;font-size:12px;color:var(--muted);margin-left:4px}
  .kp-cs-msum .you dd{color:#6b4f80}
  /* filters: one sideways row; the Go to row is dropped (the room headings do that job) */
  .kp-cs-filter{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;gap:18px!important;padding:8px 2px 10px!important;margin:0 0 4px!important}
  .kp-cs-filter::-webkit-scrollbar{display:none}
  .kp-cs-filter button{flex:none;font-size:13px!important;white-space:nowrap}
  .kp-cs-filter button.on{margin:0 -4px!important;padding:4px 11px!important}
  .kp-cs-jump{display:none!important}
  /* rooms */
  .kp-cs-rh{padding:10px 14px!important}
  /* each piece: one compact row */
  .kp-cs-row,.kp-cs-row:nth-child(n){display:grid!important;grid-template-columns:52px minmax(0,1fr) auto!important;column-gap:12px!important;row-gap:0!important;align-items:start;padding:13px 14px!important}
  .kp-cs-row .img{grid-column:1;grid-row:1 / span 2;width:52px!important;height:52px!important}
  .kp-cs-row .d{grid-column:2;grid-row:1 / span 2;min-width:0}
  .kp-cs-row .d .cd,.kp-cs-row .kp-cs-line,.kp-cs-row .q,.kp-cs-row .pr{display:none!important}
  .kp-cs-row h3{margin:1px 0 2px!important;font-size:16px!important;line-height:1.25}
  .kp-cs-row .kp-cs-mline{display:block;margin:0 0 4px!important;font-family:var(--serif);font-size:12.5px!important;color:var(--muted)!important}
  .kp-cs-row .kp-m-only{display:block}
  .kp-cs-row details.kp-cs-more.kp-m-only{display:block}
  .kp-cs-row .kp-cs-more{margin-top:2px}
  .kp-cs-row .kp-cs-more summary{font-size:8.5px!important}
  .kp-cs-row .st{display:contents!important}
  .kp-cs-row .kp-cs-stm{grid-column:3;grid-row:1;justify-self:end}
  .kp-cs-row .st>*:not(.kp-cs-stm){grid-column:1 / -1;margin-top:8px}
  .kp-cs-row .kp-cs-pillb{padding:5px 9px 5px 10px!important;font-size:12px!important;white-space:nowrap}
  /* the bubble menu already offers approve / decline / ask, so the extra buttons and the plain "Approved" note go */
  .kp-cs-row .kp-sel-acts,.kp-cs-row .kp-cs-note:not(.chg):not(.dec){display:none!important}
  .kp-cs-row .kp-cs-cmts:not(:has(li)) .kp-cs-cbtn{display:none}
  .kp-cs-row .kp-cs-cmts:not(:has(li)):not(:has(form:not([hidden]))){display:none}
  .kp-cs-row .kp-cs-menu{right:0;left:auto}
}
@media (max-width:760px){ .kp-cs-topacts [data-cs-print]{display:none} .kp-cs-top:not(:has(.kp-cs-topacts .btn)) .kp-cs-topacts{display:none} }
@media (max-width:760px){
  .kp-cs-row .d{display:contents!important}
  .kp-cs-row .d>*{grid-column:1 / -1;padding-left:64px}
  .kp-cs-row .d>h3{grid-column:2;grid-row:1;padding-left:0}
  .kp-cs-row .d>.kp-cs-mline{grid-column:2;grid-row:2;padding-left:0}
  .kp-cs-row .d>.kp-cs-more{padding-left:64px}
  .kp-cs-row .kp-cs-more[open]{padding-bottom:4px}
  .kp-cs-row .kp-cs-more dl{display:block!important;margin:10px 0 0!important;border-top:1px solid rgba(19,17,15,.1)}
  .kp-cs-row .kp-cs-more dl>div{display:grid!important;grid-template-columns:92px minmax(0,1fr);gap:10px;padding:7px 0;border-bottom:1px solid rgba(19,17,15,.08)}
  .kp-cs-row .kp-cs-more dt{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:3px}
  .kp-cs-row .kp-cs-more dd{margin:0;font-family:var(--serif);font-size:13px;line-height:1.4;color:var(--ink)}
  .kp-cs-row .st>*:not(.kp-cs-stm){padding-left:64px}
  .site-header{background:var(--paper,#f3efe7)!important}
}

/* V196 — Surfaces and Joinery: "Coming soon" (launching with Furniture + Lighting) */
.kp-soon{display:inline-block;padding:5px 10px 4px;border:1px solid currentColor;border-radius:999px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;font-weight:400;letter-spacing:.16em;line-height:1.2;text-transform:uppercase;white-space:nowrap;color:var(--ink,#13110f);background:rgba(243,239,231,.92)}
.kp-soon-s{display:inline-block;margin-left:6px;padding:2px 7px 1px;border:1px solid rgba(19,17,15,.28);border-radius:999px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;font-style:normal;font-weight:400;letter-spacing:.14em;line-height:1.4;text-transform:uppercase;white-space:nowrap;vertical-align:middle;color:var(--muted,#777168)}
.footer .kp-soon-s{margin-left:5px;border-color:currentColor;opacity:.7}
.cap-card.kp-is-soon a.image{position:relative}
.cap-card.kp-is-soon a.image .kp-soon{position:absolute;top:14px;left:14px;z-index:2}
.cap-card.kp-is-soon a.image img{filter:saturate(.75)}
.cap-card h3 .kp-soon-s{font-size:7.5px}
.kp-soon-chip{display:inline-block;margin-left:6px;padding:2px 7px 1px;border:1px solid currentColor;border-radius:999px;font-style:normal;font-size:.62em;letter-spacing:.14em;text-transform:uppercase;vertical-align:middle;opacity:.85}
.kp-soon-k{margin:0 0 14px}
.kp-soon-band{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px 28px;margin:0 var(--pad,24px) 28px;padding:18px 22px;border:1px solid rgba(19,17,15,.22);background:#ebe5d9}
.kp-soon-band-k{margin:0;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.18em;text-transform:uppercase}
.kp-soon-band-t{margin:0;font-family:var(--serif);font-size:14px;line-height:1.5;max-width:720px}
.kp-soon-band-a{display:flex;flex-wrap:wrap;gap:10px 24px}
.kp-cap-next .kp-soon-s{margin-left:10px}
.kp-mk-cats .kp-soon-s{margin-left:6px;font-size:7px}
@media (max-width:760px){
  .kp-soon-band{grid-template-columns:1fr;margin:0 var(--mobile-pad,16px) 22px;padding:16px}
  .kp-soon-band-t{font-size:13.5px}
}

/* V197 — Coming soon as a frosted veil over the whole picture, the words small in the middle */
.cap-card.kp-is-soon a.image img{filter:none}
.cap-card.kp-is-soon a.image,.kp-chip.kp-is-soon .kp-chip-img{position:relative;overflow:hidden}
.cap-card.kp-is-soon a.image .kp-soon,.kp-chip.kp-is-soon .kp-chip-img .kp-soon{position:absolute;inset:0;top:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:0;background:rgba(243,239,231,.34);-webkit-backdrop-filter:blur(7px) saturate(.9);backdrop-filter:blur(7px) saturate(.9);font-size:8.5px;letter-spacing:.26em;color:var(--ink,#13110f);pointer-events:none;transition:background .3s ease}
@media (hover:hover){ .cap-card.kp-is-soon a.image:hover .kp-soon{background:rgba(243,239,231,.24)} }
.cap-card.kp-is-soon a.image .kp-soon,.kp-chip.kp-is-soon .kp-chip-img .kp-soon{background:rgba(243,239,231,.3);-webkit-backdrop-filter:blur(2.5px) saturate(.92);backdrop-filter:blur(2.5px) saturate(.92)}
.cap-card.kp-is-soon a.image .kp-soon,.kp-chip.kp-is-soon .kp-chip-img .kp-soon{font-size:10px;letter-spacing:.28em}
@media (max-width:760px){ .cap-card.kp-is-soon a.image .kp-soon,.kp-chip.kp-is-soon .kp-chip-img .kp-soon{font-size:10px} }

/* V199 — Arabic: right-to-left layout, Arabic typefaces, readable label sizes */
html:lang(ar){
  --serif:Georgia,'Times New Roman','Noto Naskh Arabic','Geeza Pro','Arabic Typesetting','Traditional Arabic',serif;
  --sans:Arial,Helvetica,'Noto Sans Arabic','Geeza Pro','Segoe UI','Tahoma',sans-serif;
}
/* letter-spacing breaks the joins between Arabic letters */
html:lang(ar) body *{letter-spacing:0!important}
html:lang(ar) p,html:lang(ar) li{line-height:1.8}
/* the tiny uppercase labels used for Latin text are unreadable in Arabic: lift them */
html:lang(ar) .nav-links a,html:lang(ar) .utility-link,html:lang(ar) .enquire-btn,html:lang(ar) .breadcrumb,html:lang(ar) .footer h4,
html:lang(ar) .text-link,html:lang(ar) .btn,html:lang(ar) .kp-a-kicker,html:lang(ar) .kp-app-label,html:lang(ar) .kp-app-tabs a,html:lang(ar) .kp-app-out,
html:lang(ar) .kp-a-secnav a,html:lang(ar) .kp-side-sub a,html:lang(ar) .kp-cs-sum span,html:lang(ar) .kp-cs-rh span,html:lang(ar) .kp-cs-msum dt,html:lang(ar) .kp-cs-more summary,
html:lang(ar) .kp-cs-more dt,html:lang(ar) .kp-cs-row .q span.l,html:lang(ar) .kp-cs-row .d .cd,html:lang(ar) .kp-mnav-util a.kp-mnav-box,html:lang(ar) .kp-soon,html:lang(ar) .kp-soon-band-k,
html:lang(ar) .field label,html:lang(ar) legend,html:lang(ar) .kp-tf-head h2,html:lang(ar) .kp-sa-eyebrow,html:lang(ar) .kp-sa-n,html:lang(ar) .product-kicker,html:lang(ar) .code,
html:lang(ar) .kp-chip-label,html:lang(ar) .hero-kicker,html:lang(ar) .section-head .num,html:lang(ar) .kp-ct-eyebrow,html:lang(ar) .kp-lang-mob button,html:lang(ar) .kp-lang-btn,
html:lang(ar) .kp-pt-flag,html:lang(ar) .kp-pt-alt a,html:lang(ar) .kp-cap-next span,html:lang(ar) .kp-proc-nav a,html:lang(ar) .kp-cs-filter .l,html:lang(ar) .kp-cs-jump .l{font-size:11.5px!important}
html:lang(ar) .kp-soon-s{font-size:9.5px!important;padding:1px 7px}
html:lang(ar) .cap-card.kp-is-soon a.image .kp-soon,html:lang(ar) .kp-chip.kp-is-soon .kp-chip-img .kp-soon{font-size:15px!important}
/* mirrored spacing and arrows */
html[dir=rtl] .kp-opt{margin-left:0;margin-right:6px}
html[dir=rtl] .kp-soon-s{margin-left:0;margin-right:6px}
html[dir=rtl] .text-link::after{content:"\2190";margin-left:0;margin-right:.8em}
html[dir=rtl] .cap-card h3 a::after,html[dir=rtl] .product-card h3::after,html[dir=rtl] .editorial-product-meta p::after{content:"\2190";margin-left:0;margin-right:.45em}
html[dir=rtl] .kp-pt-todo .w::after,html[dir=rtl] .kp-pt-order .pj::after{content:"\2190";margin-left:0;margin-right:.5em}
html[dir=rtl] .kp-br-rows .go::after,html[dir=rtl] .kp-osch .go::after{content:" \2190"}
html[dir=rtl] .kp-proc-nav a::after,html[dir=rtl] .kp-turn-g li a::after{content:"\2190";right:auto;left:14px}
html:lang(ar) .process-grid a.step::after{content:"عرض \2190";right:auto;left:18px}
@media (max-width:760px){
  html:lang(ar) .process-grid a.step::after{content:"\2190"!important}
  html[dir=rtl] .kp-cs-row .d>*{padding-left:0;padding-right:64px}
  html[dir=rtl] .kp-cs-row .d>h3,html[dir=rtl] .kp-cs-row .d>.kp-cs-mline{padding-right:0}
  html[dir=rtl] .kp-cs-row .d>.kp-cs-more{padding-left:0;padding-right:64px}
  html[dir=rtl] .kp-cs-row .st>*:not(.kp-cs-stm){padding-left:0;padding-right:64px}
  html[dir=rtl] .kp-cs-row .kp-cs-menu{right:auto;left:0}
}
html[dir=rtl] .kp-cs-menu{right:auto;left:0}
/* numbers, prices, codes and e-mails keep their own order inside Arabic sentences */
html[dir=rtl] [translate=no]{unicode-bidi:isolate}

/* V200 — shipping inside each piece's price (staff notes) */
.kp-sch-incl{display:block;margin-top:2px;color:var(--muted,#777168);font-size:10.5px}
.kp-sch-inprice{display:block;margin-top:4px;font-size:11.5px;color:var(--muted,#777168)}
.kp-sch-inprice b{font-weight:400;color:#4f6b3f}
.kp-sch-inprice b.neg{color:#8a3b2e}
/* V201 — cost sheet: how this piece's shipping is worked out */
.kp-sheet-land{margin-top:18px;padding-top:14px;border-top:1px solid rgba(19,17,15,.12)}
.kp-sheet-land .kp-sheet-h{margin:0 0 8px}
.kp-land-v{margin:0 0 8px;font-size:12px;color:var(--muted,#777168)}
.kp-land-v b{font-weight:400;color:var(--ink,#13110f)}
.kp-land-miss{margin:0 0 8px;font-size:12px;color:#a2641a}
.kp-land-rows{margin:0}
.kp-land-rows>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:6px 0;border-bottom:1px solid rgba(19,17,15,.07)}
.kp-land-rows dt{font-size:12.5px;color:var(--ink,#13110f)}
.kp-land-rows dt em{font-style:normal;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:#a2641a;margin-left:4px}
.kp-land-rows dt span{display:block;margin-top:2px;font-size:11px;line-height:1.35;color:var(--muted,#777168)}
.kp-land-rows dd{margin:0;white-space:nowrap;font-size:12.5px}
.kp-land-rows>div.b{border-bottom:0;padding-top:9px}
.kp-land-rows>div.b dt,.kp-land-rows>div.b dd{font-weight:600}
.kp-land-rows>div.m dt,.kp-land-rows>div.m dd{color:var(--muted,#777168);font-size:11.5px}
.kp-land-note{margin:8px 0 0;font-size:11px;line-height:1.45;color:var(--muted,#777168)}
.kp-land-rows dt,.kp-land-rows dd,.kp-land-v,.kp-land-note,.kp-land-miss{font-family:var(--serif)}
/* V202 — the shipping working sits in the cost sheet's left column, under the costs */
.kp-sheet-main .kp-sheet-land{margin:22px 0 0;padding:16px 0 0;border-top:1px solid rgba(19,17,15,.12)}
.kp-sheet-main .kp-sheet-land:empty{display:none}
.kp-sheet-main .kp-land-rows>div{padding:7px 0}
.kp-sheet-main .kp-land-rows dt{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:4px 18px;align-items:baseline}
.kp-sheet-main .kp-land-rows dt span{margin-top:0}
@media (max-width:760px){ .kp-sheet-main .kp-land-rows dt{display:block} .kp-sheet-main .kp-land-rows dt span{margin-top:2px} }
.kp-land-band{display:flex;flex-direction:column;gap:3px;margin:0}
.kp-land-band b{font-weight:400;font-family:var(--serif);font-size:16px}
.kp-land-band em{font-style:normal;font-size:11px;color:var(--muted,#777168)}
.kp-rates-sum{font-family:var(--serif)}
.kp-sch-exg{display:block;margin-top:1px;color:var(--muted,#777168);font-size:10.5px;opacity:.8}
[data-c="line"] .kp-sch-incl,[data-c="line"] .kp-sch-exg,[data-c="line"] .sm{white-space:nowrap}
[data-c="line"] .sm{font-size:10px;letter-spacing:0}
.kp-sch td.sup{max-width:105px;width:105px}
.kp-kpi .kp-kpi-ship{display:block;margin-top:3px;color:var(--muted,#777168)}

/* V209 — staff schedule on phones: like the client's. One compact row per piece (picture · name · qty, price + profit · status);
   supplier, CBM, cost, profit % and the price breakdown open under Details, still editable */
.kp-sch-mline,.kp-sch-mmore{display:none}
@media (max-width:760px){
  .kp-sch-wrap:has(> table.kp-sch:not(.kp-spp)){overflow:visible;border-left:0;border-right:0;background:none}
  table.kp-sch:not(.kp-spp),table.kp-sch:not(.kp-spp)>tbody{display:block;width:100%;min-width:0!important}
  table.kp-sch:not(.kp-spp)>thead{display:none}
  /* rooms */
  table.kp-sch:not(.kp-spp) tr.kp-sch-area{display:block}
  table.kp-sch:not(.kp-spp) tr.kp-sch-area>td{display:flex!important;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:11px 14px!important}
  table.kp-sch:not(.kp-spp) tr.kp-sch-area>td>button{margin-right:auto}
  table.kp-sch:not(.kp-spp) tr.kp-sch-area b{font-size:14px} table.kp-sch:not(.kp-spp) tr.kp-sch-area em{font-size:12px}
  /* each piece */
  table.kp-sch:not(.kp-spp) tr[data-row]{display:grid!important;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:start;padding:13px 14px;border-bottom:1px solid rgba(19,17,15,.1);background:#faf8f3}
  table.kp-sch:not(.kp-spp) tr[data-row]>td{display:none;padding:0!important;border:0!important;width:auto!important;max-width:none!important;min-width:0!important}
  table.kp-sch:not(.kp-spp) tr[data-row]>td.nm{display:block;grid-column:1;grid-row:1}
  table.kp-sch:not(.kp-spp) tr[data-row]>td.st{display:block;grid-column:2;grid-row:1;justify-self:end}
  table.kp-sch:not(.kp-spp) tr[data-row] .nmx{display:grid!important;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:start}
  table.kp-sch:not(.kp-spp) tr[data-row] .kp-sch-thumb{width:52px!important;height:52px!important;margin:0!important}
  table.kp-sch:not(.kp-spp) tr[data-row] .nmw{min-width:0}
  table.kp-sch:not(.kp-spp) tr[data-row] .nmw .cd{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin:0 0 2px;font-size:8.5px}
  table.kp-sch:not(.kp-spp) tr[data-row] .kp-sch-open{font-size:16px!important;line-height:1.25;text-align:left}
  table.kp-sch:not(.kp-spp) tr[data-row] .nmw>.sp,table.kp-sch:not(.kp-spp) tr[data-row] .kp-sch-link{display:none!important}
  .kp-sch-mline{display:block;margin:3px 0 2px;font-family:var(--serif);font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .kp-sch-mline b{font-weight:400} .kp-sch-mline b.ok{color:#4d6b45} .kp-sch-mline b.low{color:#9a6a1c} .kp-sch-mline b.bad{color:#a2412b}
  .kp-sch-mmore{display:inline-flex;align-items:center;gap:6px;margin:2px 0 0;padding:4px 0;border:0;background:none;cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
  .kp-sch-mmore::after{content:"";width:5px;height:5px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
  .kp-sch-mmore[aria-expanded=true]::after{transform:translateY(1px) rotate(-135deg)}
  table.kp-sch:not(.kp-spp) tr[data-row] select.kp-st{max-width:118px;font-size:12px!important;padding-top:5px!important;padding-bottom:5px!important}
  /* Details: the rest of the row, one labelled line each */
  table.kp-sch:not(.kp-spp) tr.kp-mopen>td[data-l]{display:flex;grid-column:1 / -1;justify-content:space-between;align-items:center;gap:14px;margin-left:64px;padding:8px 0!important;border-top:1px solid rgba(19,17,15,.08)!important;text-align:right}
  table.kp-sch:not(.kp-spp) tr.kp-mopen>td[data-l]:first-of-type,table.kp-sch:not(.kp-spp) tr.kp-mopen>td.sup{margin-top:10px}
  table.kp-sch:not(.kp-spp) tr.kp-mopen>td[data-l]::before{content:attr(data-l);flex:none;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:left}
  table.kp-sch:not(.kp-spp) tr.kp-mopen>td.sup{white-space:normal;overflow:visible;font-size:13px}
  table.kp-sch:not(.kp-spp) tr.kp-mopen>td.n .sm{display:block}
  table.kp-sch:not(.kp-spp) tr.kp-mopen>td[data-c="line"],table.kp-sch:not(.kp-spp) tr.kp-mopen>td.cbm{align-items:flex-start}
  table.kp-sch:not(.kp-spp) tr.kp-mopen>td input[data-f]{width:64px;text-align:right}
  /* shipping + order total */
  table.kp-sch:not(.kp-spp) tr.kp-sch-shiprow,table.kp-sch:not(.kp-spp) tr.kp-sch-totrow{display:block;padding:14px}
  table.kp-sch:not(.kp-spp) tr.kp-sch-shiprow>td,table.kp-sch:not(.kp-spp) tr.kp-sch-totrow>td{display:none;padding:0!important;border:0!important}
  table.kp-sch:not(.kp-spp) tr.kp-sch-shiprow>td.nm,table.kp-sch:not(.kp-spp) tr.kp-sch-totrow>td:first-child{display:block}
  table.kp-sch:not(.kp-spp) .kp-sch-shiprow .kp-sch-shipn{font-size:16px!important}
  table.kp-sch:not(.kp-spp) .kp-sch-shiprow .sp{font-size:12.5px!important;line-height:1.5;white-space:normal}
  table.kp-sch:not(.kp-spp) .kp-sch-shiprow .kp-sch-inprice{display:block;margin-top:6px}
  table.kp-sch:not(.kp-spp) .kp-sch-totrow .kp-sch-totm{display:block;margin-top:6px;font-size:15px}
  /* top of the page: the figures as quiet lines, the money split kept small */
  .kp-sch-kpi{display:block!important;margin:0 0 22px!important;border-bottom:0!important}
  .kp-sch-kpi .kp-kpi,.kp-sch-kpi .kp-kpi+.kp-kpi{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;align-items:baseline;padding:10px 0!important;border:0!important;border-bottom:1px solid rgba(19,17,15,.12)!important}
  .kp-sch-kpi .kp-kpi>span{grid-column:1;font-size:8.5px!important;margin:0!important}
  .kp-sch-kpi .kp-kpi>b{grid-column:2;justify-self:end;font-size:18px!important;line-height:1.2;margin:0!important}
  .kp-sch-kpi .kp-kpi>em{grid-column:1 / -1;justify-self:end;margin:2px 0 0!important;font-size:12px!important;text-align:right}
  .kp-sch-kpi .kp-split{padding:12px 0 0!important;border:0!important}
  .kp-sch-kpi .kp-split ul{gap:4px 14px!important;font-size:12px}
  /* tabs, tools and filters: single quiet rows */
  .kp-sch-views{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;gap:20px!important}
  .kp-sch-views::-webkit-scrollbar{display:none}
  .kp-sch-views a{flex:none;white-space:nowrap}
  .kp-sch-tools-l{flex-wrap:nowrap!important;gap:8px!important}
  .kp-sch-tools-l .kp-sch-addl{display:none}
  .kp-sch-tools-l .kp-sch-ghost{flex:1;min-width:0;padding-left:6px!important;padding-right:6px!important;font-size:8.5px!important;white-space:nowrap}
  .kp-sch-tools-r [data-sch-csv]{display:none}
  .kp-sch-filter{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;gap:16px!important}
  .kp-sch-filter::-webkit-scrollbar{display:none}
  .kp-sch-filter>*{flex:none;white-space:nowrap}
  .kp-sch-filter .kp-sch-count,.kp-sch-jump{display:none!important}
  .kp-sch-selbar{display:none!important}
}
@media (max-width:760px){
  table.kp-sch:not(.kp-spp) tr[data-row]>td,table.kp-sch:not(.kp-spp) tr.kp-sch-shiprow>td{background:none!important}
  table.kp-sch:not(.kp-spp) tr.kp-sch-shiprow{background:#ece7de}
  table.kp-sch:not(.kp-spp) tr[data-row] select.kp-st{max-width:112px;font-size:11.5px!important}
}
@media (max-width:760px){
  table.kp-sch:not(.kp-spp) tr.kp-mopen>td[data-l]{display:grid!important;grid-template-columns:auto minmax(0,1fr);column-gap:14px;row-gap:2px;align-items:baseline}
  table.kp-sch:not(.kp-spp) tr.kp-mopen>td[data-l]::before{grid-column:1;grid-row:1}
  table.kp-sch:not(.kp-spp) tr.kp-mopen>td[data-l]>*{grid-column:2;justify-self:end;text-align:right;margin:0!important}
  table.kp-sch:not(.kp-spp) tr.kp-mopen>td[data-l] .sm{font-size:12px}
}

/* V209 — furniture + lighting tiers (staff only) */
.kp-sch select.kp-tier-sel,.kp-tier-sel{appearance:none;-webkit-appearance:none;margin:0;padding:2px 16px 1px 8px;border:1px solid rgba(19,17,15,.22);border-radius:999px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='7' height='4'%3E%3Cpath d='M0 0l3.5 4L7 0z' fill='%23777168'/%3E%3C/svg%3E") no-repeat right 6px center;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;line-height:1.6;color:var(--ink);cursor:pointer;max-width:150px}
.kp-sch select.kp-tier-sel{width:auto!important;height:auto!important;min-height:0!important;padding:2px 16px 1px 8px!important;border:1px solid rgba(19,17,15,.22)!important;border-radius:999px!important;font-size:8.5px!important;letter-spacing:.12em!important}
.kp-sch select.kp-tier-sel.t1,.kp-tier-sel.t1{border-color:#6b4f80!important;color:#6b4f80}
.kp-sch select.kp-tier-sel.t2,.kp-tier-sel.t2{border-color:#8a6a3c!important;color:#8a6a3c}
.kp-sch select.kp-tier-sel.t3,.kp-tier-sel.t3{border-color:rgba(19,17,15,.3)!important;color:var(--muted)}
.kp-sch select.kp-tier-sel.none,.kp-tier-sel.none{border-color:#a2412b!important;background-color:#f6e7e1;color:#a2412b}
.kp-sheet-tier select:invalid{border-color:#a2412b;color:#a2412b}

/* V210 — supplier quote requests (RFQ): furniture details only, no prices */
.kp-rfq-modal .kp-modal-card{max-width:760px}
.kp-rfq-filt{display:grid;gap:10px;margin:4px 0 12px;padding:14px 0;border-top:1px solid rgba(19,17,15,.12);border-bottom:1px solid rgba(19,17,15,.12)}
.kp-rfq-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 8px}
.kp-rfq-row .kp-sch-fl{min-width:62px;margin:0}
.kp-rfq-chip{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid rgba(19,17,15,.2);border-radius:999px;font-family:var(--serif);font-size:13px;color:var(--ink);transition:background .2s,border-color .2s}
.kp-rfq-chip em{font-style:normal;font-size:11px;color:var(--muted)}
.kp-rfq-chip:hover{border-color:var(--ink)}
.kp-rfq-chip.on{background:var(--ink);border-color:var(--ink);color:#f6f3ec}.kp-rfq-chip.on em{color:rgba(246,243,236,.7)}
.kp-rfq-sel{gap:12px 22px}
.kp-rfq-sel label{display:flex!important;align-items:center;gap:10px;margin:0!important;text-transform:none;letter-spacing:0}
.kp-rfq-sel select{min-width:150px}
.kp-rfq-count{margin:0 0 6px;font-size:12.5px;color:var(--muted)}
.kp-rfq-pick{flex:none;max-height:340px;overflow:auto}
.kp-rfq-pick li[hidden]{display:none}
.kp-rfq-pick label>span{flex:1;min-width:0}
.kp-rfq-pick em{display:block;font-style:normal;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-rfq-tier{flex:none;padding:3px 8px 2px;border:1px solid rgba(19,17,15,.22);border-radius:999px;font-style:normal;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-rfq-tier.t1{border-color:#6b4f80;color:#6b4f80}.kp-rfq-tier.t2{border-color:#8a6a3c;color:#8a6a3c}.kp-rfq-tier.t0{border-color:#a2412b;color:#a2412b}
.kp-rfq-int{margin:-6px 0 14px;font-size:12.5px}
.kp-rfq-lines th.no,.kp-rfq-lines td.no{width:28px;color:var(--muted)}
.kp-rfq-lines th.pic,.kp-rfq-lines td.pic{width:84px}
.kp-rfq-lines td.pic img{display:block;width:72px;height:72px;object-fit:cover;background:#f1ede5}
.kp-rfq-lines th.fill{width:110px}.kp-rfq-lines th span{display:block;font-size:7.5px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}
.kp-rfq-lines td.fill{border-left:1px dashed rgba(19,17,15,.18)}
.kp-rfq-lines td{vertical-align:top}
.kp-rfq-sec{margin-top:34px}
.kp-rfq-sech{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.kp-rfq-sech h2{margin:0}
@media (max-width:760px){
  .kp-rfq-row .kp-sch-fl{min-width:0;width:100%}
  .kp-rfq-chip{font-size:12.5px;padding:5px 10px}
  .kp-rfq-sel select{min-width:0;flex:1}
  .kp-rfq-sel label{width:100%}
  .kp-rfq-pick{max-height:none}
  .kp-rfq-pick .kp-rfq-tier{display:none}
  .kp-sch-tools-r .kp-sch-rfqb{flex:1;justify-content:center}
  .kp-rfq-lines th.fill,.kp-rfq-lines td.fill{width:60px}
  .kp-rfq-lines th.pic,.kp-rfq-lines td.pic{width:56px} .kp-rfq-lines td.pic img{width:48px;height:48px}
}
@media (max-width:760px){
  .kp-rfq-sel label{display:grid!important;grid-template-columns:1fr;gap:4px}
  .kp-rfq-sel select{display:block;width:100%!important;min-width:0}
}
@media (hover:none){ .kp-rfq-chip:hover:not(.on){border-color:rgba(19,17,15,.2)} }
@media screen and (max-width:760px){
  .kp-rfq-lines th.fill,.kp-rfq-lines td.fill{display:none}
  .kp-rfq-lines th.no,.kp-rfq-lines td.no{width:18px}
}

/* V211 — order sections on phones: four clear boxes (2 × 2), the one you're on filled in; counts sit inside the box */
@media (max-width:760px){
  .kp-a-secnav,.kp-st-app .kp-a-secnav{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;margin:0 0 24px!important;padding:0!important;border:0!important;overflow:visible!important}
  .kp-a-secnav a,.kp-a-secnav a:first-child,.kp-st-app .kp-a-secnav a{grid-column:auto!important;display:flex!important;align-items:center;justify-content:space-between;gap:8px;min-height:46px!important;margin:0!important;padding:0 14px!important;
    border:1px solid rgba(19,17,15,.2)!important;background:rgba(255,253,248,.6)!important;color:var(--ink)!important;font-family:Arial,Helvetica,sans-serif;font-size:9px!important;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;white-space:nowrap}
  .kp-a-secnav a>span{overflow:hidden;text-overflow:ellipsis}
  .kp-a-secnav a.on,.kp-st-app .kp-a-secnav a.on{background:var(--ink)!important;border-color:var(--ink)!important;color:#f6f3ec!important}
  .kp-a-secnav a em,.kp-st-app .kp-a-secnav a em{flex:none;display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;font-style:normal;font-size:9.5px;letter-spacing:0;line-height:1;margin:0!important;background:var(--ink)!important;color:#f6f3ec!important}
  .kp-a-secnav a em.n,.kp-st-app .kp-a-secnav a em.n{background:rgba(19,17,15,.07)!important;color:var(--muted)!important}
  .kp-a-secnav a.on em,.kp-st-app .kp-a-secnav a.on em{background:#f6f3ec!important;color:var(--ink)!important}
  .kp-a-secnav a.on em.n,.kp-st-app .kp-a-secnav a.on em.n{background:rgba(246,243,236,.16)!important;color:rgba(246,243,236,.8)!important}
}

/* V212 — Website content: projects with their own page (write-up, tones, photos), saved to the website for everyone */
.kp-ws-where{margin:-6px 0 22px;padding:11px 14px;border:1px solid rgba(19,17,15,.14);background:rgba(255,253,248,.6);font-family:var(--serif);font-size:13.5px;color:var(--muted)}
.kp-ws-where b{font-weight:400;color:var(--ink)}
.kp-ws-where.shared{border-color:rgba(77,107,69,.4);background:rgba(77,107,69,.06)}.kp-ws-where.shared b{color:#4d6b45}
.kp-ws-where.local{border-color:rgba(154,90,44,.35);background:rgba(154,90,44,.05)}.kp-ws-where.local b{color:#9a5a2c}
.kp-ws-write textarea{width:100%;min-height:130px;font:inherit;font-family:var(--serif);font-size:15px;line-height:1.55;padding:10px 0;border:0;border-bottom:1px solid rgba(19,17,15,.25);background:transparent;resize:vertical}
.kp-ws-tones{margin:18px 0 6px}
.kp-ws-tones .g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.kp-ws-tones label{display:flex!important;align-items:center;gap:8px;margin:0!important;text-transform:none;letter-spacing:0}
.kp-ws-tones input[type=color]{flex:none;width:30px;height:30px;padding:0;border:1px solid rgba(19,17,15,.2);background:none;cursor:pointer}
.kp-ws-tones input:not([type]){flex:1;min-width:0;font-family:var(--serif);font-size:14px;padding:6px 0;border:0;border-bottom:1px solid rgba(19,17,15,.22);background:transparent}
.kp-ws-photos{margin:18px 0 8px}
.kp-ws-photos ol{list-style:none;margin:8px 0 12px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.kp-ws-photos li{position:relative;aspect-ratio:4/3;background:#ede8df;border:1px solid rgba(19,17,15,.12);overflow:hidden}
.kp-ws-photos li.cover{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.kp-ws-photos li.none{grid-column:1/-1;aspect-ratio:auto;padding:22px;text-align:center;font-family:var(--serif);font-size:13.5px;color:var(--muted)}
.kp-ws-photos li img{width:100%;height:100%;object-fit:cover;display:block}
.kp-ws-photos li em{position:absolute;left:8px;top:8px;padding:3px 8px 2px;background:var(--ink);color:#f6f3ec;font-style:normal;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase}
.kp-ws-photos li .b{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:2px;padding:4px;background:linear-gradient(transparent,rgba(19,17,15,.55))}
.kp-ws-photos li .b button{all:unset;cursor:pointer;min-width:22px;height:22px;padding:0 5px;display:grid;place-items:center;background:rgba(246,243,236,.92);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:10px}
.kp-ws-photos li .b button[data-ph-cover]{font-size:7.5px;letter-spacing:.12em;text-transform:uppercase}
.kp-ws-photos li .b button:disabled{opacity:.35;cursor:default}
.kp-ws-padd{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px}
.kp-ws-padd select{max-width:260px}
@media (max-width:760px){ .kp-ws-tones .g{grid-template-columns:1fr 1fr} .kp-ws-photos ol{grid-template-columns:repeat(3,minmax(0,1fr))} .kp-ws-photos li.cover{grid-column:1/-1;grid-row:auto;aspect-ratio:16/10} }

/* V213 — pictures load from the browser's large store a moment after the page opens; messages shown on the page */
img[src^="kpimg:"]{visibility:hidden}
.kp-notice{position:fixed;left:50%;bottom:22px;z-index:9999;display:flex;align-items:flex-start;gap:14px;width:min(560px,calc(100% - 32px));padding:14px 16px 14px 18px;background:#13110f;color:#f6f3ec;box-shadow:0 10px 30px rgba(0,0,0,.18);transform:translate(-50%,24px);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
.kp-notice.in{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.kp-notice p{margin:0;flex:1;font-family:var(--serif);font-size:14.5px;line-height:1.45}
.kp-notice button{all:unset;cursor:pointer;font-size:18px;line-height:1;padding:0 2px;opacity:.7}
.kp-notice.bad{background:#7d2f1d}

/* V214 — adding pieces: a code, a size that suits the type (rugs: length × width × pile), suggestions, materials + finishes,
   drop / paste images, reuse a piece, import a schedule; the KNEHLER fabrics picker */
.kp-no-row{grid-template-columns:34px 96px minmax(0,2fr) minmax(0,1fr) 56px minmax(0,1.5fr) 30px}
.kp-no-code input{text-transform:uppercase;letter-spacing:.04em}
.kp-no-code input::placeholder{text-transform:uppercase;color:rgba(19,17,15,.38)!important}
.kp-no-what{gap:0}
.kp-no-sug{display:block;min-height:0}
.kp-no-sugin{display:flex;flex-wrap:wrap;align-items:center;gap:5px 6px;margin-top:7px;font-size:12px;color:var(--muted)}
.kp-no-sugin em{font-style:normal;margin-right:2px}
.kp-no-sugin button{all:unset;cursor:pointer;padding:3px 9px 2px;border:1px solid rgba(19,17,15,.2);border-radius:999px;font-family:var(--serif);font-size:12px;color:var(--ink);background:#fff;transition:border-color .2s}
.kp-no-sugin button:hover{border-color:var(--ink)}
.kp-no-sugin button.f{border-style:dashed}
.kp-no-spec{grid-column:2 / -1;margin-top:16px;padding-top:12px;border-top:1px dashed rgba(19,17,15,.12)}
.kp-no-spec>.h{margin:0 0 8px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.kp-no-spec>.h span{margin-left:8px;font-family:var(--serif);font-size:12px;letter-spacing:0;text-transform:none;color:var(--muted)}
.kp-no-spec .g{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px 16px}
.kp-no-spec .w{display:flex;align-items:flex-end;gap:8px}
.kp-no-spec .w input{flex:1;min-width:0}
.kp-no-fabbtn{flex:none;height:26px;padding:0 10px;border:1px solid var(--ink);background:var(--ink);color:#f6f3ec;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.kp-no-fabsel{font-size:11px;color:#4d6b45}
.kp-no-files{grid-column:2 / -1}
.kp-no-fg{position:relative;padding:6px;margin:-6px;border:1px dashed transparent;transition:border-color .15s,background .15s}
.kp-no-fg.over{border-color:var(--ink);background:rgba(19,17,15,.04)}
.kp-no-drophint{font-size:11.5px;color:var(--muted)}
.kp-no-rug .kp-no-wdh label:last-child input{max-width:70px}
.kp-no-rfoot{display:flex;align-items:center;flex-wrap:wrap}
.kp-no-rfoot .kp-no-addp{width:auto;flex:1}
.kp-no-reuse{display:inline-flex;align-items:center;gap:8px;margin:0 18px 0 0;cursor:pointer}
.kp-no-reuse span{font-size:14px;color:var(--muted)}
.kp-app .kp-no-reuse select{max-width:300px;height:auto;margin:0;padding:6px 18px 6px 0;border:0;border-bottom:1px solid rgba(19,17,15,.22);background:transparent;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:#5c554e;border-radius:0;box-shadow:none;cursor:pointer}
.kp-no-import{display:flex;align-items:center;justify-content:space-between;gap:12px 22px;flex-wrap:wrap;margin:-4px 0 20px;padding:14px 16px;border:1px dashed rgba(19,17,15,.22);background:rgba(255,253,248,.7);font-family:var(--serif);font-size:14px;color:var(--muted)}
.kp-no-import b{font-weight:400;color:var(--ink)}
.kp-no-import .kp-no-up{flex:none;border-style:solid;border-color:var(--ink);color:var(--ink)}
@media (max-width:1000px){
  .kp-no-row{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) 30px}
  .kp-no-what{grid-column:2 / 4;grid-row:1}
  .kp-no-del{grid-column:4;grid-row:1}
  .kp-no-code{grid-column:2;grid-row:2}
  .kp-no-type{grid-column:3;grid-row:2}
  .kp-no-qty{grid-column:2;grid-row:3}
  .kp-no-dims{grid-column:2 / 4;grid-row:4}
  .kp-no-spec,.kp-no-files{grid-column:2 / 4}
}
@media (max-width:760px){
  .kp-no-row{grid-template-columns:22px minmax(0,1fr) minmax(0,1fr) 26px}
  .kp-no-qty{grid-column:3;grid-row:3}
  .kp-no-dims{grid-row:3;grid-column:2}
  .kp-no-row .kp-no-dims{grid-column:2 / 4;grid-row:4}
  .kp-no-qty{grid-column:2;grid-row:3}
  .kp-no-spec .g{grid-template-columns:1fr 1fr}
  .kp-no-rfoot{flex-direction:column;align-items:stretch}
  .kp-no-reuse{margin:0 14px 12px}
  .kp-app .kp-no-reuse select{max-width:none;flex:1}
}
.kp-np .kp-no-row{grid-template-columns:0 96px minmax(0,2fr) minmax(0,1fr) 56px minmax(0,1.5fr) 0}
.kp-np .kp-no-spec,.kp-np .kp-no-files{grid-column:2 / 7}
@media (max-width:1000px){ .kp-np .kp-no-row{grid-template-columns:0 minmax(0,1fr) minmax(0,1fr) 0} .kp-np .kp-no-spec,.kp-np .kp-no-files{grid-column:2 / 4} }
/* the fabrics picker */
.kp-fab-modal .kp-modal-card{max-width:880px}
.kp-fab-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 14px}
.kp-fab-types{display:flex;flex-wrap:wrap;gap:6px}
.kp-fab-types button{all:unset;cursor:pointer;padding:5px 12px 4px;border:1px solid rgba(19,17,15,.2);border-radius:999px;font-family:var(--serif);font-size:13px}
.kp-fab-types button.on{background:var(--ink);border-color:var(--ink);color:#f6f3ec}
.kp-fab-tools input{min-width:200px;padding:6px 0;border:0;border-bottom:1px solid rgba(19,17,15,.25);background:transparent;font-family:var(--serif);font-size:14px}
.kp-fab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;max-height:56vh;overflow:auto;padding:2px}
.kp-fab-card{all:unset;cursor:pointer;display:flex;flex-direction:column;border:1px solid rgba(19,17,15,.14);background:#fff;transition:border-color .2s,box-shadow .2s}
.kp-fab-card:hover{border-color:var(--ink)}
.kp-fab-card.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.kp-fab-card .sw{display:block;aspect-ratio:1;background:#ede8df;overflow:hidden}
.kp-fab-card .sw img{width:100%;height:100%;object-fit:cover;display:block}
.kp-fab-card .b{display:flex;flex-direction:column;gap:3px;padding:9px 10px 11px}
.kp-fab-card .cd{font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-fab-card b{font-weight:400;font-family:var(--serif);font-size:15px;color:var(--ink)}
.kp-fab-card em{font-style:normal;font-size:11.5px;color:var(--muted);line-height:1.35}
@media (max-width:760px){ .kp-fab-grid{grid-template-columns:1fr 1fr;max-height:none} .kp-fab-tools input{min-width:0;flex:1} }
.kp-lib-card.off{opacity:.55}
.kp-sheet-rug{margin-top:6px}
.kp-rug-roll{align-self:end}
@media (max-width:1000px){
  .kp-no-row .kp-no-what{grid-column:2 / 4;grid-row:1}
  .kp-no-row .kp-no-code{grid-column:2;grid-row:2}
  .kp-no-row .kp-no-qty{grid-column:3;grid-row:2}
  .kp-no-row .kp-no-type{grid-column:2 / 4;grid-row:3}
  .kp-no-row .kp-no-dims{grid-column:2 / 4;grid-row:4}
}
.kp-no-row{align-items:start}
.kp-no-row>.kp-no-n{align-self:start;padding-top:22px}
.kp-no-row>.kp-no-del{align-self:start;margin-top:12px}
.kp-no-fabsel{font-family:var(--serif)!important;font-size:11.5px!important;letter-spacing:0!important;text-transform:none!important}
/* V214 — textiles range + rugs on the website */
.kp-new-s{border-color:var(--ink,#13110f)!important;background:var(--ink,#13110f);color:#f6f3ec!important;opacity:1!important}
.footer .kp-new-s{background:transparent;color:inherit!important;border-color:currentColor!important}
.kp-tx .k{margin:14px 0 4px;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-tx h3{margin:0 0 4px;font-family:var(--serif);font-size:19px;font-weight:400}
.kp-tx .t{margin:0 0 10px;font-size:13px;color:var(--muted)}
.kp-tx-sec .section-head h2 .kp-new-s{vertical-align:middle;margin-left:10px}
.kp-fab-staff .kp-lib-card .img{padding:0}.kp-fab-staff .kp-lib-card .img img{width:100%;height:100%;object-fit:cover;max-width:none;max-height:none}

/* V216 — new order: pieces read as a finished schedule; each piece is filled in in its own window (Done / Done, add another) */
.kp-notice .act{all:unset;cursor:pointer;flex:none;padding:2px 0;border-bottom:1px solid currentColor;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase}
.kp-no-item{display:grid;grid-template-columns:56px minmax(0,1fr) auto 30px;align-items:center;gap:14px;padding:12px 18px;border-bottom:1px solid rgba(19,17,15,.1);transition:background .2s}
.kp-no-item:hover{background:rgba(19,17,15,.02)}
.kp-no-item.over{background:rgba(19,17,15,.05);outline:1px dashed var(--ink);outline-offset:-4px}
.kp-no-item .ph{all:unset;cursor:pointer;display:block;width:56px;height:56px;background:#ede8df;overflow:hidden;border:1px solid rgba(19,17,15,.08)}
.kp-no-item .ph img{width:100%;height:100%;object-fit:cover;display:block}
.kp-no-item .t{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:2px;min-width:0}
.kp-no-item .cd b{font-weight:400;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-no-item .n{font-family:var(--serif);font-size:17px;line-height:1.25;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-no-item .n i{font-style:normal;color:var(--muted)}
.kp-no-item .l{font-family:var(--serif);font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-no-item .l.busy{color:#9a5a2c}
.kp-no-item .e{font-size:8.5px}
.kp-no-item .x{all:unset;cursor:pointer;width:30px;height:30px;display:grid;place-items:center;font-size:18px;color:var(--muted)}
.kp-no-item .x:hover{color:var(--ink)}
.kp-no-empty{margin:0;padding:18px;font-family:var(--serif);font-size:14px;color:var(--muted)}
/* the piece window */
.kp-no-modal{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:28px;background:rgba(19,17,15,.36);opacity:0;transition:opacity .22s}
.kp-no-modal.in{opacity:1}
.kp-no-mcard{position:relative;display:flex;flex-direction:column;width:min(980px,100%);max-height:calc(100vh - 56px);max-height:calc(100dvh - 56px);background:#f6f3ec;box-shadow:0 24px 60px rgba(19,17,15,.22);transform:translateY(10px);transition:transform .25s}
.kp-no-modal.in .kp-no-mcard{transform:none}
.kp-no-mhead{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:22px 26px 14px;border-bottom:1px solid rgba(19,17,15,.1)}
.kp-no-mhead .kp-a-kicker{margin:0 0 4px}
.kp-no-mhead h2{margin:0;font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.2}
.kp-no-mhead .x{all:unset;cursor:pointer;font-size:22px;line-height:1;color:var(--muted);padding:2px 4px}
.kp-no-mbody{flex:1;overflow:auto;padding:6px 26px 20px;overscroll-behavior:contain}
.kp-no-mfoot{display:flex;align-items:center;gap:12px 16px;flex-wrap:wrap;padding:14px 26px;border-top:1px solid rgba(19,17,15,.12);background:#f1ede4}
.kp-no-mfoot .sp{flex:1}
.kp-no-mfoot .kp-sch-ghost{height:40px}
.kp-no-mfoot .btn{min-width:120px;justify-content:center}
/* the piece's fields, laid out for the window */
.kp-no-mbody .kp-no-row{display:grid;grid-template-columns:120px minmax(0,1fr) 190px 80px;grid-template-areas:"code name type qty" "dims dims dims dims" "spec spec spec spec" "files files files files";gap:16px 18px;padding:16px 0 4px;border:0;align-items:start}
.kp-no-mbody .kp-no-n,.kp-no-mbody .kp-no-del{display:none}
.kp-no-mbody .kp-no-code{grid-area:code}.kp-no-mbody .kp-no-what{grid-area:name}.kp-no-mbody .kp-no-type{grid-area:type}.kp-no-mbody .kp-no-qty{grid-area:qty}
.kp-no-mbody .kp-no-dims{grid-area:dims;max-width:520px}.kp-no-mbody .kp-no-spec{grid-area:spec;margin-top:4px}.kp-no-mbody .kp-no-files{grid-area:files;margin-top:4px}
.kp-no-mbody .kp-no-files{grid-template-columns:1fr 1fr;gap:16px 22px}
.kp-no-mbody .kp-no-notes{grid-column:1 / -1}
.kp-no-mbody .kp-no-fg{padding:12px;margin:0;border:1px dashed rgba(19,17,15,.22);background:rgba(255,253,248,.7)}
.kp-no-mbody .kp-no-fg.over{border-color:var(--ink);background:rgba(19,17,15,.04)}
.kp-no-mbody .kp-no-what input{font-size:18px!important}
@media (max-width:760px){
  .kp-no-modal{padding:0;align-items:flex-end}
  .kp-no-mcard{max-height:100%;height:100%;width:100%}
  .kp-no-mhead{padding:16px 16px 12px}.kp-no-mhead h2{font-size:22px}
  .kp-no-mbody{padding:4px 16px 18px}
  .kp-no-mfoot{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}
  .kp-no-mfoot .kp-a-link{order:3;flex-basis:100%;text-align:center}
  .kp-no-mfoot .sp{display:none}
  .kp-no-mfoot .kp-sch-ghost,.kp-no-mfoot .btn{flex:1;justify-content:center;text-align:center;min-width:0}
  .kp-no-mbody .kp-no-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"name name" "code qty" "type type" "dims dims" "spec spec" "files files"}
  .kp-no-mbody .kp-no-files{grid-template-columns:1fr}
  .kp-no-item{grid-template-columns:48px minmax(0,1fr) 26px;padding:12px 14px;gap:12px}
  .kp-no-item .ph{width:48px;height:48px}
  .kp-no-item .e{display:none}
}

/* V216 — not shared yet, more detail, room in the window, sharing in the staff schedule */
.kp-no-pend{margin:0 0 18px;padding:18px 20px;border:1px dashed rgba(19,17,15,.28);border-radius:4px;background:rgba(244,240,232,.55)}
.kp-no-pendh{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.kp-no-pendh .t{margin:4px 0 0;font-family:var(--serif);font-size:16px;color:#5c554e;max-width:48ch}
.kp-no-pend .kp-no-rows{display:grid;gap:8px}
.kp-no-more2{grid-column:1/-1;border-top:1px solid rgba(19,17,15,.1);padding-top:12px;margin-top:4px}
.kp-no-more2>summary{cursor:pointer;list-style:none;font-family:var(--serif);font-size:15px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.kp-no-more2>summary::-webkit-details-marker{display:none}
.kp-no-more2>summary::before{content:"+";display:inline-block;width:14px;color:#6b645b}
.kp-no-more2[open]>summary::before{content:"–"}
.kp-no-more2>summary span{font-family:var(--sans,inherit);font-size:12.5px;color:#6b645b}
.kp-no-more2[open]>summary{margin-bottom:12px}
.kp-no-mroom{grid-column:1/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px}
.kp-no-mroom .h{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6b645b}
.kp-no-mroom select{min-width:180px}
.kp-no-footnote{margin:10px 0 0;font-size:12.5px;color:#6b645b;max-width:60ch}
.kp-sch-sharebox{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;padding:5px 6px 5px 12px;border:1px solid rgba(19,17,15,.18);border-radius:18px;font-size:12.5px;color:#5c554e}
.kp-sch-sharebox::before{content:"";width:7px;height:7px;border-radius:50%;background:#b9b1a6}
.kp-sch-sharebox.ok{border-color:#aebd9f;color:#4d6b45;padding-right:12px}.kp-sch-sharebox.ok::before{background:#6b7f4e}
.kp-sch-sharebox.chg{border-color:#d9b98a;color:#7a5a2b}.kp-sch-sharebox.chg::before{background:#c8913f}
.kp-sch-sharebox .btn{padding:6px 14px;font-size:12px;min-height:0}
@media (max-width:640px){.kp-no-pendh .btn{width:100%}.kp-sch-sharebox{border-radius:10px;width:100%;box-sizing:border-box}}
.kp-sch-sharest{font-family:var(--serif);font-size:13.5px}

/* V217 — the piece window, simplified: one column, boxed fields, a question at a time */
.kp-no-mcard{width:min(720px,100%)}
.kp-no-mhead{padding:22px 32px 16px}
.kp-no-mbody{padding:4px 32px 24px}
.kp-no-mfoot{padding:14px 32px}
.kp-no-mfoot .btn{background:var(--ink);color:#f6f3ec;border-color:var(--ink)}
.kp-no-mfoot .btn:hover{background:#2b2724}
.kp-pw-s{padding:20px 0;border-bottom:1px solid rgba(19,17,15,.09)}
.kp-pw-s:last-child{border-bottom:0}
.kp-pw-h{display:flex;align-items:baseline;gap:8px;margin:0 0 10px;font-family:var(--serif);font-size:17px;color:var(--ink)}
.kp-pw-h em{font-style:normal;font-size:13px;color:#6b645b}
.kp-pw-h .kp-no-cbm{margin-left:auto;font-style:normal;font-family:var(--sans,inherit);font-size:12px;color:#6b645b}
.kp-pw-opt{font-family:var(--sans,inherit);font-size:11px;letter-spacing:.06em;color:#9a9188;font-weight:400}
.kp-pw-f{display:flex;flex-direction:column;gap:6px;min-width:0}
.kp-pw-f>span{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12px;color:#5c554e;letter-spacing:.02em}
.kp-pw-f input,.kp-pw-f textarea{all:unset;box-sizing:border-box;width:100%;padding:11px 13px;background:#fffdf8;border:1px solid rgba(19,17,15,.16);border-radius:4px;font-family:var(--serif);font-size:15px;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.kp-pw-f textarea{min-height:64px;line-height:1.45;white-space:pre-wrap}
.kp-pw-f input::placeholder,.kp-pw-f textarea::placeholder{color:#b1a99f}
.kp-pw-f input:focus,.kp-pw-f textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(19,17,15,.06)}
.kp-pw-name>span{font-family:var(--serif);font-size:17px;color:var(--ink)}
.kp-pw-name input{font-size:20px;padding:13px 14px}
.kp-no-need.kp-pw-name input{border-color:#b5523b;box-shadow:0 0 0 3px rgba(181,82,59,.1)}
.kp-pw-sug:empty{display:none}
.kp-pw-sug{display:block;margin:10px 0 0}
.kp-pw-sug .kp-no-sugin{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.kp-pw-row{display:flex;flex-wrap:wrap;gap:16px 24px;margin-top:18px;align-items:flex-end}
.kp-pw-row>.kp-pw-f:first-child{flex:1 1 300px}
.kp-pw-seg{display:inline-flex;flex-wrap:wrap;border:1px solid rgba(19,17,15,.16);border-radius:4px;overflow:hidden;background:#fffdf8;align-self:flex-start}
.kp-pw-seg button{all:unset;cursor:pointer;padding:10px 16px;font-family:var(--serif);font-size:14.5px;color:#5c554e;border-right:1px solid rgba(19,17,15,.1)}
.kp-pw-seg button:last-child{border-right:0}
.kp-pw-seg button:hover{background:rgba(19,17,15,.04)}
.kp-pw-seg button.on{background:var(--ink);color:#f6f3ec}
.kp-pw-step{display:inline-flex;align-items:stretch;border:1px solid rgba(19,17,15,.16);border-radius:4px;background:#fffdf8;overflow:hidden}
.kp-pw-step button{all:unset;cursor:pointer;width:40px;text-align:center;font-size:18px;color:#5c554e}
.kp-pw-step button:hover{background:rgba(19,17,15,.05)}
.kp-pw-step button[disabled]{opacity:.3;cursor:default}
.kp-pw-qty .kp-pw-step input{width:52px;text-align:center;border:0;border-left:1px solid rgba(19,17,15,.1);border-right:1px solid rgba(19,17,15,.1);border-radius:0;padding:10px 4px;box-shadow:none}
.kp-pw-dims{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:480px}
.kp-pw-drop{border:1px dashed rgba(19,17,15,.25);border-radius:4px;background:rgba(255,253,248,.6);padding:18px;text-align:center;transition:border-color .15s,background .15s}
.kp-pw-drop.has{text-align:left}
.kp-pw-drop.over{border-color:var(--ink);background:rgba(19,17,15,.04)}
.kp-pw-dt{margin:0;font-family:var(--serif);font-size:14.5px;color:#7a726a}
.kp-pw-pick{cursor:pointer;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.kp-pw-pick input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.kp-pw-files{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.kp-pw-file{position:relative;width:72px;height:72px;border-radius:3px;overflow:hidden;background:#ece6db;display:flex;align-items:center;justify-content:center}
.kp-pw-file img{width:100%;height:100%;object-fit:cover}
.kp-pw-file b{font-size:11px;letter-spacing:.08em;color:#5c554e}
.kp-pw-file .x{all:unset;cursor:pointer;position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:rgba(19,17,15,.7);color:#fff;font-size:13px;line-height:20px;text-align:center}
.kp-pw-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}
.kp-pw-link{all:unset;cursor:pointer;font-size:12px;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.kp-pw-code{margin-bottom:16px}
.kp-no-mbody .kp-no-more2{border-top:0;padding-top:16px;margin-top:0}
@media (max-width:640px){
  .kp-no-mhead{padding:16px 18px 12px}.kp-no-mbody{padding:2px 18px 20px}.kp-no-mfoot{padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px))}
  .kp-pw-grid{grid-template-columns:1fr}
  .kp-pw-seg{display:flex;width:100%}.kp-pw-seg button{flex:1;text-align:center;padding:10px 6px;font-size:14px}
  .kp-pw-dims{gap:8px}
}

/* V217 — schedule: rooms, a + at the foot of each, new pieces wait in their room until shared */
.kp-cs-addp{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:10px;width:100%;padding:14px 18px;font-family:var(--serif);font-size:15px;color:#5c554e;border-top:1px dashed rgba(19,17,15,.16)}
.kp-cs-addp span{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:1px solid rgba(19,17,15,.3);border-radius:50%;font-size:16px;line-height:1}
.kp-cs-addp:hover{background:rgba(19,17,15,.03);color:var(--ink)}
.kp-cs-addp:hover span{background:var(--ink);color:#f6f3ec;border-color:var(--ink)}
.kp-cs-pendrows{padding:8px 18px;display:grid;gap:8px;border-top:1px solid rgba(19,17,15,.08)}
.kp-no-pendi{border-style:dashed!important}
.kp-no-ptag{font-style:normal;display:inline-block;margin-right:8px;padding:2px 7px;border-radius:9px;background:#efe3cc;color:#7a5a2b;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.kp-cs-rempty{margin:0;padding:14px 18px 2px;font-family:var(--serif);font-size:14px;color:#6b645b}
.kp-cs-rh .kp-a-link{font-size:11px}
.kp-cs-addroom{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin:22px 0 0;padding:18px;border:1px dashed rgba(19,17,15,.25);font-family:var(--serif);font-size:16px;color:#5c554e}
.kp-cs-addroom span{font-size:20px;line-height:1}
.kp-cs-addroom:hover{border-color:var(--ink);color:var(--ink)}
.kp-cs-newroom{margin:22px 0 0;padding:18px 20px;border:1px solid rgba(19,17,15,.16);background:#faf8f3}
.kp-cs-nrchips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.kp-cs-nrchips button{all:unset;cursor:pointer;padding:8px 14px;border:1px solid rgba(19,17,15,.18);border-radius:18px;font-family:var(--serif);font-size:14.5px;background:#fffdf8}
.kp-cs-nrchips button:hover{background:var(--ink);color:#f6f3ec;border-color:var(--ink)}
.kp-cs-nrown{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.kp-cs-nrown input{all:unset;box-sizing:border-box;flex:1 1 240px;padding:10px 13px;background:#fffdf8;border:1px solid rgba(19,17,15,.16);border-radius:4px;font-family:var(--serif);font-size:15px}
.kp-cs-nrown input:focus{border-color:var(--ink)}
.kp-cs-sharebar{position:sticky;bottom:14px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;margin:22px 0 0;padding:14px 18px;background:var(--ink);color:#f6f3ec;box-shadow:0 10px 30px rgba(19,17,15,.2)}
.kp-cs-sharebar p{margin:0;font-family:var(--serif);font-size:15px}
.kp-cs-sharebar .btn{background:#f6f3ec;color:var(--ink);border-color:#f6f3ec}
.kp-cs-start{margin:8px 0 0;font-family:var(--serif);font-size:17px;color:#5c554e}
@media (max-width:640px){.kp-cs-sharebar .btn{width:100%;justify-content:center}.kp-cs-addp{padding:13px 14px}}
.kp-no-modal .kp-pw,.kp-no-modal .kp-pw *{text-transform:none}
.kp-no-modal .kp-pw-f>span,.kp-no-modal .kp-pw-f label>span{display:block;font-family:var(--sans,inherit);font-size:12px;letter-spacing:.02em;color:#5c554e;margin:0}
.kp-no-modal .kp-pw-f label{display:flex;flex-direction:column;gap:6px}
.kp-no-modal .kp-pw-name>span{font-family:var(--serif);font-size:17px;letter-spacing:0;color:var(--ink)}
.kp-no-modal .kp-pw-f input,.kp-no-modal .kp-pw-f textarea{letter-spacing:0;text-transform:none}
.kp-no-modal .kp-pw-name input{font-size:20px!important}
.kp-no-modal .kp-pw-pick{display:inline;font:inherit;letter-spacing:0;text-transform:none;border:0;padding:0;margin:0}
.kp-pw-fab .kp-pw-link{align-self:flex-start;margin-top:2px}
.kp-no-pendi{border:1px dashed rgba(19,17,15,.28)!important;background:#fffdf8}
.kp-modal-on .kp-notice{top:18px;bottom:auto;transform:translate(-50%,-24px)}
.kp-modal-on .kp-notice.in{transform:translate(-50%,0)}
.kp-modal.kp-fab-modal{z-index:9600}

/* V218 — suggestions read from an uploaded image */
.kp-pw-ai{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:14px 0 0;padding:14px 16px;border:1px solid rgba(19,17,15,.12);border-radius:4px;background:#fffdf8}
.kp-pw-ai p{margin:0;flex:1 1 260px;font-family:var(--serif);font-size:14.5px;line-height:1.45;color:#5c554e}
.kp-pw-ai p b{font-weight:400;color:var(--ink);margin-right:4px}
.kp-pw-ai p em{color:#8a6a3a}
.kp-pw-ai.busy .dot{width:10px;height:10px;border-radius:50%;background:var(--ink);animation:kpPwAi 1.1s ease-in-out infinite}
@keyframes kpPwAi{0%,100%{opacity:.2;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}
.kp-pw-ai.done{display:block;background:#f3eee3;border-color:rgba(19,17,15,.1)}
.kp-pw-aih{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:flex-start;justify-content:space-between;margin-bottom:12px}
.kp-pw-aih .acts{display:flex;align-items:center;gap:14px}
.kp-pw-aih .btn{padding:7px 16px;font-size:11px;min-height:0}
.kp-pw-aics{display:flex;flex-wrap:wrap;gap:8px}
.kp-pw-aic{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;flex-direction:column;gap:2px;max-width:100%;padding:8px 12px;border:1px solid rgba(19,17,15,.16);border-radius:4px;background:#fffdf8;font-family:var(--serif);font-size:14.5px;color:var(--ink);transition:border-color .15s,background .15s}
.kp-pw-aic span{font-family:var(--sans,inherit);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#6b645b}
.kp-pw-aic:hover{border-color:var(--ink)}
.kp-pw-aic.on{background:var(--ink);color:#f6f3ec;border-color:var(--ink)}
.kp-pw-aic.on span{color:rgba(246,243,236,.65)}
.kp-pw-aic.on span::after{content:" ✓"}
.kp-pw-aihint{margin:8px 0 0;font-size:12px;color:#6b645b}
.kp-no-modal .kp-pw-aic span{text-transform:uppercase}
.kp-no-modal .kp-pw-code2{display:inline-flex;align-items:center;gap:8px;margin:10px 0 0}
.kp-no-modal .kp-pw-code2 span{font-family:var(--sans,inherit);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#6b645b}
.kp-no-modal .kp-pw-code2 input{all:unset;box-sizing:border-box;width:110px;padding:5px 9px;border:1px solid rgba(19,17,15,.14);border-radius:3px;background:#fffdf8;font-family:var(--sans,inherit);font-size:12.5px;letter-spacing:.04em;color:var(--ink)}
.kp-no-modal .kp-pw-code2 input::placeholder{color:#6b645b}
.kp-no-modal .kp-pw-code2 input:focus{border-color:var(--ink)}
.kp-pw-sug{margin-top:12px}
.kp-pw-linkf{margin-top:16px}

/* V219 — fabric: our range (with its swatch), the client's own, or one we source */
.kp-pw-span{grid-column:1/-1}
.kp-pw-fabopts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.kp-pw-fabopts button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid rgba(19,17,15,.16);border-radius:4px;background:#fffdf8;font-family:var(--serif);font-size:14.5px;color:var(--ink)}
.kp-pw-fabopts button span{font-family:var(--sans,inherit);font-size:11px;color:#6b645b;letter-spacing:.02em}
.kp-pw-fabopts button:hover{border-color:var(--ink)}
.kp-pw-fabopts button.on{background:var(--ink);color:#f6f3ec;border-color:var(--ink)}
.kp-pw-fabopts button.on span{color:rgba(246,243,236,.7)}
.kp-pw-fabbody{margin-top:12px;padding:16px;border:1px solid rgba(19,17,15,.1);border-radius:4px;background:#faf7f0}
.kp-pw-fabbody .kp-pw-grid{gap:12px 14px}
.kp-pw-fabnote{margin:0 0 14px;font-family:var(--serif);font-size:14.5px;line-height:1.45;color:#5c554e}
.kp-pw-fabnote b{font-weight:400;color:var(--ink);background:#efe3cc;padding:1px 6px;border-radius:3px;margin-right:4px}
.kp-pw-fabsel{display:flex;align-items:center;gap:14px}
.kp-pw-fabsel img{width:64px;height:64px;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px rgba(19,17,15,.1)}
.kp-pw-fabsel span{flex:1;display:flex;flex-direction:column;gap:2px;font-family:var(--serif);font-size:16px}
.kp-pw-fabsel em{font-style:normal;font-family:var(--sans,inherit);font-size:12px;color:#6b645b}
.kp-no-modal .kp-pw-req{font-style:normal;font-size:10.5px;letter-spacing:.04em;color:#a2643a;margin-left:4px}
.kp-pw-need .kp-pw-fabbody{border-color:#c98a5e;box-shadow:0 0 0 3px rgba(201,138,94,.12)}
.kp-pw-needt{margin:8px 0 0;font-size:12.5px;color:#a2643a}
.kp-no-modal .kp-pw-fab .kp-sch-ghost{align-self:flex-start}
@media (max-width:640px){.kp-pw-fabopts{grid-template-columns:1fr 1fr}}
/* staff: retail per metre */
.kp-fab-rt{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.kp-fab-adj{display:inline-flex;gap:4px;margin-left:auto}
.kp-fab-adj button{all:unset;cursor:pointer;padding:2px 7px;border:1px solid rgba(19,17,15,.18);border-radius:10px;font-size:11px;color:#5c554e}
.kp-fab-adj button:hover{background:var(--ink);color:#f6f3ec}
.kp-fab-fee{margin:0 0 18px;padding:12px 16px;border:1px solid rgba(19,17,15,.12);background:#faf8f3}
.kp-fab-fee label{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.kp-fab-fee span:first-child{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#5c554e}
.kp-fab-fee .w{font-family:var(--serif);font-size:16px}
.kp-fab-fee input{width:70px;padding:5px 8px;border:1px solid rgba(19,17,15,.2);background:#fffdf8;font:inherit}
.kp-fab-fee em{font-style:normal;font-size:12.5px;color:#6b645b;flex:1 1 300px}
.kp-fab-mk{display:flex;align-items:stretch}
.kp-fab-mk button{all:unset;cursor:pointer;width:32px;text-align:center;border:1px solid rgba(19,17,15,.2);font-size:16px}
.kp-fab-mk input{flex:1;min-width:0;text-align:center}
.kp-sheet-retail{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:11px;color:#5c554e}
.kp-sheet-retail input{width:70px}
.kp-fab-staff .kp-lib-card .img{overflow:hidden;display:block}.kp-fab-staff .kp-lib-card .img img{display:block;height:190px}.kp-fab-fee em{text-transform:none;letter-spacing:0;font-family:var(--serif);font-size:13.5px}
/* shop drawing service */
.kp-pw-sd{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:flex-start;gap:12px;width:100%;margin-top:12px;padding:12px 14px;border:1px solid rgba(19,17,15,.14);border-radius:4px;background:#fffdf8}
.kp-pw-sd:hover{border-color:var(--ink)}
.kp-pw-sd .tk{flex:none;width:18px;height:18px;margin-top:2px;border:1px solid rgba(19,17,15,.4);border-radius:3px;background:#fffdf8;position:relative}
.kp-pw-sd.on{background:#f3eee3;border-color:var(--ink)}
.kp-pw-sd.on .tk{background:var(--ink);border-color:var(--ink)}
.kp-pw-sd.on .tk::after{content:"";position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #f6f3ec;border-width:0 2px 2px 0;transform:rotate(45deg)}
.kp-pw-sd .t{display:flex;flex-direction:column;gap:3px}
.kp-pw-sd b{font-weight:400;font-family:var(--serif);font-size:15.5px;color:var(--ink)}
.kp-pw-sd em{font-style:normal;font-family:var(--serif);font-size:13.5px;color:#7a726a;line-height:1.4}

/* V220 — fabric choice, quieter: underlined tabs, no tinted panel */
.kp-pw-fabopts{display:flex;flex-wrap:wrap;gap:6px 26px;border-bottom:1px solid rgba(19,17,15,.14);grid-template-columns:none}
.kp-pw-fabopts button{all:unset;cursor:pointer;padding:9px 0 10px;margin-bottom:-1px;border-bottom:1px solid transparent;font-family:var(--sans,inherit);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#6b645b;background:none;border-radius:0;display:inline-block}
.kp-no-modal .kp-pw-fabopts button{text-transform:uppercase}
.kp-pw-fabopts button:hover{color:var(--ink);border-color:transparent}
.kp-pw-fabopts button.on{color:var(--ink);border-bottom-color:var(--ink);background:none}
.kp-pw-fabbody{margin-top:0;padding:18px 0 4px;border:0;border-radius:0;background:none}
.kp-pw-need .kp-pw-fabbody{border:0;box-shadow:none}
.kp-pw-need .kp-pw-fabbody .kp-pw-f input:placeholder-shown,.kp-pw-need .kp-pw-fabbody textarea:placeholder-shown,.kp-pw-need .kp-pw-fabbody .kp-pw-drop:not(.has){border-color:#c98a5e}
.kp-pw-fabnote{margin:0 0 16px;font-size:14px;color:#7a726a}
.kp-pw-fee{display:grid;grid-template-columns:auto 1fr;align-items:baseline;gap:4px 14px;margin:0 0 18px;padding:0 0 16px;border-bottom:1px solid rgba(19,17,15,.08)}
.kp-pw-fee .l{font-family:var(--sans,inherit);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#6b645b}
.kp-no-modal .kp-pw-fee .l{text-transform:uppercase}
.kp-pw-fee .v{font-family:var(--serif);font-size:18px;color:var(--ink)}
.kp-pw-fee p{grid-column:1/-1;margin:0;font-family:var(--serif);font-size:14px;line-height:1.5;color:#7a726a;max-width:56ch}
.kp-pw-browse{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:16px;width:100%;padding:12px 14px;border:1px solid rgba(19,17,15,.14);border-radius:4px;background:#fffdf8;transition:border-color .15s}
.kp-pw-browse:hover{border-color:var(--ink)}
.kp-pw-browse .sw{display:flex}
.kp-pw-browse .sw img{width:34px;height:34px;object-fit:cover;border-radius:50%;box-shadow:0 0 0 2px #fffdf8;margin-left:-8px}
.kp-pw-browse .sw img:first-child{margin-left:0}
.kp-pw-browse .t{flex:1;font-family:var(--serif);font-size:15.5px;color:var(--ink)}
.kp-pw-browse .ar{font-size:16px;color:#6b645b}
.kp-pw-fabsel{padding:12px 14px;border:1px solid rgba(19,17,15,.14);border-radius:4px;background:#fffdf8}
.kp-pw-fabsel img{width:52px;height:52px}
.kp-pw-needt{font-family:var(--serif);font-size:13.5px}
@media (max-width:640px){.kp-pw-fabopts{gap:4px 18px}.kp-pw-fee .v{font-size:16px}}
@media (max-width:640px){.kp-pw-fabopts{gap:4px 14px}.kp-pw-fabopts button{font-size:10.5px;letter-spacing:.08em}.kp-pw-fabbody .kp-pw-grid{grid-template-columns:1fr 1fr}.kp-pw-fabbody .kp-pw-grid>.kp-pw-f:not(:nth-child(5)):not(:nth-child(6)),.kp-pw-fabbody .kp-pw-span{grid-column:1/-1}}
/* V220 — the photo comes first */
.kp-pw-photo{padding-top:16px}
.kp-pw-hero{padding:0;text-align:left;background:#fffdf8;border-style:dashed}
.kp-pw-heroin{cursor:pointer;display:flex;align-items:center;gap:18px;padding:26px 24px}
.kp-pw-heroin input,.kp-pw-more input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.kp-pw-heroin .ic{flex:none;display:flex;align-items:center;justify-content:center;width:52px;height:52px;border:1px solid rgba(19,17,15,.3);border-radius:50%;font-size:24px;font-weight:300;color:var(--ink);transition:background .15s,color .15s}
.kp-pw-heroin:hover .ic{background:var(--ink);color:#f6f3ec}
.kp-pw-heroin .t{display:flex;flex-direction:column;gap:4px}
.kp-pw-heroin b{font-weight:400;font-family:var(--serif);font-size:18px;color:var(--ink)}
.kp-pw-heroin em{font-style:normal;font-family:var(--serif);font-size:14px;line-height:1.45;color:#7a726a}
.kp-pw-hero.has{padding:14px}
.kp-pw-hero.has .kp-pw-files{margin:0}
.kp-pw-hero .kp-pw-file{width:96px;height:96px}
.kp-pw-more{cursor:pointer;border:1px dashed rgba(19,17,15,.3);background:none!important;font-size:24px;color:#7a726a}
.kp-pw-more:hover{border-color:var(--ink);color:var(--ink)}
.kp-pw-hero .kp-pw-dt{padding:0 14px 12px}
.kp-pw-photo .kp-pw-linkf{margin-top:14px}
@media (max-width:640px){.kp-pw-heroin{padding:20px 16px;gap:14px}.kp-pw-heroin .ic{width:44px;height:44px}.kp-pw-hero .kp-pw-file{width:80px;height:80px}}

/* V221 — not shared with KNEHLER yet: always in view */
.kp-unshared{position:fixed;left:0;right:0;bottom:0;z-index:800;padding:0 16px calc(14px + env(safe-area-inset-bottom,0px));pointer-events:none}
.kp-unshared[hidden]{display:none}
.kp-unshared .in{pointer-events:auto;display:flex;align-items:center;gap:12px 20px;flex-wrap:wrap;max-width:1180px;margin:0 auto;padding:14px 18px;background:var(--ink);color:#f6f3ec;box-shadow:0 12px 36px rgba(19,17,15,.28);animation:kpUbIn .35s ease}
@keyframes kpUbIn{from{transform:translateY(18px);opacity:0}to{transform:none;opacity:1}}
.kp-unshared .dot{flex:none;width:8px;height:8px;border-radius:50%;background:#d9a463;box-shadow:0 0 0 4px rgba(217,164,99,.18)}
.kp-unshared p{flex:1 1 320px;margin:0;font-family:var(--serif);font-size:15px;line-height:1.45}
.kp-unshared p b{font-weight:400;color:#fff}
.kp-unshared a:not(.btn){color:#f6f3ec;text-decoration:underline;text-underline-offset:3px}
.kp-unshared .btn{background:#f6f3ec;color:var(--ink);border-color:#f6f3ec;white-space:nowrap}
.kp-unshared .btn:hover{background:#fff}
html.kp-unshared-on .kp-app-foot{padding-bottom:110px}
html.kp-modal-on .kp-unshared{display:none}
html.kp-unshared-on .kp-notice:not(.in){bottom:120px}
@media (max-width:640px){.kp-unshared{padding:0 10px calc(10px + env(safe-area-inset-bottom,0px))}.kp-unshared .in{padding:12px 14px}.kp-unshared p{font-size:14px;flex-basis:100%}.kp-unshared .btn{width:100%;justify-content:center;text-align:center}html.kp-unshared-on .kp-app-foot{padding-bottom:170px}}
@media (max-width:640px){.kp-unshared p{flex:1 1 calc(100% - 30px)}.kp-unshared .dot{align-self:flex-start;margin-top:8px}}

/* V222 — staff: what the client sees vs. what has changed since */
.kp-sch-pubst{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0;font-family:var(--serif);font-size:15px;color:#5c554e}
.kp-sch-pubst .dot{width:8px;height:8px;border-radius:50%;background:#b9b1a6}
.kp-sch-pubst.ok .dot{background:#6b7f4e}
.kp-sch-pubst.chg .dot{background:#d9a463;box-shadow:0 0 0 4px rgba(217,164,99,.18)}
.kp-sch-pubst.chg{color:#7a5a2b}
.kp-sch-pubst .kp-a-link{font-size:10.5px;margin-left:6px}
.kp-sch-pubtag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:9px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;vertical-align:1px}
.kp-sch-pubtag.new{background:#efe3cc;color:#7a5a2b}
.kp-sch-pubtag.chg{background:#e9e3f0;color:#5a4a7a}
@media (min-width:1000px){.kp-st-unshared{left:232px}}
html.kp-modal-on .kp-st-unshared{display:none}
.kp-a-tabbody{padding-bottom:20px}
.kp-unshared .in{max-width:none}

/* V222 — a fee line (shop drawing, fabric sourcing) hangs off the piece it is for */
.kp-cs-row+.kp-cs-row.kp-cs-fee{border-top:0}
.kp-cs-row.kp-cs-fee{position:relative;padding-top:2px}
.kp-cs-row.kp-cs-fee .img{width:60px;height:60px;margin-left:36px;position:relative;overflow:visible;border-color:rgba(19,17,15,.14)}
.kp-cs-row.kp-cs-fee .img img{display:block}
.kp-cs-row.kp-cs-fee .img::before{content:"";position:absolute;left:-23px;top:-24px;width:22px;height:54px;border-left:1px solid rgba(19,17,15,.28);border-bottom:1px solid rgba(19,17,15,.28);border-bottom-left-radius:6px}
.kp-cs-row.kp-cs-fee .d p,.kp-cs-row.kp-cs-fee h3{font-size:inherit}
.kp-cs-fee .cd,.kp-cs-fee [class*="code"]{letter-spacing:.06em}
@media (max-width:760px){.kp-cs-row.kp-cs-fee .img{width:48px;height:48px;margin-left:24px}.kp-cs-row.kp-cs-fee .img::before{left:-17px;width:16px;height:44px;top:-20px}}
/* staff */
.kp-sch tr.kp-sch-feerow td{border-top:0}
.kp-sch tr.kp-sch-feerow .nmx{position:relative;padding-left:34px}
.kp-sch tr.kp-sch-feerow .nmx::before{content:"";position:absolute;left:12px;top:-14px;width:16px;height:34px;border-left:1px solid rgba(19,17,15,.28);border-bottom:1px solid rgba(19,17,15,.28);border-bottom-left-radius:5px}
.kp-sch tr.kp-sch-feerow .kp-sch-thumb{width:40px;height:40px}
@media (max-width:900px){.kp-cs-row.kp-cs-fee .img{width:44px!important;height:44px!important;margin-left:28px!important}.kp-cs-row.kp-cs-fee .img::before{left:-19px;width:18px;height:42px;top:-20px}}
@media (max-width:640px){.kp-cs-row.kp-cs-fee .img{width:34px!important;height:34px!important;margin-left:18px!important}.kp-cs-row.kp-cs-fee .img::before{left:-11px;width:10px;height:32px;top:-16px}}
.kp-unshared .in{animation:none}
.kp-unshared.enter .in{animation:kpUbIn .35s ease}

/* V223 — phone: the piece window floats as a card over the schedule, with smaller type */
@media (max-width:640px){
  .kp-no-modal{padding:10px;padding-top:calc(10px + env(safe-area-inset-top,0px));padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));align-items:stretch;background:rgba(19,17,15,.42)}
  .kp-no-mcard{height:auto!important;max-height:100%!important;width:100%;border-radius:12px;overflow:hidden;box-shadow:0 18px 50px rgba(19,17,15,.35)}
  .kp-no-mhead{padding:14px 16px 10px}
  .kp-no-mhead .kp-a-kicker{font-size:10px}
  .kp-no-mhead h2{font-size:19px!important}
  .kp-no-mhead .x{font-size:18px}
  .kp-no-mbody{padding:0 16px 16px}
  .kp-pw-s{padding:14px 0}
  .kp-pw-h{font-size:15px;margin-bottom:8px}
  .kp-no-modal .kp-pw-f>span,.kp-no-modal .kp-pw-f label>span{font-size:11px}
  .kp-no-modal .kp-pw-name>span{font-size:15px}
  .kp-pw-f input,.kp-pw-f textarea{padding:9px 11px;font-size:14px}
  .kp-no-modal .kp-pw-name input{font-size:16px!important;padding:10px 12px}
  .kp-pw-heroin{padding:14px 14px;gap:12px}
  .kp-pw-heroin .ic{width:36px;height:36px;font-size:19px}
  .kp-pw-heroin b{font-size:15px}
  .kp-pw-heroin em{font-size:12.5px;letter-spacing:0}
  .kp-pw-seg button{font-size:13px;padding:8px 4px}
  .kp-pw-step button{width:34px;font-size:16px}
  .kp-pw-qty .kp-pw-step input{width:44px;padding:8px 4px}
  .kp-pw-row{margin-top:12px;gap:12px}
  .kp-no-modal .kp-pw-code2 span{font-size:10px}
  .kp-no-modal .kp-pw-code2 input{font-size:11.5px;padding:4px 8px;width:96px}
  .kp-pw-sug .kp-no-sugin{font-size:12px}
  .kp-pw-dt{font-size:13px}
  .kp-pw-sd b{font-size:14px}.kp-pw-sd em{font-size:12.5px}
  .kp-pw-fee .v{font-size:15px}.kp-pw-fee p,.kp-pw-fabnote{font-size:13px}
  .kp-no-mfoot{display:flex!important;flex-wrap:nowrap!important;align-items:center;gap:10px!important;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px))!important}
  .kp-no-mfoot .kp-a-link{order:0!important;flex:none!important;flex-basis:auto!important;font-size:10px}
  .kp-no-mfoot .sp{display:block!important;flex:1}
  .kp-no-mfoot .kp-sch-ghost{flex:none!important;height:38px;padding:0 8px;font-size:10px;letter-spacing:.06em}
  .kp-no-mfoot .btn{flex:none!important;min-width:84px!important;height:38px;padding:0 14px;font-size:10.5px}
}
@media (max-width:640px){
  /* inputs stay 16px so iPhone doesn't zoom in when a field is tapped */
  .kp-no-modal .kp-pw-f input,.kp-no-modal .kp-pw-f textarea,.kp-no-modal .kp-pw-name input{font-size:16px!important}
  .kp-no-modal .kp-pw-qty .kp-pw-step input{font-size:16px!important}
  .kp-no-modal .kp-pw-code2 input{font-size:16px!important;padding:3px 8px;width:96px}
  .kp-no-modal .kp-pw-heroin b{letter-spacing:0!important;font-size:15.5px!important}
  .kp-no-modal .kp-no-mfoot .kp-a-link,.kp-no-modal .kp-no-mfoot .kp-sch-ghost,.kp-no-modal .kp-no-mfoot .btn{font-size:10px!important;letter-spacing:.1em!important}
  .kp-no-modal .kp-no-mfoot .kp-sch-ghost{padding:0 6px!important}
  .kp-no-modal .kp-pw-h{font-size:15px!important}
  .kp-no-modal .kp-pw-name>span{font-size:15px!important}
}

/* V226 — Surfaces + Textiles: what's available now, and what's coming */
.kp-st-index{padding-top:8px}
.kp-st-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.kp-st-card{display:flex;flex-direction:column;border:1px solid rgba(19,17,15,.13);background:#faf8f3;color:inherit;text-decoration:none;transition:border-color .3s,box-shadow .4s}
.kp-st-card .img{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#ebe6dc}
.kp-st-card .img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.kp-st-card .b{display:flex;flex-direction:column;gap:4px;padding:16px 18px 18px;flex:1}
.kp-st-card .k{font-family:Arial,Helvetica,sans-serif;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:#6b645b}
.kp-st-card b{font-weight:400;font-family:var(--serif);font-size:22px;line-height:1.2}
.kp-st-card em{font-style:normal;font-family:var(--serif);font-size:14px;line-height:1.45;color:#6d665e}
.kp-st-card .go{margin-top:auto;padding-top:12px;font-family:Arial,Helvetica,sans-serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.kp-st-card .go i{font-style:normal;display:inline-block;transition:transform .3s}
.kp-st-card.live .k{color:#4d6b45}
.kp-st-card.live:hover{border-color:var(--ink);box-shadow:0 14px 34px rgba(19,17,15,.08)}
.kp-st-card.live:hover .img img{transform:scale(1.04)}
.kp-st-card.live:hover .go i{transform:translateX(4px)}
.kp-st-card.soon{cursor:default}
.kp-st-card.soon .img img{filter:grayscale(.55);opacity:.8}
.kp-st-card.soon b{color:#5c554e}
.kp-st-split{margin:32px var(--pad,24px) 14px;padding-top:30px;border-top:1px solid rgba(19,17,15,.14)}
.kp-st-split .kp-a-kicker{margin:0 0 6px}
.kp-st-split h2{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(26px,3vw,36px)}
@media (max-width:900px){.kp-st-grid{grid-template-columns:1fr 1fr;gap:12px}.kp-st-card b{font-size:18px}.kp-st-card .b{padding:12px 13px 14px}.kp-st-card em{font-size:13px}}
/* Surfaces + Textiles card: what's live in ink, what's coming in a quieter tone, no pills */
.kp-cc-st ul li.soon{color:#6b645b}
.kp-cc-st ul li a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(19,17,15,.3)}
.kp-cc-st ul li a:hover{border-color:var(--ink)}
.kp-cc-new{font-style:normal;margin-left:7px;font-family:Arial,Helvetica,sans-serif;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:#4d6b45;vertical-align:1px}
.kp-cc-note{margin:-8px 0 16px;font-family:Arial,Helvetica,sans-serif;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:#6b645b}
/* coming-soon cards on Surfaces + Textiles: the same veil and label as the home page */
.kp-st-card.soon .img img{filter:none;opacity:1}
.kp-st-card.soon .img .kp-soon{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:0;background:rgba(243,239,231,.3);-webkit-backdrop-filter:blur(2.5px) saturate(.92);backdrop-filter:blur(2.5px) saturate(.92);font-size:10px;letter-spacing:.28em}
html:lang(ar) .kp-st-card.soon .img .kp-soon{font-size:15px!important}
.kp-st-card.soon .img .kp-soon{color:var(--ink,#13110f);pointer-events:none}

/* V229 Textiles: swatch grid in the manner of a textile house */
.kp-tx-bar{display:flex;align-items:center;justify-content:space-between;margin:38px 0 22px}
.kp-tx-filter{display:inline-flex;align-items:center;gap:10px;background:none;border:0;padding:6px 0;font:inherit;font-family:var(--serif);font-size:18px;color:var(--ink,#13110f);cursor:pointer}
.kp-tx-filter svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.2}
.kp-tx-filter .kp-tx-on{font:600 9.5px/1 Arial,Helvetica,sans-serif;letter-spacing:.08em;background:#13110f;color:#fff;border-radius:9px;padding:4px 6px}
.kp-tx-cols{display:flex;gap:12px}
.kp-tx-cols button{background:none;border:0;padding:2px;cursor:pointer;color:#bdb6a8;transition:color .2s}
.kp-tx-cols button[aria-pressed="true"],.kp-tx-cols button:hover{color:#13110f}
.kp-tx-cols svg{width:24px;height:24px;display:block;fill:currentColor}
.kp-tx-panel{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 0 26px;animation:kpTxDown .35s cubic-bezier(.2,.7,.2,1)}
@keyframes kpTxDown{from{opacity:0;transform:translateY(-8px)}}
.kp-tx-pin{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:22px 34px;padding:24px 0}
.kp-tx-g{border:0;margin:0;padding:0;min-width:0}
.kp-tx-g legend{font:9.5px/1 Arial,Helvetica,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;padding:0}
.kp-tx-g div{display:flex;flex-wrap:wrap;gap:6px}
.kp-tx-g button{font-family:var(--serif);font-size:14px;background:transparent;border:1px solid #d8d2c6;border-radius:999px;padding:6px 13px;cursor:pointer;color:#3a352f;transition:background .2s,border-color .2s,color .2s}
.kp-tx-g button:hover{border-color:#13110f}
.kp-tx-g button[aria-pressed="true"]{background:#13110f;border-color:#13110f;color:#fff}
.kp-tx-pa{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;gap:12px}
.kp-tx-reset{background:none;border:0;padding:0;font:inherit;font-family:var(--serif);font-size:14px;text-decoration:underline;text-underline-offset:3px;color:var(--muted);cursor:pointer}
.kp-tx-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 56px;margin-top:6px}
.kp-tx-grid[data-cols="3"]{grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 40px}
.kp-tx{text-align:center;animation:kpTxIn .5s both cubic-bezier(.2,.7,.2,1)}
.kp-tx[hidden]{display:none}
@keyframes kpTxIn{from{opacity:0;transform:translateY(10px)}}
.kp-tx-tile{position:relative;display:block;width:100%;aspect-ratio:1;padding:0;border:0;background:transparent;cursor:pointer}
.kp-tx-tile .cut{position:absolute;inset:0;display:block;transition:opacity .35s ease}
.kp-tx-tile .cut img{width:100%;height:100%;object-fit:contain;display:block}
.kp-tx-tile .scale{position:absolute;inset:13.5% 6.5% 10% 9.5%;background-repeat:no-repeat;background-position:center;background-size:cover;opacity:0;transition:opacity .28s ease}
@media (hover:hover){
  .kp-tx:hover .kp-tx-tile .cut,.kp-tx-tile:focus-visible .cut{opacity:0}
  .kp-tx:hover .kp-tx-tile .scale,.kp-tx-tile:focus-visible .scale{opacity:1}
  .kp-tx:hover .kp-tx-eye,.kp-tx:focus-within .kp-tx-eye{opacity:1}
  .kp-tx:hover .tag,.kp-tx:focus-within .tag{opacity:1;transform:none}
}
.kp-tx-cap{position:relative;padding:0 34px}
.kp-tx h3{margin:4px 0 8px;font-family:var(--serif);font-size:18px;font-weight:400;line-height:1.15;letter-spacing:.01em}
.kp-tx .no{margin:0;font:600 9.5px/1 Arial,Helvetica,sans-serif;letter-spacing:.2em;color:#5d564d}
.kp-tx-eye{position:absolute;right:4px;top:-2px;width:30px;height:30px;padding:0;border:0;background:none;cursor:pointer;opacity:0;transition:opacity .25s;display:grid;place-items:center}
.kp-tx-eye svg{width:20px;height:20px;fill:none;stroke:#13110f;stroke-width:1.3}
.kp-tx .tag{margin:11px 0 0;min-height:1.3em;font-family:var(--serif);font-size:13.5px;color:#8a5a45;opacity:0;transform:translateY(-3px);transition:opacity .3s ease,transform .3s ease}
.kp-tx-grid[data-cols="3"] .kp-tx h3{font-size:22px}
.kp-tx-empty{text-align:center;padding:40px 0;font-family:var(--serif);color:var(--muted)}
.kp-tx-empty .kp-tx-reset{color:#13110f;margin-left:6px}
/* quick view */
.kp-txq{position:fixed;inset:0;z-index:700;display:grid;place-items:center;padding:24px;background:rgba(19,17,15,.42);animation:kpTxFade .25s ease}
.kp-txq[hidden]{display:none}
@keyframes kpTxFade{from{opacity:0}}
.kp-txq-card{position:relative;width:min(1040px,100%);max-height:calc(100svh - 48px);overflow:auto;background:#f8f6f1;display:grid;grid-template-columns:1.15fr 1fr;animation:kpTxIn .35s cubic-bezier(.2,.7,.2,1)}
.kp-txq-x{position:absolute;top:10px;right:14px;z-index:2;background:none;border:0;font-size:30px;line-height:1;cursor:pointer;color:#13110f}
.kp-txq-img{position:relative;aspect-ratio:1;background:#efece5;overflow:hidden}
.kp-txq-img .cut,.kp-txq-img .scale{position:absolute;inset:0;transition:opacity .4s ease}
.kp-txq-img .cut{background-size:contain;background-position:center;background-repeat:no-repeat}
.kp-txq-img .scale{background-repeat:no-repeat;background-size:cover;background-position:center;opacity:0}
.kp-txq-img[data-view="scale"] .cut{opacity:0}.kp-txq-img[data-view="scale"] .scale{opacity:1}
.kp-txq-view{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;background:rgba(248,246,241,.94);border-radius:999px;padding:3px}
.kp-txq-view button{background:none;border:0;border-radius:999px;padding:7px 15px;font-family:var(--serif);font-size:13px;cursor:pointer;color:#3a352f}
.kp-txq-view button[aria-pressed="true"]{background:#13110f;color:#fff}
.kp-txq-b{padding:46px 40px 30px;display:flex;flex-direction:column}
.kp-txq-no{margin:0 0 14px;font:700 10.5px/1 Arial,Helvetica,sans-serif;letter-spacing:.14em}
.kp-txq-b h3{margin:0 0 6px;font-family:var(--serif);font-size:32px;font-weight:400}
.kp-txq-tag{margin:0 0 14px;font-family:var(--serif);font-style:italic;font-size:16px;color:#9a4b33}
.kp-txq-k{margin:0 0 18px;font:9.5px/1 Arial,Helvetica,sans-serif;letter-spacing:.16em;color:var(--muted)}
.kp-txq-t{margin:0 0 20px;font-family:var(--serif);font-size:16px}
.kp-txq-b dl{margin:0 0 26px;border-top:1px solid var(--line)}
.kp-txq-b dl div{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px;letter-spacing:.01em}
.kp-txq-b dt{color:var(--muted)}.kp-txq-b dd{margin:0;text-align:right}
.kp-txq-a{display:flex;flex-wrap:wrap;align-items:center;gap:18px 24px}
.kp-txq-nav{margin-top:auto;padding-top:28px;display:flex;justify-content:space-between}
.kp-txq-nav button{background:none;border:0;padding:0;font-family:var(--serif);font-size:14px;color:var(--muted);cursor:pointer}
.kp-txq-nav button:hover{color:#13110f}
@media (max-width:900px){
  .kp-tx-grid,.kp-tx-grid[data-cols="3"]{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 12px}
  .kp-tx-cols{display:none}
  .kp-tx h3,.kp-tx-grid[data-cols="3"] .kp-tx h3{font-size:16px;margin-top:8px}
  .kp-tx-cap{padding:0}.kp-tx-eye{display:none}.kp-tx .tag{display:none}
  .kp-tx .no{font-size:9.5px}
  .kp-tx-pin{grid-template-columns:1fr;gap:20px}
  .kp-tx-pa{flex-direction:row;justify-content:space-between;align-items:center}
  .kp-txq{padding:10px;align-items:end}
  .kp-txq-card{grid-template-columns:1fr;max-height:calc(100svh - 20px)}
  .kp-txq-img{aspect-ratio:4/3}
  .kp-txq-b{padding:24px 20px 20px}
  .kp-txq-b h3{font-size:26px}
}

/* V237 Surfaces + Textiles: sticky section bar, clear section heads, one row per surface */
.kp-st-hero{padding-bottom:28px}
.kp-st-hero .lede p{max-width:560px}
.kp-sx-nav{position:sticky;top:var(--kp-hdr,57px);z-index:40;background:var(--paper,#f3efe7);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.kp-sx-nav-in{display:flex;gap:34px;padding:0 var(--pad,24px);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.kp-sx-nav-in::-webkit-scrollbar{display:none}
.kp-sx-nav a{position:relative;flex:none;display:inline-flex;align-items:center;gap:8px;padding:17px 0 16px;font:10px/1 Arial,Helvetica,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#6b645b;text-decoration:none;transition:color .25s}
.kp-sx-nav a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--ink,#13110f);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.kp-sx-nav a:hover{color:var(--ink,#13110f)}
.kp-sx-nav a.on{color:var(--ink,#13110f)}
.kp-sx-nav a.on::after{transform:scaleX(1)}
.kp-sx-nav a small{font:9px/1 Arial,Helvetica,sans-serif;letter-spacing:.12em;padding:3px 6px;border:1px solid #cfc8bc;border-radius:999px;color:#6b645b}
.kp-sx-nav a:last-child{margin-left:auto;color:var(--ink,#13110f)}
.kp-st-index{padding-top:34px!important;padding-bottom:30px!important}
#textiles,#surfaces,#stone,#tiles,#timber,#plans{scroll-margin-top:calc(var(--kp-hdr,57px) + 64px)}
.kp-st-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:10px 64px;align-items:end;padding-top:clamp(40px,5vw,72px);border-top:1px solid var(--line);margin-bottom:8px}
.kp-st-head .kp-st-k{grid-column:1;margin:0;font:10px/1 Arial,Helvetica,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#6b645b;display:flex;align-items:center;gap:9px}
.kp-st-head .dot{width:6px;height:6px;border-radius:50%;background:#b9b1a5}
.kp-st-head .dot.live{background:#4d6b45}
.kp-st-head h2{grid-column:1;margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(34px,3.6vw,52px);line-height:1.05}
.kp-st-head .kp-st-p{grid-column:2;grid-row:1 / span 2;align-self:end;margin:0;font-family:var(--serif);font-size:16px;line-height:1.6;color:#4f4942;max-width:560px}
.kp-st-head .kp-st-a{grid-column:2;display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:10px}
.kp-st-tx .kp-st-head{border-top:0;padding-top:clamp(20px,3vw,40px)}
.kp-st-sf{padding-bottom:20px!important}
.kp-st-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(28px,5vw,80px);align-items:center;margin-top:clamp(44px,5vw,80px)}
.kp-st-row.flip .kp-st-ri{order:2}
.kp-st-ri{position:relative;margin:0;aspect-ratio:4/3;overflow:hidden;background:#ebe6dc}
.kp-st-ri img{width:100%;height:100%;object-fit:cover;display:block}
.kp-st-chip{position:absolute;left:16px;top:16px;font:9.5px/1 Arial,Helvetica,sans-serif;letter-spacing:.18em;text-transform:uppercase;background:rgba(243,239,231,.92);color:#13110f;padding:8px 11px;border-radius:999px}
.kp-st-rt{max-width:460px}
.kp-st-n{margin:0 0 14px;font:10px/1 Arial,Helvetica,sans-serif;letter-spacing:.18em;color:#6b645b}
.kp-st-rt h3{margin:0 0 14px;font-family:var(--serif);font-weight:400;font-size:clamp(28px,2.6vw,38px);line-height:1.1}
.kp-st-rt>p{margin:0 0 24px;font-family:var(--serif);font-size:16px;line-height:1.6;color:#4f4942}
.kp-st-rt ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.kp-st-rt li{padding:12px 0;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:14.5px;color:#2b2723}
.kp-st-rt li:nth-child(odd){padding-right:16px}
.kp-st-card.soon{cursor:pointer}
.kp-st-card.soon:hover{border-color:rgba(19,17,15,.4)}
.kp-st-card.soon .go{color:#6b645b}
.kp-st-card.soon:hover .go i{transform:translateX(4px)}
@media (max-width:900px){
  .kp-sx-nav-in{gap:24px}
  .kp-sx-nav a:last-child{margin-left:0}
  .kp-st-head{grid-template-columns:1fr}
  .kp-st-head .kp-st-p,.kp-st-head .kp-st-a{grid-column:1;grid-row:auto}
  .kp-st-head .kp-st-p{margin-top:10px;font-size:15px}
  .kp-st-row,.kp-st-row.flip{grid-template-columns:1fr;gap:22px}
  .kp-st-row.flip .kp-st-ri{order:0}
  .kp-st-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
  .kp-st-card .b{padding:12px 12px 14px}
  .kp-st-card b{font-size:18px}
  .kp-st-card em{font-size:12.5px}
}

/* V237 fabric picker: cut swatches in the grid, a detail view with swatch / at scale and + Add to piece */
.kp-fab-card .sw.cut{background:#efebe3}
.kp-fab-card .sw.cut img{object-fit:contain;transform:scale(1.08)}
.kp-fab-card .sw{position:relative}
.kp-fab-on{position:absolute;left:8px;top:8px;font:normal 8.5px/1 Arial,Helvetica,sans-serif;letter-spacing:.14em;text-transform:uppercase;background:#13110f;color:#fff;padding:5px 7px;border-radius:999px}
.kp-fab-det{animation:kpFabIn .35s cubic-bezier(.2,.7,.2,1)}
@keyframes kpFabIn{from{opacity:0;transform:translateY(8px)}}
.kp-fab-back{all:unset;cursor:pointer;display:inline-block;margin:4px 0 16px;font:10px/1 Arial,Helvetica,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#6d665e}
.kp-fab-back:hover{color:#13110f}
.kp-fab-dg{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:30px;align-items:start}
.kp-fab-art{position:relative;aspect-ratio:1;background:#efebe3;overflow:hidden}
.kp-fab-art .cut,.kp-fab-art .scale{position:absolute;inset:0;background-repeat:no-repeat;background-position:center;transition:opacity .9s ease,transform 1.6s cubic-bezier(.2,.7,.2,1)}
.kp-fab-art .cut{background-size:contain;transform:scale(1.02)}
.kp-fab-art .scale{inset:9%;background-size:cover;opacity:0;transform:scale(1.18);box-shadow:0 14px 30px rgba(40,30,20,.12)}
.kp-fab-art[data-show="scale"] .cut{opacity:0;transform:scale(.94)}
.kp-fab-art[data-show="scale"] .scale{opacity:1;transform:none}
.kp-fab-sv{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:flex;background:rgba(248,246,241,.94);border-radius:999px;padding:3px}
.kp-fab-sv button{all:unset;cursor:pointer;padding:7px 14px;border-radius:999px;font-family:var(--serif);font-size:13px;color:#3a352f}
.kp-fab-sv button[aria-pressed="true"]{background:#13110f;color:#fff}
.kp-fab-no{margin:6px 0 10px;font:9.5px/1 Arial,Helvetica,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#6b645b}
.kp-fab-db h3{margin:0 0 6px;font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1}
.kp-fab-tag{margin:0 0 16px;font-family:var(--serif);font-style:italic;font-size:15px;color:#8a5a45}
.kp-fab-db dl{margin:0 0 20px;border-top:1px solid var(--line)}
.kp-fab-db dl div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.kp-fab-db dt{color:var(--muted)}.kp-fab-db dd{margin:0;text-align:right}
.kp-fab-da{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.kp-fab-add{min-width:180px;justify-content:center}
.kp-fab-note{margin:14px 0 0;font-size:12.5px;color:var(--muted)}
.kp-fab-card-wrap.is-det .kp-modal-lede{display:none}
@media (max-width:760px){
  .kp-fab-dg{grid-template-columns:1fr;gap:18px}
  .kp-fab-art{aspect-ratio:4/3}
  .kp-fab-db h3{font-size:25px}
  .kp-fab-add{flex:1}
}
.kp-fab-card-wrap.is-det .kp-fab-grid,.kp-fab-card-wrap.is-det .kp-fab-tools,.kp-fab-det[hidden]{display:none!important}
.kp-fab-modal .kp-fab-card-wrap.is-det{width:min(880px,100%)}
.kp-fab-sv button{white-space:nowrap}
.kp-fab-add{background:#13110f!important;color:#fff!important;border-color:#13110f!important}
.kp-fab-add:hover{background:#2b2723!important}
.kp-pw-aic.on:hover{background:#3a352f;border-color:#3a352f}
.kp-pw-aic.on:hover span::after{content:" ✕"}
.kp-pw-ai .acts .btn.on{background:transparent;color:var(--ink);border-color:var(--ink)}

/* V238 fabric prices for clients */
.kp-fab-card .pr{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding-top:7px;border-top:1px solid rgba(19,17,15,.08);font-family:var(--serif);font-size:13.5px;color:var(--ink)}
.kp-fab-band{font-style:normal;font:10px/1 Arial,Helvetica,sans-serif;letter-spacing:.08em;color:#cdc6ba}
.kp-fab-band b{font-weight:600;color:#5d564d}
.kp-fab-bands{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0 14px}
.kp-fab-bands>span{font:9.5px/1 Arial,Helvetica,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#6b645b;margin-right:6px}
.kp-fab-bands button{all:unset;cursor:pointer;padding:6px 11px;border:1px solid #d8d2c6;border-radius:999px;font-family:var(--serif);font-size:13px;color:#3a352f}
.kp-fab-bands button small{font-size:11.5px;color:#6b645b}
.kp-fab-bands button.on{background:#13110f;border-color:#13110f;color:#fff}
.kp-fab-bands button.on small{color:rgba(255,255,255,.7)}
.kp-fab-bands em{font-style:normal;font-size:11.5px;color:#6b645b;margin-left:4px}
.kp-fab-price{display:flex;align-items:baseline;gap:8px;margin:0 0 16px;font-family:var(--serif)}
.kp-fab-price b{font-weight:400;font-size:22px;color:var(--ink)}
.kp-fab-price span{font-size:12.5px;color:var(--muted)}
.kp-fab-price .kp-fab-band{margin-left:auto;font-size:12px}
.kp-pw-fabsel em.pr{display:flex;align-items:center;gap:10px;font-style:normal;color:var(--ink)}
.kp-fab-card-wrap.is-det .kp-fab-bands{display:none!important}

/* V240 fabric picker: one quiet row of search, colour, use, price and sort */
.kp-fab-row2{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 22px;margin-top:14px}
.kp-fab-row2 input[type=search]{flex:1 1 220px;min-width:0}
.kp-fab-sel{position:relative;display:inline-flex;flex:none}
.kp-fab-sel select{appearance:none;-webkit-appearance:none;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%237a736b' stroke-width='1.2'/%3E%3C/svg%3E") right 2px center/9px no-repeat;border:0;border-bottom:1px solid rgba(19,17,15,.22);border-radius:0;padding:9px 20px 9px 0;font-family:var(--serif);font-size:15px;color:#6d665e;cursor:pointer}
.kp-fab-sel select:hover,.kp-fab-sel select:focus{color:var(--ink);border-bottom-color:var(--ink);outline:0}
.kp-fab-sel select.on{color:var(--ink);border-bottom-color:var(--ink)}
.kp-fab-count{margin:14px 0 12px;font:10px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#6d665e}
.kp-fab-count span{color:#9a9289}
.kp-fab-clear{all:unset;cursor:pointer;margin-left:10px;text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
.kp-fab-card-wrap.is-det .kp-fab-count{display:none}
@media (max-width:760px){
  .kp-fab-row2{gap:6px 16px}
  .kp-fab-row2 input[type=search]{flex-basis:100%}
  .kp-fab-sel select{font-size:16px}
}
.kp-fab-card-wrap{position:relative}
.kp-fab-x{all:unset;cursor:pointer;position:absolute;top:14px;right:16px;width:40px;height:40px;display:grid;place-items:center;font:300 30px/1 Arial,Helvetica,sans-serif;color:#3a352f;border-radius:50%;transition:background .2s,color .2s;z-index:2}
.kp-fab-x:hover{background:rgba(19,17,15,.06);color:#13110f}
.kp-fab-x:focus-visible{outline:1px solid #13110f;outline-offset:2px}
.kp-fab-modal .kp-fab-card-wrap{width:min(900px,100%)}
.kp-fab-modal .kp-fab-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}

/* V241 fabric picker: custom filter menus, search line underneath */
.kp-fab-row2{display:flex!important;flex-wrap:wrap!important;align-items:center;gap:6px 30px!important;margin-top:20px;padding-bottom:12px;border-bottom:1px solid rgba(19,17,15,.14)}
.kp-fab-dd{position:relative}
.kp-fab-dd.sort{margin-left:auto}
.kp-fab-ddb{all:unset;cursor:pointer;display:inline-flex;align-items:baseline;gap:8px;padding:6px 0;white-space:nowrap}
.kp-fab-ddb .l{font:10px/1 Arial,Helvetica,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#6b645b}
.kp-fab-ddb .v{font-family:var(--serif);font-size:15px;color:#9a9289;transition:color .2s}
.kp-fab-dd.on .kp-fab-ddb .v,.kp-fab-dd.sort .kp-fab-ddb .v{color:var(--ink)}
.kp-fab-ddb svg{width:9px;height:6px;fill:none;stroke:#6b645b;stroke-width:1.2;align-self:center;transition:transform .25s}
.kp-fab-dd.open .kp-fab-ddb svg{transform:rotate(180deg)}
.kp-fab-ddb:hover .v{color:var(--ink)}
.kp-fab-ddb:focus-visible{outline:1px solid var(--ink);outline-offset:4px}
.kp-fab-ddm{position:absolute;left:-14px;top:calc(100% + 8px);z-index:20;min-width:200px;padding:6px;background:#fbfaf6;border:1px solid rgba(19,17,15,.12);box-shadow:0 18px 40px rgba(19,17,15,.12);display:flex;flex-direction:column;animation:kpDd .18s ease}
.kp-fab-dd.sort .kp-fab-ddm{left:auto;right:-6px}
.kp-fab-ddm[hidden]{display:none}
@keyframes kpDd{from{opacity:0;transform:translateY(-4px)}}
.kp-fab-ddm button{all:unset;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:9px 10px;font-family:var(--serif);font-size:14.5px;color:#3a352f;white-space:nowrap}
.kp-fab-ddm button:hover,.kp-fab-ddm button:focus{background:rgba(19,17,15,.05);color:var(--ink);outline:0}
.kp-fab-ddm button[aria-selected="true"]{color:var(--ink)}
.kp-fab-ddm button[aria-selected="true"]::after{content:"";width:9px;height:5px;border-left:1.3px solid currentColor;border-bottom:1.3px solid currentColor;transform:rotate(-45deg) translateY(-2px)}
.kp-fab-search{display:flex;align-items:center;gap:12px;margin-top:4px;padding:12px 0;border-bottom:1px solid rgba(19,17,15,.14)}
.kp-fab-search svg{width:16px;height:16px;flex:none;fill:none;stroke:#6b645b;stroke-width:1.3}
.kp-fab-search input{all:unset;flex:1;min-width:0;font-family:var(--serif);font-size:15px;color:var(--ink)}
.kp-fab-search input::placeholder{color:#6b645b}
.kp-fab-search:focus-within{border-bottom-color:var(--ink)}
.kp-fab-tools .kp-fab-search input{min-width:0;border:0;padding:0}
.kp-fab-count{margin:16px 0 12px}
@media (max-width:760px){
  .kp-fab-row2{gap:2px 20px!important}
  .kp-fab-dd.sort{margin-left:0}
  .kp-fab-ddb .v{font-size:15px}
  .kp-fab-search input{font-size:16px}
  .kp-fab-ddm{left:0}
  .kp-fab-dd.sort .kp-fab-ddm{left:0;right:auto}
}
.kp-fab-modal .kp-fab-tools{display:block}
.kp-fab-card-wrap.is-det .kp-fab-dg{margin-top:18px}
.kp-fab-search input,.kp-fab-search input::placeholder{text-transform:none!important;letter-spacing:0!important;font-family:var(--serif)!important;font-size:15.5px!important}
.kp-fab-ddm button{justify-content:flex-start}
.kp-fab-ddm button span{flex:1}
.kp-fab-ddm .dot{width:12px;height:12px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px rgba(19,17,15,.14)}
.kp-fab-dd[data-dd="col"] .kp-fab-ddm{min-width:220px}
/* V243 the fabric picker sits inside the piece window: the piece stays visible around it, tap outside to go back */
.kp-modal.kp-fab-modal{padding:64px 40px}
.kp-modal.kp-fab-modal.in{background:rgba(19,17,15,.14)}
.kp-fab-modal .kp-fab-card-wrap,.kp-fab-modal .kp-fab-card-wrap.is-det{width:min(800px,100%)!important;max-height:calc(100svh - 128px);box-shadow:0 30px 70px -20px rgba(19,17,15,.35)}
.kp-fab-modal .kp-fab-card-wrap.is-det .kp-fab-dg{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px}
.kp-fab-modal .kp-fab-db h3{font-size:27px}
@media (max-width:760px){
  .kp-modal.kp-fab-modal{padding:44px 10px 10px;align-items:end}
  .kp-fab-modal .kp-fab-card-wrap,.kp-fab-modal .kp-fab-card-wrap.is-det{max-height:calc(100svh - 54px);border-radius:10px;padding:22px 16px 16px}
  .kp-fab-modal .kp-fab-card-wrap.is-det .kp-fab-dg{grid-template-columns:1fr}
  .kp-fab-x{top:8px;right:8px}
}
.kp-modal.kp-fab-modal.kp-fab-in{align-items:stretch;justify-items:stretch}
.kp-fab-modal.kp-fab-in .kp-fab-card-wrap,.kp-fab-modal.kp-fab-in .kp-fab-card-wrap.is-det{width:100%!important;max-height:none;height:100%;padding:26px 24px 20px}
.kp-fab-modal.kp-fab-in .kp-fab-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));max-height:none}
.kp-fab-modal.kp-fab-in .kp-fab-card-wrap.is-det .kp-fab-dg{gap:22px}
.kp-fab-modal.kp-fab-in .kp-fab-row2{gap:6px 22px!important}
@media (max-width:760px){ .kp-fab-modal.kp-fab-in .kp-fab-card-wrap{padding:22px 16px 16px} }

/* V243 Materials + finishes: fabric first as its own block, then an even grid of the other details */
.kp-pw-mats .kp-pw-mfab{padding-bottom:22px;margin-bottom:20px;border-bottom:1px solid rgba(19,17,15,.1)}
.kp-pw-mats .kp-pw-mfab>.kp-pw-fab>span{font:10px/1.2 Arial,Helvetica,sans-serif!important;letter-spacing:.16em!important;text-transform:uppercase;color:#6b645b!important;margin-bottom:4px!important}
.kp-pw-mats .kp-pw-fabopts{display:inline-flex!important;flex-wrap:wrap;gap:0!important;padding:3px;border:1px solid rgba(19,17,15,.16);border-radius:999px;border-bottom:1px solid rgba(19,17,15,.16)!important;margin:2px 0 14px;align-self:flex-start;background:#fbfaf6}
.kp-pw-mats .kp-pw-fabopts button{all:unset;cursor:pointer;padding:7px 15px;border-radius:999px;font-family:var(--serif)!important;font-size:13.5px!important;letter-spacing:0!important;text-transform:none!important;color:#5c554e;transition:background .2s,color .2s;white-space:nowrap}
.kp-pw-mats .kp-pw-fabopts button::after{display:none!important}
.kp-pw-mats .kp-pw-fabopts button:hover{color:var(--ink)}
.kp-pw-mats .kp-pw-fabopts button.on{background:var(--ink);color:#fff}
.kp-pw-mats .kp-pw-mgrid{gap:16px 18px}
.kp-pw-mats .kp-pw-mgrid.odd>.kp-pw-f:last-child{grid-column:1 / -1}
.kp-no-modal .kp-pw-mats .kp-pw-mgrid .kp-pw-f>span,.kp-no-modal .kp-pw-mats .kp-pw-mgrid .kp-pw-f label>span{font:10px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#6b645b;margin-bottom:7px}
.kp-pw-mats .kp-pw-mgrid .kp-pw-f input{padding:10px 12px;border-color:rgba(19,17,15,.12);background:#fffefb}
@media (max-width:640px){
  .kp-pw-mats .kp-pw-fabopts{display:grid!important;grid-template-columns:1fr 1fr;border-radius:14px;width:100%;box-sizing:border-box}
  .kp-pw-mats .kp-pw-fabopts button{text-align:center;padding:8px 6px;border-radius:11px;font-size:13px!important}
  .kp-pw-mats .kp-pw-mgrid{grid-template-columns:1fr 1fr}
}
.kp-pw-mats .kp-pw-fabopts{margin-bottom:12px!important}
.kp-pw-mats .kp-pw-fabbody{margin-top:0!important}
@media (max-width:640px){ .kp-pw-mats .kp-pw-mgrid{grid-template-columns:1fr!important} .kp-pw-mats .kp-pw-mgrid.odd>.kp-pw-f:last-child{grid-column:auto} }
.kp-no-modal .kp-pw-mats .kp-pw-fabbody .kp-pw-f>span,.kp-no-modal .kp-pw-mats .kp-pw-fabbody .kp-pw-f label>span{font:10px/1.2 Arial,Helvetica,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#6b645b;margin-bottom:7px}
.kp-pw-mats .kp-pw-fabbody .kp-pw-req{font-family:var(--serif);font-style:normal;font-size:11.5px;letter-spacing:0;text-transform:none;margin-left:6px}
.kp-pw-mats .kp-pw-fabbody .kp-pw-f input{padding:10px 12px;border-color:rgba(19,17,15,.12);background:#fffefb}
.kp-pw-mats .kp-pw-fabnote{font-size:14px;color:#6d665e;margin:0 0 14px}

/* V244 a fabric's details open as a card over the fabric grid; the grid shows around it, tap it to go back */
.kp-fab-modal .kp-fab-det{position:fixed;z-index:3;box-sizing:border-box;display:grid;place-items:center;background:rgba(243,239,231,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .2s ease;animation:none;cursor:pointer}
.kp-fab-modal .kp-fab-det.in{opacity:1}
.kp-fab-modal .kp-fab-det[hidden]{display:none!important}
.kp-fab-dpanel{position:relative;cursor:auto;width:100%;max-width:820px;max-height:100%;overflow:auto;box-sizing:border-box;padding:34px 30px 26px;background:var(--paper,#f3efe7);border:1px solid rgba(19,17,15,.14);box-shadow:0 30px 70px -18px rgba(19,17,15,.4);transform:translateY(10px) scale(.985);transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.kp-fab-det.in .kp-fab-dpanel{transform:none}
.kp-fab-dx{all:unset;cursor:pointer;position:absolute;top:10px;right:12px;width:38px;height:38px;display:grid;place-items:center;font:300 28px/1 Arial,Helvetica,sans-serif;color:#3a352f;border-radius:50%;z-index:2}
.kp-fab-dx:hover{background:rgba(19,17,15,.06);color:#13110f}
.kp-fab-dpanel .kp-fab-dg{margin-top:0!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
@media (max-width:760px){
  .kp-fab-dpanel{padding:40px 16px 16px}
  .kp-fab-dpanel .kp-fab-dg{grid-template-columns:1fr!important}
}
.kp-fab-modal .kp-fab-det{background:rgba(19,17,15,.16)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
/* V245 every close cross matches the piece window's: 22px (18px on phones), regular weight, muted */
.kp-fab-x,.kp-fab-dx,.kp-txq-x{font:400 22px/1 Arial,Helvetica,sans-serif!important;color:var(--muted)!important;width:34px!important;height:34px!important}
.kp-fab-x:hover,.kp-fab-dx:hover,.kp-txq-x:hover{color:var(--ink)!important}
.kp-txq-x{display:grid;place-items:center;border-radius:50%}
.kp-fv-x{font:400 22px/34px Arial,Helvetica,sans-serif!important}
@media (max-width:760px){ .kp-fab-x,.kp-fab-dx,.kp-txq-x{font-size:18px!important} .kp-fv-x{font-size:18px!important} }
/* V247 Safari keeps the space of a closed <details> whose list uses display:contents; hide it outright when closed */
/* V248 schedule Details is a button, not <details>: identical in every browser */
.kp-cs-more>.kp-cs-mt{all:unset;cursor:pointer;display:inline-block;font-family:var(--sans);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid currentColor;padding-bottom:1px}
.kp-cs-more>.kp-cs-mt:focus-visible{outline:1px solid var(--ink);outline-offset:3px}
.kp-cs-more.open>.kp-cs-mt{opacity:.55;margin-bottom:8px}
.kp-cs-more:not(.open)>.kp-cs-mb{display:none}
@media (max-width:760px){
  .kp-cs-row div.kp-cs-more.kp-m-only{display:block}
  .kp-cs-row .kp-cs-more .kp-cs-mt{font-size:8.5px!important}
  .kp-cs-row .kp-cs-more.open{padding-bottom:4px}
}
html:lang(ar) .kp-cs-more .kp-cs-mt{letter-spacing:0}
/* V250 region: header switch, first-visit card, picker */
.kp-rg-btn{background:none;border:0;cursor:pointer;font:inherit;white-space:nowrap}
.kp-rg-hint{position:fixed;left:20px;bottom:20px;z-index:900;max-width:360px;padding:16px 18px 14px;background:#fbfaf6;border:1px solid rgba(19,17,15,.14);box-shadow:0 18px 40px -12px rgba(19,17,15,.3);opacity:0;transform:translateY(10px);transition:opacity .35s ease,transform .35s ease;pointer-events:none}
.kp-rg-hint.in{opacity:1;transform:none;pointer-events:auto}
.kp-rg-hint p{margin:0 0 12px;font-family:var(--serif);font-size:15px;line-height:1.45;color:#3a352f}
.kp-rg-hint p b{font-weight:400;color:var(--ink)}
.kp-rg-hint div{display:flex;gap:18px;align-items:center}
.kp-rg-hint button{all:unset;cursor:pointer;font:10px/1 Arial,Helvetica,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);padding:4px 0;border-bottom:1px solid currentColor}
.kp-rg-hint .kp-rg-ok{background:var(--ink);color:#fff;border:0;padding:10px 14px}
.kp-rg-modal{position:fixed;inset:0;z-index:9800;display:grid;place-items:center;padding:20px;background:rgba(19,17,15,.3)}
.kp-rg-card{position:relative;width:min(460px,100%);max-height:calc(100svh - 40px);overflow:auto;box-sizing:border-box;padding:30px 28px 22px;background:var(--paper,#f3efe7);border:1px solid rgba(19,17,15,.14);box-shadow:0 30px 70px -18px rgba(19,17,15,.4)}
.kp-rg-x{all:unset;cursor:pointer;position:absolute;top:12px;right:14px;width:34px;height:34px;display:grid;place-items:center;font:400 22px/1 Arial,Helvetica,sans-serif;color:var(--muted)}
.kp-rg-x:hover{color:var(--ink)}
.kp-rg-k{margin:0 0 8px;font:10px/1 Arial,Helvetica,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#6b645b}
.kp-rg-card h2{margin:0 0 8px;font-family:var(--serif);font-weight:400;font-size:26px}
.kp-rg-p{margin:0 0 16px;font-family:var(--serif);font-size:14.5px;color:#6d665e}
.kp-rg-card ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.kp-rg-card li button{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:flex;justify-content:space-between;align-items:center;padding:11px 4px;border-bottom:1px solid var(--line);font-family:var(--serif);font-size:16px;color:#3a352f}
.kp-rg-card li button em{font-style:normal;font:10px/1 Arial,Helvetica,sans-serif;letter-spacing:.14em;color:#6b645b}
.kp-rg-card li button:hover,.kp-rg-card li button:focus{color:var(--ink);background:rgba(19,17,15,.04);outline:0}
.kp-rg-card li button[aria-pressed="true"]{color:var(--ink)}
.kp-rg-card li button[aria-pressed="true"] span::after{content:"  ✓";font-size:13px}
.kp-rg-note{margin:0 0 14px;font-family:var(--serif);font-size:13.5px;color:#6d665e}
@media (max-width:760px){ .kp-rg-btn{display:none} .kp-rg-hint{left:10px;right:10px;bottom:10px;max-width:none} }
.site-header .kp-rg-btn{font:400 8.5px/1 Arial,Helvetica,sans-serif!important;letter-spacing:.14em!important;text-transform:uppercase;color:#13110f;padding:6px 4px}
.kp-acct-sel select{appearance:none;-webkit-appearance:none;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%237a736b' stroke-width='1.2'/%3E%3C/svg%3E") right 2px center/9px no-repeat;border:0;border-bottom:1px solid rgba(19,17,15,.22);padding:4px 22px 5px 0;font-family:var(--serif);font-size:16px;color:var(--ink);cursor:pointer}
.kp-acct-sel select:focus{outline:0;border-bottom-color:var(--ink)}
.kp-acct-sel{display:inline-block}.kp-acct-sel select{width:auto!important;min-width:180px}
/* V251 section heads: one left-aligned column (label, heading, text, links) */
.kp-st-head{display:block!important;max-width:640px}
.kp-st-head .kp-st-k{margin:0 0 14px!important}
.kp-st-head h2{margin:0 0 18px!important}
.kp-st-head .kp-st-p{margin:0 0 18px!important;max-width:600px;font-size:16.5px}
.kp-st-head .kp-st-a{margin-top:0!important}
.kp-st-tx .kp-st-head,.kp-st-sf .kp-st-head{border-top:0}
.kp-st-sf .kp-st-head{padding-top:clamp(40px,5vw,72px)}
.kp-st-sf{border-top:1px solid var(--line)}

/* V252 — samples are for trade clients: one tap in the portal's fabric details */
.kp-txq-smp{margin:12px 0 0;font-size:11px;line-height:1.5;letter-spacing:.01em;color:var(--muted,#6f675d)}
.kp-smp-a{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
/* V252 — client portal sign-in: the trade application starts just above the fold, so it shows below the sign-in */
html:not(.kp-app-on) .kp-portal-page .kp-pt-signin{min-height:0;padding-bottom:clamp(20px,2.4vw,36px)}
.kp-portal-page .kp-cue.kp-login-cue{margin-top:0;height:40px}
.kp-portal-page .kp-cue.kp-login-cue::before,.kp-portal-page .kp-cue.kp-login-cue i{height:34px}
.kp-portal-page + * .kp-login-trade,.kp-login-trade.kp-island-band{padding-top:clamp(34px,3.4vw,52px)}
/* V257 — portal fabric details: smaller note and detail rows, matching the website quick view */
.kp-fab-db .kp-fab-note{font-size:11px;line-height:1.5;letter-spacing:.01em;margin-top:12px}
.kp-fab-db dl div{font-size:12px;padding:9px 0;letter-spacing:.01em}

/* V261 — staff: fabric sourcing fee as one quiet line (no box, underline input) */
.kp-fab-fee{margin:0 0 22px!important;padding:0 0 14px!important;border:0!important;border-bottom:1px solid rgba(19,17,15,.1)!important;background:none!important}
.kp-fab-fee label{gap:6px 12px!important;align-items:baseline!important}
.kp-fab-fee span:first-child{font-family:Arial,Helvetica,sans-serif;font-size:9.5px!important;letter-spacing:.14em!important;color:var(--muted)!important}
.kp-fab-fee .w{display:inline-flex;align-items:baseline;gap:2px;font-size:13px!important;color:var(--muted)}
.kp-fab-fee input{width:44px!important;padding:1px 0 2px!important;border:0!important;border-bottom:1px solid rgba(19,17,15,.22)!important;background:none!important;font-family:var(--serif)!important;font-size:14px!important;color:var(--ink);text-align:left;outline:none}
.kp-fab-fee input:focus{border-bottom-color:var(--ink)!important}
.kp-fab-fee em{font-size:12px!important;color:var(--muted)!important;flex:1 1 260px}

/* V261 — staff piece sheet, cleaner: fields in an even grid (label above value), one section style, quieter costs */
.kp-sheet-modal .kp-modal-card{padding:34px 38px 24px!important}
.kp-sheet-modal .kp-sheet-head{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:start!important;gap:0 26px!important;padding-bottom:24px!important;border-bottom:1px solid rgba(19,17,15,.1)!important}
.kp-sheet-modal .kp-sheet-pic{width:88px;height:88px;padding:6px;box-sizing:border-box}
.kp-sheet-modal .kp-sheet-name{font-size:clamp(24px,2.3vw,30px)!important;margin:0 0 16px!important}
.kp-sheet-modal .kp-sheet-row{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px 22px!important;margin:0 0 14px}
.kp-sheet-modal .kp-sheet-row[hidden]{display:none!important}
.kp-sheet-modal .kp-sheet-row .kp-sheet-mini[hidden]{display:none!important}
.kp-sheet-modal .kp-sheet-mini{display:flex!important;flex-direction:column;align-items:stretch!important;gap:5px!important;min-width:0}
.kp-sheet-modal .kp-sheet-mini.w{grid-column:span 2}
.kp-sheet-modal .kp-sheet-mini span{font-size:9.5px!important;letter-spacing:.14em!important;white-space:nowrap}
.kp-sheet-modal .kp-sheet-mini input,.kp-sheet-modal .kp-sheet-mini select{width:100%!important;max-width:none!important;box-sizing:border-box;padding:2px 0 5px!important;font-size:14px!important;border-bottom:1px solid rgba(19,17,15,.12)!important;text-overflow:ellipsis}
.kp-sheet-modal .kp-sheet-mini input:hover,.kp-sheet-modal .kp-sheet-mini select:hover{border-bottom-color:rgba(19,17,15,.3)!important}
.kp-sheet-modal .kp-sheet-mini input:focus,.kp-sheet-modal .kp-sheet-mini select:focus{border-bottom-color:var(--ink)!important}
.kp-sheet-modal .kp-sheet-mini select{-webkit-appearance:none;appearance:none;padding-right:14px!important;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f' fill-opacity='.45'/%3E%3C/svg%3E") right 2px center/8px no-repeat!important;cursor:pointer}
.kp-sheet-modal .kp-sheet-row .kp-cbm{grid-column:1/-1;margin:-2px 0 0!important;font-size:12px!important;color:var(--muted)!important}
.kp-sheet-modal .kp-sheet-row .kp-cbm b{color:#4a443e}
.kp-sheet-modal .kp-sheet-head>select.kp-st{margin-top:4px}

/* specification: a section like the others, not a box */
.kp-sheet-modal .kp-sheet-attrs{margin:0!important;padding:22px 0 8px!important;border:0!important;border-bottom:1px solid rgba(19,17,15,.1)!important;background:none!important}
.kp-sheet-modal .kp-sheet-attrgrid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px 22px!important}
.kp-sheet-modal .kp-sheet-attrgrid .kp-a-field{margin:0 0 14px!important}
.kp-sheet-modal .kp-sheet-attrgrid .kp-a-field span{font-size:9.5px!important;letter-spacing:.14em!important}
.kp-sheet-modal .kp-sheet-attrgrid .kp-a-field input{padding:4px 0 6px!important;font-size:14px!important;border-bottom-color:rgba(19,17,15,.12)!important}
.kp-sheet-modal .kp-sheet-attrgrid .kp-a-field input::placeholder{color:rgba(19,17,15,.28)}

/* one heading style for every section */
.kp-sheet-modal .kp-sheet-h{margin:0 0 14px!important;font-size:9.5px!important;letter-spacing:.16em!important;color:var(--ink)!important}
.kp-sheet-modal .kp-sheet-body{margin-top:24px!important;gap:36px!important}
.kp-sheet-modal .kp-sheet-main section{padding:0 0 22px!important;margin:0 0 22px!important;border-bottom:1px solid rgba(19,17,15,.1)!important}

/* costs */
.kp-sheet-modal .kp-sheet-t{font-size:13.5px}
.kp-sheet-modal .kp-sheet-t th{font-size:9.5px!important;letter-spacing:.14em;padding-bottom:10px!important;border-bottom:1px solid rgba(19,17,15,.16)!important}
.kp-sheet-modal .kp-sheet-t tr.grp td{padding:16px 10px 6px 0!important;border-bottom:0!important;font-family:Arial,Helvetica,sans-serif;font-size:9.5px!important;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)!important}
.kp-sheet-modal .kp-sheet-t tr.grp td.n{font-family:var(--serif);font-size:12.5px!important;letter-spacing:0;text-transform:none}
.kp-sheet-modal .kp-sheet-t td{padding:12px 10px 12px 0!important;border-bottom:1px solid rgba(19,17,15,.07)!important}
.kp-sheet-modal .kp-sheet-t td.d input.nm{font-size:14.5px!important}
.kp-sheet-modal .kp-sheet-t .kind{font-family:Arial,Helvetica,sans-serif!important;font-size:9.5px!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:#9a7444!important;margin:0 0 4px!important}
.kp-sheet-modal .kp-sheet-t td.d input.sub,.kp-sheet-modal .kp-sheet-t td.d select.sub{font-size:12px!important;color:var(--muted)!important;margin-top:2px!important}
.kp-sheet-modal .kp-sheet-t td.cost .cx{display:inline-flex;align-items:baseline;gap:6px}
.kp-sheet-modal .kp-sheet-retail{display:flex!important;align-items:baseline;gap:8px;margin:8px 0 0!important}
.kp-sheet-modal .kp-sheet-retail span{font-family:Arial,Helvetica,sans-serif;font-size:9.5px!important;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)!important;white-space:nowrap}
.kp-sheet-modal .kp-sheet-retail input{width:64px!important;padding:1px 0 3px!important;border:0;border-bottom:1px solid rgba(19,17,15,.14)!important;background:none;font-family:var(--serif);font-size:13px!important}
.kp-sheet-modal .kp-sheet-t td.aud{font-size:14px!important}
.kp-sheet-modal .kp-sheet-adds{margin-top:14px!important;gap:10px!important}
.kp-sheet-modal .kp-sheet-adds .kp-sch-ghost,.kp-sheet-modal .kp-sheet-adds select{padding:7px 14px!important;border:1px solid rgba(19,17,15,.18)!important;border-radius:999px;font-family:Arial,Helvetica,sans-serif!important;font-size:10px!important;letter-spacing:.12em!important;text-transform:uppercase;color:var(--ink)}
.kp-sheet-modal .kp-sheet-adds select{padding-right:28px!important;background-position:right 12px center!important}
.kp-sheet-modal .kp-sheet-adds .kp-sch-ghost:hover,.kp-sheet-modal .kp-sheet-adds select:hover{border-color:var(--ink)!important}
.kp-sheet-foot{margin:12px 0 0;font-size:12px;color:var(--muted)}

/* shipping in this price: one line, opens for the workings */
.kp-sheet-modal .kp-land-d summary{display:flex;align-items:baseline;gap:14px;cursor:pointer;list-style:none}
.kp-sheet-modal .kp-land-d summary::-webkit-details-marker{display:none}
.kp-sheet-modal .kp-land-d summary::before{content:"+";font-family:var(--serif);font-size:15px;width:10px;color:var(--ink)}
.kp-sheet-modal .kp-land-d[open] summary::before{content:"\2212"}
.kp-sheet-modal .kp-land-d summary .kp-sheet-h{margin:0!important}
.kp-sheet-modal .kp-land-d summary .v{font-size:12px;color:var(--muted)}
.kp-sheet-modal .kp-land-d summary b{margin-left:auto;font-weight:400;font-size:14px}
.kp-sheet-modal .kp-land-d[open] summary{margin-bottom:14px}
.kp-sheet-modal .kp-sheet-more{border-top:0!important;padding-top:0!important}
.kp-sheet-modal .kp-sheet-more summary{font-size:9.5px!important}

@media (max-width:900px){
  .kp-sheet-modal .kp-sheet-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .kp-sheet-modal .kp-sheet-attrgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:560px){
  .kp-sheet-modal .kp-modal-card{padding:22px 16px 18px!important}
  .kp-sheet-modal .kp-sheet-head{grid-template-columns:minmax(0,1fr) auto}
  .kp-sheet-modal .kp-sheet-pic{display:none}
  .kp-sheet-modal .kp-sheet-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kp-sheet-modal .kp-sheet-attrgrid{grid-template-columns:1fr!important}
}
.kp-sheet-modal .kp-sheet-row{grid-template-columns:repeat(7,minmax(0,1fr))}
.kp-sheet-modal .kp-sheet-row.kp-sheet-size .kp-cbm{margin-top:0!important}
.kp-sheet-modal .kp-sheet-row:last-child{margin-bottom:0}
.kp-sheet-modal .kp-sheet-head{padding-bottom:20px!important}
.kp-sheet-modal .kp-sheet-land{border-top:0!important;padding-top:0!important}
.kp-sheet-modal .kp-sheet-land:empty{display:none}
.kp-sheet-foot{font-family:var(--serif)}
@media (max-width:900px){ .kp-sheet-modal .kp-sheet-row{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:560px){ .kp-sheet-modal .kp-sheet-row{grid-template-columns:repeat(2,minmax(0,1fr))} }
.kp-sheet-modal .kp-sheet-main .kp-sheet-land{margin:0 0 22px!important;padding:0 0 22px!important;border-top:0!important}
.kp-sheet-modal .kp-sheet-main,.kp-sheet-modal .kp-sheet-side{min-width:0}
.kp-sheet-modal .kp-sheet-wrap{overflow-x:auto}
@media (max-width:560px){
  .kp-sheet-modal .kp-sheet-head{display:block!important;position:relative}
  .kp-sheet-modal .kp-sheet-name{padding-right:130px!important}
  .kp-sheet-modal .kp-sheet-head>select.kp-st{position:absolute;top:0;right:0;margin:0}
  .kp-sheet-modal .kp-sheet-mini.w{grid-column:1/-1}
  .kp-sheet-modal .kp-sheet-body{grid-template-columns:minmax(0,1fr)!important}
}
.kp-fab-fee{border-bottom:0!important;padding-bottom:0!important;margin-bottom:18px!important}

/* V263 — staff piece sheet, easier to read and fill: one page, readable labels, clear fields */
.kp-sheet-modal .kp-sheet-mini span,
.kp-sheet-modal .kp-sheet-attrgrid .kp-a-field span,
.kp-sheet-modal .kp-sheet-more .kp-a-field span{font-family:Arial,Helvetica,sans-serif!important;font-size:11.5px!important;letter-spacing:.01em!important;text-transform:none!important;color:#6f675d!important}
.kp-sheet-modal .kp-sheet-mini input,.kp-sheet-modal .kp-sheet-mini select,
.kp-sheet-modal .kp-sheet-attrgrid .kp-a-field input,.kp-sheet-modal .kp-sheet-more .kp-a-field input,.kp-sheet-modal .kp-sheet-more .kp-a-field textarea{font-size:15px!important;border-bottom:1px solid rgba(19,17,15,.2)!important}
.kp-sheet-modal input::placeholder,.kp-sheet-modal textarea::placeholder{color:rgba(19,17,15,.32)!important;font-style:italic}
.kp-sheet-modal .kp-sheet-row{gap:18px 24px!important;margin-bottom:18px}
.kp-sheet-modal .kp-sheet-h{font-size:11px!important;letter-spacing:.14em!important;font-weight:700;color:var(--ink)!important}
.kp-sheet-modal .kp-sheet-h span{font-weight:400}
.kp-sheet-modal .kp-sheet-row .kp-cbm{font-size:13px!important}
/* costs table */
.kp-sheet-modal .kp-sheet-t th{font-size:11px!important;letter-spacing:.01em!important;text-transform:none!important;color:#6f675d!important}
.kp-sheet-modal .kp-sheet-t tr.grp td{font-size:11px!important;letter-spacing:.12em!important;font-weight:700;color:#4a443e!important}
.kp-sheet-modal .kp-sheet-t tr.grp td.n{font-weight:400;font-size:13.5px!important;color:var(--ink)!important}
.kp-sheet-modal .kp-sheet-t .kind{font-size:10.5px!important;letter-spacing:.1em!important}
.kp-sheet-modal .kp-sheet-t td.d input.nm{font-size:15.5px!important}
.kp-sheet-modal .kp-sheet-t td.d input.sub,.kp-sheet-modal .kp-sheet-t td.d select.sub{font-size:13px!important}
.kp-sheet-modal .kp-sheet-t td input[data-k="qty"],.kp-sheet-modal .kp-sheet-t td input[data-k="cost"]{font-size:15px!important;border-bottom:1px solid rgba(19,17,15,.2)!important;padding-bottom:3px!important}
.kp-sheet-modal .kp-sheet-t td input[data-k="qty"]:focus,.kp-sheet-modal .kp-sheet-t td input[data-k="cost"]:focus{border-bottom-color:var(--ink)!important}
.kp-sheet-modal .kp-sheet-t td select[data-k="unit"],.kp-sheet-modal .kp-sheet-t td select[data-k="cur"],.kp-sheet-modal .kp-sheet-t td select[data-k="basis"]{font-size:13px!important;color:#5c554e!important}
.kp-sheet-modal .kp-sheet-t td.aud{font-size:15px!important}
.kp-sheet-modal .kp-sheet-retail span{font-size:11.5px!important;letter-spacing:.01em!important;text-transform:none!important}
.kp-sheet-modal .kp-sheet-retail input{font-size:15px!important;border-bottom-color:rgba(19,17,15,.2)!important}
.kp-sheet-modal .kp-sheet-adds .kp-sch-ghost,.kp-sheet-modal .kp-sheet-adds select{font-size:11px!important}
.kp-sheet-foot{font-size:13px}
.kp-sheet-modal .kp-land-d summary .v{font-size:13px}
.kp-sheet-modal .kp-land-d summary b{font-size:15px}
.kp-sheet-modal .kp-sheet-more summary{font-size:11px!important;font-weight:700}
.kp-sheet-modal .kp-sheet-more summary span{font-weight:400;font-size:13px!important}
/* price panel */
.kp-sheet-modal .kp-sheet-side{font-size:14px}
.kp-sheet-modal .kp-sheet-side .kp-sheet-h{font-size:11px!important}
.kp-sheet-modal .kp-sheet-row:not(.kp-sheet-size):not(.kp-sheet-rug){grid-template-columns:1fr 1.45fr 1fr 2.4fr .6fr .8fr!important}
.kp-sheet-modal .kp-sheet-row:not(.kp-sheet-size):not(.kp-sheet-rug) .kp-sheet-mini.w{grid-column:auto}
.kp-sheet-modal .kp-media-wrap{border-top:0!important;padding-top:0!important}
.kp-sheet-modal .kp-sheet-side label>span,.kp-sheet-modal .kp-sheet-side .kp-sheet-h:not([data-for]){font-family:Arial,Helvetica,sans-serif!important;font-size:11.5px!important;letter-spacing:.01em!important;text-transform:none!important;font-weight:400!important;color:#6f675d!important}
@media (max-width:900px){ .kp-sheet-modal .kp-sheet-row:not(.kp-sheet-size):not(.kp-sheet-rug){grid-template-columns:repeat(3,minmax(0,1fr))!important} }
@media (max-width:560px){ .kp-sheet-modal .kp-sheet-row:not(.kp-sheet-size):not(.kp-sheet-rug){grid-template-columns:repeat(2,minmax(0,1fr))!important} .kp-sheet-modal .kp-sheet-row:not(.kp-sheet-size) .kp-sheet-mini.w{grid-column:1/-1} }
.kp-sheet-modal .kp-media-wrap .kp-media:first-child{border-top:0!important;padding-top:0!important}
.kp-sheet-modal .kp-sheet-margin label{font-size:11.5px!important;letter-spacing:.01em!important;text-transform:none!important;color:#6f675d!important}
.kp-sheet-modal .kp-sheet-margin label .kp-mg-in,.kp-sheet-modal .kp-sheet-margin label input{color:var(--ink)}
.kp-sheet-modal .kp-sheet-margin p,.kp-sheet-modal .kp-sheet-margin+p{font-size:13px!important}
.kp-sheet-modal .kp-sheet-remake label{font-family:Arial,Helvetica,sans-serif!important;font-size:11.5px!important;letter-spacing:.01em!important;text-transform:none!important;color:#6f675d!important}
.kp-sheet-modal .kp-sheet-remake p{font-size:13px!important}
.kp-sheet-modal .kp-land-d summary{flex-wrap:wrap}
@media (max-width:560px){ .kp-sheet-modal .kp-land-d summary .v{order:3;width:100%;padding-left:24px} }
.kp-sheet-rtot{margin:6px 0 0;font-family:var(--serif);font-size:13px;color:#5c554e;white-space:normal;max-width:300px}
.kp-sheet-rtot:empty{display:none}
.kp-sheet-rtot b{font-weight:400;color:var(--ink)}
.kp-sheet-rtot span{display:block;margin-top:2px;font-size:12px;color:#9a5a2c}

/* V265 — drag pieces up, down or into another room (staff + client schedules) */
.kp-drag-h{all:unset;box-sizing:border-box;cursor:grab;touch-action:none;display:inline-grid;place-items:center;width:22px;height:30px;border-radius:4px;color:rgba(19,17,15,.38);transition:color .15s,background-color .15s}
.kp-drag-h i{display:block;width:8px;height:14px;background:radial-gradient(circle,currentColor 1.2px,transparent 1.5px) 0 0/4px 4.7px}
.kp-drag-h:hover,.kp-drag-h:focus-visible{color:var(--ink);background:rgba(19,17,15,.06)}
.kp-drag-h:focus-visible{outline:1px solid var(--ink)}
html.kp-dragging,html.kp-dragging *{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}
.kp-sch td.ck{white-space:nowrap}
.kp-sch td.ck .kp-drag-h{vertical-align:middle;margin:0 4px 0 -8px}
.kp-sch tr.kp-drag-src td,.kp-cs-row.kp-drag-src{opacity:.35}
.kp-drag-over>tr.kp-sch-area td,.kp-cs-room.kp-drag-over>.kp-cs-rh{background:rgba(124,138,106,.14)}
.kp-drag-line{position:fixed;z-index:10001;height:2px;background:var(--ink);pointer-events:none;box-shadow:0 0 0 3px rgba(243,239,231,.85)}
.kp-drag-line::before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--ink)}
.kp-drag-line[hidden]{display:none}
.kp-drag-ghost{position:fixed;left:0;top:0;z-index:10002;pointer-events:none;display:flex;align-items:center;gap:10px;max-width:320px;padding:8px 14px 8px 8px;background:#fffdf8;border:1px solid rgba(19,17,15,.16);box-shadow:0 14px 34px rgba(19,17,15,.18);font-family:var(--serif);font-size:15px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-drag-ghost:not(.whole) img{width:34px;height:34px;object-fit:contain;background:#f6f3ed}
.kp-cs-row{position:relative}
.kp-cs-row>.kp-drag-h{position:absolute;left:-30px;top:50%;margin-top:-15px}
.kp-cs-row.kp-drag-done{animation:kpDragDone 1.4s ease}
@keyframes kpDragDone{0%{background-color:rgba(124,138,106,.22)}100%{background-color:transparent}}
@media (max-width:900px){ .kp-cs-row>.kp-drag-h{left:auto;right:2px;top:6px;margin:0} }
@media (hover:none){ .kp-drag-h{width:30px;height:36px;color:rgba(19,17,15,.5)} }
.kp-sheet-rtot em{display:block;margin-top:2px;font-style:normal;font-size:12.5px}
.kp-sheet-rtot em.ok{color:#5f7148}.kp-sheet-rtot em.bad{color:#8a3b2e}
.kp-sheet-t td.c input[disabled]{opacity:.25;cursor:not-allowed}
@media (max-width:780px){
  .kp-sch tr[data-row]{position:relative}
  .kp-sch tr[data-row] td.ck{display:block!important;position:absolute;right:6px;bottom:8px;width:auto!important;padding:0!important;border:0!important;background:none!important}
  .kp-sch tr[data-row] td.ck input{display:none}
  .kp-sch tr[data-row] td.ck .kp-drag-h{margin:0}
}
@media (max-width:900px){ .kp-cs-row>.kp-drag-h{top:auto;bottom:8px;right:6px} }
.kp-sheet-t tr.kp-row-new td{animation:kpRowNew 1.6s ease}
@keyframes kpRowNew{0%{background:rgba(124,138,106,.2)}100%{background:transparent}}
/* V267 — several KNEHLER fabrics on one piece (client portal) */
.kp-pw-fabsel+.kp-pw-fabsel{margin-top:8px}
.kp-pw-fabacts{display:flex;gap:14px;margin-left:auto;align-items:center}
.kp-pw-addfab{all:unset;cursor:pointer;display:inline-block;margin-top:12px;padding:7px 14px;border:1px dashed rgba(19,17,15,.3);border-radius:999px;font-family:Arial,Helvetica,sans-serif;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.kp-pw-addfab:hover{border-style:solid;border-color:var(--ink)}
.kp-pw-fabhint{margin:6px 0 0;font-size:12.5px;color:var(--muted)}

/* V268 — cushions inside a piece (staff cost sheet + client piece form) */
.kp-sheet-cush[hidden]{display:none!important}
.kp-cu{position:relative;margin:0 0 12px;padding:14px 16px 12px;border:1px solid rgba(19,17,15,.12);background:rgba(255,253,248,.6)}
.kp-cu-a,.kp-cu-b{display:grid;grid-template-columns:1.6fr .8fr .8fr .8fr .8fr 1.5fr 24px;gap:12px 16px;align-items:end}
.kp-cu-b{grid-template-columns:2.2fr 1fr 1.3fr 1.2fr 1.1fr;margin-top:12px}
.kp-cu label{display:flex;flex-direction:column;gap:5px;margin:0;min-width:0}
.kp-cu label>span:first-child,.kp-cu-fab .l{font-family:Arial,Helvetica,sans-serif;font-size:11.5px;color:#6f675d}
.kp-cu input,.kp-cu select{width:100%;box-sizing:border-box;margin:0;padding:3px 0 5px;border:0;border-bottom:1px solid rgba(19,17,15,.2);background:none;font-family:var(--serif);font-size:15px;color:var(--ink);outline:none;border-radius:0}
.kp-cu input:focus,.kp-cu select:focus{border-bottom-color:var(--ink)}
.kp-cu input::placeholder{color:rgba(19,17,15,.32);font-style:italic}
.kp-cu select{-webkit-appearance:none;appearance:none;padding-right:14px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f' fill-opacity='.45'/%3E%3C/svg%3E") right 2px center/8px no-repeat;cursor:pointer}
.kp-cu .cx{display:flex;gap:6px}.kp-cu .cx select{width:58px;flex:none}
.kp-cu-fab{display:flex;flex-direction:column;gap:5px;min-width:0}
.kp-cu-fab b{font-weight:400;font-family:var(--serif);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-cu-fab .acts{display:flex;gap:14px}
.kp-cu-x{all:unset;cursor:pointer;width:24px;height:24px;display:grid;place-items:center;font-size:17px;color:var(--muted);align-self:center}
.kp-cu-x:hover{color:#8a3b2e}
.kp-cu-tot{margin:10px 0 0;font-family:var(--serif);font-size:13px;color:#5c554e}
.kp-cu-tot b{font-weight:400;color:var(--ink)}
.kp-cu-tot span{margin-left:10px;color:#9a5a2c;font-size:12.5px}
.kp-cu-add{margin-top:2px}
@media (max-width:900px){ .kp-cu-a{grid-template-columns:repeat(3,minmax(0,1fr)) 24px} .kp-cu-a .t:last-of-type{grid-column:span 2} .kp-cu-b{grid-template-columns:repeat(2,minmax(0,1fr))} .kp-cu-fab{grid-column:1/-1} }
@media (max-width:560px){ .kp-cu-a{grid-template-columns:repeat(2,minmax(0,1fr))} .kp-cu-x{position:absolute;top:8px;right:8px} }
.kp-sheet-modal .kp-cu label>span:first-child{font-size:11.5px!important;letter-spacing:.01em!important;text-transform:none!important;color:#6f675d!important;white-space:normal}
.kp-cu .cx select{width:66px}
.kp-sheet-modal .kp-cu-add{padding:7px 14px!important;border:1px solid rgba(19,17,15,.18)!important;border-radius:999px;font-family:Arial,Helvetica,sans-serif!important;font-size:11px!important;letter-spacing:.12em!important;text-transform:uppercase;height:auto!important}
.kp-sheet-modal .kp-cu-add:hover{border-color:var(--ink)!important}
.kp-pw-cush{margin:22px 0 4px;padding-top:18px;border-top:1px solid rgba(19,17,15,.1)}
.kp-pw-sub{margin:0 0 10px;font-family:Arial,Helvetica,sans-serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#5c554e}
.kp-pw-cu{position:relative;margin:0 0 10px;padding:14px 16px 12px;border:1px solid rgba(19,17,15,.12);background:#fffdf8}
.kp-pw-cua{display:grid;grid-template-columns:1.6fr .8fr .8fr .8fr 1.5fr 24px;gap:12px 16px;align-items:end}
.kp-pw-cu label{display:flex;flex-direction:column;gap:5px;margin:0;min-width:0}
.kp-pw-cu label>span{font-family:Arial,Helvetica,sans-serif;font-size:11.5px;color:#6f675d;text-transform:none;letter-spacing:.01em}
.kp-pw-cu input,.kp-pw-cu select{width:100%;box-sizing:border-box;margin:0;padding:3px 0 5px;border:0;border-bottom:1px solid rgba(19,17,15,.2);background:none;font-family:var(--serif);font-size:15px;color:var(--ink);outline:none;border-radius:0}
.kp-pw-cu select{-webkit-appearance:none;appearance:none;padding-right:14px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5'%3E%3Cpath d='M0 0l4 5 4-5' fill='%2313110f' fill-opacity='.45'/%3E%3C/svg%3E") right 2px center/8px no-repeat;cursor:pointer}
.kp-pw-cu input:focus,.kp-pw-cu select:focus{border-bottom-color:var(--ink)}
.kp-pw-cuf{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:10px;border-top:1px dashed rgba(19,17,15,.12)}
.kp-pw-cuf img{width:40px;height:40px;object-fit:cover;flex:none}
.kp-pw-cuf .n{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.kp-pw-cuf .l{font-family:Arial,Helvetica,sans-serif;font-size:11.5px;color:#6f675d}
.kp-pw-cuf b{font-weight:400;font-family:var(--serif);font-size:15px}
.kp-pw-cuf b i{color:#9a5a2c;font-style:italic}
.kp-pw-cuf em{font-style:normal;font-size:12.5px;color:var(--muted)}
.kp-pw-cuf .acts{display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:flex-end}
.kp-pw-cucom{margin-top:10px!important}
@media (max-width:640px){ .kp-pw-cua{grid-template-columns:repeat(2,minmax(0,1fr))} .kp-pw-cu .kp-cu-x{position:absolute;top:6px;right:6px} .kp-pw-cuf{flex-wrap:wrap} .kp-pw-cuf .acts{width:100%;justify-content:flex-start} }
.kp-pw-cush{border-top:0;padding-top:4px;margin-bottom:24px}
.kp-cu .cx input{flex:1;min-width:0}
.kp-cu .cx select{width:72px!important;min-width:72px;flex:none}
.kp-sheet-rtot .src{display:block;margin:0 0 4px;font-size:12px;color:#9a5a2c}
.kp-sheet-rtot .src.ok{color:#6f675d}
.kp-sheet-rtot .src .kp-a-link{font-size:11px;margin-left:4px}
.kp-cu-m{display:flex;flex-direction:column;gap:5px;min-width:0}
.kp-cu-m span{font-family:Arial,Helvetica,sans-serif;font-size:11.5px;color:#6f675d}
.kp-cu-m b{font-weight:400;font-family:var(--serif);font-size:15px;padding:3px 0 6px;border-bottom:1px solid rgba(19,17,15,.08)}
.kp-cu-b{grid-template-columns:2.2fr 1fr 1.1fr 1.3fr 1.1fr}

/* V272 — staff Data: clear sections, readable labels, units inside each box */
.kp-rform{display:block}
.kp-rsec{display:grid;grid-template-columns:minmax(200px,280px) minmax(0,1fr);gap:20px 48px;padding:30px 0;border-top:1px solid rgba(19,17,15,.12)}
.kp-rsec:first-of-type{border-top:0;padding-top:8px}
.kp-rsec-h h2{margin:0 0 8px;font-family:var(--serif);font-weight:400;font-size:21px;letter-spacing:0;text-transform:none;color:var(--ink)}
.kp-rsec-h p{margin:0 0 12px;font-family:var(--serif);font-size:14px;line-height:1.5;color:#6d665e}
.kp-rsec-h .kp-rates-acts{flex-direction:column;align-items:flex-start;gap:12px;margin-top:6px}
.kp-rsec-flag{margin:0 0 12px!important;padding:8px 10px;border-left:2px solid #b78b4b;background:rgba(183,139,75,.08);font-size:13px!important;color:#6b4f2a!important}
.kp-rsec-ok{margin:0 0 12px!important;font-size:13px!important;color:#5f7148!important}
.kp-rsec-f{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 28px;align-content:start}
.kp-rf-g{grid-column:1/-1;margin:6px 0 -6px;font-family:Arial,Helvetica,sans-serif;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#5c554e}
.kp-rf-g:first-child{margin-top:0}
.kp-app .kp-rf{display:flex;flex-direction:column;gap:6px;margin:0;min-width:0}
.kp-app .kp-rf .l{font-family:Arial,Helvetica,sans-serif!important;font-size:12.5px!important;letter-spacing:.01em!important;text-transform:none!important;color:#3d3832!important}
.kp-rf .in{display:flex;align-items:baseline;gap:6px;padding:4px 0 6px;border-bottom:1px solid rgba(19,17,15,.22);transition:border-color .15s}
.kp-rf .in:focus-within{border-bottom-color:var(--ink)}
.kp-app .kp-rf input{flex:1;min-width:0;width:auto!important;margin:0!important;padding:0!important;border:0!important;background:none!important;font-family:var(--serif)!important;font-size:17px!important;color:var(--ink);outline:none;box-shadow:none!important}
.kp-rf i{font-style:normal;font-family:var(--serif);font-size:13.5px;color:#6b645b;white-space:nowrap}
.kp-rf .h{font-family:var(--serif);font-size:12.5px;line-height:1.4;color:#6b645b}
.kp-rsec-sum{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:4px;padding:14px 16px;background:rgba(255,253,248,.7);border:1px solid rgba(19,17,15,.1)}
.kp-rsec-sum span{font-family:Arial,Helvetica,sans-serif;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#5c554e}
.kp-rsec-sum>b{font-family:var(--serif);font-weight:400;font-size:20px;color:var(--ink)}
.kp-rsec-sum em{font-style:normal;font-family:var(--serif);font-size:13.5px;color:#6d665e}
.kp-rsec-sum em b{font-weight:400;color:var(--ink)}
.kp-rform-foot{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:18px;margin-top:10px;padding:14px 0;background:var(--paper,#f3efe7);border-top:1px solid rgba(19,17,15,.12)}
@media (max-width:1100px){ .kp-rsec-f{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:820px){ .kp-rsec{grid-template-columns:1fr;gap:14px} }
@media (max-width:520px){ .kp-rsec-f{grid-template-columns:1fr 1fr;gap:18px 18px} .kp-rf .h{font-size:12px} }
.kp-app .kp-rf .h,.kp-app .kp-rf i{text-transform:none!important;letter-spacing:0!important;font-family:var(--serif)!important}
.kp-app .kp-rf .h{font-size:12.5px!important;color:#6b645b!important}
.kp-app .kp-rf i{font-size:13.5px!important;color:#6b645b!important}
@media (max-width:520px){ .kp-rform-foot{padding:10px 0;gap:12px} .kp-rform-foot .kp-a-dim{font-size:12px;line-height:1.35} }

/* V273 — staff Data as tidy lists: label · box with its unit · note, one row each */
.kp-rsec{display:block;padding:34px 0 30px}
.kp-rsec-h{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 30px;align-items:start;margin-bottom:14px}
.kp-rsec-h h2{grid-column:1;margin:0!important}
.kp-rsec-h>p{grid-column:1;margin:0!important;max-width:640px}
.kp-rsec-h .kp-rates-acts{grid-column:2;grid-row:1/span 3;flex-direction:row!important;align-items:center!important;gap:16px!important;margin:0!important}
.kp-rsec-h .kp-rsec-flag,.kp-rsec-h .kp-rsec-ok{grid-column:1;margin:8px 0 0!important;max-width:640px;display:inline-block}
.kp-rsec-f{display:block!important;border-top:1px solid rgba(19,17,15,.14)}
.kp-app .kp-rf{display:grid!important;grid-template-columns:minmax(160px,240px) 200px minmax(0,1fr);align-items:center;gap:0 28px;padding:11px 0;border-bottom:1px solid rgba(19,17,15,.08)}
.kp-app .kp-rf .l{font-size:13.5px!important;color:var(--ink)!important}
.kp-rf .in{padding:3px 0 4px;border-bottom:1px solid rgba(19,17,15,.22)}
.kp-app .kp-rf input{font-size:16px!important;text-align:right}
.kp-rf .in .pre+input{text-align:left}
.kp-rf .in i{flex:none}
.kp-rf .in i.suf{min-width:0}
.kp-app .kp-rf .h{font-size:13px!important}
.kp-rf-g{margin:22px 0 2px!important;padding-bottom:8px;border-bottom:1px solid rgba(19,17,15,.14)}
.kp-rf-g:first-child{margin-top:14px!important}
.kp-rsec-sum{margin-top:16px}
@media (max-width:760px){
  .kp-rsec-h{grid-template-columns:1fr}
  .kp-rsec-h .kp-rates-acts{grid-column:1;grid-row:auto;flex-wrap:wrap;margin-top:10px!important}
  .kp-app .kp-rf{grid-template-columns:minmax(0,1fr) 150px;gap:4px 16px}
  .kp-app .kp-rf .h{grid-column:1/-1}
}
.kp-rf .in .pre+input{text-align:right!important}
.kp-rsec-f:has(> .kp-rf-g:first-child){border-top:0}
.kp-rf-g:first-child{margin-top:4px!important}
.kp-rf-g+.kp-rf{border-top:0}

/* V274 — staff Data, compact: two columns of rows, smaller text, notes under the label */
.kp-rsec{padding:20px 0 18px!important}
.kp-rsec-h{margin-bottom:8px!important}
.kp-rsec-h h2{font-size:17px!important;margin:0 0 2px!important}
.kp-rsec-h>p{font-size:12.5px!important;line-height:1.45!important}
.kp-rsec-flag,.kp-rsec-ok{font-size:12px!important;padding:5px 9px!important;margin-top:6px!important}
.kp-rsec-f{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:44px;border-top:0!important}
.kp-app .kp-rf{grid-template-columns:minmax(0,1fr) 150px!important;grid-template-rows:auto auto;gap:0 16px!important;padding:7px 0!important;border-bottom:1px solid rgba(19,17,15,.08)}
.kp-app .kp-rf .l{grid-column:1;grid-row:1;align-self:end;font-size:12.5px!important}
.kp-app .kp-rf .h{grid-column:1;grid-row:2;align-self:start;font-size:11.5px!important;line-height:1.35}
.kp-rf .in{grid-column:2;grid-row:1/span 2;align-self:center;padding:2px 0 3px!important}
.kp-app .kp-rf input{font-size:14.5px!important}
.kp-app .kp-rf i{font-size:12px!important}
.kp-rf-g{grid-column:1/-1;margin:10px 0 0!important;padding-bottom:5px!important;font-size:10px!important}
.kp-rf-g:first-child{margin-top:0!important}
.kp-rsec-sum{grid-column:1/-1;margin-top:10px!important;padding:9px 12px!important}
.kp-rsec-sum>b{font-size:16px!important}
.kp-rsec-sum em{font-size:12.5px!important}
.kp-rform-foot{padding:10px 0!important}
.kp-rates-warn{font-size:13px!important;padding:9px 14px!important;margin-bottom:8px!important}
@media (max-width:900px){ .kp-rsec-f{grid-template-columns:1fr} }
@media (max-width:760px){ .kp-app .kp-rf{grid-template-columns:minmax(0,1fr) 130px!important} .kp-app .kp-rf .h{grid-column:1!important} }
@media (min-width:1200px){ .kp-rsec-f{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:36px} .kp-app .kp-rf{grid-template-columns:minmax(0,1fr) 128px!important} }
.kp-app .kp-rf{padding:5px 0!important;min-height:0}
.kp-app .kp-rf .l{line-height:1.25}
.kp-rsec{padding:16px 0 14px!important}
.kp-rsec-h>p{margin:0!important}
.kp-rf-g{margin-top:6px!important}
.kp-rsec-f{row-gap:0!important}
.kp-app .kp-rf{padding:6px 0!important}
.kp-rsec-flag{display:block!important;margin:6px 0 2px!important}

/* V275 — staff Data as cards: two side by side (Shipping full width), uniform one-line rows, one typeface, number + unit as one block */
.kp-rform{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.kp-rform>.kp-rsec{order:5;margin:0;padding:18px 20px 12px!important;border:1px solid rgba(19,17,15,.12)!important;background:rgba(255,253,248,.55)}
.kp-rform>.kp-rsec:nth-of-type(1){order:1}
.kp-rform>.kp-rsec:nth-of-type(7){order:2}
.kp-rform>.kp-rsec:nth-of-type(2){order:3;grid-column:1/-1}
.kp-rform>.kp-rsec:nth-of-type(3){order:4}
.kp-rform>.kp-rsec:nth-of-type(4){order:5}
.kp-rform>.kp-rsec:nth-of-type(5){order:6}
.kp-rform>.kp-rsec:nth-of-type(6){order:7}
.kp-rform>.kp-rform-foot{order:9;grid-column:1/-1}
.kp-rsec-h{display:flex!important;flex-wrap:wrap;align-items:baseline;gap:2px 14px!important;margin:0 0 10px!important}
.kp-rsec-h h2{font-family:var(--serif)!important;font-size:17px!important;margin:0!important}
.kp-rsec-h>p{flex:1 1 100%;order:3;margin:0!important;font-family:Arial,Helvetica,sans-serif!important;font-size:12px!important;line-height:1.45!important;color:#7a7268!important}
.kp-rsec-h .kp-rates-acts{order:2;margin-left:auto!important;gap:12px!important}
.kp-rsec-h .kp-rates-acts .btn{padding:7px 12px!important;font-size:10px!important}
.kp-rsec-h .kp-rsec-flag,.kp-rsec-h .kp-rsec-ok{order:4;flex:1 1 100%;margin:6px 0 0!important;max-width:none!important;font-family:Arial,Helvetica,sans-serif!important;font-size:11.5px!important;padding:5px 9px!important}
.kp-rsec-f{display:block!important;border-top:1px solid rgba(19,17,15,.14)!important}
.kp-rform>.kp-rsec:nth-of-type(2) .kp-rsec-f{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:36px}
.kp-app .kp-rf{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-rows:none!important;align-items:center!important;gap:0 14px!important;padding:0!important;min-height:38px;border-bottom:1px solid rgba(19,17,15,.08)}
.kp-app .kp-rf .l{grid-column:1;grid-row:1;align-self:center!important;font-family:Arial,Helvetica,sans-serif!important;font-size:12.5px!important;color:var(--ink)!important;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kp-app .kp-rf .h{display:none!important}
.kp-rf .in{grid-column:2;grid-row:1;display:grid!important;grid-template-columns:14px 74px 78px;align-items:baseline;gap:0 6px;padding:0!important;border:0!important}
.kp-rf .in i.pre{grid-column:1;text-align:right}
.kp-rf .in input{grid-column:2}
.kp-rf .in i.suf{grid-column:3}
.kp-rf .in i.pre[class]{font-size:12px!important}
.kp-app .kp-rf input{width:100%!important;padding:3px 0 2px!important;border-bottom:1px solid rgba(19,17,15,.22)!important;font-family:Arial,Helvetica,sans-serif!important;font-size:13.5px!important;font-variant-numeric:tabular-nums;text-align:right!important}
.kp-app .kp-rf input:focus{border-bottom-color:var(--ink)!important}
.kp-app .kp-rf i{font-family:Arial,Helvetica,sans-serif!important;font-size:11.5px!important;color:#6b645b!important}
/* exchange rates: "1 AUD =" reads before the number */
.kp-rf .in i.pre{white-space:nowrap}
.kp-rform>.kp-rsec:nth-of-type(1) .kp-rf .in{grid-template-columns:48px 74px 40px}
.kp-rf-g{grid-column:1/-1;margin:8px 0 0!important;padding:0 0 4px!important;border-bottom:1px solid rgba(19,17,15,.14)!important;font-size:10px!important;color:#7a7268}
.kp-rf-g:first-child{margin-top:0!important}
.kp-rsec-f:has(> .kp-rf-g:first-child){border-top:0!important}
.kp-rsec-sum{grid-column:1/-1;margin:12px 0 4px!important;padding:8px 12px!important}
.kp-rsec-sum>b{font-family:Arial,Helvetica,sans-serif!important;font-size:14px!important}
.kp-rsec-sum em{font-family:Arial,Helvetica,sans-serif!important;font-size:12px!important}
.kp-rform-foot{margin-top:0!important}
@media (max-width:1000px){ .kp-rform{grid-template-columns:1fr} .kp-rform>.kp-rsec:nth-of-type(2) .kp-rsec-f{grid-template-columns:1fr} }
@media (max-width:520px){ .kp-rform>.kp-rsec{padding:14px 14px 8px!important} .kp-rf .in{grid-template-columns:12px 64px 66px} }

/* V276 — staff Data refined */
.kp-rform{align-items:stretch!important;gap:16px!important}
.kp-rform>.kp-rsec{display:flex!important;flex-direction:column;border-radius:4px;padding:18px 22px 14px!important;background:#fbf9f4!important;border-color:rgba(19,17,15,.1)!important}
.kp-rsec-h{gap:2px 16px!important;margin-bottom:12px!important}
.kp-rsec-h h2{font-size:18px!important}
.kp-rsec-h>p{font-size:12px!important;color:#857c71!important}
/* one quiet style for every action */
.kp-rsec-h .kp-rates-acts{gap:14px!important}
.kp-app .kp-rsec-h .kp-rates-acts .kp-a-link,.kp-app .kp-rsec-h .kp-rates-acts .kp-rates-auto{font-family:Arial,Helvetica,sans-serif!important;font-size:10px!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:var(--ink)!important}
.kp-app .kp-rsec-h .kp-rates-acts .kp-rates-auto{letter-spacing:.08em!important;color:#5c554e!important;gap:6px!important}
.kp-app .kp-rsec-h .kp-rates-acts .kp-rates-auto input{width:13px!important;height:13px!important}
/* placeholder notes: a small line, not a box */
.kp-rsec-h .kp-rsec-flag{padding:0 0 0 14px!important;border:0!important;background:none!important;position:relative;color:#9a6a2c!important;font-size:11.5px!important}
.kp-rsec-h .kp-rsec-flag::before{content:"";position:absolute;left:2px;top:.45em;width:6px;height:6px;border-radius:50%;background:#c79a56}
.kp-rsec-h .kp-rsec-ok{padding:0 0 0 14px!important;position:relative}
.kp-rsec-h .kp-rsec-ok::before{content:"";position:absolute;left:2px;top:.45em;width:6px;height:6px;border-radius:50%;background:#7c8a6a}
/* rows and fields */
.kp-rsec-f{border-top:0!important}
.kp-app .kp-rf{min-height:40px!important;border-bottom:1px solid rgba(19,17,15,.07)!important}
.kp-app .kp-rf:last-child{border-bottom:0!important}
.kp-app .kp-rf .l{font-size:12.5px!important;color:#2f2b27!important}
.kp-app .kp-rf input{height:28px;box-sizing:border-box;padding:0 8px!important;border:1px solid rgba(19,17,15,.14)!important;border-radius:3px;background:#fff!important;transition:border-color .15s,box-shadow .15s}
.kp-app .kp-rf input:hover{border-color:rgba(19,17,15,.28)!important}
.kp-app .kp-rf input:focus{border-color:var(--ink)!important;box-shadow:0 0 0 3px rgba(19,17,15,.06)!important}
.kp-rf .in{grid-template-columns:14px 84px 78px!important;align-items:center!important}
.kp-rform>.kp-rsec:nth-of-type(1) .kp-rf .in{grid-template-columns:50px 84px 32px!important}
.kp-rf-g{margin:10px 0 2px!important;border-bottom:0!important;padding:0!important;font-size:10px!important;letter-spacing:.14em;color:#9a9086!important}
.kp-rsec-sum{margin:14px 0 2px!important;border-radius:3px;border-color:rgba(19,17,15,.08)!important;background:#f3efe6!important}
/* banner, save bar, change log */
.kp-rates-warn{border-radius:3px;font-family:Arial,Helvetica,sans-serif!important;font-size:12px!important;padding:9px 14px!important;margin-bottom:16px!important}
.kp-rform-foot{justify-content:flex-end;gap:16px!important;padding:12px 0!important;border-top:1px solid rgba(19,17,15,.1)!important;background:rgba(243,239,231,.96)!important;backdrop-filter:blur(4px)}
.kp-rform-foot .kp-a-dim{order:-1;margin-right:auto;font-family:Arial,Helvetica,sans-serif!important;font-size:12px!important;color:#857c71!important}
.kp-rform-foot .btn{background:var(--ink)!important;color:#f3efe7!important;border-color:var(--ink)!important;padding:10px 26px!important}
.kp-rlog{margin-top:22px;font-family:Arial,Helvetica,sans-serif}
.kp-rlog summary{cursor:pointer;list-style:none;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#5c554e}
.kp-rlog summary::-webkit-details-marker{display:none}
.kp-rlog summary::before{content:"+ "}
.kp-rlog[open] summary::before{content:"\2212 "}
.kp-rlog summary span{margin-left:6px;color:#9a9086}
.kp-rlog .kp-a-timeline{margin-top:14px}
.kp-rform>.kp-rsec{gap:0!important}
.kp-rsec-h>p{width:100%}
.kp-rsec-h{margin-bottom:10px!important}
.kp-rsec-h>p{max-width:none!important;flex-basis:100%!important}
/* V277 — staff Fabrics: the same filters and sorting as the client picker, plus staff sorts */
.kp-fab-stools{margin:4px 0 18px}
.kp-fab-stools .kp-fab-row2{margin-top:16px}
.kp-fab-staff .kp-lib-card .img.cut{background:#f6f3ed;display:grid;place-items:center}
.kp-fab-staff .kp-lib-card .img.cut img{width:86%!important;height:190px!important;object-fit:contain;margin:0 auto}
.kp-fab-stools{display:block!important}
.kp-fab-stools .kp-fab-search{display:flex!important;width:100%;box-sizing:border-box;margin-top:6px}
.kp-fab-stools .kp-fab-search input{flex:1;width:auto!important;min-width:0}
.kp-fab-stools .kp-fab-count{display:block;text-align:left;margin:12px 0 0!important}
/* V278 — uploaded fabric photos shown as cut swatches */
.kp-ws-img .pv.cut{background:#f6f3ed}.kp-ws-img .pv.cut img{object-fit:contain}
/* V285 — audit fixes */
.kp-sch-tocome{color:#8a6a1e}.kp-sheet-tocome{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(19,17,15,.1);font-family:var(--serif)}.kp-sheet-tocome dt{color:#8a6a1e}.kp-sheet-tocome dd{margin:0;color:var(--muted)}
.kp-a-meta.kp-a-warn{color:#8a6a1e}
.kp-cs-row-plain{grid-template-columns:96px minmax(0,1fr) 60px}.kp-cs-row-plain .kp-cs-rimg img{width:96px;height:72px;object-fit:cover;border-radius:2px}.kp-cs-row-plain .kp-cs-rmain b{display:block;font-weight:400;font-family:var(--serif);font-size:15px}.kp-cs-row-plain .kp-cs-rmain span{font-family:var(--serif);font-size:12.5px;color:var(--muted)}.kp-cs-row-plain .kp-cs-rqty{text-align:right;font-family:var(--serif)}
/* the client's printed schedule: no controls, one clean list */
@media print{
  html.kp-print-inv .kp-cs .kp-cs-filter,html.kp-print-inv .kp-cs .kp-cs-jump,html.kp-print-inv .kp-cs .kp-cs-addwrap,html.kp-print-inv .kp-cs .kp-drag-h,html.kp-print-inv .kp-cs .kp-cs-more,html.kp-print-inv .kp-cs .kp-cs-menu,html.kp-print-inv .kp-cs .kp-cs-cmts,html.kp-print-inv .kp-cs .kp-cs-rm,html.kp-print-inv .kp-cs .kp-cs-dw,html.kp-print-inv .kp-cs .kp-cs-mb,html.kp-print-inv .kp-cs button,html.kp-print-inv .kp-cs select,html.kp-print-inv .kp-cs .kp-cs-state,html.kp-print-inv .kp-cs .kp-cs-qa{display:none!important}
  html.kp-print-inv .kp-cs-row{grid-template-columns:72px minmax(0,1fr) 60px 110px!important;gap:12px!important;padding:8px 0!important;break-inside:avoid}
  html.kp-print-inv .kp-cs-room{break-inside:auto}html.kp-print-inv .kp-cs-rh{margin-top:14px}
}
/* accessibility: a skip link, the Capabilities page's h1 styled as its section heading, footer headings as text,
   and tertiary text dark enough to read (4.5:1 on the paper tone) */
.kp-skip{position:absolute;left:12px;top:-60px;z-index:1000;padding:10px 14px;background:var(--ink);color:#fff;font-family:var(--sans);font-size:11px;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;transition:top .15s}
.kp-skip:focus{top:12px;outline:2px solid #fff;outline-offset:2px}
.section-head h1{font-size:clamp(22px,2vw,30px)!important;font-weight:400;margin:0;letter-spacing:-.01em}
.footer .footer-h{font-size:8.5px;text-transform:uppercase;letter-spacing:.1em;margin:0 0 14px;font-family:var(--sans);color:var(--ink)}
html:lang(zh) .footer .footer-h{font-size:11px;letter-spacing:.06em}
:root{--muted:#635c53}
.kp-cc-st ul li.soon{color:#6f675f}
.kp-sch-exg,.kp-a-note,.kp-rf .n,.kp-rf .u,.kp-a-dim,.kp-cs-note,.kp-rg-note{color:#6f675f}
/* phones: tables that scroll sideways say so, the first column stays put, tap targets are at least 44px, tab strips fade at their edges */
@media (max-width:760px){
  .kp-sv{overflow-x:auto;-webkit-overflow-scrolling:touch}.kp-sv-t{min-width:640px}
  .kp-sheet-wrap{position:relative}
  .kp-sheet-wrap::before{content:"Swipe sideways for cost, currency and profit";display:block;margin:0 0 6px;font-family:var(--sans);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:#6f675f}
  .kp-sheet-wrap::after{content:"";position:absolute;right:0;top:22px;bottom:0;width:34px;background:linear-gradient(to left,rgba(246,242,235,.95),rgba(246,242,235,0));pointer-events:none}
  .kp-sheet-t th:first-child,.kp-sheet-t td:first-child{position:sticky;left:0;z-index:1;background:#f6f2eb}
  .kp-cs-more,.kp-cs-cmts>button,.kp-cs-cmts .kp-a-link,.kp-cs-rm{min-height:44px;display:inline-flex;align-items:center;padding:0 8px}
  .kp-cs-row .kp-drag-h{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center}
  .kp-app-tabs{-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 36px),transparent 100%);mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 36px),transparent 100%)}
  html[dir="rtl"] .kp-app-tabs{-webkit-mask-image:linear-gradient(to left,#000 0,#000 calc(100% - 36px),transparent 100%);mask-image:linear-gradient(to left,#000 0,#000 calc(100% - 36px),transparent 100%)}
  .kp-app .kp-rf .l{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
}

/* V288 — accessibility audit fixes */
.footer-bottom span:last-child{white-space:normal}                      /* the ABN / registered office line wraps (no sideways scroll on phones) */
@media (max-width:760px){.footer-bottom{flex-wrap:wrap}.footer-bottom span{display:block;max-width:100%}}
.footer .kp-soon-s{opacity:1}
.kp-sa-ch{opacity:.6}.kp-sa-ch.on{opacity:1}
@media (prefers-reduced-motion:reduce){.kp-sa-ch{opacity:1}}
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--ink,#13110f)!important;outline-offset:3px!important}
input[type=checkbox]:focus-visible+*,input[type=radio]:focus-visible+*{outline:2px solid var(--ink,#13110f);outline-offset:2px}
.kp-deck:focus-visible{outline:1px solid var(--ink,#13110f);outline-offset:8px}
.breadcrumb a{display:inline-block;padding:8px 0;margin:-8px 0}
.footer-top a{min-height:24px;box-sizing:border-box;overflow-wrap:anywhere}
input[type=file]:focus-visible{outline:2px solid var(--ink,#13110f);outline-offset:3px}
.kp-vh{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}

/* V289 — design critique fixes (the Bodoni Moda web font was tried and taken out again: the original Bodoni reads better). */
/* Capabilities page title in the serif like every other page title */
.kp-prod-cats .section-head h1{font-family:var(--serif)!important;font-size:clamp(30px,2.6vw,37.44px)!important;font-weight:400!important;letter-spacing:-.01em!important;line-height:1.15!important;text-transform:none!important}
/* Request pricing fields match the trade application and enquiry fields */
.form-panel input:not([type=checkbox]):not([type=radio]):not([type=file]),.form-panel select,.form-panel textarea{font-family:var(--serif)!important;font-size:16px!important;line-height:20.8px!important;border-bottom-color:rgba(19,17,15,.28)!important}
.form-panel input:not([type=checkbox]):not([type=radio]):not([type=file]){padding-top:9px!important;padding-bottom:10px!important}
/* product pages: the buttons sit under the title, the specification values are serif like their labels */
.product-info .product-actions.kp-under-title{margin:22px 0 30px!important}
.product-info .spec-row span:last-child{font-family:var(--serif)!important;font-size:13px!important}
/* a link inside a sentence is a plain underlined serif link */
.kp-inline-link{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:text-decoration-color .25s}
.kp-inline-link:hover{text-decoration-color:var(--muted)}
/* phones: a small Enquire button in the header, left of the logo */
.kp-m-enq{display:none}
@media (max-width:760px){
  .site-header .kp-m-enq{display:inline-flex;align-items:center;position:absolute;left:var(--mobile-pad,16px);top:50%;transform:translateY(-50%);height:30px;padding:0 10px;border:1px solid rgba(19,17,15,.62);font:400 8.5px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);text-decoration:none;z-index:3}
  html.kp-mnav-on .site-header .kp-m-enq{visibility:hidden}
}
.product-info h1{margin-bottom:28px!important}
.product-info .product-actions.kp-under-title{display:flex!important;flex-wrap:wrap;gap:8px;margin:0 0 32px!important;padding-top:0!important;border-top:0!important;min-height:0!important}
.product-info .product-actions.kp-under-title .btn{flex:1 1 auto;white-space:nowrap;width:auto!important;min-width:0}
.enquire-btn,.btn{white-space:nowrap}
/* header navigation a touch smaller than the rest of the V289 labels (8.5px -> 7.75px) */
.site-header .nav-links a,.site-header .utility-link,.site-header .enquire-btn,.site-header .kp-lang-btn{font-size:7.75px!important}
/* capability cards: the Surfaces + Textiles list reads like the others. No extra "coming soon" sentence (the greyed
   items say it), the live Textiles item is a plain list item that underlines on hover, and New is the same small
   outlined pill as in the footer. */
.cap-card ul li a{color:inherit;text-decoration:none!important;border:0!important;padding:0!important;transition:color .2s}
.cap-card ul li a:hover{text-decoration:underline!important;text-underline-offset:3px}
.cap-card .kp-cc-new{display:inline-block;margin-left:7px;padding:2px 6px 1px;border:1px solid currentColor;border-radius:999px;font:400 7.5px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.14em;text-transform:uppercase;font-style:normal;color:var(--ink);vertical-align:1px}

/* V290 — shipping destinations: Data → Shipping shows one destination's rates at a time; each schedule and each new
   project has its own destination */
.kp-dest-top{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 28px;padding:0 0 6px}
.kp-dest-acts{display:flex;flex-direction:column;align-items:flex-start}
.kp-dest-top .kp-rsec-flag{margin:0!important;display:inline-block}
.kp-dest-sel{display:flex;align-items:baseline;gap:12px;font-family:var(--serif);font-size:14px;color:#5c554e;white-space:nowrap}
.kp-dest-sel span{font-family:Arial,Helvetica,sans-serif;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#5c554e}
.kp-app .kp-dest-sel select{min-width:220px;height:auto!important;margin:0!important;padding:6px 22px 7px 0!important;border:0!important;border-bottom:1px solid rgba(19,17,15,.35)!important;border-radius:0!important;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='5'%3E%3Cpath d='M.5.5l4 4 4-4' fill='none' stroke='%2313110f'/%3E%3C/svg%3E") right 2px center no-repeat!important;-webkit-appearance:none;appearance:none;font-family:var(--serif)!important;font-size:16px!important;color:var(--ink)!important;cursor:pointer}
.kp-dest-add{display:flex;align-items:center;gap:12px;margin-top:10px}
.kp-dest-add[hidden],.kp-dest-g[hidden],.kp-dest-note[hidden]{display:none!important}
.kp-app .kp-dest-add input{width:220px!important;height:auto!important;margin:0!important;padding:6px 0 7px!important;border:0!important;border-bottom:1px solid rgba(19,17,15,.35)!important;background:transparent!important;font-family:var(--serif)!important;font-size:15px!important}
.kp-dest-g{display:contents}
.kp-dest-note{text-align:right}
.kp-dest-use{margin:8px 0 0!important;font-size:13px!important;color:#7a726a!important}
.kp-app .kp-a-field .kp-no-desth{display:block;margin-top:6px;font-style:normal;font-family:var(--serif)!important;font-size:13px!important;line-height:1.4;letter-spacing:0!important;text-transform:none!important;color:#7a726a!important}
@media (max-width:820px){ .kp-dest-top{flex-direction:column;align-items:stretch} .kp-dest-note{text-align:left} .kp-dest-sel{flex-direction:column;gap:6px} .kp-app .kp-dest-sel select{min-width:0;width:100%} }

/* V290 — KNEHLER Shop Drawing Service: what it includes, agreed with a tick before it is added to a piece */
.kp-sd-modal{z-index:9500}
.kp-sd-card{width:min(600px,100%)}
.kp-sd-card h2{margin:6px 0 4px;font-family:var(--serif);font-weight:400;font-size:24px;letter-spacing:0;text-transform:none;color:var(--ink)}
.kp-sd-fee{margin:0 0 18px;font-family:var(--serif);font-size:15px;color:#5c554e}
.kp-sd-fee b{font-weight:400;color:var(--ink)}
.kp-sd-card h3{margin:18px 0 8px;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#5c554e}
.kp-sd-list{margin:0;padding:0 0 0 18px;font-family:var(--serif);font-size:15px;line-height:1.55;color:var(--ink)}
.kp-sd-list li{margin:0 0 6px}
.kp-sd-ok{display:flex;align-items:flex-start;gap:12px;margin:22px 0 0;padding:14px 16px;border:1px solid rgba(19,17,15,.16);border-radius:4px;background:#fffdf8;cursor:pointer;font-family:var(--serif);font-size:15px;line-height:1.45;color:var(--ink)}
.kp-sd-ok input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:#13110f;cursor:pointer}
.kp-sd-acts{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:20px}
.kp-sd-acts .btn[disabled]{opacity:.4;cursor:not-allowed}
.kp-sd-modal .kp-sd-ok,.kp-sd-modal .kp-sd-ok span{font-family:var(--serif)!important;font-size:15px!important;line-height:1.45!important;letter-spacing:0!important;text-transform:none!important;color:var(--ink)!important}

/* V290 — Data → Shipping: the destination panel spans the whole shipping section, grouped Australia / USA / Europe /
   Elsewhere, each destination with its all-in rate and when it was last updated */
.kp-dest-pick{grid-column:1/-1;position:relative}
.kp-app .kp-dest-btn{all:unset;box-sizing:border-box;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:6px 22px;padding:14px 20px;border:1px solid rgba(19,17,15,.22);border-radius:4px;background:#fffdf8;cursor:pointer}
.kp-app .kp-dest-btn:hover,.kp-app .kp-dest-btn.open{border-color:var(--ink)}
.kp-app .kp-dest-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.kp-dest-btn .l{font-family:Arial,Helvetica,sans-serif;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#5c554e}
.kp-dest-btn .v b{font-family:var(--serif);font-weight:400;font-size:21px;color:var(--ink)}
.kp-dest-btn .v em{margin-left:12px;font-style:normal;font-family:var(--serif);font-size:14px;color:#7a726a}
.kp-dest-btn .s{font-family:var(--serif);font-size:13.5px;color:#7a726a}
.kp-dest-btn i{width:9px;height:9px;margin:0 4px 4px 0;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:rotate(45deg);transition:transform .2s ease}
.kp-dest-btn.open i{transform:translateY(4px) rotate(-135deg)}
.kp-dest-pop{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;padding:20px 24px 16px;background:#fffdf8;border:1px solid var(--ink);border-radius:4px;box-shadow:0 26px 50px -22px rgba(19,17,15,.38)}
.kp-dest-pop[hidden]{display:none!important}
.kp-dest-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 30px}
.kp-dest-gh{margin:0 0 6px!important;padding:0 0 8px;border-bottom:1px solid rgba(19,17,15,.12);font-family:Arial,Helvetica,sans-serif!important;font-size:10.5px!important;letter-spacing:.14em;text-transform:uppercase;color:#5c554e!important}
.kp-dest-col ul{list-style:none;margin:0;padding:0}
.kp-app .kp-dest-col button{all:unset;box-sizing:border-box;width:calc(100% + 20px);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n r" "u r";gap:1px 12px;margin:0 -10px;padding:8px 10px;border-radius:3px;cursor:pointer}
.kp-app .kp-dest-col button:hover{background:rgba(19,17,15,.05)}
.kp-app .kp-dest-col button:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}
.kp-app .kp-dest-col button.on{background:#f1ebdf}
.kp-dest-col .n{grid-area:n;font-family:var(--serif);font-size:15.5px;line-height:1.3;color:var(--ink)}
.kp-dest-col .r{grid-area:r;align-self:center;font-family:var(--serif);font-size:15px;color:var(--ink);white-space:nowrap}
.kp-dest-col .r small{font-size:11.5px;color:#7a726a}
.kp-dest-col .u,.kp-dest-key{display:flex;align-items:center;gap:6px;font-family:var(--serif);font-size:12.5px;color:#7a726a}
.kp-dest-col .u{grid-area:u}
.kp-dest-col .u::before,.kp-dest-key i{content:"";flex:none;display:inline-block;width:7px;height:7px;border-radius:50%;background:#c49a5a}
.kp-dest-col .u.ok::before,.kp-dest-key i.ok{background:#5f8a62}
.kp-dest-key{flex-wrap:wrap}
.kp-dest-key i.old{margin-left:10px}
.kp-dest-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 26px;margin-top:16px;padding-top:14px;border-top:1px solid rgba(19,17,15,.12)}
.kp-dest-addrow{display:flex;align-items:center;gap:12px}
.kp-app .kp-dest-addrow select,.kp-app .kp-dest-addrow input{height:auto!important;margin:0!important;padding:5px 0 6px!important;border:0!important;border-bottom:1px solid rgba(19,17,15,.35)!important;border-radius:0!important;background-color:transparent!important;font-family:var(--serif)!important;font-size:14.5px!important;color:var(--ink)!important}
.kp-app .kp-dest-addrow select{padding-right:18px!important;-webkit-appearance:none;appearance:none;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='5'%3E%3Cpath d='M.5.5l4 4 4-4' fill='none' stroke='%2313110f'/%3E%3C/svg%3E") right 2px center no-repeat!important}
.kp-app .kp-dest-addrow input{width:230px!important}
.kp-dest-top{grid-column:1/-1;display:block;padding:0;margin:4px 0 6px}
.kp-dest-note{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;text-align:left}
.kp-dest-note .kp-rsec-flag,.kp-dest-note .kp-rsec-ok{margin:0!important;display:inline-block}
.kp-dest-note .kp-dest-use{margin:0!important}
@media (max-width:1000px){ .kp-dest-cols{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:620px){ .kp-dest-cols{grid-template-columns:1fr} .kp-app .kp-dest-btn{grid-template-columns:minmax(0,1fr) auto} .kp-dest-btn .l,.kp-dest-btn .s{grid-column:1/-1} .kp-dest-btn .v em{display:block;margin:2px 0 0} .kp-dest-addrow{flex-wrap:wrap} .kp-app .kp-dest-addrow input{width:100%!important} }

/* V290 — Today: Hugh's Monday task to update the shipping rates, one tick box per destination */
.kp-wk{margin:0 0 26px;padding:20px 24px;border:1px solid rgba(19,17,15,.16);border-left:3px solid #b78b4b;border-radius:4px;background:#fffdf8}
.kp-wk.done{border-left-color:#5f8a62;background:rgba(255,253,248,.6)}
.kp-wk-h{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 30px}
.kp-wk-h h2{margin:4px 0 4px!important;font-family:var(--serif);font-weight:400;font-size:22px;letter-spacing:0;text-transform:none;color:var(--ink)}
.kp-wk-h .kp-a-kicker b{font-weight:700;color:#8a5a1e}
.kp-wk-m{margin:0;font-family:var(--serif);font-size:14px;color:#6d665e}
.kp-wk-prog{display:flex;align-items:center;gap:14px;font-family:var(--serif)}
.kp-wk-prog b{font-weight:400;font-size:24px;color:var(--ink)}
.kp-wk-prog b span{font-size:14px;color:#7a726a}
.kp-wk-prog .bar{width:140px;height:4px;border-radius:2px;background:rgba(19,17,15,.1);overflow:hidden}
.kp-wk-prog .bar i{display:block;height:100%;background:#5f8a62}
.kp-wk-list{margin-top:14px;border-top:1px solid rgba(19,17,15,.1);padding-top:10px}
.kp-wk-list summary{cursor:pointer;font-family:Arial,Helvetica,sans-serif;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#5c554e;padding:4px 0}
.kp-wk-how{margin:6px 0 14px;font-family:var(--serif);font-size:14px;line-height:1.5;color:#6d665e;max-width:760px}
.kp-wk-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 28px}
.kp-wk-g{margin:0 0 6px!important;padding-bottom:6px;border-bottom:1px solid rgba(19,17,15,.12);font-family:Arial,Helvetica,sans-serif;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#5c554e}
.kp-wk-cols ul{list-style:none;margin:0;padding:0}
.kp-wk-cols li{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"c a" "v a";gap:0 10px;padding:7px 0;border-bottom:1px solid rgba(19,17,15,.06)}
.kp-wk-cols label{grid-area:c;display:flex;align-items:center;gap:10px;cursor:pointer;font-family:var(--serif);font-size:15px;color:var(--ink);text-transform:none;letter-spacing:0}
.kp-app .kp-wk-cols label input{flex:none;width:17px!important;height:17px!important;margin:0!important;accent-color:#13110f;cursor:pointer}
.kp-wk-cols li.ok .n{color:#6d665e}
.kp-wk-cols .v{grid-area:v;padding-left:27px;font-family:var(--serif);font-size:12.5px;color:#7a726a}
.kp-wk-cols li>a{grid-area:a;align-self:center;font-size:10px}
.kp-wk-foot{margin-top:12px}
@media (max-width:1000px){ .kp-wk-cols{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:600px){ .kp-wk{padding:16px} .kp-wk-cols{grid-template-columns:1fr} .kp-wk-prog .bar{width:90px} }

/* V290 — clear tick boxes (drawn, not the browser's own) and the weekly shipping review table */
.kp-app .kp-tick{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:9px;padding:6px 10px 6px 6px;border-radius:4px;cursor:pointer;white-space:nowrap;font-family:var(--serif);font-size:13.5px;color:#5c554e}
.kp-app .kp-tick:hover{background:rgba(19,17,15,.05)}
.kp-app .kp-tick:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
.kp-tick .b{position:relative;flex:none;width:22px;height:22px;border:1.5px solid #13110f;border-radius:4px;background:#fff}
.kp-tick.on .b{background:#2f5d36;border-color:#2f5d36}
.kp-tick.on .b::after{content:"";position:absolute;left:7px;top:2px;width:6px;height:12px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.kp-tick.on .t{color:#2f5d36}
.kp-wk-left{margin:14px 0 0;padding-top:12px;border-top:1px solid rgba(19,17,15,.1);font-family:var(--serif);font-size:14px;line-height:1.6;color:var(--ink)}
.kp-wk-left span{font-family:Arial,Helvetica,sans-serif;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#5c554e;margin-right:6px}
.kp-wk-prog .btn{margin-left:6px}
.kp-sw-top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 26px;margin:0 0 14px}
.kp-sw-prog{margin:0;font-family:var(--serif);font-size:16px;color:var(--ink)}
.kp-sw-prog b{font-weight:400;font-size:22px}
.kp-sw-wrap{overflow-x:auto;border:1px solid rgba(19,17,15,.14);border-radius:4px;background:#fffdf8}
.kp-sw-t{width:100%;border-collapse:collapse;font-family:var(--serif);font-size:14px;color:var(--ink)}
.kp-sw-t thead th{position:sticky;top:0;z-index:2;padding:12px 8px 10px;background:#f6f1e8;border-bottom:1px solid rgba(19,17,15,.16);text-align:right;vertical-align:bottom;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#3b3631;white-space:nowrap}
.kp-sw-t thead th span{display:block;margin-top:3px;font-size:9.5px;letter-spacing:.04em;text-transform:none;color:#7a726a}
.kp-sw-t thead th:first-child{text-align:left;padding-left:16px}
.kp-sw-t th.g2,.kp-sw-t th.g3,.kp-sw-t td:nth-child(7),.kp-sw-t td:nth-child(9){border-left:1px solid rgba(19,17,15,.1)}
.kp-sw-t tr.grp th{padding:16px 16px 6px;background:#fffdf8;text-align:left;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#5c554e;border-bottom:1px solid rgba(19,17,15,.1)}
.kp-sw-t tbody th[scope=row]{position:sticky;left:0;z-index:1;min-width:190px;padding:10px 12px 10px 16px;background:#fffdf8;text-align:left;font-weight:400;border-bottom:1px solid rgba(19,17,15,.07)}
.kp-sw-t tbody th[scope=row] b{display:block;font-weight:400;font-size:15px}
.kp-sw-t tbody th[scope=row] span{display:block;margin-top:2px;font-size:12px;color:#8a5a1e}
.kp-sw-t tr.ok th[scope=row] span{color:#2f5d36}
.kp-sw-t td{padding:8px 6px;border-bottom:1px solid rgba(19,17,15,.07);text-align:right;vertical-align:top;white-space:nowrap}
.kp-sw-t tr.ok td,.kp-sw-t tr.ok th[scope=row]{background:#f3f6ef}
.kp-sw-in{display:inline-flex;align-items:baseline;gap:2px;color:#7a726a;font-size:12.5px}
.kp-app .kp-sw-in input{width:62px!important;height:auto!important;margin:0!important;padding:5px 6px!important;border:1px solid rgba(19,17,15,.22)!important;border-radius:3px!important;background:#fff!important;font-family:var(--serif)!important;font-size:14.5px!important;text-align:right;color:var(--ink)!important}
.kp-app .kp-sw-in input:focus{border-color:var(--ink)!important;outline:none}
.kp-app .kp-sw-in input.chg{border-color:#b78b4b!important;background:#fff8ea!important}
.kp-sw-t .was{display:block;margin-top:3px;font-size:11.5px;color:#8a5a1e}
.kp-sw-t td.cl,.kp-sw-t th.cl{border-left:1px solid rgba(19,17,15,.1)}
.kp-sw-t td.cl b{display:inline-block;padding-top:6px;font-weight:400;font-size:15px}
.kp-sw-t td.tk,.kp-sw-t th.tk{text-align:left;padding-left:12px}
.kp-sw-foot{position:sticky;bottom:0;margin-top:0!important;padding:14px 0!important;background:var(--paper,#f3efe7)}
.kp-sw-t tr.grp th{position:sticky;left:0;z-index:1}
.kp-sw-t tr.grp td{background:#fffdf8;border-bottom:1px solid rgba(19,17,15,.1)}
.kp-sw-t tbody th[scope=row]{min-width:150px;max-width:180px;white-space:normal}
.kp-sw-t td{padding:8px 4px}
.kp-app .kp-sw-in input{width:56px!important;padding:5px 5px!important}
.kp-sw-t thead th{padding:12px 4px 10px;font-size:10.5px;letter-spacing:.04em}
.kp-sw-t td.tk,.kp-sw-t th.tk{padding-left:8px;padding-right:12px}
.kp-sw-foot{z-index:3}
/* V290 — Data: the way into the weekly shipping update (header button and a band at the top of Shipping) */
.kp-app .kp-sw-go{display:inline-flex;flex-direction:column;align-items:flex-start;gap:3px}
.kp-app .kp-sw-go span{font-family:var(--serif);font-size:12px;letter-spacing:0;text-transform:none;opacity:.75}
.kp-sw-band{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding:14px 18px;border:1px solid rgba(183,139,75,.45);border-radius:4px;background:#fbf4e6;font-family:var(--serif);font-size:14.5px;line-height:1.5;color:var(--ink)}
.kp-sw-band b{font-weight:400;margin-right:6px;font-family:Arial,Helvetica,sans-serif;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#6b4f2a}
.kp-sw-band{margin-bottom:10px}.kp-sw-band .btn{background:var(--ink);color:#fffdf8;border-color:var(--ink)}

/* V290 — approve and sign the quotation: the bar at the foot of the screen, the review document, the signature */
.kp-qa-bar{position:fixed;left:0;right:0;bottom:0;z-index:300;padding:14px 20px calc(14px + env(safe-area-inset-bottom));background:#13110f;color:#fffdf8;box-shadow:0 -12px 30px -18px rgba(0,0,0,.5);animation:kpQaUp .35s cubic-bezier(.2,.7,.2,1)}
@keyframes kpQaUp{from{transform:translateY(100%)}to{transform:none}}
.kp-qa-bar-in{max-width:1180px;margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px}
.kp-qa-bar p{margin:0;font-family:var(--serif);font-size:16px}
.kp-qa-bar p b{font-weight:400}
.kp-qa-bar p span{color:rgba(255,253,248,.7);margin-left:6px}
.kp-qa-bar .btn{background:#fffdf8!important;color:#13110f!important;border-color:#fffdf8!important}
.kp-cs-confirmed,.kp-cs-quoted{scroll-margin-bottom:90px}
body:has(.kp-qa-bar) .kp-app-main{padding-bottom:96px}
.kp-qa-modal{z-index:9600;align-items:start;overflow-y:auto}
.kp-qa-card{width:min(1040px,100%)!important;max-height:none!important;margin:20px auto;padding:30px 34px 28px!important}
.kp-qa-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}
.kp-qa-top h2{margin:6px 0 6px;font-family:var(--serif);font-weight:400;font-size:28px;letter-spacing:0;text-transform:none;color:var(--ink)}
.kp-qa-tacts{display:flex;align-items:center;gap:18px;flex:none}
.kp-qa-x{all:unset;cursor:pointer;font-size:26px;line-height:1;padding:2px 6px;color:var(--ink)}
.kp-qa-doc{font-family:var(--serif);color:var(--ink)}
.kp-qa-dh{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-top:1px solid rgba(19,17,15,.2);border-bottom:1px solid rgba(19,17,15,.12);font-size:13px;line-height:1.5;color:#5c554e}
.kp-qa-dh p{margin:0}
.kp-qa-dh .co{color:var(--ink);font-size:14px}
.kp-qa-dh .r{text-align:right}
.kp-qa-dh .k,.kp-qa-signed .k{font-family:Arial,Helvetica,sans-serif;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#5c554e}
.kp-qa-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 24px;margin:16px 0 22px}
.kp-qa-meta dt,.kp-qa-tot dt{font-family:Arial,Helvetica,sans-serif;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#7a726a}
.kp-qa-meta dd{margin:3px 0 0;font-size:15px}
.kp-qa-doc h3,.kp-qa-sign h3{margin:26px 0 10px;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#3b3631}
.kp-qa-doc h3 span{color:#7a726a;margin-left:6px}
.kp-qa-t{width:100%;border-collapse:collapse;font-size:14px}
.kp-qa-t th{padding:8px 6px;border-bottom:1px solid rgba(19,17,15,.2);font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#7a726a;text-align:left}
.kp-qa-t tr.rm th{padding-top:16px;color:#3b3631;border-bottom:1px solid rgba(19,17,15,.1)}
.kp-qa-t td{padding:12px 6px;border-bottom:1px solid rgba(19,17,15,.08);vertical-align:top}
.kp-qa-t .n{text-align:right;white-space:nowrap}
.kp-qa-t td.im{width:76px}
.kp-qa-t td.im img{width:70px;height:70px;object-fit:contain;background:#f6f1e8;border-radius:3px}
.kp-qa-t .cd{margin:0;font-family:Arial,Helvetica,sans-serif;font-size:10px;letter-spacing:.1em;color:#7a726a}
.kp-qa-t .nm{margin:2px 0 4px;font-size:16px}
.kp-qa-t .sp{margin:0 0 6px;color:#3b3631;line-height:1.45}
.kp-qa-t .dt{margin:0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:#3b3631}
.kp-qa-t .dt b{font-weight:400;color:#7a726a;margin-right:4px}
.kp-qa-t .nt{margin:6px 0 0;font-size:12.5px;color:#2f5d36}
.kp-qa-dec{margin:12px 0 0;font-size:13.5px;color:#6d665e}
.kp-qa-dec b{font-weight:400;color:#3b3631}
.kp-qa-tot{margin:18px 0 0 auto;max-width:440px}
.kp-qa-tot div{display:flex;justify-content:space-between;gap:20px;padding:7px 0;border-bottom:1px solid rgba(19,17,15,.08)}
.kp-qa-tot dd{margin:0;font-size:15px}
.kp-qa-tot .t dt{color:var(--ink)}
.kp-qa-tot .t dd{font-size:20px}
.kp-qa-fx{margin:8px 0 0;text-align:right;font-size:12.5px;color:#7a726a}
.kp-qa-terms{padding:16px 18px;border:1px solid rgba(19,17,15,.12);border-radius:4px;background:#fffdf8;font-size:14px;line-height:1.55;color:#2b2724}
.kp-qa-terms p{margin:0 0 10px}
.kp-qa-terms p:last-child{margin:0}
.kp-qa-terms b{font-weight:400;color:var(--ink);text-decoration:underline;text-decoration-color:rgba(19,17,15,.25);text-underline-offset:3px}
.kp-qa-sign{margin-top:26px;padding:20px 22px;border:1.5px solid var(--ink);border-radius:4px;background:#fffdf8}
.kp-qa-sign h3{margin-top:0}
.kp-qa-sign .decl,.kp-qa-signed .decl{margin:0 0 16px;font-family:var(--serif);font-size:14.5px;line-height:1.55;color:#2b2724}
.kp-qa-f{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 20px}
.kp-qa-f label span,.kp-qa-pad p span{display:block;margin-bottom:5px;font-family:Arial,Helvetica,sans-serif;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#5c554e}
.kp-qa-f input{width:100%;box-sizing:border-box;margin:0;padding:7px 0 8px;border:0;border-bottom:1px solid rgba(19,17,15,.35);border-radius:0;background:transparent;font-family:var(--serif);font-size:15px;color:var(--ink);outline:none}
.kp-qa-f input:focus{border-bottom-color:var(--ink)}
.kp-qa-f input[readonly]{color:#6d665e}
.kp-qa-pad{position:relative;margin:18px 0 6px}
.kp-qa-pad p{display:flex;justify-content:space-between;align-items:baseline;margin:0}
.kp-qa-pad canvas{display:block;width:100%;height:150px;border:1px solid rgba(19,17,15,.3);border-radius:4px;background:#fff;touch-action:none;cursor:crosshair}
.kp-qa-pad em{position:absolute;left:0;right:0;bottom:56px;text-align:center;pointer-events:none;font-style:normal;font-family:var(--serif);font-size:15px;color:#b3aba2}
.kp-qa-pad em[hidden]{display:none}
.kp-qa-ck{display:flex;align-items:flex-start;gap:12px;margin:12px 0 0;cursor:pointer;font-family:var(--serif);font-size:15px;line-height:1.45;color:var(--ink);text-transform:none;letter-spacing:0}
.kp-qa-ck input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:#13110f;cursor:pointer;-webkit-appearance:auto;appearance:auto}
.kp-qa-err{margin:12px 0 0;color:#9b2c1f;font-family:var(--serif);font-size:14px}
.kp-qa-err[hidden]{display:none}
.kp-qa-foot{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:18px}
.kp-qa-foot .btn[disabled]{opacity:.4;cursor:not-allowed}
.kp-qa-signed{margin-top:26px;padding:18px 20px;border:1px solid #2f5d36;border-radius:4px;background:#f3f6ef}
.kp-qa-signed .sg{display:flex;flex-wrap:wrap;align-items:flex-end;gap:16px 30px}
.kp-qa-signed .sg img{width:300px;max-width:100%;height:auto;border-bottom:1px solid rgba(19,17,15,.4);background:#fff}
.kp-qa-signed dl{display:grid;grid-template-columns:repeat(2,minmax(140px,auto));gap:8px 24px;margin:0}
.kp-qa-signed dt{font-family:Arial,Helvetica,sans-serif;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#7a726a}
.kp-qa-signed dd{margin:2px 0 0;font-size:15px}
.kp-qa-signed .ref{margin:12px 0 0;font-size:12px;color:#7a726a}
.kp-sch-sig{display:block;width:180px;height:auto;margin:6px 0;background:#fff;border-bottom:1px solid rgba(19,17,15,.3)}
@media (max-width:760px){ .kp-qa-card{padding:20px 16px!important;margin:0} .kp-qa-f{grid-template-columns:1fr 1fr} .kp-qa-t td.im{width:56px} .kp-qa-t td.im img{width:50px;height:50px} .kp-qa-t thead th:nth-child(4),.kp-qa-t td:nth-child(4){display:none} .kp-qa-top h2{font-size:22px} .kp-qa-dh{flex-direction:column} .kp-qa-dh .r{text-align:left} }
/* print or save as PDF: only the approval document */
@media print{ html.kp-qa-printing body>*:not(.kp-qa-modal){display:none!important} html.kp-qa-printing .kp-qa-modal{position:static!important;background:none!important;overflow:visible!important} html.kp-qa-printing .kp-qa-card{box-shadow:none!important;border:0!important;margin:0!important;width:100%!important;opacity:1!important;transform:none!important} html.kp-qa-printing .kp-qa-tacts,html.kp-qa-printing .kp-qa-sign{display:none!important} }
.kp-cs-flash{outline:2px solid #b78b4b;outline-offset:2px;transition:outline-color .4s}
/* V290 approval document: full specification of each piece */
.kp-qa-spec{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px 22px;margin:10px 0 2px}
.kp-qa-spec section{break-inside:avoid}
.kp-qa-spec h4{margin:0 0 5px;padding-bottom:4px;border-bottom:1px solid rgba(19,17,15,.12);font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#7a726a}
.kp-qa-spec dl{margin:0}
.kp-qa-spec dl div{display:grid;grid-template-columns:minmax(92px,40%) 1fr;gap:8px;padding:3px 0;font-size:12.5px;line-height:1.4}
.kp-qa-spec dt{color:#7a726a}
.kp-qa-spec dd{margin:0;color:#2b2724;overflow-wrap:anywhere}
.kp-qa-spec dd a{color:inherit}
.kp-qa-spec .ns dd{color:#9a5b2a;font-style:italic}
.kp-qa-t td.it{min-width:0}
@media (max-width:760px){ .kp-qa-spec{grid-template-columns:1fr} }
@media print{ .kp-qa-spec{grid-template-columns:repeat(3,1fr)} .kp-qa-t tr{break-inside:auto} }

/* ===================== V291 — Finance (staff) ===================== */
.kp-fin{--fx-line:rgba(19,17,15,.12);--fx-soft:rgba(19,17,15,.06);--fx-in:#3d6fa6;--fx-out:#b8762a;--fx-bad:#9b3b2a;--fx-ok:#2f5d36;--fx-paper:#f6f2eb}
.kp-fin .kp-fx-head{align-items:flex-end}
.kp-fin .kp-fx-head h1 small.kp-fx-sub{display:block;margin-top:8px;font-family:Arial,Helvetica,sans-serif;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.kp-fx-acts{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.kp-fx-tabs{display:flex;gap:22px;flex-wrap:wrap;margin:-8px 0 22px;padding-bottom:10px;border-bottom:1px solid var(--fx-line)}
.kp-fx-tabs a{font-family:Arial,Helvetica,sans-serif;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-decoration:none;padding:6px 0;border-bottom:1px solid transparent}
.kp-fx-tabs a.on,.kp-fx-tabs a:hover{color:var(--ink);border-bottom-color:var(--ink)}
.kp-fx-exbar{margin:0 0 18px;padding:10px 14px;border:1px dashed #b78b4b;border-radius:3px;background:#fbf5ea;font-size:13px;color:#5f4320}
.kp-fx-exbar a{color:inherit}
.kp-fx-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin:0 0 22px;padding:14px 16px;border:1px solid var(--fx-line);border-radius:3px;background:rgba(255,255,255,.45)}
.kp-fx-f{display:flex;flex-direction:column;gap:5px;min-width:0}
.kp-fx-f>span{font-family:Arial,Helvetica,sans-serif;font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-fx-f>em{font-style:normal;font-size:11.5px;color:var(--muted);line-height:1.35}
.kp-fx-f select,.kp-fx-f input,.kp-fx-f textarea{font:inherit;font-size:13.5px;padding:7px 9px;border:1px solid var(--fx-line);border-radius:3px;background:#fff;color:var(--ink);min-width:0}
.kp-fx-range{flex:1 1 100%;margin:2px 0 0;font-size:12.5px;color:var(--muted)}
.kp-fx-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1px;margin:0 0 26px;border:1px solid var(--fx-line);background:var(--fx-line)}
.kp-fx-kpi{display:flex;flex-direction:column;gap:6px;padding:14px 16px;background:var(--fx-paper)}
.kp-fx-kpi>span{font-family:Arial,Helvetica,sans-serif;font-size:8px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.kp-fx-kpi>span small{font-size:8px;letter-spacing:.06em;text-transform:none}
.kp-fx-kpi>b{font-family:var(--serif);font-weight:400;font-size:25px;line-height:1.05;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--ink)}
.kp-fx-kpi>em{font-style:normal;font-size:11.5px;line-height:1.35;color:var(--muted)}
.kp-fx-kpi>em a{color:inherit}
.kp-fx-kpi.neg>b{color:var(--fx-bad)}
.kp-fx-kpi.warn{box-shadow:inset 3px 0 0 #b78b4b}
.kp-fx-callout{margin:0 0 26px;padding:12px 16px;border-left:2px solid var(--ink);background:rgba(255,255,255,.5);font-size:13.5px;line-height:1.5;color:#2b2724}
.kp-fx-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:18px;margin:0 0 30px}
.kp-fx-chart{margin:0;padding:14px 14px 6px;border:1px solid var(--fx-line);border-radius:3px;background:#fff}
.kp-fx-chart figcaption{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 8px;font-size:12.5px;color:#2b2724}
.kp-fx-chart .lg{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted)}
.kp-fx-chart .lg i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-left:8px}
.kp-fx-chart .lg i.dash{width:14px;height:0;border-top:2px dashed;border-radius:0;background:none}
.kp-fx-chart svg{display:block;width:100%;height:auto}
.kp-fx-chart .gl{stroke:rgba(19,17,15,.08);stroke-width:1}
.kp-fx-chart .zl{stroke:rgba(19,17,15,.35);stroke-width:1}
.kp-fx-chart .ax{font:10px Arial,Helvetica,sans-serif;fill:#6f675f}
.kp-fx-chart [data-tip]{cursor:default}
.kp-fx-chart rect[data-tip]:hover,.kp-fx-chart circle[data-tip]:hover{opacity:.8}
.kp-fx-tip{position:fixed;z-index:9600;padding:6px 9px;border-radius:3px;background:#13110f;color:#f6f2eb;font:12px/1.3 Arial,Helvetica,sans-serif;pointer-events:none;white-space:nowrap}
.kp-fx-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:26px}
.kp-fx-att{list-style:none;margin:0;padding:0}
.kp-fx-att li{border-bottom:1px solid var(--fx-soft)}
.kp-fx-att a{display:block;padding:9px 0;font-size:13.5px;color:var(--ink);text-decoration:none}
.kp-fx-att a b{display:inline-block;min-width:26px;font-weight:400;font-family:var(--serif);font-size:17px}
.kp-fx-att a:hover{opacity:.7}
.kp-fx-tw{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--fx-line);border-radius:3px;background:#fff;margin:0 0 6px}
.kp-fx-sticky{max-height:72vh;overflow:auto}
.kp-fx-t{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums}
.kp-fx-t th{position:sticky;top:0;z-index:2;padding:9px 10px;background:#f2ede4;border-bottom:1px solid var(--fx-line);font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:8.5px;letter-spacing:.11em;text-transform:uppercase;color:#5d564e;text-align:left;white-space:nowrap}
.kp-fx-t th button{all:unset;cursor:pointer}
.kp-fx-t td{padding:8px 10px;border-bottom:1px solid var(--fx-soft);vertical-align:top;color:#2b2724}
.kp-fx-t td small{display:block;margin-top:2px;font-size:11px;color:var(--muted)}
.kp-fx-t .n{text-align:right;white-space:nowrap}
.kp-fx-t td.in{color:var(--fx-in)} .kp-fx-t td.out{color:var(--fx-out)}
.kp-fx-t td.bad,.kp-fx-t tr.bad td{color:var(--fx-bad)} .kp-fx-t td.ok{color:var(--fx-ok)}
.kp-fx-t tr.fc td{background:rgba(61,111,166,.04);font-style:italic}
.kp-fx-t tr.sel td{background:#fbf5ea}
.kp-fx-t tr.tot td{font-weight:600;border-top:1px solid var(--fx-line)}
.kp-fx-t tfoot th{position:static;background:#faf7f2;font-size:9px}
.kp-fx-t td.bf{font-family:Arial,Helvetica,sans-serif;font-size:11px;letter-spacing:.06em;font-weight:600}
.kp-fx-t tr.locked td{background:repeating-linear-gradient(135deg,rgba(19,17,15,.025) 0 6px,transparent 6px 12px)}
.kp-fx-t a{color:var(--ink)}
.kp-fx-none{padding:18px 10px!important;color:var(--muted);font-size:13px;text-align:center}
.kp-fx-reg tbody tr.kp-fx-or{cursor:pointer}
.kp-fx-reg tbody tr.kp-fx-or:hover td{background:#faf7f2}
.kp-fx-reg tbody tr.kp-fx-or.open td{background:#f6f1e8;border-bottom-color:transparent}
.kp-fx-reg tbody tr.kp-fx-or td:first-child{position:sticky;left:0;z-index:1;background:inherit}
.kp-fx-hist>td{padding:6px 10px 18px!important;background:#f6f1e8}
.kp-fx-histw .kp-fx-tw{max-height:none}
.kp-fx-chip{display:inline-flex;align-items:center;height:18px;padding:0 7px;border:1px solid var(--fx-line);border-radius:9px;font-family:Arial,Helvetica,sans-serif;font-size:7.5px;letter-spacing:.11em;text-transform:uppercase;color:#5d564e;white-space:nowrap;vertical-align:middle;background:#fff}
.kp-fx-chip.ok{border-color:rgba(47,93,54,.35);color:var(--fx-ok)}
.kp-fx-chip.mid{border-color:rgba(183,139,75,.5);color:#8a5a22}
.kp-fx-chip.bad{border-color:rgba(155,59,42,.45);color:var(--fx-bad)}
.kp-fx-chip.ex{border-style:dashed;border-color:#b78b4b;color:#8a5a22;background:#fbf5ea}
.kp-fx-need{display:inline-block;padding:1px 7px;border-radius:9px;background:#fbf0dd;color:#8a5a22;font-size:11.5px;white-space:nowrap}
.kp-fx-warn{margin:10px 0;padding:9px 12px;border-left:2px solid #b78b4b;background:#fbf5ea;font-size:12.5px;line-height:1.45;color:#5f4320}
.kp-fx-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 14px}
.kp-fx-bar input[type=search]{flex:1 1 260px;font:inherit;font-size:13.5px;padding:8px 11px;border:1px solid var(--fx-line);border-radius:3px;background:#fff}
.kp-fx-bar .kp-fx-f{flex-direction:row;align-items:center;gap:8px}
.kp-fx-cols{position:relative}
.kp-fx-cols>summary{cursor:pointer;list-style:none;font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid currentColor;padding-bottom:2px}
.kp-fx-cols>summary::-webkit-details-marker{display:none}
.kp-fx-cols>div{position:absolute;z-index:20;top:24px;left:0;width:280px;max-height:60vh;overflow:auto;padding:12px 14px;border:1px solid var(--fx-line);border-radius:3px;background:#fff;box-shadow:0 12px 30px rgba(19,17,15,.12)}
.kp-fx-cols label{display:flex;gap:8px;align-items:center;padding:4px 0;font-size:13px}
.kp-fx-fy{margin:20px 0 10px;font-family:var(--serif);font-weight:400;font-size:21px}
.kp-fx-fy span,.kp-fx-arch summary span{font-family:Arial,Helvetica,sans-serif;font-size:8.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-left:8px}
.kp-fx-arch{margin:14px 0;border-top:1px solid var(--fx-line)}
.kp-fx-arch>summary{cursor:pointer;padding:12px 0;font-family:var(--serif);font-size:19px;list-style:none}
.kp-fx-arch>summary::before{content:"›";display:inline-block;margin-right:10px;transition:transform .2s}
.kp-fx-arch[open]>summary::before{transform:rotate(90deg)}
.kp-fx-arch>summary::-webkit-details-marker{display:none}
.kp-fx-cell{font:inherit;font-size:12.5px;padding:4px 6px;border:1px solid transparent;border-radius:2px;background:transparent;color:inherit;max-width:100%}
.kp-fx-cell:hover{border-color:var(--fx-line);background:#fff}
.kp-fx-cell:focus{border-color:var(--ink);background:#fff}
td.n .kp-fx-cell{text-align:right}
.kp-fx-cur{font-size:10px;color:var(--muted);margin-right:4px}
.kp-fx-lnk{all:unset;cursor:pointer;color:var(--ink);border-bottom:1px solid rgba(19,17,15,.3)}
.kp-fx-doc{all:unset;cursor:pointer;display:inline-block;margin:0 6px 3px 0;padding:1px 7px;border:1px solid var(--fx-line);border-radius:3px;font-size:11px;background:#faf7f2}
.kp-fx-doc:hover{border-color:var(--ink)}
.kp-fx-attach{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px dashed var(--fx-line);border-radius:3px;font-size:13px;color:var(--muted)}
.kp-fx-more{margin:8px 0 0;font-size:12.5px;color:var(--muted)}
.kp-fx-more a{color:var(--ink)}
.kp-fx-back{margin:-6px 0 18px;font-size:12.5px}
.kp-fx-back a{color:var(--ink)}
.kp-fx-pform{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px 18px;align-items:end}
.kp-fx-pform .btn{justify-self:start}
.kp-fx-status{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;margin:14px 0 22px;padding:12px 14px;border:1px solid var(--fx-line);border-radius:3px;background:#fff}
.kp-fx-status p{margin:0;flex:1 1 260px;font-size:13px}
.kp-fx-h3{margin:22px 0 10px;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-fx-pay{font-size:12px;white-space:nowrap;line-height:1.5}
.kp-fx-sorders{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 22px;margin:0 0 12px;font-size:13px}
.kp-fx-sorders a{color:var(--ink)}
/* forms */
.kp-fx-modal{position:fixed;inset:0;z-index:9500;display:flex;align-items:flex-start;justify-content:center;padding:4vh 16px;background:rgba(19,17,15,.4);overflow:auto;opacity:0;transition:opacity .2s}
.kp-fx-modal.in{opacity:1}
.kp-fx-card{width:min(860px,100%);padding:26px 28px;border-radius:4px;background:var(--fx-paper,#f6f2eb);box-shadow:0 24px 60px rgba(19,17,15,.25)}
.kp-fx-card header{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:0 0 14px}
.kp-fx-card h2{margin:0;font-family:var(--serif);font-weight:400;font-size:26px}
.kp-fx-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px 18px}
.kp-fx-grid .wide{grid-column:1/-1}
.kp-fx-grid label[hidden]{display:none}
.kp-fx-chk{display:flex;align-items:center;gap:8px;font-size:13px;align-self:center}
.kp-fx-so{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:8px;margin-top:6px}
.kp-fx-so select,.kp-fx-so input,.kp-fx-est input{font:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--fx-line);border-radius:3px;background:#fff;min-width:0}
.kp-fx-est{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 12px;margin-top:6px}
.kp-fx-est label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--muted)}
.kp-fx-card footer{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin-top:22px;padding-top:16px;border-top:1px solid var(--fx-line)}
.kp-fx-card footer [data-del]{margin-right:auto}
/* the printable report */
.kp-fx-report{padding:26px 28px;border:1px solid var(--fx-line);border-radius:3px;background:#fff}
.kp-fx-report h3{margin:26px 0 10px;font-family:var(--serif);font-weight:400;font-size:20px}
.kp-fx-report h3 span{font-family:Arial,Helvetica,sans-serif;font-size:10px;color:var(--muted)}
.kp-fx-rh{display:flex;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:1px solid var(--fx-line);font-size:12.5px;color:#4a443d}
.kp-fx-rh p{margin:0 0 3px}.kp-fx-rh .co{font-weight:600;color:var(--ink)}.kp-fx-rh .r{text-align:right}.kp-fx-rh .k{font-family:Arial,Helvetica,sans-serif;font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.kp-fx-disc{margin:22px 0 0;font-size:11.5px;color:var(--muted)}
@media (max-width:760px){
  .kp-fx-tabs{flex-wrap:nowrap;overflow-x:auto;gap:18px}
  .kp-fx-kpis{grid-template-columns:1fr 1fr}
  .kp-fx-kpi>b{font-size:20px}
  .kp-fx-charts,.kp-fx-2{grid-template-columns:1fr}
  .kp-fx-card{padding:20px 16px}
  .kp-fx-so{grid-template-columns:1fr 1fr}
  .kp-fx-rh{flex-direction:column}.kp-fx-rh .r{text-align:left}
}
@media print{
  html.kp-fx-printing body *{visibility:hidden!important}
  html.kp-fx-printing .kp-fx-report,html.kp-fx-printing .kp-fx-report *{visibility:visible!important}
  html.kp-fx-printing .kp-fx-report{position:absolute;left:0;top:0;width:100%;border:0;padding:0}
  html.kp-fx-printing .kp-fx-tw{overflow:visible;max-height:none;border:0}
  html.kp-fx-printing .kp-fx-t th{position:static;background:#f2ede4!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  html.kp-fx-printing .kp-fx-t tr{break-inside:avoid}
  html.kp-fx-printing .kp-fx-report h3{break-after:avoid}
}
/* V291 finance: fixes after review */
.kp-fx-kpis{gap:10px;border:0;background:none}
.kp-fx-kpi{border:1px solid var(--fx-line);border-radius:3px}
.kp-fx-charts{grid-template-columns:repeat(auto-fit,minmax(460px,1fr))}
.kp-fx-chart .ax{font-size:12px}
.kp-fx-reg,.kp-fx-tx{min-width:1320px}
.kp-fx-reg td,.kp-fx-tx td{white-space:nowrap}
.kp-fx-reg td:nth-child(5),.kp-fx-tx td:nth-child(6){white-space:normal;min-width:14em}
.kp-fx-tx select.kp-fx-cell{width:12.5em}
.kp-fx-tx input[type=date].kp-fx-cell{width:9.8em}
@media (max-width:760px){.kp-fx-charts{grid-template-columns:1fr}}
.kp-fx-reg .kp-fx-hist td,.kp-fx-reg .kp-fx-hist td td{white-space:normal}
.kp-fx-reg .kp-fx-hist .kp-fx-t{min-width:0}
.kp-fx-reg .kp-fx-hist .kp-fx-histw{position:sticky;left:10px;width:min(1100px,calc(100vw - 340px))}
@media (max-width:1100px){.kp-fx-reg .kp-fx-hist .kp-fx-histw{width:calc(100vw - 60px)}}
/* V291b — Finance, made easier to read */
.kp-fin .kp-fx-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:22px}
.kp-fin .kp-fx-head h1{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(30px,3.4vw,44px);line-height:1.05;letter-spacing:-.015em}
.kp-fx-lead{margin:10px 0 0;max-width:62ch;font-size:14.5px;line-height:1.5;color:#4a443d}
.kp-fx-newm{position:relative}
.kp-fx-newm>summary{list-style:none;cursor:pointer}
.kp-fx-newm>summary::-webkit-details-marker{display:none}
.kp-fx-newm>summary::after{content:"";display:inline-block;width:6px;height:6px;margin-left:10px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.kp-fx-newm>div{position:absolute;right:0;top:calc(100% + 6px);z-index:30;width:320px;padding:6px;border:1px solid var(--fx-line);border-radius:4px;background:#fff;box-shadow:0 16px 40px rgba(19,17,15,.14)}
.kp-fx-newm button{all:unset;box-sizing:border-box;display:block;width:100%;padding:10px 12px;border-radius:3px;cursor:pointer}
.kp-fx-newm button:hover,.kp-fx-newm button:focus-visible{background:#f6f2eb}
.kp-fx-newm button b{display:block;font-weight:400;font-size:14px;color:var(--ink)}
.kp-fx-newm button span{display:block;margin-top:2px;font-size:12px;color:var(--muted)}
.kp-fx-tabs{margin:0 0 20px}
.kp-fx-exbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;border-style:solid;border-color:#ecd9b8;font-size:12.5px}
.kp-fin .kp-fx-filters{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 26px;padding:0;border:0;background:none}
.kp-fin .kp-fx-filters>select,.kp-fin .kp-fx-filters>input{font:inherit;font-size:13.5px;padding:7px 10px;border:1px solid var(--fx-line);border-radius:3px;background:#fff;color:var(--ink)}
.kp-fx-to{font-size:13px;color:var(--muted)}
.kp-fx-pill{all:unset;cursor:pointer;padding:5px 10px;border-radius:14px;background:#13110f;color:#f6f2eb;font-size:12px}
.kp-fx-more-f{position:relative}
.kp-fx-more-f>summary{cursor:pointer;list-style:none;font-size:13px;color:var(--ink);text-decoration:underline;text-decoration-color:rgba(19,17,15,.3);text-underline-offset:3px}
.kp-fx-more-f>summary::-webkit-details-marker{display:none}
.kp-fx-more-f>div{position:absolute;z-index:25;top:calc(100% + 8px);left:0;display:grid;gap:12px;width:300px;padding:14px;border:1px solid var(--fx-line);border-radius:4px;background:#fff;box-shadow:0 16px 40px rgba(19,17,15,.12)}
/* the four overview panels */
.kp-fx-panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 0 28px}
.kp-fx-panels.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.kp-fx-panel{display:flex;flex-direction:column;padding:20px 22px 18px;border:1px solid var(--fx-line);border-radius:4px;background:#fff}
.kp-fx-panel header h2{margin:0;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-fx-panel header p{margin:4px 0 0;font-size:13px;color:#4a443d}
.kp-fx-panel .hero{margin:16px 0 14px}
.kp-fx-panel .hero b{display:block;font-family:var(--serif);font-weight:400;font-size:40px;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink)}
.kp-fx-panel .hero b small{font-family:Arial,Helvetica,sans-serif;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-left:6px}
.kp-fx-panel .hero span{display:block;margin-top:6px;font-size:12.5px;color:var(--muted)}
.kp-fx-panel .hero span a{color:inherit}
.kp-fx-panel.neg .hero b{color:var(--fx-bad)}
.kp-fx-panel dl{margin:0 0 6px;border-top:1px solid var(--fx-soft)}
.kp-fx-panel dl div{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:8px 0;border-bottom:1px solid var(--fx-soft);font-size:13.5px}
.kp-fx-panel dt{color:#4a443d}
.kp-fx-panel dt small,.kp-fx-panel dd small{font-size:11.5px;color:var(--muted)}
.kp-fx-panel dd{margin:0;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}
.kp-fx-panel dl div.sum dt,.kp-fx-panel dl div.sum dd{font-weight:600}
.kp-fx-panel dl div.warn dd{color:#8a5a22}.kp-fx-panel dl div.warn dt::after{content:" ●";color:#b78b4b;font-size:9px}
.kp-fx-panel dl div.dim dt,.kp-fx-panel dl div.dim dd{color:var(--muted)}
.kp-fx-panel .go,.kp-fx-box .go{margin-top:auto;padding-top:10px;font-size:12.5px;color:var(--ink);text-decoration:none;align-self:flex-start}
.kp-fx-panel .go:hover,.kp-fx-box .go:hover{text-decoration:underline}
.kp-fx-box{display:flex;flex-direction:column;padding:18px 22px;border:1px solid var(--fx-line);border-radius:4px;background:#fff}
.kp-fx-box h2{margin:0 0 10px;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-fx-todo,.kp-fx-up{list-style:none;margin:0;padding:0}
.kp-fx-todo li,.kp-fx-up li{border-bottom:1px solid var(--fx-soft)}
.kp-fx-todo li:last-child,.kp-fx-up li:last-child{border-bottom:0}
.kp-fx-todo a{display:flex;align-items:baseline;gap:12px;padding:9px 0;color:var(--ink);text-decoration:none;font-size:13.5px}
.kp-fx-todo a b{flex:none;min-width:22px;font-family:var(--serif);font-weight:400;font-size:19px}
.kp-fx-todo a:hover span{text-decoration:underline}
.kp-fx-up li{display:grid;grid-template-columns:56px 1fr auto;gap:10px;align-items:baseline;padding:8px 0;font-size:13px}
.kp-fx-up time{color:var(--muted);font-size:12px}
.kp-fx-up b{font-weight:400;font-variant-numeric:tabular-nums;white-space:nowrap}
.kp-fx-up b.in{color:var(--fx-in)}.kp-fx-up b.out{color:#8a5a22}
.kp-fx-up li.bad span{color:var(--fx-bad)}
/* segmented controls, hints, clickable rows */
.kp-fx-seg{display:inline-flex;border:1px solid var(--fx-line);border-radius:4px;background:#fff;overflow:hidden}
.kp-fx-seg button,.kp-fx-seg a{all:unset;cursor:pointer;padding:7px 14px;font-size:13px;color:#4a443d;border-right:1px solid var(--fx-line)}
.kp-fx-seg>:last-child{border-right:0}
.kp-fx-seg .on{background:#13110f;color:#f6f2eb}
.kp-fx-seg.sm button{padding:6px 11px;font-size:12.5px}
.kp-fx-seg.big{margin:0 0 22px}
.kp-fx-exps{display:inline-flex;align-items:center;gap:12px;margin-left:auto;font-size:12.5px;color:var(--muted)}
.kp-fx-hint{margin:0 0 12px;font-size:13px;color:var(--muted)}
.kp-fx-bar .kp-fx-hint{margin:0}
.kp-fx-bar input[type=search]{flex:0 1 280px}
.kp-fx-trow.click{cursor:pointer}
.kp-fx-trow.click:hover td{background:#faf7f2}
.kp-fx-tt{font-weight:400;color:var(--ink);margin-right:6px}
.kp-fx-pn{color:var(--ink);text-decoration:none;font-size:14px}
.kp-fx-pn:hover{text-decoration:underline}
.kp-fx-reg{min-width:0}
.kp-fx-reg td{white-space:nowrap}
.kp-fx-txr td{white-space:normal}
.kp-fx-txr td:first-child{white-space:nowrap;color:#4a443d}
.kp-fx-txr td small,.kp-fx-reg td small,.kp-fx-projt td small,.kp-fx-cur td small{display:block;margin-top:3px;font-size:11.5px;color:var(--muted);white-space:normal}
.kp-fx-txr .kp-fx-chip{margin-right:4px}
.kp-fx-projt td{padding:12px 12px}
.kp-fx-prog{height:6px;border-radius:3px;background:#efe9df;overflow:hidden;max-width:220px}
.kp-fx-prog i{display:block;height:100%;background:var(--fx-in);border-radius:3px}
.kp-fx-sum{margin:0 0 18px;padding:14px 18px 14px 34px;border:1px solid var(--fx-line);border-radius:4px;background:#fff;font-size:13.5px;line-height:1.6}
.kp-fx-sum b{font-weight:600}
.kp-fx-cur td{white-space:normal}
@media (max-width:900px){.kp-fx-panels,.kp-fx-panels.three{grid-template-columns:1fr}.kp-fx-panel .hero b{font-size:34px}.kp-fx-exps{margin-left:0}}
.kp-fin .kp-fx-filters>select,.kp-fin .kp-fx-filters>input{width:auto;max-width:100%}
.kp-fin .kp-fx-exbar{display:block}
.kp-fin .kp-fx-exbar .kp-fx-chip{margin:0 2px}
.kp-fx-narrow{max-width:720px}
.kp-fx-edit-p{margin:0 0 34px;padding:14px 18px;border:1px solid var(--fx-line);border-radius:4px;background:#fff}
.kp-fx-edit-p>summary{cursor:pointer;font-size:13.5px;color:var(--ink)}
.kp-fx-edit-p[open]>summary{margin-bottom:14px}
.kp-fx-txr td.in{color:var(--ink)} .kp-fx-txr td.out{color:#4a443d}
/* V291c — Finance, quieter */
.kp-fin .kp-fx-head{margin-bottom:26px}
.kp-fin .kp-fx-head h1{font-size:clamp(32px,3.6vw,46px)}
.kp-fx-lead{margin-top:8px;font-size:14px;color:var(--muted)}
.kp-fx-note{margin:6px 0 0;font-size:12.5px;color:var(--muted)}
.kp-fx-exnote{margin:-6px 0 22px;font-size:12.5px;color:#8a6a3d}
.kp-fx-exnote a{color:inherit}
.kp-fx-tabs{border-bottom-color:rgba(19,17,15,.08);margin-bottom:22px}
.kp-fx-ex{margin-left:6px;font-size:10.5px;letter-spacing:.04em;color:#a88a5e;font-style:italic;white-space:nowrap}
.kp-fx-st{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#4a443d;white-space:nowrap}
.kp-fx-st::before{content:"";width:6px;height:6px;border-radius:50%;background:#c9c2b8}
.kp-fx-st.ok::before{background:#3f7a4a}.kp-fx-st.mid::before{background:#c79a52}.kp-fx-st.wait::before{background:#3d6fa6}.kp-fx-st.bad{color:var(--fx-bad)}.kp-fx-st.bad::before{background:var(--fx-bad)}
.kp-fin .kp-fx-chip{border:0;background:none;padding:0;height:auto;font-size:10.5px;letter-spacing:.06em;color:var(--muted)}
.kp-fx-panels{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.kp-fx-panels.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.kp-fx-panel{padding:20px 20px 16px;border-color:rgba(19,17,15,.08)}
.kp-fx-panel>h2{margin:0;font-family:Arial,Helvetica,sans-serif;font-weight:400;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.kp-fx-panel .hero{margin:14px 0 16px}
.kp-fx-panel .hero b{font-size:34px}
.kp-fx-panel.warn .hero span{color:#8a5a22}
.kp-fx-panel dl{border-top:0}
.kp-fx-panel dl div{padding:6px 0;border-bottom:0;font-size:13px}
.kp-fx-panel dt{color:var(--muted)}
.kp-fx-panel .go{font-size:12px;color:var(--muted)}
.kp-fx-panel .go:hover{color:var(--ink)}
.kp-fx-charts.one{grid-template-columns:1fr}
.kp-fx-chart{border-color:rgba(19,17,15,.08)}
.kp-fx-box{border-color:rgba(19,17,15,.08)}
.kp-fx-box .go{font-size:12px;color:var(--muted)}
.kp-fx-tw{border-color:rgba(19,17,15,.08)}
.kp-fx-t th{background:#faf8f4;color:#7a726a}
.kp-fx-t td{border-bottom-color:rgba(19,17,15,.05)}
.kp-fx-txr td small,.kp-fx-reg td small,.kp-fx-projt td small,.kp-fx-cur td small{color:#8b847b}
@media (max-width:1180px){.kp-fx-panels{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.kp-fx-panels,.kp-fx-panels.three{grid-template-columns:1fr}}
.kp-fx-2{align-items:start}
/* ===== V291d — Finance: one clean UI type, clear tables (no decorative type) ===== */
.kp-fin,.kp-fx-modal{--fx-ui:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;--fx-text:#1f1c19;--fx-sub:#6b645c;--fx-rule:#e7e2da;--fx-head:#f4f1ec}
.kp-fin,.kp-fin *,.kp-fx-modal,.kp-fx-modal *{font-family:var(--fx-ui)!important;letter-spacing:0!important;font-style:normal!important}
.kp-fin{color:var(--fx-text);font-size:14px;line-height:1.45}
/* headings */
.kp-fin .kp-fx-head h1{font-size:28px;font-weight:600;line-height:1.2;color:var(--fx-text)}
.kp-fin .kp-fx-lead,.kp-fin .kp-fx-note{font-size:14px;color:var(--fx-sub)}
.kp-fin h2,.kp-fin .kp-a-sec h2,.kp-fin .kp-fx-panel>h2,.kp-fin .kp-fx-box h2{margin:0 0 12px;font-size:15px!important;font-weight:600!important;text-transform:none!important;color:var(--fx-text)!important}
.kp-fin h2 .kp-a-dim{font-weight:400;color:var(--fx-sub);font-size:13px}
.kp-fin h3,.kp-fin .kp-fx-fy,.kp-fin .kp-fx-h3,.kp-fin .kp-fx-report h3{margin:24px 0 10px;font-size:15px!important;font-weight:600!important;text-transform:none!important;color:var(--fx-text)!important}
.kp-fin .kp-fx-fy span,.kp-fin .kp-fx-arch summary span,.kp-fin .kp-fx-report h3 span{margin-left:8px;font-size:13px;font-weight:400;text-transform:none;color:var(--fx-sub)}
.kp-fin .kp-fx-arch>summary{font-size:15px;font-weight:600}
.kp-fin .kp-a-note,.kp-fin .kp-fx-hint,.kp-fin .kp-fx-disc,.kp-fin .kp-fx-more{font-size:13px;color:var(--fx-sub)}
.kp-fin .kp-fx-exnote{margin:-8px 0 20px;font-size:13px;color:#8a6a3d}
/* tabs */
.kp-fin .kp-fx-tabs{gap:4px;border-bottom:1px solid var(--fx-rule);padding-bottom:0}
.kp-fin .kp-fx-tabs a{padding:9px 12px;margin-bottom:-1px;font-size:14px;text-transform:none;color:var(--fx-sub);border-bottom:2px solid transparent}
.kp-fin .kp-fx-tabs a.on{color:var(--fx-text);font-weight:600;border-bottom-color:var(--fx-text)}
.kp-fin .kp-fx-tabs a:hover{color:var(--fx-text)}
/* buttons and links */
.kp-fin .btn,.kp-fx-modal .btn{display:inline-flex;align-items:center;height:36px;padding:0 16px;border-radius:6px;border:1px solid var(--fx-text);background:var(--fx-text);color:#fff;font-size:14px;font-weight:500;text-transform:none}
.kp-fin .btn:hover,.kp-fx-modal .btn:hover{opacity:.88}
.kp-fin .kp-a-link,.kp-fx-modal .kp-a-link{font-size:13.5px;text-transform:none;border-bottom:0;color:var(--fx-text);text-decoration:underline;text-decoration-color:#c9c2b8;text-underline-offset:3px;padding:0}
.kp-fin .kp-fx-newm>summary::after{border-color:#fff}
.kp-fin a{color:var(--fx-text)}
/* filters */
.kp-fin .kp-fx-filters>select,.kp-fin .kp-fx-filters>input,.kp-fin .kp-fx-f select,.kp-fin .kp-fx-f input,.kp-fin .kp-fx-f textarea,.kp-fin .kp-fx-bar input[type=search]{height:36px;padding:0 10px;border:1px solid #d9d3ca;border-radius:6px;font-size:14px;background:#fff}
.kp-fin .kp-fx-f textarea{height:auto;padding:8px 10px}
.kp-fin .kp-fx-f>span,.kp-fx-modal .kp-fx-f>span{font-size:13px!important;text-transform:none!important;color:var(--fx-sub)!important}
.kp-fin .kp-fx-more-f>summary{font-size:14px}
.kp-fin .kp-fx-seg{border-radius:6px;border-color:#d9d3ca}
.kp-fin .kp-fx-seg button,.kp-fin .kp-fx-seg a{padding:8px 14px;font-size:14px}
.kp-fin .kp-fx-seg .on{background:var(--fx-text);color:#fff;font-weight:500}
.kp-fin .kp-fx-cols>summary{font-size:13.5px;text-transform:none;border-bottom:0;text-decoration:underline;text-decoration-color:#c9c2b8;text-underline-offset:3px}
.kp-fin .kp-fx-exps{font-size:13.5px}
/* cards */
.kp-fin .kp-fx-panel,.kp-fin .kp-fx-box,.kp-fin .kp-fx-chart,.kp-fin .kp-fx-status,.kp-fin .kp-fx-sum,.kp-fin .kp-fx-report,.kp-fin .kp-fx-edit-p{border:1px solid var(--fx-rule);border-radius:8px;background:#fff}
.kp-fin .kp-fx-panel .hero b{font-size:30px;font-weight:600;letter-spacing:-.01em!important}
.kp-fin .kp-fx-panel .hero b small{font-size:13px;font-weight:400;text-transform:none}
.kp-fin .kp-fx-panel .hero span{font-size:13px}
.kp-fin .kp-fx-panel dl div{font-size:14px;padding:5px 0}
.kp-fin .kp-fx-panel dt{color:var(--fx-sub)}
.kp-fin .kp-fx-panel .go,.kp-fin .kp-fx-box .go{font-size:13.5px;color:var(--fx-text);text-decoration:underline;text-decoration-color:#c9c2b8;text-underline-offset:3px}
.kp-fin .kp-fx-todo a{font-size:14px}
.kp-fin .kp-fx-todo a b{min-width:28px;font-size:14px;font-weight:600}
.kp-fin .kp-fx-up li{font-size:14px;grid-template-columns:60px 1fr auto}
.kp-fin .kp-fx-up time{font-size:13px}
.kp-fin .kp-fx-chart figcaption{font-size:14px;font-weight:600}
.kp-fin .kp-fx-chart .lg{font-weight:400;font-size:13px}
.kp-fin .kp-fx-kpi>span{font-size:13px;text-transform:none;color:var(--fx-sub)}
.kp-fin .kp-fx-kpi>b{font-size:22px;font-weight:600}
/* tables: one clear style everywhere */
.kp-fin .kp-fx-tw{border:1px solid var(--fx-rule);border-radius:8px;background:#fff}
.kp-fin .kp-fx-t{font-size:14px;font-variant-numeric:tabular-nums}
.kp-fin .kp-fx-t th{padding:10px 14px;background:var(--fx-head);border-bottom:1px solid var(--fx-rule);font-size:13px!important;font-weight:600!important;text-transform:none!important;color:#3d3833!important;white-space:nowrap}
.kp-fin .kp-fx-t th button{font-weight:600}
.kp-fin .kp-fx-t td{padding:11px 14px;border-bottom:1px solid #f0ece6;color:var(--fx-text);vertical-align:middle}
.kp-fin .kp-fx-t tbody tr:last-child td{border-bottom:0}
.kp-fin .kp-fx-t td small{display:block;margin-top:2px;font-size:12.5px;color:var(--fx-sub)!important}
.kp-fin .kp-fx-t td.n,.kp-fin .kp-fx-t th.n{text-align:right}
.kp-fin .kp-fx-t tfoot th{background:#faf8f5;border-top:1px solid var(--fx-rule);border-bottom:0;font-size:14px!important}
.kp-fin .kp-fx-t tr.tot td{font-weight:600;background:#faf8f5}
.kp-fin .kp-fx-t td.bf{font-weight:600;font-size:13.5px}
.kp-fin .kp-fx-t tr.sel td{background:#f7f3ea}
.kp-fin .kp-fx-trow.click:hover td,.kp-fin .kp-fx-reg tbody tr.kp-fx-or:hover td{background:#f8f6f2}
.kp-fin .kp-fx-t td.in{color:var(--fx-text)} .kp-fin .kp-fx-t td.out{color:var(--fx-text)}
.kp-fin .kp-fx-t td.bad{color:#a33a26} .kp-fin .kp-fx-t td.ok{color:#2f6b3a}
.kp-fin .kp-fx-pn{font-size:14px;font-weight:500}
.kp-fin .kp-fx-tt{font-weight:500}
.kp-fin .kp-fx-none{font-size:14px;color:var(--fx-sub)}
.kp-fin .kp-fx-st{font-size:13.5px}
.kp-fin .kp-fx-ex{font-size:12px;color:#a2865c}
.kp-fin .kp-fx-chip{font-size:12px;color:var(--fx-sub)}
.kp-fin .kp-fx-need{font-size:13px}
.kp-fin .kp-fx-warn{font-size:13.5px;border-radius:6px}
.kp-fin .kp-fx-doc{font-size:12.5px;border-radius:4px}
.kp-fin .kp-fx-cell{font-size:13.5px}
/* report header */
.kp-fin .kp-fx-rh{font-size:13.5px}
.kp-fin .kp-fx-rh .k{font-size:13px;text-transform:none;font-weight:600}
/* forms */
.kp-fx-modal .kp-fx-card{border-radius:10px;background:#fff}
.kp-fx-modal .kp-fx-card h2{font-size:20px;font-weight:600}
.kp-fx-modal .kp-fx-f select,.kp-fx-modal .kp-fx-f input,.kp-fx-modal .kp-fx-f textarea{height:38px;padding:0 10px;border:1px solid #d9d3ca;border-radius:6px;font-size:14px;background:#fff}
.kp-fx-modal .kp-fx-f textarea{height:auto;padding:8px 10px}
.kp-fx-modal .kp-fx-f>em{font-size:12.5px;color:var(--fx-sub)}
.kp-fx-modal .kp-a-note,.kp-fx-modal .kp-fx-warn{font-size:13.5px}
.kp-fin .kp-fx-chip,.kp-fin .kp-fx-st{text-transform:none!important}
.kp-fin .btn{height:36px!important;font-size:14px!important;text-transform:none!important;font-weight:500!important;padding:0 16px!important}
.kp-fin .kp-fx-exnote{color:var(--fx-sub)}
.kp-fin .kp-fx-exnote a{color:var(--fx-text)}
.kp-fin .kp-fx-t tr.grp td{padding:14px 14px 6px;background:#fff;border-bottom:1px solid #f0ece6;font-size:13px;font-weight:600;color:var(--fx-sub)}
.kp-fin .kp-fx-narrow2{max-width:860px}
.kp-fin .kp-fx-filters .kp-fx-f{flex-direction:column}
.kp-fin .kp-fx-ship h2{font-size:16px!important}
.kp-fin .kp-fx-sorders{gap:8px 24px;font-size:14px;color:var(--fx-sub)}
.kp-fin .kp-fx-sorders b{color:var(--fx-text)}
.kp-fin .kp-fx-t tr.fc td{font-style:normal!important;background:#fbfaf7;color:var(--fx-sub)}
.kp-fin .kp-fx-pv button{padding:7px 14px}
.kp-fin .kp-fx-filters [data-fu-pk]{min-width:220px}

/* V292e — refined dragging (shared by the staff schedule and the client portal) */
.kp-drag-ghost{will-change:transform;opacity:0;scale:.97;transform-origin:26px 26px;transition:opacity .25s cubic-bezier(.16,1,.3,1),scale .4s cubic-bezier(.16,1,.3,1),box-shadow .4s cubic-bezier(.16,1,.3,1)}
.kp-drag-ghost.up{opacity:1;scale:1.03;box-shadow:0 28px 60px -18px rgba(50,38,18,.4),0 2px 6px rgba(50,38,18,.08)}
.kp-drag-ghost.drop{transition:transform .42s cubic-bezier(.65,0,.35,1),scale .42s cubic-bezier(.16,1,.3,1),opacity .3s,box-shadow .42s;scale:1;box-shadow:0 8px 20px -10px rgba(50,38,18,.3)}
.kp-drag-ghost.gone{opacity:0}
.kp-drag-line{top:0;will-change:transform;opacity:0;transition:transform .26s cubic-bezier(.16,1,.3,1),opacity .2s,left .26s cubic-bezier(.16,1,.3,1),width .26s cubic-bezier(.16,1,.3,1)}
.kp-drag-line.on{opacity:1}
.kp-drag-landing{opacity:0}
@media (prefers-reduced-motion:reduce){.kp-drag-ghost,.kp-drag-line{transition:opacity .2s}}
.kp-drag-ghost.whole{display:grid!important;align-items:center;position:fixed!important;top:0!important;margin:0!important;max-width:none!important;box-sizing:border-box;transform-origin:50% 50%;pointer-events:none}
.kp-drag-ghost.whole .kp-drag-h{visibility:hidden}

/* ======================================================================
   V295: phone menu in an iOS style (grouped, rounded, system type), KNEHLER colours
   ====================================================================== */
.mobile-nav.kp-mnav{--ios:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Helvetica,Arial,sans-serif;background:#F3EFE7!important;border-top:0!important}
.kp-mnav-in{padding:14px 0 calc(24px + env(safe-area-inset-bottom,0px))!important}
/* search: a grey rounded field */
.kp-mnav-search{margin:0 16px!important;padding:0 12px!important;height:38px;gap:8px!important;border:0!important;border-radius:11px;background:rgba(118,104,82,.12);font-family:var(--ios)!important;font-size:16px!important;letter-spacing:0!important;text-transform:none!important;color:#8c8376!important}
.kp-mnav-search svg{width:16px!important;height:16px!important;stroke:#8c8376!important;stroke-width:1.8!important}
/* the pages: one inset group with chevrons */
.kp-mnav-main{margin:20px 16px 0!important;border:0!important;border-radius:14px;background:rgba(255,255,255,.55);overflow:hidden}
.kp-mnav-main a{position:relative;display:flex!important;align-items:center;min-height:50px;padding:0 40px 0 16px!important;border:0!important;font-family:var(--ios)!important;font-size:17px!important;font-weight:400;letter-spacing:-.01em!important;line-height:1.2;color:#16140f!important}
.kp-mnav-main a+a::before{content:"";position:absolute;left:16px;right:0;top:0;height:1px;background:rgba(22,20,15,.09)}
.kp-mnav-main a::after{content:"";position:absolute;right:18px;top:50%;width:8px;height:8px;margin-top:-4px;border-top:1.6px solid rgba(22,20,15,.28);border-right:1.6px solid rgba(22,20,15,.28);transform:rotate(45deg)}
.kp-mnav-main a:active{background:rgba(22,20,15,.06)}
.kp-mnav-main a[aria-current]{text-decoration:none!important;font-weight:600}
/* actions: two pills right under the pages */
.kp-mnav-util{margin-top:0!important;padding:20px 16px 0!important}
.kp-mnav-boxes{gap:10px!important}
.kp-mnav-util a.kp-mnav-box{min-height:46px!important;border:0!important;border-radius:999px!important;background:rgba(118,104,82,.12);font-family:var(--ios)!important;font-size:15px!important;font-weight:500;letter-spacing:0!important;text-transform:none!important;color:#16140f!important}
.kp-mnav-util a.kp-mnav-box[href^="enquiry"]{background:#16140f;color:#fff!important}
.kp-mnav-util a.kp-mnav-box:active{opacity:.75;background:inherit}
/* language: a segmented control that scrolls sideways */
.kp-mnav-util .kp-lang-mob,.kp-mnav-util .kp-lang-mob[hidden]{display:flex!important;flex-wrap:nowrap!important;gap:2px!important;margin-top:20px!important;padding:2px!important;border-radius:10px;background:rgba(118,104,82,.12);overflow-x:auto;scrollbar-width:none}
.kp-mnav-util .kp-lang-mob::-webkit-scrollbar{display:none}
.kp-mnav-util .kp-lang-mob button{flex:1 0 auto;padding:7px 10px!important;border-radius:8px;font-family:var(--ios)!important;font-size:13px!important;letter-spacing:0!important;text-transform:none!important;text-decoration:none!important;color:#5f574c!important;white-space:nowrap}
.kp-mnav-util .kp-lang-mob button[aria-current]{background:#fff;color:#16140f!important;font-weight:600;box-shadow:0 1px 3px rgba(22,20,15,.12)}
.kp-mnav-util .kp-lang-mob::before{content:none}
/* V295: switching language from the phone menu — only the menu changes */
html{background:#F3EFE7}
.kp-mnav-util .kp-lang-mob{position:relative}
.kp-mnav-util .kp-lang-mob button{position:relative;z-index:1;background:transparent!important;box-shadow:none!important;transition:color .3s}
.kp-lang-pill{position:absolute;left:0;top:2px;bottom:2px;z-index:0;border-radius:8px;background:#fff;box-shadow:0 1px 3px rgba(22,20,15,.12);transition:transform .38s cubic-bezier(.16,1,.3,1),width .38s cubic-bezier(.16,1,.3,1);pointer-events:none}
html.kp-mnav-restore .mobile-nav,html.kp-mnav-restore .mobile-nav *{transition:none!important;animation:none!important}
html.kp-mnav-restore.kp-i18n-wait body{visibility:visible!important}
html.kp-mnav-restore.kp-i18n-wait main,html.kp-mnav-restore.kp-i18n-wait footer{visibility:hidden}
html.kp-mnav-restore.kp-i18n-wait .mobile-nav *{color:transparent!important}
.mobile-nav .kp-mnav-in *{transition:color .25s ease}
html.kp-mnav-restore.kp-i18n-wait .mobile-nav{display:block!important;opacity:1!important;transform:none!important}
html.kp-mnav-restore .kp-curtain{display:none!important}
@media (prefers-reduced-motion:reduce){.kp-lang-pill{transition:none}}
/* V299: phone menu pages in the website's own voice: serif names on the page colour, hairline rules, no white panel */
.kp-mnav-main{margin:22px 20px 0!important;border:0!important;border-top:1px solid rgba(22,20,15,.16)!important;border-radius:0!important;background:transparent!important;overflow:visible}
.kp-mnav-main a{min-height:66px!important;padding:0 36px 0 2px!important;font-family:var(--serif,Gelasio,Georgia,serif)!important;font-size:27px!important;font-weight:400!important;letter-spacing:-.01em!important;color:var(--ink,#16140f)!important;border-bottom:1px solid rgba(22,20,15,.16)!important}
.kp-mnav-main a+a::before{content:none!important}
.kp-mnav-main a::after{right:6px!important;width:9px!important;height:9px!important;margin-top:-4.5px!important;border-top:1px solid rgba(22,20,15,.45)!important;border-right:1px solid rgba(22,20,15,.45)!important}
.kp-mnav-main a:active{background:transparent!important;opacity:.55}
.kp-mnav-main a[aria-current]{font-weight:400!important;font-style:italic}
.kp-mnav-util{padding:26px 20px 0!important}
.kp-mnav-search{margin:0 20px!important}
.kp-mnav-main a{min-height:54px!important;font-size:20px!important}
/* V300: phone header Enquire as a quiet text link, in the same small capitals as the desktop navigation */
@media (max-width:1080px){.site-header .kp-m-enq{height:auto!important;padding:4px 0 3px!important;border:0!important;border-bottom:1px solid rgba(22,20,15,.55)!important;border-radius:0!important;background:transparent!important;font-family:Arial,Helvetica,sans-serif!important;font-size:9px!important;font-weight:400!important;letter-spacing:.16em!important;text-transform:uppercase!important;color:var(--ink,#16140f)!important;line-height:1!important}}
/* V301: the phone Enquire link turns into a dark button once you scroll past the opening screen */
@media (max-width:1080px){
  .site-header .kp-m-enq{gap:0;overflow:hidden;transition:padding .55s cubic-bezier(.16,1,.3,1),background-color .45s ease,color .35s ease,border-color .35s ease,border-radius .55s cubic-bezier(.16,1,.3,1),letter-spacing .45s ease!important}
  .site-header .kp-m-enq .ar{display:inline-block;width:0;height:7px;opacity:0;position:relative;transition:width .55s cubic-bezier(.16,1,.3,1),margin .55s cubic-bezier(.16,1,.3,1),opacity .3s ease}
  .site-header .kp-m-enq .ar::before{content:"";position:absolute;left:0;right:1px;top:3px;height:1px;background:currentColor}
  .site-header .kp-m-enq .ar::after{content:"";position:absolute;right:1px;top:1px;width:4px;height:4px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
  .site-header .kp-m-enq.is-solid{padding:8px 13px 8px 14px!important;border-bottom-color:transparent!important;border-radius:999px!important;background:#16140f!important;color:#f6f3ec!important;letter-spacing:.14em!important}
  .site-header .kp-m-enq.is-solid .ar{width:11px;margin-left:8px;opacity:1;transition-delay:.12s}
  .site-header .kp-m-enq:active{transform:translateY(-50%) scale(.96)!important}
}
@media (max-width:1080px) and (prefers-reduced-motion:reduce){.site-header .kp-m-enq,.site-header .kp-m-enq .ar{transition:none!important}}
/* V301: phones that turn numbers into links keep the footer lettering */
.footer-bottom a[href^="tel"],.footer-bottom a[x-apple-data-detectors]{display:inline!important;font:inherit!important;letter-spacing:inherit!important;color:inherit!important;text-decoration:none!important;text-transform:inherit!important}
/* V302: the scrolled Enquire button, softer: a hairline pill on a light tint instead of black */
@media (max-width:1080px){.site-header .kp-m-enq.is-solid{background:rgba(255,255,255,.45)!important;color:var(--ink,#16140f)!important;border:1px solid rgba(22,20,15,.28)!important;padding:7px 12px 7px 13px!important}}
/* V303: on the home page Enquire stays out of the opening, then fades in as the soft pill */
@media (max-width:1080px){.site-header .kp-m-enq.is-home{transition:opacity .6s ease,transform .6s cubic-bezier(.16,1,.3,1),padding .55s cubic-bezier(.16,1,.3,1),background-color .45s ease,border-color .35s ease,border-radius .55s cubic-bezier(.16,1,.3,1)!important}
.site-header .kp-m-enq.is-away{opacity:0;transform:translateY(-50%) translateX(-6px)!important;pointer-events:none}}
/* V305 · phone: the products grid, refined
   - two even columns, no frame lines; every piece on the same soft tile
   - the code sits small above the name on one line; name and type below
   - filters on one line that scrolls sideways; the enquiry link is in the header and menu already */
@media (max-width:760px){
  .kp-products .product-toolbar{display:block!important;margin:0 -16px 6px!important;padding:0!important;border:0!important}
  .kp-products .product-toolbar .filters{display:flex!important;flex-wrap:nowrap!important;gap:22px!important;overflow-x:auto;padding:2px 16px 12px!important;scrollbar-width:none;border-bottom:1px solid rgba(22,20,15,.12)}
  .kp-products .product-toolbar .filters::-webkit-scrollbar{display:none}
  .kp-products .product-toolbar .filter-btn{flex:0 0 auto;white-space:nowrap;padding:6px 0 7px!important;margin:0!important}
  .kp-products .product-toolbar>.text-link{display:none!important}
  .kp-products .product-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:26px 12px!important;margin-top:20px!important;border:0!important;padding:0!important}
  .kp-products .product-card{display:flex!important;flex-direction:column;min-height:0!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
  .kp-products .product-card::before,.kp-products .product-card::after{display:none!important}
  .kp-products .product-card .image{aspect-ratio:1/1;width:100%;height:auto!important;margin:0!important;padding:14%!important;background:#ebe5db!important;border-radius:2px;display:flex;align-items:center;justify-content:center;overflow:hidden}
  .kp-products .product-card .image img{width:100%!important;height:100%!important;object-fit:contain!important;mix-blend-mode:multiply;transition:transform .8s cubic-bezier(.16,1,.3,1)}
  .kp-products .product-card:active .image img{transform:scale(.97)}
  .kp-products .product-card .meta{display:block!important;margin:11px 0 0!important;padding:0!important}
  .kp-products .product-card .meta .code{display:block!important;margin:0 0 4px!important;font-family:Arial,Helvetica,sans-serif!important;font-size:8.5px!important;letter-spacing:.14em!important;white-space:nowrap;color:var(--muted,#7a7164)!important}
  .kp-products .product-card .meta h3{margin:0!important;font-size:16px!important;line-height:1.2!important;letter-spacing:-.005em}
  .kp-products .product-card .meta h3::after,.kp-products .product-card .meta h3 .arrow{display:none!important}
  .kp-products .product-card .meta p{margin:3px 0 0!important;font-size:12.5px!important;color:var(--muted,#7a7164)!important}
}
@media (max-width:760px){.kp-products .product-card .image{padding:8%!important}}
/* V306: staff area: photos and files a client sent in the conversation */
.kp-st-att{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.kp-st-att button{display:flex;align-items:center;gap:8px;max-width:220px;padding:5px 10px 5px 5px;border:1px solid rgba(19,17,15,.12);border-radius:10px;background:#fffdf8;cursor:pointer;font:12px/1.3 Arial,Helvetica,sans-serif;color:inherit;text-align:left}
.kp-st-att img{width:44px;height:44px;object-fit:cover;border-radius:6px}
.kp-st-att b{display:grid;place-items:center;width:34px;height:40px;border-radius:5px;background:#efe9de;font-size:8.5px;letter-spacing:.06em}
.kp-st-att span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kp-mnav-boxes>a:only-child{grid-column:1/-1;flex:1 1 100%}
/* V310: "Start another enquiry" under the thank-you */
.kp-tf-again{margin:28px 0 0!important}
.kp-tf-again .btn{display:inline-flex}
.form-success .kp-tf-again{margin-top:18px!important}
