/* spd-2602-profitability.css -- SPD-2602 profitability indicators, page-only sheet

   Loads after the five shared sheets in place of quote.css + v1.css.
   Tokens only - every colour here is a design-system variable, so light and
   dark both follow the theme toggle with no rules of their own. */

/* ---------- carried from v1.css ----------
   The one V1 rule this page still needs: V1 has no add-bar search box, so
   the buttons take the slack themselves. (v1.css's other rules hide .lg-gp,
   the notes strip and a quote-only rail row - none of which apply here.) */
.lv-addbar .lv-addbtns{ margin-left:auto; }

/* ---------- group header: who gives way first ----------
   At 1280px a long group name + three types + the GP cluster + subtotal +
   icons do not fit. The breakdown and the title give way (breakdown at
   twice the title's rate, both with an ellipsis); the GP cluster, subtotal
   and icons NEVER shrink. Measured: a 55-character name with all three
   types at 1280 keeps the cluster whole and ~half of each. */
.lg-ghead{min-width:0;}
.lg-ghead>*{flex-shrink:0;}
.lg-ghead .lg-gtitle{flex:0 1 auto;min-width:48px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
/* block + inline children so text-overflow can put a real ellipsis on it -
   a flex container cannot */
.lg-ghead .lg-bd{display:block;flex:0 2 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.lg-ghead .lg-bd .b{display:inline;margin-right:12px;}
.lg-ghead .lg-bd .b:last-child{margin-right:0;}
.lg-bd .pm{color:var(--text-secondary);font-weight:600;}

/* ---------- the GP cluster ---------- */
.lg-ghead .lg-gp{margin-left:auto;display:flex;align-items:center;gap:12px;}
.lg-ghead .lg-gp:empty{display:none;}
.lg-ghead .lg-gp:empty+.lg-gsubtotal{margin-left:auto;}
.lg-ghead .lg-gsubtotal{margin-left:14px;}
.pf-chip{font-size:12px;font-weight:600;color:var(--text-secondary);white-space:nowrap;}
.pf-chip b{font-weight:700;color:var(--text-secondary);margin-right:2px;}
.pf-chip.red{color:var(--red);}
/* same shape as the status chip (production: radius 5px, padding 3px 9px,
   10px/700 uppercase), red tone */
.pf-below{display:inline-flex;align-items:center;padding:3px 9px;border-radius:5px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;background:var(--red-15);color:var(--red);}
.pf-est{font-size:10.5px;font-weight:600;color:var(--text-disabled);border-bottom:1px dotted currentColor;line-height:1.2;cursor:help;white-space:nowrap;}
.pf-est:hover{color:var(--text-secondary);}
[data-pfmath]{cursor:help;}
.pf-chip[data-pfmath]{border-bottom:1px dashed var(--amber);}

/* ---------- bottom bar ---------- */
.pf-bar{display:flex;align-items:flex-end;gap:22px;margin-left:auto;padding-right:24px;border-right:1px solid var(--border);}
.pf-bar .s{text-align:right;}
.pf-bar .s .k{display:block;font-size:10.5px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px;}
.pf-bar .s .v{font-size:14px;font-weight:700;color:var(--text);}
.pf-bar .s .v.red{color:var(--red);}
.pf-bar .s[data-pfmath] .v{border-bottom:1px dashed var(--amber);}
.pf-bar .pf-est{align-self:flex-end;margin-bottom:3px;margin-left:-12px;}
/* the stat row gives up its auto margin to the cluster, which now carries it */
.pf-bar+.bb-stats{margin-left:0;}
.pf-bar[style*="none"]+.bb-stats{margin-left:auto;}
.pf-bar .s .k,.lv-bottombar .fab{white-space:nowrap;}
/* MEASURED, not guessed (real Inter + mdi icons, 1280px): V1's bar leaves
   ~60px spare and the GP cluster needs ~250px, so the bar overflowed by
   119px and ADD ITEMS wrapped. Below 1440px the spacing tightens - stat
   row gap 26 -> 14, bar gap 22 -> 16, bar side padding 22 -> 16, cluster
   gap 22 -> 12 - which frees ~150px (~10px spare at 1280). At 1440+ V1's
   spacing is untouched. Spacing only; no size, colour or font change. */
@media (max-width:1439px){
  .lv-bottombar{gap:16px;padding-left:16px;padding-right:16px;}
  .lv-bottombar .bb-stats{gap:14px;}
  .pf-bar{gap:12px;padding-right:14px;}
  .pf-bar .pf-est{margin-left:-6px;}
}

/* ---------- tooltip / Show math ---------- */
.tooltip.pf-tt{max-width:300px;}
.tooltip.pf-tt .tt-main{padding:2px 2px 0;border-radius:0;font-size:12px;color:var(--text);}
.tooltip.pf-tt .tt-sub{margin-top:5px;color:var(--text-secondary);}
.tooltip.pf-tt .tt-main[style*="none"]+.tt-sub{margin-top:0;}
.pf-math-h{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--amber);margin-bottom:6px;}
.pf-math-r{display:flex;justify-content:space-between;gap:18px;font-size:12px;line-height:1.7;}
.pf-math-r b{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;}
.pf-math-r:last-child{border-top:1px solid var(--border);margin-top:3px;padding-top:3px;}

/* ---------- control panel (prototype scaffolding) ---------- */
.proto-switch.pf-panel{flex-wrap:wrap;row-gap:8px;}
.pf-ctl{display:flex;align-items:center;gap:8px;}
.pf-ctl .exlabel{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-disabled);}
.pf-panel .proto-seg button{padding:6px 12px;font-size:12px;}

