/* Theoretical Waste — bought against what the sales used.
   Loss Prevention's skin, as Food Cost wears it: the --lp-* tokens, the Fraunces/Karla pair and the
   top bar, badge and sidebar from web/styles.css, which names .theoretical-waste-main beside the
   other apps on it. What is here is this screen's own pieces: a table read down its columns, a row
   that opens to its stores and the dishes that used it, and the modifier map. Colour means one
   thing: a figure below zero (stock from before the range) is muted, never celebrated. */

.theoretical-waste-main{
  --tw-gap-tint:color-mix(in srgb, var(--lp-medium) 18%, var(--lp-card));
  --tw-gap-ink:color-mix(in srgb, var(--lp-medium) 40%, var(--lp-ink));
  --tw-link:color-mix(in srgb, var(--lp-accent) 72%, var(--lp-ink));
  --tw-grid:color-mix(in srgb, var(--lp-line) 80%, transparent);
}
.theoretical-waste-main .topbar,.theoretical-waste-main .module-shell{min-width:0}
.theoretical-waste-main .module-shell{overflow-y:auto;overflow-x:hidden;min-height:0;height:100%;padding:0 clamp(16px,3vw,44px) 54px}
.theoretical-waste-main .tw-page{max-width:1380px;margin:0 auto;padding-top:28px;display:grid;gap:20px;min-width:0}
.theoretical-waste-main :is(.tw-page,.tw-body,.tw-kpis,.tw-panel)>*{min-width:0}
.theoretical-waste-main .tw-body{display:grid;gap:20px;transition:opacity .18s ease}
.theoretical-waste-main .tw-page.is-loading .tw-body{opacity:.55}
.theoretical-waste-main :is(button,a,select,input,[tabindex]):focus-visible{outline:2px solid var(--lp-accent);outline-offset:2px}

.theoretical-waste-main .tw-head{display:grid;gap:12px;min-width:0}
.theoretical-waste-main .tw-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 20px;min-width:0}
.theoretical-waste-main .tw-title h2{margin:0;font-family:var(--lp-display);font-size:clamp(26px,3vw,34px);font-weight:600;line-height:1.1;letter-spacing:-.015em;color:var(--lp-ink)}

/* The sidebar, as every app on this skin draws it: the pages, the one you are on a dark pill. */
body[data-module="theoretical-waste"] [data-module-sidebar="theoretical-waste"] .agent{display:none}
body[data-nav="rail"][data-module="theoretical-waste"] .sidebar:not(.open) [data-module-sidebar="theoretical-waste"] .agent{display:flex}
body[data-module="theoretical-waste"] [data-module-sidebar="theoretical-waste"] .agent-label{margin:22px 12px 4px;color:var(--lp-muted);font-size:11px;font-weight:600;letter-spacing:.09em}
body[data-module="theoretical-waste"] .tw-nav{gap:3px;margin-top:8px}
body[data-module="theoretical-waste"] .tw-nav .lp-nav-item{min-height:40px;padding:9px 12px;border-radius:10px;color:color-mix(in srgb, var(--lp-ink) 88%, var(--lp-muted));font-family:var(--lp-body);font-size:14.5px;font-weight:500}
body[data-module="theoretical-waste"] .tw-nav .lp-nav-item:hover{background:var(--lp-sidebar-hover);color:var(--lp-ink)}
body[data-module="theoretical-waste"] .tw-nav .lp-nav-item.active{background:var(--lp-primary);color:var(--lp-primary-ink);font-weight:600;box-shadow:none}
body[data-module="theoretical-waste"] .tw-nav .lp-nav-item.active svg{color:var(--lp-primary-ink);opacity:1}
body[data-module="theoretical-waste"] .tw-nav .lp-nav-count{background:var(--lp-accent);color:#fff}
body[data-module="theoretical-waste"] .tw-nav .lp-nav-item.active .lp-nav-count{background:rgb(255 255 255 / 22%);color:var(--lp-primary-ink)}

.theoretical-waste-main .tw-strip{display:none;gap:6px;overflow-x:auto;scrollbar-width:none;max-width:100%}
.theoretical-waste-main .tw-strip::-webkit-scrollbar{display:none}
.theoretical-waste-main .tw-strip .lp-nav-item{flex:0 0 auto;width:auto;min-height:34px;height:34px;padding:0 13px;border:1px solid var(--lp-line);border-radius:999px;background:var(--lp-card);color:var(--lp-ink);font-size:13px;font-weight:560;white-space:nowrap;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:none;text-align:left}
.theoretical-waste-main .tw-strip .lp-nav-label{display:inline;font-size:13px}
.theoretical-waste-main .tw-strip .lp-nav-item svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.theoretical-waste-main .tw-strip .lp-nav-item.active{border-color:var(--lp-primary);background:var(--lp-primary);color:var(--lp-primary-ink);font-weight:600}
.theoretical-waste-main .tw-strip .lp-nav-count{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:color-mix(in srgb, var(--lp-ink) 12%, transparent);font-size:11px;font-weight:700}

.theoretical-waste-main .tw-coverage{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;margin:0;color:var(--lp-muted);font-size:13px;line-height:1.5;font-variant-numeric:tabular-nums}
.theoretical-waste-main .tw-dot{opacity:.6}
.theoretical-waste-main .tw-pill{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--tw-gap-tint);color:var(--tw-gap-ink)}

