/* Rucking Tough brand — BRAND.md tokens */
:root{
  --color-field-olive:#3F4A2F; --color-deep-forest:#24301F; --color-ruck-black:#171A17;
  --color-khaki-canvas:#B8A77A; --color-bone-paper:#F2EAD8; --color-medal-brass:#B68A35;
  --color-dust-brown:#6C563A; --color-steel-gray:#5D625A; --color-march-red:#8E2F24;
  --color-ribbon-blue:#263F5E; --shadow-card:0 8px 24px rgba(23,26,23,.16);
}
*{box-sizing:border-box}
body{margin:0;font-family:'Inter',system-ui,sans-serif;font-size:17px;line-height:1.6;color:var(--color-ruck-black);background:var(--color-bone-paper)}
h1,h2,h3{font-family:'Oswald',sans-serif;text-transform:uppercase;color:var(--color-ruck-black);line-height:1.15}
h1{font-size:2.2rem;font-weight:700} h2{font-size:1.5rem;font-weight:600;margin-top:1.6em}
.slab{font-family:'Roboto Slab',serif;color:var(--color-field-olive)}
a{color:var(--color-field-olive)}
.test-banner{background:var(--color-march-red);color:var(--color-bone-paper);text-align:center;
  font-family:'Oswald',sans-serif;font-size:.8rem;letter-spacing:1.5px;text-transform:uppercase;padding:.45rem 1rem}
.site-header{background:var(--color-field-olive);display:flex;justify-content:space-between;align-items:center;padding:.7rem 1.2rem;flex-wrap:wrap;gap:.5rem}
.brand{font-family:'Oswald',sans-serif;font-weight:700;font-size:1.4rem;letter-spacing:2px;color:var(--color-bone-paper);text-decoration:none}
.brand span{color:var(--color-medal-brass)}
.site-header nav a{color:var(--color-bone-paper);text-decoration:none;margin-left:1rem;font-weight:600}
.nav-user{color:var(--color-khaki-canvas);font-size:.9rem}
main{max-width:1080px;margin:0 auto;padding:1.2rem}
.hero{background:var(--color-ruck-black);color:var(--color-bone-paper);border-radius:10px;padding:2.4rem 2rem;margin-bottom:1.6rem}
.hero h1{color:var(--color-bone-paper);font-size:2.6rem;margin:.2rem 0}
.hero-sub{max-width:640px}
.mission-label{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;font-size:.78rem;letter-spacing:1.5px;color:var(--color-field-olive)}
.mission-label.light{color:var(--color-medal-brass)}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem}
.mission-card{background:var(--color-bone-paper);border:1px solid var(--color-khaki-canvas);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-card)}
/* Product/medal imagery: the FULL image always displays inside its frame —
   contain-fit on a khaki-tinted mat (owner rule, 2026-10-29: no cropping). */
.mission-card img{width:100%;height:210px;object-fit:contain;display:block;padding:.6rem;
  background:color-mix(in srgb,var(--color-khaki-canvas) 26%,var(--color-bone-paper))}
.mission-card-body{padding:1rem 1.2rem 1.3rem}
.mission-card h3{margin:.3rem 0}
.mission-price{font-family:'Oswald',sans-serif;font-weight:600;color:var(--color-medal-brass);font-size:1.2rem}
.mission-price span{color:var(--color-steel-gray);font-size:.75rem;letter-spacing:1px}
/* Primary action = Medal Brass (guide). Olive is reserved for secondary,
   navigation, and staff actions via .btn-olive. */
.btn{display:inline-block;background:var(--color-medal-brass);color:var(--color-ruck-black);border:none;border-radius:4px;
  padding:.65rem 1.2rem;font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:1px;
  text-decoration:none;cursor:pointer;font-size:.95rem;margin:.2rem .3rem .2rem 0}
