/* Founder OS — Stock module styles (M2). Mobile-first (375 px, no sideways page scroll), theme tokens only.
   Shared classes from index.html (.card, .bdg, .btn-line, .btn-primary, .tabs, .empty, .fillin) stay in charge.
   Text on stock screens uses --muted or --text (never --faint), so labels and "— fill in" read at 4.5:1 or more in
   every theme. .stk wraps the screen and .stk-dlg each stock dialog. */
.stk-vh,.stk-c-oh .stk-k,.stk-po-st .stk-k{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* inline labels: shown on phones (no column header there), visually hidden on wide screens (the header row shows them) */
.stk-k{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-right:6px}
.stk .fillin,.stk-dlg .fillin,.stk .fnt,.stk-dlg .fnt,.stk .empty{color:var(--muted)}
.stk-nc{font-size:12.5px;font-style:italic;color:var(--muted)}
/* coloured badges and signed quantities: the colour is mixed toward --text, so it reads at 4.5:1+ on the card in light
   (text is dark → darker colour) and dark themes (text is light → lighter colour); badge borders keep the pure colour */
.stk .bdg.green,.stk-dlg .bdg.green,.stk .pos{color:color-mix(in srgb,var(--green) 50%,var(--text))}
.stk .bdg.red,.stk-dlg .bdg.red,.stk .neg{color:color-mix(in srgb,var(--red) 50%,var(--text))}
.stk .bdg.saffron,.stk-dlg .bdg.saffron{color:color-mix(in srgb,var(--saffron) 65%,var(--text))}
.stk .bdg.jade,.stk-dlg .bdg.jade{color:color-mix(in srgb,var(--jade) 65%,var(--text))}
.stk-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px}
.stk-more{justify-content:space-between;margin-top:12px}
.stk-sub{font-size:11.5px;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}
.stk-unit{font-size:11.5px;color:var(--muted)}
.stk-law{margin:0 0 12px;line-height:1.5}
.stk-note{margin-top:12px;overflow-wrap:anywhere}