.theoretical-waste-main .tw-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px 20px;min-width:0}
.theoretical-waste-main .tw-range{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px 16px;min-width:0}
.theoretical-waste-main .tw-presets{display:flex;flex-wrap:wrap;gap:6px}
.theoretical-waste-main .tw-preset{height:38px;padding:0 14px;border:1px solid var(--lp-line);border-radius:8px;background:var(--lp-card);color:var(--lp-ink);font-size:14px;font-weight:500;white-space:nowrap;cursor:pointer}
.theoretical-waste-main .tw-preset.active{border-color:var(--lp-primary);background:var(--lp-primary);color:var(--lp-primary-ink);font-weight:600}
.theoretical-waste-main .tw-custom{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}
.theoretical-waste-main .tw-field{display:grid;gap:6px;color:var(--lp-muted);font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
.theoretical-waste-main .tw-field input{height:38px;padding:0 10px;border:1px solid var(--lp-line);border-radius:8px;background:var(--lp-card);color:var(--lp-ink);font-size:14px;letter-spacing:0;text-transform:none;color-scheme:light}
.theoretical-waste-main .tw-apply{height:38px;padding:0 16px;border:1px solid var(--lp-accent);border-radius:8px;background:var(--lp-accent);color:#fff;font-size:14px;font-weight:600;cursor:pointer}
.theoretical-waste-main .tw-stores{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
.theoretical-waste-main .tw-chip{height:34px;padding:0 13px;border:1px solid var(--lp-line);border-radius:999px;background:var(--lp-card);color:var(--lp-ink);font-size:13px;white-space:nowrap;cursor:pointer}
.theoretical-waste-main .tw-chip.active{border-color:var(--lp-primary);background:var(--lp-primary);color:var(--lp-primary-ink);font-weight:600}
.theoretical-waste-main .tw-error{margin:0;padding:12px 14px;border:1px solid var(--lp-high);border-radius:10px;background:color-mix(in srgb, var(--lp-high) 12%, var(--lp-card));color:color-mix(in srgb, var(--lp-high) 85%, var(--lp-ink));font-size:14px}

.theoretical-waste-main .tw-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(176px,1fr));gap:14px}
.theoretical-waste-main .tw-kpi{padding:16px 18px;border:1px solid var(--lp-line);border-radius:14px;background:var(--lp-card);box-shadow:0 1px 2px color-mix(in srgb, var(--lp-ink) 5%, transparent);display:grid;gap:6px;align-content:start}
.theoretical-waste-main .tw-kpi-label{margin:0;color:var(--lp-muted);font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.theoretical-waste-main .tw-kpi-value{margin:0;font-family:var(--lp-display);font-size:30px;font-weight:600;line-height:1.05;letter-spacing:-.02em;color:var(--lp-ink);font-variant-numeric:tabular-nums}
.theoretical-waste-main .tw-kpi-foot{margin:0;color:var(--lp-muted);font-size:12.5px;font-variant-numeric:tabular-nums}

.theoretical-waste-main .tw-panel{border:1px solid var(--lp-line);border-radius:14px;background:var(--lp-card);box-shadow:0 1px 2px color-mix(in srgb, var(--lp-ink) 5%, transparent);overflow:hidden}
.theoretical-waste-main .tw-panel-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 18px;padding:16px 18px 14px}
.theoretical-waste-main .tw-panel-head h3{margin:0;font-family:var(--lp-display);font-size:19px;font-weight:600;letter-spacing:-.01em;color:var(--lp-ink)}
.theoretical-waste-main .tw-eyebrow{margin:0 0 6px;color:var(--lp-muted);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.theoretical-waste-main .tw-panel-actions{display:flex;align-items:center;gap:8px}
.theoretical-waste-main .tw-search{width:min(280px,100%);height:36px;padding:0 12px;border:1px solid var(--lp-line);border-radius:8px;background:var(--lp-card);color:var(--lp-ink);font-size:14px}
.theoretical-waste-main .tw-ghost{height:32px;padding:0 12px;border:1px solid var(--lp-line);border-radius:8px;background:transparent;color:var(--tw-link);font-size:13px;font-weight:600;cursor:pointer;flex:none}

.theoretical-waste-main .tw-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-top:1px solid var(--tw-grid)}
.theoretical-waste-main table.tw-table{width:100%;border-collapse:collapse;font-size:13.5px;font-variant-numeric:tabular-nums}
.theoretical-waste-main .tw-table th,.theoretical-waste-main .tw-table td{padding:9px 12px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--tw-grid)}
.theoretical-waste-main .tw-table :is(th,td).tw-text{text-align:left;white-space:normal}
.theoretical-waste-main .tw-table thead th{position:sticky;top:0;z-index:2;background:color-mix(in srgb, var(--lp-ground) 94%, var(--lp-card));color:var(--lp-muted);font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.theoretical-waste-main .tw-table th button{all:unset;cursor:pointer;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit}
.theoretical-waste-main .tw-table th[aria-sort] button{color:var(--tw-link)}
.theoretical-waste-main .tw-table tbody tr.tw-row:hover{background:color-mix(in srgb, var(--lp-accent) 4%, transparent)}
.theoretical-waste-main .tw-table .tw-sticky{position:sticky;left:0;z-index:1;background:var(--lp-card);min-width:220px;max-width:340px}
.theoretical-waste-main .tw-table thead .tw-sticky{z-index:3;background:color-mix(in srgb, var(--lp-ground) 94%, var(--lp-card))}
.theoretical-waste-main .tw-table tbody tr.tw-row:hover .tw-sticky{background:color-mix(in srgb, var(--lp-accent) 4%, var(--lp-card))}
.theoretical-waste-main .tw-strong{font-weight:600;color:var(--lp-ink)}
.theoretical-waste-main .tw-under{color:var(--lp-muted);font-weight:500}
.theoretical-waste-main .tw-item{all:unset;cursor:pointer;display:grid;gap:3px;justify-items:start;max-width:100%}
.theoretical-waste-main .tw-item strong{font-weight:600;font-size:13.5px;color:var(--lp-ink);line-height:1.3}
.theoretical-waste-main .tw-item small{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;color:var(--lp-muted);font-size:11.5px}
.theoretical-waste-main .tw-tag{display:inline-flex;align-items:center;height:19px;padding:0 7px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:var(--tw-gap-tint);color:var(--tw-gap-ink)}
.theoretical-waste-main .tw-tag-quiet{background:color-mix(in srgb, var(--lp-muted) 14%, var(--lp-card));color:var(--lp-muted)}
.theoretical-waste-main .tw-empty{margin:0;padding:26px 18px;color:var(--lp-muted);font-size:14px;text-align:center}
.theoretical-waste-main .tw-none{margin:0;color:var(--lp-muted);font-size:13.5px}

/* A row opened: its stores beside the dishes that used it. */
.theoretical-waste-main .tw-detail>td{padding:14px 18px 18px;background:color-mix(in srgb, var(--lp-ground) 55%, var(--lp-card));text-align:left;white-space:normal}
.theoretical-waste-main .tw-detail-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:18px 28px}
.theoretical-waste-main table.tw-mini{width:100%;border-collapse:collapse;font-size:13px;font-variant-numeric:tabular-nums}
.theoretical-waste-main .tw-mini :is(th,td){padding:6px 8px;text-align:right;border-bottom:1px solid var(--tw-grid);white-space:nowrap}
.theoretical-waste-main .tw-mini th{color:var(--lp-muted);font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.theoretical-waste-main .tw-mini :is(th,td).tw-text{text-align:left}
.theoretical-waste-main .tw-sources{margin:0;padding:0;list-style:none;display:grid}
.theoretical-waste-main .tw-sources li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--tw-grid);font-size:13.5px}
.theoretical-waste-main .tw-sources li span:first-child{flex:1;min-width:0}
.theoretical-waste-main .tw-sources b{font-weight:600;font-variant-numeric:tabular-nums}