/* ---------- Standard view (tech): nothing profitability-related ---------- */
body.pf-std .lg-gp,body.pf-std .pf-bar,body.pf-std .lg-bd .pm{display:none !important;}
body.pf-std .lg-ghead .lg-gsubtotal{margin-left:auto;}
body.pf-std .pf-bar+.bb-stats{margin-left:auto;}

/* ---------- Shop settings view ---------- */
.pf-settings-view{height:100%;overflow:auto;background:var(--bg);}
.pf-set-inner{max-width:1080px;margin:0 auto;padding:22px 28px 60px;display:flex;flex-direction:column;gap:28px;}
.pf-tabs{display:flex;gap:6px;border-bottom:1px solid var(--border);}
.pf-tab{display:flex;align-items:center;gap:8px;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;padding:12px 16px;margin-bottom:-1px;}
.pf-tab iconify-icon{font-size:19px;}
.pf-tab.active{color:var(--blue);border-bottom-color:var(--blue);}
.pf-sec{display:flex;flex-direction:column;gap:14px;}
.pf-sec-h,.pf-card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.pf-sec-h h2,.pf-card-h h2{margin:0;font-size:20px;font-weight:600;color:var(--text);}
.pf-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-2);background:transparent;color:var(--text);border-radius:6px;padding:8px 16px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;}
.pf-btn:hover{border-color:var(--blue);}
.pf-btn.pri{background:var(--blue);border-color:var(--blue);color:#fff;}
.pf-btn.pri:hover{filter:brightness(1.08);}
.pf-btn iconify-icon{font-size:18px;}
.pf-grid{background:var(--paper);border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.pf-gr{display:grid;grid-template-columns:1.2fr 1fr 1fr 110px;align-items:center;padding:0 16px;min-height:48px;border-top:1px solid var(--border);font-size:13.5px;color:var(--text);}
.pf-gr:first-child{border-top:none;}
.pf-gr.hd{min-height:42px;background:var(--panel);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-secondary);}
.pf-gr .act{display:flex;justify-content:flex-end;gap:4px;}
.pf-gr .act iconify-icon{display:block;font-size:18px;padding:5px;border-radius:6px;color:var(--text-secondary);cursor:pointer;}
.pf-gr .act iconify-icon:hover{background:var(--hover);color:var(--text);}
.pf-gr.hd .act{justify-content:flex-end;}
.pf-card{background:var(--paper);border:1px solid var(--border);border-radius:8px;padding:20px 22px;display:flex;flex-direction:column;gap:14px;}
.pf-card-h{justify-content:flex-start;}
.pf-new{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 9px;border-radius:5px;background:var(--blue-16);color:var(--blue);}
.pf-card-sub{margin:-6px 0 0;font-size:13px;color:var(--text-secondary);}
.pf-fields{display:grid;grid-template-columns:repeat(2,minmax(0,340px));gap:18px 28px;}
.pf-field{display:flex;flex-direction:column;gap:6px;}
.pf-field label{font-size:12px;font-weight:600;color:var(--text-secondary);}
.pf-in{display:flex;align-items:center;border:1px solid var(--border-2);border-radius:6px;background:transparent;}
.pf-in:focus-within{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);}
.pf-in input{flex:1;min-width:0;background:transparent;border:none;outline:none;color:var(--text);font:inherit;font-size:14px;padding:11px 12px;}
.pf-in input::placeholder{color:var(--text-disabled);}
.pf-in .adorn{color:var(--text-secondary);font-size:14px;padding:0 12px 0 0;}
.pf-in .adorn.pre{padding:0 0 0 12px;}
.pf-in .adorn.pre+input{padding-left:6px;}
.pf-help{font-size:12px;color:var(--text-secondary);line-height:1.45;}
.pf-err{font-size:12px;color:var(--red);min-height:0;}
.pf-err:empty{display:none;}
.pf-field.err .pf-in{border-color:var(--red);box-shadow:0 0 0 1px var(--red);}
.pf-card-f{display:flex;justify-content:flex-end;border-top:1px solid var(--border);padding-top:14px;}
@media (max-width:760px){ .pf-fields{grid-template-columns:1fr;} .pf-gr{grid-template-columns:1fr 1fr 1fr 80px;} }
