/* Kitchen Times — each store's expo screen on one minute scale, then when it slows and where the
   order came from. The screen wears Loss Prevention's skin, as Gift cards does: the --lp-* tokens,
   the Fraunces/Karla pair, the top bar and sidebar come from web/styles.css, where the
   Lovable-derived block names .kitchen-times-main beside .gift-cards-main. What is here is this
   screen's own components in that language -- one card surface with a hairline and a soft shadow,
   small-caps labels over display-face figures, a filled dark-brown pill for the chosen range and
   stores, a terracotta primary action. Every rule is scoped under .kitchen-times-main.

   Colour means one of three things: the chosen range or store, a count to look at (orders left on
   the screen, a range not wholly stored), and the marks. The marks are one hue: a time is the
   terracotta, and the slower end of what most orders take is a lighter step of it. A store is
   always named in words, never told apart by colour; on the day-by-day charts the other stores are
   a warm grey behind the one the chart is about. Text never wears the mark's colour. */

.kitchen-times-main{
  --kt-mark:var(--lp-accent);
  --kt-mark-light:color-mix(in srgb, var(--kt-mark) 34%, var(--lp-card));
  --kt-ghost:color-mix(in srgb, var(--lp-muted) 38%, var(--lp-card));
  --kt-track:color-mix(in srgb, var(--lp-line) 45%, var(--lp-card));
  --kt-weekend:var(--lp-soft);
  --kt-good:#2f7a5b;
  --kt-good-tint:color-mix(in srgb, var(--kt-good) 14%, var(--lp-card));
  --kt-good-ink:color-mix(in srgb, var(--kt-good) 80%, var(--lp-ink));
  --kt-bad:var(--lp-high);
  /* Something to look at: Loss Prevention's medium signal, as a tint with a dark ink. */
  --kt-flag-tint:color-mix(in srgb, var(--lp-medium) 18%, var(--lp-card));
  --kt-flag-ink:color-mix(in srgb, var(--lp-medium) 40%, var(--lp-ink));
  --kt-grid:color-mix(in srgb, var(--lp-line) 80%, transparent);
  --kt-focus:0 0 0 3px color-mix(in srgb, var(--lp-accent) 28%, transparent);
}
/* The main is a grid, so its header and shell are grid items with min-width:auto; both may shrink. */
.kitchen-times-main .topbar,.kitchen-times-main .module-shell{min-width:0}
.kitchen-times-main .module-shell{overflow-y:auto;overflow-x:hidden;min-height:0;height:100%;padding:0 clamp(20px,3vw,44px) 54px}
.kitchen-times-main .kt-page{max-width:1320px;margin:0 auto;padding-top:32px;display:grid;gap:22px;min-width:0}
.kitchen-times-main :is(.kt-page,.kt-body,.kt-pair,.kt-multiples)>*{min-width:0}
.kitchen-times-main .kt-body{display:grid;gap:22px;transition:opacity .18s ease}
.kitchen-times-main .kt-page.is-loading .kt-body{opacity:.55}

/* One ring for everything that takes focus on this screen: Loss Prevention's terracotta halo. */
.kitchen-times-main :is(button,a,select,input,summary,[tabindex]):focus-visible{outline:2px solid var(--lp-accent);outline-offset:2px}

/* ── The title and its coverage, then the range and the stores beneath it ────────────────────── */
.kitchen-times-main .kt-head{display:flex;flex-direction:column;align-items:stretch;gap:14px;min-width:0}
.kitchen-times-main .kt-title-row{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;min-width:0}
.kitchen-times-main .kt-title{display:grid;gap:8px;min-width:0}
.kitchen-times-main .kt-title h2{margin:0;font-family:var(--lp-display);font-size:34px;font-weight:600;line-height:1.1;letter-spacing:-.015em;color:var(--lp-ink)}
.kitchen-times-main .kt-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}
.kitchen-times-main .kt-status-wrap{position:relative;display:inline-flex}
.kitchen-times-main .kt-status{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(--kt-good-tint);color:var(--kt-good-ink);cursor:default;outline:none}
.kitchen-times-main .kt-status[data-status="partial"]{background:var(--kt-flag-tint);color:var(--kt-flag-ink)}
.kitchen-times-main .kt-status:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--brown) 22%, transparent)}
.kitchen-times-main .kt-dot{color:var(--lp-muted)}
.kitchen-times-main .kt-actions{flex:0 0 auto}
.kitchen-times-main .kt-upload-toggle{height:38px;min-height:38px;padding:0 16px;border:1px solid var(--lp-line);border-radius:8px;background:var(--lp-card);color:var(--lp-ink);font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s ease}
.kitchen-times-main .kt-upload-toggle[aria-expanded="true"]{background:var(--lp-soft)}

