    :root { --forest:#1f5130; --orange:#e07c31; --line:#d9d2c4; --white:#fff; --text:#1c2b22; --muted:#526257; --max:1080px; }
    * { box-sizing:border-box; }
    body { margin:0; font-family:"Segoe UI","Trebuchet MS",Arial,sans-serif; color:var(--text); background:linear-gradient(180deg,#f9f6f0 0%,#f2ecdf 100%); }
    header { background:var(--forest); color:#fff; border-bottom:3px solid var(--orange); }
    .container { width:min(100% - 2rem, var(--max)); margin-inline:auto; }
    .nav { padding:1rem 0; display:flex; justify-content:space-between; }
    main { padding:1rem 0 2rem; }
    .grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
    .card,.section { background:var(--white); border:1px solid var(--line); border-radius:12px; padding:1rem; }
    .card { display:flex; flex-direction:column; }
    .section { margin-top:1rem; }
    .hero {
      margin-top:1rem;
      border-radius:14px;
      padding:1.2rem;
      border:1px solid #d3cab7;
      background:
        radial-gradient(circle at 10% 10%, rgba(224,124,49,.14), transparent 45%),
        linear-gradient(135deg,#fffdf7 0%,#f6efe3 100%);
    }
    .hero h1 { margin:.1rem 0 .55rem; }
    .hero p { max-width:720px; }
    .hero-cta { margin-top:.65rem; }
    .hero-cta .btn-link {
      background:var(--orange);
      border:1px solid #c46620;
      border-radius:10px;
      padding:.65rem .9rem;
      font-weight:700;
      color:#2f1809;
      text-decoration:none;
      display:inline-block;
      transition:transform .22s ease, box-shadow .22s ease;
    }
    .hero-cta .btn-link:hover {
      transform:translateY(-2px);
      box-shadow:0 8px 20px rgba(178,97,32,.28);
    }
    .test-notice{
      margin-top:1rem;
      border:3px solid #b42318;
      border-left:10px solid #b42318;
      border-radius:14px;
      padding:1.15rem 1.2rem;
      background:linear-gradient(135deg,#fff3f2 0%,#ffe3e0 100%);
      color:#7a1f18;
      font-weight:700;
      font-size:1.08rem;
      line-height:1.4;
      box-shadow:0 10px 24px rgba(122,31,24,.16);
    }
    .refund-mini{
      margin-top:1.05rem;
      margin-bottom:.2rem;
      padding:.8rem .9rem;
      border:1px solid #e7d0b6;
      border-left:6px solid #d76d21;
      border-radius:12px;
      background:linear-gradient(135deg,#fff8f0 0%,#fffdf9 100%);
      color:#5d4f3b;
      font-size:.9rem;
      display:flex;
      gap:.8rem;
      flex-wrap:wrap;
      align-items:center;
      justify-content:space-between;
    }
    .refund-mini-text{
      display:flex;
      flex-direction:column;
      gap:.12rem;
      max-width:680px;
    }
    .refund-mini-text strong{
      color:#7a1f18;
      font-size:.96rem;
      letter-spacing:.01em;
    }
    .refund-mini-text span{
      color:#6b5f4f;
    }
    .refund-mini-link{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      white-space:nowrap;
      padding:.44rem .72rem;
      border-radius:999px;
      background:#7a1f18;
      color:#fff5f3;
      font-weight:700;
      text-decoration:none;
      border:1px solid #66120d;
      transition:transform .14s ease, box-shadow .14s ease;
    }
    .refund-mini-link:hover{
      transform:translateY(-1px);
      box-shadow:0 6px 14px rgba(122,31,24,.25);
    }
    .refund-section{
      max-width:760px;
      margin:1rem auto 0;
      border:1px solid #e3d9c9;
      border-radius:14px;
      background:
        radial-gradient(circle at 100% 0%, rgba(224,124,49,.09), transparent 50%),
        #fff;
    }
    .refund-lead{ margin-bottom:.8rem; }
    .refund-grid{ gap:.8rem; }
    .refund-message-wrap{ margin-top:.75rem; }
    .refund-message{
      min-height:150px;
      border:1px solid #c9c0af;
      border-radius:10px;
      padding:.68rem .75rem;
      font:inherit;
      background:#fffdfa;
      resize:vertical;
    }
    .refund-message:focus{
      outline:none;
      border-color:#b67647;
      box-shadow:0 0 0 3px rgba(224,124,49,.18);
    }
    .refund-submit{ margin-top:.9rem; }
    h1,h2 { margin:.2rem 0 .5rem; }
    p { color:var(--muted); }
    .route-description { margin:.35rem 0 .55rem; }
    .route-meta { margin:.08rem 0; line-height:1.25; }
    .route-actions {
      margin-top:auto;
      padding-top:.55rem;
      display:flex;
      flex-wrap:wrap;
      gap:.5rem;
    }
    .route-btn {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      text-decoration:none;
      border-radius:10px;
      padding:.55rem .75rem;
      font-weight:700;
      border:1px solid transparent;
      transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
    }
    .route-btn:hover { transform:translateY(-1px); box-shadow:0 8px 16px rgba(22,38,27,.14); }
    .route-btn-map {
      background:#f6f1e6;
      border-color:#c9c0af;
      color:#2f352f;
    }
    .route-btn-download {
      background:var(--orange);
      border-color:#c46620;
      color:#2f1809;
    }
    .route-file-name {
      margin-top:.5rem;
      margin-bottom:0;
      font-size:.88rem;
      color:#647067;
    }
    .form-grid { display:grid; grid-template-columns:1fr 1fr; gap:.7rem; }
    .input-wrap { display:flex; flex-direction:column; gap:.25rem; }
    input:not([type="checkbox"]),select { border:1px solid #c9c0af; border-radius:8px; padding:.6rem .7rem; font:inherit; background:#fffdfa; }
    .nice-select{
      appearance:none;
      -webkit-appearance:none;
      -moz-appearance:none;
      min-width:220px;
      padding-right:2.2rem;
      border:1px solid #bdb19f;
      background:
        linear-gradient(45deg, transparent 50%, #7a715f 50%) calc(100% - 18px) calc(50% - 2px)/7px 7px no-repeat,
        linear-gradient(135deg, #7a715f 50%, transparent 50%) calc(100% - 12px) calc(50% - 2px)/7px 7px no-repeat,
        #fffdfa;
    }
    .nice-select:focus{
      outline:none;
      border-color:#b67647;
      box-shadow:0 0 0 3px rgba(224,124,49,.18);
    }
    .check-row{
      display:flex;
      align-items:flex-start;
      gap:.55rem;
      background:#fffdfa;
      border:1px solid #d9d2c4;
      border-radius:10px;
      padding:.55rem .65rem;
      color:#2f352f;
      line-height:1.35;
    }
    .check-row input[type="checkbox"]{
      width:18px;
      height:18px;
      margin-top:1px;
      accent-color:#1f5130;
      flex:0 0 auto;
    }
    #account-fields{display:none;}
    button { background:var(--orange); border:1px solid #c46620; border-radius:10px; padding:.65rem .9rem; font-weight:700; cursor:pointer; }
    button:disabled { opacity:.6; cursor:not-allowed; }
    .status { margin-top:.6rem; font-weight:700; }
    .ok { color:#1f5b31; } .error { color:#9f2f2f; }
    .inline-status { margin-top:.25rem; font-size:.92rem; min-height:1.2em; color:#526257; }
    .inline-status.error { color:#9f2f2f; font-weight:700; }
    .inline-status.ok { color:#1f5b31; }
    .modal-backdrop {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, .35);
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 1000;
      padding: 1rem;
    }
    .modal-backdrop.show { display: flex; }
    .modal-card {
      width: min(100%, 460px);
      background: #fff;
      border: 1px solid #d9d2c4;
      border-radius: 12px;
      padding: 1rem;
      box-shadow: 0 18px 45px rgba(0,0,0,.22);
    }
    .modal-card h3 { margin:.2rem 0 .5rem; }
    .modal-actions { margin-top: .9rem; display: flex; gap: .6rem; }
    .btn-ghost {
      background: #f6f1e6;
      border: 1px solid #c9c0af;
      border-radius: 10px;
      padding: .65rem .9rem;
      color: #2f352f;
      text-decoration: none;
      font-weight: 700;
      display: inline-block;
    }
    .submit-overlay {
      position: fixed;
      inset: 0;
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 1100;
      background: rgba(20, 28, 23, .45);
      backdrop-filter: blur(2px);
      padding: 1rem;
    }
    .submit-overlay.show { display: flex; }
    .submit-card {
      width: min(100%, 520px);
      background: #fff;
      border: 1px solid #d8cfbf;
      border-radius: 14px;
      padding: 1.05rem 1rem;
      box-shadow: 0 22px 42px rgba(0, 0, 0, .24);
    }
    .submit-title {
      margin-top: .75rem;
      font-weight: 800;
      color: #1f5130;
    }
    .submit-sub {
      margin-top: .2rem;
      color: #526257;
      font-size: .95rem;
    }
    .run-track {
      position: relative;
      height: 44px;
      border-radius: 999px;
      border: 1px solid #d6ccbb;
      background:
        linear-gradient(90deg, #f4ece0 0%, #fdf9f3 100%);
      overflow: hidden;
    }
    .run-track::before {
      content: '';
      position: absolute;
      left: 14px;
      right: 14px;
      top: 50%;
      border-top: 2px dashed #c8bca8;
      transform: translateY(-50%);
    }
    .runner-dot {
      position: absolute;
      top: 50%;
      left: 14px;
      width: 18px;
      height: 18px;
      border-radius: 50%;
      background: radial-gradient(circle at 35% 35%, #ffdcbf 0%, #e07c31 55%, #b85e22 100%);
      box-shadow: 0 0 0 4px rgba(224,124,49,.15);
      transform: translateY(-50%);
      animation: runner-track-move 1.35s ease-in-out infinite;
    }
    .runner-dot::after {
      content: '';
      position: absolute;
      width: 24px;
      height: 4px;
      top: 7px;
      right: 16px;
      border-radius: 999px;
      background: linear-gradient(90deg, rgba(224,124,49,.5), rgba(224,124,49,0));
      animation: runner-trail .9s linear infinite;
    }
    @keyframes runner-track-move {
      0% { left: 14px; }
      50% { left: calc(100% - 32px); }
      100% { left: 14px; }
    }
    @keyframes runner-trail {
      0%, 100% { opacity: .3; }
      50% { opacity: 1; }
    }
    @keyframes riseFade {
      from { opacity:0; transform:translateY(16px); }
      to { opacity:1; transform:translateY(0); }
    }
    .reveal {
      opacity: 0;
      transform: translateY(16px);
      will-change: opacity, transform;
    }
    .reveal.reveal-in {
      animation: riseFade .62s cubic-bezier(.2,.7,.2,1) forwards;
      animation-delay: var(--reveal-delay, 0ms);
    }
    @media (prefers-reduced-motion: reduce) {
      .hero-cta .btn-link { transition:none; }
      .hero-cta .btn-link:hover { transform:none; box-shadow:none; }
      .reveal, .reveal.reveal-in { opacity:1; transform:none; animation:none; }
      .runner-dot, .runner-dot::after { animation: none; }
    }
    @media (max-width:900px) { .grid,.form-grid { grid-template-columns:1fr 1fr; } }
    @media (max-width:640px) { .grid,.form-grid { grid-template-columns:1fr; } }
