.paper-review { max-width: 1180px; width: 100%; margin: 0 auto 4rem; color: #182b38; }
.paper-review h1 { font-size: 2rem; font-weight: 650; letter-spacing: -.035em; line-height: 1.15; }
.paper-review h2 { font-size: 1.2rem; font-weight: 650; letter-spacing: -.015em; }
.paper-review h3 { font-weight: 650; }
.paper-review p { line-height: 1.6; }
.paper-top { display: flex; justify-content: space-between; align-items: start; gap: 1.5rem; margin-bottom: 1.5rem; }
.paper-eyebrow { text-transform: uppercase; font-size: .7rem; font-weight: 750; letter-spacing: .13em; color: #426d68; margin-bottom: .5rem; }
.paper-muted { color: #61717b; font-size: .875rem; }
.paper-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.paper-button { display: inline-block; border: 1px solid #c9d4d7; border-radius: .4rem; padding: .55rem .8rem; font-size: .85rem; font-weight: 600; background: white; color: #244b48; cursor: pointer; }
.paper-button.primary { background: #245b54; border-color: #245b54; color: white; }
.paper-button:hover { filter: brightness(.96); }
.paper-link { color: #256459; text-decoration: underline; text-underline-offset: 3px; }
.paper-panel { border: 1px solid #dbe2e4; background: white; border-radius: .7rem; padding: 1.25rem; margin: 1rem 0; }
.paper-banner { padding: 1rem 1.2rem; margin: 1rem 0; border-radius: .5rem; background: #eef5f3; border-left: 4px solid #477e70; }
.paper-banner.warn { background: #fff7e8; border-color: #b78325; color: #644918; }
.paper-banner.error { background: #fff0ed; border-color: #b15c49; color: #813b2e; }
.paper-meta { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; font-size: .8rem; color: #61717b; margin-top: .65rem; }
.paper-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.paper-stat { background: #f5f8f8; padding: .9rem; border-radius: .4rem; min-width: 0; }
.paper-stat dt { color: #61717b; font-size: .75rem; }
.paper-stat dd { font-weight: 650; font-size: 1.25rem; margin-top: .2rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.paper-stock { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 2fr) minmax(145px, 1fr); gap: 1.25rem; padding: 1.3rem 0; border-top: 1px solid #e2e8ea; }
.paper-stock:first-child { border-top: 0; padding-top: 0; }
.paper-stock:last-child { padding-bottom: 0; }
.paper-stock h2 { font-size: 1rem; }
.paper-stock .paper-grid { gap: .5rem; }
.paper-stock .paper-stat { padding: .55rem; background: transparent; }
.paper-stock .paper-stat dd { font-size: 1rem; }
.paper-decision { border-left: 3px solid #5b8b73; padding-left: 1rem; }
.paper-decision.held { border-color: #c19542; }
.paper-badge { display: inline-block; border-radius: 99px; padding: .15rem .5rem; font-size: .7rem; font-weight: 700; background: #e7f1eb; color: #326043; }
.paper-badge.held { background: #fff0cf; color: #825d1f; }
.paper-form { display: flex; flex-wrap: wrap; align-items: end; gap: 1rem; }
.paper-form > div { min-width: 0; max-width: 100%; }
.paper-review label { display: block; font-size: .85rem; font-weight: 600; margin-bottom: .3rem; }
.paper-review input, .paper-review select { border: 1px solid #b9c9cd; border-radius: .35rem; padding: .55rem .7rem; background: white; max-width: 100%; }
.paper-review input:focus, .paper-review select:focus { outline: 2px solid #68998e; outline-offset: 2px; }
.paper-table-wrap { overflow-x: auto; }
.paper-table { width: 100%; border-collapse: collapse; font-size: .83rem; }
.paper-table th { text-align: left; padding: .65rem; color: #61717b; background: #f5f8f8; font-weight: 600; }
.paper-table td { padding: .7rem .65rem; border-top: 1px solid #e2e8ea; vertical-align: top; }
.paper-table tr.gap { background: #fff9ed; }
.paper-review details { margin-top: 1rem; }
.paper-review summary { cursor: pointer; font-weight: 600; padding: .3rem 0; }
.paper-review ul { padding-left: 1.1rem; list-style: disc; }
.paper-review li { margin-top: .4rem; }
.paper-empty { text-align: center; padding: 3.5rem 1.5rem; background: #f5f8f8; border: 1px dashed #b9c9cd; border-radius: .7rem; }
.paper-reference { display: grid; grid-template-columns: minmax(170px, 1.2fr) repeat(3, minmax(0, 1fr)); gap: 1rem; padding: 1rem 0; border-top: 1px solid #e2e8ea; }
@media (max-width: 700px) {
  .paper-top, .paper-stock { display: flex; flex-direction: column; }
  .paper-top h1 { font-size: 1.7rem; }
  .paper-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .paper-stock { gap: .8rem; }
  .paper-stock .paper-grid { width: 100%; }
  .paper-reference { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .paper-panel { padding: 1rem; }
  .paper-actions { width: 100%; }
}

.paper-usage-exceptions { border-top: 1px solid #e2e8ea; padding-top: .8rem; }
.paper-usage-exceptions summary { display: flex; align-items: center; gap: 1rem; list-style: none; }
.paper-usage-exceptions summary::-webkit-details-marker { display: none; }
.paper-usage-exceptions summary::after { content: "›"; font-size: 1.5rem; color: #326043; }
.paper-usage-exceptions[open] summary::after { transform: rotate(90deg); }
.paper-usage-exceptions summary:focus-visible { outline: 2px solid #68998e; outline-offset: 4px; }
.paper-usage-heading { flex: 1; }
.paper-usage-heading .paper-muted { display: block; font-weight: 400; font-size: .83rem; }
.paper-usage-count { font-weight: 400; font-size: .85rem; }
.paper-planning-heading { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.paper-planning-stats { margin: 1.2rem 0; }
.paper-runout { color: #b15c49; }
.paper-chart { border-top: 1px solid #e2e8ea; margin-top: 1.5rem; padding-top: 1rem; }
.paper-chart svg { display: block; width: 100%; height: auto; overflow: visible; margin-top: .7rem; }
.paper-chart svg text { font: 13px system-ui, sans-serif; fill: #61717b; }
.paper-chart-axis { stroke: #c9d4d7; stroke-width: 2; }
.paper-chart-grid { stroke: #e2e8ea; stroke-width: 1; }
.paper-chart-zero { stroke: #8b9da5; stroke-width: 2; stroke-dasharray: 5 5; }
.paper-chart-history { fill: none; stroke: #477e70; stroke-width: 4; }
.paper-chart-future { fill: none; stroke: #477e70; stroke-width: 4; stroke-dasharray: 9 7; }
.paper-chart-count-dot { fill: #477e70; stroke: white; stroke-width: 2; }
.paper-chart-asof-dot { fill: #26a6a6; stroke: white; stroke-width: 2; }
.paper-chart-runout-dot { fill: #d7762d; stroke: white; stroke-width: 2; }
.paper-chart svg .paper-chart-runout-label { fill: #ad5624; font-weight: 700; }
.paper-chart-demand { fill: none; stroke: #477e70; stroke-width: 3; }
.paper-chart-required { fill: none; stroke: #b78325; stroke-width: 3; }
.paper-chart-safety-band { fill: #f8e9c9; opacity: .85; }
.paper-chart-available { stroke: #345b72; stroke-width: 3; stroke-dasharray: 5 5; }
.paper-chart-selected { stroke: #c19542; stroke-width: 2; stroke-dasharray: 3 4; }
.paper-chart-gap { stroke: #d7762d; stroke-width: 4; }
.paper-chart-gap-dot { fill: #d7762d; }
.paper-chart-legend { font-size: .83rem; }
.paper-chart-anchors { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; font-size: .83rem; color: #405763; margin-top: .25rem; }
.paper-chart-legend span { display: inline-block; width: .7rem; height: .7rem; border-radius: 50%; margin: 0 .2rem 0 .7rem; }
.paper-chart-legend span:first-child { margin-left: 0; }
.paper-legend-count, .paper-legend-demand { background: #477e70; }
.paper-legend-asof { background: #26a6a6; }
.paper-legend-runout { background: #d7762d; }
.paper-legend-safety { background: #f0ce87; }
.paper-legend-available { background: #345b72; }
.paper-gap-callout { border-left: 3px solid #d7762d; padding: .6rem .8rem; background: #fff7e8; }
.paper-replenishment { border-top: 1px solid #e2e8ea; margin-top: 1.5rem; padding-top: 1.25rem; }
.paper-replenishment .paper-form { margin-top: 1rem; }
.paper-weekly-plan { border-top: 1px solid #e2e8ea; padding-top: .8rem; }
.paper-weekly-plan summary { color: #245b54; }
.paper-why-estimate summary h2 { display: inline; }
.paper-selected-week { background: #e7f1eb; }
@media (max-width: 700px) {
  .paper-usage-exceptions summary { flex-wrap: wrap; gap: .5rem; }
  .paper-usage-heading { flex-basis: calc(100% - 2rem); }
  .paper-usage-exceptions summary::after { order: 1; }
  .paper-usage-count { order: 2; flex-basis: 100%; }
  .paper-planning-heading { flex-direction: column; }
}
.paper-detail-meta { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1.5rem; margin: 1rem 0; color: #536b69; font-size: .86rem; }
.paper-answer-board { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 1.5rem 0; }
.paper-answer-board a { display: block; min-width: 0; padding: 1.15rem; border: 1px solid #bad4ca; border-radius: .7rem; background: white; color: #163e3b; text-decoration: none; }
.paper-answer-board a:hover, .paper-answer-board a:focus-visible { border-color: #22766d; background: #f2f7f5; }
.paper-answer-board span, .paper-answer-board small { display: block; font-size: .78rem; color: #57716f; }
.paper-answer-board strong { display: block; margin: .45rem 0; font-size: 1.35rem; line-height: 1.2; overflow-wrap: anywhere; }
.paper-trend-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.paper-trend-card { border: 1px solid #dbe2e4; border-radius: .7rem; background: white; padding: 1rem 1.2rem; }
.paper-trend-card h2 { font-size: .76rem; text-transform: uppercase; letter-spacing: .06em; color: #57716f; }
.paper-trend-card strong { display: block; margin: .4rem 0; font-size: 1.3rem; }
.paper-trend-card p { margin: 0; color: #57716f; font-size: .82rem; }
.paper-question { scroll-margin-top: 1rem; padding: 1.5rem; }
.paper-question-heading { display: flex; align-items: center; gap: .8rem; margin-bottom: 1rem; }
.paper-question-heading span { flex: none; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: #e9f3ef; color: #163e3b; text-align: center; line-height: 2.2rem; font-weight: 800; }
.paper-question-heading h2 { font-size: 1.35rem; }
.paper-planning-stats .paper-stat dd { font-size: 1.45rem; }
.paper-stat small { display: block; color: #61717b; font-size: .75rem; }
.paper-arithmetic { margin-top: 1rem; padding: .85rem 1rem; border-left: 3px solid #95bbb2; background: #f8faf9; font-size: .86rem; }
.paper-presets { display: flex; flex-wrap: wrap; gap: .5rem; margin: .9rem 0; }
.paper-scenario-form { margin: 1rem 0; }
.paper-amount-control > div { display: flex; gap: .4rem; }
.paper-amount-control input[type=number] { width: 5.5rem; }
.paper-answer { margin-top: 1rem; padding: 1.2rem; border: 1px solid #bed8cd; border-radius: .65rem; background: #eef7f2; }
.paper-answer.warn { border-color: #ecd0a3; background: #fff8ed; }
.paper-answer strong { display: block; font-size: 1.6rem; line-height: 1.2; }
.paper-answer span { display: block; color: #57716f; font-size: .83rem; }
.paper-answer p { margin: .4rem 0 0; font-size: .86rem; }
.paper-mill-controls { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.paper-info { position: relative; margin: 0 !important; }
.paper-info summary { display: flex; align-items: center; justify-content: center; width: 1.7rem; height: 1.7rem; border: 1px solid #9dbbb1; border-radius: 50%; list-style: none; cursor: pointer; }
.paper-info summary::-webkit-details-marker { display: none; }
.paper-info p { position: absolute; z-index: 5; right: 0; width: min(20rem, 80vw); padding: .8rem; border-radius: .4rem; background: #163e3b; color: white; font-size: .8rem; box-shadow: 0 5px 20px #0002; }
.paper-audit > summary { font-size: 1rem; }
.paper-detail-footer { margin: 1.5rem 0 3rem; }
.paper-detail a:focus-visible, .paper-detail summary:focus-visible, .paper-detail button:focus-visible { outline: 3px solid #b88d29; outline-offset: 3px; }
@media (max-width: 700px) {
  .paper-answer-board, .paper-trend-grid, .paper-question .paper-grid { grid-template-columns: 1fr; }
  .paper-question { padding: 1rem; }
  .paper-question-heading h2 { font-size: 1.15rem; }
  .paper-detail-meta { display: block; }
  .paper-detail-meta span { display: block; margin: .2rem 0; }
}
.paper-inline-info p { position: static; width: 12rem; max-width: 100%; box-shadow: none; margin: .35rem 0; }