.kitchen-times-main .kt-range{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px 18px;min-width:0;max-width:100%}
.kitchen-times-main .kt-presets{display:flex;flex-wrap:wrap;gap:6px}
.kitchen-times-main .kt-preset{height:38px;min-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;transition:background .15s ease,border-color .15s ease}
.kitchen-times-main .kt-preset.active{border-color:var(--lp-primary);background:var(--lp-primary);color:var(--lp-primary-ink);font-weight:600}
.kitchen-times-main .kt-preset-short{display:none}
.kitchen-times-main .kt-custom{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.kitchen-times-main .kt-date{display:grid;gap:6px;color:var(--lp-muted);font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
.kitchen-times-main .kt-date input{height:38px;min-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;font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none;color-scheme:light}
.kitchen-times-main .kt-date input:focus-visible{outline:none;border-color:var(--lp-accent);box-shadow:var(--kt-focus)}
.kitchen-times-main .kt-apply{height:38px;min-height:38px;padding:0 16px;border:0;border-radius:8px;background:var(--lp-accent);color:var(--paper);font-size:14px;font-weight:600;cursor:pointer;transition:filter .15s ease}
.kitchen-times-main .kt-apply:focus-visible{outline:none;box-shadow:var(--kt-focus)}
.kitchen-times-main .kt-apply:disabled{background:color-mix(in srgb, var(--lp-muted) 30%, var(--lp-card));color:color-mix(in srgb, var(--lp-ink) 70%, var(--lp-muted));cursor:not-allowed}

/* A store is a chip; the chosen ones are filled like the chosen range. */
.kitchen-times-main .kt-stores{display:flex;flex-wrap:wrap;gap:6px;min-width:0;max-width:100%}
.kitchen-times-main .kt-chip{min-height:34px;padding:0 13px;border:1px solid var(--lp-line);border-radius:999px;background:var(--lp-card);color:var(--lp-ink);font-size:13.5px;font-weight:500;cursor:pointer;transition:background .15s ease,border-color .15s ease}
.kitchen-times-main .kt-chip.active{border-color:var(--lp-primary);background:var(--lp-primary);color:var(--lp-primary-ink);font-weight:600}
@media (hover:hover){
  .kitchen-times-main :is(.kt-preset,.kt-chip,.kt-upload-toggle,.kt-file-button.is-secondary):hover:not(.active){background:var(--lp-soft)}
  .kitchen-times-main :is(.kt-apply:not(:disabled),.kt-file-button:not(.is-secondary)):hover{filter:brightness(.94)}
}

.kitchen-times-main .kt-error{margin:0;padding:12px 16px;border:1px solid var(--kt-bad);border-radius:10px;background:var(--lp-card);color:var(--kt-bad);font-weight:600}

/* A hint, on hover or focus: a dark label under what it explains, leftward when it would leave the screen. */
.kitchen-times-main .kt-hint-tip{position:absolute;left:0;top:calc(100% + 8px);z-index:5;display:grid;gap:3px;width:max-content;max-width:280px;padding:10px 12px;border-radius:10px;background:var(--lp-ink);color:var(--lp-card);font-family:var(--lp-body);font-size:12.5px;font-weight:400;letter-spacing:0;line-height:1.4;white-space:normal;text-transform:none;box-shadow:0 6px 18px color-mix(in srgb, var(--lp-ink) 22%, transparent);opacity:0;visibility:hidden;transform:translateY(-3px);transition:opacity .12s ease,transform .12s ease,visibility 0s linear .12s;pointer-events:none}
.kitchen-times-main .kt-hint-tip.is-flipped{left:auto;right:0}
.kitchen-times-main .kt-hint-tip strong{font-weight:700}
.kitchen-times-main .kt-hint-tip span{color:color-mix(in srgb, var(--lp-card) 76%, transparent)}
.kitchen-times-main .kt-status:is(:hover,:focus)+.kt-hint-tip{opacity:1;visibility:visible;transform:none;transition:opacity .12s ease,transform .12s ease}

/* ── One card, everywhere ───────────────────────────────────────────────────────────────────── */
.kitchen-times-main :is(.kt-panel,.kt-upload){display:grid;align-content:start;gap:16px;padding:22px 22px 20px;border:1px solid var(--lp-line);border-radius:12px;background:var(--lp-card);box-shadow:var(--lp-shadow)}
.kitchen-times-main .kt-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px 16px;flex-wrap:wrap}
.kitchen-times-main :is(.kt-panel,.kt-upload) h3{margin:0;font-family:var(--lp-display);font-size:19px;font-weight:600;letter-spacing:-.01em;color:var(--lp-ink)}
.kitchen-times-main .kt-panel-sub{margin:4px 0 0;color:var(--lp-muted);font-size:12.5px;line-height:1.45}
.kitchen-times-main .kt-empty{margin:0;padding:10px 0 4px;color:var(--lp-muted);font-size:14px}
.kitchen-times-main .kt-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:start}
.kitchen-times-main .kt-legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;padding:0;list-style:none;color:var(--lp-muted);font-size:12px}
.kitchen-times-main .kt-legend li{display:inline-flex;align-items:center;gap:6px}
.kitchen-times-main .kt-swatch{flex:0 0 auto;width:10px;height:10px;border-radius:3px;background:var(--kt-mark)}
.kitchen-times-main .kt-swatch.most{background:var(--kt-mark-light)}
.kitchen-times-main .kt-swatch.line{width:14px;height:2px;border-radius:1px}
.kitchen-times-main .kt-swatch.weekend{background:var(--kt-weekend);box-shadow:inset 0 0 0 1px var(--lp-line)}
.kitchen-times-main .kt-sub{display:block;color:var(--lp-muted);font-size:12px;font-variant-numeric:tabular-nums}
.kitchen-times-main .kt-figure{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--lp-ink)}
.kitchen-times-main .kt-duration{white-space:nowrap;font-variant-numeric:tabular-nums}
.kitchen-times-main .kt-unit{font-size:.62em;font-weight:600;margin-left:1px;color:var(--lp-muted);letter-spacing:.02em}

