*{box-sizing:border-box}body{margin:0;background:#111;color:#111;font-family:Arial,Helvetica,sans-serif}.page{max-width:860px;margin:0 auto;min-height:100vh;background:#fff;padding:28px 22px 60px}.brand{text-align:center;padding:12px 0 20px;border-bottom:1px solid #d9d9d9;margin-bottom:22px}.brand img{max-width:520px;width:85%;height:auto;display:block;margin:0 auto}.brand .sub{margin:8px 0 0;color:#666;font-size:13px;letter-spacing:1px;text-transform:uppercase}.waiver-title{text-align:center;font-size:20px;text-transform:uppercase;line-height:1.25;margin:0 0 22px}.waiver-body{font-size:14px;line-height:1.52;margin-bottom:28px}.waiver-body p{margin:0 0 14px}.section{border-top:1px solid #d9d9d9;padding:24px 0}.section h3{margin:0 0 14px;font-size:20px;font-weight:700}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}label.field-label{display:block;font-size:14px;font-weight:700;margin-bottom:7px}input[type=text],input[type=email],input[type=password]{width:100%;height:52px;border:1px solid #bbb;border-radius:4px;padding:0 14px;font-size:18px;background:#fff}.check-row{display:flex;align-items:flex-start;gap:12px;font-size:14px;line-height:1.35;margin-top:12px;font-weight:400}.check-row input{width:24px;height:24px;margin-top:0;flex:0 0 auto}.signature-wrap{border:1px dashed #aaa;border-radius:4px;background:#f5f5f5;position:relative}.signature-pad{width:100%;height:220px;display:block;touch-action:none;background:#f5f5f5}.signature-placeholder{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;color:#777;font-size:22px;pointer-events:none}.signature-actions{display:flex;gap:10px;margin-top:10px}.small-btn{border:1px solid #999;background:#fff;border-radius:4px;padding:10px 14px;font-weight:700}.submit{margin-top:10px;width:100%;height:62px;border:none;border-radius:4px;background:#111;color:#fff;font-size:20px;font-weight:800;letter-spacing:.3px}.error{background:#fee;border:1px solid #d66;color:#900;padding:12px;margin-bottom:18px}.success{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.success h1{font-size:34px}.success a,.success button{display:inline-block;background:#111;color:#fff;text-decoration:none;border:0;border-radius:4px;padding:16px 28px;font-weight:800;font-size:18px}.admin-page{max-width:1100px}.admin-top{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid #ddd;padding-bottom:18px;margin-bottom:20px}.admin-actions a{margin-left:12px}.search{display:flex;gap:10px;margin:0 0 20px}.search input{height:42px}.table{width:100%;border-collapse:collapse;background:#fff}.table th,.table td{border-bottom:1px solid #e3e3e3;text-align:left;padding:10px;font-size:14px}.table th{font-size:12px;text-transform:uppercase;color:#666}.date-row td{background:#f0f0f0;font-weight:800;color:#222;padding:12px 10px}.time{font-weight:800;font-size:16px}.muted{color:#666;font-size:13px}.role-badge{font-size:12px;text-transform:uppercase;background:#eee;padding:4px 8px;border-radius:999px}.danger{color:#b00000}.notice{background:#f6f6f6;border:1px solid #ddd;padding:12px;margin-bottom:18px}@media(max-width:700px){.page{padding:18px 14px 44px}.grid{grid-template-columns:1fr}.brand img{width:90%}.search{flex-direction:column}.table th:nth-child(4),.table td:nth-child(4){display:none}}
.sync-status {
  position: fixed;
  left: 10px;
  right: 10px;
  bottom: 8px;
  z-index: 9999;
  text-align: center;
  color: #666;
  background: rgba(255,255,255,0.92);
  border: 1px solid #e0e0e0;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 11px;
  line-height: 1.2;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.sync-status a {
  color: #111;
  text-decoration: underline;
  margin-left: 6px;
}
.sync-status.warn {
  color: #8a4b00;
  border-color: #e8bd78;
  background: rgba(255,248,235,0.96);
}

body:has(.admin-page) {
  background:
    radial-gradient(circle at top left, rgba(218, 173, 68, 0.20), transparent 34rem),
    radial-gradient(circle at bottom right, rgba(255,255,255,0.08), transparent 28rem),
    #101010;
}

.admin-page {
  max-width: 1180px;
  background: #141414;
  color: #f4f0e8;
  border: 1px solid rgba(218, 173, 68, 0.26);
  border-radius: 18px;
  margin-top: 24px;
  margin-bottom: 42px;
  box-shadow: 0 20px 70px rgba(0,0,0,0.42);
}

.admin-page h2 {
  color: #fff;
  letter-spacing: 0.04em;
}

.admin-top {
  border-bottom: 1px solid rgba(218, 173, 68, 0.28);
  padding-bottom: 22px;
  margin-bottom: 22px;
}

.admin-top::before {
  content: "STASH HOUSE";
  display: block;
  color: #daad44;
  font-size: 12px;
  letter-spacing: 0.38em;
  font-weight: 800;
  margin-bottom: 10px;
}

.admin-page .muted {
  color: rgba(244,240,232,0.62);
}

.role-badge {
  background: rgba(218, 173, 68, 0.16);
  color: #daad44;
  border: 1px solid rgba(218, 173, 68, 0.35);
  letter-spacing: 0.08em;
}

.admin-actions a,
.admin-page a {
  color: #daad44;
  text-decoration: none;
  font-weight: 700;
}

.admin-page a:hover {
  color: #fff;
  text-decoration: underline;
}

.search {
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.08);
  padding: 14px;
  border-radius: 14px;
}

.search input,
.admin-page input[type=text],
.admin-page input[type=email],
.admin-page input[type=password] {
  background: #0c0c0c;
  color: #fff;
  border: 1px solid rgba(218, 173, 68, 0.35);
  border-radius: 10px;
}

.search input::placeholder,
.admin-page input::placeholder {
  color: rgba(244,240,232,0.45);
}

.admin-page .small-btn,
.search .small-btn {
  background: #daad44;
  color: #111 !important;
  border: 1px solid #daad44;
  border-radius: 10px;
  text-decoration: none !important;
  font-weight: 900;
  box-shadow: 0 8px 24px rgba(218,173,68,0.16);
}

.admin-page .small-btn:hover,
.search .small-btn:hover {
  background: #f0c96a;
  color: #111 !important;
  text-decoration: none !important;
}

.table {
  overflow: hidden;
  border-radius: 16px;
  background: #0d0d0d;
  border: 1px solid rgba(218, 173, 68, 0.20);
}

.table th {
  background: #070707;
  color: rgba(218, 173, 68, 0.92);
  border-bottom: 1px solid rgba(218, 173, 68, 0.22);
  letter-spacing: 0.08em;
}

.table td {
  border-bottom: 1px solid rgba(255,255,255,0.075);
  color: #f4f0e8;
}

.table tr:not(.date-row):hover td {
  background: rgba(218, 173, 68, 0.065);
}

.date-row td {
  background:
    linear-gradient(90deg, rgba(218,173,68,0.20), rgba(218,173,68,0.06)),
    #181818;
  color: #fff;
  border-top: 1px solid rgba(218,173,68,0.32);
  border-bottom: 1px solid rgba(218,173,68,0.22);
  text-transform: uppercase;
  letter-spacing: 0.045em;
}

.time {
  color: #fff;
  font-size: 17px;
}

.danger,
.admin-page .danger {
  color: #ff6b6b !important;
}

.admin-page .notice {
  background: rgba(218, 173, 68, 0.10);
  border: 1px solid rgba(218, 173, 68, 0.25);
  color: #f4f0e8;
  border-radius: 12px;
}

@media (max-width: 700px) {
  .admin-page {
    border-radius: 0;
    margin-top: 0;
  }

  .admin-top {
    display: block;
  }

  .admin-actions {
    margin-top: 14px;
  }
}


body:has(.admin-page) {
  background: #f6f6f4 !important;
  color: #111 !important;
}

.admin-page {
  max-width: 1220px !important;
  margin-top: 28px !important;
  margin-bottom: 48px !important;
  background: #fff !important;
  color: #111 !important;
  border: 1px solid #d8d8d2 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 34px 34px 46px !important;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
}

.admin-page::before {
  content: "PRIVATE WAIVER LEDGER / STASH HOUSE";
  display: block;
  margin-bottom: 28px;
  padding-bottom: 14px;
  border-bottom: 1px solid #111;
  color: #111;
  font-size: 11px;
  line-height: 1;
  letter-spacing: 0.18em;
  font-weight: 700;
  text-transform: uppercase;
}

.admin-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 24px;
  border-bottom: 1px solid #d8d8d2 !important;
  padding-bottom: 26px !important;
  margin-bottom: 26px !important;
}

