@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root {
--ink: #252a25;
--ink-soft: #697068;
--paper: #f5f0e7;
--paper-deep: #eae3d7;
--card: #fbf8f1;
--line: #d9d1c3;
--line-dark: #b9b0a2;
--copper: #bb603d;
--copper-dark: #93452e;
--copper-wash: #f1d9cd;
--herb: #65765d;
--herb-dark: #3e523c;
--herb-wash: #dde5d9;
--mustard: #bd9140;
--night: #242b27;
--night-2: #2f3831;
--night-line: #485249;
--white-ink: #f1eadf;
--danger: #a44c4c;
--shadow: 0 14px 36px rgba(56, 44, 30, .08);
--shadow-small: 0 4px 15px rgba(56, 44, 30, .07);
--sans: 'DM Sans', sans-serif;
--display: 'Fraunces', Georgia, serif;
--mono: 'IBM Plex Mono', monospace;
}

* {
box-sizing: border-box;
}

html {
background: var(--paper);
}

body {
margin: 0;
color: var(--ink);
background: var(--paper);
font-family: var(--sans);
font-size: 14px;
line-height: 1.45;
-webkit-font-smoothing: antialiased;
}

button,
input,
select,
textarea {
font: inherit;
}

button {
cursor: pointer;
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
a:focus-visible {
outline: 3px solid rgba(187,96,61,.3);
outline-offset: 2px;
}

a {
color: inherit;
text-decoration: none;
}

.app-shell {
min-height: 100dvh;
display: block;
}

.sidebar {
display: none;
}

.brand {
display: flex;
align-items: center;
gap: 12px;
padding: 0 10px 34px;
}

.brand-mark {
width: 35px;
height: 35px;
display: grid;
place-items: center;
border-radius: 9px;
background: var(--copper);
color: #fff1e5;
box-shadow: inset 0 -3px rgba(77,33,22,.2);
}

.brand-mark svg {
width: 21px;
}

.brand-name {
font-family: var(--display);
letter-spacing: -.025em;
font-size: 18px;
}

.brand-sub {
color: #9ca49b;
font-size: 10px;
display: block;
letter-spacing: .11em;
text-transform: uppercase;
margin-top: 1px;
}

.nav-label {
color: #879187;
text-transform: uppercase;
letter-spacing: .14em;
font-size: 10px;
font-weight: 700;
padding: 0 11px 10px;
}

.nav {
display: grid;
gap: 5px;
}

.nav-link {
display: flex;
align-items: center;
gap: 11px;
min-height: 43px;
border-radius: 8px;
padding: 0 12px;
color: #b8c0b6;
transition: background .18s ease, color .18s ease, transform .18s ease;
}

.nav-link svg {
width: 17px;
height: 17px;
opacity: .8;
}

.nav-link:hover {
color: var(--white-ink);
background: rgba(255,255,255,.075);
transform: translateX(2px);
}

.nav-link.active {
background: #3a463c;
color: #f3eade;
box-shadow: inset 3px 0 var(--copper);
}

.nav-link.active svg {
color: #dc8b68;
opacity: 1;
}

.sidebar-bottom {
margin-top: auto;
border-top: 1px solid var(--night-line);
padding: 18px 10px 0;
color: #929c92;
font-size: 12px;
}

.local-badge {
display: flex;
align-items: center;
gap: 8px;
color: #bdc8ba;
margin-bottom: 8px;
}

.local-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: #87a77b;
box-shadow: 0 0 0 4px rgba(135,167,123,.1);
}

.sidebar-caption {
line-height: 1.5;
}

.main {
min-width: 0;
flex: 1;
}

.topbar {
min-height: 76px;
border-bottom: 1px solid var(--line);
display: flex;
align-items: center;
gap: 28px;
padding: 12px max(24px, calc((100vw - 1440px) / 2 + 42px));
background: rgba(245,240,231,.92);
backdrop-filter: blur(12px);
position: sticky;
z-index: 5;
top: 0;
}