/* The modifier map: an entry per modifier, a hairline between. */
.theoretical-waste-main .tw-list{display:grid;padding:0 18px 8px}
.theoretical-waste-main .tw-list>.tw-none{padding:4px 0 12px}
.theoretical-waste-main .tw-list-row{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 0;border-top:1px solid var(--tw-grid)}
.theoretical-waste-main .tw-list-row:first-child{border-top:0}
.theoretical-waste-main .tw-list-stack{flex-wrap:wrap}
.theoretical-waste-main .tw-item-copy{display:grid;gap:2px;min-width:0}
.theoretical-waste-main .tw-item-copy strong{font-weight:600;color:var(--lp-ink)}
.theoretical-waste-main .tw-item-copy small{color:var(--lp-muted);font-size:12.5px;line-height:1.4}
.theoretical-waste-main .tw-add{padding:12px 18px 18px;border-top:1px solid var(--tw-grid)}
.theoretical-waste-main .tw-map{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.theoretical-waste-main .tw-input,.theoretical-waste-main .tw-select{height:36px;padding:0 10px;border:1px solid var(--lp-line);border-radius:8px;background:var(--lp-card);color:var(--lp-ink);font-size:14px;min-width:0}
.theoretical-waste-main .tw-input{width:180px}
.theoretical-waste-main .tw-select{max-width:280px}
.theoretical-waste-main .tw-input.tw-count{width:72px}
.theoretical-waste-main .tw-adds{color:var(--lp-muted);font-size:13px}
.theoretical-waste-main .tw-map .tw-apply{height:36px}

@media (max-width:860px){
  .theoretical-waste-main .tw-strip{display:flex}
  .theoretical-waste-main .tw-title{display:grid;gap:10px}
  .theoretical-waste-main .tw-presets{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%}
  .theoretical-waste-main .tw-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .theoretical-waste-main .tw-kpi{padding:11px 12px;border-radius:12px;gap:4px}
  .theoretical-waste-main .tw-kpi-label{font-size:9.5px;letter-spacing:.07em}
  .theoretical-waste-main .tw-kpi-value{font-size:19px}
  .theoretical-waste-main .tw-kpi-foot{font-size:11px}
  .theoretical-waste-main .tw-table th,.theoretical-waste-main .tw-table td{padding:8px 10px}
  .theoretical-waste-main .tw-table .tw-sticky{min-width:160px;max-width:200px}
  .theoretical-waste-main .tw-detail-grid{grid-template-columns:1fr}
  .theoretical-waste-main .tw-panel-head{padding:14px 14px 12px}
  .theoretical-waste-main .tw-list{padding:0 14px 8px}
  .theoretical-waste-main .tw-input,.theoretical-waste-main .tw-select{width:100%;max-width:none}
  .theoretical-waste-main .tw-map{display:grid;grid-template-columns:auto 72px 1fr;width:100%}
  .theoretical-waste-main .tw-map .tw-input:not(.tw-count){grid-column:1/-1}
  .theoretical-waste-main .tw-map .tw-apply{grid-column:1/-1}
}