/* ── Store by store: name, the typical time large, and a bar on the minute scale ────────────── */
.kitchen-times-main .kt-league{display:grid;gap:0;margin:0;padding:0;list-style:none}
.kitchen-times-main .kt-store{display:grid;grid-template-columns:minmax(0,14rem) 8.5rem minmax(0,1fr);grid-template-areas:"name figure bar" "name figure facts";column-gap:20px;row-gap:6px;align-items:center;padding:16px 0;border-bottom:1px solid color-mix(in srgb, var(--lp-line) 70%, transparent)}
.kitchen-times-main .kt-store:first-child{padding-top:4px}
.kitchen-times-main .kt-store-name{grid-area:name;display:grid;gap:2px;min-width:0}
.kitchen-times-main .kt-store-name strong{font-family:var(--lp-display);font-size:17px;font-weight:600;color:var(--lp-ink);overflow-wrap:anywhere}
.kitchen-times-main .kt-screen{color:var(--lp-muted);font-size:12.5px;overflow-wrap:anywhere}
.kitchen-times-main .kt-store-figure{grid-area:figure;display:grid;gap:0;justify-items:start}
.kitchen-times-main .kt-big{font-family:var(--lp-display);font-size:30px;font-weight:600;line-height:1.1;letter-spacing:-.01em;color:var(--lp-ink)}
.kitchen-times-main .kt-figure-label{color:var(--lp-muted);font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
.kitchen-times-main .kt-store-bar{grid-area:bar;position:relative;height:10px;align-self:end;margin-top:4px;border-radius:0 4px 4px 0;background:var(--kt-track)}
/* The scale is a ruler in the track: a notch of card at each step, hidden where a bar covers it. */
.kitchen-times-main .kt-gridline{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--lp-card)}
.kitchen-times-main .kt-gridline.base{display:none}
.kitchen-times-main .kt-bar{position:absolute;top:0;height:100%;min-width:2px;z-index:1}
.kitchen-times-main .kt-bar.typical{left:0;background:var(--kt-mark)}
/* The typical bar runs into the slower end with 2px of card between them; the far end is rounded
   and closed by a hairline in the page's ink, so where 9 in 10 are done reads without the colour. */