.topbar-brand {
display: flex;
align-items: center;
gap: 10px;
flex: 0 0 auto;
}

.topbar-brand .brand {
padding: 0;
gap: 10px;
}

.topbar-brand .brand-mark {
width: 34px;
height: 34px;
}

.topbar-brand .brand-sub {
color: var(--ink-soft);
}

.top-nav {
display: flex;
align-items: center;
gap: 4px;
flex: 1;
min-width: 0;
}

.top-nav .nav-link {
min-height: 38px;
padding: 0 11px;
color: var(--ink-soft);
}

.top-nav .nav-link:hover {
color: var(--ink);
background: var(--paper-deep);
transform: none;
}

.top-nav .nav-link.active {
background: var(--herb-wash);
color: var(--herb-dark);
box-shadow: inset 0 -2px var(--herb);
}

.top-nav .nav-link.active svg {
color: var(--herb-dark);
}

.breadcrumb {
display: flex;
align-items: center;
gap: 8px;
color: var(--ink-soft);
font-size: 12px;
margin-left: auto;
}

.breadcrumb strong {
color: var(--ink);
font-weight: 600;
}

.breadcrumb svg {
width: 13px;
}

.top-actions {
display: flex;
align-items: center;
gap: 10px;
flex: 0 0 auto;
}

.save-note {
color: var(--herb);
font-family: var(--mono);
font-size: 11px;
display: flex;
align-items: center;
gap: 6px;
margin-right: 10px;
}

.save-note svg {
width: 13px;
}

.icon-btn,
.menu-btn {
border: 1px solid var(--line);
color: var(--ink-soft);
background: transparent;
border-radius: 7px;
width: 36px;
height: 36px;
display: grid;
place-items: center;
transition: background .18s, color .18s, transform .18s;
}

.icon-btn:hover,
.menu-btn:hover {
background: var(--card);
color: var(--copper-dark);
transform: translateY(-1px);
}

.menu-btn {
display: none;
}

.avatar {
width: 32px;
height: 32px;
border-radius: 50%;
display: grid;
place-items: center;
background: var(--copper-wash);
color: var(--copper-dark);
font-size: 11px;
font-weight: 700;
border: 2px solid var(--paper);
}

.content {
max-width: 1440px;
padding: 44px 42px 72px;
margin: auto;
animation: page-in .32s ease both;
}

@keyframes page-in {
from {
opacity: 0;
transform: translateY(5px);
}

to {
opacity: 1;
transform: translateY(0);
}
}

.eyebrow {
color: var(--copper-dark);
text-transform: uppercase;
font-size: 10px;
letter-spacing: .17em;
font-weight: 700;
margin-bottom: 11px;
}

h1,
h2,
h3,
p {
margin: 0;
}

h1 {
font-family: var(--display);
font-weight: 500;
font-size: clamp(34px, 4vw, 49px);
letter-spacing: -.045em;
line-height: 1.04;
}

h2 {
font-family: var(--display);
font-size: 25px;
font-weight: 500;
letter-spacing: -.035em;
}

h3 {
font-size: 16px;
font-weight: 700;
}

.page-intro {
display: flex;
justify-content: space-between;
align-items: flex-end;
gap: 25px;
margin-bottom: 35px;
}

.intro-copy {
color: var(--ink-soft);
margin-top: 10px;
max-width: 470px;
}

.button-row {
display: flex;
align-items: center;
gap: 9px;
flex-wrap: wrap;
}

.btn {
border: 1px solid transparent;
border-radius: 7px;
min-height: 39px;
padding: 0 14px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
font-weight: 700;
font-size: 12px;
transition: transform .18s, box-shadow .18s, background .18s;
}

.btn svg {
width: 15px;
height: 15px;
}

.btn:hover {
transform: translateY(-1px);
}

.btn-primary {
background: var(--copper);
color: #fff4ec;
box-shadow: 0 3px 0 var(--copper-dark);
}

.btn-primary:hover {
background: #c66e4b;
box-shadow: 0 4px 0 var(--copper-dark);
}