/* summary tiles */
.stk-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 14px}
.stk-tile{background:var(--card);border:1px solid var(--bsoft);border-radius:10px;padding:12px 14px;min-width:0}
.stk-tl{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.stk-tv{font-family:var(--display);font-size:24px;font-weight:700;line-height:1.1;overflow-wrap:anywhere}
.stk-tsub{display:block;font-family:var(--body);font-size:11.5px;font-weight:400;color:var(--muted);margin-top:4px;line-height:1.35}

/* lists (items · moves · purchase orders) */
.stk-list,.stk-mvlist,.stk-polist{background:var(--card);border:1px solid var(--bsoft);border-radius:10px;overflow:hidden}
.stk-head{display:none}
.stk-link{background:none;border:0;padding:0;color:var(--text);font-weight:600;font-size:14px;text-align:left;cursor:pointer;
  text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px;overflow-wrap:anywhere;max-width:100%}
.stk-link:hover{color:var(--jade2);text-decoration-color:var(--jade)}
.stk-link:focus-visible,.stk-sbtn:focus-visible,.stk-x:focus-visible,.stk-count:focus-visible{outline:2px solid var(--jade);outline-offset:2px}

/* item rows: the on-hand column may take up to 55% and wraps (long units, badges) instead of clipping at 375 px */
.stk-row{display:grid;grid-template-columns:minmax(0,1fr) fit-content(55%);grid-template-areas:"name oh" "re val" "step step";gap:6px 12px;
  padding:12px 14px;border-bottom:1px solid var(--bsoft);align-items:center}
.stk-row:last-child{border-bottom:0}
.stk-row.is-out{box-shadow:inset 3px 0 0 var(--red)}
.stk-row.is-low{box-shadow:inset 3px 0 0 var(--amber)}
.stk-c-name{grid-area:name;min-width:0}
.stk-c-oh{grid-area:oh;text-align:right;min-width:0;overflow-wrap:anywhere}
.stk-ohn{font-family:var(--mono);font-size:16px}
.stk-c-re{grid-area:re;font-size:12px;color:var(--muted)}
.stk-c-val{grid-area:val;text-align:right;font-size:12px;color:var(--muted);min-width:0}

/* quick-adjust stepper */
.stk-step{grid-area:step;display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.stk-sbtn{width:40px;height:40px;border-radius:999px;border:1px solid var(--border);background:var(--card2);color:var(--text);
  font-size:20px;line-height:1;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.stk-sbtn:hover:not(:disabled){border-color:var(--jade);color:var(--jade2)}
.stk-sbtn:disabled{opacity:.4;cursor:not-allowed}

/* moves ledger: quantity column capped at 40%; the number never breaks, the unit may wrap under it */
.stk-mv{display:grid;grid-template-columns:auto minmax(0,1fr) fit-content(40%);grid-template-areas:"date item qty" "kind note note";gap:4px 10px;
  padding:10px 14px;border-bottom:1px solid var(--bsoft);align-items:center;font-size:12.8px}
.stk-mv:last-child{border-bottom:0}
.stk-mvlist.no-item .stk-mv{grid-template-areas:"date kind qty" "note note note"}
.stk-mv-date{grid-area:date;font-family:var(--mono);font-size:11px;color:var(--muted);white-space:nowrap}
.stk-mv-kind{grid-area:kind}
.stk-mv-item{grid-area:item;min-width:0}
.stk-mv-item .stk-link{font-size:13px}
.stk-mv-note{grid-area:note;color:var(--muted);font-size:12px;min-width:0;overflow-wrap:anywhere}
.stk-mv-qty{grid-area:qty;font-family:var(--mono);text-align:right;min-width:0;overflow-wrap:anywhere}
.stk-num{white-space:nowrap}
.stk-mv-qty small{color:var(--muted)}
.stk-ref{display:inline-block;max-width:100%;margin-left:6px;font-family:var(--mono);font-size:10.5px;color:var(--text);border:1px solid var(--bsoft);border-radius:4px;padding:0 5px;overflow-wrap:anywhere}
.stk-mv-note:empty{display:none}

/* purchase orders */
.stk-po{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"num tot" "exp st" "act act";gap:6px 12px;
  padding:12px 14px;border-bottom:1px solid var(--bsoft);align-items:center}
.stk-po:last-child{border-bottom:0}
.stk-po-num{grid-area:num;min-width:0}
.stk-po-exp{grid-area:exp;font-size:12px;color:var(--muted)}
.stk-po-st{grid-area:st;text-align:right}
.stk-po-tot{grid-area:tot;text-align:right;font-family:var(--mono)}
.stk-po-act{grid-area:act;display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}

/* item detail */
.stk-detail{margin-bottom:14px}
.stk-dgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin-bottom:14px}
.stk-fact{min-width:0;overflow-wrap:anywhere}
.stk-fact .stk-fl{display:block;margin-bottom:4px}
.stk-big{font-family:var(--display);font-size:34px;line-height:1}
.stk-detail .stk-step{justify-content:flex-start}
.stk-tblwrap{overflow-x:auto;margin:8px 0}

/* forms (dialogs) */
.stk-form{margin-top:12px;display:grid;gap:12px;min-width:0}
.stk-f{display:grid;gap:5px;min-width:0}
.stk-fl{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.stk-fh{display:block;font-size:11.5px;color:var(--muted);line-height:1.4}
.stk-form input:not([type=radio]):not([type=hidden]),.stk-form select,.stk-form textarea{width:100%;min-width:0;box-sizing:border-box}
.stk-radio{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 16px;min-width:0}
.stk-radio legend{padding:0;margin-bottom:6px}
.stk-radio label{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;cursor:pointer;min-height:32px}
.stk-lines{border:1px solid var(--bsoft);border-radius:10px;padding:10px 12px 12px;margin:0;display:grid;gap:10px;min-width:0}
.stk-lines legend{padding:0 6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.stk-line{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"item item x" "qty cost cost" "lt lt lt";
  gap:8px;padding-bottom:10px;border-bottom:1px dashed var(--bsoft);align-items:end}
.stk-lf-item{grid-area:item}.stk-lf-qty{grid-area:qty}.stk-lf-cost{grid-area:cost}
.stk-lt{grid-area:lt;font-family:var(--mono);font-size:12px;text-align:right}
.stk-x{grid-area:x;width:36px;height:36px;border-radius:999px;border:1px solid var(--border);color:var(--muted);align-self:end}
.stk-x:hover{color:var(--red);border-color:var(--red)}
.stk-total{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:13.5px}
.stk-total b{font-family:var(--mono);font-size:16px}

/* Moves filters */
.stk-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 12px}
.stk-filters select{width:100%;min-width:0}

/* empty states */
.stk-empty{text-align:center;padding:30px 18px}
.stk-empty h3{margin-bottom:8px}
.stk-empty p{color:var(--muted);max-width:52ch;margin:0 auto 16px;line-height:1.5}

/* touch screens: every stock control is at least 44 px (the core already does .btn-line / .btn-primary) */
@media(pointer:coarse){
  .stk-sbtn{width:44px;height:44px}
  .stk-x{width:44px;height:44px}
  .stk-link{display:inline-flex;align-items:center;min-height:44px}
  .stk-radio label{min-height:44px}
  .stk-form input:not([type=radio]):not([type=hidden]),.stk-form select,.stk-filters select{min-height:44px}
}

@media(min-width:760px){
  .stk-head{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.1fr) minmax(0,.9fr) minmax(0,1fr) 190px;gap:12px;padding:0 14px 6px;
    font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
  .stk-row{grid-template-columns:minmax(0,2fr) minmax(0,1.1fr) minmax(0,.9fr) minmax(0,1fr) 190px;grid-template-areas:"name oh re val step"}
  .stk-c-oh{text-align:left}
  .stk-row .stk-k{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
  .stk-c-val{text-align:left}
  .stk-mv{grid-template-columns:92px 128px minmax(0,1.1fr) minmax(0,2fr) 96px;grid-template-areas:"date kind item note qty"}
  .stk-mvlist.no-item .stk-mv{grid-template-columns:92px 128px minmax(0,1fr) 96px;grid-template-areas:"date kind note qty"}
  .stk-mv-note:empty{display:block}
  .stk-line{grid-template-columns:minmax(0,2.2fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,.9fr) auto;grid-template-areas:"item qty cost lt x"}
  .stk-lt{padding-bottom:9px}
  .stk-dgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stk-filters{display:flex;flex-wrap:wrap;gap:12px}
  .stk-filters .stk-f{width:240px}
  .stk-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(min-width:1000px){
  .stk-head-po{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1.6fr)}
  .stk-po{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) minmax(0,.8fr) minmax(0,1.6fr);grid-template-areas:"num exp st tot act"}
  .stk-po-st,.stk-po-tot{text-align:left}
  .stk-po .stk-k{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
}
@media(min-width:760px) and (max-width:999px){.stk-head-po{display:none}}
