@charset "UTF-8";

:root {
  color-scheme: light;
  --tm-bg: #f8f5ee;
  --tm-surface: #fffdf8;
  --tm-surface-2: #f2ede3;
  --tm-text: #28251f;
  --tm-muted: #716b61;
  --tm-border: #ded7ca;
  --tm-accent: #d79216;
  --tm-accent-strong: #a96800;
  --tm-focus: #8b5a00;
  --tm-success: #28734a;
  --tm-danger: #a63d40;
  --tm-shadow: 0 12px 34px rgba(52, 43, 27, .08);
  --tm-radius: 1rem;
}

html[data-bs-theme="dark"] {
  color-scheme: dark;
  --tm-bg: #171715;
  --tm-surface: #22221f;
  --tm-surface-2: #2b2a26;
  --tm-text: #f5f0e6;
  --tm-muted: #bcb5a9;
  --tm-border: #454139;
  --tm-accent: #efb23c;
  --tm-accent-strong: #ffd27a;
  --tm-focus: #ffd27a;
  --tm-success: #74c69d;
  --tm-danger: #ff8d91;
  --tm-shadow: 0 14px 38px rgba(0, 0, 0, .24);
}

* { box-sizing: border-box; }
html { background: var(--tm-bg); }
body {
  margin: 0;
  min-height: 100vh;
  overflow-x: hidden;
  background: var(--tm-bg);
  color: var(--tm-text);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  line-height: 1.5;
}
a { color: var(--tm-accent-strong); }
a:hover { color: var(--tm-accent); }
:focus-visible { outline: 3px solid var(--tm-focus); outline-offset: 3px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 1020;
  border-bottom: 1px solid var(--tm-border);
  background: color-mix(in srgb, var(--tm-bg) 92%, transparent);
  backdrop-filter: blur(14px);
}
.tamago-nav { min-height: 4.25rem; }
.tamago-brand {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: var(--tm-text);
  font-weight: 800;
  letter-spacing: -.02em;
}
.tamago-brand:hover { color: var(--tm-text); }
.tamago-brand i { color: var(--tm-accent); }
.nav-link {
  margin: .15rem;
  padding: .55rem .8rem !important;
  border-radius: .7rem;
  color: var(--tm-muted);
  font-weight: 600;
}
.nav-link:hover, .nav-link.active {
  background: var(--tm-surface-2);
  color: var(--tm-text);
}
.nav-link.active { box-shadow: inset 0 -2px 0 var(--tm-accent); }
.nav-link-secondary { font-weight: 500; }
.theme-toggle {
  display: inline-grid;
  width: 2.65rem;
  height: 2.65rem;
  place-items: center;
  border: 1px solid var(--tm-border);
  border-radius: 999px;
  background: var(--tm-surface);
  color: var(--tm-text);
}
.navbar-toggler { border-color: var(--tm-border); }
.navbar-toggler:focus { box-shadow: none; }
.tamago-main {
  width: min(100% - 2rem, 1120px);
  padding-top: clamp(1.5rem, 4vw, 3rem);
  padding-bottom: 4rem;
}
.card, .form-control, .input-group-text, .table {
  --bs-body-bg: var(--tm-surface);
  --bs-body-color: var(--tm-text);
  --bs-border-color: var(--tm-border);
}
.card { border-color: var(--tm-border); border-radius: var(--tm-radius); box-shadow: var(--tm-shadow); }
.form-control, .input-group-text { border-color: var(--tm-border); background: var(--tm-surface); color: var(--tm-text); }
.form-control:focus { border-color: var(--tm-accent); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--tm-accent) 20%, transparent); }
.btn-primary { --bs-btn-bg: var(--tm-accent-strong); --bs-btn-border-color: var(--tm-accent-strong); }
#history { padding-top: 3rem; }
#egg-fa { color: var(--tm-accent); }
#bill-fa { color: var(--tm-success); }
#history table { font-size: .875rem; }
.balance-table-sale { background-color: color-mix(in srgb, var(--tm-success) 14%, var(--tm-surface)); }
.balance-table-bill { background-color: color-mix(in srgb, var(--tm-danger) 14%, var(--tm-surface)); }
.balance-table-total { background-color: var(--tm-surface-2); font-size: .9rem; }
.metrics-navigation-button, .balance-navigation-button { font-size: 1.5rem; }
#metrics { padding-top: 2rem; }
#metrics .card { border: 1px solid var(--tm-border); background: var(--tm-surface); }
#metrics .card i { font-size: 2rem; color: var(--tm-accent); }