.btn-secondary {
border-color: var(--line-dark);
color: var(--ink);
background: var(--card);
}

.btn-secondary:hover {
background: var(--paper-deep);
}

.btn-ghost {
color: var(--ink-soft);
background: transparent;
}

.btn-ghost:hover {
color: var(--copper-dark);
background: var(--copper-wash);
}

.btn-danger {
color: var(--danger);
background: #f3dfdc;
}

.btn-sm {
min-height: 31px;
padding: 0 10px;
font-size: 11px;
}

.metric-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0,1fr));
gap: 12px;
margin-bottom: 30px;
}

.metric {
background: var(--card);
border: 1px solid var(--line);
border-radius: 10px;
padding: 18px 19px;
box-shadow: var(--shadow-small);
}

.metric-label {
color: var(--ink-soft);
font-size: 11px;
text-transform: uppercase;
letter-spacing: .09em;
font-weight: 700;
}

.metric-value {
font-family: var(--display);
font-size: 29px;
margin-top: 8px;
letter-spacing: -.04em;
}

.metric-sub {
color: var(--herb);
font-size: 11px;
margin-top: 4px;
}

.metric-mark {
width: 27px;
height: 3px;
background: var(--copper);
margin-bottom: 14px;
border-radius: 3px;
}

.panel {
background: var(--card);
border: 1px solid var(--line);
border-radius: 10px;
box-shadow: var(--shadow-small);
overflow: hidden;
}

.panel-head {
padding: 18px 21px;
display: flex;
justify-content: space-between;
align-items: center;
gap: 15px;
border-bottom: 1px solid var(--line);
}

.panel-title {
display: flex;
align-items: center;
gap: 10px;
}

.panel-title h2 {
font-size: 20px;
}

.count {
color: var(--ink-soft);
background: var(--paper-deep);
border-radius: 20px;
font-family: var(--mono);
font-size: 10px;
padding: 3px 8px;
}

.toolbar {
padding: 14px 21px;
display: flex;
justify-content: space-between;
gap: 12px;
border-bottom: 1px solid var(--line);
}

.search {
position: relative;
max-width: 300px;
flex: 1;
}

.search svg {
position: absolute;
width: 15px;
left: 12px;
top: 11px;
color: var(--ink-soft);
}

.search input {
width: 100%;
height: 36px;
padding: 0 10px 0 35px;
border: 1px solid var(--line);
border-radius: 6px;
color: var(--ink);
background: var(--paper);
}

input,
select,
textarea {
color: var(--ink);
background: #fffaf2;
border: 1px solid var(--line-dark);
border-radius: 6px;
}

input,
select {
height: 38px;
padding: 0 10px;
}

textarea {
padding: 10px;
min-height: 170px;
resize: vertical;
width: 100%;
}

input::placeholder,
textarea::placeholder {
color: #a29b90;
}

input:focus,
select:focus,
textarea:focus {
border-color: var(--copper);
box-shadow: 0 0 0 3px rgba(187,96,61,.11);
outline: none;
}

.table-scroll {
overflow-x: auto;
}

table {
width: 100%;
border-collapse: collapse;
min-width: 680px;
}

th {
text-align: left;
padding: 11px 21px;
color: var(--ink-soft);
font-size: 10px;
text-transform: uppercase;
letter-spacing: .11em;
font-weight: 700;
background: rgba(234,227,215,.42);
}

td {
padding: 15px 21px;
border-top: 1px solid var(--line);
vertical-align: middle;
}

tbody tr {
transition: background .18s;
}

tbody tr:hover {
background: #f6eee4;
}

.item-name {
font-weight: 700;
}

.item-meta {
color: var(--ink-soft);
font-size: 11px;
margin-top: 2px;
}

.mono {
font-family: var(--mono);
font-size: 12px;
}

.category {
color: var(--herb-dark);
background: var(--herb-wash);
font-size: 10px;
text-transform: uppercase;
letter-spacing: .05em;
padding: 4px 7px;
border-radius: 4px;
font-weight: 700;
}

