*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
:root{--cream:#EAE0C8;--black:#1E1E1E;--inp:#e8dfc6;--bno:#3d5a82;--like:#4E7B96;--dis:#D2898A;--yes:#D2898A;--no:#4E7B96;--int:#89D289;--idk:#EAE0C8;}

/* Subtle scrollbars — thin, buttonless, low-contrast to match O-ID */
.scroll-body,
.ao-body,
#s-c,
.profile-wrap {
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.20) transparent;
}

.scroll-body::-webkit-scrollbar,
.ao-body::-webkit-scrollbar,
#s-c::-webkit-scrollbar,
.profile-wrap::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

.scroll-body::-webkit-scrollbar-track,
.ao-body::-webkit-scrollbar-track,
#s-c::-webkit-scrollbar-track,
.profile-wrap::-webkit-scrollbar-track,
.scroll-body::-webkit-scrollbar-track-piece,
.ao-body::-webkit-scrollbar-track-piece,
#s-c::-webkit-scrollbar-track-piece,
.profile-wrap::-webkit-scrollbar-track-piece {
  background: transparent;
}

.scroll-body::-webkit-scrollbar-thumb,
.ao-body::-webkit-scrollbar-thumb,
#s-c::-webkit-scrollbar-thumb,
.profile-wrap::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.20);
  border-radius: 4px;
  transition: background 0.2s ease;
}

.scroll-body::-webkit-scrollbar-thumb:hover,
.ao-body::-webkit-scrollbar-thumb:hover,
#s-c::-webkit-scrollbar-thumb:hover,
.profile-wrap::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.35);
}

/* Remove up/down arrows and corner pieces for clean thin bar */
.scroll-body::-webkit-scrollbar-button,
.ao-body::-webkit-scrollbar-button,
#s-c::-webkit-scrollbar-button,
.profile-wrap::-webkit-scrollbar-button,
.scroll-body::-webkit-scrollbar-corner,
.ao-body::-webkit-scrollbar-corner,
#s-c::-webkit-scrollbar-corner,
.profile-wrap::-webkit-scrollbar-corner {
  display: none;
  width: 0;
  height: 0;
}

