/* Shared quiet / light / tactile tokens. No external font or UI dependency. */
:root {
  color-scheme:light;
  --canvas:#fff;
  --paper:#faf7f2;
  --ink:#111;
  --coral:#f09a9a;
  --soft:#f7d9d3;
  --muted:#64615f;
  --border:#111;
  --divider:#ded8d1;
  --danger:#913e38;
  --radius:12px;
  --outline:2px solid var(--border);
  --shadow:0 4px 0 var(--ink);
  --shadow-small:0 2px 0 var(--ink);
  --font: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); font:15px/1.6 var(--font); }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
:where(button,a,input,select,textarea):focus-visible { outline:3px solid var(--ink); outline-offset:4px; }
button:disabled { opacity:.6; cursor:default; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-weight:800; line-height:1.3; }
h1 { font-size:36px; letter-spacing:-1.4px; margin-bottom:10px; }
h2 { font-size:21px; letter-spacing:-.5px; margin-bottom:12px; }
h3 { font-size:21px; margin-bottom:10px; }
p { margin-bottom:12px; }
small { font-size:12px; }
.site-header { background:var(--paper); border-bottom:var(--outline); }
.header-inner { max-width:1200px; margin:auto; padding:20px 28px; display:flex; align-items:center; gap:32px; }
.brand { display:flex; align-items:center; gap:10px; flex-shrink:0; font-size:27px; font-weight:850; letter-spacing:-1px; }
.brand-mark { display:grid; place-items:center; width:40px; height:40px; padding:5px; border:var(--outline); border-radius:10px; background:var(--coral); box-shadow:var(--shadow-small); }
.brand-mark img { display:block; width:100%; height:100%; object-fit:contain; }
nav { display:flex; align-items:center; gap:8px; }
.header-inner nav { margin-left:auto; }
.header-inner nav a { padding:8px 14px; min-height:44px; border:2px solid transparent; border-radius:10px; white-space:nowrap; font-weight:600; }
.header-inner nav a:hover { background:var(--soft); }
.header-inner nav a[aria-current] { background:var(--canvas); border-color:var(--border); box-shadow:var(--shadow-small); }
.logout-form { margin:0; }
.main-container { max-width:1200px; padding:36px 28px 64px; margin:auto; min-height:calc(100vh - 161px); }
.site-footer { max-width:1144px; margin:0 auto; border-top:1px solid var(--divider); padding:22px 0; display:flex; gap:12px; color:var(--muted); font-size:12px; }
.site-footer span { color:var(--ink); font-weight:800; }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:30px; }
.page-heading > div { min-width:0; }
.page-heading p { margin:0; }
.page-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:12px; }
.recycle-link { color:var(--muted); font-weight:650; }
.recycle-link[aria-current] { background:var(--soft); color:var(--ink); }
.eyebrow { display:block; color:var(--muted); font-size:12px; font-weight:650; letter-spacing:1.5px; margin-bottom:9px; }
.muted { color:var(--muted); }
.fine-print,.help-text { font-size:12px; line-height:1.7; color:var(--muted); }
.fine-print code { overflow-wrap:anywhere; }
.button { display:inline-flex; justify-content:center; align-items:center; gap:7px; min-height:46px; padding:10px 20px; border:var(--outline); border-radius:10px; background:var(--coral); color:var(--ink); font-weight:750; box-shadow:var(--shadow); white-space:nowrap; transition:transform .1s,box-shadow .1s,background-color .1s; }
.button:hover { background:var(--soft); }
.button:active { transform:translateY(3px); box-shadow:0 1px 0 var(--ink); }
.button.secondary { background:var(--canvas); box-shadow:var(--shadow-small); }
.button.secondary:active { transform:translateY(2px); box-shadow:none; }
.text-button,.small-link { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 10px; border:1px solid transparent; border-radius:8px; color:var(--muted); background:transparent; font-size:13px; }
.text-button:hover,.small-link:hover { background:var(--paper); border-color:var(--border); color:var(--ink); }
.danger-text { color:var(--danger); }
.subtle-link { display:inline-flex; align-items:center; min-height:44px; font-size:13px; text-decoration:underline; text-underline-offset:5px; }
.subtle-link:hover { text-decoration-thickness:2px; }
.panel { background:var(--canvas); border:var(--outline); border-radius:var(--radius); }
.stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; margin-bottom:30px; }
.stat-card { display:flex; flex-direction:column; min-width:0; padding:20px 22px; background:var(--canvas); border:var(--outline); border-radius:var(--radius); box-shadow:var(--shadow-small); transition:transform .1s,box-shadow .1s; }
.stat-card:hover { box-shadow:var(--shadow); }
.stat-card:active { transform:translateY(2px); box-shadow:none; }
.stat-card.today { background:var(--coral); }
.stat-card.soon { background:var(--soft); }
.stat-card.expired { background:#f0ede8; }
.stat-card > span { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:14px; font-weight:700; }
.stat-card > span > span { font-size:18px; font-weight:400; }
.stat-card strong { font-size:58px; font-weight:800; line-height:1.25; letter-spacing:-3px; font-variant-numeric:tabular-nums; margin:12px 0 9px; overflow-wrap:anywhere; }
.stat-card small { color:#4c4643; }
.overview-layout { display:grid; grid-template-columns:minmax(0,2.1fr) minmax(250px,1fr); gap:28px; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:28px 0 16px; }
.section-heading h2 { margin:0; }
.section-heading .fine-print { margin:6px 0 0; }
.overview-layout .section-heading { min-height:64px; margin-top:0; }
.upcoming-row { display:flex; align-items:center; gap:16px; padding:20px; border-bottom:1px solid var(--divider); }
.upcoming-row:first-child { border-radius:10px 10px 0 0; }
.upcoming-row:last-child { border-bottom:0; border-radius:0 0 10px 10px; }
.upcoming-row:hover { background:var(--paper); }
.upcoming-icon { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; background:var(--paper); border:1px solid var(--border); border-radius:10px; font-weight:750; }
.upcoming-name { flex:1; min-width:0; overflow-wrap:anywhere; }
.upcoming-name strong { display:block; font-size:16px; }
.upcoming-name small,.upcoming-date small { display:block; color:var(--muted); margin-top:4px; }
.upcoming-date { text-align:right; flex-shrink:0; font-variant-numeric:tabular-nums; }
.row-arrow { font-size:20px; }
.quick-panel { overflow:hidden; }
.quick-primary { display:flex; flex-direction:column; gap:12px; padding:24px; background:var(--soft); border-bottom:var(--outline); }
.quick-primary:hover { background:var(--coral); }
.quick-primary strong { font-size:21px; font-weight:800; }
.quick-primary > span:last-child { display:flex; justify-content:space-between; font-size:13px; }
.quick-symbol { font-size:32px; line-height:1; }
.quick-link { display:flex; justify-content:space-between; gap:12px; padding:17px 24px; font-weight:600; font-size:14px; }
.quick-link + .quick-link { border-top:1px solid var(--divider); }
.quick-link:hover { background:var(--paper); }
.quick-actions > .fine-print { margin:16px 2px 0; }
.stock-tabs { flex-wrap:wrap; gap:10px; margin:0 0 22px; }
.stock-tabs a { display:flex; align-items:center; justify-content:center; min-height:44px; padding:8px 22px; border:var(--outline); border-radius:10px; font-size:14px; background:var(--canvas); font-weight:650; }
.stock-tabs a[aria-current] { background:var(--soft); box-shadow:var(--shadow-small); }
.stock-tabs a:hover { background:var(--soft); }
.scope-switch { width:max-content; margin:0 0 22px; padding:4px; border:var(--outline); border-radius:12px; background:var(--paper); }
.scope-switch a { min-width:116px; padding:9px 18px; border-radius:8px; text-align:center; font-weight:750; }
.scope-switch a[aria-current] { background:var(--coral); box-shadow:var(--shadow-small); }
.history-tabs { gap:6px; margin-top:-10px; padding-left:12px; border-left:4px solid var(--soft); }
.history-tabs a { min-height:40px; padding:6px 16px; border-width:1px; font-size:13px; }
.history-tabs a[aria-current] { background:var(--paper); box-shadow:none; font-weight:800; }
.filter-panel { padding:24px; }
.search-row { display:flex; gap:12px; margin-bottom:22px; }
.search-row input { flex:1; min-width:0; width:0; }
input,select,textarea { width:100%; min-width:0; max-width:100%; min-height:46px; padding:10px 12px; border:var(--outline); border-radius:10px; color:var(--ink); background:var(--canvas); }
input::placeholder,textarea::placeholder { color:#76716c; opacity:1; }
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true] { border-color:var(--danger); background:#fff4f0; }
textarea { min-height:112px; resize:vertical; }
input[type=checkbox] { width:auto; min-height:0; accent-color:var(--ink); }
.filter-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.field { min-width:0; }
.field label { display:block; font-size:13px; font-weight:700; margin-bottom:8px; }
.field select { padding-right:24px; }
.combobox { position:relative; }
.combobox-control { position:relative; }
.combobox-input { padding-right:44px; }
.combobox-toggle { position:absolute; top:2px; right:2px; display:grid; place-items:center; width:42px; height:42px; padding:0; border:0; border-left:1px solid var(--divider); border-radius:0 8px 8px 0; background:transparent; color:var(--ink); font-size:20px; line-height:1; }
.combobox-toggle:hover,.combobox-toggle[aria-expanded=true] { background:var(--soft); }
.combobox-panel { position:absolute; z-index:30; top:calc(100% + 6px); left:0; width:100%; max-height:276px; overflow-y:auto; padding:6px; border:1px solid var(--border); border-radius:11px; background:var(--paper); box-shadow:0 6px 18px rgb(17 17 17 / .14); }
.combobox-option { display:block; width:100%; min-height:42px; padding:9px 11px; border:0; border-radius:8px; background:transparent; color:var(--ink); text-align:left; overflow-wrap:anywhere; }
.combobox-option:hover,.combobox-option.is-active { background:var(--soft); }
.combobox-option[aria-selected=true] { font-weight:750; }
.combobox-create { border-top:1px solid var(--divider); border-radius:0 0 8px 8px; }
.combobox-create strong { font-weight:800; }
.combobox-empty { margin:0; padding:9px 11px; color:var(--muted); font-size:13px; }
.filter-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; }
.count { display:inline-block; font-size:12px; background:var(--soft); border:1px solid var(--border); padding:3px 9px; border-radius:8px; margin-left:6px; vertical-align:middle; }
.item-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.item-card { display:flex; flex-direction:column; min-width:0; background:var(--canvas); border:var(--outline); border-radius:var(--radius); padding:24px; }
.item-topline { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.category-label { font-size:12px; color:var(--muted); overflow-wrap:anywhere; }
.badge { display:inline-block; border:1px solid var(--border); border-radius:7px; padding:4px 9px; color:var(--ink); background:#f0ede8; font-size:12px; font-weight:650; white-space:nowrap; }
.badge.normal { background:var(--paper); }
.badge.soon { background:var(--soft); }
.badge.today { background:var(--coral); }
.badge.expired { background:var(--ink); color:var(--canvas); }
.item-card h3 { overflow-wrap:anywhere; }
.item-card h3 a:hover { text-decoration:underline; text-underline-offset:4px; }
.item-meta { display:flex; justify-content:space-between; gap:10px; color:var(--muted); font-size:13px; margin-bottom:24px; }
.item-meta span { overflow-wrap:anywhere; }
.expiry-line { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px; padding-top:16px; border-top:1px solid var(--divider); }
.expiry-line span { color:var(--muted); font-size:12px; }
.expiry-line strong { font-size:19px; letter-spacing:-.6px; font-variant-numeric:tabular-nums; }
.item-detail { font-size:12px; color:var(--muted); margin:8px 0 16px; }
.item-notes { font-size:13px; color:var(--muted); overflow-wrap:anywhere; white-space:pre-line; }
.item-actions { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:auto; padding-top:12px; border-top:1px solid var(--divider); }
.item-actions form { margin:0; }
.item-actions .small-link { border-color:var(--border); color:var(--ink); padding-inline:14px; }
.item-actions .delete-action { margin-left:auto; }
.empty-state { grid-column:1/-1; padding:44px 24px; text-align:center; }
.empty-state.compact { padding:28px 20px; }
.empty-state h2,.empty-state h3 { margin-top:18px; }
.empty-symbol { display:inline-grid; place-items:center; width:48px; height:48px; border:var(--outline); border-radius:12px; background:var(--soft); font-size:25px; }
.pagination { justify-content:center; gap:20px; margin-top:32px; flex-wrap:wrap; font-size:13px; }
.pagination a { display:inline-flex; align-items:center; min-height:44px; background:var(--canvas); padding:8px 14px; border:var(--outline); border-radius:10px; }
.pagination span { color:var(--muted); }
.form-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(250px,1fr); gap:28px; align-items:start; }
.form-panel { padding:28px; }
.form-intro { display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid var(--divider); padding-bottom:20px; margin-bottom:24px; }
.form-intro h2 { margin:0; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 20px; }
.wide-field { grid-column:1/-1; }
.help-text { margin:7px 0 0; }
.field-error { font-size:13px; color:var(--danger); margin:6px 0 0; }
.errorlist { color:var(--danger); padding-left:20px; margin:6px 0; font-size:13px; }
.required-mark { color:var(--danger); }
.form-actions { display:flex; gap:12px; margin-top:28px; padding-top:24px; border-top:1px solid var(--divider); }
.form-aside { display:grid; gap:20px; }
.info-card { padding:24px; }
.info-card h2 { font-size:17px; }
.info-card p { font-size:13px; color:var(--muted); }
.info-card p:last-child { margin-bottom:0; }
.info-card .date-display { font-size:30px; font-weight:800; color:var(--ink); letter-spacing:-1px; margin-bottom:12px; }
.soft-panel { background:var(--soft); }
.two-column { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-bottom:20px; }
.catalog-panel { padding:28px; }
.catalog-form { display:flex; align-items:flex-end; flex-wrap:wrap; gap:12px; padding:12px 0 28px; border-bottom:1px solid var(--divider); }
.catalog-form .field { flex:1; min-width:130px; }
.catalog-form > .field-error { flex-basis:100%; }
.catalog-list { margin:0; padding:0; list-style:none; }
.catalog-list li { display:flex; align-items:center; justify-content:space-between; gap:8px; border-bottom:1px solid var(--divider); }
.catalog-list li > span { min-width:0; padding:20px 0; overflow-wrap:anywhere; font-weight:650; }
.catalog-list li:last-child { border-bottom:0; }
.catalog-list small { display:block; color:var(--muted); font-weight:400; margin-top:4px; }
.catalog-list form { flex-shrink:0; }
.catalog-entry-link { display:flex; flex:1; align-items:center; justify-content:space-between; gap:12px; min-width:0; margin:4px 0; padding:16px 12px; border-radius:10px; font-weight:650; }
.catalog-entry-link:hover { background:var(--soft); }
.catalog-entry-link > span:first-child { min-width:0; overflow-wrap:anywhere; }
.catalog-entry-arrow { flex-shrink:0; font-size:20px; }
.catalog-detail-group + .catalog-detail-group { margin-top:36px; }
.catalog-item-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 18px; margin:0 0 20px; padding-top:16px; border-top:1px solid var(--divider); }
.catalog-item-facts div { min-width:0; }
.catalog-item-facts dt { color:var(--muted); font-size:12px; }
.catalog-item-facts dd { margin:4px 0 0; font-weight:650; overflow-wrap:anywhere; }
.notice { padding:14px 18px; border:var(--outline); border-radius:10px; background:var(--canvas); margin-bottom:18px; font-size:13px; overflow-wrap:anywhere; }
.notice.success { background:#edf0e8; }
.notice.warning { background:#f9eddb; }
.notice.error { background:var(--soft); color:var(--danger); }
.undo-notice { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.undo-notice form { margin:0; }
.undo-notice .small-link { min-height:36px; padding:5px 12px; border-color:var(--border); color:var(--ink); font-weight:750; }
.reminder-rules { display:grid; grid-template-columns:1fr 1fr; gap:28px; padding:26px; }
.reminder-rules > div + div { border-left:1px solid var(--divider); padding-left:28px; }
.reminder-rules h2 { font-size:18px; }
.reminder-rules p { font-size:14px; color:var(--muted); margin:0; }
.run-list { display:grid; gap:12px; }
.run-card { display:grid; grid-template-columns:220px minmax(0,1fr); align-items:start; gap:24px; padding:22px 24px; }
.run-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.run-heading h3 { font-size:17px; margin:0; font-variant-numeric:tabular-nums; }
.run-details { display:grid; grid-template-columns:130px minmax(0,1fr); gap:24px; margin:0; font-size:13px; }
.run-details dt { color:var(--muted); font-size:12px; }
.run-details dd { margin:4px 0 0; }
.error-cell { overflow-wrap:anywhere; }
.reminder-notes { margin-top:24px; background:var(--paper); }
.reminder-notes ul { padding-left:20px; font-size:13px; color:var(--muted); }
.reminder-notes li { margin-bottom:10px; }
.login-panel { max-width:460px; margin:40px auto; padding:38px; box-shadow:var(--shadow); }
.login-panel h1 { font-size:34px; }
.login-panel > .muted { font-size:14px; }
.login-panel > .fine-print { border-top:1px solid var(--divider); padding-top:20px; margin:0; }
.activity-list { padding:0 24px; }
.activity-group-title { margin:0; padding:20px 0 2px; font-size:17px; }
.activity-row { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 0; border-bottom:1px solid var(--divider); }
.activity-row:last-child { border-bottom:0; }
.activity-row time { flex-shrink:0; color:var(--muted); font-size:13px; }
.activity-divider { position:relative; height:12px; margin-top:8px; border-top:2px solid var(--border); }
.activity-divider::after { content:""; position:absolute; top:-6px; left:18px; width:10px; height:10px; border:2px solid var(--border); border-radius:50%; background:var(--coral); }
.member-list small { display:block; margin-top:3px; color:var(--muted); }
.invite-code { margin:22px 0; font-size:clamp(30px,6vw,46px); font-weight:850; letter-spacing:.12em; overflow-wrap:anywhere; }
.invite-card .form-actions,.member-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.invite-card .form-actions form,.member-actions form { margin:0; }
.member-actions { justify-content:flex-end; }
.join-preview { padding:20px; border:var(--outline); border-radius:12px; background:var(--soft); }
.join-preview h3 { font-size:24px; }
.stack-form { display:grid; gap:22px; margin:28px 0; }
.full-width { width:100%; }
.sr-only,.skip-link:not(:focus) { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip-link:focus { position:absolute; z-index:10; top:10px; left:10px; padding:10px; background:var(--canvas); }
@media (max-width:1000px) {
  .header-inner { gap:18px; }
  .header-inner nav a { padding-inline:10px; }
  .item-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stat-card { padding:18px; }
  .stat-card strong { font-size:48px; }
  .overview-layout { grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr); gap:20px; }
  .form-layout { grid-template-columns:1fr; }
  .form-aside { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-footer { margin-inline:28px; }
}
@media (max-width:760px) {
  .header-inner { padding:16px 18px; flex-wrap:wrap; gap:16px; }
  .header-inner nav { order:3; width:100%; margin:0; justify-content:space-between; gap:6px; }
  .header-inner nav a { flex:1; text-align:center; font-size:13px; padding-inline:8px; }
  .logout-form { margin-left:auto; }
  .stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .overview-layout { grid-template-columns:1fr; }
  .overview-layout .section-heading { min-height:0; }
  .quick-actions { margin-top:10px; }
  .two-column { grid-template-columns:1fr; }
  .run-card { grid-template-columns:1fr; gap:16px; }
}
@media (max-width:640px) {
  body { font-size:14px; }
  .main-container { padding:26px 16px 40px; }
  .page-heading { align-items:flex-start; gap:16px; margin-bottom:24px; flex-wrap:wrap; }
  .page-actions { width:100%; }
  .page-actions .button { padding:10px 14px; font-size:14px; }
  h1 { font-size:29px; letter-spacing:-1px; }
  h2 { font-size:20px; }
  .page-heading .muted { font-size:13px; }
  .eyebrow { font-size:11px; }
  .stats-grid { margin-bottom:28px; }
  .stat-card { padding:17px 15px; }
  .stat-card > span { font-size:13px; }
  .stat-card strong { font-size:46px; margin:10px 0 6px; }
  .stat-card small { font-size:11px; }
  .section-heading { flex-wrap:wrap; margin-top:24px; }
  .section-heading .subtle-link { font-size:12px; }
  .upcoming-row { padding:16px 14px; gap:12px; }
  .upcoming-icon { width:36px; height:40px; }
  .upcoming-name strong { font-size:15px; }
  .upcoming-name small { font-size:11px; }
  .row-arrow { display:none; }
  .stock-tabs { gap:8px; }
  .stock-tabs a { flex:1; padding:8px; font-size:13px; white-space:nowrap; }
  .scope-switch { width:100%; }
  .scope-switch a { flex:1; min-width:0; }
  .history-tabs { margin-top:-10px; padding-left:8px; }
  .history-tabs a { min-width:0; padding-inline:6px; }
  .filter-panel { padding:18px; }
  .filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 12px; }
  .search-row { flex-wrap:wrap; }
  .search-row input { flex-basis:100%; width:100%; }
  .search-row .button { width:100%; }
  input,select,textarea { font-size:16px; }
  .filter-footer { align-items:flex-start; }
  .filter-footer .fine-print { max-width:65%; }
  .filter-footer .subtle-link { white-space:nowrap; }
  .item-grid { grid-template-columns:1fr; gap:16px; }
  .item-card { padding:22px; }
  .form-aside,.form-grid,.reminder-rules { grid-template-columns:1fr; }
  .form-panel,.catalog-panel,.info-card { padding:22px; }
  .form-grid { gap:22px; }
  .form-actions .button { flex:1; }
  .reminder-rules { padding:22px; gap:20px; }
  .reminder-rules > div + div { padding:20px 0 0; border-left:0; border-top:1px solid var(--divider); }
  .run-card { padding:20px; }
  .run-details { grid-template-columns:1fr; gap:12px; }
  .login-panel { margin:14px auto; padding:28px 24px; }
  .activity-row { align-items:flex-start; flex-direction:column; gap:6px; }
  .empty-state { padding:32px 18px; }
  .site-footer { margin-inline:16px; }
}
@media (prefers-reduced-motion:reduce) { * { transition:none !important; } }

/* Daily entry and processing retain the existing visual tokens. */
[hidden] { display:none !important; }
.entry-panel { max-width:760px; margin:auto; padding:28px; }
.entry-panel form > .field,.date-source { margin-bottom:20px; }
.duration-pair { display:grid; grid-template-columns:minmax(0,1fr) 90px; gap:10px; min-width:0; }
.form-disclosure,.extra-dates { margin-top:20px; border-top:1px solid var(--divider); padding-top:12px; }
summary { cursor:pointer; min-height:44px; padding:10px 0; font-weight:700; }
summary:focus-visible { outline:3px solid var(--ink); outline-offset:3px; }
.form-disclosure summary span { display:block; padding-left:16px; color:var(--muted); font-size:12px; font-weight:400; }
details > .form-grid { padding-top:14px; }
.selected-date-source { border:0; padding:0; margin-top:18px; }
.selected-date-source > summary { display:none; }
.expiry-preview { background:var(--soft); border:1px solid var(--border); padding:16px; margin-top:22px; border-radius:10px; }
.expiry-preview strong { font-variant-numeric:tabular-nums; }
.expiry-preview p { margin-bottom:0; }
.sticky-actions { background:var(--canvas); padding:16px 0 max(4px,env(safe-area-inset-bottom)); }
.quantity-pair { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }
.item-actions .delete-action { flex-basis:100%; text-align:right; }
.delete-action .text-button { font-size:12px; }
.confirm-dialog { position:fixed; inset:0; margin:auto; width:min(440px,calc(100% - 32px)); max-height:calc(100dvh - 48px); padding:26px; border:var(--outline); border-radius:var(--radius); background:var(--paper); color:var(--ink); box-shadow:var(--shadow); overflow:auto; }
.confirm-dialog::backdrop { background:rgb(17 17 17 / .38); }
.confirm-dialog p { color:var(--muted); overflow-wrap:anywhere; }
.confirm-actions { display:flex; justify-content:flex-end; gap:12px; margin-top:24px; }
.confirm-actions [data-confirm-accept] { background:var(--soft); }
.confirm-actions [data-confirm-accept]:hover { background:var(--coral); }
.lightbox-open { overflow:hidden; }
.image-lightbox { position:fixed; inset:0; width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:max(72px,calc(env(safe-area-inset-top) + 60px)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left)); border:0; background:rgb(0 0 0 / .92); overflow:hidden; }
.image-lightbox[open] { display:grid; place-items:center; }
.image-lightbox::backdrop { background:rgb(0 0 0 / .92); }
.image-lightbox img { display:block; max-width:100%; max-height:100%; object-fit:contain; }
.image-lightbox-close { position:absolute; top:max(12px,env(safe-area-inset-top)); right:max(12px,env(safe-area-inset-right)); display:grid; place-items:center; width:48px; height:48px; padding:0 0 4px; border:2px solid #fff; border-radius:50%; background:#fff; color:#111; font-size:32px; font-weight:500; line-height:1; box-shadow:0 2px 8px rgb(0 0 0 / .35); }
.image-lightbox-close:hover { background:#f0ede8; }
.pending-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.pending-list .section-heading h3 { margin:0; }
.pending-list .item-topline h3 { margin:0; font-size:18px; min-width:0; }
.pending-list .item-meta { margin-bottom:14px; flex-wrap:wrap; }
.just-added { border-color:var(--ink); box-shadow:var(--shadow); background:#fff7f4; }
.added-label { font-weight:750; color:var(--ink); background:var(--soft); border-radius:6px; padding:6px 10px; font-size:13px; }
@media (max-width:640px) {
  .entry-panel { padding:20px; }
  .entry-panel .form-disclosure { margin-top:12px; padding-top:6px; }
  .entry-panel .form-grid { gap:18px; }
  .pending-grid { grid-template-columns:1fr; }
  .stats-grid { gap:10px; margin-bottom:20px; }
  .stat-card { padding:10px 12px; box-shadow:none; }
  .stat-card strong { font-size:29px; line-height:1.1; margin:6px 0 0; letter-spacing:-1px; }
  .stat-card small { display:none; }
  .item-actions { gap:8px; }
  .item-actions .small-link { background:var(--paper); padding-inline:10px; }
  .form-disclosure summary span { max-width:100%; overflow-wrap:anywhere; }
}

.item-photo { display: block; width: 96px; height: 96px; object-fit: contain; border-radius: 12px; margin: 0 0 12px; background: #f5f5f0; }
.item-photo-large { width: min(100%, 480px); height: auto; max-height: 480px; }