.kitchen-times-main .kt-bar.most{background:var(--kt-mark-light);border-radius:0 4px 4px 0;box-shadow:inset 2px 0 0 var(--lp-card),inset -2px 0 0 var(--lp-primary)}
.kitchen-times-main .kt-store-facts{grid-area:facts;display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin:0;padding:0;list-style:none;color:var(--lp-ink);font-size:13px;font-variant-numeric:tabular-nums}
.kitchen-times-main .kt-store-facts strong{font-weight:700}
.kitchen-times-main .kt-store-facts .kt-quiet{color:var(--lp-muted)}
.kitchen-times-main .kt-store-facts .kt-left{color:var(--lp-muted)}
.kitchen-times-main .kt-store-facts .kt-left strong{color:var(--lp-ink)}
.kitchen-times-main .kt-league-axis{display:grid;grid-template-columns:minmax(0,14rem) 8.5rem minmax(0,1fr);column-gap:20px;margin-top:-6px}
.kitchen-times-main .kt-axis-ticks{grid-column:3;position:relative;height:18px}
.kitchen-times-main .kt-axis-tick{position:absolute;top:0;transform:translateX(-50%);color:var(--lp-muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.kitchen-times-main .kt-axis-tick:first-child{transform:none}
.kitchen-times-main .kt-axis-tick:last-child{transform:translateX(-100%)}

/* ── Tables: small-caps heads, hairline rows ────────────────────────────────────────────────── */
.kitchen-times-main .kt-table-wrap{min-width:0;overflow-x:auto}
.kitchen-times-main .kt-table{width:100%;border-collapse:collapse;font-size:14px}
.kitchen-times-main .kt-table th{padding:0 10px 10px;border-bottom:1px solid var(--lp-line);color:var(--lp-muted);font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;text-align:left;vertical-align:bottom}
.kitchen-times-main .kt-table td{padding:10px;border-bottom:1px solid color-mix(in srgb, var(--lp-line) 70%, transparent);vertical-align:middle}
.kitchen-times-main .kt-table tbody tr:last-child td{border-bottom:0}
.kitchen-times-main .kt-table :is(th,td).num{text-align:right}
.kitchen-times-main .kt-table :is(th,td):first-child{padding-left:0}
.kitchen-times-main .kt-table :is(th,td):last-child{padding-right:0}

/* When it slows: a time, its orders and a short bar in every cell, one scale for both tables. */
.kitchen-times-main .kt-time-table{table-layout:fixed}
.kitchen-times-main .kt-time-table th.kt-corner{width:22%}
.kitchen-times-main .kt-time-table th.kt-store-col{text-align:left;overflow-wrap:anywhere}
.kitchen-times-main .kt-time-table td.kt-cell{padding:8px 8px 9px}
.kitchen-times-main .kt-time-table th.kt-row-label{padding:8px 8px 8px 0;border-bottom:1px solid color-mix(in srgb, var(--lp-line) 70%, transparent);color:var(--lp-ink);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;vertical-align:middle;font-variant-numeric:tabular-nums}
.kitchen-times-main .kt-time-table tbody tr:last-child th{border-bottom:0}
.kitchen-times-main .kt-cell-time{display:block;font-size:14px;font-weight:600;color:var(--lp-ink)}
.kitchen-times-main .kt-cell-orders{display:block;color:var(--lp-muted);font-size:11.5px;font-variant-numeric:tabular-nums;white-space:nowrap}
.kitchen-times-main .kt-cell-orders.kt-peak{color:var(--lp-ink);font-weight:700}
.kitchen-times-main .kt-cell-track{display:block;height:5px;margin-top:5px;border-radius:0 3px 3px 0;background:var(--kt-track)}
.kitchen-times-main .kt-cell-bar{display:block;height:100%;min-width:2px;border-radius:0 3px 3px 0;background:var(--kt-mark)}
.kitchen-times-main .kt-few .kt-cell-time{color:var(--lp-muted);font-weight:400}
.kitchen-times-main .kt-day-short{display:none}
.kitchen-times-main .kt-table-key{margin:0;color:var(--lp-muted);font-size:12px}
.kitchen-times-main .kt-key-peak{color:var(--lp-ink)}

/* ── Day by day: small charts, one per store, on one scale ──────────────────────────────────── */
.kitchen-times-main .kt-multiples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px}
.kitchen-times-main .kt-multiple{display:grid;gap:4px;min-width:0}
.kitchen-times-main .kt-multiple-head h4{margin:0;font-family:var(--lp-display);font-size:16px;font-weight:600;color:var(--lp-ink)}
.kitchen-times-main .kt-plot{position:relative;height:150px;margin:14px 0 0 44px;touch-action:pan-y;outline:none}
.kitchen-times-main .kt-plot:focus-visible{outline:2px solid var(--lp-accent);outline-offset:4px}
.kitchen-times-main .kt-bands{position:absolute;inset:0;pointer-events:none}
.kitchen-times-main .kt-band{position:absolute;top:0;bottom:0;background:var(--kt-weekend)}
.kitchen-times-main .kt-grid{position:absolute;inset:0;pointer-events:none}
.kitchen-times-main .kt-hline{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--kt-grid)}
.kitchen-times-main .kt-hline.base{border-top-color:var(--lp-line)}
.kitchen-times-main .kt-tick{position:absolute;right:calc(100% + 8px);top:0;transform:translateY(-50%);color:var(--lp-muted);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.kitchen-times-main .kt-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.kitchen-times-main .kt-line{fill:none;stroke-linejoin:round;stroke-linecap:round}
.kitchen-times-main .kt-line.own{stroke:var(--kt-mark);stroke-width:2}
.kitchen-times-main .kt-line.other{stroke:var(--kt-ghost);stroke-width:1.5}
.kitchen-times-main .kt-dots{position:absolute;inset:0;pointer-events:none}
.kitchen-times-main :is(.kt-dot-mark,.kt-marker){position:absolute;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--kt-mark);box-shadow:0 0 0 2px var(--lp-card);pointer-events:none}
.kitchen-times-main .kt-marker{width:10px;height:10px;margin:-5px 0 0 -5px;z-index:2}
.kitchen-times-main .kt-crosshair{position:absolute;top:0;bottom:0;width:0;border-left:1px solid color-mix(in srgb, var(--lp-ink) 32%, transparent);pointer-events:none}
.kitchen-times-main .kt-tip{position:absolute;bottom:calc(100% + 6px);z-index:3;display:flex;flex-direction:column;gap:2px;padding:8px 11px 9px;border:1px solid var(--lp-line);border-radius:10px;background:var(--lp-card);box-shadow:var(--lp-shadow-lifted);pointer-events:none;white-space:nowrap}
.kitchen-times-main .kt-tip-date{color:var(--lp-primary);font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}
.kitchen-times-main .kt-tip-row{display:flex;align-items:center;gap:6px;color:var(--lp-muted);font-size:12px;font-variant-numeric:tabular-nums}
.kitchen-times-main .kt-tip-row strong{color:var(--lp-ink);font-size:13px;font-weight:700}
.kitchen-times-main .kt-tip-row.own strong{font-size:15px}
.kitchen-times-main .kt-tip-row.own{color:var(--lp-ink)}
.kitchen-times-main .kt-tip-key{flex:0 0 auto;width:12px;height:2px;border-radius:1px;background:var(--kt-ghost)}
.kitchen-times-main .kt-tip-key.own{background:var(--kt-mark)}
.kitchen-times-main .kt-tip-muted{color:var(--lp-muted)}
.kitchen-times-main .kt-axis{display:flex;justify-content:space-between;margin:4px 0 0 44px;color:var(--lp-muted);font-size:12px;font-variant-numeric:tabular-nums}

