/*
Theme Name: KneadSupplies Portal
Theme URI: https://example.com/
Author: Knead
Description: A warm, clear, responsive WordPress theme for the Knead bakery operations portal.
Version: 1.0.0
Requires at least: 6.2
Requires PHP: 8.0
Text Domain: knead-bakery-theme
*/

:root {
  --knead-cream: #f8f5ee;
  --knead-white: #fffefa;
  --knead-ink: #28352d;
  --knead-muted: #6f786f;
  --knead-green: #315d43;
  --knead-green-dark: #244a34;
  --knead-line: #e5e5db;
  --knead-gold: #c68c4c;
  --knead-shadow: 0 18px 55px rgb(40 53 45 / 8%);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--knead-cream);
  color: var(--knead-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--knead-green); text-underline-offset: .18em; }
a:hover { color: var(--knead-green-dark); }
button, input, select, textarea { font: inherit; }
button, a, input, select { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #d59b5b; outline-offset: 3px; }

.knead-site-header {
  position: relative;
  z-index: 2;
  display: flex;
  min-height: 82px;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: .85rem clamp(1rem, 4vw, 3.5rem);
  border-bottom: 1px solid rgb(40 53 45 / 8%);
  background: var(--knead-white);
}
.knead-brand { display: inline-flex; min-width: 0; align-items: center; gap: .85rem; color: var(--knead-ink); text-decoration: none; }
.knead-brand:hover { color: var(--knead-ink); }
.custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo { display: block; width: auto; max-width: 170px; max-height: 54px; object-fit: contain; }
.knead-brand__logo { display: block; width: min(158px, 38vw); height: auto; max-height: 54px; object-fit: contain; }
.knead-brand__suffix { margin-left: -.55rem; color: var(--knead-ink); font-family: Georgia, "Times New Roman", serif; font-size: 1.35rem; font-weight: 700; letter-spacing: -.045em; }
.knead-brand__mark {
  display: grid;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  place-items: center;
  border-radius: 50% 50% 42% 42%;
  background: var(--knead-green);
  color: white;
  font-family: Georgia, serif;
  font-size: 1.35rem;
  font-style: italic;
  font-weight: 700;
}
.knead-brand__words { display: grid; line-height: 1.15; }
.knead-brand__name { font-family: Georgia, "Times New Roman", serif; font-size: 1.45rem; font-weight: 700; letter-spacing: -.035em; }
.knead-brand__tagline { margin-top: .25rem; color: var(--knead-muted); font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.knead-site-nav { display: flex; align-items: center; gap: .4rem; }
.knead-site-nav a { display: inline-flex; min-height: 42px; align-items: center; padding: .55rem .85rem; border-radius: 8px; color: var(--knead-muted); font-size: .9rem; font-weight: 600; text-decoration: none; }
.knead-site-nav a:hover, .knead-site-nav .current-menu-item > a { background: #f0f3ed; color: var(--knead-green); }
.knead-site-nav .knead-nav-logout { margin-left: .35rem; border: 1px solid var(--knead-line); color: var(--knead-ink); }
.knead-page-shell { min-height: calc(100vh - 150px); padding: clamp(1.3rem, 4vw, 3rem) 1rem 3rem; }
.knead-page-content { width: min(100%, 1250px); margin-inline: auto; }
.knead-page-title { margin: 0 auto 1.5rem; color: var(--knead-ink); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 4vw, 3rem); font-weight: 600; letter-spacing: -.04em; }
.knead-page-content--portal .knead-page-title { display: none; }
.knead-page-content--portal { width: min(100%, 1320px); }
.knead-site-footer { display: flex; min-height: 68px; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem clamp(1rem, 4vw, 3.5rem); border-top: 1px solid var(--knead-line); background: var(--knead-white); color: var(--knead-muted); font-size: .8rem; }
.knead-site-footer p { margin: 0; }
.knead-site-footer a { color: var(--knead-muted); }
.knead-skip-link { position: absolute; top: -100px; left: 1rem; z-index: 10; padding: .75rem 1rem; border-radius: 8px; background: var(--knead-green); color: white; }
.knead-skip-link:focus { top: 1rem; color: white; }

/* Match the portal's components to the surrounding site theme. */
.knead-portal {
  --knead-ink: #28352d;
  --knead-muted: #6f786f;
  --knead-line: #e5e5db;
  --knead-paper: #fffefa;
  --knead-green: #315d43;
  --knead-soft: #f2f4ed;
  max-width: none;
  margin: 0 auto;
  padding: clamp(1.1rem, 3vw, 2.2rem);
  border: 1px solid var(--knead-line);
  border-radius: 20px;
  background: var(--knead-white);
  box-shadow: var(--knead-shadow);
}
.knead-portal h1, .knead-portal h2, .knead-portal h3 { font-family: inherit; }
.knead-portal h1 { font-size: clamp(1.8rem, 3.4vw, 2.45rem); letter-spacing: -.04em; }
.knead-portal__header { align-items: center; padding-bottom: 1.15rem; border-bottom: 1px solid var(--knead-line); }
.knead-portal .knead-card { border-color: #e8e8de; background: #f4f5ef; }
.knead-portal .knead-panel { box-shadow: 0 5px 20px rgb(40 53 45 / 3%); }
.knead-portal .knead-button { transition: background-color .16s ease, transform .16s ease; }
.knead-portal .knead-button:hover { transform: translateY(-1px); }
.knead-portal .knead-table tbody tr:hover { background: #fafbf7; }
.knead-portal .knead-notice { border-radius: 10px; }
.knead-portal .knead-table th { white-space: normal; }

@media (max-width: 720px) {
  .knead-site-header { min-height: 72px; flex-wrap: wrap; gap: .6rem; padding-block: .7rem; }
  .knead-site-nav { width: 100%; overflow-x: auto; padding-bottom: .15rem; }
  .knead-site-nav a { flex: 0 0 auto; }
  .knead-page-shell { padding: 1rem .55rem 2rem; }
  .knead-site-footer { align-items: flex-start; flex-direction: column; justify-content: center; }
  .knead-portal { border-radius: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
