.os-wrap{
  --os-paper:#F5F1E7;
  --os-paper-2:#EFE9DA;
  --os-ink:#1C2622;
  --os-ink-soft:#4B5750;
  --os-teal:#123028;
  --os-teal-2:#1B3F35;
  --os-sage:#7C8F6E;
  --os-gold:#AC8A4C;
  --os-gold-soft:#E4D6B8;
  --os-line:#D8CFB8;
  --os-white:#FFFFFF;
  --os-error:#A8452F;

  max-width:1040px;margin:0 auto;padding:32px 0 64px;
  font-family:'IBM Plex Sans', sans-serif;
  color:var(--os-ink);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  width:100%;
}
.os-wrap *{box-sizing:border-box;min-width:0;}
.os-wrap h2,.os-wrap h3{font-family:'Fraunces', serif;font-weight:500;margin:0;color:var(--os-teal);}

.os-tag{
  font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--os-gold);display:inline-flex;align-items:center;gap:8px;
}
.os-tag::before{content:'[';color:var(--os-line);}
.os-tag::after{content:']';color:var(--os-line);}

.os-modnav{
  display:flex;gap:2px;border:1px solid var(--os-line);background:var(--os-paper-2);
  border-radius:10px;padding:4px;margin-bottom:28px;max-width:520px;width:100%;
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.os-modnav::-webkit-scrollbar{display:none;}
.os-modnav button{
  flex:1 1 0;min-width:0;border:none;background:transparent;padding:11px 10px;
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--os-ink-soft);border-radius:7px;cursor:pointer;transition:background .15s ease,color .15s ease;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.os-modnav button.os-active{background:var(--os-teal);color:var(--os-paper);}
.os-module{display:none;}
.os-module.os-active{display:block;animation:os-fade .25s ease;}
@keyframes os-fade{from{opacity:0;transform:translateY(4px);}to{opacity:1;transform:translateY(0);}}

.os-card{background:var(--os-white);border:1px solid var(--os-line);border-radius:14px;padding:32px;}
.os-section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;flex-wrap:wrap;gap:8px;}
.os-section-head h2{font-size:24px;}

.os-finder-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:22px;}
@media(max-width:640px){.os-finder-grid{grid-template-columns:1fr;}}
.os-field label{
  display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--os-ink-soft);margin-bottom:8px;
}
.os-wrap select,.os-wrap input[type=text],.os-wrap input[type=email],.os-wrap input[type=password]{
  width:100%;padding:13px 14px;border:1px solid var(--os-line);border-radius:9px;
  background:var(--os-paper);font-family:'IBM Plex Sans';font-size:14px;color:var(--os-ink);appearance:none;
}
.os-wrap select:focus,.os-wrap input:focus{outline:2px solid var(--os-sage);outline-offset:1px;}

.os-btn{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;
  border:none;border-radius:9px;padding:14px 22px;cursor:pointer;
  background:var(--os-teal);color:var(--os-paper);transition:background .15s ease,transform .1s ease;
  display:inline-block;text-decoration:none;
}
.os-btn:hover{background:var(--os-teal-2);color:var(--os-paper);}
.os-btn:active{transform:scale(.98);}
.os-btn.os-ghost{background:transparent;border:1px solid var(--os-teal);color:var(--os-teal);}
.os-btn.os-gold{background:var(--os-gold);color:#241a08;}
.os-btn.os-gold:hover{background:#96793e;}
.os-btn:disabled{opacity:.45;cursor:not-allowed;}
.os-tier .os-choose-plan{width:100%;box-sizing:border-box;text-align:center;white-space:normal;}

.os-result{display:none;margin-top:26px;border-top:1px dashed var(--os-line);padding-top:24px;}
.os-result.os-show{display:block;animation:os-fade .3s ease;}
.os-result-tag{margin-bottom:10px;}
.os-result h3{font-size:20px;margin-bottom:8px;}
.os-result p{color:var(--os-ink-soft);font-size:14px;margin:0 0 18px;}

.os-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px;}
@media(max-width:640px){.os-steps{grid-template-columns:1fr;}}
.os-step{border:1px solid var(--os-line);border-radius:10px;padding:16px;background:var(--os-paper);}
.os-step .os-n{font-family:'IBM Plex Mono';font-size:11px;color:var(--os-gold);letter-spacing:.08em;}
.os-step .os-t{font-weight:600;margin:6px 0 4px;font-size:14px;}
.os-step .os-d{font-size:13px;color:var(--os-ink-soft);}
.os-step.os-step-active{border-color:var(--os-sage);box-shadow:0 0 0 1px var(--os-sage) inset;}
.os-step.os-step-done{border-color:var(--os-teal);}
.os-step.os-step-done .os-n::after{content:' ✓';color:var(--os-teal);}

.os-slot-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;}
.os-slot{
  border:1px solid var(--os-line);border-radius:8px;padding:9px 14px;font-size:13px;
  cursor:pointer;font-family:'IBM Plex Mono';background:var(--os-paper);
}
.os-slot.os-selected{background:var(--os-teal);color:var(--os-paper);border-color:var(--os-teal);}
.os-guest-fields{margin-bottom:18px;}
.os-confirm-box{
  display:none;border:1px solid var(--os-sage);background:#F0F4EC;border-radius:10px;
  padding:16px 18px;margin-top:6px;font-size:14px;
}
.os-confirm-box.os-show{display:block;animation:os-fade .3s ease;}
.os-confirm-box strong{color:var(--os-teal);}