@media (max-width: 991.98px) {
  .navbar-collapse { padding: .75rem 0 1rem; }
  .nav-link { padding: .7rem .8rem !important; }
}
@media (max-width: 600px) {
  .tamago-main { width: min(100% - 1.25rem, 1120px); }
  #history { padding-top: 2rem; }
  .balance-navigation-button { font-size: .9rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Sales workspace — the dozen rail is the signature interaction. */
.sales-workspace { display: grid; gap: clamp(2rem, 5vw, 4.5rem); }
.sale-entry-panel { max-width: 880px; margin-inline: auto; width: 100%; }
.sale-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:2rem; margin-bottom:1.5rem; }
.sale-heading h1, .history-heading h2 { margin:0; font-weight:800; letter-spacing:-.045em; }
.sale-heading h1 { font-size:clamp(2.25rem, 7vw, 4.5rem); line-height:.95; }
.section-kicker { margin:0 0 .4rem; color:var(--tm-accent-strong); font-size:.72rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.section-copy { margin:.75rem 0 0; color:var(--tm-muted); }
.egg-mark { display:grid; place-items:center; width:clamp(4rem, 10vw, 6rem); aspect-ratio:1; border-radius:55% 45% 50% 50% / 62% 62% 38% 38%; background:var(--tm-accent); color:#332000; font-size:clamp(1.4rem,4vw,2.25rem); transform:rotate(8deg); }
.sale-form { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr) minmax(150px,.65fr); gap:1rem; padding:1.15rem; border:1px solid var(--tm-border); border-radius:1.25rem; background:var(--tm-surface); box-shadow:var(--tm-shadow); }
.field-group { position:relative; display:flex; flex-direction:column; gap:.45rem; }
.field-group label { color:var(--tm-muted); font-size:.78rem; font-weight:750; letter-spacing:.03em; }
.field-group .form-control { min-height:3.25rem; border-radius:.8rem; }
.customer-suggestions { position:absolute; z-index:30; top:calc(100% - .05rem); left:0; width:100%; max-height:11.5rem; overflow-y:auto; padding:.18rem; border:1px solid var(--tm-border); border-top-color:color-mix(in srgb,var(--tm-border) 65%,transparent); border-radius:0 0 .72rem .72rem; background:var(--tm-surface); box-shadow:0 .55rem 1.25rem rgba(0,0,0,.13); }
.customer-suggestion { display:block; width:100%; min-height:2.15rem; padding:.4rem .65rem; border:0; border-radius:.42rem; background:transparent; color:var(--tm-text); font-size:.94rem; line-height:1.2; text-align:left; }
.customer-suggestion + .customer-suggestion { margin-top:.02rem; }
.customer-suggestion:hover,.customer-suggestion:focus-visible,.customer-suggestion[aria-selected="true"] { outline:0; background:var(--tm-surface-2); color:var(--tm-text); }
.dozen-rail { display:grid; grid-template-columns:3.2rem minmax(4.5rem,1fr) 3.2rem; align-items:stretch; min-height:3.25rem; padding:.22rem; border:1px solid var(--tm-border); border-radius:999px; background:var(--tm-surface-2); }
.dozen-rail .quantity-input { min-height:0; padding:.3rem; border:0; border-radius:0; background:transparent; box-shadow:none; font-size:1.15rem; font-weight:800; text-align:center; }
.quantity-step { border:0; border-radius:999px; background:var(--tm-surface); color:var(--tm-accent-strong); font-weight:850; box-shadow:0 1px 0 rgba(0,0,0,.06); }
.quantity-step:hover { background:var(--tm-accent); color:#332000; }
.field-hint { color:var(--tm-muted); font-size:.7rem; text-align:center; }
.price-control { display:grid; grid-template-columns:1fr auto; align-items:center; min-height:3.25rem; padding-right:.8rem; border:1px solid var(--tm-border); border-radius:.8rem; background:var(--tm-surface); }
.price-control .form-control { min-height:3rem; border:0; box-shadow:none; }
.price-control span { color:var(--tm-muted); font-weight:800; }
.sale-submit { grid-column:1/-1; display:flex; align-items:center; justify-content:center; gap:.55rem; min-height:3.25rem; border-radius:.8rem; background:var(--tm-accent); color:#2f2108; font-weight:850; }
.sale-submit:hover { background:var(--tm-accent-strong); color:var(--tm-surface); }
.history-section { width:100%; }
.history-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:1rem; }
.history-heading h2 { font-size:clamp(1.55rem,4vw,2.3rem); }
.history-count { display:grid; min-width:2.25rem; height:2.25rem; place-items:center; border:1px solid var(--tm-border); border-radius:999px; color:var(--tm-muted); font-variant-numeric:tabular-nums; }
.sales-table-wrap { overflow-x:auto; border-top:1px solid var(--tm-border); }
.sales-table { margin:0; background:transparent; color:var(--tm-text); }
.sales-table th { padding:.85rem .7rem; border-color:var(--tm-border); color:var(--tm-muted); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; }
.sales-table td { padding:1rem .7rem; border-color:var(--tm-border); vertical-align:middle; }
.egg-count { display:inline-flex; min-width:2.3rem; justify-content:center; padding:.25rem .5rem; border-radius:999px; background:color-mix(in srgb,var(--tm-accent) 18%,transparent); color:var(--tm-text); font-weight:800; }
.delete-action { display:grid; width:2.4rem; height:2.4rem; place-items:center; border:0; border-radius:999px; background:transparent; color:var(--tm-muted); }
.delete-action:hover { background:color-mix(in srgb,var(--tm-danger) 12%,transparent); color:var(--tm-danger); }
.empty-ledger { display:flex; align-items:center; gap:.85rem; padding:1.5rem 0; border-top:1px solid var(--tm-border); color:var(--tm-muted); }
.empty-ledger p { margin:0; }
.empty-ledger i { color:var(--tm-accent); }
.tamago-feedback:empty { display:none; }

@media (max-width: 760px) {
  .sale-heading { align-items:center; }
  .egg-mark { width:4rem; }
  .sale-form { grid-template-columns:1fr; padding:.9rem; }
  .sale-submit { grid-column:auto; }
  .sales-table thead { display:none; }
  .sales-table, .sales-table tbody { display:block; }
  .sales-table tr { display:grid; grid-template-columns:1fr 1fr; gap:.45rem 1rem; padding:1rem 0; border-bottom:1px solid var(--tm-border); }
  .sales-table td { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; padding:0; border:0; text-align:right; }
  .sales-table td::before { content:attr(data-label); color:var(--tm-muted); font-size:.72rem; font-weight:700; text-align:left; }
  .sales-table td:nth-child(2) { grid-column:1/-1; order:-2; font-size:1.05rem; }
  .sales-table td:nth-child(5) { grid-column:1/-1; order:-1; }
  .sales-table td.sale-actions { justify-content:flex-end; }
  .sales-table td.sale-actions::before { content:""; }
}

/* Expenses share the ledger language, with receipt geometry instead of another card system. */
.expense-mark { display:grid; place-items:center; width:clamp(4rem,10vw,6rem); aspect-ratio:1; border:1px solid var(--tm-border); border-radius:1.1rem .35rem 1.1rem .35rem; background:var(--tm-surface); color:var(--tm-accent-strong); font-size:clamp(1.35rem,4vw,2rem); box-shadow:var(--tm-shadow); transform:rotate(-3deg); }
.expense-form { grid-template-columns:minmax(220px,1.5fr) minmax(150px,.75fr) minmax(130px,.6fr) minmax(120px,.55fr) minmax(150px,.65fr); }
.expense-submit { grid-column:1/-1; }
@media (max-width: 900px) { .expense-form { grid-template-columns:1fr 1fr; } .expense-item-field,.expense-submit { grid-column:1/-1; } }
@media (max-width: 560px) { .expense-form { grid-template-columns:1fr; } .expense-item-field,.expense-submit { grid-column:auto; } .expense-mark { width:4rem; } }

/* Monthly views: tally/ledger, deliberately not dashboard cards. */
.insight-page { display:grid; gap:clamp(2rem,5vw,4rem); }
.insight-header { display:flex; align-items:end; justify-content:space-between; gap:2rem; padding-top:1rem; }
.insight-header h1 { margin:0; font-size:clamp(2.25rem,7vw,4.5rem); line-height:.95; font-weight:800; letter-spacing:-.045em; }
.month-switcher { display:grid; grid-template-columns:2.8rem minmax(8rem,auto) 2.8rem; align-items:center; border:1px solid var(--tm-border); border-radius:999px; background:var(--tm-surface); box-shadow:var(--tm-shadow); overflow:hidden; }
.month-arrow { display:grid; min-height:3.3rem; place-items:center; color:var(--tm-text); text-decoration:none; }
.month-arrow:hover { background:var(--tm-surface-2); color:var(--tm-accent-strong); }
.month-current { display:flex; align-items:baseline; justify-content:center; gap:.45rem; padding:.55rem .8rem; text-align:center; white-space:nowrap; }
.month-current span { font-weight:800; }.month-current strong { color:var(--tm-muted); font-size:.78rem; }
.tally-strip { display:grid; grid-template-columns:repeat(4,1fr); border-block:1px solid var(--tm-border); }
.tally-item { display:flex; align-items:center; gap:1rem; min-height:8rem; padding:1.25rem; border-right:1px solid var(--tm-border); }
.tally-item:last-child { border-right:0; }
.tally-item > div { display:flex; flex-direction:column; gap:.25rem; }
.tally-item span:not(.tally-icon):not(.tally-sign) { color:var(--tm-muted); font-size:.8rem; font-weight:700; }
.tally-item strong { font-size:clamp(1.6rem,4vw,2.5rem); letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
.tally-icon,.tally-sign { display:grid; width:2.6rem; height:2.6rem; flex:0 0 auto; place-items:center; border-radius:999px; background:color-mix(in srgb,var(--tm-accent) 18%,transparent); color:var(--tm-accent-strong); font-size:1.15rem; font-weight:900; }
.lifetime-tally { display:grid; grid-template-columns:minmax(180px,.7fr) 2fr; gap:2rem; align-items:start; }
.lifetime-tally h2 { margin:0; font-size:1.5rem; }
.lifetime-tally dl { display:grid; grid-template-columns:repeat(3,1fr); margin:0; border-top:1px solid var(--tm-border); }
.lifetime-tally dl div { padding:1rem 0; border-bottom:1px solid var(--tm-border); }
.lifetime-tally dt { color:var(--tm-muted); font-size:.78rem; }.lifetime-tally dd { margin:.2rem 0 0; font-size:1.2rem; font-weight:800; }
.balance-ledger { border-top:1px solid var(--tm-border); }
.ledger-entry { display:grid; grid-template-columns:110px minmax(180px,1.4fr) .55fr .65fr .75fr; gap:1rem; align-items:center; padding:1rem .25rem; border-bottom:1px solid var(--tm-border); }
.ledger-kind { display:flex; align-items:center; gap:.5rem; color:var(--tm-muted); font-size:.76rem; font-weight:800; text-transform:uppercase; }
.ledger-symbol { display:grid; width:1.8rem; height:1.8rem; place-items:center; border-radius:999px; font-size:1rem; }
[data-entry-type="sale"] .ledger-symbol { background:color-mix(in srgb,var(--tm-success) 14%,transparent); }
[data-entry-type="bill"] .ledger-symbol { background:color-mix(in srgb,var(--tm-danger) 12%,transparent); }
.ledger-main,.ledger-detail,.ledger-amount { display:flex; flex-direction:column; gap:.15rem; }
.ledger-main span,.ledger-detail span,.ledger-amount span { color:var(--tm-muted); font-size:.7rem; }
.ledger-detail strong,.ledger-amount strong { font-variant-numeric:tabular-nums; }
.ledger-amount { text-align:right; }.ledger-amount strong { font-size:1.08rem; }
.balance-total { display:flex; align-items:baseline; justify-content:flex-end; gap:1.25rem; padding:1.25rem .25rem; border-bottom:3px solid var(--tm-accent); }
.balance-total span { color:var(--tm-muted); font-weight:700; }.balance-total strong { font-size:clamp(1.5rem,4vw,2.25rem); letter-spacing:-.04em; font-variant-numeric:tabular-nums; }
@media (max-width:760px) {
 .insight-header { align-items:flex-start; flex-direction:column; }.month-switcher { width:100%; grid-template-columns:3rem 1fr 3rem; }
 .tally-strip { grid-template-columns:1fr; }.tally-item { min-height:5.5rem; border-right:0; border-bottom:1px solid var(--tm-border); }.tally-item:last-child{border-bottom:0;}
 .lifetime-tally { grid-template-columns:1fr; gap:1rem; }.lifetime-tally dl { grid-template-columns:1fr; }
 .ledger-entry { grid-template-columns:1fr auto; gap:.6rem 1rem; }.ledger-kind,.ledger-main { grid-column:1/-1; }.ledger-kind{order:-2}.ledger-main{order:-1}.ledger-detail{display:none}.ledger-amount{grid-column:2;text-align:right}.ledger-main span{font-size:.75rem;}
}

/* Ledger navigation */
.history-filters { display:grid; grid-template-columns:minmax(180px,1fr) minmax(150px,.7fr) repeat(2,minmax(150px,.55fr)) auto; gap:.75rem; align-items:end; margin:1rem 0 1.25rem; }
.history-filters label { display:grid; gap:.35rem; color:var(--tm-muted); font-size:.78rem; font-weight:700; }
.filter-submit { min-height:2.75rem; border:1px solid var(--tm-border); background:var(--tm-surface); color:var(--tm-text); }
.history-pagination { display:flex; align-items:center; justify-content:center; gap:.85rem; margin-top:1.5rem; }
.history-pagination .page-link { display:inline-flex; align-items:center; justify-content:center; min-width:7.25rem; min-height:2.75rem; padding:.6rem 1rem; border:1px solid var(--tm-border); border-radius:999px; background:var(--tm-surface); color:var(--tm-text); font-size:.88rem; font-weight:700; line-height:1; text-decoration:none; white-space:nowrap; transition:background-color .15s ease,border-color .15s ease,transform .15s ease; }
.history-pagination .page-link:hover { border-color:var(--tm-accent); background:var(--tm-surface-2); color:var(--tm-text); transform:translateY(-1px); }
.history-pagination .page-link:focus-visible { outline:3px solid color-mix(in srgb,var(--tm-accent) 45%,transparent); outline-offset:2px; }
.history-pagination span { min-width:3.25rem; color:var(--tm-muted); font-size:.85rem; font-weight:800; text-align:center; font-variant-numeric:tabular-nums; }
@media (max-width:640px) { .history-filters { grid-template-columns:1fr; } .history-pagination { gap:.6rem; } .history-pagination .page-link { min-width:6.5rem; padding-inline:.8rem; } }

/* Read-only family administration overview. */
.admin-page { display:grid; gap:2rem; }
.admin-header { display:flex; align-items:end; justify-content:space-between; gap:2rem; }
.admin-header h1 { margin:0; font-size:clamp(2.25rem,7vw,4.5rem); line-height:.95; font-weight:800; letter-spacing:-.045em; }
.admin-count { display:grid; min-width:3rem; height:3rem; place-items:center; border:1px solid var(--tm-border); border-radius:999px; color:var(--tm-muted); font-weight:800; font-variant-numeric:tabular-nums; }
.admin-user-list { border-top:1px solid var(--tm-border); }
.admin-user { display:grid; grid-template-columns:3rem minmax(0,1fr) auto; gap:1rem; align-items:center; padding:1rem .25rem; border-bottom:1px solid var(--tm-border); }
.admin-avatar { display:grid; width:2.7rem; height:2.7rem; place-items:center; border-radius:999px; background:color-mix(in srgb,var(--tm-accent) 18%,transparent); color:var(--tm-accent-strong); font-weight:900; }
.admin-identity,.admin-meta { display:flex; flex-direction:column; gap:.15rem; }
.admin-identity span,.role-list { color:var(--tm-muted); font-size:.82rem; }
.admin-meta { align-items:flex-end; }
.status-pill { padding:.22rem .55rem; border-radius:999px; font-size:.72rem; font-weight:800; }
.status-pill.is-active { background:color-mix(in srgb,var(--tm-success) 14%,transparent); color:var(--tm-success); }
.status-pill.is-inactive { background:color-mix(in srgb,var(--tm-danger) 12%,transparent); color:var(--tm-danger); }
@media (max-width:640px) { .admin-header { align-items:flex-start; } .admin-user { grid-template-columns:2.7rem 1fr; } .admin-meta { grid-column:2; align-items:flex-start; } }

/* Owner-safe ledger editing. */
.sale-actions { display:flex; align-items:center; justify-content:flex-end; gap:.35rem; }
.edit-action { display:inline-grid; width:2.2rem; height:2.2rem; place-items:center; border-radius:999px; color:var(--tm-muted); text-decoration:none; }
.edit-action:hover,.edit-action:focus-visible { background:var(--tm-surface-2); color:var(--tm-text); }
.edit-page { display:grid; grid-template-columns:minmax(0,.8fr) minmax(320px,1fr); gap:clamp(2rem,7vw,6rem); align-items:start; max-width:960px; margin-inline:auto; }
.edit-page h1 { margin:0; font-size:clamp(2.5rem,7vw,5rem); line-height:.95; letter-spacing:-.05em; }
.edit-card { display:grid; gap:1rem; padding:clamp(1.25rem,4vw,2rem); border:1px solid var(--tm-border); border-radius:1.25rem; background:var(--tm-surface); }
.edit-card label { display:grid; gap:.4rem; color:var(--tm-muted); font-size:.78rem; font-weight:800; }
.edit-actions { display:flex; justify-content:flex-end; gap:.75rem; margin-top:.5rem; }
.edit-cancel { display:inline-flex; align-items:center; border:1px solid var(--tm-border); color:var(--tm-text); }
@media(max-width:760px){.edit-page{grid-template-columns:1fr}.edit-actions>*{flex:1}}

.activity-tally{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);gap:clamp(1.5rem,5vw,4rem);align-items:start;padding:clamp(1.5rem,4vw,2.5rem) 0;border-bottom:1px solid var(--tm-border)}
.activity-heading h2{margin:0;font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-.035em}.activity-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;border-top:1px solid var(--tm-border)}.activity-grid>div{padding:1rem .25rem;border-bottom:1px solid var(--tm-border)}.activity-grid>div:nth-child(odd){padding-right:1.25rem}.activity-grid>div:nth-child(even){padding-left:1.25rem;border-left:1px solid var(--tm-border)}.activity-grid dt{color:var(--tm-muted);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.activity-grid dd{margin:.25rem 0 0;font-size:clamp(1.35rem,3vw,2rem);font-weight:850;font-variant-numeric:tabular-nums}@media(max-width:760px){.activity-tally{grid-template-columns:1fr}.activity-grid{grid-template-columns:1fr}.activity-grid>div:nth-child(n){padding:1rem .25rem;border-left:0}}

.category-breakdown{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);gap:clamp(1.5rem,5vw,4rem);padding:clamp(1.5rem,4vw,2.5rem) 0;border-bottom:1px solid var(--tm-border)}.category-breakdown h2{margin:0}.category-breakdown-list{margin:0}.category-breakdown-list>div{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--tm-border)}.category-breakdown-list>div:last-child{border-bottom:0}.category-breakdown-list dt{font-weight:700}.category-breakdown-list dd{margin:0;font-weight:850;font-variant-numeric:tabular-nums}@media(max-width:760px){.category-breakdown{grid-template-columns:1fr}}

@media (max-width:1100px) and (min-width:901px){.expense-form{grid-template-columns:minmax(220px,1.4fr) minmax(150px,.8fr) minmax(130px,.65fr) minmax(120px,.6fr)}.expense-submit{grid-column:1/-1}.history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.history-filters .filter-submit{grid-column:1/-1}}

.admin-settings{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:clamp(1.5rem,5vw,4rem);align-items:start;margin:1.5rem 0 3rem;padding:1.5rem;border:1px solid var(--tm-border);border-radius:1rem;background:var(--tm-surface)}.admin-settings h2{margin:0}.admin-settings-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.admin-settings-form label{display:grid;gap:.4rem;font-weight:700}.admin-settings-form .sale-submit{grid-column:1/-1}@media(max-width:760px){.admin-settings{grid-template-columns:1fr}.admin-settings-form{grid-template-columns:1fr}}

.customer-summary{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin:0 0 1.25rem;padding:1rem 1.25rem;border:1px solid var(--tm-border);border-radius:1rem;background:var(--tm-surface)}.customer-summary>div>strong{font-size:1.25rem}.customer-summary dl{display:flex;gap:clamp(1rem,4vw,2.5rem);margin:0}.customer-summary dl>div{display:grid;gap:.15rem}.customer-summary dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--tm-muted);font-weight:800}.customer-summary dd{margin:0;font-weight:850;font-variant-numeric:tabular-nums}@media(max-width:760px){.customer-summary{align-items:flex-start;flex-direction:column}.customer-summary dl{display:grid;grid-template-columns:repeat(2,1fr);width:100%}}