/* ── Where the order came from: a group of rows per store ───────────────────────────────────── */
.kitchen-times-main .kt-source-table tr.kt-group th{padding:16px 0 8px;border-bottom:1px solid var(--lp-line);color:var(--lp-ink);font-family:var(--lp-display);font-size:16px;font-weight:600;letter-spacing:0;text-transform:none}
.kitchen-times-main .kt-source-table tbody:first-of-type tr.kt-group th{padding-top:4px}
.kitchen-times-main .kt-source-label{display:block;color:var(--lp-ink);overflow-wrap:anywhere}
.kitchen-times-main .kt-source-table td.num .kt-figure{font-size:15px;font-weight:600}
.kitchen-times-main .kt-note{margin:0;padding:10px 12px;border-radius:10px;background:var(--lp-soft);color:color-mix(in srgb, var(--lp-ink) 85%, var(--lp-muted));font-size:13px;line-height:1.45}

/* ── Nothing stored ─────────────────────────────────────────────────────────────────────────── */
.kitchen-times-main .kt-unavailable{max-width:620px}
.kitchen-times-main .kt-unavailable .kt-panel-sub{margin:-8px 0 0;font-size:14px}

/* ── The upload ─────────────────────────────────────────────────────────────────────────────── */
.kitchen-times-main .kt-upload{max-width:100%}
.kitchen-times-main .kt-steps{display:grid;gap:8px;margin:0;padding:0 0 0 22px;color:var(--lp-ink);font-size:14px;line-height:1.45}
.kitchen-times-main .kt-steps strong{font-weight:700}
.kitchen-times-main .kt-how summary{width:max-content;max-width:100%;color:var(--lp-ink);font-size:13.5px;font-weight:600;cursor:pointer;border-radius:4px}
.kitchen-times-main .kt-how[open] summary{margin-bottom:10px}
.kitchen-times-main .kt-picker{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px}
/* The input stays in the page for the keyboard and the label is what is seen and pressed. */
.kitchen-times-main .kt-file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip-path:inset(50%)}
.kitchen-times-main .kt-file-button{display:inline-flex;align-items:center;height:40px;padding:0 16px;border-radius:8px;background:var(--lp-accent);color:var(--paper);font-size:14px;font-weight:600;cursor:pointer}
.kitchen-times-main .kt-file-button.is-secondary{border:1px solid var(--lp-line);background:var(--lp-card);color:var(--lp-ink)}
.kitchen-times-main .kt-file-input:focus-visible+.kt-file-button{outline:2px solid var(--lp-accent);outline-offset:2px}
.kitchen-times-main .kt-file-input:disabled+.kt-file-button{opacity:.6;cursor:not-allowed}
.kitchen-times-main .kt-file-name{color:var(--lp-muted);font-size:13px;overflow-wrap:anywhere;min-width:0}
.kitchen-times-main .kt-file-summary{margin:0;color:var(--lp-ink);font-size:14px;font-variant-numeric:tabular-nums}
.kitchen-times-main .kt-confirm-table td{padding:10px}
.kitchen-times-main .kt-confirm-table tr.is-off td:not(.kt-tick-cell){opacity:.55}
.kitchen-times-main .kt-tick-cell{width:36px}
.kitchen-times-main .kt-tick-cell input{width:20px;height:20px;margin:0;accent-color:var(--lp-primary);cursor:pointer}
.kitchen-times-main .kt-confirm-store strong{font-weight:700}
.kitchen-times-main .kt-select{width:100%;max-width:340px;height:40px;padding:0 10px;border:1px solid var(--lp-line);border-radius:8px;background:var(--lp-card);color:var(--lp-ink);font-size:14px;color-scheme:light}
.kitchen-times-main .kt-select:focus-visible{outline:none;border-color:var(--lp-accent);box-shadow:var(--kt-focus)}
.kitchen-times-main .kt-confirm-days{color:var(--lp-ink);font-size:13.5px;font-variant-numeric:tabular-nums}
.kitchen-times-main .kt-skipped{margin:0;color:var(--lp-muted);font-size:13px}
.kitchen-times-main .kt-skipped strong{color:var(--lp-ink)}
.kitchen-times-main .kt-upload-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px}
.kitchen-times-main .kt-upload-actions .kt-apply{height:40px}
.kitchen-times-main .kt-upload-hint{color:var(--kt-flag-ink);font-size:13px;font-weight:600}
.kitchen-times-main .kt-upload-error{margin:0;color:var(--kt-bad);font-size:13.5px;font-weight:600;line-height:1.45}
.kitchen-times-main .kt-upload-done{margin:0;color:var(--kt-good-ink);font-size:14px;font-weight:600;line-height:1.45}
.kitchen-times-main .kt-progress{margin:0;color:var(--lp-ink);font-size:13.5px;font-variant-numeric:tabular-nums}
.kitchen-times-main .kt-progress:empty{display:none}
.kitchen-times-main .kt-results{display:grid;gap:6px;margin:0;padding:0;list-style:none;font-size:13.5px;color:var(--lp-ink);font-variant-numeric:tabular-nums}