.yield {
color: var(--herb-dark);
font-family: var(--mono);
}

.row-actions {
display: flex;
justify-content: flex-end;
gap: 3px;
}

.empty {
padding: 58px 20px;
text-align: center;
color: var(--ink-soft);
}

.empty svg {
color: var(--copper);
width: 30px;
margin-bottom: 10px;
}

.empty h3 {
color: var(--ink);
margin-bottom: 6px;
}

.recipe-grid {
display: grid;
grid-template-columns: repeat(2,minmax(0,1fr));
gap: 14px;
}

.recipe-card {
background: var(--card);
border: 1px solid var(--line);
border-radius: 10px;
padding: 20px;
box-shadow: var(--shadow-small);
transition: transform .2s, border-color .2s, box-shadow .2s;
}

.recipe-card:hover {
transform: translateY(-2px);
border-color: #c89b87;
box-shadow: var(--shadow);
}

.recipe-card-top {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 15px;
}

.recipe-card h3 {
font-family: var(--display);
font-size: 24px;
font-weight: 500;
letter-spacing: -.035em;
}

.recipe-card p {
color: var(--ink-soft);
font-size: 12px;
margin-top: 4px;
}

.recipe-arrow {
width: 30px;
height: 30px;
border: 1px solid var(--line);
border-radius: 50%;
display: grid;
place-items: center;
color: var(--copper-dark);
}

.recipe-arrow svg {
width: 14px;
}

.recipe-stats {
display: grid;
grid-template-columns: repeat(3,1fr);
margin: 23px -20px -20px;
border-top: 1px solid var(--line);
}

.recipe-stat {
padding: 13px 17px;
border-right: 1px solid var(--line);
}

.recipe-stat:last-child {
border: 0;
}

.recipe-stat-label {
display: block;
color: var(--ink-soft);
font-size: 10px;
text-transform: uppercase;
letter-spacing: .08em;
margin-bottom: 5px;
}

.recipe-stat-value {
font-family: var(--mono);
font-size: 13px;
}

.margin-good {
color: var(--herb-dark);
}

.margin-warn {
color: var(--copper-dark);
}

.recipes-toolbar {
margin-bottom: 17px;
display: flex;
justify-content: space-between;
align-items: center;
gap: 15px;
}

.recipe-filters {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
}

.recipe-filters select {
height: 36px;
min-width: 148px;
background: var(--card);
font-size: 12px;
}

.recipe-card {
position: relative;
}

.recipe-card-actions {
display: flex;
gap: 4px;
margin-top: 17px;
}

.recipe-card-actions .btn {
flex: 1;
}

.recipe-card .recipe-card-top {
cursor: pointer;
}

.warning-strip {
display: flex;
align-items: flex-start;
gap: 8px;
margin-top: 14px;
padding: 9px 10px;
border-radius: 6px;
color: #735b2d;
background: #f3ead2;
font-size: 11px;
line-height: 1.35;
}

.warning-strip svg {
width: 14px;
flex: 0 0 auto;
margin-top: 1px;
}

.warning-strip.high {
color: var(--copper-dark);
background: var(--copper-wash);
}

.status-chip {
display: inline-flex;
align-items: center;
gap: 5px;
padding: 4px 7px;
border-radius: 20px;
background: var(--herb-wash);
color: var(--herb-dark);
font-size: 10px;
font-weight: 700;
}

.status-chip.warn {
background: #f3ead2;
color: #735b2d;
}

.editor-actions {
display: flex;
align-items: center;
gap: 7px;
margin-left: auto;
flex-wrap: wrap;
justify-content: flex-end;
}

.editor-alert {
margin: -10px 0 18px;
}

.line-warning {
color: var(--copper-dark);
font-size: 10px;
display: block;
margin-top: 3px;
}

.editor-head {
display: flex;
align-items: flex-start;
gap: 17px;
margin-bottom: 28px;
}