.expense-combobox{position:relative}.expense-suggestions{left:0;right:0;top:calc(100% + .35rem)}.expense-suggestion{display:flex!important;align-items:center;justify-content:space-between;gap:1rem;text-align:left}.expense-suggestion span{font-size:.78rem;color:var(--tm-muted);white-space:nowrap}

.history-heading-actions{display:inline-flex;align-items:center;gap:0;padding:.2rem;border:1px solid var(--tm-border);border-radius:999px;background:var(--tm-surface)}.history-heading-actions .export-link{display:inline-flex;align-items:center;gap:.4rem;min-height:2.25rem;padding:.4rem .7rem;border:0;border-radius:999px;font-size:.8rem;text-decoration:none;color:var(--tm-text)}.history-heading-actions .export-link:hover{background:var(--tm-surface-2);color:var(--tm-text)}.history-heading-actions .history-count{min-width:2rem;height:2rem;border:0;border-left:1px solid var(--tm-border);border-radius:0;padding:0 .55rem}.customer-shortcuts{display:flex;gap:.5rem;overflow-x:auto;padding:.25rem 0 .75rem;scrollbar-width:thin}.customer-shortcuts a{display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;padding:.45rem .7rem;border:1px solid var(--tm-border);border-radius:999px;background:var(--tm-surface);color:inherit;text-decoration:none;font-weight:750;font-size:.8rem}.customer-shortcuts a:hover{border-color:var(--tm-accent)}.customer-shortcuts span{color:var(--tm-muted);font-variant-numeric:tabular-nums}.summary-clear{display:block;margin-top:.25rem;font-size:.75rem;color:var(--tm-muted)}@media(max-width:560px){.history-heading{align-items:flex-start;gap:1rem}.history-heading-actions{flex-shrink:0}.history-heading-actions .export-link{min-height:2.1rem;padding-inline:.6rem}}