html,body{background:#1E1E1E;font-family:'Montserrat',sans-serif;height:100%;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;}
#phone{width:100%;height:100%;background:var(--black);overflow:hidden;position:relative;}
#phone::before{display:none;}
.screen{position:absolute;inset:0;display:none;flex-direction:column;background:var(--black);}
.screen.active{display:flex;animation:fi .28s ease;}
@keyframes fi{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.top-bar{display:flex;align-items:center;padding:44px 22px 0;flex-shrink:0;}
.bk{background:none;border:none;color:rgba(234,224,200,.45);font-family:'Montserrat',sans-serif;font-size:12px;font-weight:300;cursor:pointer;display:flex;align-items:center;gap:5px;padding:0;}
.pg-title{font-size:22px;font-weight:700;color:var(--cream);padding:10px 22px 0;flex-shrink:0;}


.scroll-body{flex:1;overflow-y:auto;padding:10px 22px 22px;}

/* ══ CONSENT ══ */
#s-c{padding:44px 22px 32px;justify-content:center;overflow-y:auto;}
.cb{margin-bottom:44px;text-align:center;}
.cq{font-size:15.5px;font-weight:300;color:var(--cream);line-height:1.7;text-align:center;margin-bottom:26px;}
.cbtns{display:inline-flex;gap:12px;}
.by{background:var(--cream);color:#1a1a1a;border:none;border-radius:8px;padding:13px 30px;font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;cursor:pointer;min-width:82px;transition:box-shadow .2s;}
.by.done{background:var(--cream);box-shadow:0 0 0 2.5px rgba(234,224,200,.5);}
.bn{background:var(--bno);color:#b8ccec;border:none;border-radius:8px;padding:13px 16px;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;cursor:pointer;line-height:1.35;text-align:center;min-width:125px;}
#cp{display:none;width:auto;min-width:260px;background:var(--cream);color:#000;border:none;border-radius:8px;padding:14px 40px;font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;cursor:pointer;margin:12px auto 0;align-self:center;}
#cp.show{display:block;animation:fi .3s ease;}

/* ══ INPUT SCREENS ══ */
.is{justify-content:center;padding:0 30px;gap:12px;}
.fl{font-size:16px;font-weight:300;color:var(--cream);position:relative;z-index:10;}
.ci{width:100%;background:var(--inp);border:none;border-radius:6px;padding:15px 14px;font-family:'Montserrat',sans-serif;font-size:15px;color:#333;outline:none;position:relative;z-index:10;}
.nq{font-size:19px;font-weight:300;color:var(--cream);line-height:1.5;position:relative;z-index:10;}
.pl{font-size:16px;font-weight:300;color:var(--cream);margin-top:24px;position:relative;z-index:10;}
.auth-err{position:relative;z-index:10;}
.auth-link{position:relative;z-index:10;}
.tap{position:absolute;inset:0;z-index:5;cursor:pointer;}

/* ══ BODY TYPE ══ */
#s-b{align-items:center;justify-content:center;padding:50px 20px 30px;}
.bc{display:flex;gap:22px;align-items:flex-end;justify-content:center;}
.bb{background:none;border:none;padding:0;cursor:pointer;transition:opacity .2s;outline:none;display:block;}
.bb:hover{opacity:.85;}
.bb img{width:auto;height:240px;display:block;}
.bb.sel img{filter:drop-shadow(0 6px 20px rgba(210,185,150,0.30));}

/* ══ BODY TYPE ══ */
#s-b{background:#1E1E1E;justify-content:center;align-items:center;gap:32px;}
.bq{font-size:18px;font-weight:300;color:var(--cream);text-align:center;line-height:1.55;max-width:280px;}

/* ══ HOME ══ */
#s-h{padding:42px 22px 34px;}
.ht{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:32px;}
.hn{font-size:18px;font-weight:700;color:var(--cream);padding-top:2px;cursor:pointer;transition:opacity .15s;}
.hn:hover{opacity:.65;}
.nb{font-size:26px;font-weight:700;color:var(--cream);padding:7px 0;cursor:pointer;display:block;transition:opacity .15s;letter-spacing:-.01em;}
.nb:hover{opacity:.6;}
.ng{height:24px;}
.nm{font-size:18px;font-weight:300;color:var(--cream);padding:6px 0;cursor:pointer;display:block;transition:opacity .15s;}
.nm:hover{opacity:.6;}
.hf{margin-top:auto;padding-top:18px;border-top:1px solid rgba(234,224,200,.08);}
.ns{font-size:15px;font-weight:300;color:var(--cream);padding:5px 0;cursor:pointer;display:block;transition:opacity .15s;}
.ns:hover{opacity:.6;}

/* ══ O-ID ══ */
.oid-qb{margin-bottom:22px;}
.oid-qt{font-size:13px;color:var(--cream);line-height:1.5;margin-bottom:8px;}
.oid-pl{font-size:9px;color:rgba(234,224,200,.38);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px;}
.ar{display:flex;gap:5px;margin-bottom:6px;}
/* Answers always in fixed order — layout locked via JS */
.ab{flex:1;padding:8px 2px;border-radius:8px;font-family:'Montserrat',sans-serif;font-size:10px;font-weight:700;cursor:pointer;text-align:center;border:1.5px solid;transition:opacity .12s;}
.ab.sel{opacity:1;}
.ab.unsel{opacity:.28;}
.ab.fresh{opacity:1;}
.a-y{color:var(--yes);border-color:var(--yes);background:rgba(210,137,138,.1);}
.a-n{color:var(--no);border-color:var(--no);background:rgba(78,123,150,.1);}
.a-i{color:var(--int);border-color:var(--int);background:rgba(137,210,137,.1);}
.a-k{color:var(--idk);border-color:var(--idk);background:rgba(234,224,200,.1);}
.oid-sv{width:100%;background:var(--cream);color:#000;border:none;border-radius:8px;padding:13px;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;cursor:pointer;margin:12px 0 70px;}

/* O-ID summary card */
#oid-sum{display:none;flex-direction:column;padding:16px 22px 30px;}
#oid-sum.show{display:flex;}
.oid-card{background:#1E1E1E;border-radius:20px;padding:18px 22px 14px;}
.oid-ch{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.oid-cn{font-size:16px;font-weight:700;color:var(--cream);cursor:pointer;text-decoration:none;}
.oid-cn:hover{opacity:.8;}
/* Summary grid rows */
.sr3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px;}
.sr2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;}
.sdiv{border-top:1px solid rgba(234,224,200,.08);margin:8px 0;}
.sc{}
.slb{font-size:11px;color:var(--cream);margin-bottom:5px;font-weight:300;}
/* Fixed 4-slot answer row — one slot per answer option in order */
.slot-row{display:flex;gap:3px;align-items:center;margin-bottom:4px;}
.slot-row:last-child{margin-bottom:0;}
.slot{width:14px;height:9px;border-radius:99px;}
.slot.filled{/* color set inline */}
.slot.empty{background:transparent;}

/* ══ O-CARD (flip results card) ══ */
.ocard-wrap{
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:4px 20px 22px;
  gap:14px;
}

/* Give the tall O-card more vertical room */
#s-oc .ocard-wrap {
  padding-top: 8px;
  padding-bottom: 20px;
}
.ocard{
  width:100%;
  max-width:480px;
  min-height:580px;
  perspective:1400px;
  margin:0 auto;
}
.ocard-inner{
  position:relative;
  width:100%;
  height:100%;
  transition:transform 0.65s cubic-bezier(.4,0,.2,1);
  transform-style:preserve-3d;
}
.ocard.flipped .ocard-inner{
  transform:rotateY(180deg);
}
.ocard-face{
  position:absolute;
  inset:0;
  backface-visibility:hidden;
  border-radius:22px;
  background:#1E1E1E;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.45);
  border:1px solid rgba(234,224,200,.08);
}
.ocard-front{ z-index:2; }
.ocard-back{
  transform:rotateY(180deg);
  z-index:1;
}
.ocard-head{
  font-size:18px;
  font-weight:700;
  color:var(--cream);
  padding:14px 20px 8px;
  letter-spacing:-0.01em;
  border-bottom:1px solid rgba(234,224,200,.08);
  flex-shrink:0;
  cursor: pointer;
}

.ocard-head:hover {
  opacity: 0.8;
}
.ocard-body{
  flex:1;
  padding:20px 20px 10px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

@media (max-width: 420px) {
  .ocard-body {
    padding: 10px 12px 4px;
  }
  .oc-qr-section {
    padding-top: 2px;
  }
  .oc-qr {
    max-width: 100px;
    max-height: 100px;
    padding: 2px;
  }
}
.omap-vis{
  position:relative;
  flex:1;
  background:#0a0a0a;
  border-radius:14px;
  margin-bottom:12px;
  min-height:360px;
  overflow:hidden;
}
#oc-map-canvas{
  width:100%;
  height:100%;
  display:block;
}

.ocard-edit{
  margin:8px 16px 12px;
  background:none;
  border:none;
  color:rgba(234,224,200,.35);
  font-family:'Montserrat',sans-serif;
  font-size:11px;
  cursor:pointer;
  align-self:stretch;
  text-align:center;
}
.ocard-edit:hover{ color:rgba(234,224,200,.65); }

/* QR code on the O-ID side of the O-card */
.oc-qr-section{
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 12px;
}
.oc-qr{
  width: 100%;
  max-width: 240px;
  aspect-ratio: 1 / 1;
  background: #EAE0C8;
  border-radius: 16px;
  padding: 8px;
  box-shadow: 0 4px 20px rgba(0,0,0,0.45);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: box-shadow 0.15s ease, filter 0.15s ease;
}

.oc-qr:hover {
  box-shadow: 0 8px 30px rgba(0,0,0,0.55);
  filter: brightness(1.04);
}

.oc-qr canvas {
  width: 100% !important;
  height: 100% !important;
  max-width: 100%;
  max-height: 100%;
  display: block;
}

/* O-ID summary grids inside the flip card (slightly tighter) */
.oc-sr3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px;}
.oc-sr2{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:2px;}
#oc-oid-body{ font-size:0.9em; }

@media (max-width: 420px) {
  .oc-sr3, .oc-sr2 { gap: 1px; margin-bottom: 2px; }
  #oc-oid-body { font-size: 0.68em; line-height: 1.1; }
  .oc-sr3 .oc-sr-label,
  .oc-sr2 .oc-sr-label { font-size: 6.5px; }
  .ocard-head {
    padding: 8px 10px 4px;
    font-size: 15px;
  }
  .ocard-body {
    padding: 8px 10px 2px;
  }
  .oc-qr-section {
    padding-top: 0px;
  }
}

/* The big Flip button under the card */
#oc-flip-btn{
  display:block;
  width:100%;
  max-width:220px;
  margin:0 auto;
  background:var(--cream);
  color:#1a1a1a;
  border:none;
  border-radius:999px;
  padding:12px 26px;
  font-family:'Montserrat',sans-serif;
  font-size:15px;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 4px 16px rgba(234,224,200,.22);
  transition:transform .1s ease, box-shadow .2s;
}
#oc-flip-btn:active{ transform:scale(0.985); }

/* Desktop sizing for the card */
@media (min-width:700px){
  .ocard{
    max-width:580px;
    min-height:740px;
  }
  .omap-vis{
    min-height:480px;
  }
  #oc-flip-btn{ max-width:240px; font-size:16px; padding:13px 30px; }
}

/* ══ ABOUT ══ */
#s-ao{background:var(--black);}
.ao-body{flex:1;overflow-y:auto;padding:12px 22px 40px;}
.ao-section{margin-bottom:28px;}
.ao-icon{font-size:18px;margin-right:6px;}
.ao-h{font-size:15px;font-weight:700;color:var(--cream);margin-bottom:10px;display:flex;align-items:center;}
.ao-p{font-size:13px;font-weight:300;color:rgba(234,224,200,.75);line-height:1.75;margin-bottom:8px;}
.ao-ol{padding-left:0;list-style:none;}
.ao-li{font-size:13px;color:rgba(234,224,200,.75);line-height:1.75;margin-bottom:10px;padding-left:0;}
.ao-li strong{color:var(--cream);font-weight:700;display:block;margin-bottom:1px;}
.ao-sub{display:block;padding-left:14px;position:relative;}
.ao-sub::before{content:'–';position:absolute;left:0;color:rgba(234,224,200,.35);}
.ao-div{height:1px;background:rgba(234,224,200,.07);margin:24px 0;}
.ao-contact{font-size:12px;color:rgba(234,224,200,.4);text-align:center;margin-top:8px;}
.ao-contact a{color:rgba(210,185,150,.6);text-decoration:none;}

/* ══ MY QUESTIONS ══ */
.ci-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid rgba(234,224,200,.07);cursor:pointer;}
.ci-row:hover .ci-name{opacity:.7;}
.ci-name{font-size:15px;font-weight:300;color:var(--cream);}
.ci-right{display:flex;align-items:center;gap:7px;}
.ci-prog{font-size:10px;color:rgba(234,224,200,.35);}
.ci-chev{color:rgba(234,224,200,.3);font-size:15px;}
.gf{width:15px;height:15px;border-radius:50%;background:var(--int);display:flex;align-items:center;justify-content:center;font-size:8px;color:#000;font-weight:700;}

/* Question blocks in subcategory */
.iq-b{margin-bottom:16px;}
.iq-q{font-size:13px;color:var(--cream);line-height:1.55;margin-bottom:8px;}
.iq-ar{display:flex;gap:6px;margin-bottom:6px;}
.iq-btn{flex:1;padding:8px 2px;border-radius:8px;border:1.5px solid;font-family:'Montserrat',sans-serif;font-size:10px;font-weight:700;cursor:pointer;text-align:center;}
.iq-btn.sel{opacity:1;}
.iq-btn:not(.sel){opacity:.32;}
.iq-cmt{width:100%;background:rgba(234,224,200,.05);border:1px solid rgba(234,224,200,.09);border-radius:8px;padding:8px 10px;font-family:'Montserrat',sans-serif;font-size:12px;color:var(--cream);outline:none;resize:none;min-height:34px;}
.iq-cmt::placeholder{color:rgba(234,224,200,.22);}

/* Eye / privacy toggle per subcategory */
.priv-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 0 8px;margin-bottom:8px;border-bottom:1px solid rgba(234,224,200,.07);}
.priv-lbl{font-size:11px;color:rgba(234,224,200,.4);}
.priv-right{display:flex;align-items:center;gap:8px;}
.eye-btn{background:none;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:6px;transition:background .15s;}
.eye-btn:hover{background:rgba(234,224,200,.08);}
.eye-btn svg{width:18px;height:18px;}
.eye-btn.hidden-mode svg .eye-open{display:none;}
.eye-btn.hidden-mode svg .eye-closed{display:block;}
.eye-btn:not(.hidden-mode) svg .eye-open{display:block;}
.eye-btn:not(.hidden-mode) svg .eye-closed{display:none;}
.eye-status{font-size:9px;letter-spacing:.04em;text-transform:uppercase;font-weight:700;}

/* Sub group completed eye in list */
.eye-indicator{width:16px;height:16px;display:flex;align-items:center;justify-content:center;opacity:.5;}
.eye-indicator svg{width:16px;height:16px;}

.blk-sv{width:100%;background:var(--cream);color:#000;border:none;border-radius:8px;padding:12px;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;cursor:pointer;margin:10px 0 60px;}

/* ══ O-MAP ══ */
#s-m{padding:40px 22px 14px;overflow:hidden;}

#s-m .top-bar {
  padding-top: 12px;
}

.om-wrap{flex:1;display:flex;flex-direction:column;min-height:0;padding:10px 18px 10px;gap:8px;position:relative;}
#mw{flex:1;position:relative;border-radius:12px;overflow:hidden;background:#1E1E1E;min-height:0;touch-action:none;}
#tc{position:absolute;inset:0;z-index:1;}
#tc canvas{display:block;width:100%!important;height:100%!important;}
#oc{position:absolute;inset:0;z-index:10;width:100%;height:100%;touch-action:none;pointer-events:none;}
#cc{position:absolute;inset:0;z-index:11;width:100%;height:100%;pointer-events:none;}
#ml{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#1E1E1E;transition:opacity .5s;}
#ml.gone{opacity:0;pointer-events:none;}
.sp{width:26px;height:26px;border:2px solid rgba(234,224,200,.12);border-top-color:var(--cream);border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.ll{font-size:11px;color:rgba(234,224,200,.35);letter-spacing:.06em;}
.mtb{display:flex;gap:3px;flex-shrink:0;align-items:center;}
.mt{display:flex;align-items:center;justify-content:center;gap:5px;padding:6px 11px;border-radius:8px;border:1.5px solid rgba(234,224,200,.1);background:transparent;color:rgba(234,224,200,.35);font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;cursor:pointer;transition:all .15s;letter-spacing:.03em;}
.mt.active{background:rgba(240,235,225,.12);border-color:rgba(220,215,205,.5);color:var(--cream);}
.mt.like.active{background:rgba(210,137,138,.15);border-color:rgba(210,137,138,.6);color:#D2898A;}
.mt.dis.active{background:rgba(78,123,150,.15);border-color:rgba(78,123,150,.6);color:#4E7B96;}
.mt.erase.active{background:rgba(120,120,120,.18);border-color:rgba(160,160,160,.6);color:#aaa;}
.mt svg{width:13px;height:13px;flex-shrink:0;}
.mt-sep{flex:1;}
.mc{padding:6px 12px;border-radius:8px;border:1.5px solid rgba(210,137,138,.35);background:transparent;color:#D2898A;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;cursor:pointer;transition:all .15s;}
.mc:hover{background:rgba(210,137,138,.12);border-color:rgba(210,137,138,.55);}
.br{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.bl{font-size:8px;color:rgba(234,224,200,.35);white-space:nowrap;}
.bs{flex:none;width:160px;max-width:60%;-webkit-appearance:none;appearance:none;height:7px;background:rgba(234,224,200,.15);border-radius:3px;outline:none;cursor:pointer;}
.bs::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--cream);cursor:pointer;}

.mh{text-align:center;font-size:9.5px;color:rgba(234,224,200,.25);flex-shrink:0;margin-bottom:2px;}

/* Painting Tools panel – directly in top-left corner inside the black viewport (#mw) */
.tools-panel {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 50;
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 6px 8px;
  background: rgba(30, 30, 30, 0.72);
  border-radius: 10px;
  border: 1px solid rgba(234,224,200,.12);
  max-width: 220px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.35);
  backdrop-filter: blur(2px);
}



.tool-row {
  display: flex;
  align-items: center;
  gap: 6px;
}

.tool-label {
  font-size: 8.5px;
  color: rgba(234,224,200,.7);
  width: 62px;
  flex-shrink: 0;
  line-height: 1.1;
}

/* Brush slider inside tools panel */
.tools-panel .bs {
  flex: 1;
  height: 4px;
  width: auto;
}

/* Shape sliders inside tools panel */
.tools-panel .shape-slider {
  flex: 1;
  height: 4px;
}

/* Thumbs for tools panel sliders (half size) */
.tools-panel .bs::-webkit-slider-thumb,
.tools-panel .shape-slider::-webkit-slider-thumb {
  width: 10px;
  height: 10px;
}

.tools-panel .tool-row + .tool-row {
  margin-top: 5px;
}

/* Extra tight layout on very narrow mobile screens to avoid the toolbox being cut off */
@media (max-width: 380px) {
  .tools-panel {
    top: 6px;
    left: 6px;
    max-width: 180px;
    padding: 5px 6px;
    gap: 4px;
  }
  .tool-row {
    gap: 4px;
  }
  .tool-label {
    width: 55px;
    font-size: 7.5px;
  }
  .tools-panel .tool-row + .tool-row {
    margin-top: 5px;
  }
}

.om-instruction {
  font-size:15px;
  color: rgba(234,224,200,.4);
  padding: 0;
  margin: 0 0 6px 0;
  flex-shrink: 0;
}

.om-instruction .like {
  color: var(--yes);
  font-weight: 700;
}

.om-instruction .dislike {
  color: #4E7B96;
  font-weight: 700;
}
#ms{width:100%;background:var(--cream);color:#000;border:none;border-radius:8px;padding:11px;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;cursor:pointer;flex-shrink:0;}
#s-m #ms { padding: 8px; font-size: 11px; }

#ms:disabled{opacity:.3;cursor:default;}

/* Guarantee original cream color on key buttons */
#s-landing button,
#s-profile .profile-actions .by,
#s-profile .profile-actions .bn,
#s-m #ms {
  background: var(--cream) !important;
}

/* Keep O-MAP mode toolbar active states subtle but consistent */
#s-m .mt.active {
  background: rgba(234, 224, 200, .12) !important;
}

/* ══ AUTH FEEDBACK ══ */
.auth-err{font-size:12px;color:#D2898A;text-align:center;min-height:18px;margin-top:4px;}
.auth-ok{font-size:12px;color:#89D289;text-align:center;min-height:18px;margin-top:4px;}
.auth-link{background:none;border:none;color:rgba(234,224,200,.4);font-family:'Montserrat',sans-serif;font-size:11px;cursor:pointer;text-decoration:underline;margin-top:12px;}
.auth-sub{width:100%;background:var(--cream);color:#1a1a1a;border:none;border-radius:8px;padding:16px 24px;font-family:'Montserrat',sans-serif;font-size:15px;font-weight:700;cursor:pointer;position:relative;z-index:10;margin-top:12px;transition:opacity .15s;}
.auth-sub:active{opacity:.75;}

/* ══ QR MODAL ══ */
.qr-modal{position:absolute;inset:0;z-index:800;background:rgba(13,13,13,.93);display:none;align-items:center;justify-content:center;flex-direction:column;gap:18px;}
.qr-modal.open{display:flex;}
.qr-modal-box{background:var(--cream);border-radius:8px;padding:20px;line-height:0;}
.qr-close-hint{font-size:11px;font-weight:700;color:rgba(234,224,200,.35);letter-spacing:.08em;cursor:pointer;}

/* ══ SCAN OVERLAY ══ */
.scan-ov{position:absolute;inset:0;z-index:800;background:#1E1E1E;display:none;flex-direction:column;align-items:center;justify-content:center;gap:16px;}
.scan-ov.open{display:flex;}
.scan-title{font-size:14px;font-weight:700;color:var(--cream);}
.scan-frame{position:relative;width:230px;height:230px;border-radius:8px;overflow:hidden;background:#1E1E1E;}
.scan-frame video{width:100%;height:100%;object-fit:cover;display:block;}
.sc-corner{position:absolute;width:22px;height:22px;border-color:var(--cream);border-style:solid;}
.sc-corner.tl{top:8px;left:8px;border-width:2px 0 0 2px;}
.sc-corner.tr{top:8px;right:8px;border-width:2px 2px 0 0;}
.sc-corner.bl{bottom:8px;left:8px;border-width:0 0 2px 2px;}
.sc-corner.br{bottom:8px;right:8px;border-width:0 2px 2px 0;}
.scan-hint{font-size:12px;font-weight:300;color:rgba(234,224,200,.45);letter-spacing:.03em;}
.scan-cancel-btn{background:var(--cream);color:#1E1E1E;border:none;border-radius:8px;padding:12px 32px;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;cursor:pointer;}

/* ══ POPUPS ══ */
.pop-ov{position:absolute;inset:0;z-index:900;background:rgba(13,13,13,.88);display:none;align-items:center;justify-content:center;}
.pop-ov.open{display:flex;}
.pop-box{background:#1E1E1E;border-radius:8px;padding:30px 22px 24px;width:270px;text-align:center;}
.pop-title{font-size:16px;font-weight:700;color:var(--cream);margin-bottom:8px;}
.pop-sub{font-size:13px;font-weight:300;color:rgba(234,224,200,.55);line-height:1.6;margin-bottom:22px;}
.pop-btns{display:flex;gap:10px;justify-content:center;}
.pop-yes{background:var(--cream);color:#1E1E1E;border:none;border-radius:8px;padding:11px 28px;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;cursor:pointer;}
.pop-no{background:none;border:1.5px solid rgba(234,224,200,.2);color:rgba(234,224,200,.45);border-radius:8px;padding:11px 28px;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;cursor:pointer;}

/* ══ PARTNERS SCREEN ══ */
.scan-main-btn{width:100%;background:var(--cream);color:#1E1E1E;border:none;border-radius:8px;padding:13px;font-family:'Montserrat',sans-serif;font-size:14px;font-weight:700;cursor:pointer;margin-bottom:22px;transition:opacity .15s;}
.scan-main-btn:active{opacity:.75;}
.partner-row{display:flex;align-items:center;padding:14px 0;border-bottom:1px solid rgba(234,224,200,.07);cursor:pointer;gap:10px;}
.partner-row:hover .prow-name{opacity:.65;}
.prow-name{font-size:15px;font-weight:300;color:var(--cream);flex:1;}
.prow-badge{font-size:9px;font-weight:700;letter-spacing:.06em;padding:3px 7px;border-radius:4px;background:rgba(137,210,137,.12);color:#89D289;}
.prow-chev{color:rgba(234,224,200,.28);font-size:15px;}
.no-partners-msg{font-size:13px;font-weight:300;color:rgba(234,224,200,.28);text-align:center;padding:32px 0;}

/* ══ PARTNER PROFILE SCREEN ══ */
.pp-section{margin-bottom:24px;}
.pp-section-lbl{font-size:10px;font-weight:700;color:rgba(234,224,200,.3);text-transform:uppercase;letter-spacing:.09em;margin-bottom:10px;}
.pp-qr-wrap{display:flex;justify-content:center;margin-bottom:8px;}
.pp-locked{background:#1E1E1E;border-radius:8px;padding:20px 22px;text-align:center;}
.pp-locked-txt{font-size:13px;font-weight:300;color:rgba(234,224,200,.38);line-height:1.6;}
.bp-group{margin-bottom:12px;}
.bp-group-lbl{font-size:10px;font-weight:700;color:rgba(234,224,200,.35);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px;}
.bp-chips{display:flex;flex-wrap:wrap;gap:5px;}
.bp-chip{font-size:11px;font-weight:300;color:rgba(234,224,200,.7);background:rgba(234,224,200,.07);border-radius:4px;padding:3px 8px;}
.pp-iq-cat{margin-bottom:16px;}
.pp-iq-cat-name{font-size:12px;font-weight:700;color:var(--cream);margin-bottom:6px;}
.pp-iq-sub{margin-bottom:10px;}
.pp-iq-sub-name{font-size:10px;font-weight:700;color:rgba(234,224,200,.35);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px;}
.pp-iq-q{font-size:12px;font-weight:300;color:rgba(234,224,200,.65);margin-bottom:3px;line-height:1.45;}
.pp-iq-ans{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;margin-bottom:6px;}
.pp-iq-cmt{font-size:11px;font-weight:300;color:rgba(234,224,200,.4);font-style:italic;margin-bottom:4px;}

/* ══ COMMON ══ */
#dots{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:150;}
.dot{width:5px;height:5px;border-radius:50%;background:rgba(234,224,200,.18);transition:background .3s;}
.dot.on{background:rgba(234,224,200,.65);}
#toast {
  position: absolute;
  top: 42%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0.92);
  background: var(--cream);
  color: #1E1E1E;
  font-size: 14px;
  font-weight: 700;
  padding: 14px 28px;
  border-radius: 8px;
  z-index: 600;
  opacity: 0;
  transition: opacity .25s ease, transform .25s ease;
  pointer-events: none;
  white-space: nowrap;
  box-shadow: 0 10px 30px rgba(0,0,0,.45);
}

#toast.show {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

/* ══ TOTAL PROGRESS BAR (My Questions) ══ */
#mq-total-progress {
  margin: 8px 22px 12px;
  padding: 10px 22px;
  background: rgba(234, 224, 200, 0.06);
  border-radius: 8px;
}

.mq-progress-header {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: rgba(234, 224, 200, 0.7);
  margin-bottom: 6px;
}

.mq-progress-track {
  height: 6px;
  background: rgba(234, 224, 200, 0.15);
  border-radius: 999px;
  overflow: hidden;
}

.mq-progress-fill {
  height: 100%;
  background: var(--int); /* Green like the 'Int' answer color */
  border-radius: 999px;
  transition: width 0.2s ease;
}

/* ══ USER PROFILE ══ */
.profile-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 10px 24px 40px;
  overflow-y: auto;
}

.profile-avatar {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 4px;
}

.avatar-circle {
  width: 92px;
  height: 92px;
  background: var(--cream);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  font-weight: 700;
  color: #1E1E1E;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}

.avatar-btn {
  background: none;
  border: 1px solid rgba(234,224,200,.3);
  color: rgba(234,224,200,.7);
  font-size: 11px;
  padding: 4px 14px;
  border-radius: 999px;
  cursor: pointer;
  font-family: 'Montserrat', sans-serif;
}

.avatar-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-top: 22px;
  margin-bottom: 10px;
}

.profile-name {
  font-size: 24px;
  font-weight: 700;
  color: var(--cream);
  margin-top: 8px;
}

.profile-handle {
  font-size: 13px;
  color: rgba(234,224,200,.45);
  margin-bottom: 16px;
}

.profile-section {
  width: 100%;
  max-width: 380px;
  background: #1E1E1E;
  border-radius: 16px;
  padding: 16px 18px;
  margin-bottom: 14px;
}

.profile-sec-title {
  font-size: 12px;
  font-weight: 600;
  color: rgba(234,224,200,.5);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 10px;
}

.profile-bio {
  font-size: 14px;
  color: var(--cream);
  line-height: 1.45;
  min-height: 42px;
  cursor: pointer;
}

.profile-row {
  display: flex;
  justify-content: space-between;
  padding: 7px 0;
  border-top: 1px solid rgba(234,224,200,.07);
  font-size: 14px;
}
.profile-row:first-child {
  border-top: none;
  padding-top: 0;
}
.profile-row-label {
  color: rgba(234,224,200,.55);
}
.profile-row-value {
  color: var(--cream);
  font-weight: 500;
  cursor: pointer;
  transition: color 0.15s ease;
}
.profile-row-value:hover {
  color: rgba(234, 224, 200, 0.8);
}

.profile-actions {
  width: 100%;
  max-width: 380px;
  display: flex;
  flex-direction: row;
  gap: 10px;
  justify-content: center;
  margin-top: 10px;
}

.profile-actions .by,
.profile-actions .bn {
  background: var(--cream);
  color: #1a1a1a;
  border: none;
  border-radius: 999px;
  padding: 8px 16px;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(234,224,200,.22);
  transition: transform .1s ease, box-shadow .2s;
  width: auto;
  max-width: 140px;
  margin: 0;
  text-align: center;
}

.profile-actions .bn {
  background: rgba(234,224,200,.85);
}

.profile-edit-textarea,
.profile-edit-input {
  width: 100%;
  background: #2a2a2a;
  border: 1px solid rgba(234,224,200,.25);
  border-radius: 6px;
  color: var(--cream);
  font-family: 'Montserrat', sans-serif;
  font-size: 14px;
  padding: 8px 10px;
  box-sizing: border-box;
}

.profile-edit-textarea {
  min-height: 80px;
  resize: vertical;
}

.profile-edit-input {
  height: 38px;
}

/* Achievements section */
.achievements-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.achievement-item {
  background: rgba(234, 224, 200, 0.06);
  border-radius: 8px;
  padding: 10px 12px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.achievement-icon {
  font-size: 18px;
  width: 22px;
  flex-shrink: 0;
  margin-top: 1px;
}

.achievement-content {
  flex: 1;
}

.achievement-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--cream);
  margin-bottom: 2px;
}

.achievement-desc {
  font-size: 11px;
  color: rgba(234, 224, 200, 0.6);
  line-height: 1.3;
}

/* Achievement carousel arrows */
.achievement-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border: none;
  background: rgba(234, 224, 200, 0.2);
  color: var(--cream);
  font-size: 18px;
  line-height: 1;
  border-radius: 50%;
  cursor: pointer;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

.achievement-arrow:hover {
  background: rgba(234, 224, 200, 0.3);
}

.achievement-arrow.left {
  left: 4px;
}

.achievement-arrow.right {
  right: 4px;
}

#profile-achievements {
  position: relative;
  padding-left: 32px;
  padding-right: 32px;
}

/* === AVATAR FRAMES === */
.avatar-frame {
  position: relative;
  display: inline-block;
  padding: 6px;
  border-radius: 50%;
}

.avatar-frame::after {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 1;
}

/* Frame Styles */
.avatar-frame.frame-gold::after {
  border: 5px solid #d4af37;
  box-shadow: 0 0 12px rgba(212, 175, 55, 0.5);
}

.avatar-frame.frame-silver::after {
  border: 5px solid #c0c0c0;
  box-shadow: 0 0 10px rgba(192, 192, 192, 0.4);
}

.avatar-frame.frame-purple::after {
  border: 5px solid #9b59b6;
  box-shadow: 0 0 14px rgba(155, 89, 182, 0.5);
}

.avatar-frame.frame-green::after {
  border: 5px solid #2ecc71;
  box-shadow: 0 0 14px rgba(46, 204, 113, 0.55);
}



.avatar-frame.frame-rainbow::after {
  background: linear-gradient(
    to bottom,
    #FF69B4, #FF69B4 12.5%,
    #FF2E2E 12.5%, #FF2E2E 25%,
    #FF9900 25%, #FF9900 37.5%,
    #FFEB00 37.5%, #FFEB00 50%,
    #00B500 50%, #00B500 62.5%,
    #00C8C8 62.5%, #00C8C8 75%,
    #3F6FFF 75%, #3F6FFF 87.5%,
    #9B30FF 87.5%, #9B30FF
  );
  border-radius: 50%;
  -webkit-mask: radial-gradient(transparent 56%, black 57%);
  mask: radial-gradient(transparent 56%, black 57%);
  box-shadow: 0 0 18px rgba(128, 0, 128, 0.4);
}

/* Frame Picker */
.avatar-frame-picker {
  margin-top: 12px;
  background: #1E1E1E;
  border-radius: 12px;
  padding: 12px;
  border: 1px solid rgba(234,224,200,.1);
  max-width: 320px;
}

.frame-picker-title {
  font-size: 12px;
  color: rgba(234,224,200,.6);
  margin-bottom: 8px;
  text-align: center;
}

.frame-picker-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  justify-items: center;
}

.frame-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  padding: 4px;
  border-radius: 8px;
  transition: background .15s;
}

.frame-option:hover {
  background: rgba(234,224,200,.08);
}

.frame-option.selected {
  background: rgba(234,224,200,.15);
}

.frame-preview-wrapper {
  width: 52px;
  height: 52px;
  background: var(--cream);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  font-size: 18px;
  color: #1E1E1E;
  font-weight: 700;
  box-shadow: 0 2px 6px rgba(0,0,0,0.25);
}

.frame-preview-wrapper .mini-avatar {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--cream);
}

.frame-preview-wrapper::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 2;
}

/* Frame-specific borders for the picker previews */
.frame-preview-wrapper.frame-gold::after {
  border: 4px solid #d4af37;
  box-shadow: 0 0 8px rgba(212, 175, 55, 0.6);
}

.frame-preview-wrapper.frame-silver::after {
  border: 4px solid #a8a8a8;
  box-shadow: 0 0 6px rgba(192, 192, 192, 0.5);
}

.frame-preview-wrapper.frame-purple::after {
  border: 4px solid #9b59b6;
  box-shadow: 0 0 8px rgba(155, 89, 182, 0.6);
}

.frame-preview-wrapper.frame-green::after {
  border: 4px solid #2ecc71;
  box-shadow: 0 0 8px rgba(46, 204, 113, 0.65);
}



.frame-preview-wrapper.frame-rainbow::after {
  background: linear-gradient(
    to bottom,
    #FF69B4, #FF69B4 12.5%,
    #FF2E2E 12.5%, #FF2E2E 25%,
    #FF9900 25%, #FF9900 37.5%,
    #FFEB00 37.5%, #FFEB00 50%,
    #00B500 50%, #00B500 62.5%,
    #00C8C8 62.5%, #00C8C8 75%,
    #3F6FFF 75%, #3F6FFF 87.5%,
    #9B30FF 87.5%, #9B30FF
  );
  border-radius: 50%;
  -webkit-mask: radial-gradient(transparent 52%, black 53%);
  mask: radial-gradient(transparent 52%, black 53%);
  box-shadow: 0 0 12px rgba(128, 0, 128, 0.45);
}

.frame-name {
  font-size: 10px;
  color: rgba(234,224,200,.7);
  margin-top: 4px;
  text-align: center;
  white-space: nowrap;
  line-height: 1.2;
}

.frame-picker-close {
  margin-top: 10px;
  background: none;
  border: 1px solid rgba(234,224,200,.3);
  color: rgba(234,224,200,.7);
  font-size: 11px;
  padding: 4px 12px;
  border-radius: 999px;
  cursor: pointer;
  width: 100%;
}
}

/* Category progress header (for s-mqs) */
.progress-header {
  background: #1E1E1E;
  border-radius: 8px;
  padding: 12px 22px;
  margin: 8px 22px 12px;
  border: 1px solid rgba(234,224,200,0.08);
}

.progress-header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
  font-weight: 300;
  color: #EAE0C8;
  margin-bottom: 8px;
}

.progress-bar-container {
  height: 4px;
  background: rgba(234, 224, 200, 0.15);
  border-radius: 2px;
  overflow: hidden;
}

.progress-bar {
  height: 100%;
  background: rgba(234, 224, 200, 0.7);
  border-radius: 2px;
  transition: width 0.2s ease;
}

/* Landing screen */
#s-landing {
  background: var(--black);
  justify-content: center;
  align-items: center;
}

#s-landing h1 {
  font-weight: 700;
  color: #EAE0C8;
  letter-spacing: -0.5px;
}