.btn:hover{background:#D1A64A}
.btn-brass{background:var(--color-medal-brass);color:var(--color-ruck-black)}
.btn-brass:hover{background:#D1A64A}
.btn-olive{background:var(--color-field-olive);color:var(--color-bone-paper)}
.btn-olive:hover{background:var(--color-deep-forest)}
.btn-ghost{background:transparent;border:2px solid var(--color-khaki-canvas);color:var(--color-bone-paper)}
.btn-small{padding:.4rem .8rem;font-size:.82rem}
.brief,.register-box{background:var(--color-bone-paper);border:1px solid var(--color-dust-brown);border-radius:8px;padding:1.2rem 1.5rem;margin-bottom:1.2rem;box-shadow:var(--shadow-card)}
.event-hero{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.2rem}
.event-hero img{width:320px;max-width:100%;height:260px;object-fit:contain;padding:.6rem;border-radius:8px;border:2px solid var(--color-medal-brass);
  background:color-mix(in srgb,var(--color-khaki-canvas) 26%,var(--color-bone-paper))}
.field{margin-bottom:1rem}
.field label{display:block;font-weight:600;margin-bottom:.3rem}
.sub-label{font-weight:400;font-size:.92rem;margin-top:.7rem}
.field input,.field select,.field textarea{width:100%;padding:.55rem;border:1px solid var(--color-steel-gray);border-radius:4px;font:inherit;background:#fff}
.field-note{font-size:.88rem;color:var(--color-steel-gray)}
.participation{background:var(--color-bone-paper);border-left:4px solid var(--color-medal-brass);padding:.8rem 1rem;border-radius:4px}
.check{display:block;font-weight:400;margin:.25rem 0}
.check input{width:auto;margin-right:.4rem}
.error{background:color-mix(in srgb,var(--color-march-red) 10%,var(--color-bone-paper));border:1px solid var(--color-march-red);color:var(--color-march-red);padding:.6rem .9rem;border-radius:4px}
.flash{background:var(--color-field-olive);color:var(--color-bone-paper);text-align:center;padding:.5rem}
.track{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin:.5rem 0}
.track-step{border:2px solid var(--color-khaki-canvas);border-radius:4px;padding:.15rem .6rem;font-family:'Oswald',sans-serif;font-size:.8rem;text-transform:uppercase;letter-spacing:1px;color:var(--color-steel-gray)}
.track-step.done{border-color:var(--color-field-olive);background:var(--color-field-olive);color:var(--color-bone-paper)}
.track-arrow{color:var(--color-medal-brass);font-weight:700}
.track-attention .track-state{border:2px solid var(--color-march-red);color:var(--color-march-red);border-radius:4px;padding:.15rem .6rem;font-family:'Oswald',sans-serif;text-transform:uppercase}
.reg-card{border:1px solid var(--color-khaki-canvas);border-radius:8px;padding:1rem 1.2rem;margin-bottom:1rem;background:var(--color-bone-paper)}
.roster{width:100%;border-collapse:collapse;font-size:.92rem}
.roster th{background:var(--color-field-olive);color:var(--color-bone-paper);text-align:left;padding:.45rem .6rem}
.roster td{border-bottom:1px solid var(--color-khaki-canvas);padding:.45rem .6rem;vertical-align:top}
.inline-form{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.inline-form input{padding:.5rem;border:1px solid var(--color-steel-gray);border-radius:4px;font:inherit}
.merch-row{display:flex;gap:.6rem;align-items:center;margin:.3rem 0}
.merch-row input{width:70px;padding:.35rem}
.stamp{display:inline-block;border:2px solid var(--color-march-red);color:var(--color-march-red);border-radius:4px;
  font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:1.5px;text-transform:uppercase;padding:.1rem .5rem;transform:rotate(-2deg)}
.earned li{margin:.5rem 0}
.test-account{display:flex;justify-content:space-between;align-items:center;gap:1rem;border:1px solid var(--color-khaki-canvas);border-radius:8px;padding:.9rem 1.1rem;margin-bottom:.8rem;background:var(--color-bone-paper);flex-wrap:wrap}
.steps li{margin:.25rem 0}
.site-footer{background:var(--color-ruck-black);color:var(--color-bone-paper);text-align:center;padding:1.4rem 1rem;margin-top:2rem}
.site-footer p{margin:.2rem 0;font-family:'Roboto Slab',serif}
.footer-note{font-family:'Inter',sans-serif!important;font-size:.8rem;color:var(--color-khaki-canvas)}
code{background:var(--color-bone-paper);padding:.1rem .4rem;border-radius:4px}
.pill{display:inline-block;border-radius:4px;padding:.1rem .55rem;font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:1.5px;text-transform:uppercase;border:2px solid var(--color-steel-gray);color:var(--color-steel-gray);margin-right:.35rem}
.pill-open{border-color:var(--color-field-olive);color:var(--color-field-olive)}
.pill-closed{border-color:var(--color-march-red);color:var(--color-march-red)}
.pill-class{border-color:var(--color-medal-brass);color:var(--color-dust-brown)}
.shop-card img{width:100%;height:200px;object-fit:contain;display:block;padding:.6rem;border-radius:8px 8px 0 0;
  background:color-mix(in srgb,var(--color-khaki-canvas) 26%,var(--color-bone-paper))}
.flow-steps{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1.2rem}
.flow-step{border:2px solid var(--color-khaki-canvas);border-radius:4px;padding:.3rem .8rem;font-family:'Oswald',sans-serif;
  font-size:.85rem;text-transform:uppercase;letter-spacing:1px;color:var(--color-steel-gray);text-decoration:none}
.flow-step.current{border-color:var(--color-medal-brass);background:var(--color-medal-brass);color:var(--color-ruck-black);font-weight:700}
.flow-step.done{border-color:var(--color-field-olive);color:var(--color-field-olive)}
.rucker-box{border:2px solid var(--color-khaki-canvas);border-radius:8px;padding:1rem 1.2rem;margin-bottom:1.2rem;background:var(--color-bone-paper)}
.rucker-box.draft{border-color:var(--color-march-red)}
.item-form{border-top:1px solid var(--color-khaki-canvas);padding-top:.8rem;margin-top:.8rem}
.selected-note{font-family:'Oswald',sans-serif;color:var(--color-field-olive);text-transform:uppercase;letter-spacing:1px;font-size:.85rem}