.admin-top::before {
  display: none !important;
  content: none !important;
}

.admin-page h2 {
  color: #111 !important;
  text-align: left !important;
  margin: 0 0 8px !important;
  font-size: 28px !important;
  line-height: 1.05 !important;
  letter-spacing: -0.04em !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
}

.admin-page .muted {
  color: #777 !important;
  font-size: 11px !important;
  letter-spacing: 0.03em !important;
}

.role-badge {
  background: #fff !important;
  color: #111 !important;
  border: 1px solid #bdbdb7 !important;
  border-radius: 0 !important;
  padding: 3px 7px !important;
  font-size: 10px !important;
  letter-spacing: 0.11em !important;
  font-weight: 700 !important;
}

.admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.admin-actions a,
.admin-page a {
  color: #111 !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  border-bottom: 1px solid transparent;
  transition: border-color .15s ease, opacity .15s ease, background .15s ease;
}

.admin-page a:hover {
  border-bottom-color: #111;
  opacity: .72;
}

.search {
  display: flex !important;
  gap: 10px !important;
  align-items: stretch !important;
  margin: 0 0 26px !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
}

.search input,
.admin-page input[type=text],
.admin-page input[type=email],
.admin-page input[type=password] {
  background: #fff !important;
  color: #111 !important;
  border: 1px solid #c9c9c3 !important;
  border-radius: 0 !important;
  height: 42px !important;
  padding: 0 12px !important;
  font-family: inherit !important;
  font-size: 13px !important;
  outline: none !important;
  box-shadow: none !important;
}