/* ═══════════════════════════════════════════════════════════
   DESKTOP / LARGE SCREEN MODE (almost full-bleed, no phone bezel)
   On wide viewports we drop the simulated phone frame entirely so
   the app uses the full browser real-estate.
   ═══════════════════════════════════════════════════════════ */
@media (min-width: 700px) {
  /* Let the root container stretch instead of centering a small card */
  html, body {
    align-items: stretch;
    justify-content: stretch;
  }

  /* Remove phone bezel but keep the app at a comfortable max width
     (centered on very wide screens so it doesn't feel stupidly stretched). */
  #phone {
    width: 100% !important;
    max-width: 1400px !important;
    height: 100vh !important;
    margin: 0 auto !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    /* keep overflow hidden so absolute screens don't leak */
    overflow: hidden !important;
  }

  /* Kill the iPhone-style notch pill */
  #phone::before {
    display: none !important;
  }

  /* Mobile page-indicator dots don't make sense on desktop */
  #dots {
    display: none !important;
  }

  /* Give the main content a little more breathing room on wide screens
     so text / controls don't feel glued to the absolute edges */
  .scroll-body {
    padding-left: 36px;
    padding-right: 36px;
  }

  .om-wrap {
    padding-left: 28px;
    padding-right: 28px;
  }

  /* Consent / questionnaire screens also benefit from wider padding */
  #s-c,
  #s-e,
  #s-v,
  #s-n,
  #s-b {
    padding-left: 36px;
    padding-right: 36px;
  }

  /* Top bars look better with a bit more horizontal space on desktop */
  .top-bar {
    padding-left: 32px;
    padding-right: 32px;
  }

  /* O-MAP specific: the toolbar row can spread out a little */
  .mtb {
    gap: 6px;
  }

  /* Make the Save button reasonably sized on large screens instead of full-width bar */
  #s-m #ms {
    width: auto;
    min-width: 220px;
    max-width: 320px;
    margin: 0 auto;
    padding: 10px 32px;
    font-size: 13px;
  }

  /* Same treatment for the O-ID questionnaire Save button */
  .oid-sv {
    display: block;
    width: auto;
    min-width: 220px;
    max-width: 320px;
    margin: 12px auto 40px;
    padding: 12px 40px;
  }

  /* Make the "Scan partner's QR code" button smaller and centered on large screens */
  .scan-main-btn {
    width: auto;
    min-width: 220px;
    max-width: 320px;
    margin: 0 auto 22px;
    display: block;
    padding: 13px 40px;
  }

  /* Auth forms (login, forgot, email/verify/name steps) — keep inputs & buttons
     at a comfortable width instead of stretching across the full 1200px */
  #s-login > div:nth-child(2),
  #s-forgot-password > div:nth-child(2),
  #s-e > div,
  #s-v > div,
  #s-n > div {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }

  /* Force the actual input boxes and buttons to fill the wide form area on desktop */
  #s-login .ci,
  #s-forgot-password .ci,
  #s-login button,
  #s-forgot-password button {
    width: 100% !important;
    max-width: none !important;
  }

  /* Make the main Log in button narrower and centered on desktop */
  #s-login button[onclick*="handleLogin"] {
    width: 280px !important;
    align-self: center !important;
  }

  /* Signup flow (email/verify/nickname): compact centered inputs + buttons
     to match the button size in the reference login page */
  /* Signup inputs - match the size of the inputs on the login page */
  #s-e .ci,
  #s-v .ci,
  #s-n .ci {
    width: 100% !important;
    max-width: 600px !important;
    align-self: center !important;
    margin: 0 auto !important;
  }

  /* Signup Continue buttons - compact */
  #s-e .auth-sub,
  #s-v .auth-sub,
  #s-n .auth-sub {
    width: 240px !important;
    max-width: 240px !important;
    align-self: center !important;
    margin: 0 auto !important;
  }

  /* Center the labels above the signup inputs */
  #s-e .fl,
  #s-v .fl,
  #s-n .fl {
    text-align: center;
    max-width: 600px;
    margin: 0 auto;
  }
}

/* ══ O-MAP INFO ICON & POPOVER ══ */
.info-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  color: var(--cream);
  margin-left: 6px;
  cursor: pointer;
  user-select: none;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}

.info-icon:hover {
  opacity: 1;
}

.info-icon svg {
  width: 100%;
  height: 100%;
  stroke: currentColor;
}

.omap-info-popover {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 2000;
}

.omap-info-popover.show {
  display: flex;
}

.omap-info-content {
  background: #1f1f1f;
  color: #EAE0C8;
  padding: 20px 24px;
  border-radius: 12px;
  max-width: 420px;
  width: 90%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
  font-size: 14px;
  line-height: 1.5;
}

.omap-info-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  font-size: 16px;
}

.omap-info-close {
  background: none;
  border: none;
  color: #888;
  font-size: 22px;
  cursor: pointer;
  line-height: 1;
}

.omap-info-content ul {
  margin: 8px 0 12px 18px;
  padding: 0;
}

.omap-info-content li {
  margin-bottom: 4px;
}