.back-link {
width: 35px;
height: 35px;
border: 1px solid var(--line-dark);
border-radius: 7px;
display: grid;
place-items: center;
color: var(--ink-soft);
flex: 0 0 auto;
}

.back-link:hover {
color: var(--copper-dark);
background: var(--card);
}

.back-link svg {
width: 16px;
}

.editor-title input {
background: transparent;
border: 0;
border-bottom: 1px solid var(--line-dark);
border-radius: 0;
font-family: var(--display);
font-size: 34px;
letter-spacing: -.045em;
padding: 0 0 6px;
height: 48px;
width: min(600px, 100%);
}

.editor-title input:focus {
box-shadow: none;
border-color: var(--copper);
}

.editor-title .item-meta {
margin-top: 8px;
}

.editor-layout {
display: grid;
grid-template-columns: minmax(0,1.5fr) minmax(310px,.75fr);
gap: 17px;
align-items: start;
}

.editor-left .panel + .panel {
margin-top: 17px;
}

.line-table {
width: 100%;
min-width: 650px;
}

.line-table ,
.line-table td {
padding-left: 16px;
padding-right: 16px;
}

.line-source {
display: flex;
align-items: center;
gap: 9px;
}

.source-mark {
width: 25px;
height: 25px;
border-radius: 6px;
display: grid;
place-items: center;
background: var(--herb-wash);
color: var(--herb-dark);
font-family: var(--mono);
font-size: 10px;
font-weight: 500;
}

.source-mark.recipe {
background: var(--copper-wash);
color: var(--copper-dark);
}

.line-amount {
font-family: var(--mono);
font-size: 12px;
}

.line-cost {
font-family: var(--mono);
font-size: 12px;
font-weight: 500;
}

.summary-panel {
position: sticky;
top: 91px;
}

.summary-hero {
background: var(--night);
color: var(--white-ink);
padding: 22px;
position: relative;
overflow: hidden;
}

.summary-hero:after {
content: "";
position: absolute;
width: 155px;
height: 155px;
border: 1px solid rgba(218,145,112,.27);
border-radius: 50%;
right: -45px;
top: -65px;
box-shadow: 0 0 0 15px rgba(218,145,112,.05), 0 0 0 30px rgba(218,145,112,.04);
}

.summary-kicker {
color: #b8c5b1;
font-size: 10px;
text-transform: uppercase;
letter-spacing: .14em;
}

.summary-total {
font-family: var(--display);
font-size: 42px;
letter-spacing: -.06em;
margin-top: 7px;
}

.summary-total small {
font-family: var(--sans);
font-size: 12px;
color: #a8b1a8;
letter-spacing: 0;
}

.summary-body {
padding: 18px 21px;
}

.breakdown {
display: grid;
gap: 0;
}

.breakdown-row {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
padding: 11px 0;
border-bottom: 1px solid var(--line);
}

.breakdown-row:last-child {
border-bottom: 0;
}

.breakdown-row span:first-child {
color: var(--ink-soft);
font-size: 12px;
}

.breakdown-row strong {
font-family: var(--mono);
font-size: 12px;
}

.health-box {
margin-top: 13px;
padding: 13px;
background: var(--herb-wash);
color: var(--herb-dark);
border-radius: 7px;
font-size: 12px;
}

.health-box strong {
display: block;
font-size: 13px;
margin-bottom: 2px;
}

.field-grid {
display: grid;
grid-template-columns: repeat(2,1fr);
gap: 15px;
}

.field {
position: relative;
display: grid;
gap: 6px;
}

.field input,
.field select {
width: 100%;
}

.field.full {
grid-column: 1/-1;
}

.field label {
color: var(--ink-soft);
font-size: 11px;
font-weight: 700;
}

.field-note {
position: absolute;
top: calc(100% + 6px);
left: 0;
width: 100%;
color: var(--ink-soft);
font-size: 10px;
line-height: 1.35;
height: 40px;
}

.section-pad {
padding: 20px 21px 25px 21px;
}

.line-input {
width: 100%;
max-width: 150px;
}