/* Family account administration. */
.family-create{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:clamp(1.5rem,5vw,4rem);padding:1.5rem;border:1px solid var(--tm-border);border-radius:1rem;background:var(--tm-surface)}
.family-create h2{margin:0}.family-create-form,.family-edit-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;gap:.75rem;align-items:end}.family-create-form label,.family-edit-form label{display:grid;gap:.35rem;font-size:.78rem;font-weight:800;color:var(--tm-muted)}.family-user{grid-template-columns:3rem minmax(0,1fr) auto}.family-save,.family-secondary{min-height:2.5rem;border:1px solid var(--tm-border);background:var(--tm-surface-2);color:var(--tm-text);font-weight:750}.family-actions{gap:.45rem}.family-actions form{margin:0}.family-secondary:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:820px){.family-create{grid-template-columns:1fr}.family-user{grid-template-columns:2.7rem 1fr}.family-edit-form{grid-template-columns:1fr}.family-actions{grid-column:2;align-items:flex-start}}

.production-safety{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:clamp(1.5rem,5vw,4rem);padding:1.5rem;border:1px solid var(--tm-border);border-left:3px solid color-mix(in srgb,var(--tm-success) 65%,var(--tm-border));border-radius:1rem;background:var(--tm-surface)}
.production-safety h2{margin:0}.production-safety-copy{display:grid;gap:.75rem}.production-safety-copy p{margin:0}.safety-note{display:flex;gap:.55rem;align-items:flex-start;color:var(--tm-muted);font-weight:700}.safety-note i{color:var(--tm-success);margin-top:.2rem}@media(max-width:760px){.production-safety{grid-template-columns:1fr}}


