:root {
    --bg-primary: #f4f7f6;
    --bg-container: white;
    --bg-section: white;
    --bg-footer: #f3f4f6;
    --bg-input: white;
    --bg-progress-container: #e5e7eb;
    --bg-button-secondary: #e5e7eb;
    --text-default: #1f2937;
    --text-secondary: #6b7280;
    --border-color: #e5e7eb;
    --shadow-color: rgba(0, 0, 0, 0.1);
}

/* BUILD 0018: local utility layer (no runtime framework dependency) */
.relative{position:relative}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}
.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.pl-5{padding-left:1.25rem}
.mt-2{margin-top:.5rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}
.w-16{width:4rem}.w-full{width:100%}.text-center{text-align:center}.text-left{text-align:left}.text-white{color:#fff}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.text-3xl{font-size:1.875rem}.text-4xl{font-size:2.25rem}
.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.border{border-width:1px}.border-t{border-top-width:1px}.rounded-md{border-radius:.375rem}.list-disc{list-style:disc}.whitespace-nowrap{white-space:nowrap}.space-y-2>*+*{margin-top:.5rem}
@media(min-width:640px){.sm\:flex-row{flex-direction:row}.sm\:w-auto{width:auto}}@media(min-width:768px){.md\:p-8{padding:2rem}}

.app-shell[aria-hidden="true"]{visibility:hidden}
.launch-screen{position:fixed;inset:0;z-index:1000;display:grid;align-items:center;justify-items:start;overflow:hidden;background:#090b0e url('assets/artwork/forge-prepper-launch.png') center/cover no-repeat;color:#f4f5f7;transition:opacity .4s ease,visibility .4s ease}
.launch-screen.is-leaving{opacity:0;visibility:hidden}
.launch-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,6,8,.84) 0%,rgba(5,6,8,.58) 31%,rgba(5,6,8,.05) 64%),linear-gradient(0deg,rgba(5,6,8,.48),transparent 45%)}
.launch-panel{position:relative;width:min(88vw,540px);margin-left:clamp(24px,7vw,112px);padding:1.5rem;text-align:left;text-shadow:0 2px 14px #000}
.launch-kicker,.launch-build{margin:.6rem 0;color:#f79038;font-size:.72rem;font-weight:700;letter-spacing:.2em}
.launch-panel h1,.launch-panel h2{margin:.35rem 0 .75rem;font-size:clamp(2.3rem,6vw,5.4rem);line-height:.88;letter-spacing:-.055em}.launch-panel h1 span{display:block;color:#ff7a18}.launch-menu-panel h2{max-width:520px;font-size:clamp(2rem,4.2vw,4rem)}
.launch-forge-mark{width:68px;height:68px;object-fit:cover;border-radius:12px;box-shadow:0 10px 32px rgba(0,0,0,.5)}
.launch-panel #launch-copy{max-width:460px;margin:.7rem 0 1.35rem;color:#d7d9dc;font-weight:600;line-height:1.6}
.launch-actions{display:flex;align-items:center;gap:.75rem}.launch-actions #launch-start{min-width:180px}.launch-actions #launch-help{min-width:44px;width:44px;padding:0;font-size:1.2rem}
.launch-language{display:flex;align-items:center;gap:.55rem;margin-top:1.25rem}.launch-language span{width:1px;height:18px;background:rgba(255,255,255,.25)}.launch-language button{min-width:44px;min-height:44px;border:0;background:transparent;color:#aeb5c0;font:inherit;font-weight:700;cursor:pointer}.launch-language button.active{color:#ff8b32}.launch-language button:focus-visible{outline:2px solid #ff7a18;outline-offset:2px}
.launch-loader{width:min(72vw,360px);margin:1.4rem 0 0;color:#d7d9dc;font-size:.68rem;font-weight:700;letter-spacing:.13em}
.launch-track{height:4px;margin-bottom:.65rem;overflow:hidden;background:rgba(255,255,255,.2)}
.launch-track span{display:block;width:0;height:100%;background:#f47b20;box-shadow:0 0 12px #f47b20;transition:width 1.25s cubic-bezier(.2,.75,.2,1)}
.launch-help-panel{position:absolute;z-index:3;left:clamp(20px,7vw,112px);width:min(calc(100vw - 40px),520px);padding:1.5rem;border:1px solid rgba(255,122,24,.55);border-radius:14px;background:rgba(15,18,22,.96);box-shadow:0 28px 80px rgba(0,0,0,.65)}.launch-help-panel h2{margin:0 0 .75rem}.launch-help-panel p{color:#bdc4cf;line-height:1.65}.launch-help-panel .forge-btn{margin-top:1rem}
@media(max-width:720px){.launch-screen{align-items:end;background-position:64% center}.launch-shade{background:linear-gradient(0deg,rgba(5,6,8,.96) 0%,rgba(5,6,8,.7) 45%,rgba(5,6,8,.08) 78%)}.launch-panel{width:100%;margin:0;padding:1.5rem 1.25rem 2rem}.launch-forge-mark{width:54px;height:54px}.launch-panel h1{font-size:clamp(2.35rem,14vw,4.4rem)}.launch-kicker{font-size:.62rem}.launch-loader{width:100%}.launch-help-panel{left:20px;bottom:24px}}
@media(prefers-reduced-motion:reduce){.launch-screen,.launch-track span{transition:none}}

[data-theme="dark"] {
    --bg-primary: #111827;
    --bg-container: #1f2937;
    --bg-section: #1f2937;
    --bg-footer: #111827;
    --bg-input: #374151;
    --bg-progress-container: #4b5563;
    --bg-button-secondary: #4b5563;
    --text-default: #f9fafb;
    --text-secondary: #d1d5db;
    --border-color: #4b5563;
    --shadow-color: rgba(0, 0, 0, 0.4);
}

.hidden {
    display: none !important;
}

body {
    font-family: 'Poppins', sans-serif;
    background-color: var(--bg-primary);
    color: var(--text-default);
    transition: background-color 0.3s, color 0.3s;
}

.container {
    max-width: 900px;
    margin: 2rem auto;
    background: var(--bg-container);
    border-radius: 16px;
    box-shadow: 0 8px 25px var(--shadow-color);
    overflow: hidden;
    transition: background-color 0.3s;
}

/* Re-usable color classes */
.header-bg { background-color: #2563eb; }
.section-bg { background-color: var(--bg-section); }
.footer-bg { background-color: var(--bg-footer); }
.input-bg { background-color: var(--bg-input); }
.progress-container-bg { background-color: var(--bg-progress-container); }
.button-secondary-bg { background-color: var(--bg-button-secondary); }
.text-color-default { color: var(--text-default); }
.text-color-secondary { color: var(--text-secondary); }
.border-color { border-color: var(--border-color); }

/* Navigation Tabs */
.nav-tabs {
    display: flex;
    border-bottom: 1px solid var(--border-color);
    background-color: var(--bg-section);
}
.nav-tab {
    flex-grow: 1;
    padding: 12px 20px;
    text-align: center;
    font-weight: 600;
    cursor: pointer;
    background-color: transparent;
    border: none;
    color: var(--text-secondary);
    transition: background-color 0.2s, color 0.2s;
    border-bottom: 3px solid transparent;
}
.nav-tab:hover {
    background-color: var(--bg-footer);
}
.nav-tab.active {
    color: #2563eb;
    border-bottom: 3px solid #2563eb;
}

.checklist-item {
    display: flex;
    align-items: center;
    padding: 16px;
    border-bottom: 1px solid var(--border-color);
    transition: background-color 0.3s ease, opacity 0.3s;
    user-select: none;
}
.checklist-item:hover {
    background-color: rgba(128, 128, 128, 0.1);
}
.checklist-item.dimmed {
    opacity: 0.4;
    pointer-events: all !important;
}
.check-mark {
    width: 2rem;
    height: 2rem;
    margin-left: .5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1;
    transition: color .2s ease, background-color .2s ease, transform .2s ease;
}
.check-mark.status-missing { color: #9ca3af; background: transparent; }
.check-mark.status-partial { color: #d97706; background: rgba(245,158,11,.12); }
.check-mark.status-complete { color: #16a34a; background: rgba(34,197,94,.12); }

#progress-bar-container {
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    height: 12px;
}
#progress-bar {
    width: 0%;
    height: 100%;
    background-color: #3b82f6;
    transition: width 0.5s ease-in-out;
}
.category-header {
    background-color: var(--bg-footer);
    border-bottom: 1px solid var(--border-color);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.category-header:hover {
    background-color: rgba(128, 128, 128, 0.1);
}
.category-toggle-icon {
    transition: transform 0.3s ease;
    font-size: 1.2rem;
}
.category.collapsed .category-toggle-icon {
    transform: rotate(-90deg);
}
.category-items-container {
    max-height: 2000px;
    overflow: hidden;
    transition: max-height 0.5s ease-in-out;
}
.category.collapsed .category-items-container {
    max-height: 0;
}

/* Header Controls */
.header-controls {
    position: absolute;
    top: 1rem;
    right: 1rem;
    left: 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.lang-controls { display: flex; gap: 0.5rem; }
.theme-controls { display: flex; align-items: center; gap: 0.5rem; color: white; }
.lang-btn {
    background: none; border: 1px solid white; color: white;
    padding: 4px 10px; border-radius: 6px; cursor: pointer;
    opacity: 0.7; transition: opacity 0.2s, background-color 0.2s;
}
.lang-btn.active, .lang-btn:hover {
    opacity: 1;
    background-color: rgba(255, 255, 255, 0.2);
}

/* Toggle Switch Styles */
.switch-container {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
}
.theme-toggle {
    opacity: 0;
    width: 0;
    height: 0;
}
.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.4);
    transition: .4s;
    border-radius: 24px;
}
.slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
}
.theme-toggle:checked + .slider {
    background-color: #4ade80; /* Green for Go-Bag */
}
#dark-mode-toggle:checked + .slider {
    background-color: #4f46e5; /* Indigo for Dark Mode */
}
.theme-toggle:checked + .slider:before {
    transform: translateX(20px);
}

/* Modal Styles */
.modal-overlay {
    position: fixed; top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0, 0, 0, 0.6);
    display: flex; align-items: center; justify-content: center;
    z-index: 1000; opacity: 0; visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}
.modal-overlay.visible {
    opacity: 1;
    visibility: visible;
}
.modal-content {
    background: var(--bg-container);
    padding: 2rem; border-radius: 12px;
    max-width: 500px; width: 90%;
    transform: translateY(-20px);
    transition: transform 0.3s ease;
}
.modal-overlay.visible .modal-content {
    transform: translateY(0);
}

/* Action Buttons */
.action-btn {
    background: none; border: none; color: #9ca3af;
    cursor: pointer; margin-left: 0.5rem; font-weight: bold;
    padding: 0.2rem 0.5rem; border-radius: 50%;
    transition: color 0.2s, background-color 0.2s;
}
.action-btn:hover {
    color: var(--text-default);
    background-color: var(--bg-button-secondary);
}
.delete-btn { color: #ef4444; }
.delete-btn:hover { color: #b91c1c; }

/* Expiration Date Indicator */
.expiry-indicator {
    width: 12px; height: 12px;
    border-radius: 50%; margin-right: 8px;
    border: 1px solid rgba(0,0,0,0.1);
}
.expiry-indicator.good { background-color: #22c55e; }
.expiry-indicator.soon { background-color: #f59e0b; }
.expiry-indicator.expired { background-color: #ef4444; }

/* Achievements */
.achievement-badge {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 4px 8px; border-radius: 12px;
    font-size: 0.8rem; font-weight: 600;
    background-color: var(--bg-progress-container);
    color: var(--text-secondary);
    transition: all 0.3s;
    opacity: 0.5;
}
.achievement-badge.unlocked {
    background-color: #10b981;
    color: white;
    opacity: 1;
    box-shadow: 0 2px 8px rgba(16, 185, 129, 0.4);
}

/* Toast Notification */
.toast {
    position: fixed; bottom: -100px; left: 50%;
    transform: translateX(-50%);
    background-color: #2d3748;
    color: white; padding: 16px; border-radius: 8px;
    z-index: 2000; transition: bottom 0.5s ease-in-out;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}
.toast.show {
    bottom: 30px;
}

/* Tips & Guide Sections */
.tip-category, .guide-section {
    margin-bottom: 2rem;
}

/* Print Styles · BUILD 0025 */
.print-document { display:none; }
@media print {
    @page { size:A4; margin:12mm 11mm 13mm; }
    html, body { background:#fff !important; color:#000 !important; font-family:Arial, Helvetica, sans-serif !important; }
    body > *:not(#print-document) { display:none !important; }
    #print-document { display:block !important; }
    .print-sheet { width:100%; font-size:9.5pt; line-height:1.25; }
    .print-head { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; padding-bottom:7mm; border-bottom:2px solid #111; margin-bottom:5mm; }
    .print-brand { font-size:9pt; letter-spacing:.14em; font-weight:700; }
    .print-head h1 { margin:1mm 0 0; font-size:20pt; line-height:1; }
    .print-date { text-align:right; font-size:8.5pt; color:#333; }
    .print-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:3mm; margin-bottom:5mm; break-inside:avoid; }
    .print-summary > div { border:1px solid #bbb; border-radius:2mm; padding:3mm; }
    .print-summary b, .print-plan b { display:block; font-size:8pt; text-transform:uppercase; letter-spacing:.05em; margin-bottom:1mm; }
    .print-summary span { font-weight:700; }
    .print-plan { border:1px solid #bbb; border-radius:2mm; padding:3mm; margin-bottom:5mm; break-inside:avoid; }
    .print-plan h2, .print-category h2 { margin:0 0 2mm; font-size:13pt; }
    .print-plan-grid { display:grid; grid-template-columns:1fr 1fr; gap:2.5mm 5mm; }
    .print-plan-grid span { white-space:pre-wrap; overflow-wrap:anywhere; }
    .print-category { margin:0 0 4mm; break-inside:auto; }
    .print-category h2 { border-bottom:1.5px solid #111; padding:2.5mm 0 2mm; break-after:avoid; page-break-after:avoid; }
    .print-category p { margin:-1mm 0 2mm; color:#444; font-size:8.5pt; break-after:avoid; }
    .print-items { break-before:avoid; }
    .print-item { display:grid; grid-template-columns:7mm 1fr auto; align-items:center; gap:2mm; min-height:8mm; padding:1.6mm 0; border-bottom:.35pt solid #ccc; break-inside:avoid; page-break-inside:avoid; }
    .print-status, .print-box { font-size:12pt; text-align:center; }
    .print-item-name { font-weight:600; }
    .print-item strong { white-space:nowrap; font-size:9pt; }
    .print-foot { margin-top:6mm; padding-top:3mm; border-top:1px solid #aaa; font-size:8pt; color:#444; break-inside:avoid; }
}

/* --- Ny Footer Styling --- */

.footer-actions-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    margin-top: 2rem;
    margin-bottom: 2rem;
}

.button-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}

.footer-btn {
    padding: 10px 20px;
    border-radius: 8px;
    font-weight: 600;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

.footer-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.footer-btn.btn-primary {
    background-color: #2563eb;
    color: white;
}
.footer-btn.btn-primary:hover {
    background-color: #1d4ed8;
}

.footer-btn.btn-secondary {
    background-color: var(--bg-button-secondary);
    color: var(--text-default);
    border: 1px solid var(--border-color);
}
.footer-btn.btn-secondary:hover {
    background-color: var(--border-color);
}

.footer-btn.btn-destructive {
    background-color: #ef4444;
    color: white;
}
.footer-btn.btn-destructive:hover {
    background-color: #dc2626;
}

.footer-btn.btn-special {
    background-color: #FFDD00;
    color: #000000;
}

#bmac-button {
    gap: 8px;
}
#bmac-button .bmac-icon {
    width: 20px;
    height: 20px;
    fill: #000000;
    margin: 0;
}
/* =========================================================
   FORGE PREPPER — BUILD 0001 / Forge design layer
   ========================================================= */
:root {
    --forge-ink: #111318;
    --forge-panel: #181b21;
    --forge-panel-2: #20242c;
    --forge-steel: #a9b0bc;
    --forge-orange: #f47b20;
    --forge-orange-2: #ff9b4a;
    --forge-line: rgba(255,255,255,.10);
    --bg-primary: #0d0f13;
    --bg-container: #171a20;
    --bg-section: #171a20;
    --bg-footer: #111318;
    --bg-input: #222730;
    --bg-progress-container: #2a2f38;
    --bg-button-secondary: #272c35;
    --text-default: #f2f4f7;
    --text-secondary: #aeb5c0;
    --border-color: rgba(255,255,255,.10);
    --shadow-color: rgba(0,0,0,.45);
}
[data-theme="dark"], [data-theme="light"] { color-scheme: dark; }
* { box-sizing: border-box; }
body {
    min-height: 100vh;
    margin: 0;
    background:
      radial-gradient(circle at 15% 0%, rgba(244,123,32,.13), transparent 32rem),
      linear-gradient(145deg, #0b0d10 0%, #12151a 55%, #0b0d10 100%);
}
body::before {
    content: ""; position: fixed; inset: 0; pointer-events: none; opacity: .18;
    background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size: 28px 28px;
}
.container {
    max-width: 1080px; margin: 1.25rem auto; border-radius: 18px;
    border: 1px solid var(--forge-line); box-shadow: 0 24px 70px rgba(0,0,0,.52);
}
.header-bg {
    min-height: 260px; display: flex; flex-direction: column; justify-content: center;
    background: linear-gradient(135deg, rgba(244,123,32,.20), transparent 42%), linear-gradient(145deg,#1d2128,#101217);
    border-bottom: 1px solid rgba(244,123,32,.45); overflow: hidden;
}
.header-bg::after {
    content:""; position:absolute; width:180px; height:420px; top:-90px; right:13%;
    background: linear-gradient(90deg, transparent, rgba(244,123,32,.85), transparent);
    transform: rotate(24deg); opacity:.18;
}
.forge-brand { display:flex; justify-content:center; align-items:center; gap:.65rem; margin: 0 auto 1.2rem; letter-spacing:.19em; font-weight:700; font-size:.75rem; color:#c8ced7; }
.forge-word { color:#fff; }
.forge-product { color:var(--forge-orange-2); }
.forge-cut { width:3px; height:22px; background:var(--forge-orange); transform:skew(-18deg); box-shadow:0 0 16px rgba(244,123,32,.75); }
#header-title { font-size: clamp(2rem, 6vw, 4.1rem); letter-spacing:-.045em; text-transform:uppercase; text-shadow:0 8px 28px rgba(0,0,0,.45); }
#header-subtitle { max-width: 680px; margin-inline:auto; color:#bdc4cf; }
.header-controls { z-index:2; }
.lang-btn { border-color:rgba(255,255,255,.22); border-radius:999px; font-size:.75rem; }
.lang-btn.active { background:var(--forge-orange); border-color:var(--forge-orange); color:#111; }
.nav-tabs { position:sticky; top:0; z-index:20; backdrop-filter:blur(18px); background:rgba(17,19,24,.92); }
.nav-tab { padding:1rem; text-transform:uppercase; letter-spacing:.08em; font-size:.78rem; }
.nav-tab.active { color:var(--forge-orange-2); border-bottom-color:var(--forge-orange); }
#progress-section { padding-top:2rem; }
#progress-bar-container { height:9px; background:#2a2e36; }
#progress-bar { background:linear-gradient(90deg,var(--forge-orange),#ffb067); box-shadow:0 0 18px rgba(244,123,32,.45); }
.category { margin:0 1rem 1rem; border:1px solid var(--forge-line); border-radius:14px; overflow:hidden; background:#181c22; }
.category-header { margin:0 !important; padding:1.15rem 1.25rem !important; background:linear-gradient(180deg,#242932,#1d2128); }
.category-header h3 { font-size:1.25rem !important; }
.category-toggle-icon { color:var(--forge-orange) !important; }
.checklist-item { padding:1rem 1.2rem; background:rgba(255,255,255,.01); }
.checklist-item:hover { background:rgba(244,123,32,.055); }
.quantity-input, input[type="search"], input[type="text"], input[type="number"], input[type="date"] { border:1px solid rgba(255,255,255,.14); border-radius:8px; outline:none; }
.quantity-input:focus, input:focus { border-color:var(--forge-orange); box-shadow:0 0 0 3px rgba(244,123,32,.13); }
.action-btn { border-radius:8px; }
.achievement-badge.unlocked { background:var(--forge-orange); color:#141414; box-shadow:0 3px 12px rgba(244,123,32,.26); }
.footer-btn { border-radius:9px; text-transform:uppercase; letter-spacing:.055em; font-size:.77rem; }
.footer-btn.btn-primary { background:var(--forge-orange); color:#111; }
.footer-btn.btn-primary:hover { background:var(--forge-orange-2); }
.footer-btn.btn-special { background:#d9dde4; }
.modal-content { border:1px solid var(--forge-line); background:linear-gradient(160deg,#22262e,#15181e); box-shadow:0 28px 80px rgba(0,0,0,.6); }
.toast { border:1px solid rgba(244,123,32,.45); background:#16191f; }
.tip-category, .guide-section { padding:1.25rem; border:1px solid var(--forge-line); border-radius:12px; background:rgba(255,255,255,.018); }
@media (max-width: 720px) {
  .container { margin:0; border-radius:0; border-left:0; border-right:0; }
  .header-bg { min-height:235px; padding:5.5rem 1.2rem 2rem !important; }
  .header-controls { top:1rem; }
  #progress-section > div:first-child { align-items:stretch; }
  .category { margin:.7rem; }
  .checklist-item .flex.items-center.gap-2.mt-2 { flex-wrap:wrap; }
}

/* Forge button system - BUILD 0002 */
.forge-btn {
    display:inline-flex; align-items:center; justify-content:center; gap:.45rem;
    min-height:42px; padding:.65rem 1rem; border:1px solid transparent; border-radius:9px;
    font:inherit; font-weight:700; line-height:1; cursor:pointer;
    transition:transform .16s ease, background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.forge-btn:hover { transform:translateY(-1px); }
.forge-btn:active { transform:translateY(0); }
.forge-btn:focus-visible { outline:none; box-shadow:0 0 0 3px rgba(244,123,32,.25); }
.forge-btn-primary {
    background:linear-gradient(180deg,var(--forge-orange-2),var(--forge-orange));
    border-color:rgba(255,164,91,.72); color:#111318;
    box-shadow:0 6px 18px rgba(244,123,32,.20);
}
.forge-btn-primary:hover { background:linear-gradient(180deg,#ffb26f,var(--forge-orange-2)); box-shadow:0 8px 22px rgba(244,123,32,.28); }
.forge-btn-secondary { background:#2a3039; border-color:rgba(255,255,255,.14); color:var(--text-default); }
.forge-btn-secondary:hover { background:#353c47; border-color:rgba(255,255,255,.22); }
.forge-btn-danger { background:#a92d35; border-color:#cf4b54; color:#fff; }
.forge-btn-danger:hover { background:#c43741; }

/* BUILD 0003: lock primary actions to Forge orange */
#shopping-list-btn,
#shopping-list-btn.bg-yellow-500 {
    background: linear-gradient(180deg, var(--forge-orange-2), var(--forge-orange)) !important;
    border-color: rgba(255,164,91,.72) !important;
    color: #111318 !important;
}
#shopping-list-btn:hover,
#shopping-list-btn.hover\:bg-yellow-600:hover {
    background: linear-gradient(180deg, #ffb26f, var(--forge-orange-2)) !important;
}

/* =========================================================
   FORGE PREPPER — BUILD 0005 / functional light theme
   ========================================================= */
[data-theme="dark"] {
    color-scheme: dark;
}

[data-theme="light"] {
    color-scheme: light;
    --forge-ink: #20242a;
    --forge-panel: #ffffff;
    --forge-panel-2: #eef1f4;
    --forge-steel: #59616d;
    --forge-line: rgba(25, 31, 38, .14);
    --bg-primary: #e9edf1;
    --bg-container: #f9fafb;
    --bg-section: #ffffff;
    --bg-footer: #edf0f3;
    --bg-input: #ffffff;
    --bg-progress-container: #d6dbe1;
    --bg-button-secondary: #e2e6ea;
    --text-default: #1f252d;
    --text-secondary: #5f6874;
    --border-color: rgba(31, 37, 45, .16);
    --shadow-color: rgba(25, 31, 38, .18);
}

[data-theme="light"] body {
    background:
      radial-gradient(circle at 15% 0%, rgba(244,123,32,.16), transparent 32rem),
      linear-gradient(145deg, #eef1f4 0%, #f8f9fa 55%, #e5e9ed 100%);
}
[data-theme="light"] body::before {
    opacity: .45;
    background-image:
      linear-gradient(rgba(25,31,38,.035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(25,31,38,.035) 1px, transparent 1px);
}
[data-theme="light"] .container {
    border-color: rgba(31,37,45,.15);
    box-shadow: 0 24px 60px rgba(25,31,38,.18);
}
[data-theme="light"] .header-bg {
    color: #1b2027 !important;
    background:
      linear-gradient(135deg, rgba(244,123,32,.24), transparent 44%),
      linear-gradient(145deg, #ffffff, #e9edf1);
    border-bottom-color: rgba(244,123,32,.65);
}
[data-theme="light"] .header-bg::after { opacity: .14; }
[data-theme="light"] .forge-word,
[data-theme="light"] #header-title { color: #171b21; text-shadow: none; }
[data-theme="light"] .forge-brand { color: #4c5561; }
[data-theme="light"] #header-subtitle { color: #58616d; }
[data-theme="light"] .theme-controls { color: #242a32; }
[data-theme="light"] .lang-btn { color: #303741; border-color: rgba(31,37,45,.25); }
[data-theme="light"] .lang-btn:hover { background: rgba(31,37,45,.07); }
[data-theme="light"] .lang-btn.active { color: #171b21; }

[data-theme="light"] .nav-tabs {
    background: rgba(249,250,251,.94);
    border-bottom-color: rgba(31,37,45,.14);
}
[data-theme="light"] .nav-tab:hover { background: #eceff2; }
[data-theme="light"] #progress-bar-container { background: #d8dde2; }
[data-theme="light"] .category {
    background: #ffffff;
    border-color: rgba(31,37,45,.14);
}
[data-theme="light"] .category-header {
    background: linear-gradient(180deg,#f4f6f8,#e9edf0);
}
[data-theme="light"] .checklist-item { background: rgba(255,255,255,.72); }
[data-theme="light"] .checklist-item:hover { background: rgba(244,123,32,.09); }
[data-theme="light"] .tip-category,
[data-theme="light"] .guide-section {
    background: #ffffff;
    border-color: rgba(31,37,45,.14);
}
[data-theme="light"] .modal-overlay { background: rgba(31,37,45,.48); }
[data-theme="light"] .modal-content {
    background: linear-gradient(160deg,#ffffff,#edf1f4);
    border-color: rgba(31,37,45,.17);
    box-shadow: 0 28px 70px rgba(25,31,38,.28);
}
[data-theme="light"] .toast {
    color: #1f252d;
    background: #ffffff;
    border-color: rgba(244,123,32,.60);
    box-shadow: 0 14px 36px rgba(25,31,38,.20);
}
[data-theme="light"] .forge-btn-secondary {
    color: #242a32;
    background: #e3e7eb;
    border-color: rgba(31,37,45,.17);
}
[data-theme="light"] .forge-btn-secondary:hover { background: #d5dae0; }
[data-theme="light"] .footer-btn.btn-special { color: #20262e; background: #d9dee3; }
[data-theme="light"] input,
[data-theme="light"] select,
[data-theme="light"] textarea {
    color: #1f252d;
    background: #ffffff;
}
[data-theme="light"] .slider { background-color: #a9b0b9; }
[data-theme="light"] #dark-mode-toggle:checked + .slider { background-color: #4f46e5; }
\n\n/* =========================================================\n   FORGE PREPPER — BUILD 0006 / UI consistency & accessibility\n   ========================================================= */\n.modal-full { width:100%; margin-top:1.5rem; }\n.modal-content { max-height:min(88vh,760px); overflow:auto; }\nbody.modal-open { overflow:hidden; }\n\nbutton, a, input, select, textarea {\n    -webkit-tap-highlight-color: transparent;\n}\nbutton:focus-visible,\na:focus-visible,\ninput:focus-visible,\nselect:focus-visible,\ntextarea:focus-visible,\n.category-header:focus-visible {\n    outline:3px solid rgba(244,123,32,.42);\n    outline-offset:3px;\n}\n.forge-btn:disabled, .footer-btn:disabled {\n    opacity:.55;\n    cursor:not-allowed;\n    transform:none;\n}\n\n.modal-overlay[aria-hidden=\"true\"] { visibility:hidden; }\n.modal-overlay.visible[aria-hidden=\"false\"] { visibility:visible; }\n\n@media (prefers-reduced-motion: reduce) {\n    *, *::before, *::after {\n        scroll-behavior:auto !important;\n        animation-duration:.01ms !important;\n        animation-iteration-count:1 !important;\n        transition-duration:.01ms !important;\n    }\n}\n\n@media (max-width: 560px) {\n    .modal-content { width:calc(100% - 1.25rem); padding:1.15rem; }\n    .modal-content .mt-6.flex { flex-direction:column-reverse; }\n    .modal-content .forge-btn { width:100%; }\n}\n

/* =========================================================
   FORGE PREPPER — BUILD 0007 / cleaned footer actions
   ========================================================= */
.footer-actions-container {
    width:min(100%, 880px);
    margin:2rem auto 0;
    gap:1.1rem;
}
.footer-main-action {
    width:min(100%, 520px);
    min-height:48px;
}
.footer-action-grid {
    width:100%;
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:.8rem;
}
.footer-action-grid .footer-btn {
    width:100%;
    min-height:46px;
}
.footer-danger-zone {
    width:100%;
    display:flex;
    justify-content:center;
    margin-top:.35rem;
    padding-top:1.2rem;
    border-top:1px solid var(--border-color);
}
.footer-danger-zone .footer-btn {
    min-width:190px;
}
#bmac-button,
.bmac-icon {
    display:none !important;
}
@media (max-width:760px) {
    .footer-action-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:520px) {
    footer.p-8 { padding:1.5rem 1rem !important; }
    .footer-action-grid { grid-template-columns:1fr; }
    .footer-main-action,
    .footer-danger-zone .footer-btn { width:100%; }
}


/* =========================================================
   FORGE PREPPER — BUILD 0008 / status dashboard & UI polish
   ========================================================= */
.status-dashboard {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:.85rem;
    margin-top:1.4rem;
}
.status-card {
    min-height:118px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:1rem;
    text-align:center;
    border:1px solid var(--border-color);
    border-radius:13px;
    background:linear-gradient(160deg,rgba(255,255,255,.045),rgba(255,255,255,.012));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
    transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.status-card:hover {
    transform:translateY(-2px);
    border-color:rgba(244,123,32,.38);
    background:linear-gradient(160deg,rgba(244,123,32,.09),rgba(255,255,255,.018));
}
.status-card-score {
    border-color:rgba(244,123,32,.32);
    background:linear-gradient(160deg,rgba(244,123,32,.13),rgba(255,255,255,.015));
}
.status-card-value {
    color:var(--forge-orange-2);
    font-size:clamp(1.65rem,3vw,2.25rem);
    font-weight:700;
    line-height:1;
    letter-spacing:-.04em;
}
.status-card-label {
    margin-top:.55rem;
    color:var(--text-default);
    font-size:.82rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.07em;
}
.status-card-note {
    margin-top:.25rem;
    color:var(--text-secondary);
    font-size:.76rem;
}
.category-header,
.nav-tab,
.footer-btn,
.action-btn {
    transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease;
}
.category-header:hover { background:linear-gradient(180deg,#292f39,#20252d); }
.footer-action-grid .footer-btn:hover { transform:translateY(-2px); }
[data-theme="light"] .status-card {
    background:linear-gradient(160deg,#fff,#f0f3f5);
    box-shadow:0 8px 22px rgba(25,31,38,.07);
}
[data-theme="light"] .status-card-score {
    background:linear-gradient(160deg,rgba(244,123,32,.16),#fff);
}
[data-theme="light"] .category-header:hover { background:linear-gradient(180deg,#fff7f0,#edf0f3); }
@media (max-width:720px) {
    .status-dashboard { grid-template-columns:1fr; }
    .status-card { min-height:96px; }
}

/* =========================================================
   FORGE PREPPER — BUILD 0009 / Foundation pass
   Fælles tokens, konsekvente komponenter og fjernelse af de
   sidste blå standardfarver fra den oprindelige prototype.
   ========================================================= */
:root {
    --forge-accent: var(--forge-orange);
    --forge-accent-hover: var(--forge-orange-2);
    --forge-radius-sm: 8px;
    --forge-radius-md: 13px;
    --forge-radius-lg: 18px;
    --forge-space-1: .5rem;
    --forge-space-2: .8rem;
    --forge-space-3: 1.2rem;
    --forge-motion-fast: 180ms;
    --forge-focus: 0 0 0 3px rgba(244,123,32,.25);
}

/* Foundation components */
.header-bg {
    background:linear-gradient(135deg,rgba(244,123,32,.20),transparent 42%),linear-gradient(145deg,#1d2128,#101217);
}
.nav-tab.active {
    color:var(--forge-accent-hover);
    border-bottom-color:var(--forge-accent);
}
#progress-bar {
    background:linear-gradient(90deg,var(--forge-accent),#ffb067);
}
.footer-btn.btn-primary {
    background:linear-gradient(180deg,var(--forge-accent-hover),var(--forge-accent));
    color:#111318;
}
.footer-btn.btn-primary:hover {
    background:linear-gradient(180deg,#ffb26f,var(--forge-accent-hover));
}

.forge-btn,
.footer-btn,
.nav-tab,
.lang-btn,
.action-btn {
    transition:transform var(--forge-motion-fast) ease,
               background-color var(--forge-motion-fast) ease,
               border-color var(--forge-motion-fast) ease,
               color var(--forge-motion-fast) ease,
               box-shadow var(--forge-motion-fast) ease;
}

.forge-btn:focus-visible,
.footer-btn:focus-visible,
.nav-tab:focus-visible,
.lang-btn:focus-visible,
.action-btn:focus-visible {
    outline:none;
    box-shadow:var(--forge-focus);
}

/* Forge Cards: samme geometri og overflade på tværs af moduler */
.status-card,
.tip-category,
.guide-section,
.category,
.modal-content {
    border-radius:var(--forge-radius-md);
}

/* Sekundære handlinger skal være rolige, ikke konkurrere */
.footer-btn.btn-secondary,
.forge-btn-secondary {
    background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.02));
    border:1px solid var(--border-color);
}
.footer-btn.btn-secondary:hover,
.forge-btn-secondary:hover {
    border-color:rgba(244,123,32,.38);
    background:rgba(244,123,32,.08);
}

/* Skarpere aktiv status og tydelig Forge Cut-linje */
.nav-tabs { box-shadow:inset 0 -1px 0 rgba(244,123,32,.08); }
.category-header { position:relative; }
.category-header::before {
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:3px;
    background:var(--forge-accent);
    opacity:.72;
}

/* Light mode overrides for Foundation surfaces */
[data-theme="light"] .footer-btn.btn-secondary,
[data-theme="light"] .forge-btn-secondary {
    background:linear-gradient(180deg,#fff,#e8ecef);
}
[data-theme="light"] .footer-btn.btn-secondary:hover,
[data-theme="light"] .forge-btn-secondary:hover {
    background:#fff4ea;
    border-color:rgba(244,123,32,.45);
}

/* =========================================================
   FORGE PREPPER — BUILD 0010 / Actionable status
   Dashboardet viser nu de vigtigste næste handlinger frem for
   kun at fortælle, at noget mangler. Mennesker elsker tal, men
   de får sjældent købt vand af at stirre på en procent.
   ========================================================= */
.priority-panel {
    margin-top:1rem;
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(0,1.4fr) auto;
    align-items:center;
    gap:1rem;
    padding:1rem 1.1rem;
    border:1px solid rgba(244,123,32,.24);
    border-radius:var(--forge-radius-md);
    background:linear-gradient(135deg,rgba(244,123,32,.09),rgba(255,255,255,.018));
}
.priority-kicker {
    display:block;
    margin-bottom:.18rem;
    color:var(--forge-accent-hover);
    font-size:.68rem;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
}
.priority-title {
    color:var(--text-default);
    font-size:1rem;
    font-weight:700;
}
.priority-summary {
    margin-top:.15rem;
    color:var(--text-secondary);
    font-size:.78rem;
}
.priority-list {
    display:grid;
    gap:.42rem;
    margin:0;
    padding:0;
    list-style:none;
}
.priority-list li {
    display:flex;
    justify-content:space-between;
    gap:1rem;
    padding:.48rem .62rem;
    border:1px solid var(--border-color);
    border-radius:var(--forge-radius-sm);
    background:rgba(0,0,0,.12);
    color:var(--text-secondary);
    font-size:.78rem;
}
.priority-list strong { color:var(--forge-accent-hover); white-space:nowrap; }
.priority-action { min-width:170px; }
.build-stamp {
    margin-top:.45rem;
    color:var(--text-secondary);
    font-size:.62rem;
    font-weight:700;
    letter-spacing:.14em;
    opacity:.62;
}
[data-theme="light"] .priority-panel {
    background:linear-gradient(135deg,rgba(244,123,32,.13),#fff);
    box-shadow:0 8px 22px rgba(25,31,38,.06);
}
[data-theme="light"] .priority-list li { background:rgba(255,255,255,.7); }
@media (max-width:820px) {
    .priority-panel { grid-template-columns:1fr; }
    .priority-action { width:100%; }
}


/* =========================================================
   FORGE PREPPER · Product information layer
   ========================================================= */
.beta-badge {
    display:inline-flex; align-items:center; margin-left:.35rem; padding:.26rem .5rem;
    border:1px solid rgba(244,123,32,.55); border-radius:999px;
    color:var(--forge-orange); background:rgba(244,123,32,.09);
    font-size:.58rem; letter-spacing:.12em; white-space:nowrap;
}
.beta-tools {
    display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem;
    padding-top:1rem; border-top:1px solid var(--forge-line);
}
.modal-kicker { display:block; margin-bottom:.45rem; color:var(--forge-orange); font-size:.7rem; font-weight:700; letter-spacing:.13em; }
.form-label { display:block; margin-bottom:.4rem; color:var(--text-default); font-size:.82rem; font-weight:600; text-align:left; }
.modal-action-row { display:flex; justify-content:flex-end; gap:.65rem; margin-top:1.25rem; flex-wrap:wrap; }
.release-notes { display:grid; gap:.8rem; text-align:left; }
.release-note { padding:.9rem 1rem; border:1px solid var(--forge-line); border-radius:var(--forge-radius-md); background:rgba(255,255,255,.025); }
.release-note strong { display:block; color:var(--text-default); margin-bottom:.25rem; }
.release-note p { color:var(--text-secondary); font-size:.88rem; line-height:1.55; }
.about-version { display:flex; justify-content:space-between; gap:1rem; padding:1rem; border:1px solid var(--forge-line); border-radius:var(--forge-radius-md); color:var(--text-secondary); background:rgba(255,255,255,.025); }
.about-version strong { color:var(--text-default); }
textarea { resize:vertical; min-height:8rem; }
[data-theme="light"] .release-note,
[data-theme="light"] .about-version { background:rgba(20,26,34,.025); }
@media (max-width:650px) {
    .beta-tools { grid-template-columns:1fr; }
    .beta-badge { display:flex; margin:.45rem auto 0; width:max-content; }
    .forge-brand { flex-wrap:wrap; }
    .modal-action-row { flex-direction:column-reverse; }
    .modal-action-row .forge-btn { width:100%; }
    .about-version { flex-direction:column; }
}

/* BUILD 0018: crisis / evacuation / offline plan */
.crisis-panel{margin-top:1rem;padding:1rem;border:1px solid var(--border-color,#d7dce2);border-radius:14px;background:rgba(127,127,127,.05)}
.crisis-heading{margin-bottom:.8rem}.crisis-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.55rem}
.crisis-mode-btn{border:1px solid var(--border-color,#cbd2d9);border-radius:10px;padding:.72rem .65rem;background:var(--section-bg,#fff);color:inherit;font-weight:700;cursor:pointer}
.crisis-mode-btn:hover,.crisis-mode-btn:focus-visible{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.12)}
.crisis-response{margin-top:.9rem;padding:1rem;border-radius:12px;border:1px solid rgba(190,50,50,.35);background:rgba(190,50,50,.07)}
.crisis-response-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;font-size:1.05rem}.crisis-close{border:0;background:transparent;color:inherit;font-size:1.5rem;cursor:pointer}
.crisis-actions{margin:.7rem 0 0 1.25rem;display:grid;gap:.45rem}.crisis-disclaimer{margin-top:.7rem;font-size:.82rem;opacity:.78}
.evacuation-banner{margin:1rem 0 0;padding:1rem;border-radius:12px;border:2px solid #b45309;background:#fff7ed;color:#7c2d12;display:flex;flex-direction:column;gap:.25rem}
.evacuation-banner[hidden]{display:none}.evacuation-active #progress-title::after{content:' · EVAKUERING';font-weight:800}
.emergency-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.emergency-plan-grid label{display:flex;flex-direction:column;gap:.35rem;font-weight:600}.plan-wide{grid-column:1/-1}.plan-input{width:100%;border:1px solid;padding:.65rem;border-radius:8px;font:inherit}
@media(max-width:640px){.emergency-plan-grid{grid-template-columns:1fr}.plan-wide{grid-column:auto}.crisis-buttons{grid-template-columns:1fr 1fr}}
@media print{.crisis-panel,.crisis-close{display:none!important}.emergency-plan-section{break-inside:avoid}}

/* BUILD 0018: household intelligence + readiness test */
.household-panel,.readiness-test-panel{margin-top:1rem;padding:1rem;border:1px solid var(--border-color,#d7dce2);border-radius:14px;background:rgba(127,127,127,.045)}
.household-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem}.household-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem;margin-top:.8rem}.household-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;font-weight:700}.household-grid input{width:100%;padding:.6rem;border:1px solid var(--border-color,#ccd2d8);border-radius:8px;background:var(--section-bg,#fff);color:inherit}.household-summary{margin-top:.8rem;padding:.65rem .75rem;border-radius:8px;background:rgba(244,123,32,.08);font-weight:700}.readiness-test-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.readiness-test-panel>div:first-child{flex:1 1 360px}.readiness-test-result{flex-basis:100%;padding:.8rem;border-radius:10px;background:rgba(127,127,127,.07)}.readiness-test-result ul{margin:.5rem 0 0 1.2rem;display:grid;gap:.3rem}
@media(max-width:700px){.household-grid{grid-template-columns:1fr 1fr}.household-config-btn{width:100%}}

/* BUILD 0025 · compact mobile action panels */
.tool-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.tool-panel-heading>div{min-width:0;flex:1}.panel-toggle-btn{flex:0 0 auto;min-width:84px;padding:.65rem .8rem;border:1px solid var(--border-color,#5b6574);border-radius:10px;background:transparent;color:inherit;font:inherit;font-weight:700;cursor:pointer}.panel-toggle-btn:focus-visible{outline:3px solid currentColor;outline-offset:2px}.tool-panel-body{margin-top:1rem}.tool-panel-body[hidden]{display:none!important}@media(max-width:640px){.tool-panel-heading{gap:.55rem}.panel-toggle-btn{min-width:72px;padding:.55rem .65rem}.readiness-test-panel,.crisis-panel{scroll-margin-top:1rem}}

/* BUILD 0025 · compact actionable readiness test */
.readiness-test-panel{display:block}
.readiness-test-panel .tool-panel-heading{width:100%}
.readiness-test-panel .tool-panel-body{width:100%;margin-top:.8rem}
.readiness-test-result{padding:0;background:transparent}
.readiness-result-head{padding:.85rem 1rem;border-radius:10px;background:rgba(244,123,32,.09);margin-bottom:.55rem}
.readiness-issue-list{display:grid;gap:.45rem}
.readiness-issue{width:100%;display:grid;grid-template-columns:1.4rem 1fr 1rem;align-items:center;gap:.65rem;text-align:left;padding:.75rem .85rem;border:1px solid var(--border-color,#d7dce2);border-radius:10px;background:var(--section-bg,#fff);color:inherit;cursor:pointer;font:inherit}
.readiness-issue:hover{background:rgba(127,127,127,.07)}
.readiness-issue:focus-visible{outline:3px solid currentColor;outline-offset:2px}
.readiness-issue-mark{font-size:1.25rem;line-height:1}
.readiness-issue strong,.readiness-issue small{display:block}.readiness-issue small{margin-top:.15rem;color:var(--text-secondary,#667085);font-size:.8rem}
.readiness-issue-arrow{font-size:1.5rem;opacity:.6}
.readiness-test-actions{display:flex;gap:.6rem;justify-content:flex-end;flex-wrap:wrap;margin-top:.75rem}
.readiness-ready{padding:.9rem 1rem;border-radius:10px;background:rgba(50,160,90,.10);font-weight:700}
.readiness-target{outline:3px solid rgba(244,123,32,.7);outline-offset:3px;transition:outline-color .4s ease}
@media(max-width:640px){.readiness-test-actions{display:grid;grid-template-columns:1fr 1fr}.readiness-test-actions .forge-btn{width:100%}.readiness-issue{padding:.7rem}}


/* BUILD 0025 · intelligent household + evacuation priority */
.evacuation-active .checklist-item.evac-required{background:rgba(244,123,32,.14);border-left:6px solid #f47b20;padding-left:calc(1rem - 6px)}
.evacuation-active .checklist-item.evac-ready{background:rgba(42,157,88,.11);border-left:6px solid #2a9d58;padding-left:calc(1rem - 6px)}
.evac-badge{display:inline-flex;align-items:center;margin-left:.65rem;padding:.2rem .48rem;border-radius:999px;background:#f47b20;color:#111;font-size:.66rem;font-weight:900;letter-spacing:.06em;vertical-align:middle;white-space:nowrap}
.evac-ready .evac-badge{background:#2a9d58;color:#fff}
.evacuation-active .checklist-item.dimmed{opacity:.32}
@media(max-width:700px){.household-grid{grid-template-columns:1fr 1fr}.evac-badge{display:flex;width:max-content;margin:.35rem 0 0}}


/* BUILD 0025 — maintenance layer */
.maintenance-row{margin-top:.65rem;padding:.55rem .7rem;border-radius:.65rem;display:flex;align-items:center;justify-content:space-between;gap:.7rem;font-size:.78rem;border:1px solid var(--border-color,#d8dde3);background:rgba(120,120,120,.05)}
.maintenance-row.maintenance-due{border-color:rgba(255,145,65,.55);background:rgba(255,145,65,.10)}
.maintenance-row.maintenance-ok{opacity:.78}
.maintenance-check-btn{border:1px solid rgba(255,145,65,.65);border-radius:.55rem;padding:.35rem .55rem;background:transparent;font-weight:700;white-space:nowrap;cursor:pointer;color:inherit}
.maintenance-check-btn:hover{background:rgba(255,145,65,.12)}
@media(max-width:640px){.maintenance-row{align-items:flex-start;flex-direction:column}.maintenance-check-btn{width:100%}}
@media print{.maintenance-row{display:none!important}}

/* BUILD 0026 · household validation */
.household-summary-warning{color:var(--forge-orange,#f47b20);font-weight:700;}
.household-attention{animation:householdPulse .55s ease 3;}
@keyframes householdPulse{50%{box-shadow:0 0 0 4px rgba(244,123,32,.28);}}


/* BUILD 0028 — capabilities */
.capacity-panel{margin:18px 0;padding:18px;border:1px solid var(--border-color,#3a3f47);border-radius:16px;background:rgba(255,255,255,.025)}
.capacity-head{margin-bottom:12px}.capacity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.capacity-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;text-align:left;padding:13px 14px;border-radius:12px;border:1px solid var(--border-color,#3a3f47);background:rgba(255,255,255,.035);color:inherit;cursor:pointer}
.capacity-card:hover:not(:disabled){transform:translateY(-1px);border-color:var(--accent-color,#f59e0b)}.capacity-card:disabled{cursor:default;opacity:1}
.capacity-icon{font-size:1.35rem}.capacity-copy{display:flex;flex-direction:column;min-width:0}.capacity-copy strong{font-size:.95rem}.capacity-copy small{font-size:.76rem;opacity:.7;margin-top:2px}.capacity-state{font-size:.72rem;font-weight:800;letter-spacing:.04em;padding:5px 7px;border-radius:999px;white-space:nowrap}
.capacity-ready .capacity-state{background:rgba(34,197,94,.15);color:#86efac}.capacity-partial .capacity-state{background:rgba(245,158,11,.16);color:#fbbf24}.capacity-missing .capacity-state{background:rgba(239,68,68,.15);color:#fca5a5}
.capacity-ready{border-left:4px solid #22c55e}.capacity-partial{border-left:4px solid #f59e0b}.capacity-missing{border-left:4px solid #ef4444}
@media(max-width:820px){.capacity-grid{grid-template-columns:1fr}.capacity-panel{padding:14px}.capacity-card{padding:12px}}
@media print{.capacity-panel{display:none!important}}

/* BUILD 0028: special household needs */
.special-needs-block{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color,#d7d7d7)}
.special-needs-title{display:block;margin-bottom:.25rem}
.special-needs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem .8rem;margin-top:.7rem}
.special-needs-grid label{display:flex;align-items:center;gap:.55rem;padding:.6rem .7rem;border:1px solid var(--border-color,#d7d7d7);border-radius:.65rem;cursor:pointer}
.special-needs-grid input{width:1.1rem;height:1.1rem;accent-color:var(--accent-color,#f59e0b)}
@media(max-width:640px){.special-needs-grid{grid-template-columns:1fr}}
@media print{.special-needs-block{display:none!important}}


/* BUILD 0031 · scenario-based preparedness test */
.scenario-test{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color,#d7dce2)}
.scenario-test-head{display:grid;gap:.18rem;margin-bottom:.7rem}.scenario-test-head strong{font-size:.78rem;letter-spacing:.08em}.scenario-test-head span{font-size:.88rem;color:var(--text-secondary,#667085)}
.scenario-buttons{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem}.scenario-btn{min-height:52px;padding:.65rem;border:1px solid var(--border-color,#d7dce2);border-radius:10px;background:var(--section-bg,#fff);color:inherit;font:inherit;font-weight:750;cursor:pointer}.scenario-btn:hover{background:rgba(244,123,32,.08)}.scenario-btn:focus-visible{outline:3px solid currentColor;outline-offset:2px}
.scenario-result{margin-top:.7rem}.scenario-result-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.8rem 1rem;border-radius:10px;background:rgba(127,127,127,.07);margin-bottom:.55rem}.scenario-result-head>strong{font-size:.95rem}.scenario-state{font-size:.78rem;font-weight:850;text-align:right}.scenario-state-warn{color:#b85c00}.scenario-state-ready{color:#24834b}
@media(max-width:900px){.scenario-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.scenario-buttons{grid-template-columns:1fr}.scenario-result-head{align-items:flex-start;flex-direction:column}.scenario-state{text-align:left}}
@media print{.scenario-test{display:none!important}}


/* BUILD 0031 · offline hardening */
.connection-status{position:absolute;left:1rem;top:1rem;z-index:4;padding:.38rem .62rem;border:1px solid currentColor;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.06em;background:rgba(17,19,24,.82);color:#fff;backdrop-filter:blur(6px)}
@media(max-width:640px){.connection-status{top:.65rem;left:.65rem;font-size:.64rem;padding:.3rem .5rem}}
@media print{.connection-status{display:none!important}}
\n\n/* BUILD 0035 · product information polish */\n.product-modal{max-width:560px;padding:0;overflow:hidden;border-radius:20px!important;}\n.product-modal>*{margin-left:2rem;margin-right:2rem;}\n.product-modal .modal-kicker{margin-top:1.7rem;}\n.release-modal #changelog-modal-title,.about-modal-card #about-modal-title{font-size:1.65rem;line-height:1.12;margin-top:.25rem;}\n.release-modal #changelog-modal-intro{line-height:1.55;margin-bottom:1.15rem;}\n.release-notes{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;}\n.release-note{padding:1rem;border-radius:14px;min-height:128px;}\n.release-note p{margin:0;line-height:1.5;}\n.release-modal #changelog-close{width:auto;margin:1.2rem 2rem 1.7rem;}\n.about-brandline{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.7rem;}\n.about-brandline .modal-kicker{margin:0;}\n.about-build{font-size:.72rem;color:var(--text-secondary);letter-spacing:.04em;white-space:nowrap;}\n.about-lead{font-size:.98rem;line-height:1.55;margin-bottom:1.15rem;}\n.about-info-grid{display:grid;gap:.7rem;}\n.about-info-block{padding:.95rem 1rem;border:1px solid var(--forge-line);border-radius:14px;background:rgba(255,255,255,.025);}\n.about-info-block strong{display:block;margin-bottom:.28rem;color:var(--text-default);}\n.about-info-block p{margin:0;color:var(--text-secondary);font-size:.86rem;line-height:1.5;}\n.about-disclaimer{border-left:3px solid var(--forge-orange);}\n.about-copyright{padding:.9rem 0 .1rem;color:var(--text-secondary);font-size:.75rem;}\n.about-actions{display:flex;gap:.65rem;padding:1rem 0 1.7rem;border-top:1px solid var(--forge-line);margin-top:.75rem;}\n.about-actions .forge-btn{margin:0;width:auto;}\n[data-theme="light"] .about-info-block{background:rgba(20,26,34,.025);}\n@media(max-width:650px){\n .product-modal>*{margin-left:1.2rem;margin-right:1.2rem;}\n .release-notes{grid-template-columns:1fr;}\n .release-note{min-height:0;}\n .release-modal #changelog-close{margin:1rem 1.2rem 1.3rem;width:calc(100% - 2.4rem);}\n .about-brandline{align-items:flex-start;flex-direction:column;gap:.35rem;}\n .about-actions{flex-direction:column;}\n .about-actions .forge-btn{width:100%;}\n}\n

/* BUILD 0035 · PWA installation */
.install-banner{position:relative;display:flex;align-items:center;gap:1rem;padding:.9rem 1rem;margin:0;border-bottom:1px solid var(--forge-line);background:linear-gradient(90deg,rgba(244,123,32,.16),rgba(244,123,32,.05));}
.install-banner[hidden]{display:none!important}.install-banner-copy{display:grid;gap:.15rem;flex:1;min-width:0}.install-banner-copy strong{font-size:.92rem}.install-banner-copy span{font-size:.8rem;color:var(--text-secondary)}.install-banner .forge-btn{width:auto;margin:0;white-space:nowrap}.install-dismiss{border:0;background:transparent;color:inherit;font-size:1.35rem;line-height:1;cursor:pointer;padding:.35rem;opacity:.7}.install-dismiss:hover{opacity:1}.about-install .forge-btn{width:auto;margin:.7rem 0 0}.about-install p{margin-bottom:0}
@media(max-width:650px){.install-banner{align-items:stretch;flex-wrap:wrap;padding:.85rem}.install-banner-copy{flex-basis:calc(100% - 2.5rem)}.install-banner .forge-btn{width:100%;order:3}.install-dismiss{margin-left:auto}.about-install .forge-btn{width:100%}}
@media print{.install-banner{display:none!important}}


/* BUILD 0035 · browser-neutral install assistant */
.install-assistant-modal{max-width:520px;padding:1.6rem 2rem 1.8rem;}
.install-assistant-modal .modal-kicker{margin:0 0 .35rem;}
.install-assistant-actions{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1.15rem;}
.install-assistant-actions .forge-btn{width:auto;margin:0;}
.install-assistant-note{font-size:.76rem;line-height:1.45;color:var(--text-secondary);margin:.9rem 0 0;}
@media(max-width:650px){.install-assistant-modal{padding:1.3rem 1.2rem 1.4rem}.install-assistant-actions{flex-direction:column}.install-assistant-actions .forge-btn{width:100%}}

/* BUILD 0036 · responsive installation polish */
@media (min-width: 651px) {
  .install-banner {
    max-width: 1030px;
    margin: .8rem auto .25rem;
    padding: .75rem .9rem .75rem 1rem;
    border: 1px solid var(--forge-line);
    border-left: 3px solid var(--forge-orange);
    border-radius: 14px;
    background: linear-gradient(100deg, rgba(244,123,32,.12), rgba(255,255,255,.018) 48%, rgba(255,255,255,.01));
    box-shadow: 0 8px 24px rgba(0,0,0,.06);
  }
  .install-banner-copy {
    display: flex;
    align-items: baseline;
    gap: .55rem;
    overflow: hidden;
  }
  .install-banner-copy strong {
    flex: 0 0 auto;
    font-size: .86rem;
    letter-spacing: .01em;
  }
  .install-banner-copy span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .78rem;
  }
  .install-banner .forge-btn {
    min-height: 38px;
    padding: .55rem .85rem;
    font-size: .82rem;
  }
  .install-dismiss {
    flex: 0 0 auto;
    font-size: 1.15rem;
  }
}
@media (min-width: 1180px) {
  .install-banner { max-width: 1080px; }
}