/* pricing */
.os-billtoggle{display:inline-flex;border:1px solid var(--os-line);border-radius:999px;padding:3px;background:var(--os-paper-2);}
.os-billtoggle button{
  border:none!important;background:transparent!important;padding:8px 16px;border-radius:999px;
  font-family:'IBM Plex Mono';font-size:11px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;
  color:var(--os-ink-soft)!important;transition:background .15s ease,color .15s ease;white-space:nowrap;
}
.os-billtoggle button.os-active{background:var(--os-teal)!important;color:var(--os-paper)!important;box-shadow:0 1px 2px rgba(0,0,0,.12);}
.os-save-note{font-size:12px;color:var(--os-sage);margin-left:8px;}

.os-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:24px;}
@media(max-width:800px){.os-tiers{grid-template-columns:1fr;}}
.os-tier{border:1px solid var(--os-line);border-radius:14px;padding:26px;background:var(--os-paper);display:flex;flex-direction:column;position:relative;}
.os-tier.os-popular{border:1.5px solid var(--os-gold);background:var(--os-white);}
.os-popular-badge{
  position:absolute;top:-12px;left:26px;background:var(--os-gold);color:#241a08;
  font-family:'IBM Plex Mono';font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;
}
.os-tier h3{font-size:19px;margin-bottom:4px;}
.os-tier .os-desc{font-size:13px;color:var(--os-ink-soft);margin-bottom:16px;min-height:34px;}
.os-tier .os-price{font-family:'Fraunces';font-size:36px;color:var(--os-teal);margin-bottom:2px;}
.os-tier .os-price span{font-family:'IBM Plex Mono';font-size:13px;color:var(--os-ink-soft);}
.os-tier .os-permo{font-size:12px;color:var(--os-ink-soft);margin-bottom:18px;}
.os-tier ul{list-style:none;padding:0;margin:0 0 22px;flex:1;}
.os-tier li{font-size:13.5px;padding:9px 0;border-top:1px solid var(--os-line);display:flex;gap:8px;align-items:flex-start;}
.os-tier li:first-child{border-top:none;}
.os-tier li::before{content:'—';color:var(--os-gold);flex-shrink:0;}

/* ---------------- mobile responsive pass ---------------- */
@media(max-width:640px){
  .os-wrap{padding:24px 16px 48px;}
  .os-modnav{max-width:100%;}
  .os-modnav button{padding:10px 6px;font-size:11px;letter-spacing:.03em;}
  .os-card{padding:22px;}
  .os-section-head{gap:12px;}
  .os-section-head h2{font-size:20px;}
  .os-authtabs{gap:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .os-role-row{flex-wrap:wrap;}
  .os-role-pill{min-width:calc(50% - 5px);}
  .os-slot-row{gap:8px;}
}

@media(max-width:520px){
  .os-wrap{padding:20px 14px 40px;}
  .os-card{padding:18px;}
  .os-section-head > div:last-child{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%;}
  .os-billtoggle{width:100%;justify-content:center;}
  .os-billtoggle button{flex:1;padding:10px 12px;}
  .os-tier{padding:20px;}
  .os-tier .os-price{font-size:30px;}
  .os-modnav button{font-size:10px;padding:9px 4px;}
}

/* account */
.os-authtabs{display:flex;gap:24px;border-bottom:1px solid var(--os-line);margin-bottom:26px;}
.os-authtabs button{
  background:none;border:none;padding:10px 0;font-family:'IBM Plex Mono';font-size:12px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--os-ink-soft);cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-1px;
}
.os-authtabs button.os-active{color:var(--os-teal);border-bottom-color:var(--os-gold);}
.os-authform{display:none;max-width:420px;}
.os-authform.os-active{display:block;animation:os-fade .25s ease;}
.os-authform .os-field{margin-bottom:16px;}
.os-role-row{display:flex;gap:10px;margin-bottom:16px;}
.os-role-pill{flex:1;border:1px solid var(--os-line);border-radius:9px;padding:11px;text-align:center;font-size:13px;cursor:pointer;background:var(--os-paper);}
.os-role-pill.os-selected{border-color:var(--os-teal);background:var(--os-teal);color:var(--os-paper);}
.os-conditional{display:none;}
.os-conditional.os-show{display:block;animation:os-fade .2s ease;}
.os-err{color:var(--os-error);font-size:12px;margin-top:6px;display:none;font-family:'IBM Plex Mono';}
.os-err.os-show{display:block;}
.os-success-note{display:none;background:#EFF5EA;border:1px solid var(--os-sage);border-radius:9px;padding:14px 16px;font-size:13.5px;margin-top:16px;color:#33452C;}
.os-success-note.os-show{display:block;animation:os-fade .3s ease;}
.os-switch-line{font-size:13px;color:var(--os-ink-soft);margin-top:18px;}
.os-switch-line a{color:var(--os-teal);cursor:pointer;text-decoration:underline;}

.os-wrap--single .os-card{max-width:none;}
