.stock-demand-page{padding:1rem}.stock-demand-page .page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.stock-demand-page .page-header h1{margin:0}.stock-demand-page .header-meta{color:var(--color-text-muted);gap:1.5rem;font-size:.875rem;display:flex}.stock-demand-page .forecast-age.stale{color:#b45309;font-weight:600}.stock-demand-page .coverage-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;font-size:.85rem;display:flex}.stock-demand-page .coverage-units-note{color:var(--color-text-muted);font-size:.75rem}.stock-demand-table{border-collapse:collapse;width:100%;min-width:760px;font-size:.875rem}.stock-demand-table th,.stock-demand-table td{border-bottom:1px solid var(--color-border);padding:.5rem .75rem}.stock-demand-table th{text-align:left;background:var(--color-surface);font-weight:600;position:sticky;top:0}.stock-demand-table th.right,.stock-demand-table td.right{text-align:right}.stock-demand-table .header-groups th{border-bottom:none;padding-bottom:.25rem}.stock-demand-table .group-header{text-align:center;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);border-left:1px solid var(--color-border);font-size:.7rem;font-weight:500}.stock-demand-table td.muted,.stock-demand-table .cover-cell.muted{color:var(--color-text-muted);opacity:.6;font-weight:400}.stock-demand-table .beer-name{white-space:nowrap;font-weight:500}.stock-demand-table .flagship-star{color:#b45309}.stock-demand-table tr.coverage-row.warning{background:#b4530914}.stock-demand-table tr.coverage-row.critical{background:#7c3aed17}.stock-demand-table tr.coverage-row.quiet{opacity:.55}.stock-demand-table .cover-cell{font-weight:700}.stock-demand-table .cover-cell.warning{color:#b45309}.stock-demand-table .cover-cell.critical{color:#7c3aed}.stock-demand-table .drift-tag{text-transform:uppercase;letter-spacing:.05em;color:#b45309;border:1px solid #b45309;border-radius:3px;margin-left:.4rem;padding:0 .25rem;font-size:.65rem;font-weight:700}.stock-demand-table .status-chip{white-space:nowrap;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;padding:.15rem .5rem;font-size:.75rem;display:inline-block}.stock-demand-table .status-chip.warning{color:#7c3a00;background:#fff4dc;border-color:#b45309}.stock-demand-table .status-chip.critical{color:#4c1d95;background:#ede4ff;border-color:#7c3aed;font-weight:600}.stock-demand-page .legend{color:var(--color-text-muted);flex-wrap:wrap;gap:1.5rem;margin-top:1rem;font-size:.75rem;display:flex}.stock-demand-page .loading,.stock-demand-page .error{text-align:center;padding:2rem}.stock-demand-table .action-col{text-align:center;width:70px}.stock-demand-table .correct-btn{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;color:var(--color-text);border-radius:4px;padding:.25rem .5rem;font-size:.75rem;transition:all .15s}.stock-demand-table .correct-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.count-modal-overlay{z-index:1000;background:#0000008c;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.count-modal{background:var(--color-background,#fff);color:var(--color-text,#1a1a1a);border-radius:10px;width:100%;max-width:420px;max-height:90vh;padding:1.25rem;overflow-y:auto}.count-modal-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.count-modal-header h2{margin:0;font-size:1.15rem}.count-modal-close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:.25rem .5rem;font-size:1.1rem}.count-modal-note{color:var(--color-text-muted);margin-bottom:.75rem;font-size:.8rem}.count-modal-fields{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.count-modal-field{grid-template-columns:1fr auto 90px;align-items:center;gap:.6rem;display:grid}.count-modal-field label{font-size:.85rem;font-weight:500}.count-modal-current{color:var(--color-text-muted);white-space:nowrap;font-size:.75rem}.count-modal-field input{border:1px solid var(--color-border);text-align:right;border-radius:6px;width:90px;padding:.4rem .5rem;font-size:1rem}.count-modal-submit{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:.6rem;font-size:.95rem;font-weight:600}.count-modal-submit:disabled{opacity:.5;cursor:default}.count-modal-result strong{margin-bottom:.5rem;display:block}.count-modal-verdicts{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.count-modal-verdict{background:var(--color-surface);border-left:3px solid var(--color-border);border-radius:6px;padding:.45rem .6rem;font-size:.85rem}.count-modal-verdict.warning{background:#fff4dc;border-left-color:#b45309}.count-modal-verdict.critical{background:#ede4ff;border-left-color:#7c3aed;font-weight:600}.count-modal-severity{text-transform:uppercase;letter-spacing:.05em;color:#b45309;margin-left:.5rem;font-size:.7rem;font-weight:700}.count-modal-verdict.critical .count-modal-severity{color:#7c3aed}@media (max-width:768px){.stock-demand-page{padding:.5rem}.stock-demand-page .table-scroll-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}}
.stock-correction-page{max-width:600px;padding:1rem}.stock-correction-page h2{margin-bottom:.5rem}.stock-correction-description{color:var(--color-text-secondary);margin-bottom:1.5rem}.stock-correction-error{color:#c62828;border-radius:var(--radius-md);cursor:pointer;background:#ffebee;border:1px solid #c62828;margin-bottom:1rem;padding:.75rem 1rem}.stock-correction-success{color:#2e7d32;border-radius:var(--radius-md);background:#e8f5e9;border:1px solid #2e7d32;margin-bottom:1rem;padding:.75rem 1rem;line-height:1.6}.stock-correction-success strong{margin-bottom:.25rem;display:block}.stock-correction-type-toggle{gap:.5rem;margin-bottom:1.5rem;display:flex}.stock-correction-type-toggle button{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);min-height:44px;color:var(--color-text);cursor:pointer;flex:1;padding:.65rem .5rem;font-size:1rem;font-weight:600}.stock-correction-type-toggle button.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.stock-correction-type-toggle button:hover:not(.active){background:var(--color-grey-bg)}.stock-correction-form{background:var(--color-bg-light);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem}.stock-correction-field{margin-bottom:1rem}.stock-correction-field label{margin-bottom:.25rem;font-size:.9rem;font-weight:500;display:block}.stock-correction-field select,.stock-correction-field input,.stock-correction-field textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background);width:100%;color:var(--color-text);box-sizing:border-box;min-height:44px;padding:.65rem .5rem;font-size:1rem}.stock-correction-field textarea{resize:vertical;min-height:60px}.stock-correction-field select{appearance:auto}.stock-correction-loading{color:var(--color-text-muted);padding:.5rem 0;font-size:.9rem}.stock-correction-reference{border-radius:var(--radius-sm);color:var(--color-text-secondary);background:#c59a2e14;border:1px solid #c59a2e40;margin-bottom:1rem;padding:.6rem .75rem;font-size:.9rem}.stock-correction-field-tiles{grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem;display:grid}.stock-correction-tile{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);min-height:72px;color:var(--color-text);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.25rem;padding:.75rem;display:flex}.stock-correction-tile:active{transform:scale(.97)}.stock-correction-tile.zero{opacity:.45}.stock-correction-tile-label{color:var(--color-text-secondary);font-size:.85rem;font-weight:500}.stock-correction-tile-value{font-size:1.5rem;font-weight:700}.stock-correction-tile-hint{color:var(--color-text-muted);font-size:.75rem;font-weight:400}.stock-correction-back-link{color:var(--color-primary);cursor:pointer;background:0 0;border:none;margin-bottom:.75rem;padding:.25rem 0;font-size:.9rem;display:inline-block}.stock-correction-back-link:hover{text-decoration:underline}.stock-correction-variance{font-weight:600}.stock-correction-variance.negative{color:#c62828}.stock-correction-variance-note{color:var(--color-text-muted);margin-top:.5rem;font-size:.8rem;font-style:italic}.stock-correction-coverage{color:#1a1a1a;border-top:1px solid #00000026;margin-top:.75rem;padding-top:.6rem}.stock-correction-coverage-row{border-radius:var(--radius-md);padding:.35rem .5rem;font-size:.9rem}.stock-correction-coverage-row.warning{background:#fff4dc;border-left:3px solid #b45309}.stock-correction-coverage-row.critical{background:#fde8c8;border-left:3px solid #7c3aed;font-weight:600}.stock-correction-coverage-severity{text-transform:uppercase;letter-spacing:.05em;color:#b45309;margin-left:.5rem;font-size:.72rem;font-weight:700}.stock-correction-coverage-row.critical .stock-correction-coverage-severity{color:#7c3aed}.stock-correction-sack-hint{color:var(--color-text-muted);margin-top:.25rem;font-size:.85rem}.stock-correction-count-age{color:var(--color-text-muted);text-align:center;margin-bottom:.5rem;font-size:.8rem}.stock-correction-submit{background:var(--color-primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;width:100%;min-height:48px;margin-top:.25rem;padding:.75rem 1rem;font-size:1rem;font-weight:600}.stock-correction-submit:disabled{opacity:.5;cursor:not-allowed}.stock-correction-submit:hover:not(:disabled){background:var(--color-primary-dark)}
.brew-planner-page{padding:1rem}.brew-planner-page .page-header{margin-bottom:1.5rem}.brew-planner-page .page-header h1{margin:0 0 .25rem}.brew-planner-page .subtitle{color:var(--color-text-muted);margin:0}.brew-planner-page .error-banner{border:1px solid var(--color-error);color:var(--color-error);background:#dc35451a;border-radius:6px;margin-bottom:1rem;padding:.75rem 1rem}.brew-planner-page .planner-layout{grid-template-columns:2fr 1fr;gap:1.5rem;margin-bottom:2rem;display:grid}@media (max-width:900px){.brew-planner-page .planner-layout{grid-template-columns:1fr}}.brew-planner-page .beer-selection h2,.brew-planner-page .selected-brews h2{border-bottom:1px solid var(--color-border);margin:0 0 1rem;padding-bottom:.5rem;font-size:1.1rem}.brew-planner-page .beer-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;display:grid}.brew-planner-page .beer-card{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;border-radius:8px;padding:.75rem;transition:all .15s;position:relative}.brew-planner-page .beer-card:hover:not(.selected){border-color:var(--color-primary);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.brew-planner-page .beer-card.selected{border-color:var(--color-success);cursor:default;background:#28a7450d}.brew-planner-page .beer-card-name{margin-bottom:.5rem;font-weight:600}.brew-planner-page .beer-card-meta{color:var(--color-text-muted);flex-direction:column;gap:.25rem;font-size:.75rem;display:flex}.brew-planner-page .recipe-source.batch{color:var(--color-success)}.brew-planner-page .recipe-source.brewfather{color:var(--color-primary)}.brew-planner-page .selected-badge{background:var(--color-success);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.75rem;font-weight:700;display:flex;position:absolute;top:.5rem;right:.5rem}.brew-planner-page .selected-brews{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1rem}.brew-planner-page .empty-state{color:var(--color-text-muted);text-align:center;padding:2rem 0;font-style:italic}.brew-planner-page .brew-list{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.brew-planner-page .brew-item{background:var(--color-bg);border-radius:6px;align-items:center;gap:.5rem;padding:.5rem;display:flex}.brew-planner-page .brew-name{flex:1;font-weight:500}.brew-planner-page .scale-toggle{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:4px;padding:.25rem .5rem;font-size:.75rem;transition:all .15s}.brew-planner-page .scale-toggle.full{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.brew-planner-page .scale-toggle.half{background:var(--color-warning);color:#333;border-color:var(--color-warning)}.brew-planner-page .remove-btn{color:var(--color-error);cursor:pointer;opacity:.7;background:0 0;border:none;padding:.25rem;font-size:1rem}.brew-planner-page .remove-btn:hover{opacity:1}.brew-planner-page .calculate-btn{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:6px;width:100%;padding:.75rem 1rem;font-size:.9rem;font-weight:600;transition:background .15s}.brew-planner-page .calculate-btn:hover:not(:disabled){background:var(--color-primary-dark,#005a9e)}.brew-planner-page .calculate-btn:disabled{opacity:.6;cursor:not-allowed}.brew-planner-page .results-section{border-top:2px solid var(--color-border);margin-top:2rem;padding-top:2rem}.brew-planner-page .results-section h2{margin:0 0 1rem}.brew-planner-page .shortfall-warning{border:1px solid var(--color-error);background:#dc35451a;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.brew-planner-page .shortfall-warning h3{color:var(--color-error);margin:0 0 .5rem}.brew-planner-page .shortfall-warning ul{margin:0;padding-left:1.5rem}.brew-planner-page .shortfall-warning li{margin-bottom:.25rem}.brew-planner-page .summary-cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.brew-planner-page .summary-card{background:var(--color-surface);border:1px solid var(--color-border);text-align:center;border-radius:8px;padding:1rem}.brew-planner-page .summary-value{color:var(--color-primary);font-size:1.5rem;font-weight:700}.brew-planner-page .summary-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:.25rem;font-size:.75rem}.brew-planner-page .ingredient-section{margin-bottom:1.5rem}.brew-planner-page .ingredient-section h3{margin:0 0 .75rem;font-size:1rem}.brew-planner-page .ingredient-table{border-collapse:collapse;width:100%;font-size:.875rem}.brew-planner-page .ingredient-table th,.brew-planner-page .ingredient-table td{border-bottom:1px solid var(--color-border);padding:.5rem .75rem}.brew-planner-page .ingredient-table th{text-align:left;background:var(--color-surface);font-weight:600}.brew-planner-page .ingredient-table th.right,.brew-planner-page .ingredient-table td.right{text-align:right}.brew-planner-page .ingredient-table tr.shortfall{background:#dc354514}.brew-planner-page .shortfall-text{color:var(--color-error);font-weight:600}.brew-planner-page .ok-text{color:var(--color-success);font-weight:500}.brew-planner-page .source-beers{color:var(--color-text-muted);max-width:200px;font-size:.75rem}