.section-intro {
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
margin-bottom: 17px;
}

.section-intro h2 {
font-size: 19px;
}

.small-caps {
text-transform: uppercase;
letter-spacing: .1em;
font-size: 10px;
color: var(--ink-soft);
font-weight: 700;
}

.data-grid {
display: grid;
grid-template-columns: minmax(0,1.1fr) minmax(310px,.9fr);
gap: 17px;
}

.data-card {
padding: 22px;
}

.data-card h2 {
margin-bottom: 7px;
}

.data-card > p {
color: var(--ink-soft);
font-size: 12px;
max-width: 500px;
}

.data-actions {
display: flex;
gap: 9px;
flex-wrap: wrap;
margin-top: 24px;
}

.data-rule {
border-top: 1px solid var(--line);
margin: 22px 0;
}

.import-zone {
border: 1px dashed var(--line-dark);
border-radius: 8px;
padding: 22px;
text-align: center;
background: #f7f1e8;
transition: border-color .2s, background .2s;
}

.import-zone.drag {
border-color: var(--copper);
background: var(--copper-wash);
}

.import-zone svg {
width: 28px;
color: var(--copper);
margin-bottom: 7px;
}

.import-zone strong {
display: block;
}

.import-zone span {
color: var(--ink-soft);
font-size: 11px;
display: block;
margin: 5px 0 14px;
}

.json-preview {
margin-top: 14px;
background: var(--night);
color: #d4dfd2;
border-radius: 7px;
padding: 14px;
max-height: 220px;
overflow: auto;
font: 11px/1.5 var(--mono);
}

.callout {
border-left: 3px solid var(--mustard);
background: #f3ead2;
padding: 14px 15px;
color: #66522e;
font-size: 12px;
line-height: 1.55;
margin-top: 18px;
}

.data-stat-grid {
display: grid;
grid-template-columns: repeat(2,1fr);
gap: 10px;
margin-top: 20px;
}

.data-stat {
padding: 14px;
background: var(--paper);
border-radius: 7px;
}

.data-stat strong {
font-family: var(--display);
display: block;
font-size: 25px;
}

.data-stat span {
color: var(--ink-soft);
font-size: 11px;
}

.modal-backdrop {
position: fixed;
z-index: 30;
inset: 0;
background: rgba(30,32,28,.48);
display: grid;
place-items: center;
padding: 18px;
animation: fade-in .2s ease both;
}

@keyframes fade-in {
from {
opacity: 0;
}

to {
opacity: 1;
}
}

.modal {
width: min(540px,100%);
max-height: calc(100dvh - 36px);
overflow: auto;
background: var(--card);
border: 1px solid var(--line);
border-radius: 11px;
box-shadow: 0 22px 70px rgba(23,24,20,.25);
animation: modal-in .23s ease both;
}

@keyframes modal-in {
from {
opacity: 0;
transform: translateY(10px) scale(.985);
}

to {
opacity: 1;
transform: translateY(0) scale(1);
}
}

.modal-head {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 12px;
padding: 21px 22px 15px;
border-bottom: 1px solid var(--line);
}

.modal-head h2 {
font-size: 23px;
}

.modal-head p {
color: var(--ink-soft);
font-size: 12px;
margin-top: 4px;
}

.modal-body {
padding: 20px 22px;
}

.modal-foot {
display: flex;
justify-content: flex-end;
gap: 9px;
padding: 15px 22px;
border-top: 1px solid var(--line);
}

.error-text {
color: var(--danger);
font-size: 11px;
margin-top: 8px;
}

.toast {
position: fixed;
z-index: 50;
right: 22px;
bottom: 22px;
background: var(--night);
color: var(--white-ink);
border-left: 3px solid var(--copper);
padding: 12px 16px;
border-radius: 7px;
box-shadow: var(--shadow);
font-size: 12px;
animation: toast-in .25s ease both;
}

.toast-content {
display: flex;
align-items: center;
gap: 14px;
}