/* Mobile containment: keep the document viewport fixed while allowing intentional local rails. */
.sales-workspace,
.sale-entry-panel,
.sale-heading,
.sale-heading > div,
.sale-form,
.field-group,
.history-section,
.history-heading,
.history-heading > div,
.history-heading-actions,
.history-filters,
.sales-table-wrap {
  min-width: 0;
}

@media (max-width: 600px) {
  .tamago-main.container {
    width: 100%;
    max-width: none;
    padding-inline: .85rem;
    margin-inline: 0;
  }

  .sale-heading {
    gap: .75rem;
  }

  .sale-heading h1 {
    font-size: clamp(2rem, 11vw, 3rem);
  }

  .sale-heading .section-copy {
    max-width: 18rem;
  }

  .egg-mark {
    flex: 0 0 3.5rem;
    width: 3.5rem;
  }

  .sale-form {
    width: 100%;
    padding: .8rem;
    overflow: visible;
  }

  .dozen-rail {
    grid-template-columns: 3.2rem minmax(0, 1fr) 3.2rem;
    width: 100%;
  }

  .price-control,
  .price-control .form-control,
  .field-group .form-control {
    min-width: 0;
    width: 100%;
  }

  .history-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
  }

  .history-heading-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .history-heading-actions .export-link {
    max-width: calc(100% - 3rem);
  }

  .customer-shortcuts {
    width: calc(100vw - 1.7rem);
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    padding-bottom: .25rem;
  }

  .customer-shortcuts::-webkit-scrollbar {
    display: none;
  }

  .customer-shortcuts a {
    flex: 0 0 auto;
  }

  .history-filters,
  .history-filters label,
  .history-filters .form-control,
  .filter-submit {
    min-width: 0;
    width: 100%;
  }

  .sales-table-wrap {
    width: 100%;
    overflow-x: clip;
  }

  .sales-table,
  .sales-table tbody,
  .sales-table tr {
    width: 100%;
    min-width: 0;
  }

  .sales-table td {
    min-width: 0;
    overflow-wrap: anywhere;
  }
}