.search input:focus,
.admin-page input[type=text]:focus,
.admin-page input[type=email]:focus,
.admin-page input[type=password]:focus {
  border-color: #111 !important;
}

.search input::placeholder,
.admin-page input::placeholder {
  color: #9b9b95 !important;
}

/* Search and Clear buttons match exactly */
.admin-page .small-btn,
.search .small-btn,
.search button.small-btn,
.search a.small-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 42px !important;
  min-width: 86px !important;
  padding: 0 16px !important;
  margin: 0 !important;
  background: #111 !important;
  color: #fff !important;
  border: 1px solid #111 !important;
  border-radius: 0 !important;
  font-family: inherit !important;
  font-size: 11px !important;
  line-height: 1 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer !important;
  transition: background .15s ease, color .15s ease, transform .12s ease;
}

.admin-page .small-btn:hover,
.search .small-btn:hover,
.search button.small-btn:hover,
.search a.small-btn:hover {
  background: #fff !important;
  color: #111 !important;
  text-decoration: none !important;
  transform: translateY(-1px);
}

.table {
  width: 100% !important;
  border-collapse: collapse !important;
  background: #fff !important;
  border: 1px solid #d8d8d2 !important;
  border-radius: 0 !important;
  overflow: visible !important;
}

.table th {
  background: #f1f1ee !important;
  color: #111 !important;
  border-bottom: 1px solid #c9c9c3 !important;
  padding: 12px 11px !important;
  font-size: 10px !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  font-weight: 700 !important;
}

.table td {
  background: #fff !important;
  color: #111 !important;
  border-bottom: 1px solid #e5e5e0 !important;
  padding: 13px 11px !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  vertical-align: top !important;
}

.table tr:not(.date-row):hover td {
  background: #fafafa !important;
}

.date-row td {
  background: #111 !important;
  color: #fff !important;
  border-top: 1px solid #111 !important;
  border-bottom: 1px solid #111 !important;
  padding: 10px 11px !important;
  font-size: 10px !important;
  line-height: 1.2 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
}

.time {
  color: #111 !important;
  font-size: 14px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em !important;
}

.danger,
.admin-page .danger {
  color: #111 !important;
  text-decoration: underline !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 3px !important;
}

.admin-page .notice,
.admin-page .error {
  background: #fff !important;
  border: 1px solid #111 !important;
  color: #111 !important;
  border-radius: 0 !important;
  padding: 14px !important;
  font-family: inherit !important;
}