/* ── Loading ─────────────────────────────────────────────────────────────────────────────────── */
.kitchen-times-main .kt-skeleton{min-height:220px;box-shadow:none;background:linear-gradient(100deg,var(--lp-card) 20%,var(--lp-soft) 50%,var(--lp-card) 80%);background-size:220% 100%;animation:kt-shimmer 1.4s linear infinite}
.kitchen-times-main .kt-skeleton-tall{min-height:320px}
@keyframes kt-shimmer{from{background-position:120% 0}to{background-position:-120% 0}}
@media (prefers-reduced-motion:reduce){
  .kitchen-times-main .kt-skeleton{animation:none}
  .kitchen-times-main .kt-hint-tip{transition:none!important}
  .kitchen-times-main :is(.kt-body,.kt-preset,.kt-chip,.kt-apply,.kt-upload-toggle){transition:none}
}

/* ── Narrower ────────────────────────────────────────────────────────────────────────────────── */
@media (max-width:1100px){
  .kitchen-times-main .kt-pair{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:980px){
  .kitchen-times-main .kt-store{grid-template-columns:minmax(0,12rem) 7.5rem minmax(0,1fr)}
  .kitchen-times-main .kt-league-axis{grid-template-columns:minmax(0,12rem) 7.5rem minmax(0,1fr)}
  /* The confirm table becomes a card per store: the tick and the name, then the screen, then counts. */
  .kitchen-times-main .kt-confirm-table thead{display:none}
  .kitchen-times-main .kt-confirm-table,.kitchen-times-main .kt-confirm-table tbody{display:block}
  .kitchen-times-main .kt-confirm-table tr{display:grid;grid-template-columns:36px minmax(0,1fr) minmax(0,1fr);gap:8px 12px;padding:14px 0;border-bottom:1px solid color-mix(in srgb, var(--lp-line) 70%, transparent)}
  .kitchen-times-main .kt-confirm-table tbody tr:last-child{border-bottom:0}
  .kitchen-times-main .kt-confirm-table td{display:block;padding:0;border:0}
  .kitchen-times-main .kt-confirm-table td.kt-tick-cell{grid-row:1;grid-column:1;width:auto;align-self:center}
  .kitchen-times-main .kt-confirm-table td.kt-confirm-store{grid-row:1;grid-column:2 / -1;align-self:center}
  .kitchen-times-main .kt-confirm-table td.kt-confirm-screen{grid-column:2 / -1}
  .kitchen-times-main .kt-confirm-table td.num{grid-column:2;text-align:left}
  .kitchen-times-main .kt-confirm-table td:is(.num,.kt-confirm-days)::before{content:attr(data-label);display:block;color:var(--lp-muted);font-size:10px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;margin-bottom:2px}
  .kitchen-times-main .kt-select{max-width:none}
}

/* ── Phone: one column, 16px gutter ─────────────────────────────────────────────────────────── */
@media (max-width:720px){
  .kitchen-times-main .topbar{height:60px;min-height:60px}
  .kitchen-times-main .module-shell{padding:0 16px 32px}
  .kitchen-times-main .kt-page{padding-top:22px;gap:16px}
  .kitchen-times-main .kt-body{gap:16px}
  .kitchen-times-main .kt-title h2{font-size:28px}
  .kitchen-times-main .kt-actions,.kitchen-times-main .kt-upload-toggle{width:100%}
  .kitchen-times-main .kt-range{flex-direction:column;align-items:stretch;width:100%}
  .kitchen-times-main .kt-presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .kitchen-times-main .kt-preset{padding:0 4px}
  .kitchen-times-main .kt-preset-long{display:none}
  .kitchen-times-main .kt-preset-short{display:inline}
  .kitchen-times-main .kt-custom{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px}
  .kitchen-times-main .kt-date{min-width:0;font-size:10px}
  .kitchen-times-main .kt-date input{width:100%;min-width:0;padding:0 6px;font-size:16px}
  .kitchen-times-main .kt-apply{padding:0 13px}
  .kitchen-times-main .kt-chip{min-height:38px}

  .kitchen-times-main :is(.kt-panel,.kt-upload){padding:18px 16px}
  .kitchen-times-main .kt-pair{gap:16px}

  /* A store: name and time on one line, the bar under them, then the counts. */
  .kitchen-times-main .kt-store{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name figure" "bar bar" "facts facts";row-gap:8px;column-gap:12px}
  .kitchen-times-main .kt-store-figure{justify-items:end}
  .kitchen-times-main .kt-big{font-size:26px}
  .kitchen-times-main .kt-store-facts{gap:4px 12px;font-size:12.5px}
  .kitchen-times-main .kt-league-axis{grid-template-columns:minmax(0,1fr);margin-top:-4px}
  .kitchen-times-main .kt-axis-ticks{grid-column:1}

  .kitchen-times-main .kt-time-table th.kt-corner{width:19%}
  .kitchen-times-main .kt-time-table th.kt-store-col{padding:0 4px 8px;font-size:10px;letter-spacing:.05em}
  .kitchen-times-main .kt-time-table td.kt-cell{padding:7px 4px 8px}
  .kitchen-times-main .kt-time-table th.kt-row-label{padding-right:4px;font-size:12px}
  .kitchen-times-main .kt-cell-time{font-size:13px}
  .kitchen-times-main .kt-cell-orders{font-size:11px}
  .kitchen-times-main .kt-word,.kitchen-times-main .kt-day-long{display:none}
  .kitchen-times-main .kt-day-short{display:inline}

  .kitchen-times-main .kt-multiples{grid-template-columns:minmax(0,1fr);gap:18px}
  .kitchen-times-main .kt-plot{height:130px;margin-left:40px}
  .kitchen-times-main .kt-axis{margin-left:40px}

  .kitchen-times-main .kt-source-table{font-size:13px}
  .kitchen-times-main .kt-source-table th{padding:0 6px 8px;font-size:10px;letter-spacing:.05em}
  .kitchen-times-main .kt-source-table td{padding:9px 6px}
  .kitchen-times-main .kt-source-table td.num .kt-figure{font-size:14px}

  .kitchen-times-main .kt-select{font-size:16px}
  .kitchen-times-main .kt-confirm-table tr{grid-template-columns:32px minmax(0,1fr) minmax(0,1fr)}
}