/* Security screens share the same visual language as the application. */
.security-body {
  min-height: 100vh;
  margin: 0;
  background: var(--tm-bg);
  color: var(--tm-text);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.security-shell {
  width: min(100% - 2rem, 440px);
  margin-inline: auto;
  padding: clamp(2rem, 8vh, 5rem) 0;
}
.security-brand {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: 2rem;
  color: var(--tm-text);
  font-size: 1.35rem;
  font-weight: 850;
  text-decoration: none;
}
.security-brand i { color: var(--tm-accent); }
.security-card {
  padding: clamp(1.25rem, 5vw, 2rem);
  border: 1px solid var(--tm-border);
  border-radius: 1.25rem;
  background: var(--tm-surface);
  box-shadow: var(--tm-shadow);
}
.security-card h1 {
  margin: 0;
  font-size: clamp(2rem, 8vw, 3rem);
  line-height: 1;
  font-weight: 850;
  letter-spacing: -.045em;
}
.security-copy { margin: .65rem 0 1.5rem; color: var(--tm-muted); }
.security-form { display: grid; gap: 1rem; }
.security-field { display: grid; gap: .4rem; text-align: left; }\n.security-field-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }\n.security-link { color: var(--tm-muted); font-size: .82rem; font-weight: 700; text-decoration-thickness: .08em; text-underline-offset: .2em; }\n.security-link:hover { color: var(--tm-accent-strong); }\n.security-link-centered { justify-self: center; }
.security-field label { color: var(--tm-muted); font-size: .8rem; font-weight: 750; }
.security-field .form-control { min-height: 3.25rem; border-radius: .8rem; }
.security-remember { display: flex; align-items: center; gap: .55rem; color: var(--tm-muted); text-align: left; }
.security-submit { min-height: 3.25rem; border: 0; border-radius: .8rem; background: var(--tm-accent); color: #2f2108; font-weight: 850; }
.security-submit:hover { background: var(--tm-accent-strong); color: var(--tm-surface); }
.security-errors { margin: .25rem 0 0; padding-left: 1.15rem; color: var(--tm-danger); font-size: .82rem; }