.toast-action {
border: 0;
border-bottom: 1px solid rgba(241,234,223,.7);
background: transparent;
color: #f0c5ae;
padding: 0 0 2px;
font-size: 11px;
font-weight: 700;
}

@keyframes toast-in {
from {
opacity: 0;
transform: translateY(8px);
}

to {
opacity: 1;
transform: translateY(0);
}
}

.mobile-overlay {
display: none;
}

@media (max-width: 980px) {
.topbar,
.content {
padding-left: 25px;
padding-right: 25px;
}

.editor-layout,
.data-grid {
grid-template-columns: 1fr;
}

.summary-panel {
position: static;
}
}

@media (max-width: 720px) {
.topbar {
min-height: 62px;
padding: 9px 16px;
gap: 11px;
flex-wrap: wrap;
}

.topbar-brand .brand-sub {
display: none;
}

.topbar-brand .brand-name {
font-size: 17px;
}

.top-nav {
order: 3;
flex-basis: 100%;
overflow-x: auto;
margin: 0 -4px -4px;
padding-bottom: 2px;
scrollbar-width: none;
}

.top-nav::-webkit-scrollbar {
display: none;
}

.top-nav .nav-link {
flex: 0 0 auto;
min-height: 32px;
padding: 0 9px;
font-size: 11px;
}

.top-nav .nav-link svg {
width: 14px;
height: 14px;
}

.breadcrumb {
margin-left: auto;
max-width: 100px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}

.breadcrumb span {
display: none;
}

.breadcrumb strong {
overflow: hidden;
text-overflow: ellipsis;
}

.save-note {
display: none;
}

.content {
padding: 30px 16px 55px;
}

.page-intro {
display: block;
margin-bottom: 24px;
}

.page-intro .button-row {
margin-top: 20px;
}

h1 {
font-size: 38px;
}

.metric-grid {
grid-template-columns: repeat(2,1fr);
gap: 9px;
margin-bottom: 20px;
}

.metric {
padding: 14px;
}

.metric-value {
font-size: 24px;
}

.panel-head,
.toolbar {
padding-left: 15px;
padding-right: 15px;
}

.toolbar {
display: block;
}

.search {
max-width: none;
}

.toolbar .button-row {
margin-top: 10px;
}

.recipe-grid {
grid-template-columns: 1fr;
}

.recipes-toolbar {
display: block;
}

.recipes-toolbar .button-row {
margin-top: 14px;
}

.recipe-filters {
margin-top: 14px;
}

.recipe-filters .search {
flex-basis: 100%;
max-width: none;
}

.recipe-filters select {
flex: 1;
min-width: 0;
}

.editor-head {
margin-bottom: 20px;
}

.editor-title input {
font-size: 28px;
}

.editor-actions {
width: 100%;
margin-left: 52px;
justify-content: flex-start;
}

.field-grid {
grid-template-columns: 1fr;
}

.field.full {
grid-column: auto;
}

.data-grid {
gap: 12px;
}
}

@media print {
@page {
margin: 16mm;
}

html,
body {
background: #fff;
color: #171b18;
}

.topbar,
.page-intro,
.back-link,
.editor-actions,
.panel-head button,
.row-actions,
.summary-panel .summary-hero:after {
display: none !important;
}

.content {
max-width: none;
padding: 0;
}

.editor-head {
margin: 0 0 18px;
}

.editor-title input {
border: 0;
padding: 0;
height: auto;
font-size: 28px;
}

.editor-layout {
display: block;
}

.editor-left .panel {
border: 0;
box-shadow: none;
}

.panel {
border-color: #c8c8c1;
box-shadow: none;
}

.table-scroll {
overflow: visible;
}

.line-table {
min-width: 0;
}

.summary-panel {
display: block;
position: static;
margin-top: 14px;
}

.summary-hero {
background: #eef0eb;
color: #171b18;
border: 1px solid #c8c8c1;
}

.summary-kicker,
.summary-total small {
color: #515a51;
}

.health-box,
.callout {
break-inside: avoid;
}

.toast {
display: none !important;
}
