.document-shell { max-width: 1050px; margin: 0 auto; padding: 2rem 1rem; }
.document-shell h1 { margin: .3rem 0 .6rem; font-size: 2.4rem; }
.document-shell p { line-height: 1.6; }
.doc-eyebrow { color: var(--text-muted); font-size: .8rem; letter-spacing: .14em; }
.doc-panel { padding: 1.3rem; margin: 1.5rem 0; background: var(--surface-raised); border: 1px solid var(--border-soft); border-top: 3px solid var(--accent); border-radius: var(--radius); }
.doc-panel label { display: block; margin: 1rem 0 .4rem; }
.doc-panel input { background: var(--bg); color: var(--text); border: 1px solid var(--border-soft); border-radius: 4px; padding: .65rem; font: inherit; }
#document-reward { width: 100%; box-sizing: border-box; }
#document-goal-select { width: 100%; min-height: 44px; background: var(--bg); color: var(--text); border: 1px solid var(--border-soft); padding: .65rem; border-radius: 4px; }
.doc-plan-all { display: flex; gap: .6rem; align-items: center; margin: 1rem 0; }
.doc-plan-all input { width: 20px; height: 20px; accent-color: var(--accent); }
.doc-table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
.doc-table th, .doc-table td { padding: .7rem .4rem; text-align: left; border-bottom: 1px solid var(--border-soft); }
.doc-table thead th { color: var(--text-muted); font-size: .85rem; }
.doc-table input { width: 4rem; box-sizing: border-box; }
.doc-counter { display: flex; gap: .35rem; align-items: center; }
.doc-counter button { min-width: 38px; min-height: 42px; font-size: 1.1rem; }
.doc-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }
#document-progress { width: 100%; height: 12px; accent-color: var(--accent); }
.doc-note { color: var(--text-muted); font-size: .85rem; }
.doc-warning { color: var(--warn); }
.doc-map { padding: 1rem 1.25rem; margin: 1rem 0; background: var(--surface); border: 1px solid var(--border-soft); border-radius: var(--radius); }
.doc-map h3 { margin: 0; }
.doc-map-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; }
.doc-map-heading p { margin-bottom: 0; }
.doc-map summary { cursor: pointer; padding: .6rem 0; }
.doc-locations { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.doc-locations li { padding: .8rem; background: var(--surface-raised); border-radius: 4px; }
.doc-locations p { margin: .3rem 0; }
.doc-locations img { width: 100%; max-height: 260px; object-fit: contain; }
.document-shell :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
#document-copy-text { width: 100%; min-height: 160px; box-sizing: border-box; margin-top: 1rem; }
@media (max-width: 600px) {
  .document-shell { padding: 1rem .6rem; }
  .doc-panel { padding: .8rem .5rem; }
  .doc-table th, .doc-table td { padding: .65rem .2rem; font-size: .85rem; }
  .doc-table input { width: 3.2rem; padding: .6rem .2rem; }
  .doc-counter { gap: .15rem; }
  .doc-counter button { min-width: 32px; min-height: 44px; padding: .35rem; }
  .doc-locations { grid-template-columns: 1fr; }
  .doc-actions .btn { min-height: 44px; }
}
