/* Generated by build_assets.py; edit design/styles instead. */
/* brewtal-base.css */
@layer foundation,pages,components;
@layer foundation {
/* Brewtal common layout -------------------------------------------------- */
:root {
    --app-bg: #d8d3cc;
}

html {
    overflow-x: hidden;
}

body {
    width: 100%;
    background-color: var(--app-bg) ;
}

.side > .dempa {
    color: #625d56;
}

.side {
    width: 100% ;
    max-width: 1250px ;
    margin-left: auto ;
    margin-right: auto ;
}

img,
svg,
video,
canvas {
    max-width: 100%;
}

input,
select,
textarea,
button {
    max-width: 100%;
}

input[type="date"] {
    min-height: 42px;
}

@media (max-width: 700px) {
    body {
        padding-left: 8px ;
        padding-right: 8px ;
    }

    .site-nav {
        gap: 8px;
        padding: 11px 12px;
    }

    .nav-separator {
        display: none;
    }

    .site-nav a {
        padding: 4px 3px;
    }

    button,
    input,
    select {
        min-height: 44px;
    }
}


/* Innlogget bruker ------------------------------------------------------- */
.nav-account {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 9px;
    white-space: nowrap;
}

.nav-user {
    color: #777;
    font-size:var(--font-body);
}

.nav-logout-form {
    margin: 0;
}

.nav-logout {
    min-height: auto ;
    padding: 4px 7px ;
    border: 0 ;
    background: transparent ;
    color: var(--accent, #c88a65) ;
    font: inherit;
    font-size:var(--font-body) ;
    font-weight: 600 ;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 700px) {
    .nav-account {
        width: 100%;
        margin-left: 0;
        padding-top: 5px;
        border-top: 1px solid var(--border, #e5dec9);
    }
}


/* Dashboard v2 */
@media (max-width: 500px) {
    .site-nav { align-items: flex-start; }
}


/* Visual cleanup --------------------------------------------------------- */
/* KPI/status cards are deliberately solid white on every page. */
.stat {
    background: #ffffff ;
}

/* Dashboard section backgrounds. */





/* Brewtal v6 – felles visuell standard ---------------------------------- */
:root {
    --ui-green-gray: #7f8f82;
    --ui-green-gray-dark: #667568;
    --ui-border: var(--border, #e5dec9);
    --ui-card: #ffffff;
}

body {
    font-size:var(--font-body);
    line-height: 1.45;
}

h1 {
    font-size:var(--font-heading) ;
    line-height: 1.2;
}

h2 {
    font-size:var(--font-section) ;
    line-height: 1.25;
}

h3 {
    font-size:var(--font-section) ;
    line-height: 1.3;
}

button,
.knapp {
    font-size:var(--font-body);
}

/* Top-level trekkspill skal se like ut på tvers av hele appen. */
.top-accordion {
    background: #ffffff ;
    border-color: var(--ui-border) ;
    border-radius: 8px ;
}

.top-accordion > summary {
    background: #ffffff ;
    color: var(--text, #4a453e) ;
    font-size:var(--font-body) ;
    line-height: 1.3 ;
    font-weight: 700 ;
    cursor: pointer;
    list-style: none;
}

.top-accordion > summary::-webkit-details-marker {
    display: none;
}

.top-accordion > summary::after {
    content: "›" ;
    float: right;
    color: #7b817c ;
    font-size:var(--font-section) ;
    line-height: 1 ;
    transform: rotate(0deg);
    transition: transform .18s ease;
}

.top-accordion[open] > summary::after {
    transform: rotate(90deg) ;
}

.top-accordion[open] > summary {
    border-bottom-color: var(--ui-border) ;
}

/* Kompakte, nøytrale status-/infokort. */
.compact-card {
    background: #fff ;
    border: 1px solid var(--ui-border) ;
    border-left: 4px solid var(--ui-green-gray) ;
    border-radius: 7px;
}

/*
   Disse to bakgrunnene beholdes bevisst som tidligere:
   bruker ønsker Aktive Brygg og Start Ny Batch med sine grønne toner.
*/
.dashboard-active-section {
    background: #edf5ea ;
    border-color: #d7e4d2 ;
}

.dashboard-new-batch-section {
    background: #f1f2d9 ;
    border-color: #e1e2c4 ;
}
/* Felles produksjonsstatus. */
[hidden] { display: none ; }
.failed-badge {
    display: inline-block;
    padding: 4px 9px;
    border-radius: 12px;
    background: #f6d9d3;
    color: #873c36;
    font-size:var(--font-label);
    font-weight: 700;
}
.failure-panel {
    margin: 14px 0;
    padding: 14px;
    border: 1px solid #e6bcb4;
    border-left: 4px solid #b76e63;
    border-radius: 6px;
    background: #fff2ef;
    color: #713d38;
}
.failure-reason { white-space: pre-wrap; overflow-wrap: anywhere; }
.status-history-row { padding: 10px 0; border-bottom: 1px solid var(--border, #e5dec9); }
.failed-production-lock { border: 0; padding: 0; margin: 0; min-width: 0; opacity: .65; }

/* Firmaidentitet */
.site-nav .nav-brand { display: flex; align-items: center; padding: 0; margin-right: 5px; flex: 0 0 auto; }
.nav-brand img { display: block; width: 40px; height: 40px; object-fit: contain; }
.document-heading { display: flex; align-items: center; gap: 20px; margin-bottom: 20px; }
.document-logo { width: 88px; height: 88px; object-fit: contain; flex: 0 0 auto; }
.document-heading h1 { margin-bottom: 0; }
.produktnavn-form input { min-width: 130px; width: 100%; }
.produktnavn-form button { margin-top: 6px; }
.bottling-packaging { padding: 14px; margin: 14px 0; background: #faf7f2; border: 1px solid var(--border, #e5dec9); border-radius: 6px; }
.packaging-component, .bottle-component { padding: 12px 0; border-top: 1px solid var(--border, #e5dec9); }
.bottling-packaging .packaging-fields { display: grid; grid-template-columns: minmax(180px, 2.4fr) repeat(3, minmax(80px, 1fr)); gap: 12px; align-items: end; }
.packaging-fields > div { min-width: 0; }
.bottling-details label, .bottling-packaging label { display: block; font-size:var(--font-label); font-weight: 600; }
.packaging-fields input, .packaging-fields select { box-sizing: border-box; width: 100%; margin: 5px 0 0; min-height: 42px; }
.bottling-packaging h4 { margin: 0 0 8px; }
.bottling-details { display: grid; grid-template-columns: minmax(180px, 2.4fr) 1fr 1fr; gap: 12px; }
.bottling-details > div { min-width: 0; }
.bottling-details input { width: 100%; box-sizing: border-box; margin-bottom: 0; }
.bottling-name-note { margin: 8px 0 0; }
.bottling-notes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 14px 0; }
.bottling-notes label { display: block; font-size:var(--font-label); font-weight: 600; }
.bottling-notes textarea { display: block; box-sizing: border-box; width: 100%; margin: 5px 0 0; min-height: 80px; }
.liquid-loss-card > details > summary { cursor: pointer; font-weight: 600; }
.liquid-loss-content { padding-top: 14px; }
.liquid-loss-content input, .liquid-loss-content textarea { width: 100%; box-sizing: border-box; }
.liquid-loss-row { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(150px, 1fr) auto; gap: 12px; align-items: end; }
.liquid-loss-row > div { min-width: 0; }
.liquid-loss-row label { display: block; font-size:var(--font-label); font-weight: 600; }
.liquid-loss-row input { margin: 5px 0 0; min-height: 42px; }
.liquid-loss-row button { margin: 0; min-height: 42px; white-space: nowrap; }
.liquid-loss-help { margin: 8px 0 14px; }
.bottling-error { color: #873c36; margin: 10px 0; }
.fill-remaining-liquid { background: #e9eeea; color: #4a5a4b; border: 1px solid #cbd6cc; }
.fill-remaining-liquid:hover { background: #dce6dd; color: #344a36; }
.checkbox-label { display: flex; align-items: center; gap: 10px; }
.checkbox-label input[type="checkbox"] { width: 18px; height: 18px; min-height: 18px; flex: 0 0 18px; margin: 0; }
.fat-section { padding: 0; }
.fat-section > summary { padding: 18px; }
.fat-section > .details-body { padding: 16px 18px 18px; }
.fat-section[open] > summary { border-bottom: 1px solid var(--border, #e5dec9); }
@media(max-width:700px) { .bottling-packaging .packaging-fields { grid-template-columns: 1fr 1fr; } .bottling-packaging .packaging-fields > div:first-child { grid-column: 1 / -1; } .bottling-details { grid-template-columns: 1fr 1fr; } .bottling-details > div:first-child { grid-column: 1 / -1; } .liquid-loss-row { grid-template-columns: 1fr 1fr; } .liquid-loss-fill { grid-column: 1 / -1; } .liquid-loss-fill button { width: 100%; } .fat-section > summary { padding: 14px; } .fat-section > .details-body { padding: 12px 14px 14px; } }
@media(max-width:700px) { .bottling-notes { grid-template-columns: 1fr; } }
@media(max-width:650px) { .document-logo { width: 60px; height: 60px; } .document-heading { gap: 12px; } }
@media print { body { background-color: #fff ; } }

}

/* brewtal.css */
@layer foundation,pages,components;
@layer components {
:root{--bg:#f7f5f0;--card:#fff;--text:#4a453e;--primary:#647b68;--border:#e5dec9;}*{box-sizing:border-box;}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;}.brew-page{max-width:1250px;margin:auto;padding:18px;}.brew-card{padding:22px;margin:20px 0;background:white;border:1px solid var(--border);border-radius:12px;}.brew-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}.brew-card label{display:block;font-weight:600;font-size:var(--font-body);margin:12px 0 5px;}.brew-card input,.brew-card select,.brew-card textarea{width:100%;min-height:42px;padding:10px;font:inherit;border:1px solid var(--border);border-radius:6px;}.brew-card textarea{min-height:110px;}.brew-card button,.brew-button{display:inline-block;margin-top:14px;padding:10px 16px;background:var(--primary);color:white;border:0;border-radius:7px;text-decoration:none;font:inherit;cursor:pointer;}.brew-card .inline-check{display:flex;gap:8px;align-items:center;}.inline-check input{width:18px;min-height:18px;}.brew-error{background:#ffe8e3;padding:14px;border-radius:8px;}.brew-success{background:#e1f1e4;padding:14px;border-radius:8px;}.brew-warning{padding:18px;background:#fff0ce;border-radius:8px;}.brew-warning code{display:block;font-size:var(--font-section);margin-top:8px;overflow-wrap:anywhere;}.brew-nav{display:flex;gap:15px;align-items:center;flex-wrap:wrap;background:white;padding:12px;border:1px solid var(--border);border-radius:10px;margin:0 0 20px;}.brew-brand{display:flex;gap:8px;align-items:center;color:var(--text);text-decoration:none;}.brew-brand img{object-fit:contain;}.brew-links{display:flex;gap:6px;flex-wrap:wrap;}.brew-links a{color:var(--text);text-decoration:none;padding:8px;border-radius:5px;}.brew-links a:hover,.brew-links a[aria-current]{background:#eaf0e7;}.brew-menu{flex:1;}.brew-menu>summary{cursor:pointer;padding:8px;font-weight:600;}.brew-account{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}.brew-account form{margin:0;}.brew-account button,.brew-account select{width:auto;padding:7px;margin:0;border:1px solid var(--border);border-radius:5px;background:white;color:var(--text);font-size:var(--font-body);}.brew-account a{color:var(--text);}.brew-row{display:grid;grid-template-columns:2fr 1fr auto;align-items:end;gap:10px;}.brew-row input,.brew-row select{margin:0;}.brew-row button{margin:0;}.brew-meta{color:#716a61;font-size:var(--font-body);line-height:1.6;}.brew-table-wrap{overflow:auto;}.brew-table{width:100%;border-collapse:collapse;}.brew-table th,.brew-table td{text-align:left;padding:10px;border-bottom:1px solid var(--border);}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}.login-panel{max-width:470px;margin:8vh auto;}.brew-actions{display:flex;flex-wrap:wrap;gap:10px;}.brew-tabs{display:flex;gap:10px;flex-wrap:wrap;}.brew-tabs a{color:var(--text);}@media(min-width:1000px){.brew-menu>summary{display:none;}.brew-menu>.brew-links{display:flex;}.brew-menu:not([open])>.brew-links{display:flex;}}@media(max-width:700px){.brew-grid{grid-template-columns:1fr;}.brew-page{padding:8px;}.brew-card{padding:15px;}.brew-row{grid-template-columns:1fr 85px 35px;}.brew-account{width:100%;justify-content:space-between;}.stats{grid-template-columns:repeat(2,minmax(0,1fr));}.stat{min-width:0;}.brew-menu{order:3;flex-basis:100%;}.brew-links{display:grid;grid-template-columns:1fr 1fr;}}
.step-row{grid-template-columns:2fr 1.5fr 100px 35px;}@media(max-width:700px){.step-row{grid-template-columns:1fr 1fr;}.step-row button{width:35px;}}
:root{--page-max:1400px;--page-gutter:20px;--section-gap:20px;--card-padding:16px;--field-gap:12px;--radius:10px;}
html{scrollbar-gutter:stable;}body{padding:0;}.brew-page{width:100%;max-width:var(--page-max);padding:var(--page-gutter);margin:0 auto;min-width:0;}
.brew-nav{height:64px;min-height:64px;max-height:64px;flex-wrap:nowrap;position:relative;gap:12px;padding:0 12px;margin:0 0 var(--section-gap);border-radius:var(--radius);font-size:var(--font-body);line-height:1.3;overflow:visible;z-index:20;}
.brew-nav *{box-sizing:border-box;}.brew-brand{flex:none;}.brew-menu{flex:1;min-width:0;}.brew-links{display:flex;flex-wrap:nowrap;gap:2px;align-items:center;}.brew-links a{white-space:nowrap;padding:8px 6px;font-size:var(--font-body);}.company-settings-link{max-width:none;overflow:visible;text-overflow:clip;flex:none;}.brew-account{flex:none;flex-wrap:nowrap;font-size:var(--font-body);gap:8px;}.brew-account>a{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.brew-account form{display:block;}.brew-account button{min-height:32px;font:inherit;}
.brew-card,.kort{padding:var(--card-padding);border-radius:var(--radius);margin-bottom:var(--section-gap);}.brew-grid{gap:var(--field-gap);}.brew-grid-three{grid-template-columns:repeat(3,minmax(0,1fr));}.brew-grid-four{grid-template-columns:repeat(4,minmax(0,1fr));}.brew-card label{margin:8px 0 4px;}.brew-card input,.brew-card select{max-width:100%;min-width:0;}.brew-card summary{cursor:pointer;font-weight:600;}.profile-admin{margin-top:16px;}.editable-table{min-width:800px;}.editable-table input:not([type=checkbox]),.editable-table select{min-width:110px;padding:8px;min-height:38px;}.editable-table input[type=checkbox]{width:18px;min-height:18px;}.editable-table button{margin:3px 0;white-space:nowrap;}.ingredient-row{grid-template-columns:2fr 1.2fr .8fr .6fr 1fr .8fr 35px;}.ingredient-cost{display:block;padding:12px 0;}.brew-table-wrap,.tabell-ramme{max-width:100%;overflow-x:auto;}img{max-width:100%;}[hidden]{display:none;}
@media(max-width:1199px){.brew-menu>summary{display:block;}.brew-menu:not([open])>.brew-links{display:none;}.brew-menu[open]>.brew-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));position:absolute;top:63px;left:0;right:0;background:white;border:1px solid var(--border);border-radius:0 0 10px 10px;padding:12px;box-shadow:0 8px 18px #0002;}.brew-menu{order:0;flex:1;}.brew-menu>summary{max-width:100px;padding:10px;}.brew-account{width:auto;}.company-settings-link{max-width:none;white-space:normal;}.ingredient-row{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(min-width:1200px){.brew-menu>summary{display:none;}.brew-menu>.brew-links,.brew-menu:not([open])>.brew-links{display:flex;}}
@media(max-width:700px){:root{--page-gutter:12px;}.brew-grid-three,.brew-grid-four,.brew-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.brew-account>a{max-width:70px;}.brew-brand img{width:26px;height:26px;}.brew-nav{gap:6px;padding:0 8px;}.ingredient-row{grid-template-columns:repeat(2,minmax(0,1fr));}.brew-row{min-width:0;}.brew-links{grid-template-columns:repeat(2,minmax(0,1fr));}.brew-grid label{min-width:0;}}
@media(max-width:440px){.brew-grid-three,.brew-grid-four{grid-template-columns:1fr;}.brew-account>a{max-width:48px;}}

.company-settings-link{display:flex;align-items:center;gap:4px;max-width:none;}.company-short-name{max-width:none;overflow:visible;text-overflow:clip;white-space:inherit;overflow-wrap:anywhere;}@media(max-width:1199px){.company-settings-link{display:block;max-width:none;}.company-short-name{max-width:none;white-space:normal;}}

.recipe-header-grid{grid-template-columns:2fr .8fr 2fr;align-items:start;}.brew-card .recipe-short-notes{height:42px;min-height:42px;padding:10px;resize:vertical;}.recipe-ingredient-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;}.recipe-ingredient-heading h2{margin:0;}.recipe-ingredient-heading label{display:flex;align-items:center;gap:10px;}.recipe-ingredient-heading input{width:100px;}.ingredient-row{grid-template-columns:1.7fr 1.7fr .8fr .6fr 1fr .8fr 35px;}@media(max-width:1199px){.ingredient-row{grid-template-columns:repeat(3,minmax(0,1fr));}}@media(max-width:700px){.recipe-header-grid{grid-template-columns:1fr 100px;}.recipe-header-grid label:last-child{grid-column:1/-1;}.recipe-ingredient-heading{align-items:flex-start;}.recipe-ingredient-heading label{display:block;font-size:var(--font-label);}.ingredient-row{grid-template-columns:repeat(2,minmax(0,1fr));}}

@media(max-width:640px){.profile-password-grid{grid-template-columns:1fr;}}

.summary-heading,.summary-expense{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;}.summary-stat strong{display:block;margin-top:8px;font-size:var(--font-heading);overflow-wrap:anywhere;}.summary-expense{padding:8px 0;border-bottom:1px solid #dedecb;}.summary-expense form{margin:0;}.summary-heading .brew-button{white-space:normal;}
.summary-heading>div{min-width:0;max-width:100%;}.summary-heading h1{overflow-wrap:anywhere;}.brew-card .inline-check input{width:18px;min-width:18px;flex:0 0 18px;}
@media(max-width:440px){.summary-heading h1{font-size:var(--font-heading);}}

/* Shared navigation must not inherit page-specific accordion/form spacing. */
.brew-nav .brew-menu{margin:0;padding:0;border:0;background:transparent;}
.brew-nav .brew-account form{margin:0;padding:0;}
.brew-nav .brew-account button{height:32px;min-height:32px;margin:0;padding:6px 9px;line-height:1.2;}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select{height:42px;min-height:42px;line-height:20px;min-width:0;}
input[type=date]{display:block;min-width:0;max-width:100%;font:inherit;appearance:auto;}
input[type=date]::-webkit-date-and-time-value{min-height:20px;text-align:left;}
.archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;}
.archive-grid>details{min-width:0;margin-top:0;}
.production-status .innstillinger-innhold{display:block;}.production-status form{max-width:720px;}
.deadline-edit-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(150px,1.3fr) 145px 145px 62px 65px 60px;gap:10px;align-items:end;}
.deadline-edit-form{display:contents;}.deadline-edit-row label{display:block;min-width:0;font-size:var(--font-label);font-weight:600;}
.deadline-edit-row input:not([type=checkbox]),.deadline-edit-row select,.deadline-create-row input,.deadline-create-row select{width:100%;margin:4px 0 0;padding:8px;font-size:var(--font-body);}
.deadline-edit-row .deadline-active{display:flex;align-items:center;gap:5px;height:42px;margin:0;font-weight:400;}
.deadline-active input{width:16px;height:16px;min-height:16px;margin:0;}
.deadline-edit-row button{margin:0;min-height:42px;width:100%;padding:8px;font-size:var(--font-body);}
.deadline-delete{margin:0;}.deadline-create-row{display:grid;grid-template-columns:1fr 145px 145px 1.4fr 1.5fr;gap:10px;align-items:end;}
.deadline-create-row label{display:block;font-size:var(--font-label);min-width:0;}
#batch-tabell th,#batch-tabell td{white-space:nowrap;}#batch-tabell td:first-child{max-width:230px;overflow:hidden;text-overflow:ellipsis;}
#batch-tabell .status-active{background:#edf5ee;}#batch-tabell .status-archived{background:#efefef;}#batch-tabell .status-failed{background:#fce8e7;}
.status-key{display:flex;flex-wrap:wrap;gap:12px;font-size:var(--font-body);}.status-key span{padding:7px 10px;border-radius:6px;}.status-key .status-active{background:#edf5ee;}.status-key .status-archived{background:#efefef;}.status-key .status-failed{background:#fce8e7;}
.report-progress{display:flex;align-items:center;gap:7px;}.report-progress .progress{flex:none;}
.register-search{display:block;max-width:500px;margin:12px 0;font-size:var(--font-body);font-weight:600;}.register-search input{display:block;width:100%;margin:5px 0;padding:10px;border:1px solid var(--border);border-radius:6px;font:inherit;}
.page-help{font-size:var(--font-body);margin:12px 0;color:var(--text);}.page-help a{color:inherit;}
@media(max-width:1199px){.deadline-edit-row{grid-template-columns:1fr 1fr 130px 130px 55px 55px 50px;gap:6px;}.deadline-create-row{grid-template-columns:1fr 130px 140px 1.2fr 1.2fr;}}
@media(max-width:850px){.deadline-edit-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 55px 50px;gap:8px;}.deadline-date{grid-column:1/3;grid-row:1;}.deadline-recurrence{grid-column:3/5;grid-row:1;}.deadline-name{grid-column:1;grid-row:2;}.deadline-note{grid-column:2;grid-row:2;}.deadline-save{grid-column:3;grid-row:2;}.deadline-delete{grid-column:4;grid-row:2;}.deadline-edit-row .deadline-active{grid-column:1/-1;grid-row:3;height:25px;}.deadline-create-row{grid-template-columns:repeat(2,minmax(0,1fr));}.deadline-create-row label:last-child{grid-column:1/-1;}}
@media(max-width:700px){.archive-grid{grid-template-columns:1fr;}.archive-grid>details{margin-bottom:0;}.archive-grid{margin-bottom:20px;}}
.brew-page h1,.brew-page h2,.brew-page h3{overflow-wrap:anywhere;}.brew-grid>*{min-width:0;}.brew-card{min-width:0;}

#batch-tabell th,#batch-tabell td{font-size:var(--font-label);padding:8px 6px;}#batch-tabell .progress{width:70px;}

/* Compact navigation, page actions and archived brews. */
@media(min-width:1200px){.brew-links>a{position:relative;}.brew-links>a::before{content:"";position:absolute;inset-inline-start:0;top:50%;height:16px;width:1px;background:var(--border);transform:translateY(-50%);pointer-events:none;}}
.page-action-row{display:flex;align-items:center;gap:18px;margin:0 0 20px;}.page-action-row>.brew-button{margin:0;flex:none;}.page-action-row>.brew-meta{margin:0;}
.page-help{margin:28px 0 8px;padding-top:14px;border-top:1px solid var(--border);}
.archive-list{margin-top:14px;}.archive-sort{display:flex;align-items:center;gap:10px;font-size:var(--font-body);margin:0 0 12px;}.archive-sort select{width:auto;max-width:100%;margin:0;min-height:38px;padding:6px 10px;font:inherit;border:1px solid var(--border);border-radius:6px;background:white;color:inherit;}
.archive-table{font-size:var(--font-body);}.archive-table th,.archive-table td{padding:8px;vertical-align:top;}.archive-table td:first-child{overflow-wrap:anywhere;}.archive-table th:last-child,.archive-table td:last-child{white-space:nowrap;}.archive-table a{color:inherit;text-underline-offset:3px;}.archive-table tbody tr:hover{background:#f7f8f4;}
.document-resources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;}.document-resources>section{display:flex;flex-direction:column;align-items:flex-start;min-width:0;}.document-resources h2{margin:0;font-size:var(--font-section);}.document-resources p{font-size:var(--font-body);line-height:1.6;flex:1;margin:12px 0;}.document-resources .brew-button{margin-top:4px;}
@media(max-width:700px){.page-action-row{flex-wrap:wrap;gap:10px;}.document-resources{grid-template-columns:1fr;gap:20px;}.document-resources>section+section{border-top:1px solid var(--border);padding-top:20px;}.archive-sort{flex-wrap:wrap;}.archive-table th,.archive-table td{padding:7px 5px;}}
/* Account button and navigation measured against the available space. */
.brew-nav .account-menu{display:block;position:relative;flex:none;margin:0;border:0;padding:0;background:none;font-size:var(--font-body);}
.account-menu>summary{display:flex;align-items:center;gap:8px;cursor:pointer;padding:9px 10px;border:1px solid var(--border);border-radius:6px;list-style:none;min-height:38px;}.account-menu>summary::-webkit-details-marker{display:none;}.account-menu>summary span:first-child{max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.account-options{position:absolute;right:0;top:calc(100% + 8px);min-width:185px;padding:6px;background:white;border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 16px #0002;}.account-options a,.brew-nav .account-options button{display:block;width:100%;height:auto;text-align:left;padding:11px;border:0;background:white;color:var(--text);text-decoration:none;}.account-options a:hover,.account-options button:hover{background:#eef2eb;}.account-panel{max-width:760px;margin-left:auto;margin-right:auto;}
.brew-nav[data-nav-mode=expanded] .brew-menu>summary{display:none;}.brew-nav[data-nav-mode=expanded] .brew-links{display:flex;position:static;box-shadow:none;border:0;padding:0;grid-template-columns:none;}.brew-nav[data-nav-mode=collapsed] .brew-menu>summary{display:block;}.brew-nav[data-nav-mode=collapsed] .brew-menu:not([open]) .brew-links{display:none;}.brew-nav[data-nav-mode=collapsed] .brew-menu[open] .brew-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));position:absolute;top:63px;left:0;right:0;background:white;border:1px solid var(--border);padding:12px;border-radius:0 0 10px 10px;box-shadow:0 8px 18px #0002;}.brew-nav[data-nav-mode=expanded] .company-settings-link{max-width:none;white-space:nowrap;}.brew-nav[data-nav-mode=expanded] .brew-menu{order:0;flex:1;flex-basis:auto;}
.brew-nav[data-measuring] .brew-menu .brew-links{display:flex;position:fixed;left:-10000px;top:0;width:max-content;visibility:hidden;flex-wrap:nowrap;border:0;padding:0;box-shadow:none;}.brew-nav[data-measuring] .company-settings-link{max-width:none;white-space:nowrap;}.brew-nav[data-nav-mode=expanded] .brew-links>a{position:relative;}.brew-nav[data-nav-mode=expanded] .brew-links>a::before{content:"";position:absolute;left:0;top:50%;height:16px;width:1px;background:var(--border);transform:translateY(-50%);}.brew-nav[data-nav-mode=collapsed] .brew-links>a::before{display:none;}
/* Reusable, compact sheets retain readable type and their own scroll area. */
.sheet-table{font-size:var(--font-body);}.sheet-table th,.sheet-table td{padding:7px 8px;vertical-align:middle;}.sheet-table th{font-weight:600;white-space:nowrap;}.sheet-table td{line-height:1.45;}.sheet-table tr.brew-row{display:table-row;}.sheet-table label{margin:0;font-size:var(--font-body);}.sheet-table input,.sheet-table select{margin:0;min-height:36px;padding:6px 8px;font-size:var(--font-body);}.sheet-table input{min-width:80px;}.sheet-table select{min-width:85px;}.sheet-table button,.sheet-table .brew-button{margin:0;padding:7px 9px;min-height:34px;font-size:var(--font-label);width:auto;}.sheet-actions{white-space:nowrap;}.sheet-actions>*+*{margin-left:6px;}.sheet-detail-row>td{background:#f6f7f2;padding:14px;}.sheet-detail-row input{width:100%;}.sheet-detail-row .skjema-innhold{padding:0;}.sheet-detail-row .brew-grid{margin-bottom:12px;}.sheet-detail-row button{margin-top:8px;}
.recipe-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}.recipe-list>.brew-card{margin:0;padding:16px;display:flex;flex-direction:column;}.recipe-list h2{font-size:var(--font-section);margin:0 0 8px;}.recipe-list p{font-size:var(--font-body);margin:6px 0;}.recipe-list .brew-button{margin-top:auto;align-self:flex-start;}.recipe-sheet{min-width:650px;}.recipe-sheet td:first-child{width:35%;}.recipe-sheet td input,.recipe-sheet td select{width:100%;}.recipe-sheet td:last-child{width:42px;}.recipe-sheet .brew-row button{margin:0;}.compact-panel{padding:16px;margin:16px 0;}.compact-subpanel{border-top:1px solid var(--border);margin-top:12px;padding-top:12px;}.register-toolbar{display:flex;gap:12px;align-items:end;margin:12px 0;}.register-toolbar label{margin:0;}.table-sort{display:flex;gap:8px;align-items:center;font-size:var(--font-body);margin:12px 0;}.table-sort select{width:auto;min-height:38px;margin:0;padding:6px 10px;font:inherit;border:1px solid var(--border);border-radius:6px;background:white;color:inherit;}.consumption-create{grid-template-columns:1.5fr 140px .7fr .7fr 1fr 1.3fr;gap:10px;}.consumption-create label{font-size:var(--font-label);}
.batch-heading{display:flex;gap:12px;align-items:center;flex-wrap:wrap;}.batch-heading h1{margin:0;font-size:var(--font-heading);}.batch-heading .batch-type-badge{margin:0;}.batch-overview-meta{display:flex;align-items:flex-start;gap:24px;}.batch-overview-meta>p{margin:12px 0;}.batch-recipe-notes{white-space:pre-wrap;font-size:var(--font-body);line-height:1.6;flex:1;}.production-status{margin-top:14px;}.production-status>summary{font-size:var(--font-body);}.responsive-reminder>summary{list-style:none;cursor:pointer;}.responsive-reminder>summary::-webkit-details-marker{display:none;}.responsive-reminder{margin:0;}.responsive-reminder .reminder-detail{padding-top:8px;}.archive-table td:last-child{white-space:normal;}.archive-table th:last-child{white-space:nowrap;}
.packaging-create-row{display:grid;grid-template-columns:1.6fr 1fr .7fr .8fr 145px 1fr;gap:10px;align-items:end;}.packaging-create-row label{display:block;font-size:var(--font-label);}.packaging-create-row input,.packaging-create-row select{width:100%;margin:4px 0 0;}.packaging-create-row #storrelse-boks[hidden]{display:block;opacity:.45;}.packaging-create-row #storrelse-boks[hidden] input{visibility:hidden;}.sheet-inline-editor{position:relative;}.sheet-inline-editor>summary{font-size:var(--font-label);cursor:pointer;white-space:nowrap;}.sheet-inline-editor[open] .skjema-innhold{min-width:220px;white-space:normal;}
@media(max-width:1000px){.recipe-list{grid-template-columns:repeat(2,minmax(0,1fr));}.consumption-create,.packaging-create-row{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media(max-width:700px){.account-menu>summary span:first-child{max-width:100px;}.account-options{min-width:175px;}.recipe-list{grid-template-columns:repeat(2,minmax(0,1fr));}.recipe-list>.brew-card{padding:12px;}.recipe-list h2{font-size:var(--font-section);}.responsive-reminder{padding:10px;}.responsive-reminder>summary{padding-right:18px;position:relative;font-size:var(--font-body);}.responsive-reminder>summary::after{content:"▾";position:absolute;right:0;}.responsive-reminder[open]>summary::after{content:"▴";}.paminnelse-grid{gap:10px;}.paminnelse-kolonne{padding:10px;}.batch-overview-meta{flex-wrap:wrap;gap:0;}.batch-overview-meta>p{width:100%;margin:8px 0;}.batch-heading h1{font-size:var(--font-heading);}.register-toolbar{flex-wrap:wrap;}.register-toolbar>*{flex:1;min-width:120px;}.consumption-create,.packaging-create-row{grid-template-columns:repeat(2,minmax(0,1fr));}.sheet-table .sheet-actions{white-space:nowrap;}.table-sort{flex-wrap:wrap;}}
@media(max-width:380px){.recipe-list{grid-template-columns:1fr;}}
.inline-form{display:inline-block;margin:0;}.sheet-inline-editor{margin:0;padding:0;border:0;}.extra-packaging-rows .packaging-component{margin:8px 0;}.extra-packaging button{font-size:var(--font-label);padding:7px 10px;}.recipe-sheet th:nth-child(3){min-width:90px;}#customer-sheet td:first-child{min-width:170px;}#customer-sheet td:nth-child(4){overflow-wrap:anywhere;max-width:210px;}#ingredient-sheet{min-width:650px;}#ingredient-sheet th:first-child{width:25%;}

.email-copy-text{width:100%;min-height:220px;padding:12px;font:inherit;border:1px solid var(--border);border-radius:6px;}.sheet-table td:first-child>a.dempa{margin-left:7px;white-space:nowrap;}

.sheet-table .sheet-actions > * + *{margin-left:6px;}
/* Batch controls share one restrained row; long forms open only when needed. */
.compact-disclosure{padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:#faf9f6;margin:12px 0;}.compact-disclosure>summary{cursor:pointer;font-size:var(--font-body);font-weight:600;}.status-controls{display:flex;align-items:center;gap:0;margin-top:10px;flex-wrap:wrap;}.status-group{padding:4px 12px;min-width:0;}.status-group:first-child{padding-left:0;}.status-group+.status-group{border-left:1px solid var(--border);}.status-controls button,.status-controls .brew-button{margin:0;padding:8px 10px;font-size:var(--font-label);min-height:36px;}.status-summary{flex:0 1 280px;}.status-summary .brew-button{line-height:1.35;}.status-action{position:relative;margin:0;padding:0;border:0;background:none;}.status-action>summary{font-size:var(--font-label);cursor:pointer;max-width:200px;}.status-popup{position:absolute;z-index:25;top:calc(100% + 10px);left:0;width:310px;max-width:calc(100vw - 60px);padding:12px;background:white;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 22px #0002;}.status-popup label{display:block;font-size:var(--font-label);margin:8px 0;}.status-popup input,.status-popup textarea{width:100%;min-height:36px;padding:7px;}.status-type form,.status-type-fields{display:flex;align-items:end;gap:8px;}.status-type-fields{flex:1;min-width:0;}.status-type .flex-kol{flex:1;min-width:80px;}.status-type label{font-size:var(--font-label);margin:0 0 4px;}.status-type select{margin:0;min-height:36px;padding:6px;font-size:var(--font-label);}.status-type button{flex:none;}.batch-plan{margin-top:16px;margin-bottom:0;}.batch-plan .plan-grid{gap:8px;}.batch-plan .plan-step{padding:10px;}/* Explicit columns keep units compact and notes readable. */
.raw-material-sheet{table-layout:fixed;min-width:1200px;}
.raw-material-sheet col.raw-name{width:21%;}
.raw-material-sheet col.raw-date{width:104px;}
.raw-material-sheet col.raw-use{width:85px;}
.raw-material-sheet col.raw-quantity{width:100px;}
.raw-material-sheet col.raw-unit{width:76px;}
.raw-material-sheet col.raw-price{width:114px;}
.raw-material-sheet col.raw-cost{width:112px;}
.raw-material-sheet col.raw-action{width:50px;}
.raw-material-sheet input,.raw-material-sheet select,.raw-material-sheet textarea{width:100%;min-width:0;}
.brew-card .raw-material-sheet textarea{min-height:62px;resize:vertical;padding:8px;}
.raw-material-sheet .auto-save-status{display:block;font-size:var(--font-label);overflow-wrap:anywhere;}
.recipe-ingredients-sheet{table-layout:fixed;min-width:760px;}
.sheet-table th{position:relative;}
.recipe-ingredients-sheet col.recipe-ingredient-name{width:25%;}
.recipe-ingredients-sheet col.recipe-ingredient-category{width:24%;}
.recipe-ingredients-sheet col.recipe-ingredient-quantity{width:100px;}
.recipe-ingredients-sheet col.recipe-ingredient-unit{width:76px;}
.recipe-ingredients-sheet col.recipe-ingredient-action{width:46px;}
.recipe-ingredients-sheet [name=ingredient_unit]{width:60px;min-width:0;max-width:60px;}
.recipe-ingredients-sheet .recipe-volume-cell{min-width:0;overflow-wrap:anywhere;}
.raw-traceability-sheet{min-width:620px;}
.raw-traceability .receipt-link-form{max-width:none;flex-wrap:nowrap;}
.raw-traceability .receipt-link-form select{max-width:none;flex:1;width:100%;min-width:180px;}
.raw-traceability .receipt-link-form button{flex:none;}
.actual-consumption{margin-bottom:0;}.batch-bottom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;margin:16px 0;}.batch-bottom-grid .kort{margin:0;min-width:0;}.batch-bottom-grid>.liquid-loss-card{padding:16px;}.batch-bottom-grid>details{padding:16px;}.batch-report-panel h3{font-size:var(--font-body);margin:16px 0 10px;}.batch-report-panel .sheet-detail-row form{padding:0;}.batch-log-sheet{min-width:680px;}.batch-log-sheet td:nth-child(1){white-space:nowrap;width:95px;}.batch-log-sheet td:nth-child(2){width:150px;}.batch-log-sheet td:nth-child(3){width:75px;}.batch-log-sheet .report-text{white-space:pre-wrap;overflow-wrap:anywhere;min-width:220px;}.report-deviation{background:#fbe8e3;}.report-note{background:#eef3e8;}.report-record{background:#f8f8f5;}.report-kind{font-size:var(--font-label);font-weight:600;}.brewery-status-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;}.brewery-stat{padding:8px 14px;border-left:1px solid var(--border);min-width:0;}.brewery-stat:first-child{border-left:0;padding-left:0;}.brewery-stat strong{display:block;margin:8px 0;font-size:var(--font-heading);overflow-wrap:anywhere;}.brewery-stat small{color:#716a61;font-size:var(--font-label);line-height:1.45;display:block;}.brewery-status h2{font-size:var(--font-section);margin:0 0 10px;}.brewery-stat .kpi-label{font-size:var(--font-label);min-height:30px;}
@media(max-width:1100px){.status-controls{gap:10px;}.status-group{padding:0 10px;}.status-summary{flex-basis:250px;}.brewery-status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 0;}.brewery-stat:nth-child(4){border-left:0;padding-left:0;}}
@media(max-width:700px){.batch-bottom-grid{grid-template-columns:1fr;}.status-summary{flex:1 1 100%;}.status-group+.status-group{border-left:0;}.status-group{padding:4px 0;}.status-archive{padding-right:14px;}.status-type form{flex-wrap:wrap;}.status-type-fields{flex-basis:100%;}.status-popup{left:auto;right:0;}.brewery-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.brewery-stat{padding:8px 10px;}.brewery-stat:nth-child(odd){border-left:0;padding-left:0;}.brewery-stat:nth-child(4){border-left:1px solid var(--border);padding-left:10px;}.brewery-stat strong{font-size:var(--font-section);}.brewery-stat .kpi-label{min-height:0;}}

/* Full company names, coloured status tiles and ingredient-derived volumes. */
.brew-nav[data-nav-mode=collapsed] .company-settings-link{white-space:normal;overflow-wrap:anywhere;}
.brewery-status-grid{gap:10px;}.brewery-stat,.brewery-stat:first-child{padding:12px;border:1px solid #d8d9d0;border-radius:6px;}.brewery-stat:nth-child(1){background:#eaf0e7;}.brewery-stat:nth-child(2){background:#e2edf4;}.brewery-stat:nth-child(3){background:#eee6f4;}.brewery-stat:nth-child(4){background:#f8efd9;}.brewery-stat:nth-child(5){background:#f5e3dc;}.brewery-stat:nth-child(6){background:#e0f0eb;}
.recipe-volume-summary{font-size:var(--font-body);display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;}.recipe-volume-summary span{color:#696258;}.recipe-volume-cell{min-width:170px;}.ingredient-volume-options{font-size:var(--font-label);}.ingredient-volume-options>summary{cursor:pointer;}.ingredient-volume-options label{display:block;margin:8px 0;}.ingredient-volume-options small{display:block;max-width:240px;color:#696258;}.ingredient-volume-options input{width:110px;}.demo-banner{background:#f7ead0;border:1px solid #d6bf8d;border-radius:6px;padding:10px 14px;margin:0 0 14px;font-size:var(--font-body);line-height:1.5;}.demo-banner strong{margin-right:8px;}.demo-login-info{padding:12px;background:#f7ead0;border-radius:6px;}
@media(max-width:700px){.brewery-stat:nth-child(n){border:1px solid #d8d9d0;padding:10px;}.recipe-ingredient-heading{align-items:start;flex-direction:column;}}

.recipe-volume-cell small{display:block;font-size:var(--font-label);color:#64736b;max-width:180px;}

.batch-bottom-grid{grid-template-columns:1fr;}

/* Five shared text roles: heading, section, label, body and action. */
:root{--font-heading:22px;--font-section:16px;--font-label:12px;--font-body:14px;--font-action:14px;}
.brew-page{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:var(--font-body);line-height:1.45;}
.brew-page :is(h1,.batch-name,.stat .verdi,.stat-verdi,.brewery-stat strong){font-size:var(--font-heading);font-weight:700;line-height:1.25;}
.brew-page :is(h2,h3,h4,.top-accordion>summary,.compact-panel>summary,.compact-subpanel>summary,.fat h2,.plan-step h3){font-size:var(--font-section);font-weight:700;line-height:1.3;}
.brew-page :is(label,.label,.stat-label,.kpi-label,.badge,.batch-type-badge,.failed-badge,.report-kind,small,.topic-note,.auto-save-status,.autosave-status){font-size:var(--font-label);font-weight:400;line-height:1.45;}
.brew-page :is(p,.dempa,.meta,.brew-meta,.batch-meta,.source-line,.recipe-list p,.batch-recipe-notes,td,input,select,textarea,.sheet-table input,.sheet-table select){font-size:var(--font-body);line-height:1.45;}
.brew-page :is(button,.brew-button,.knapp,.brew-links a,.brew-brand,.account-menu>summary,.account-options a,.account-options button,.sheet-table th,.sheet-inline-editor>summary,.compact-disclosure>summary,.status-action>summary){font-size:var(--font-action);font-weight:700;line-height:1.35;}
.brew-page .brew-links a{padding:8px 6px;}
.brew-page .batch-heading h1{font-size:var(--font-heading);}
.brew-page .recipe-volume-cell small,.brew-page .brewery-stat small{font-size:var(--font-label);font-weight:400;}
/* Top statistic cards share spacing and label metrics across pages. */
.brew-page :is(.stats,.stat-grid){gap:12px;align-items:stretch;}
.brew-page :is(.stats>.stat,.stat-grid>.stat-kort){padding:16px;border-radius:8px;min-height:94px;display:flex;flex-direction:column;}
.brew-page :is(.stats>.stat>.label,.stat-grid>.stat-kort>.stat-label){font-size:var(--font-label);font-weight:400;line-height:1.45;text-transform:uppercase;min-height:35px;color:#716a61;}
.brew-page :is(.stats>.stat>.verdi,.stat-grid>.stat-kort>.stat-verdi){margin:4px 0 0;font-size:var(--font-heading);font-weight:700;line-height:1.25;}
.brew-page .production-summary-button,.brew-page .status-summary .brew-button{background:#dcefdc;color:#315637;border:1px solid #bfd9bf;font-weight:700;}
.brew-page .production-summary-button:hover,.brew-page .status-summary .brew-button:hover{background:#cfe5cf;color:#24472b;}
.status-summary{flex:0 1 auto;}
.type-save-status[hidden]{display:none;}

/* Compact, shared production actions on batch and barrel-lot pages. */
.brew-page .status-summary{flex:0 0 auto;}
.brew-page .status-complete>summary,.brew-page .production-complete-button{background:#dcebf7;color:#244562;border:1px solid #bdd4e7;border-radius:6px;padding:8px 10px;font-weight:700;min-height:36px;}
.brew-page .status-complete>summary:hover,.brew-page .production-complete-button:hover{background:#ccdfef;}
.brew-page .status-archive button{background:#f6ead1;color:#665020;border:1px solid #e3d0a5;font-weight:700;}
.brew-page .status-popup{max-height:calc(100vh - 100px);overflow:auto;}
.brew-page .status-popup .inline-check{display:flex;align-items:flex-start;gap:8px;}
.brew-page .status-popup input[type=checkbox]{width:auto;min-height:0;flex:none;margin-top:3px;}
@media(max-width:700px){.status-controls>.status-group:has(.status-action[open]){flex-basis:100%;}.status-popup{position:static;width:100%;max-width:100%;margin-top:10px;}}

/* Compact optional delivery references and multi-variant bottling. */
.receipt-link-form{display:flex;gap:4px;align-items:center;margin:0;max-width:180px;}.receipt-link-form select{min-width:0;max-width:145px;}.receipt-link-form button{padding:5px 8px;}.bottling-line+.bottling-line{border-top:2px solid #d8e0d6;margin-top:12px;padding-top:12px;}.remove-bottle-line{margin:6px 0;}.brew-checkbox{display:flex;align-items:center;gap:8px;}.brew-checkbox input[type=checkbox]{width:auto;min-height:0;flex:0 0 auto;}.measured-volume{margin-top:8px;}.step-instruction{white-space:pre-wrap;}#recipe-steps [name=step_day]{min-width:65px;width:85px;}#recipe-steps [name=step_instructions]{min-width:260px;width:100%;}.production-status .status-complete>summary{white-space:nowrap;}
.brew-card .recipe-name-label,.brew-card .recipe-name-input{font-weight:700;text-transform:uppercase;}.recipe-steps-sheet td:first-child{width:84px;min-width:84px;}.recipe-steps-sheet td:nth-child(2){width:19%;min-width:160px;}.recipe-steps-sheet td:nth-child(3){width:155px;}.recipe-steps-sheet td:nth-child(4){width:90px;}.recipe-steps-sheet td:nth-child(5){width:auto;}.recipe-steps-sheet td:last-child{width:42px;}.brew-card .recipe-steps-sheet textarea{width:100%;min-width:260px;min-height:62px;padding:8px;resize:vertical;font:inherit;}.step-row-actions{display:flex;gap:4px;align-items:center;}.brew-card .step-row-actions button{padding:7px 0;min-height:36px;min-width:32px;width:32px;flex:0 0 32px;}.step-row-actions button:disabled{opacity:.35;cursor:default;}.recipe-ingredients-sheet td:first-child{width:25%;}.recipe-ingredients-sheet [name=quantity]{min-width:85px;}.brew-card .optional-ingredient{background:#edf2e8;color:var(--text);}.recipe-field-error{display:block;color:#97362e;font-size:var(--font-label);line-height:1.4;margin-top:4px;}.brew-card [aria-invalid=true]{border:2px solid #bc544b;background:#fff0ed;}.recipe-error-summary{margin-bottom:14px;}.recipe-error-summary ul{margin:8px 0 0;padding-left:20px;}.volume-factor-control{display:flex;gap:6px;align-items:center;}.brew-card .volume-factor-control input{min-width:80px;}.brew-card .volume-factor-control button{margin:0;background:#edf2e8;color:var(--text);padding:7px 9px;white-space:nowrap;}.later-materials{margin:12px 0;padding:12px;background:#edf3f7;border-radius:7px;}.later-materials p{margin:0 0 6px;}.later-materials button{margin:4px 4px 0 0;}.receipt-link-form{flex-wrap:wrap;max-width:190px;}.brew-card .receipt-link-form button{margin:0;padding:5px 8px;background:#edf2e8;color:var(--text);}

@media(max-width:800px){.summary-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}.summary-kpis .summary-stat{min-width:0;}.summary-kpis .summary-stat strong{overflow-wrap:anywhere;}}

/* Production tools share the plan area; transfers follow the process log. */
.production-tools-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:12px;}
.production-tool-section{min-width:0;border-top:1px solid var(--border);padding-top:12px;margin:0;}
.production-tool-section h3{font-size:var(--font-section);font-weight:700;margin:0 0 10px;}
.production-tool-section .details-body{margin:0;padding:0;}
.production-tool-section .brew-meta{margin:0 0 10px;}
.production-tool-section form{margin:0;}
.production-tools-body>.raw-material-panel,.production-tools-body>.production-plan{grid-column:1/-1;}
.production-tools-body>.production-tool-section:first-of-type{border-top:0;padding-top:0;}
.production-tools-body>.production-plan{margin:0;}
.maaling-kort .production-tools{margin:12px 0 0;}
@media(max-width:900px){.production-tools-body{grid-template-columns:minmax(0,1fr);gap:12px;}}

/* The title and actual type share the first line of active production cards. */
.batch-card-heading{display:grid;grid-template-columns:minmax(0,1fr) max-content;align-items:start;gap:8px;}
.batch-card-heading .batch-name{margin:0;min-width:0;overflow-wrap:anywhere;}
.batch-card-heading .badge{white-space:nowrap;margin:0;}
.batch-card .batch-top{margin-top:8px;}
.current-process{margin-top:10px;padding:8px 9px;background:#faf7f2;border-radius:5px;font-size:var(--font-label);line-height:1.45;}
.current-process>strong{display:block;font-size:var(--font-body);font-weight:700;}
.current-process>span{display:block;margin-top:3px;}

.batch-card{display:flex;flex-direction:column;}
.batch-card .batch-meta{flex:1;}
.batch-card .progress-track{flex-shrink:0;}
/* Compact production context, tools, measurements and register pages. */
.production-context{position:sticky;top:0;z-index:15;display:flex;align-items:center;gap:10px;padding:9px 12px;margin:0 0 12px;background:#f3f6ef;border:1px solid var(--border);border-radius:6px;box-shadow:0 2px 5px #0000000c;overflow-wrap:anywhere;}
.production-context>strong{font-size:var(--font-section);min-width:0;}.production-context>.batch-type-badge{flex:none;}
.production-tools-body{display:block;}.production-tool-section{margin:8px 0;padding:0;border:1px solid var(--border);border-radius:6px;background:#fff;}.production-tool-section>summary{padding:9px 12px;font-size:var(--font-section);font-weight:700;cursor:pointer;}.production-tool-section[open]>:not(summary){margin:10px 12px;}.production-tool-section[open]>.details-body{margin:10px 12px;padding:0;}.production-tool-section[open]>form{padding:0;}
.production-log-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:stretch;}.log-measurements{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px;}.production-log-fields label,.log-deviation-field{display:flex;flex-direction:column;gap:4px;margin:0;font-size:var(--font-body);font-weight:600;min-width:0;}.production-log-fields input,.production-log-fields textarea,.log-deviation-field textarea{width:100%;min-width:0;margin:0;padding:7px 8px;font:inherit;border:1px solid var(--border);border-radius:5px;min-height:36px;}.production-log-fields .log-note-field textarea{flex:1;min-height:100px;resize:vertical;}.log-start-check{margin:10px 0 4px;justify-content:flex-start;font-size:var(--font-body);}.log-measurement-help{margin:4px 0 10px;}.log-deviation-field textarea{min-height:55px;resize:vertical;}.local-form-error{padding:10px;background:#ffe6df;border:1px solid #d9897c;border-radius:5px;scroll-margin-top:75px;}input[aria-invalid=true],textarea[aria-invalid=true]{border:2px solid #bd514c;background:#fff4f1;}
.logg-post,.logg-accordion .logg-post{background:#fff;border-color:var(--border);padding:10px;}.logg-data{margin:0 0 8px;gap:8px;align-items:flex-start;}.logg-verdi{background:none;padding:0;font-size:var(--font-body);}.log-history{margin-left:auto;position:relative;font-size:var(--font-body);}.log-history>summary{cursor:pointer;color:#6a6c63;}.log-history>div{padding:8px;overflow-wrap:anywhere;background:#f5f5f0;}
.recorded-log-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 80px;gap:10px;align-items:stretch;}.recorded-log-content>div:not(.logg-handlinger){padding:8px;border-radius:5px;overflow-wrap:anywhere;}.recorded-deviation{background:#fff0ea;}.recorded-note{background:#f4f6f1;}.recorded-log-content strong{font-size:var(--font-body);}.recorded-log-content p{margin:4px 0 0;white-space:pre-wrap;line-height:1.4;font-size:var(--font-body);}.recorded-log-content .logg-handlinger{display:flex;flex-direction:column;gap:6px;margin:0;width:80px;}.recorded-log-content .logg-handlinger button{width:100%;margin:0;padding:7px 5px;min-height:34px;font-size:var(--font-body);background:#e7ede0;color:#3e4f3d;border:1px solid #d7dfce;}.recorded-log-content .logg-handlinger button.slett{background:#f8e3df;border-color:#ebc8c1;color:#854b43;}.rediger-boks,.logg-accordion .rediger-boks{background:#fafaf7;}
.inventory-page-toolbar,.inventory-page-footer{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:10px 0;}.inventory-page-toolbar label{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--font-body);}.inventory-page-toolbar select,.inventory-page-toolbar input{width:auto;min-height:34px;padding:6px;margin:0;}.inventory-page-toolbar input{max-width:200px;}.inventory-page-footer button{margin:0;padding:6px 12px;min-height:34px;}.inventory-page-footer button:disabled{opacity:.45;cursor:default;}.inventory-page-footer span{font-size:var(--font-body);}[id]{scroll-margin-top:65px;}
@media(max-width:700px){.production-context{padding:7px 9px;gap:8px;}.production-context>strong{font-size:var(--font-body);}.production-context>.batch-type-badge{font-size:var(--font-label);}.production-log-fields{grid-template-columns:minmax(0,1fr);gap:10px;}.log-measurements{grid-template-columns:repeat(2,minmax(0,1fr));}.production-log-fields .log-note-field textarea{min-height:70px;}.recorded-log-content{grid-template-columns:minmax(0,1fr) 70px;gap:8px;}.recorded-deviation{grid-column:1;grid-row:1;}.recorded-note{grid-column:1;grid-row:2;}.recorded-log-content .logg-handlinger{grid-column:2;grid-row:1/3;width:70px;}.log-history{margin-left:0;}.production-tool-section[open]>:not(summary){margin:8px;}.inventory-page-toolbar{gap:8px;}.inventory-page-toolbar label{flex-wrap:wrap;}}
.production-context{flex-wrap:wrap;}.context-date{margin-left:auto;font-size:var(--font-body);white-space:nowrap;}.log-save-row{display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:12px;align-items:end;}.log-save-row>.lagre-logg{margin:0;white-space:nowrap;width:auto;align-self:end;}.inventory-page-footer{justify-content:center;}.inventory-page-footer button{padding:5px 10px;min-width:36px;font-family:system-ui,sans-serif;font-size:20px;line-height:1.1;}
@media(max-width:700px){.context-date{margin-left:0;flex-basis:100%;}.log-save-row{gap:8px;}.log-save-row>.lagre-logg{padding:8px;font-size:var(--font-label);}.log-save-row .log-deviation-field{min-width:0;}.log-save-row .log-deviation-field textarea{min-height:65px;}}
.inventory-page-footer{flex-wrap:nowrap;gap:8px;}.inventory-page-footer span{min-width:0;text-align:center;}.inventory-page-footer button{flex:none;}

@media(max-width:370px){.production-log-fields input[type=date]{font-size:var(--font-label);padding-inline:4px;}.production-log-fields input[type=date]::-webkit-datetime-edit{padding:0;}}

/* The shared status panels must not inherit the barrel page's clipped details. */
.brew-page .production-status,.brew-page .production-status .status-action{overflow:visible;}
.brew-page .production-status .status-action{border:0;}
.brew-page .production-status .status-action>summary{padding:8px 10px;list-style:none;}
.brew-page .production-status .status-type:has(>span){min-width:0;flex:0 0 auto;}
.brew-page .inline-material-panel{margin:0;border:0;padding:0;background:transparent;}
.inline-material-panel>h3{font-size:var(--font-section);margin:0 0 10px;}
.inline-material-panel>.details-body{padding:0;}

/* A single responsive summary, with the name first and the date kept readable. */
.brew-page details.prosess-steg>summary{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--step-summary-bg);color:var(--text);}
.brew-page details.prosess-steg.step-pending{--step-summary-bg:#eeeeec;border-color:#d9dcd7;}
.brew-page details.prosess-steg.step-active{--step-summary-bg:#e1efdf;border-color:#bed5ba;}
.brew-page details.prosess-steg.step-complete{--step-summary-bg:#e3ebf1;border-color:#c4d1dc;}
.brew-page details.prosess-steg>summary .process-step-name{flex:1;min-width:0;overflow-wrap:anywhere;line-height:1.4;}
.brew-page details.prosess-steg>summary .process-step-date{flex:none;margin-left:auto;font-size:var(--font-label);font-weight:400;white-space:nowrap;}
.brew-page details.prosess-steg>summary::after{flex:none;content:"▸";font-size:var(--font-body);color:#58695e;}
.process-step-status{margin:0 0 10px;color:var(--muted);font-size:var(--font-label);}
.barrel-transfer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start;margin-bottom:18px;}
.barrel-transfer-grid>details{margin:0;min-width:0;}
.barrel-transfer-grid .brew-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.barrel-transfer-grid .brew-table-wrap{max-width:100%;overflow-x:auto;}
.document-resources{gap:16px;margin-bottom:20px;}
.document-resources>.document-resource-card{margin:0;padding:18px;border:1px solid var(--border);border-radius:8px;background:white;}
@media(max-width:900px){.barrel-transfer-grid{grid-template-columns:1fr;}}
@media(max-width:700px){
 .brew-page details.prosess-steg>summary{display:grid;grid-template-columns:minmax(0,1fr) 16px;gap:4px 10px;align-items:start;}
 .brew-page details.prosess-steg>summary .process-step-name{grid-column:1;grid-row:1;}
 .brew-page details.prosess-steg>summary .process-step-date{grid-column:1;grid-row:2;margin:0;white-space:normal;}
 .brew-page details.prosess-steg>summary::after{grid-column:2;grid-row:1/3;align-self:center;}
 .document-resources>.document-resource-card+section{padding:18px;border-top:1px solid var(--border);}
}

}

/* components.css */
@layer foundation,pages,components,interface,layout;
@layer interface {
  :root {
    --font-heading:22px; --font-section:16px; --font-body:14px; --font-label:12px;
    --step-idle:#f4f5f1; --step-working:#e4efdf; --step-done:#e5ecf2;
    --failed-bg:#f8dddd; --failed-edge:#d5aaa6; --failed-text:#743a35;
    --control-height:36px; --disclosure-gap:12px;
  }
  body {margin:0;padding:0;background:var(--bg,#f7f5f0);font-size:var(--font-body);line-height:1.45;}
  h1 {font-size:var(--font-heading);font-weight:700;}
  h2,h3 {font-size:var(--font-section);font-weight:700;}
  h4,button,.brew-button {font-size:var(--font-body);font-weight:700;}
  label,input,select,textarea,p,td {font-size:var(--font-body);}
  .brew-meta,.dempa,.log-history,.page-help {font-size:var(--font-label);font-weight:400;}
  input,select {min-height:var(--control-height);}
  [hidden] {display:none;}
  .brew-page {max-width:1300px; margin:auto;padding:16px;}
  .brew-page :is(.kort,.brew-card) {margin-bottom:var(--disclosure-gap);}
  .brew-page :is(.kort,.brew-card):not(details) {background:#fff;}
  .brew-page > :is(.stats,.stat-grid) > :is(.stat,.stat-kort) {background:#fff;}
  .brew-page details:not(.brew-menu,.brew-account) {background:#fff;}
  .brew-page details:is(.kort,.brew-card,.top-accordion,.compact-disclosure,.prosess-steg,.logg-accordion,.log-accordion,.production-tool-section) {
    padding:0;margin:0 0 var(--disclosure-gap);border:1px solid var(--border,#deddd4);border-radius:7px;background:white;overflow:visible;
  }
  .brew-page details:not(.brew-menu,.brew-account)>summary {min-height:44px;box-sizing:border-box;padding:11px 14px;display:flex;align-items:center;gap:10px;list-style:none;cursor:pointer;font-size:var(--font-body);font-weight:700;line-height:20px;background:#fff;border-radius:6px;}
  .brew-page :where(.kort,.brew-card,.rapport-detaljer,.details-body,.production-tools-body) details:not(.brew-menu,.brew-account)>summary {background:var(--bg,#f7f5f0);}
  .brew-page details:not(.brew-menu,.brew-account)>summary::-webkit-details-marker {display:none;}
  .brew-page details:not(.brew-menu,.brew-account)>summary::after {content:"";display:block;flex:0 0 7px;width:7px;height:7px;margin-left:auto;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .12s;}
  .brew-page details:not(.brew-menu,.brew-account)[open]>summary::after {transform:rotate(225deg);}
  .brew-page details:not(.brew-menu,.brew-account)[open]>summary {border-radius:6px 6px 0 0;}
  .brew-page details>:is(.details-body,.detalj-innhold,.steg-innhold,.rapport-innhold,.form-content,.logg-accordion-innhold,.production-tools-body) {padding:14px;}
  .brew-page details>:is(.details-body,.detalj-innhold,.rapport-innhold,.form-content,.production-tools-body)>:first-child {margin-top:0;}
  .brew-page details>:is(.details-body,.detalj-innhold,.rapport-innhold,.form-content,.production-tools-body)>:last-child {margin-bottom:0;}
  .brew-page :is(.batch-status,.chart-note)+details {margin-top:var(--disclosure-gap);}
  .brew-page details>form:not(.status-popup) {padding:14px;}
  .brew-page .prosess-steg.step-active>summary {background:var(--step-working);color:#4a453e;}
  .brew-page .prosess-steg.step-complete>summary {background:var(--step-done);color:#4a453e;}
  .brew-page .prosess-steg.step-pending>summary {background:var(--step-idle);color:#4a453e;}
  .process-step-name {min-width:0;flex:1;overflow-wrap:anywhere;}
  .process-step-date {flex:none;white-space:nowrap;margin-left:auto;font-weight:400;font-size:var(--font-label);}
  .step-outcome {flex:none;font-size:var(--font-label);font-weight:400;}
  .step-order-tools {display:none;gap:3px;flex:none;}
  .production-log[data-reordering=true] .step-order-tools {display:flex;}
  .step-order-tools button {min-width:28px;min-height:28px;width:28px;height:28px;margin:0;padding:2px;border:1px solid #c6cdc2;border-radius:4px;background:white;color:#4a453e;}
  .step-order-tools button:disabled {opacity:.35;cursor:default;}
  .process-order-heading {justify-content:flex-end;margin:0 0 8px;}
  .step-state-actions {margin-top:12px;gap:8px;align-items:center;flex-wrap:wrap;}
  .step-state-actions form {margin:0;}
  .brew-page .step-state-actions .fullfoer {width:auto;margin:0;padding:8px 12px;background:#7f987b;color:#fff;}
  .brew-page .step-state-actions .fullfoer:hover {background:#6d8669;}
  .brew-page .new-production-log {margin:12px 0 0;padding:14px;border:1px solid var(--border,#deddd4);border-radius:7px;background:#f8f7f2;}
  .brew-page .new-production-log h3 {margin:0 0 12px;}
  .brew-page .production-status {position:relative;margin-top:14px;overflow:visible;}
  .brew-page .production-status .status-action {border:0;margin:0;background:transparent;}
  .brew-page .production-status .status-action>summary {min-height:36px;padding:7px 10px;border:1px solid var(--border);border-radius:5px;font-weight:700;white-space:nowrap;}
  .brew-page .production-status .status-action.status-failed>summary,
  .brew-page .danger-button {background:var(--failed-bg);color:var(--failed-text);border:1px solid var(--failed-edge);}
  .brew-page .production-status .status-action.status-complete>summary {background:#e1edf7;color:#38566d;border-color:#bfd2e2;}
  .brew-page .production-summary-button,.brew-page .status-archive button {background:#dcebd5;color:#4a453e;border:1px solid #bed1b5;font-weight:700;}
  .disclosure-arrow {display:none;}
  .status-controls {display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start;padding:12px;}
  .production-status>.details-body>.status-controls {padding:0;align-items:center;}
  .production-status .status-type-fields>label {margin:0;}
  .production-status .status-type-fields select {margin:0;min-height:var(--control-height);}
  .status-controls .status-group {padding:0 10px 0 0;border-right:1px solid var(--border);}
  .status-controls .status-group:last-child {border-right:0;padding-right:0;}
  .status-popup {z-index:30;box-shadow:0 5px 20px #23302524;}
  .brew-page .failure-panel,.failure-review .brew-warning {background:var(--failed-bg);color:var(--failed-text);border:1px solid var(--failed-edge);padding:12px;border-radius:6px;}
  .brew-page .production-log-fields {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:stretch;}
  .brew-page .log-measurements {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
  .brew-page .production-log-fields label {margin:0;min-width:0;font-weight:400;}
  .brew-page .production-log-fields :is(input,textarea) {margin:4px 0 0;}
  .brew-page .log-note-field textarea {height:calc(100% - 24px);min-height:100px;}
  .brew-page .log-save-row {display:grid;grid-template-columns:minmax(0,1fr) 145px;gap:12px;align-items:end;margin-top:10px;}
  .brew-page .log-save-row button {width:100%;margin:0 0 4px;}
  .brew-page .recorded-log-content {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 78px;gap:10px;align-items:start;}
  .brew-page .recorded-deviation,.brew-page .recorded-note {border:1px solid var(--border);border-radius:5px;padding:9px 10px;min-height:66px;}
  .brew-page .recorded-deviation {background:#fbefeb;}
  .brew-page .recorded-note {background:#f8f6e8;}
  .recorded-log-content p {margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;}
  .brew-page .logg-handlinger {display:flex;flex-direction:column;gap:6px;margin:0;}
  .brew-page .logg-handlinger :is(button,form) {width:100%;margin:0;}
  .brew-page .logg-handlinger button {min-height:32px;padding:5px;}
  .brew-page .logg-post {margin:0 0 12px;padding:0 0 12px;border:0;border-bottom:1px solid var(--border);background:transparent;}
  .brew-page .logg-data {display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;margin-bottom:8px;}
  .brew-page .log-history {margin:0;border:0;}
  .brew-page .log-history>summary {padding:3px 5px;min-height:24px;font-size:var(--font-label);font-weight:400;background:transparent;}
  .brew-page .log-history>div {padding:7px;}
  .brew-page .status-kort .label,.brew-page .stat-kort .stat-label,.brew-page .kpi-label,.brew-page .stat :is(.label,.stat-label),.brew-page .stat-card :is(p,.label,.stat-label),.brew-page .metric-label,.brew-page .stat-label {font-size:var(--font-body);font-weight:400;text-transform:none;line-height:20px;}
  .brew-page .status-kort .verdi,.brew-page .stat-kort .stat-verdi,.brew-page .stat :is(.verdi,.value),.brew-page .stat-card :is(.verdi,.value) {font-size:var(--font-heading);font-weight:700;}
  .inventory-page-footer {display:flex;justify-content:center;align-items:center;gap:16px;margin:12px auto 0;}
  .inventory-page-footer button {width:36px;height:36px;min-height:36px;padding:4px;}
  .inventory-page-toolbar {display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:10px 0;}
  .chart-legend input {width:14px;min-width:14px;height:14px;min-height:14px;flex:none;padding:0;margin:0;accent-color:#355e49;}
  .bottling-packaging {background:var(--bg,#f7f5f0);}
  .bottling-packaging :is(.bottle-component,.packaging-component) {padding:10px 0;margin:0;border-top:1px solid var(--border);}
  .bottling-packaging .packaging-fields {display:grid;grid-template-columns:minmax(0,1fr) repeat(2,100px);gap:10px;align-items:end;}
  .bottling-packaging .packaging-fields.bottle-fields {grid-template-columns:minmax(0,1fr) repeat(3,100px);}
  .bottling-packaging .packaging-fields.extra-fields {grid-template-columns:minmax(0,1fr) repeat(2,100px) auto;}
  .bottling-packaging .packaging-fields .packaging-item-field {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;}
  .bottling-packaging .packaging-fields label {display:block;margin:0;font-weight:400;min-width:0;}
  .bottling-packaging .packaging-fields :is(input,select) {width:100%;height:36px;min-height:36px;padding:7px 8px;margin:4px 0 0;min-width:0;}
  .bottling-packaging .packaging-fields button {min-height:36px;height:36px;margin:0;padding:6px 8px;white-space:nowrap;}
  .bottling-packaging .packaging-part-button {background:#e7efdf;color:#3d573e;}
  .bottling-packaging .packaging-fields [data-remove-extra] {width:36px;padding:4px;}
  .bottling-packaging .packaging-component.invalid :is(select,input) {border-color:var(--failed-edge);}
  .bottling-packaging [data-add-extra],.bottling-packaging [data-add-bottle] {margin-top:10px;}
  .inventory-page-toolbar label {display:flex;align-items:center;gap:8px;margin:0;}
  .inventory-page-toolbar :is(select,input) {margin:0;width:auto;max-width:220px;}
  .inventory-page-toolbar select {min-width:78px;}
  .local-form-error,.dialog-error {padding:10px 12px;border:1px solid #d7aaa4;border-radius:5px;color:#793c35;background:#fbe9e5;}
  [aria-invalid=true] {border-color:#a14a40;outline:1px solid #a14a40;}
  .brew-dialog .dialog-header h2 {font-size:var(--font-section);font-weight:700;}
  .brew-dialog .dialog-header,.brew-dialog .dialog-footer {padding:12px 16px;}
  .brew-dialog .dialog-body {padding:16px;}
  .brew-dialog .dialog-error {scroll-margin:20px;}
  .brew-page :is(button,a,input,select,textarea,summary):focus-visible {outline:3px solid #7a9db5;outline-offset:3px;}
  .demo-banner {display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
  .demo-banner form {margin:0 0 0 auto;}
  .demo-banner button {min-height:32px;padding:4px 10px;}
  @media(max-width:700px) {
    .brew-page {padding:8px;}
    .brew-page .prosess-steg>summary {display:grid;grid-template-columns:minmax(0,1fr) 14px;gap:3px 8px;}
    .brew-page .prosess-steg>summary .process-step-name {grid-column:1;}
    .brew-page .prosess-steg>summary .process-step-date {grid-column:1;grid-row:2;margin:0;}
    .brew-page .prosess-steg>summary .step-outcome {grid-column:1;grid-row:3;}
    .brew-page .prosess-steg>summary::after {grid-column:2;grid-row:1/3;align-self:center;}
    .production-log[data-reordering=true] .prosess-steg>summary {grid-template-columns:62px minmax(0,1fr) 14px;}
    .production-log[data-reordering=true] .step-order-tools {grid-column:1;grid-row:1/3;}
    .production-log[data-reordering=true] .prosess-steg>summary :is(.process-step-name,.process-step-date) {grid-column:2;}
    .production-log[data-reordering=true] .prosess-steg>summary::after {grid-column:3;}
    .brew-page .production-log-fields {grid-template-columns:1fr;}
    .brew-page .log-measurements {grid-template-columns:repeat(2,minmax(0,1fr));}
    .brew-page .log-note-field textarea {height:88px;min-height:88px;}
    .brew-page .log-save-row {grid-template-columns:minmax(0,1fr) 128px;gap:8px;}
    .brew-page .recorded-log-content {grid-template-columns:minmax(0,1fr) minmax(0,1fr) 64px;gap:6px;}
    .brew-page .recorded-log-content :is(.recorded-deviation,.recorded-note) {padding:7px;}
    .status-controls {gap:8px;}
    .status-popup {position:static;width:100%;box-shadow:none;}
    .inventory-page-toolbar {gap:8px;}
    .bottling-packaging .packaging-fields,.bottling-packaging .packaging-fields.bottle-fields,.bottling-packaging .packaging-fields.extra-fields {grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
    .bottling-packaging .packaging-item-field {grid-column:1/-1;}
    .bottling-packaging .packaging-fields .packaging-item-field {gap:6px;}
    .bottling-packaging .packaging-part-button {width:32px;padding:4px;}
    .bottling-packaging .packaging-part-button span {display:none;}
    .bottling-packaging .packaging-part-button::after {content:"⋯";font-size:20px;line-height:1;}
  }
  @media(prefers-reduced-motion:reduce) {.brew-page details:not(.brew-menu,.brew-account)>summary::after {transition:none;}}
}

/* layout-system.css */
@layer foundation,pages,components,interface,layout;
@layer layout {
  html {scrollbar-gutter:stable;overflow-y:scroll;}
  :root {
    --item-buffer:6px;
    --field-gap:12px;
    --section-gap:12px;
    --disclosure-gap:12px;
    --card-padding:16px;
    --radius:6px;
    --card-green:#b8ceb2;
    --bg:#e7e9e8;
    --border:#d4d8d3;
  }
  /* Each neighbouring card contributes a six-pixel outer buffer. */
  .brew-page {max-width:1300px;padding:6px;display:flex;flex-direction:column;}
  .brew-page>:is(.login-panel,.account-panel) {align-self:center;width:calc(100% - 12px);}
  .production-log {display:flex;flex-direction:column;}
  .brew-page :is(.kort,.brew-card,.batch-card,.fat,.stat,.stat-kort,.stat-card,.status-kort,.maaling-stat,.brewery-stat,.fat-action-card,.document-tile,.document-card,.recipe-card,.new-production-log) {
    min-width:0;margin:6px;padding:16px;border-radius:6px;
  }
  .brew-page :is(.stats,.stat-grid,.batch-grid,.recipe-list,.fat-action-grid,.brewery-status-grid,.document-system-grid,.document-resources,.document-list,.batch-status,.maaling-stat-grid,.archive-grid,.production-tools-body) {gap:0;margin:0;}
  .brew-page :is(.grid,.brew-grid,.batch-bottom-grid):has(>:is(.kort,.brew-card,.fat,.stat,.document-card)) {gap:0;}
  .brew-page .grid:has(>.fat) {align-items:stretch;grid-auto-rows:1fr;}
  .brew-page :is(.kort,.brew-card):has(>:is(.batch-grid,.recipe-list,.document-list,.stats,.stat-grid,.brew-grid,.brewery-status-grid))>:is(h2,h3,.library-heading) {margin-inline:6px;}
  .brew-page :is(.brew-grid,.new-batch-grid,.plan-grid,.production-log-fields,.log-measurements,.log-save-row,.bottling-details,.bottling-notes,.liquid-loss-row,.consumption-create,.packaging-create-row,.admin-frist-grid,.brew-row,.analyse-grid,.barrel-transfer-grid,.checklist,.deadline-create-row,.deadline-edit-row,.dialog-grid,.fat-stats,.graf-rad,.kontakt-grid,.parties,.plan-date-row,.plan-step,.recipe-intro-columns,.salgslinje,.to-kolonner,.tre-kolonner) {gap:12px;}
  .brew-page :is(.kort,.brew-card,.stat,.stat-kort,.stat-card,.status-kort,.brewery-stat,.fat-action-card)>:first-child {margin-top:0;}
  .brew-page :is(.kort,.brew-card,.stat,.stat-kort,.stat-card,.status-kort,.brewery-stat,.fat-action-card)>:last-child {margin-bottom:0;}
  .brew-page :is(.brew-card,.kort) input:not([type=checkbox]):not([type=radio]),
  .brew-page :is(.brew-card,.kort) :is(select,textarea) {border-radius:4px;}
  .brew-page :is(button,.brew-button,.knapp,.badge,.mini-badge,.batch-type-badge,.failed-badge) {border-radius:4px;}
  .brew-page :is(.recorded-note,.recorded-deviation,.bottling-packaging,.plan-step,.current-process,.production-context,.brew-warning,.brew-error,.brew-success,.failure-panel) {padding:16px;border-radius:6px;}
  .brew-page .production-context {margin:6px 6px 12px;}
  .brew-page .brewery-stat:nth-child(n) {padding:16px;border:1px solid #d8d9d0;}
  .brew-page details:not(.brew-menu,.brew-account,.brew-admin) {border-radius:6px;}
  .brew-page details:is(.kort,.brew-card,.top-accordion,.compact-disclosure,.prosess-steg,.logg-accordion,.log-accordion,.production-tool-section) {margin:6px;padding:0;border-radius:6px;}
  .brew-page details:not(.brew-menu,.brew-account,.brew-admin)>summary {padding:16px;min-height:52px;border-radius:5px;gap:12px;}
  .brew-page details:not(.brew-menu,.brew-account,.brew-admin)[open]>summary {border-radius:5px 5px 0 0;}
  .brew-page details>:is(.details-body,.detalj-innhold,.steg-innhold,.rapport-innhold,.form-content,.logg-accordion-innhold,.production-tools-body) {padding:16px;}
  .brew-page details>form:not(.status-popup) {padding:16px;}
  .brew-page .production-status .status-action {margin:0;}
  .brew-page .production-status .status-action>summary {padding:8px 12px;min-height:36px;border-radius:4px;}
  .brew-page .status-controls {gap:12px;}
  .brew-page .production-status>.details-body>.status-controls {padding:0;}
  
  .brew-page .bottling-packaging .packaging-fields {gap:12px;}
  .brew-page .bottling-packaging .packaging-fields .packaging-item-field {gap:12px;}
  .brew-page .bottling-packaging .packaging-fields :is(input,select) {margin:6px 0 0;}
  .brew-page .bottling-packaging .packaging-fields button {margin:0;}
  .brew-page :is(.sheet-table,.brew-table) :is(th,td) {padding:6px;}
  .brew-page :is(.sheet-table,.brew-table) :is(input,select,textarea) {margin:0;}
  .brew-page :is(.page-help,.help-link) {margin:16px;}
  .brew-dialog {border-radius:6px;}
  .brew-dialog :is(.dialog-header,.dialog-body,.dialog-footer) {padding:16px;}
  .brew-dialog .dialog-grid {gap:12px;}
  .brew-dialog .dialog-disclosure {margin:6px 0;padding:16px;border-radius:6px;}
  .brew-dialog .prep-card {margin:6px;padding:16px;border-radius:6px;}
  .brew-dialog :is(input,select,textarea,button) {border-radius:4px;}

  /* Low image banners, followed by one compact content area. */
  .brew-page .batch-card {
    padding:0;border:3px solid var(--card-edge,#b8ceb2);background:#fff;
    overflow:hidden;color:var(--text);display:flex;flex-direction:column;
  }
  .brew-page .batch-card:hover {filter:brightness(.99);}
  .batch-banner {height:96px;flex:none;background-size:auto 100%;background-repeat:no-repeat;position:relative;}
  .batch-banner-bubbles {background-color:#f9df98;background-image:url("brew-bubbles.webp");background-position:right center;}
  .batch-banner-wood {background-color:#e9d6ba;background-image:url("brew-barrel.webp");background-size:auto 100%;background-position:right center;}
  .batch-card-body {display:flex;flex-direction:column;gap:12px;padding:16px;flex:1;min-width:0;}
  .brew-page .document-card {padding:0;}
  .brew-page .document-copy {padding:16px;}
  .brew-page .batch-card-heading {position:relative;z-index:1;display:flex;flex-direction:column;align-items:start;justify-content:center;gap:4px;padding:12px 16px;height:100%;}
  .brew-page .batch-card-heading .batch-name {display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0;color:#4a453e;line-height:1.1;text-shadow:none;min-width:0;flex:0 1 auto;background:transparent;border:0;border-radius:0;padding:0;}
  .brew-page .batch-card .batch-meta {margin:0;}
  .brew-page .batch-card .current-process {margin:0;padding:16px;background:var(--bg);}
  .progress-row {display:flex;align-items:center;gap:12px;}
  .brew-page .progress-row .progress-track {margin:0;flex:1;height:8px;border-radius:3px;}
  .brew-page .batch-card .progress-fill {background:var(--progress-color,#a6c3a0);}
  .progress-value {flex:none;min-width:42px;text-align:right;font-variant-numeric:tabular-nums;}
  .brew-page .fat {border:1px solid var(--border);overflow:hidden;background:#fff;}
  .brew-page .fat-stats {gap:0;}
  .brew-page .fat-stats>.mini {margin:6px;padding:16px;border-radius:6px;min-width:0;overflow-wrap:anywhere;}
  .brew-page .fat .source-list {margin:6px;padding:16px;border-radius:6px;}
  .fat-card-banner {position:relative;display:flex;align-items:center;min-height:64px;margin:-16px -16px 16px;}

  /* One outer panel, three plain columns, then one disclosure per task. */
  .brew-page .paminnelser-grid {gap:12px;}
  .brew-page .paminnelse-kolonne {padding:0;border:0;background:transparent;border-radius:0;overflow:visible;min-width:0;}
  .brew-page .paminnelse-kolonne>h3 {padding:0 6px 12px;margin:0;border:0;background:transparent;}
  .brew-page .paminnelse-liste {padding:0;}
  .brew-page .paminnelse {margin:0 0 12px;padding:0;border:1px solid var(--border);background:white;border-radius:6px;}
  .brew-page .paminnelse>summary {position:static;padding:16px;gap:12px;}
  .brew-page .paminnelse>summary::after {position:static;content:"";width:7px;height:7px;flex:0 0 7px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg);}
  .brew-page .paminnelse[open]>summary::after {transform:rotate(225deg);}
  .reminder-heading {display:flex;flex-direction:column;gap:6px;min-width:0;overflow-wrap:anywhere;}
  .reminder-heading>span {font-size:var(--font-label);font-weight:400;color:#716a61;}
  .reminder-count {font-size:var(--font-label);font-weight:400;white-space:nowrap;}
  .brew-page .paminnelse .reminder-detail {padding:16px;border-top:1px solid var(--border);}
  .reminder-occurrence {padding:0 0 12px;margin:0 0 12px;border-bottom:1px solid var(--border);}
  .reminder-occurrence:last-child {padding-bottom:0;margin-bottom:0;border-bottom:0;}
  .brew-page .paminnelse-meta {margin:0;}
  .paminnelse-meta p {margin:6px 0 0;}
  .reminder-overdue {margin-left:6px;color:#8a4942;}
  .brew-page .paminnelse-actions {gap:12px;margin-top:12px;}
  .paminnelse-actions form {margin:0;}

  /* Full-width white header; only the inner menu has a maximum width. */
  .brew-header {height:85px;background:#fff;box-shadow:inset 0 -1px var(--border);}
  .brew-header .brew-nav {
    width:100%;max-width:1300px;height:85px;min-height:85px;max-height:85px;
    margin:0 auto;padding:0 16px;display:flex;align-items:center;flex-wrap:nowrap;gap:12px;
    border:0;border-radius:0;background:transparent;position:relative;overflow:visible;
    font-size:var(--font-body);font-family:inherit;line-height:1.35;z-index:20;
  }
  .brew-header .brew-brand {display:flex;align-items:center;gap:12px;flex:none;padding:0;margin:0;background:#fff;}
  .brew-header .brew-brand img {display:block;width:53px;height:53px;max-width:53px;object-fit:contain;}
  .brew-header .brew-menu {order:0;flex:1;flex-basis:auto;min-width:0;margin:0;padding:0;border:0;background:transparent;}
  .brew-header :is(.brew-admin,.brew-account) {display:block;position:relative;flex:none;width:auto;margin:0;padding:0;border:0;background:transparent;}
  .brew-header .brew-admin {margin-left:auto;}
  .brew-header .admin-label-short {display:none;}
  .brew-header details>summary {display:flex;align-items:center;gap:8px;padding:8px 12px;min-height:38px;cursor:pointer;list-style:none;white-space:nowrap;border:1px solid var(--border);border-radius:4px;font-size:var(--font-body);font-weight:700;}
  .brew-header details>summary::-webkit-details-marker {display:none;}
  .brew-header :is(.brew-admin,.brew-account)>summary::after {content:"";width:6px;height:6px;flex:none;margin-left:4px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);}
  .brew-header :is(.brew-admin,.brew-account)[open]>summary::after {transform:rotate(225deg);}
  .brew-header :is(summary.is-current,a[aria-current]) {background:#eaf0e7;}
  .brew-header .brew-links {justify-content:flex-start;gap:0;}
  .brew-header .brew-links>a {padding:8px 12px;border-radius:4px;white-space:nowrap;font-size:var(--font-body);font-weight:700;}
  .brew-header .brew-links>a::before {display:none;}
  .brew-header .brew-links>a+a {border-left:1px solid var(--border);}
  .brew-header .nav-options {position:absolute;top:calc(100% + 12px);right:0;min-width:190px;padding:6px;background:#fff;border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #00000012;}
  .brew-header .nav-options :is(a,button) {display:block;width:100%;height:auto;margin:0;padding:12px 16px;border:0;border-radius:4px;background:transparent;color:var(--text);text-align:left;text-decoration:none;font-size:var(--font-body);font-weight:400;}
  .brew-header .nav-options :is(a,button):hover {background:var(--bg);}
  .brew-header .nav-options form {margin:0;}
  .brew-header .account-name {max-width:140px;overflow:hidden;text-overflow:ellipsis;}
  .brew-header .user-symbol {display:none;flex:none;}
  .brew-header .menu-symbol {font-size:19px;line-height:1;}
  .brew-header .brew-nav[data-nav-mode=expanded] .brew-menu>summary {display:none;}
  .brew-header .brew-nav[data-nav-mode=expanded] .brew-links {display:flex;position:static;padding:0;border:0;background:transparent;box-shadow:none;}
  .brew-header .brew-nav[data-nav-mode=collapsed] .brew-menu>summary {display:flex;width:max-content;}
  .brew-header .brew-nav[data-nav-mode=collapsed] .brew-menu:not([open]) .brew-links {display:none;}
  .brew-header .brew-nav[data-nav-mode=collapsed] .brew-menu[open] .brew-links {display:flex;flex-wrap:wrap;justify-content:flex-start;position:absolute;top:85px;left:6px;right:6px;padding:16px;border:1px solid var(--border);border-radius:0 0 6px 6px;background:#fff;box-shadow:0 4px 12px #00000012;}
  .brew-header .brew-nav[data-measuring] .brew-menu .brew-links {display:flex;position:fixed;top:0;left:-10000px;right:auto;width:max-content;max-width:none;visibility:hidden;flex-wrap:nowrap;padding:0;border:0;box-shadow:none;}
  .brew-header :is(a,button,summary):focus-visible {outline:3px solid #7a9db5;outline-offset:3px;}
  @media(max-width:700px) {
    .brew-page .batch-card-heading .batch-name {font-size:var(--font-section);line-height:1.3;}
    .brew-page .bottling-packaging .packaging-fields {gap:12px;}
    .brew-page .production-log-fields,.brew-page .batch-bottom-grid {grid-template-columns:1fr;}
    .brew-page .recorded-log-content {gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 64px;}
    .brew-page .recorded-log-content :is(.recorded-note,.recorded-deviation) {padding:16px;}
    .brew-page .prosess-steg>summary {gap:6px 12px;}
    .batch-banner {height:96px;}
  }
  @media(max-width:600px) {
    .brew-header .brew-nav {gap:6px;}
    .brew-header .brew-brand {flex-direction:column;gap:0;}
    .brew-header .brew-brand img {width:32px;height:32px;max-width:32px;}
    .brew-header .brew-nav[data-nav-mode=collapsed] .brew-menu {min-width:38px;}
    .brew-header .account-name {display:none;}
    .brew-header .user-symbol {display:block;}
    .brew-header .brew-account>summary {padding:8px;}
    .brew-header .brew-account>summary::after {display:none;}
    .brew-header .menu-label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
    .brew-header .brew-menu>summary {padding:8px;}
    .brew-header .brew-admin>summary {padding:8px;}
  }
  @media(max-width:380px) {
    .brew-header .brew-nav {padding:0 8px;--font-body:14px;--font-action:14px;}
    .brew-header .admin-label-full {display:none;}
    .brew-header .admin-label-short {display:inline;}
    .brew-header .brew-admin>summary {padding:8px 6px;gap:6px;}
  }
  @media print {.brew-header {display:none;}}
  .brew-page .dashboard-active-section {background:#eaf0e7;}
  .brew-page .dashboard-new-batch-section,
  .brew-page .dashboard-new-batch-section>summary {background:#f1f2d9;}
  .brew-page .dashboard-new-batch-section>form {margin:0;background:#fff;border-radius:0 0 5px 5px;}
  .brew-page .batch-grid {grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;}
  .brew-page .batch-card.hoved {--card-edge:#b8ceb2;--progress-color:#a6c3a0;}
  .brew-page .batch-card.soster {--card-edge:#dac6b0;--progress-color:#efb397;}
  .brew-page .batch-card.fatparti {--card-edge:#bccddd;--progress-color:#91bddc;}
  .brew-page .batch-card-heading .badge {position:static;flex:none;white-space:nowrap;background:var(--card-edge);border:0;color:#4a453e;margin:0;padding:3px 7px;font-size:var(--font-label);font-weight:400;text-shadow:none;}
  .active-card-facts {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px 16px;margin:0;}
  .active-card-facts>div {min-width:0;}
  .active-card-facts dt {font-size:var(--font-label);color:#687267;margin:0 0 4px;}
  .active-card-facts dd {margin:0;font-size:var(--font-body);line-height:1.35;overflow-wrap:anywhere;}
  .active-card-facts dd>small,.next-process dd>span {display:block;font-size:var(--font-label);font-weight:400;margin-top:4px;}
  .next-process strong {display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .progress-unplanned {font-size:var(--font-label);color:#687267;min-height:20px;}
  .brew-page .fat {border:3px solid var(--card-edge,#ccd2c8);}
  .brew-page .fat.ledig {--card-edge:#b8ceb2;}
  .brew-page .fat.i-bruk {--card-edge:#bccddd;}
  .brew-page .fat.vedlikehold {--card-edge:#d8c496;}
  .brew-page .fat.klargjøring {--card-edge:#cec1df;}
  .barrel-image-title {position:relative;z-index:1;font-size:var(--font-heading);font-weight:700;line-height:1.1;text-decoration:none;overflow-wrap:anywhere;}
  a.barrel-image-title:hover {text-decoration:underline;}
  .brew-page .paminnelse>summary {white-space:nowrap;min-height:44px;padding:10px 16px;}
  .brew-page .paminnelse .reminder-heading {display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-body);}
  .reminder-occurrence .paminnelse-meta>strong {display:block;margin-bottom:6px;}
  .brew-page details>:is(.details-body,.detalj-innhold,.steg-innhold,.rapport-innhold,.form-content,.logg-accordion-innhold,.production-tools-body) {margin:0;}
  .brew-page :where(.kort,.brew-card,.fat,.details-body,.production-tools-body) details:not(.status-action) {margin:6px;}
  .brew-page :where(.kort,.brew-card,.fat,.details-body,.production-tools-body) details:not(.prosess-steg,.status-action)>summary {padding:10px 16px;min-height:44px;}
  .brew-page :where(.kort,.brew-card,.fat,.details-body,.production-tools-body) details:not(.prosess-steg,.status-action)>summary {background:#f4f5f1;}
  .brew-page :is(.batch-status,.chart-note)+details {margin-top:12px;}
  .brew-page .fat.barrel-card {display:flex;flex-direction:column;min-height:340px;padding:0;cursor:pointer;}
  .brew-page .barrel-card .fat-card-open {display:block;flex:none;width:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--text);text-align:left;font:inherit;cursor:pointer;}
  .brew-page .barrel-card .fat-card-open:hover {background:#fafcf8;}
  .barrel-card .fat-card-banner {width:100%;height:96px;min-height:96px;margin:0;background-repeat:no-repeat;}
  .barrel-card-body {padding:16px;flex:1;}
  .barrel-card-facts,.barrel-lot-facts {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:100%;margin:0;padding:0;}
  :is(.barrel-card-facts,.barrel-lot-facts)>div {min-width:0;background:transparent;}
  :is(.barrel-card-facts,.barrel-lot-facts) dt {font-size:var(--font-label);font-weight:400;margin:0 0 4px;color:#687267;}
  :is(.barrel-card-facts,.barrel-lot-facts) dd {overflow-wrap:anywhere;font-size:var(--font-body);line-height:1.35;margin:0;}
  .barrel-current-lot {padding-top:14px;margin-top:14px;border-top:1px solid var(--border);}
  .barrel-current-lot>a {display:block;margin-bottom:10px;overflow-wrap:anywhere;}
  .barrel-card .barrel-empty {margin:16px 0 0;}
  .brew-page .barrel-card .barrel-more {flex:none;align-self:start;margin:0;padding:12px 16px 16px;max-width:100%;border:0;background:transparent;color:#45674c;text-align:left;font-size:var(--font-label);font-weight:400;}
  .brew-page .barrel-card .barrel-more:hover {text-decoration:underline;}
  .barrel-details-dialog .barrel-details-meta {margin:0 0 16px;}
  .barrel-details-dialog .dialog-body>details {margin:6px 0;border:1px solid var(--border);border-radius:6px;}
  .barrel-details-dialog .dialog-body>details>summary {padding:10px 16px;background:#f4f5f1;min-height:44px;}
  .barrel-details-dialog .dialog-body>details>form {margin:0;padding:16px;}
  .barrel-details-dialog .barrel-history {padding:0 16px 16px;overflow:auto;}
  html:has(dialog[open]),body:has(dialog[open]) {overflow:hidden;}
  .brew-dialog .dialog-disclosure {margin:12px 0 0;padding:12px 0 0;border-radius:0;}
  .brew-dialog .dialog-close {font-size:30px;line-height:1;width:44px;height:44px;min-width:44px;min-height:44px;display:grid;place-items:center;padding:0;}
  .brew-dialog form>button[type=submit] {margin-top:12px;}
  .brew-dialog .dialog-grid {align-items:end;row-gap:18px;}
  .brew-dialog .dialog-grid>label,.brew-dialog .receipt-footer>label,.receipt-unit-summary {display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;font-size:var(--font-label);line-height:16px;}
  .brew-dialog .dialog-grid :is(input:not([type=checkbox]):not([type=radio]),select) {box-sizing:border-box;height:38px;min-height:38px;max-height:38px;margin:0;padding:7px 8px;line-height:1.3;}
  .brew-dialog .dialog-grid.receipt-fields {grid-template-columns:minmax(0,1.6fr) minmax(0,1.25fr) minmax(0,1fr) 138px;}
  .brew-dialog .receipt-cost-fields {grid-template-columns:minmax(0,1fr) 80px minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);margin-top:18px;}
  .brew-dialog .receipt-unit-summary>.purchase-total {display:flex;align-items:center;box-sizing:border-box;margin:0;height:38px;min-height:38px;padding:7px 8px;font-size:var(--font-body);font-weight:400;line-height:1.3;white-space:nowrap;overflow:hidden;}
  .receipt-footer {display:grid;grid-template-columns:minmax(0,1fr) 145px;gap:16px;align-items:end;}
  .brew-dialog .receipt-footer textarea {height:86px;min-height:86px;margin:0;resize:vertical;line-height:20px;}
  .receipt-save-actions {display:flex;flex-direction:column;gap:10px;}
  .brew-dialog .receipt-save-actions button {width:100%;height:38px;min-height:38px;margin:0;}
  .sheet-toolbar {display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin:12px 0;}
  .brew-page .sheet-toolbar>.register-search {flex:1;max-width:500px;min-width:180px;margin:0;}
  .brew-page .sheet-toolbar>.table-sort {display:flex;align-items:center;gap:8px;margin:0;max-width:100%;}
  .brew-page .sheet-toolbar :is(input,select) {height:38px;min-height:38px;margin:6px 0 0;}
  .sheet-toolbar .table-sort select {width:auto;max-width:100%;margin:0;}
  .brew-page a.sheet-link {color:#45674c;font-weight:400;text-decoration:underline;text-underline-offset:2px;}
  .sale-history-actions {display:flex;align-items:center;gap:12px;white-space:nowrap;}
  .sale-history-actions form {margin:0;}
  .brew-page .sale-history-actions button {margin:0;min-height:32px;padding:5px 10px;}
  #sales-sheet :is(td,th) {white-space:nowrap;vertical-align:middle;}
  #sales-sheet {min-width:700px;}
  .brew-page .library-toolbar {display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap;margin:12px 0;}
  .brew-page .library-toolbar>input {width:230px;max-width:100%;height:38px;min-height:38px;margin:0;}
  .brew-page .library-toolbar .inline-check {display:flex;align-items:center;gap:6px;margin:0;white-space:nowrap;font-weight:400;}
  .brew-page .library-toolbar .inline-check input {width:16px;height:16px;min-height:16px;margin:0;}
  .brew-page .library-toolbar>.inventory-page-toolbar {margin:0 0 0 auto;display:flex;align-items:center;gap:12px;}
  .brew-page .inventory-page-toolbar label {display:flex;align-items:center;gap:6px;margin:0;font-size:var(--font-label);font-weight:400;}
  .brew-page .inventory-page-toolbar select {width:auto;min-width:72px;height:38px;min-height:38px;margin:0;padding:6px 8px;}
  #sale-form>.flex-rad {display:grid;grid-template-columns:160px minmax(0,1.6fr) minmax(160px,1fr);gap:12px;}
  #sale-form>.flex-rad>.flex-kol {min-width:0;}
  #sale-form :is(input,select,textarea,button) {box-sizing:border-box;font-family:inherit;}
  #sale-form .salgslinje {grid-template-columns:minmax(200px,2.2fr) 75px minmax(115px,1fr) 72px minmax(130px,1fr) 65px;gap:12px;align-items:end;padding:12px;margin:12px 0 0;}
  #sale-form .salgslinje>div {min-width:0;}
  #sale-form :is(input,select) {height:38px;min-height:38px;margin:4px 0 0;padding:7px 8px;}
  #sale-form label {display:block;margin:0;font-size:var(--font-label);font-weight:400;}
  #sale-form .salgslinje .remove-line {height:38px;min-height:38px;margin:0;padding:7px 8px;align-self:end;}
  #sale-form .sale-validation-message:empty {display:none;}
  .sale-line-footer {display:flex;align-items:stretch;gap:12px;margin-top:12px;}
  #sale-form .sale-line-footer>button {flex:none;margin:0;}
  #sale-form .sale-line-footer .salg-total {display:flex;flex:1;justify-content:flex-end;align-items:center;gap:8px;flex-wrap:wrap;margin:0;padding:10px 12px;}
  #sale-form .sale-line-footer .salg-total .dempa {margin:0 0 0 12px;}
  #sale-form>textarea {height:64px;min-height:64px;margin:12px 0 0;padding:10px;font:inherit;}
  #sale-form>#save-sale {margin-top:12px;}
  .brew-page .document-card>a.document-direct {display:block;flex:none;}
  .brew-page .document-card .document-details {margin-top:auto;padding:10px 0 0;min-height:32px;align-self:start;background:transparent;border:0;color:#45674c;font-size:var(--font-label);font-weight:400;text-align:left;text-decoration:underline;cursor:pointer;}
  .brew-page .about-page h1 {margin:0 0 16px;}
  .brew-page .about-page h2 {margin:20px 0 8px;}
  .brew-page .about-page p {max-width:78ch;line-height:1.6;margin:0 0 12px;}
  .brew-page .about-copyright {margin-top:20px;padding-top:16px;border-top:1px solid var(--border);}
  .document-edit-top {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px;align-items:end;}
  .document-edit-bottom {display:grid;grid-template-columns:minmax(0,1fr) 155px;gap:16px;align-items:end;margin-top:16px;}
  .document-edit-actions {display:flex;flex-direction:column;gap:10px;}
  .brew-dialog .document-edit-actions button {width:100%;min-height:38px;margin:0;}
  .brew-dialog #document-edit label {margin:0;}
  .brew-dialog #document-edit textarea {height:86px;min-height:86px;margin:4px 0 0;}
  #document-dialog:has(#document-edit:not([hidden])) #document-description {display:none;}
  /* Report disclosures share the same outer edge and closed header height. */
  .brew-page>details:is(.rapport-detaljer,#completed-batches) {margin:6px;padding:0;width:auto;align-self:stretch;}
  .brew-page>details:is(.rapport-detaljer,#completed-batches)>summary {min-height:52px;padding:16px;font-size:var(--font-body);line-height:20px;}
  .brew-page .rapport-topplinje {margin:6px;padding:16px;border-radius:6px;gap:12px;}
  .brew-page .rapport-controls,.brew-page .rapport-controls form {align-items:center;gap:12px;}
  .brew-page .rapport-controls label {margin:0;}
  .brew-page .rapport-controls :is(select,.print-knapp) {height:38px;min-height:38px;box-sizing:border-box;margin:0;}
  .brew-page .rapport-controls .print-knapp {display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;}
  @media(max-width:700px) {
    .document-edit-top,.document-edit-bottom {grid-template-columns:minmax(0,1fr);gap:12px;}
    .document-edit-actions {flex-direction:row;flex-wrap:wrap;}
    .brew-dialog .document-edit-actions button {flex:1;min-width:120px;}
  }
  @media(max-width:1000px) {
    #sale-form .salgslinje {grid-template-columns:minmax(160px,2fr) 65px minmax(90px,1fr) 65px minmax(105px,1fr) 60px;gap:8px;}
  }
  @media(max-width:800px) {
    #sale-form>.flex-rad {grid-template-columns:130px minmax(0,1fr);}
    #sale-form>.flex-rad>.flex-kol:last-child {grid-column:1/-1;}
    #sale-form .salgslinje {grid-template-columns:repeat(2,minmax(0,1fr));}
    #sale-form .salgslinje>div:first-child {grid-column:1/-1;}
    #sale-form .salgslinje .remove-line {justify-self:end;width:100%;}
    .sale-line-footer {flex-wrap:wrap;}
    #sale-form .sale-line-footer .salg-total {min-width:150px;}
  }
  @media(max-width:1099px) and (min-width:701px) {.brew-page .batch-grid {grid-template-columns:repeat(2,minmax(0,1fr));}}
  @media(max-width:700px) {
    .brew-page .batch-grid {grid-template-columns:minmax(0,1fr);}
    .brew-dialog .dialog-grid.receipt-fields,.brew-dialog .receipt-cost-fields {grid-template-columns:repeat(2,minmax(0,1fr));}
    .brew-dialog .dialog-grid.receipt-fields label:last-child {grid-column:auto;}
    .brew-dialog .receipt-unit-summary {grid-column:auto;}
    .receipt-footer {grid-template-columns:minmax(0,1fr) 100px;gap:12px;}
    .sheet-toolbar>.table-sort {flex-wrap:wrap;}
  }

  .brew-page .recipe-library .page-action-row {margin:0 0 16px;gap:16px;}
  .brew-page .recipe-library .recipe-empty {margin:0;padding:16px;background:#f4f5f1;border-radius:4px;line-height:1.6;}
  .brew-page .recipe-library-link {margin:12px 22px;}
  .brew-page .recipe-library-link a {color:#45674c;text-underline-offset:2px;}
  .recipe-ingredients-sheet [name=ingredient_category] {width:100%;min-width:0;}
  @media(max-width:700px) {
    #recipe-form .recipe-header-grid {grid-template-columns:minmax(0,1fr) 86px;}
    #recipe-form .recipe-header-grid>label {min-width:0;}
    #recipe-form .recipe-header-grid>label:last-child {grid-column:auto;}
    .recipe-notes-column label {height:auto;}
    .brew-card .recipe-notes-column .recipe-short-notes {flex:none;height:80px;min-height:80px;}
  }

  .brew-page .step-state-actions {display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:12px 0 0;}
  .brew-page .step-state-actions form {display:flex;margin:0;padding:0;}
  .brew-page .step-state-actions :is(button,.brew-button) {height:38px;min-height:38px;width:auto;margin:0;padding:8px 12px;}
  .log-attribution {display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;padding-top:8px;border-top:1px solid var(--border);font-size:var(--font-label);color:#687267;line-height:1.5;}
  .brew-page .new-production-log button:disabled {opacity:.5;cursor:not-allowed;}

  .date-field {position:relative;display:block;width:100%;min-width:0;}
  .brew-page .date-field .date-display,.brew-dialog .date-field .date-display {display:block;width:100%;min-width:0;margin:0!important;padding-right:38px;font-weight:400;}
  .date-field .date-native {position:absolute!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;margin:0!important;padding:0!important;clip-path:inset(50%);opacity:0;pointer-events:none;}
  .date-field .date-picker {position:absolute;right:1px;top:1px;bottom:1px;display:flex;align-items:center;justify-content:center;width:34px;min-width:34px;min-height:0;height:auto;margin:0!important;padding:0!important;border:0;background:transparent;color:#4a453e;cursor:pointer;}
  .date-picker svg {fill:none;stroke:currentColor;stroke-width:1.7;}
  .date-field:has(input:disabled) {opacity:.7;}

  .brew-page .log-measurements {align-items:end;}
  @media(max-width:700px) {
    .brew-page .log-measurements {grid-template-columns:minmax(115px,1.25fr) minmax(0,1fr);}
    .brew-page .log-measurements .date-display {padding-left:6px;padding-right:28px;}
    .log-measurements .date-picker {width:26px;min-width:26px;}
  }

}


/* Transfer fields share one action-column width, determined by its longest label. */
.barrel-transfer-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) max-content;gap:12px;}
.barrel-transfer-form>.local-form-error{grid-column:1/-1;}
.barrel-transfer-fields{grid-column:1/3;display:grid;grid-template-columns:150px minmax(120px,1fr) 140px;gap:12px;align-items:end;}
.barrel-transfer-fields>label{display:flex;flex-direction:column;gap:4px;min-width:0;margin:0;}
.barrel-transfer-fields label :is(input,select,.date-field){width:100%;margin:0;}
.barrel-transfer-form>.transfer-all{width:100%;align-self:end;margin:0;min-height:40px;}
.barrel-transfer-form>:is(.transfer-note,.transfer-deviation){display:flex;flex-direction:column;min-width:0;margin:0;}
.barrel-transfer-form>:is(.transfer-note,.transfer-deviation)>textarea{width:100%;height:100%;min-height:92px;margin:0;resize:vertical;}
.barrel-transfer-actions{display:flex;flex-direction:column;gap:12px;align-items:stretch;}
.brew-page .barrel-transfer-form .barrel-transfer-actions button{width:100%;min-height:40px;margin:0;padding:8px 12px;}
.transfer-log{margin:12px 0;}
.transfer-log-deviation{background:#f9e5e3;color:#652c29;padding:6px;}
.compact-text-label{gap:0;}
.brew-page>:is(.melding,.feil){margin:6px 6px 12px;padding:16px;border-radius:6px;}
.brew-page .sporbarhet{margin:12px 6px;padding:16px;}

@media(max-width:700px){
 .barrel-transfer-form{grid-template-columns:minmax(0,1fr);}
 .barrel-transfer-fields{grid-column:1;grid-template-columns:minmax(115px,1fr) minmax(0,1fr);}
 .barrel-transfer-fields .transfer-vessel{grid-column:1/-1;grid-row:2;}
 .barrel-transfer-fields .transfer-volume{grid-column:2;grid-row:1;}
 .barrel-transfer-fields .date-display{padding-left:6px;padding-right:28px;}
 .barrel-transfer-fields .date-picker{width:26px;min-width:26px;}
 .barrel-transfer-form>:is(.transfer-note,.transfer-deviation)>textarea{min-height:70px;}
}

@layer layout {
  .brew-page .batch-card-heading {padding:8px 16px;}
  .brew-page .batch-card-heading .batch-name {line-height:1.3;padding-bottom:3px;flex:0 0 auto;}
  .batch-banner,.barrel-card .fat-card-banner {height:104px;min-height:104px;}
  .brew-page .fat.barrel-card {min-height:280px;}
  .barrel-details-dialog .dialog-header h2 {font-size:var(--font-heading);line-height:1.3;}
  .barrel-details-dialog .fat-stats {grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .barrel-details-dialog .fat-stats>.mini {margin:0;padding:12px;}
  .barrel-log-fields {display:grid;grid-template-columns:150px minmax(0,1fr) minmax(0,1fr) max-content;gap:12px;align-items:end;}
  .barrel-log-fields label {margin:0;min-width:0;}
  .barrel-log-fields :is(input,textarea) {width:100%;margin:0;}
  .barrel-log-fields textarea {height:76px;min-height:76px;}
  .barrel-log-fields .lagre-logg {margin:0;}
  .brew-page .barrel-event-field {max-width:260px;margin-bottom:12px;}
  .inventory-libraries {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:0;}
  .inventory-libraries>details {min-width:0;}
  .inventory-libraries .ingredient-library-sheet {min-width:0;width:100%;}
  .inventory-libraries :is(th,td) {overflow-wrap:anywhere;}
  .inventory-libraries .inventory-page-toolbar,.inventory-libraries .library-toolbar {display:flex;flex-wrap:wrap;gap:8px;align-items:end;}
  .inventory-libraries .library-toolbar>.inventory-page-toolbar {margin:0 0 0 auto;}
  .inventory-libraries .library-toolbar input {max-width:100%;width:180px;}
  .inventory-libraries .ingredient-library-sheet th:last-child {width:auto;}
  .brew-page .recipe-list {grid-template-columns:repeat(4,minmax(0,1fr));gap:0;align-items:stretch;}
  .brew-page .recipe-card {display:flex;flex-direction:column;margin:6px;padding:0;border:3px solid #c1cdd7;background:#fff;overflow:hidden;}
  .recipe-card-banner {display:flex;align-items:center;min-height:104px;padding:16px;background-size:auto 100%;background-position:right center;background-repeat:no-repeat;text-decoration:none;color:#4a453e;}
  .recipe-banner-seeds {background-color:#f4e7c9;background-image:url("recipe-pen-seeds.webp");}
  .recipe-card-banner h2 {margin:0;font-size:var(--font-section);font-weight:700;line-height:1.35;overflow-wrap:anywhere;}
  .recipe-card-body {padding:16px;display:flex;flex-direction:column;gap:12px;flex:1;}
  .recipe-card-facts {display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;}
  .recipe-card-facts dt {font-size:var(--font-label);color:#687267;}
  .recipe-card-facts dd {font-size:var(--font-body);margin:4px 0 0;}
  .recipe-card-body .recipe-card-notes {margin:0;min-height:calc(2 * 1.45em);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;}
  .recipe-card-body>.sheet-link {margin-top:auto;}
  #production-closing form {max-width:680px;}
  .barrel-empty-form>label {display:block;margin:12px 0;}
  .raw-use-dialog .raw-use-quantity {display:grid;grid-template-columns:1fr 90px 160px;gap:12px;margin:16px 0;}
  .raw-use-dialog form>label {display:block;margin:12px 0;}
  .raw-use-dialog textarea {height:76px;min-height:76px;}
  .raw-use-dialog .raw-use-actions {display:flex;justify-content:flex-end;gap:12px;margin-top:16px;}
  .raw-use-secondary {display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border);}
  .raw-use-cost {padding:12px;background:#eaf0e7;border-radius:4px;}
  .raw-new-purchase {margin-top:16px;padding-top:16px;border-top:1px solid var(--border);}
  .raw-use-dialog [hidden] {display:none;}
  .raw-use-dialog .raw-use-split .allocation-sheet {min-width:0;}
  @media(min-width:701px) {.barrel-details-dialog {width:min(560px,calc(100vw - 48px));}.raw-use-dialog {width:min(660px,calc(100vw - 48px));}.raw-use-dialog:has(.raw-new-purchase:not([hidden])){width:min(880px,calc(100vw - 48px));}}
  @media(max-width:1199px) {.inventory-libraries {grid-template-columns:1fr;}.brew-page .recipe-list {grid-template-columns:repeat(2,minmax(0,1fr));}.barrel-log-fields {grid-template-columns:150px minmax(0,1fr);}}
  @media(max-width:700px) {.barrel-log-fields {grid-template-columns:1fr;}.barrel-log-fields .lagre-logg {justify-self:end;}.raw-use-dialog .raw-use-quantity {grid-template-columns:1fr 90px;}.raw-use-quantity>label:last-child {grid-column:1/-1;}.raw-use-dialog .allocation-sheet tbody tr {grid-template-columns:minmax(0,1fr) 44px;}.raw-use-dialog .allocation-sheet td:last-child {grid-column:2;grid-row:2;}.recipe-card-banner {padding:12px;}}
  @media(max-width:440px) {.brew-page .recipe-list {grid-template-columns:1fr;}}
}

@layer layout {
  .brew-page .bottling-packaging .packaging-fields .packaging-item-field {grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .brew-page .bottling-packaging .packaging-part-button {grid-column:2;justify-self:start;height:auto;min-height:28px;}
  .brew-page .bottling-packaging .packaging-part-button[hidden] {display:none;}
  .brew-page .bottling-packaging .packaging-purchase-field[hidden] {display:none;}
  @media(max-width:700px) {.brew-page .bottling-packaging .packaging-fields .packaging-item-field {grid-template-columns:1fr;}.brew-page .bottling-packaging .packaging-part-button {grid-column:1;}.brew-page .bottling-packaging .packaging-fields.bottle-fields {grid-template-columns:repeat(3,minmax(0,1fr));}}
}

@layer layout {
.inventory-libraries #packaging-sheet {min-width:0;width:100%;}
.inventory-libraries #packaging-sheet th {white-space:normal;}
}

/* action-buttons.css */
@layer actions;
@layer actions {
 .brew-page :is(button,.brew-button,.knapp){--action-bg:#f4f5f1;--action-fg:#4a453e;--action-border:#cbd2c7;background:var(--action-bg);color:var(--action-fg);border:1px solid var(--action-border);box-shadow:none;}
 .brew-page :is(button[type=submit],button:not([type]),.primary,.fullfoer,.lagre-logg,.production-summary-button,.production-complete-button){--action-bg:#dcebd6;--action-fg:#4a453e;--action-border:#adc6a4;}
 .brew-page :is(.secondary,.transfer-all,.status-archive button,.date-picker,.ingredient-open,.sheet-link){--action-bg:#f4f5f1;--action-fg:#4a453e;--action-border:#cbd2c7;}
 .brew-page :is(.danger,.danger-button,.slett,.status-failed>summary,.status-failed button){--action-bg:#f8dddd;--action-fg:#792e35;--action-border:#eabdc0;background:var(--action-bg);color:var(--action-fg);border:1px solid var(--action-border);}
 .brew-page .status-action>summary{background:#f4f5f1;color:#4a453e;border:1px solid #cbd2c7;}
 .brew-page .status-failed>summary{background:#f8dddd;color:#792e35;border-color:#eabdc0;}
 .brew-page :is(button,.brew-button):hover{filter:brightness(.97);}
 .brew-page .date-field .date-picker{background:transparent;color:#4a453e;border:0;}
 .brew-page .sheet-open{background:transparent;color:#45674c;border:0;box-shadow:none;font-weight:400;text-decoration:underline;text-underline-offset:3px;padding:4px 0;min-height:32px;max-width:100%;text-align:left;overflow-wrap:anywhere;}
 .brew-page .sheet-open:hover{background:transparent;color:#4a453e;filter:none;}
 .brew-page .barrel-card :is(.fat-card-open,.barrel-more){background:transparent;border:0;box-shadow:none;color:inherit;filter:none;}
 .brew-page .barrel-card .barrel-more{color:#45674c;}
 .brew-page .fat-register-card{background:#f1f2d9;color:#4a453e;border-color:#d4d8bd;}
 .brew-page .fat-preparation-card{background:#eaf0e7;color:#4a453e;border-color:#d4dfcf;}
 .brew-header .nav-options :is(button,a){background:transparent;color:var(--text);border:0;}
}

/* mobile-ui.css */
/* Shared mobile presentation. Business fields and desktop tables stay shared. */
@layer mobile {
  :root { --touch-size:44px; }
  .skip-content {position:fixed;top:-100px;left:16px;z-index:200;background:white;padding:16px;color:var(--text);}
  .skip-content:focus-visible {top:6px;}
  .mobile-current-page,.mobile-entry-launcher {display:none;}
  .connection-status {margin:6px;padding:16px;background:#fff2d5;border:1px solid #d7c58f;border-radius:6px;}
  .install-help .dialog-body {line-height:1.6;}
  .install-help .dialog-body p:first-child {margin-top:0;}
  .install-help .dialog-body li {margin-bottom:12px;}
  .install-help .dialog-footer {flex-wrap:wrap;}
  .mobile-entry-dialog .dialog-header {align-items:start;}
  .mobile-entry-context {margin:4px 0 0;font-size:var(--font-body);font-weight:400;overflow-wrap:anywhere;}
  .mobile-entry-dialog .dialog-body {flex:1;}
  .mobile-entry-dialog form {margin:0;border:0;background:#fff;}
  .mobile-entry-dialog .mobile-return {margin-top:16px;}
  [hidden] {display:none!important;}
  :is(input,select,textarea,button,a,summary):focus-visible {outline:3px solid #7194ab;outline-offset:2px;}

  @media(max-width:700px) {
    html {scroll-padding-top:96px;}
    body {padding-bottom:env(safe-area-inset-bottom);}
    .brew-header {position:sticky;top:0;z-index:40;height:85px;}
    .brew-header .brew-nav {padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));gap:6px;}
    .brew-header .brew-brand img {width:38px;height:38px;max-width:38px;}
    .brew-header .brew-menu {flex:1;min-width:44px;}
    .brew-header details>summary {min-height:var(--touch-size);}
    .brew-header .brew-menu>summary {padding:8px;max-width:100%;gap:8px;}
    .brew-header .brew-menu .menu-label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
    .mobile-current-page {display:block;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-body);font-weight:400;}
    .brew-header .account-name {display:none;}
    .brew-header .user-symbol {display:block;}
    .brew-header .brew-account>summary {padding:8px;min-width:44px;justify-content:center;}
    .brew-header .brew-account>summary::after {display:none;}
    .brew-header .brew-admin>summary {padding:8px;min-width:44px;}
    .brew-header .admin-label-full {display:none;}
    .brew-header .admin-label-short {display:inline;}
    .brew-header .brew-nav[data-nav-mode=collapsed] .brew-menu[open] .brew-links {left:6px;right:6px;top:85px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:16px;max-height:calc(100dvh - 100px);overflow:auto;}
    .brew-header .brew-links>a {min-height:44px;display:flex;align-items:center;font-weight:400;white-space:normal;}
    .brew-header .brew-links>a+a {border-left:0;}
    .brew-header .nav-options {top:calc(100% + 12px);max-height:calc(100dvh - 100px);max-width:calc(100vw - 24px);overflow:auto;}
    .brew-header .nav-options :is(a,button) {min-height:44px;}
    .brew-page {padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right));}
    .brew-page:has(>.production-context) {padding-top:0;}
    .brew-page .production-context {position:sticky;top:85px;z-index:15;display:grid;grid-template-columns:minmax(0,1fr) max-content;gap:3px 12px;align-items:center;padding:8px 16px;margin-block:0 12px;border-radius:0 0 6px 6px;}
    .production-context>.context-switcher {grid-column:1;grid-row:1;min-width:0;}
    .production-context>.context-date {grid-column:2;grid-row:1;font-size:var(--font-label);white-space:nowrap;}
    .production-context>.batch-type-badge {grid-column:1/-1;grid-row:2;padding:0;background:transparent;border:0;font-size:var(--font-label);line-height:1.25;}
    .production-context .context-date-label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
    .brew-page :is(input:not([type=checkbox]):not([type=radio]):not(.date-native),select,textarea),
    .brew-dialog :is(input:not([type=checkbox]):not([type=radio]):not(.date-native),select,textarea) {font-size:16px;min-height:44px;max-height:none;line-height:1.35;}
    .brew-page .date-field .date-display,.brew-dialog .date-field .date-display {height:44px!important;}
    .brew-page .date-field .date-picker,.brew-dialog .date-field .date-picker {width:38px;min-width:38px;}
    .brew-page :is(button,.brew-button,.knapp):not(.date-picker,.fat-card-open),.brew-dialog button {min-height:44px;}
    .brew-page .step-state-actions {display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:stretch;}
    .brew-page .step-state-actions :is(button,.brew-button) {height:100%;min-height:44px;white-space:nowrap;}
    .brew-page .step-state-actions form {flex:1;min-width:0;}
    .brew-page .step-state-actions form>button {width:100%;}
    /* Compact totals on Overview and Barrels keep their font sizes. */
    .brew-page .compact-summary>.stat {padding:10px 16px;min-height:82px;display:flex;flex-direction:column;justify-content:start;gap:2px;}
    .compact-summary>.stat>.label {margin:0;min-height:0;line-height:1.35;}
    .compact-summary>.stat>:is(.value,.verdi) {margin:0;line-height:1.2;}
    #ny-batch-form {display:grid;grid-template-columns:minmax(0,1fr);gap:12px;}
    #ny-batch-form .new-batch-grid {gap:12px;}
    #ny-batch-form .new-batch-field {display:flex;flex-direction:column;gap:6px;margin:0;min-width:0;}
    #ny-batch-form :is(input:not([type=hidden]),select,.date-field) {margin:0!important;}
    #ny-batch-form .soster-felt {padding:0;margin:0;background:transparent;}
    #ny-batch-form>button {justify-self:start;margin:0;}
    .brew-page .deadline-edit-row {grid-template-columns:repeat(3,minmax(0,.8fr)) repeat(3,minmax(0,1fr));gap:12px;align-items:end;padding:16px 0;}
    .deadline-edit-row :is(.deadline-name,.deadline-note) {grid-column:1/-1;}
    .deadline-edit-row .deadline-name {grid-row:1;}
    .deadline-edit-row .deadline-note {grid-row:2;}
    .deadline-edit-row .deadline-date {grid-column:1/4;grid-row:3;}
    .deadline-edit-row .deadline-recurrence {grid-column:4/7;grid-row:3;}
    .brew-page .deadline-edit-row .deadline-active {grid-column:1/3;grid-row:4;min-height:44px;height:auto;margin:0;}
    .deadline-edit-row .deadline-save {grid-column:3/5;grid-row:4;}
    .deadline-edit-row .deadline-delete {grid-column:5/7;grid-row:4;}
    .brew-page .deadline-edit-row :is(button,select) {min-width:0;height:44px;min-height:44px;}
    .deadline-edit-row .deadline-field-label {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
    .brew-page .deadline-edit-row .deadline-name input,.brew-page .deadline-edit-row .deadline-note input {margin:0;}
    .brew-page .deadline-date .date-display[readonly] {font-size:14px;padding-left:6px;padding-right:30px;}
    .brew-page .deadline-date .date-picker {min-width:28px;width:28px;}
    .brew-page .batch-status {grid-template-columns:repeat(2,minmax(0,1fr));}
    .brew-page .status-controls {display:grid;grid-template-columns:minmax(0,1fr);}
    .brew-page .status-controls>.status-group {padding:0;border-right:0;min-width:0;}
    .brew-page .status-controls .production-summary-button {width:100%;white-space:normal;text-align:center;}
    .brew-page .status-controls .status-type-fields {width:100%;}
    .brew-page .status-controls .status-action>summary {min-height:44px;}
    .brew-page .status-popup {position:static;max-width:100%;width:100%;box-shadow:none;margin-top:12px;}
    .brew-page .production-log-fields,.brew-page .batch-bottom-grid {grid-template-columns:minmax(0,1fr);}
    .brew-page .log-measurements {grid-template-columns:repeat(2,minmax(0,1fr));}
    .brew-page .log-save-row {grid-template-columns:minmax(0,1fr);}
    .brew-page .log-save-row .lagre-logg {width:100%;margin:0;white-space:nowrap;}
    .brew-page .recorded-log-content {grid-template-columns:repeat(2,minmax(0,1fr));}
    .brew-page .logg-handlinger {grid-column:1/-1;display:flex;gap:12px;}
    .brew-page .logg-handlinger>* {flex:1;}
    .brew-page .logg-handlinger :is(button,.brew-button) {width:100%;}
    .brew-page .library-toolbar>input,.brew-page .sheet-toolbar>.register-search {width:100%;max-width:none;min-width:0;flex:1 1 100%;}
    .brew-page .library-toolbar>.inventory-page-toolbar {width:100%;margin-left:0;justify-content:space-between;}
    .brew-page .inventory-page-toolbar :is(label,input,select) {min-width:0;max-width:100%;}
    .brew-page .inventory-page-toolbar label {flex:1;}
    .brew-page .inventory-page-toolbar label:has(input[type=search]) {flex-basis:100%;}
    .brew-page .inventory-page-toolbar select {flex:1;min-height:44px;}
    .brew-page .sheet-toolbar>.table-sort {width:100%;justify-content:space-between;}
    .brew-page .sheet-toolbar>.table-sort select {flex:1;min-width:0;}
    .brew-page .inventory-page-footer {gap:12px;}
    .brew-page .inventory-page-footer button {min-width:44px;}
    .brew-page :is(.inline-check,.chart-legend label) {min-height:44px;}

    /* Labelled mobile records replace wide sheets; sort/search still use the same rows. */
    .brew-page table[data-mobile-sheet] {display:block;min-width:0;width:100%;table-layout:auto;}
    table[data-mobile-sheet]>colgroup {display:none;}
    table[data-mobile-sheet]>thead {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
    table[data-mobile-sheet]>tbody {display:block;width:100%;}
    .brew-page table[data-mobile-sheet]>tbody>tr {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 0;border-bottom:1px solid var(--border);background:transparent;}
    .brew-page table[data-mobile-sheet]>tbody>tr>td {display:block;min-width:0;width:auto;padding:0;border:0;white-space:normal;overflow-wrap:anywhere;}
    table[data-mobile-sheet] td[data-mobile-label]::before {content:attr(data-mobile-label);display:block;font-size:var(--font-label);font-weight:400;color:#687267;margin-bottom:4px;}
    table[data-mobile-sheet] td[data-mobile-primary],table[data-mobile-sheet] td[data-mobile-wide],table[data-mobile-sheet] td[colspan] {grid-column:1/-1;}
    table[data-mobile-sheet] td[data-mobile-primary]::before,table[data-mobile-sheet] td[data-mobile-wide]::before {display:none;}
    table[data-mobile-sheet] td[data-mobile-action]::before {display:none;}
    .brew-page table[data-mobile-sheet] .sheet-actions,.brew-page table[data-mobile-sheet] .sale-history-actions {display:flex;flex-wrap:wrap;gap:12px;white-space:normal;}
    .brew-page table[data-mobile-sheet] :is(input:not([type=hidden]),select,.text-preview) {width:100%;min-width:0;max-width:100%;height:44px;}
    .brew-page table[data-mobile-sheet] .sheet-open {text-align:left;min-height:44px;padding:4px 0;}
    .brew-page .archive-table[data-mobile-sheet] td {max-width:none;overflow:visible;text-overflow:clip;}
    .archive-table[data-mobile-sheet] td:first-child a {display:inline-block;max-width:100%;padding-block:6px;white-space:normal;line-height:1.4;overflow-wrap:anywhere;}
    #failed-batches .archive-table[data-mobile-sheet] td:last-child {grid-column:1/-1;}

    .brew-page .recipe-ingredients-sheet[data-mobile-sheet]>tbody>tr {grid-template-columns:minmax(0,1fr) minmax(0,1fr) 100px;align-items:end;}
    .recipe-ingredients-sheet[data-mobile-sheet] td:first-child {grid-column:1/3;grid-row:1;}
    .recipe-ingredients-sheet[data-mobile-sheet] td:nth-child(2) {grid-column:1/-1;grid-row:2;}
    .recipe-ingredients-sheet[data-mobile-sheet] td:nth-child(3) {grid-column:1;grid-row:3;}
    .recipe-ingredients-sheet[data-mobile-sheet] td:nth-child(4) {grid-column:2;grid-row:3;}
    .recipe-ingredients-sheet[data-mobile-sheet] td:nth-child(5) {grid-column:3;grid-row:3;align-self:center;}
    .recipe-ingredients-sheet[data-mobile-sheet] td:last-child {grid-column:3;grid-row:1;justify-self:end;}
    .brew-page .recipe-steps-sheet[data-mobile-sheet] .step-order-cell {grid-row:1/4;grid-column:1;width:44px;}
    .brew-page .recipe-steps-sheet[data-mobile-sheet] .step-order-cell::before {display:none;}
    .brew-page .recipe-sheet[data-mobile-sheet] td::before {overflow-wrap:normal;word-break:normal;hyphens:none;}
    .brew-page .recipe-steps-sheet[data-mobile-sheet]>tbody>tr {grid-template-columns:44px minmax(0,1fr) 70px;}
    .recipe-steps-sheet[data-mobile-sheet] td:nth-child(2) {grid-column:2/-1;}
    .recipe-steps-sheet[data-mobile-sheet] td:nth-child(3) {grid-column:2;}
    .recipe-steps-sheet[data-mobile-sheet] td:nth-child(4) {grid-column:3;}
    .recipe-steps-sheet[data-mobile-sheet] td:nth-child(5) {grid-column:2/-1;}
    .recipe-steps-sheet[data-mobile-sheet] td:last-child {grid-column:1/-1;justify-self:end;}
    .recipe-steps-sheet .step-row-actions {flex-direction:column;gap:12px;}
    .brew-page .recipe-steps-sheet .step-row-actions button {min-width:44px;}

    /* The native modal retains fields and listeners when returning to the page. */
    .brew-page .mobile-entry-launcher {display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0;}
    .mobile-entry-launcher>button {flex:1;}
    .brew-page form[data-mobile-entry]:not(.mobile-entry-open) {display:none;}
    .brew-dialog {position:fixed;inset:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;}
    .brew-dialog .dialog-header {padding-top:max(16px,env(safe-area-inset-top));}
    .brew-dialog :is(.dialog-body,.dialog-header,.dialog-footer) {padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));}
    .brew-dialog .dialog-body {overscroll-behavior:contain;padding-bottom:max(16px,env(safe-area-inset-bottom));}
    .brew-dialog .dialog-grid {align-items:end;}
    .brew-dialog .dialog-grid :is(input:not([type=checkbox]),select) {height:44px;max-height:none;}
    .brew-dialog .receipt-save-actions button {height:auto;min-height:44px;}
    .brew-page .mobile-entry-dialog form {display:block;margin:0;padding:0;border:0;background:transparent;}
    .mobile-entry-dialog form>h3 {display:none;}
    .brew-page .mobile-entry-dialog .bottling-packaging {margin-inline:0;padding:12px;}
    .brew-page .mobile-entry-dialog .log-note-field textarea {height:100px;}
    .brew-page .mobile-entry-dialog .bottling-packaging .packaging-fields {gap:12px;}
  }
  @media(max-width:359px) {.mobile-current-page {max-width:75px;}.brew-header .brew-nav {padding-inline:8px;}}
  @media(prefers-reduced-motion:reduce) {*,*::before,*::after {scroll-behavior:auto!important;transition:none!important;}}
  @media print {.skip-content,.mobile-entry-launcher,.connection-status {display:none;}.brew-page form[data-mobile-entry] {display:block;}}
}

/* presentation.css */
/* Shared table and action presentation, after the responsive layout layer. */
@layer presentation {
  :root {--list-row-neutral:#f4f5f1;--list-row-sage:#eaf0e7;}
  /* A list owns the whole card width. Its rows, rather than the surrounding
     card padding, provide the inset for text and controls. */
  .brew-page .edge-list {
    --list-inset:16px;
    width:calc(100% + var(--list-inset) * 2);
    max-width:none;
    margin-inline:calc(var(--list-inset) * -1);
  }
  .brew-page .edge-list>table> :is(thead,tbody)>tr> :is(th,td):first-child {padding-left:16px;}
  .brew-page .edge-list>table> :is(thead,tbody)>tr> :is(th,td):last-child {padding-right:16px;}
  .brew-page .report-block>.edge-list {--list-inset:0px;padding:0;}
  /* Count visible records, not the hidden edit rows between them. Status and
     note/deviation colors remain meaningful and take precedence over stripes. */
  :where(.brew-page,.brew-dialog) table>tbody>tr:nth-child(odd of :not([hidden],.sheet-detail-row)):not(.report-note,.report-deviation,.report-record,.status-active,.status-archived,.status-failed,.receipt-blocked) {
    background:var(--list-row-neutral);
  }
  :where(.brew-page,.brew-dialog) table>tbody>tr:nth-child(even of :not([hidden],.sheet-detail-row)):not(.report-note,.report-deviation,.report-record,.status-active,.status-archived,.status-failed,.receipt-blocked) {
    background:var(--list-row-sage);
  }
  :where(.brew-page,.brew-dialog) table>tbody>tr:not([hidden],.sheet-detail-row,.report-note,.report-deviation,.report-record,.status-active,.status-archived,.status-failed,.receipt-blocked)>td {
    background:inherit;
  }
  .brew-page .blending-fields {gap:12px;align-items:start;}
  .brew-page .blending-fields>label {display:flex;flex-direction:column;gap:6px;min-width:0;margin:0;}
  .brew-page .blending-fields label :is(input,select,.date-field) {width:100%;margin:0;}
  .brew-page .blending-fields .transfer-note {grid-column:1/-1;}
  .brew-page .recipe-ingredient-actions {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:12px;align-items:stretch;}
  .brew-page .recipe-ingredient-actions>button {width:100%;min-width:0;margin:0;padding:10px 12px;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none;line-height:1.4;}

  /* Nested sections align with their parent content; only their contents are padded. */
  .brew-page .volume-correction {margin:12px 0 0;}

  /* Status action dimensions; the shared controls layer owns their text. */
  .brew-page .production-status .status-controls {align-items:flex-start;}
  .brew-page .production-status .status-controls :is(.production-summary-button,.status-archive form>button,.status-action>summary) {
    display:inline-flex;align-items:center;justify-content:flex-start;gap:10px;
    min-height:38px;max-width:none;box-sizing:border-box;margin:0;padding:8px 12px;
    white-space:nowrap;text-decoration:none;
  }
  .brew-page .production-status .status-type {
    flex:0 1 auto;min-width:0;max-width:100%;width:fit-content;
    margin-left:auto;padding:0;border:0;
  }
  .brew-page .production-status #batch-type-form {display:block;margin:0;min-width:0;}
  .brew-page .production-status .status-type-fields {display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0;}
  .brew-page .production-status .status-type-fields>label {flex:none;min-width:0;margin:0;}
  /* A long brew name must not widen the type selector above it. */
  .brew-page .production-status #detalj-hovedbatch-boks {width:0;min-width:100%;}
  .brew-page .production-status .status-type-fields select {width:100%;max-width:100%;min-width:0;min-height:38px;margin:0;font-size:var(--font-action);}
  .brew-page .production-status .type-save-status {display:block;max-width:100%;margin-top:6px;}
  .brew-page .production-status .type-save-status[hidden] {display:none;}

  .brew-page .production-log>.process-order-heading {
    display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;
    gap:6px 12px;margin:6px 6px 0;
  }
  .brew-page .production-log>.process-order-heading h2 {margin:0;font-size:var(--font-section);}
  .brew-page .production-log>.process-order-heading button {margin:0;}

  /* Report subjects are identified by their labels, rather than decorative colors. */
  .brew-page .report-section>summary {background:#fff;}
  .brew-page .report-section> :is(.details-body,.detalj-innhold) {background:#fff;}
  .brew-page .report-block {margin:16px 0 0;border:1px solid var(--border);border-radius:6px;overflow:hidden;}
  .brew-page .report-block>h3 {margin:0;padding:12px 16px;background:#f4f5f1;font-size:var(--font-section);}
  .brew-page .report-block> :is(.brew-table-wrap,.tabell-ramme) {padding:0 6px 6px;}
  .brew-page .add-step-actions {display:flex;align-items:flex-end;gap:12px;margin-top:12px;}
  .brew-page .add-step-actions>label {flex:1;min-width:0;margin:0;}
  .brew-page .add-step-actions select {width:100%;margin-bottom:0;}
  .brew-page .add-step-actions>button {flex:none;min-height:38px;margin:0;white-space:nowrap;}
  #sales-sheet .sale-amount {text-align:right;}

  @media(max-width:1000px) {
    .brew-page .recipe-ingredient-actions {grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;}
  }
  @media(max-width:380px) {
    .brew-page .recipe-ingredient-actions {grid-template-columns:minmax(0,1fr);}
  }
  @media(max-width:700px) {
    .brew-page #sales-sheet[data-mobile-sheet]>tbody>tr {gap:8px 12px;align-items:center;}
    #sales-sheet[data-mobile-sheet] td::before {display:none;}
    #sales-sheet[data-mobile-sheet] .sale-date {grid-row:1;grid-column:1;white-space:nowrap;}
    #sales-sheet[data-mobile-sheet] .sale-reference {grid-row:1;grid-column:2;text-align:right;}
    #sales-sheet[data-mobile-sheet] .sale-customer {grid-row:2;grid-column:1;}
    #sales-sheet[data-mobile-sheet] .sale-amount {grid-row:2;grid-column:2;text-align:right;}
    #sales-sheet[data-mobile-sheet] .sale-actions {grid-row:3;grid-column:1/-1;}
    .brew-page #sales-sheet .sale-history-actions {display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap;}
    #sales-sheet .sale-history-actions>a {flex:1;min-width:0;}
    #sales-sheet .sale-history-actions>form {flex:none;margin:0 0 0 auto;}
    .brew-page .production-status .status-type {width:100%;margin-left:0;}
    .brew-page .production-status .status-controls :is(.production-summary-button,.status-archive form>button,.status-action>summary) {width:100%;min-height:44px;white-space:normal;}
    .brew-page .edge-list>table[data-mobile-sheet]>tbody>tr {padding-inline:16px;}
    .brew-page .edge-list>table[data-mobile-sheet]>tbody>tr>td {padding:0;}
    .brew-page .mobile-entry-dialog :is(.lagre-logg,.mobile-return) {width:100%;max-width:none;min-width:0;min-height:44px;margin-inline:0;white-space:normal;text-align:left;}
    .brew-page .status-controls>.status-group,
    .brew-page .status-controls>.status-group>form,
    .brew-page .status-controls .status-action {width:100%;max-width:none;min-width:0;margin-inline:0;}
    .brew-page .status-controls .status-archive form>button,
    .brew-page .status-controls .status-action>summary {width:100%;max-width:none;min-height:44px;margin-inline:0;box-sizing:border-box;justify-content:flex-start;text-align:left;}
    .brew-page .blending-fields {grid-template-columns:repeat(2,minmax(0,1fr));}
    .brew-page .blending-fields :is(.transfer-target,.transfer-name,.transfer-note) {grid-column:1/-1;}
    .brew-page .blending-fields .date-display {padding-left:6px;padding-right:30px;}
    .brew-page .blending-fields .date-picker {width:28px;min-width:28px;}
  }
}

/* controls.css */
/* Shared text treatment for actions, regardless of their HTML element. */
@layer controls {
  :root {--action-font-weight:700;}

  :where(.brew-page,.brew-dialog,.brew-header) :is(
    button:not(.dialog-close,.fat-card-open,.text-preview,.sheet-open),
    a.brew-button,a.knapp,
    details>summary
  ),
  .brew-header :is(.brew-links a,.nav-options a) {
    font-family:inherit;
    font-size:var(--font-action,14px);
    font-weight:var(--action-font-weight);
    line-height:1.35;
    text-align:left;
  }

  :where(.brew-page,.brew-dialog,.brew-header) :is(
    button:not(.dialog-close,.fat-card-open,.text-preview,.sheet-open),
    a.brew-button,a.knapp
  ):not([hidden]),
  .brew-header :is(.brew-links a,.nav-options a) {
    display:inline-flex;
    align-items:center;
    justify-content:flex-start;
  }

  :where(.brew-page,.brew-dialog,.brew-header) details>summary {
    align-items:center;
  }
  :where(.brew-page,.brew-dialog,.brew-header) details>summary :is(span,strong,b) {
    font-weight:inherit;
  }
  :where(.brew-page,.brew-dialog) details>summary :is(.process-step-date,.step-outcome,.brew-meta) {
    font-weight:400;
  }

  /* Icons keep their existing dimensions and centered glyph; field-like text
     previews and plain library links keep their own text presentation. */
  :where(.brew-page,.brew-dialog) :is(
    button.date-picker,button.dialog-close,
    .step-row-actions button,.step-order-tools button,
    .inventory-page-footer button
  ) {
    justify-content:center;
    text-align:center;
  }
}

@layer controls {
  .brew-page .production-context>.context-switcher {position:relative;min-width:0;margin:0;border:0;background:transparent;}
  .brew-page .production-context>.context-switcher>summary {min-height:32px;padding:0;gap:10px;margin:0;border:0;background:transparent;border-radius:0;font-size:var(--font-section);line-height:1.35;}
  .brew-page .context-switcher>summary [data-context-name] {font-weight:700;overflow-wrap:anywhere;min-width:0;}
  .brew-page .context-switcher>summary::after {flex:none;margin-left:0;}
  .context-switcher-options {position:absolute;top:calc(100% + 8px);left:0;width:340px;max-width:calc(100vw - 60px);max-height:min(420px,60dvh);overflow-y:auto;padding:6px;background:#fff;border:1px solid var(--border);border-radius:4px;box-shadow:0 3px 8px #0002;z-index:16;}
  .context-switcher-options>p {margin:0;padding:10px;}
  .context-switcher-options>a {display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:10px;color:var(--text);text-decoration:none;}
  .context-switcher-options>a>span {min-width:0;overflow-wrap:anywhere;}
  .context-switcher-options>a>small {flex:none;color:var(--text-muted,var(--text));font-size:var(--font-label);}
  .context-switcher-options>a:is(:hover,[aria-current=page]) {background:var(--section-active,#eaf0e7);}
  @media(max-width:700px){
    .brew-page .production-context>.context-switcher>summary {font-size:var(--font-body);min-height:28px;}
    .context-switcher-options>a {flex-wrap:wrap;gap:3px 12px;}
  }
}

/* theme.css */
/* Semantic colors. Loaded last so page-specific styles cannot redefine actions. */
@layer theme {
  :root {
    --bg:#e7e9e8; --card:#ffffff; --text:#4a453e; --muted:#716a61; --border:#d4d8d3;
    --surface-neutral:#f4f5f1; --surface-sage:#eaf0e7;
    --surface-nested:var(--surface-neutral);
    --action-neutral-bg:var(--surface-neutral); --action-neutral-text:var(--text); --action-neutral-border:#cbd2c7;
    --action-save-bg:#dcebd6; --action-save-text:var(--text); --action-save-border:#adc6a4;
    --action-danger-bg:#f8dddd; --action-danger-text:#792e35; --action-danger-border:#eabdc0;
    --warning-bg:#fff0ce; --warning-text:#6b551e; --warning-border:#dfcf9b;
    --step-idle:var(--surface-neutral); --step-working:#e4efdf; --step-done:#e5ecf2;
    --failed-bg:var(--action-danger-bg); --failed-text:var(--action-danger-text); --failed-edge:var(--action-danger-border);
    --section-active:var(--surface-sage); --section-create:#f1f2d9; --section-create-border:#d4d8bd;
    --focus-color:#7194ab;
    --list-row-neutral:var(--surface-neutral); --list-row-sage:var(--surface-sage);
  }

  .brew-page :is(.kort,.brew-card,.rapport-detaljer,.stat,.stat-kort,.stat-card,.status-kort,.fat,.fat-action-card,.kpi) {
    background:var(--card);
  }
  .brew-page details>summary {background:var(--card);}
  .brew-page :where(.kort,.brew-card,.details-body,.production-tools-body) details:not(.prosess-steg,.status-action)>summary {
    background:var(--surface-nested);
  }
  .brew-page .report-section>summary {background:var(--card);}
  .brew-page .report-block>h3 {background:var(--surface-nested);}
  .brew-dialog :is(.dialog-header,.dialog-footer),.brew-dialog details>summary {background:var(--surface-nested);}
  .brew-page .prosess-steg.step-active>summary {background:var(--step-working);}
  .brew-page .prosess-steg.step-complete>summary {background:var(--step-done);}
  .brew-page .prosess-steg.step-pending>summary {background:var(--step-idle);}

  /* Action color follows its purpose, including actions in popup dialogs. */
  :where(.brew-page,.brew-dialog) :where(button,.brew-button,.knapp):not(:where(.sheet-open,.text-preview,.date-picker,.dialog-close,.fat-card-open,.barrel-more)) {
    --action-bg:var(--action-neutral-bg); --action-fg:var(--action-neutral-text); --action-border:var(--action-neutral-border);
    background:var(--action-bg);color:var(--action-fg);border-color:var(--action-border);
  }
  :where(.brew-page,.brew-dialog) :where(button[type=submit],button:not([type]),.primary,.fullfoer,.lagre-logg,.production-complete-button,#save-allocations,#packaging-apply-purchases,#text-apply) {
    --action-bg:var(--action-save-bg); --action-fg:var(--action-save-text); --action-border:var(--action-save-border);
  }
  :where(.brew-page,.brew-dialog) :where(.secondary,.status-archive button,.production-summary-button),
  :where(.brew-page,.brew-dialog) :where(form[method=get],form[action$="/arkiver"],form[action$="/gjenapne"]) button {
    --action-bg:var(--action-neutral-bg); --action-fg:var(--action-neutral-text); --action-border:var(--action-neutral-border);
  }
  :where(.brew-page,.brew-dialog) :is(.danger,.danger-button,.slett,.remove-line,[data-remove-row],[data-remove-extra],[data-remove-bottle],[data-remove-allocation],[data-remove-packaging-purchase],[data-ingredient-status=delete],[data-packaging-status=delete]),
  :where(.brew-page,.brew-dialog) form:is([action$="/slett"],[action$="/delete"]) button:not([type=button]) {
    --action-bg:var(--action-danger-bg); --action-fg:var(--action-danger-text); --action-border:var(--action-danger-border);
  }
  :is(.brew-page,.brew-dialog) .status-failed>summary {
    background:var(--action-danger-bg);color:var(--action-danger-text);border-color:var(--action-danger-border);
  }
  :where(.brew-page,.brew-dialog) :is(.brew-warning,.info-warning) {
    background:var(--warning-bg);color:var(--warning-text);border-color:var(--warning-border);
  }
  :where(.brew-page,.brew-dialog) :is(.brew-error,.feil,.dialog-error,.local-form-error,.failure-panel,.receipt-blocked,.raw-block-warning),
  .failure-review .brew-warning {
    background:var(--action-danger-bg);color:var(--action-danger-text);border-color:var(--action-danger-border);
  }
  :where(.brew-page,.brew-dialog) :is(.brew-success,.melding) {background:var(--step-working);color:var(--action-save-text);}
  :where(.brew-page,.brew-dialog) :is(.report-note,.recorded-note) {background:var(--list-row-sage);}
  :where(.brew-page,.brew-dialog) :is(.report-deviation,.recorded-deviation,.transfer-log-deviation) {background:var(--action-danger-bg);}
  :where(.brew-page,.brew-dialog) .report-record {background:var(--list-row-neutral);}
  .brew-page :is(#batch-tabell,.status-key) .status-active {background:var(--step-working);}
  .brew-page :is(#batch-tabell,.status-key) .status-archived {background:var(--step-idle);}
  .brew-page :is(#batch-tabell,.status-key) .status-failed {background:var(--action-danger-bg);}
  :where(.brew-page,.brew-dialog) :focus-visible {outline-color:var(--focus-color);}

  /* Explicit exceptions requested for the production overview and vessel tools. */
  .brew-page .dashboard-active-section,.brew-page .fat-preparation-card {background:var(--section-active);}
  .brew-page .dashboard-new-batch-section,.brew-page .dashboard-new-batch-section>summary,.brew-page .fat-register-card {
    background:var(--section-create);color:var(--action-neutral-text);border-color:var(--section-create-border);
  }
  .brew-page .dashboard-new-batch-section>form {background:var(--card);}
  /* Established brewery metrics keep their agreed subject colors. */
  .brewery-stat:nth-child(1) {background:var(--surface-sage);}
  .brewery-stat:nth-child(2) {background:#e2edf4;}
  .brewery-stat:nth-child(3) {background:#eee6f4;}
  .brewery-stat:nth-child(4) {background:#f8efd9;}
  .brewery-stat:nth-child(5) {background:#f5e3dc;}
  .brewery-stat:nth-child(6) {background:#e0f0eb;}
}

@layer theme {
  .brew-page .production-context>.context-switcher,
  .brew-page .production-context>.context-switcher>summary {background:transparent;}
}