.admin-page .submit {
  background: #111 !important;
  color: #fff !important;
  border: 1px solid #111 !important;
  border-radius: 0 !important;
  font-family: inherit !important;
  text-transform: uppercase !important;
  letter-spacing: .09em !important;
  font-size: 12px !important;
  box-shadow: none !important;
  transition: background .15s ease, color .15s ease, transform .12s ease;
}

.admin-page .submit:hover {
  background: #fff !important;
  color: #111 !important;
  transform: translateY(-1px);
}

.table td:last-child a {
  display: inline-block;
  margin-right: 8px;
  margin-bottom: 4px;
  font-size: 10px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.table td:last-child .muted {
  color: #777 !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

@media (max-width: 760px) {
  .admin-page {
    margin: 0 !important;
    padding: 22px 14px 36px !important;
    border-left: none !important;
    border-right: none !important;
  }

  .admin-top {
    display: block !important;
  }

  .admin-actions {
    justify-content: flex-start;
    margin-top: 14px;
  }

  .search {
    display: grid !important;
    grid-template-columns: 1fr 86px 86px;
    gap: 8px !important;
  }

  .table th,
  .table td {
    padding: 10px 8px !important;
    font-size: 11px !important;
  }

  .table td:last-child a {
    display: block;
    margin-bottom: 6px;
  }
}

/* Button press / tap animation for waiver submit + success button */

.submit,
.success a,
.success button {
  transition:
    transform 120ms ease,
    box-shadow 120ms ease,
    background-color 120ms ease,
    opacity 120ms ease;
  will-change: transform;
}

.submit:active,
.success a:active,
.success button:active {
  transform: scale(0.97) translateY(1px);
  opacity: 0.88;
}

.submit:hover,
.success a:hover,
.success button:hover {
  transform: translateY(-1px);
}

.submit.is-loading {
  opacity: 0.72;
  pointer-events: none;
}

#waiverForm .waiver-submit-note {
  display: block;
  width: 100%;
  max-width: 520px;
  margin: 14px auto 0 auto;
  text-align: center !important;
  font-size: 11px !important;
  line-height: 1.4 !important;
  color: #777 !important;
  font-weight: 400 !important;
}

#waiverForm .waiver-submit-note p {
  margin: 3px 0 !important;
  text-align: center !important;
  font-size: 11px !important;
  line-height: 1.4 !important;
  font-weight: 400 !important;
}

/* Extra breathing room below final waiver submit button */
#waiverForm {
  padding-bottom: 120px;
}


/* iPad waiver success screen: white background + automatic two-second reset */
body.waiver-success-body {
  background: #fff !important;
  color: #111 !important;
}

.waiver-success-body .page.success {
  min-height: 100vh;
  background: #fff !important;
  color: #111 !important;
  padding: 28px 22px 60px;
}

.waiver-success-body .success h1 {
  margin: 0 0 10px;
  color: #111;
}

.waiver-success-body .success-message {
  margin: 0 0 22px;
  color: #666;
  font-size: 15px;
}

/* iPad waiver success screen: white background + automatic two-second reset */
body.waiver-success-body {
  background: #fff !important;
  color: #111 !important;
}

.waiver-success-body .page.success {
  min-height: 100vh;
  background: #fff !important;
  color: #111 !important;
  padding: 28px 22px 60px;
}

.waiver-success-body .success h1 {
  margin: 0 0 10px;
  color: #111;
}

.waiver-success-body .success-message {
  margin: 0 0 22px;
  color: #666;
  font-size: 15px;
}


/* Waiver build marker */
#waiverForm .waiver-submit-note .waiver-version {
  margin-top: 10px;
  color: #a2a2a2;
  font-size: 8px;
  line-height: 1;
  letter-spacing: 0.10em;
  font-weight: 400;
  text-align: center;
}


/* iPad email-entry shortcuts */
.email-shortcuts {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 10px;
}

.email-shortcut {
  min-height: 34px;
  border: 1px solid #c9c9c3;
  border-radius: 4px;
  padding: 0 10px;
  background: #fff;
  color: #111;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
}

.email-shortcut:active {
  transform: scale(0.97);
  background: #f3f3f1;
}

@media (max-width: 700px) {
  .email-shortcuts {
    gap: 6px;
  }

  .email-shortcut {
    min-height: 32px;
    padding: 0 9px;
    font-size: 11px;
  }
}


