/* Store registry: ledger rail + detail sheets. Scoped to .st-page. */
.st-page {
  --st-ink: #1d2a24; --st-sub: #5d6b63; --st-line: #dcd6c4; --st-paper: #fbf8f0; --st-card: #fffdf7;
  --st-gold: #a8801f; --st-gold-soft: #f3e8c8; --st-moss: #2f5d4a; --st-moss-soft: #e2ece5; --st-rust: #a4452c; --st-rust-soft: #f6e3dc;
  color: var(--st-ink); display: grid; gap: 18px; padding-bottom: 48px;
}
.st-head h1 { font-size: clamp(1.7rem, 3vw, 2.4rem); letter-spacing: -0.02em; margin: 4px 0 6px; outline: none; }
.st-head p { color: var(--st-sub); margin: 0; max-width: 62ch; }
.st-status:empty { display: none; }
.st-status { padding: 10px 14px; border-radius: 10px; border-left: 4px solid var(--st-moss); background: var(--st-moss-soft); font-size: .92rem; }
.st-warning { border-color: var(--st-gold); background: var(--st-gold-soft); }
.st-danger { border-color: var(--st-rust); background: var(--st-rust-soft); }
.st-readonly { margin: 0; padding: 8px 12px; border: 1px dashed var(--st-gold); border-radius: 10px; background: var(--st-paper); font-size: .9rem; }
.st-layout { display: grid; grid-template-columns: minmax(230px, 290px) 1fr; gap: 18px; align-items: start; }
.st-rail { background: var(--st-paper); border: 1px solid var(--st-line); border-radius: 14px; padding: 14px; position: sticky; top: 12px; }
.st-rail-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.st-rail h2 { font-size: 1rem; margin: 0; }
.st-count { font-family: ui-monospace, "Spline Sans Mono", monospace; font-size: .78rem; color: var(--st-gold); margin-left: 4px; }
.st-rail ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.st-store { width: 100%; text-align: left; display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; padding: 10px 12px; border-radius: 10px; border: 1px solid transparent; background: transparent; color: inherit; cursor: pointer; transition: transform .15s ease, background .15s ease; }
.st-store:hover { background: var(--st-card); transform: translateX(2px); }
.st-store:focus-visible { outline: 2px solid var(--st-gold); outline-offset: 2px; }
.st-on { background: var(--st-card); border-color: var(--st-gold); box-shadow: inset 3px 0 0 var(--st-gold); }
.st-code { grid-row: span 2; font-family: ui-monospace, "Spline Sans Mono", monospace; font-weight: 700; font-size: .8rem; color: var(--st-moss); align-self: center; }
.st-name { font-weight: 600; }
.st-tz { font-size: .76rem; color: var(--st-sub); }
.st-store .st-pill { grid-column: 2; justify-self: start; }
.st-pill { display: inline-block; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; padding: 2px 8px; border-radius: 999px; background: var(--st-moss-soft); color: var(--st-moss); }
.st-pill-closed { background: var(--st-rust-soft); color: var(--st-rust); }
.st-pill-paused { background: var(--st-gold-soft); color: #6e5414; }
.st-empty { display: grid; gap: 6px; padding: 18px 8px; text-align: center; color: var(--st-sub); }
.st-empty-mark { width: 38px; height: 38px; margin: 0 auto; border-radius: 50%; border: 2px dashed var(--st-gold); }
.st-detail { display: grid; gap: 16px; min-width: 0; }
.st-blank { min-height: 200px; place-items: center; color: var(--st-sub); }
.st-card { background: var(--st-card); border: 1px solid var(--st-line); border-radius: 14px; padding: 18px; box-shadow: 0 1px 0 rgba(60, 50, 20, .05), 0 8px 24px -18px rgba(60, 50, 20, .35); animation: st-rise .28s ease both; }
.st-card h2 { font-size: 1.05rem; margin: 0 0 4px; }
.st-card-head { display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.st-card-head > div { flex: 1; }
.st-profile h2 { font-size: 1.4rem; }
.st-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 14px 0 6px; }
.st-facts dt { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--st-sub); }
.st-facts dd { margin: 2px 0 0; font-weight: 600; }
.st-mono { font-family: ui-monospace, "Spline Sans Mono", monospace; font-size: .86rem; }
.st-week { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 10px; }
.st-day { border: 1px solid var(--st-line); border-radius: 10px; padding: 10px; display: grid; gap: 4px; margin: 0; }
.st-day legend { font-weight: 700; font-size: .85rem; padding: 0 4px; }
.st-day-off { background: repeating-linear-gradient(135deg, transparent 0 8px, rgba(168, 128, 31, .06) 8px 16px); }
.st-page label { font-size: .78rem; color: var(--st-sub); }
.st-page input[type="text"], .st-page input[type="time"], .st-page input[type="date"], .st-page input[type="number"], .st-page select {
  width: 100%; padding: 7px 9px; border: 1px solid var(--st-line); border-radius: 8px; background: #fffef9; color: var(--st-ink); font: inherit; font-size: .9rem; box-sizing: border-box;
}
.st-page input:focus-visible, .st-page select:focus-visible { outline: 2px solid var(--st-gold); outline-offset: 1px; }
.st-check { display: flex; align-items: center; gap: 6px; color: var(--st-ink) !important; }
.st-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; border: 0; border-bottom: 1px dashed var(--st-line); padding: 10px 0; margin: 0; }
.st-row > span { display: grid; gap: 3px; min-width: 120px; flex: 1 1 120px; }
.st-row > .st-grow { flex: 2 1 220px; }
.st-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.st-table-wrap { overflow-x: auto; margin-top: 8px; }
.st-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.st-table th, .st-table td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--st-line); }
.st-table thead th { font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; color: var(--st-sub); }
.st-empty-row { color: var(--st-sub); font-style: italic; }
.st-panel { max-width: 560px; }
.st-sk { height: 120px; border-radius: 14px; }
.st-sk-tall { height: 320px; }
.st-scrim { position: fixed; inset: 0; background: rgba(29, 42, 36, .45); display: grid; place-items: center; padding: 16px; z-index: 60; }
.st-dialog { background: var(--st-card); border-radius: 16px; padding: 22px; width: min(560px, 100%); max-height: 90dvh; overflow: auto; border-top: 4px solid var(--st-gold); animation: st-rise .2s ease both; }
.st-dialog h2 { margin: 0 0 4px; }
.st-fields { display: grid; grid-template-columns: 1fr; gap: 4px; margin-top: 12px; }
.st-fields input, .st-fields select { margin-bottom: 8px; }
@keyframes st-rise { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .st-card, .st-dialog { animation: none; } .st-store { transition: none; } }
@media (max-width: 768px) { .st-layout { grid-template-columns: 1fr; } .st-rail { position: static; } }
/* OPS01 weekly labor cap: no default; missing value is stated, never filled in. */
.st-cap-missing { margin: 0; padding: 8px 12px; border-left: 4px solid var(--st-rust); background: var(--st-rust-soft); border-radius: 8px; }
