/* ══════════════════════════════
   CSS VARIABLES & RESET
══════════════════════════════ */
:root {
  --cream:#FAF7F2;--cream-dark:#F0EBE1;--cream-deep:#E4DDD0;
  --ink:#1A1612;--ink-soft:#3D3530;--ink-muted:#8A7F75;--ink-faint:#C4B8AD;
  --rose:#C4728A;--rose-light:#F2E0E6;--rose-dim:#8A4F62;--rose-glow:rgba(196,114,138,0.10);
  --blue:#7AA8C4;--blue-light:#E0EDF5;--blue-dim:#4A7A9B;--blue-glow:rgba(122,168,196,0.10);
  --sage:#6B8F71;--sage-light:#E0EBE1;--sage-dim:#4A6350;
  --gold:#C9A84C;--gold-light:#F5EDD4;--gold-dim:#8A6C2A;--gold-glow:rgba(201,168,76,.12);
  --r:4px;
}

/* WISHING POOL */
.wishing-pool-wrap{margin-bottom:1.5rem;background:linear-gradient(135deg,#F0EBF8 0%,#EBF0F8 50%,#F0F8EB 100%);border:1px solid var(--cream-deep);border-radius:12px;overflow:hidden;position:relative}
.wp-header{padding:.625rem 1rem .5rem;display:flex;align-items:center;gap:10px}
.wp-title{font-family:'Cormorant Garamond',serif;font-size:15px;font-style:italic;color:var(--ink);flex:1}
.wp-subtitle{font-size:10px;color:var(--ink-muted)}
.wp-pool{position:relative;height:80px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 80% 60% at 50% 70%,rgba(122,168,196,.18) 0%,rgba(196,114,138,.08) 60%,transparent 100%);overflow:hidden}
.wp-ring{position:absolute;border-radius:50%;border:1px solid rgba(122,168,196,.3);transform:scale(0);opacity:0;pointer-events:none}
.wp-ring-1{width:40px;height:16px;bottom:16px}
.wp-ring-2{width:72px;height:26px;bottom:12px}
.wp-ring-3{width:110px;height:36px;bottom:8px}
.wp-ring-4{width:160px;height:52px;bottom:3px}
@keyframes ripple{0%{transform:scale(0);opacity:.6}100%{transform:scale(1);opacity:0}}
.wp-pool.rippling .wp-ring-1{animation:ripple .9s ease-out both}
.wp-pool.rippling .wp-ring-2{animation:ripple .9s .12s ease-out both}
.wp-pool.rippling .wp-ring-3{animation:ripple .9s .24s ease-out both}
.wp-pool.rippling .wp-ring-4{animation:ripple .9s .36s ease-out both}
.wp-coin{position:absolute;top:-20px;left:50%;transform:translateX(-50%);font-size:22px;opacity:0;pointer-events:none}
@keyframes coinDrop{0%{top:-20px;opacity:1;transform:translateX(-50%) rotate(0deg)}60%{top:28px;opacity:1;transform:translateX(-50%) rotate(180deg)}80%{top:22px;opacity:.8}100%{top:26px;opacity:0;transform:translateX(-50%) rotate(220deg)}}
.wp-coin.dropping{animation:coinDrop .9s ease-in both}
.wp-btn{width:48px;height:48px;border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--gold-light),var(--gold));border:2px solid var(--gold-dim);box-shadow:0 4px 14px rgba(201,168,76,.3);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:18px;transition:all .2s;position:relative;z-index:2}
.wp-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(201,168,76,.4)}
.wp-btn:active{transform:scale(.95)}
.wp-btn:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none}
.wp-btn-label{font-family:'DM Mono',monospace;font-size:7px;letter-spacing:.1em;color:var(--gold-dim);text-transform:uppercase;margin-top:1px}
.wp-status{padding:.625rem 1rem;border-top:1px solid var(--cream-deep);background:rgba(255,255,255,.6);min-height:40px;display:flex;align-items:center;gap:10px}
.wp-status-icon{font-size:16px;flex-shrink:0}
.wp-status-text{font-size:12px;color:var(--ink-muted);line-height:1.4;flex:1}
.wp-status-text strong{color:var(--ink);font-weight:500}
.wp-status-text em{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--rose);font-size:15px}
.wp-timer{font-family:'DM Mono',monospace;font-size:11px;color:var(--gold-dim);flex-shrink:0;min-width:42px;text-align:right}
.wp-match-card{margin:.875rem 1.25rem;padding:1rem 1.25rem;background:white;border:1px solid var(--cream-deep);border-radius:var(--r);animation:fadeUp .5s ease both}
.wm-label{font-family:'DM Mono',monospace;font-size:8px;letter-spacing:.2em;color:var(--gold-dim);text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.wm-label::after{content:'';flex:1;height:1px;background:var(--gold-light)}
.wm-partner{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.wm-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;border:1.5px solid}
.wm-avatar.M{background:var(--blue-light);border-color:var(--blue-dim)}
.wm-avatar.F{background:var(--rose-light);border-color:var(--rose-dim)}
.wm-nickname{font-family:'Cormorant Garamond',serif;font-size:18px;font-style:italic;color:var(--ink)}
.wm-cointime{font-family:'DM Mono',monospace;font-size:10px;color:var(--ink-faint);margin-top:3px}
.wm-action{display:flex;gap:8px}
.wm-go-btn{flex:2;padding:9px;background:var(--rose);color:white;border:none;border-radius:var(--r);font-family:'Outfit',sans-serif;font-size:13px;cursor:pointer;transition:opacity .2s}
.wm-go-btn.M{background:var(--blue)}
.wm-go-btn:hover{opacity:.88}
.wm-pass-btn{flex:1;padding:9px;background:none;border:1px solid var(--cream-deep);border-radius:var(--r);font-family:'Outfit',sans-serif;font-size:13px;color:var(--ink-muted);cursor:pointer}
.wm-pass-btn:hover{border-color:var(--ink-muted)}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden}
body{background:var(--cream);color:var(--ink);font-family:'Outfit',sans-serif;font-weight:300;display:flex;flex-direction:column}

/* ══════════════════════════════
   GENDER COLORS
══════════════════════════════ */
.gender-M { --g-color:var(--blue); --g-light:var(--blue-light); --g-dim:var(--blue-dim); --g-glow:var(--blue-glow); }
.gender-F { --g-color:var(--rose); --g-light:var(--rose-light); --g-dim:var(--rose-dim); --g-glow:var(--rose-glow); }

/* ══════════════════════════════
   LANG TOGGLE
══════════════════════════════ */
.lang-toggle{display:flex;gap:0;background:var(--cream-dark);border-radius:20px;padding:3px}
.lang-btn{padding:4px 12px;border-radius:16px;font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;color:var(--ink-muted);border:none;background:none;transition:all .2s}
.lang-btn.active{background:var(--rose);color:white}

/* ══════════════════════════════
   SCREENS
══════════════════════════════ */
.screen{display:none;flex-direction:column;height:100vh;overflow:hidden}
.screen.active{display:flex}

/* ══════════════════════════════
   LOADING SCREEN
══════════════════════════════ */
#screen-loading{align-items:center;justify-content:center;background:var(--cream)}
.loading-logo{font-family:'Cormorant Garamond',serif;font-size:64px;font-weight:300;color:var(--rose);animation:pulse 1.5s ease-in-out infinite}
.loading-sub{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.3em;color:var(--ink-faint);margin-top:.5rem;text-transform:uppercase}
@keyframes pulse{0%,100%{opacity:.4}50%{opacity:1}}

/* ══════════════════════════════
   ONBOARDING
══════════════════════════════ */
#screen-onboard{background:var(--cream);overflow-y:auto}
.ob-inner{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}
.ob-logo{font-family:'Cormorant Garamond',serif;font-size:64px;font-weight:300;color:var(--rose);line-height:1;margin-bottom:.25rem;animation:fadeUp .8s ease both}
.ob-sub{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.3em;color:var(--ink-muted);text-transform:uppercase;margin-bottom:1.5rem;animation:fadeUp .8s .1s ease both}
.ob-lang{animation:fadeUp .8s .15s ease both;margin-bottom:1.5rem}
.ob-tagline{font-family:'Cormorant Garamond',serif;font-size:22px;font-style:italic;color:var(--ink-soft);margin-bottom:2.5rem;line-height:1.5;animation:fadeUp .8s .2s ease both}
.ob-form{width:100%;max-width:340px;animation:fadeUp .8s .3s ease both}
.ob-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.2em;color:var(--ink-muted);text-transform:uppercase;display:block;margin-bottom:6px;text-align:left}
.ob-input{width:100%;padding:11px 14px;border:1px solid var(--cream-deep);border-radius:var(--r);background:white;font-family:'Outfit',sans-serif;font-size:15px;color:var(--ink);margin-bottom:14px;outline:none;transition:border-color .2s}
.ob-input:focus{border-color:var(--rose)}
.ob-input.error{border-color:#C84B2F}

/* Gender selector */
.gender-selector{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.gender-opt{padding:12px;border:1.5px solid var(--cream-deep);border-radius:var(--r);cursor:pointer;text-align:center;transition:all .2s;background:white}
.gender-opt:hover{border-color:var(--cream-deep)}
.gender-opt.sel-M{border-color:var(--blue);background:var(--blue-light)}
.gender-opt.sel-F{border-color:var(--rose);background:var(--rose-light)}
.gender-opt-icon{font-size:22px;display:block;margin-bottom:4px}
.gender-opt-label{font-size:13px;font-weight:500;color:var(--ink)}
.gender-opt-hint{font-size:11px;color:var(--ink-muted);margin-top:2px}

.btn-rose{width:100%;padding:13px;background:var(--rose);color:white;border:none;border-radius:var(--r);font-family:'Outfit',sans-serif;font-size:15px;font-weight:400;cursor:pointer;transition:opacity .2s,transform .1s;margin-bottom:12px}
.btn-rose:hover{opacity:.88}
.btn-rose:active{transform:scale(.98)}
.btn-rose:disabled{opacity:.4;cursor:not-allowed}
.ob-note{font-size:12px;color:var(--ink-faint);line-height:1.6}
.ob-switch{font-size:13px;color:var(--ink-muted);margin-top:1.25rem}
.ob-switch a{color:var(--rose);cursor:pointer;text-decoration:none}

/* ══════════════════════════════
   PROFILE SETUP
══════════════════════════════ */
#screen-profile-setup{background:var(--cream);overflow-y:auto}
.ps-inner{min-height:100vh;padding:2rem;max-width:480px;margin:0 auto}
.ps-header{text-align:center;padding:2rem 0 1.5rem}
.ps-title{font-family:'Cormorant Garamond',serif;font-size:28px;font-style:italic;color:var(--ink);margin-bottom:.5rem}
.ps-sub{font-size:13px;color:var(--ink-muted);line-height:1.5}
.ps-warning{background:var(--cream-dark);border:1px solid var(--cream-deep);border-radius:var(--r);padding:.875rem 1rem;font-size:12px;color:var(--ink-muted);line-height:1.6;margin-bottom:1.5rem;display:flex;gap:8px}
.ps-warning::before{content:'⚠';flex-shrink:0}
.ps-field{margin-bottom:1.25rem}
.ps-field-num{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.15em;color:var(--rose);text-transform:uppercase;margin-bottom:4px;display:flex;align-items:center;gap:6px}
.ps-field-label{font-size:14px;font-weight:500;color:var(--ink);margin-bottom:6px}
.ps-select{width:100%;padding:10px 14px;border:1px solid var(--cream-deep);border-radius:var(--r);background:white;font-family:'Outfit',sans-serif;font-size:14px;color:var(--ink);outline:none;cursor:pointer;transition:border-color .2s;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238A7F75' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.ps-select:focus{border-color:var(--rose)}
.ps-skip-note{font-size:11px;color:var(--ink-faint);margin-top:4px}
.ps-btn-wrap{padding:1.5rem 0}

/* ══════════════════════════════
   MAIN APP
══════════════════════════════ */
.app-nav{display:flex;align-items:center;padding:.875rem 1.25rem;border-bottom:1px solid var(--cream-deep);background:var(--cream);flex-shrink:0;gap:.75rem}
.nav-logo{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:300;color:var(--rose);line-height:1}
.nav-user{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.1em;color:var(--ink-muted);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-tabs{display:flex;gap:0;background:var(--cream-dark);border-radius:20px;padding:3px;flex-shrink:0}
.nav-tab{padding:5px 14px;border-radius:16px;font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;color:var(--ink-muted);border:none;background:none;transition:all .2s}
.nav-tab.active{background:var(--rose);color:white}
.app-body{flex:1;overflow:hidden;position:relative}
.tab-panel{display:none;height:100%;overflow-y:auto;padding:1.25rem}
.tab-panel.active{display:block}

/* ══════════════════════════════
   WALL TAB
══════════════════════════════ */
.today-q{background:var(--rose-glow);border:1px solid var(--rose);border-radius:var(--r);padding:1.25rem;margin-bottom:1.25rem}
.tq-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.2em;color:var(--rose);text-transform:uppercase;margin-bottom:8px;display:flex;align-items:center;gap:6px}
.tq-text{font-family:'Cormorant Garamond',serif;font-size:20px;font-style:italic;color:var(--ink);line-height:1.4;margin-bottom:1rem}
.tq-answered{font-size:13px;color:var(--sage);display:flex;align-items:center;gap:6px}
.write-area{background:white;border:1px solid var(--cream-deep);border-radius:var(--r);overflow:hidden;margin-bottom:1.25rem}
.wa-top{padding:.75rem 1rem;border-bottom:1px solid var(--cream-deep);display:flex;align-items:center;justify-content:space-between}
.wa-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.15em;color:var(--ink-muted);text-transform:uppercase}
.wa-count{font-family:'DM Mono',monospace;font-size:11px;color:var(--rose)}
.wa-count.warn{color:#C84B2F}
textarea.wa-input{width:100%;border:none;padding:.875rem 1rem;font-family:'Cormorant Garamond',serif;font-size:17px;color:var(--ink);resize:none;outline:none;min-height:90px;line-height:1.5;background:transparent}
.wa-bottom{padding:.75rem 1rem;border-top:1px solid var(--cream-deep);display:flex;align-items:center;justify-content:space-between}
.wa-note{font-size:12px;color:var(--ink-faint)}
.btn-sm{padding:7px 18px;border-radius:20px;font-family:'Outfit',sans-serif;font-size:13px;cursor:pointer;transition:all .2s;border:none}
.btn-sm-rose{background:var(--rose);color:white}
.btn-sm-rose:hover{opacity:.88}
.btn-sm-rose:disabled{opacity:.4;cursor:not-allowed}

/* Wall posts */
.wall-item{background:white;border:1px solid var(--cream-deep);border-radius:var(--r);padding:1rem 1.25rem;margin-bottom:.875rem;transition:border-color .2s,box-shadow .2s}
.wall-item:hover{border-color:var(--rose);box-shadow:0 2px 12px var(--rose-glow)}
.wi-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.wi-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;border:1px solid var(--cream-deep)}
.wi-avatar.M{background:var(--blue-light);border-color:var(--blue-dim)}
.wi-avatar.F{background:var(--rose-light);border-color:var(--rose-dim)}
.wi-id{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;color:var(--ink-muted)}
.wi-gender{font-family:'DM Mono',monospace;font-size:8px;padding:2px 6px;border-radius:3px}
.wi-gender.M{background:var(--blue-light);color:var(--blue-dim)}
.wi-gender.F{background:var(--rose-light);color:var(--rose-dim)}
.wi-time{font-family:'DM Mono',monospace;font-size:9px;color:var(--ink-faint);margin-left:auto}
.wi-text{font-family:'Cormorant Garamond',serif;font-size:17px;color:var(--ink-soft);line-height:1.5;margin-bottom:10px}
.wi-footer{display:flex;align-items:center;justify-content:space-between}
.wi-replies{font-size:12px;color:var(--ink-faint)}
.wi-reply-btn{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--rose);background:var(--rose-light);border:1px solid var(--rose);border-radius:20px;padding:3px 10px;cursor:pointer;transition:all .15s}
.wi-reply-btn:hover{background:var(--rose);color:white}

/* ══════════════════════════════
   INBOX TAB
══════════════════════════════ */
.conv-item{background:white;border:1px solid var(--cream-deep);border-radius:var(--r);padding:1rem 1.25rem;margin-bottom:.875rem;cursor:pointer;transition:border-color .2s;display:flex;gap:12px;align-items:center}
.conv-item:hover{border-color:var(--rose)}
.conv-item.has-new{background:var(--rose-glow);border-color:var(--rose)}
.conv-avatar{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;border:1.5px solid var(--cream-deep)}
.conv-avatar.M{background:var(--blue-light);border-color:var(--blue-dim)}
.conv-avatar.F{background:var(--rose-light);border-color:var(--rose-dim)}
.conv-info{flex:1;min-width:0}
.conv-session{font-family:'DM Mono',monospace;font-size:8px;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:2px}
.conv-nickname{font-size:13px;font-weight:500;color:var(--ink);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv-preview{font-family:'Cormorant Garamond',serif;font-size:14px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv-meta{text-align:right;flex-shrink:0}
.conv-time{font-family:'DM Mono',monospace;font-size:9px;color:var(--ink-faint);display:block;margin-bottom:4px}
.conv-progress{font-size:11px;color:var(--rose)}
.new-dot{width:8px;height:8px;border-radius:50%;background:var(--rose);flex-shrink:0;display:none}
.conv-item.has-new .new-dot{display:block}

/* ══════════════════════════════
   PROFILE TAB
══════════════════════════════ */
.profile-card{background:white;border:1px solid var(--cream-deep);border-radius:var(--r);padding:1.5rem;margin-bottom:1rem}
.pc-avatar-big{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 1rem;border:2px solid var(--cream-deep)}
.pc-avatar-big.M{background:var(--blue-light);border-color:var(--blue-dim)}
.pc-avatar-big.F{background:var(--rose-light);border-color:var(--rose-dim)}
.pc-bb-id{text-align:center;font-family:'DM Mono',monospace;font-size:11px;letter-spacing:.15em;color:var(--rose);margin-bottom:.25rem}
.pc-nickname{text-align:center;font-family:'Cormorant Garamond',serif;font-size:16px;font-style:italic;color:var(--ink);margin-bottom:.25rem}
.pc-joined{text-align:center;font-size:12px;color:var(--ink-faint);margin-bottom:1.5rem}
.pc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--cream-deep);border:1px solid var(--cream-deep);border-radius:var(--r);overflow:hidden}
.pcs{background:var(--cream-dark);padding:.875rem;text-align:center}
.pcs-num{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:600;color:var(--rose);line-height:1;display:block;margin-bottom:3px}
.pcs-label{font-size:11px;color:var(--ink-muted)}
.section-title{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.2em;color:var(--ink-muted);text-transform:uppercase;margin-bottom:.75rem;margin-top:1.25rem;display:flex;align-items:center;gap:8px}
.section-title::after{content:'';flex:1;height:1px;background:var(--cream-deep)}
.daily-limit-card{background:var(--cream-dark);border:1px solid var(--cream-deep);border-radius:var(--r);padding:1rem 1.25rem;margin-bottom:.875rem}
.dlc-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.dlc-label{font-size:14px;color:var(--ink-soft)}
.dlc-value{font-family:'DM Mono',monospace;font-size:13px;color:var(--rose)}
.dlc-bar{height:4px;background:var(--cream-deep);border-radius:2px;overflow:hidden}
.dlc-fill{height:100%;background:var(--rose);border-radius:2px}

/* ══════════════════════════════
   CHAT SCREEN
══════════════════════════════ */
#screen-chat{flex-direction:column}
.chat-header{display:flex;align-items:center;gap:10px;padding:.875rem 1.25rem;border-bottom:1px solid var(--cream-deep);background:var(--cream);flex-shrink:0}
.chat-back{font-size:20px;cursor:pointer;color:var(--ink-muted);line-height:1;border:none;background:none;padding:4px}
.chat-back:hover{color:var(--rose)}
.chat-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;border:1.5px solid}
.chat-avatar.M{background:var(--blue-light);border-color:var(--blue-dim)}
.chat-avatar.F{background:var(--rose-light);border-color:var(--rose-dim)}
.chat-info{flex:1;min-width:0}
.chat-session{font-family:'DM Mono',monospace;font-size:8px;letter-spacing:.1em;color:var(--ink-faint);display:block}
.chat-nickname{font-size:13px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.chat-status{font-size:11px;color:var(--ink-faint)}
.chat-unlock-btn{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);background:var(--sage-light);border:1px solid var(--sage-dim);border-radius:20px;padding:4px 10px;cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0}
.chat-unlock-btn:hover{background:var(--sage);color:white}
.chat-unlock-btn:disabled{opacity:.4;cursor:not-allowed}

.chat-messages{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:.875rem}
.msg-wrap{display:flex;flex-direction:column}
.msg-wrap.me{align-items:flex-end}
.msg-wrap.them{align-items:flex-start}
.msg-meta{font-family:'DM Mono',monospace;font-size:8px;letter-spacing:.1em;color:var(--ink-faint);margin-bottom:4px;text-transform:uppercase}
.msg-bubble{max-width:78%;padding:10px 14px;font-family:'Cormorant Garamond',serif;font-size:17px;line-height:1.5;border-radius:4px}

/* Gender-based bubble colors */
.msg-wrap.them.gender-M .msg-bubble{background:var(--blue-light);border:1px solid var(--blue-dim);border-radius:4px 14px 14px 14px;color:var(--ink-soft)}
.msg-wrap.them.gender-F .msg-bubble{background:var(--rose-light);border:1px solid var(--rose-dim);border-radius:4px 14px 14px 14px;color:var(--ink-soft)}
.msg-wrap.me.gender-M .msg-bubble{background:var(--blue);border-radius:14px 4px 14px 14px;color:white}
.msg-wrap.me.gender-F .msg-bubble{background:var(--rose);border-radius:14px 4px 14px 14px;color:white}

.msg-system{text-align:center;font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.15em;color:var(--ink-faint);text-transform:uppercase;padding:.5rem 0;display:flex;align-items:center;gap:.75rem}
.msg-system::before,.msg-system::after{content:'';flex:1;height:1px;background:var(--cream-deep)}

.unlock-reveal{background:var(--sage-light);border:1px solid var(--sage-dim);border-radius:var(--r);padding:.875rem 1rem;text-align:center}
.ur-label{font-family:'DM Mono',monospace;font-size:8px;letter-spacing:.15em;color:var(--sage-dim);text-transform:uppercase;display:block;margin-bottom:4px}
.ur-value{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:600;color:var(--sage-dim)}

.photo-reveal{background:var(--rose-light);border:1px solid var(--rose);border-radius:var(--r);padding:1.25rem;text-align:center}
.pr-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.15em;color:var(--rose-dim);text-transform:uppercase;display:block;margin-bottom:8px}
.pr-placeholder{width:80px;height:80px;border-radius:50%;background:var(--cream-deep);margin:0 auto 8px;display:flex;align-items:center;justify-content:center;font-size:32px;border:2px solid var(--rose)}
.pr-name{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:600;color:var(--ink)}

/* Progress bar */
.chat-progress{padding:.75rem 1.25rem;border-top:1px solid var(--cream-deep);background:var(--cream-dark);flex-shrink:0}
.cp-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.cp-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;color:var(--ink-muted);text-transform:uppercase}
.cp-status{font-family:'DM Mono',monospace;font-size:9px;color:var(--rose);letter-spacing:.05em}
.cp-bar{height:3px;background:var(--cream-deep);border-radius:2px;overflow:hidden}
.cp-fill{height:100%;background:var(--rose);border-radius:2px;transition:width .4s ease}

/* Chat input */
.chat-input-area{padding:.875rem 1.25rem;border-top:1px solid var(--cream-deep);background:var(--cream);flex-shrink:0}
.cia-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cia-limit{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;color:var(--ink-muted);text-transform:uppercase}
.cia-limit span{color:var(--rose)}
.cia-row{display:flex;gap:8px;align-items:flex-end}
textarea.cia-input{flex:1;border:1px solid var(--cream-deep);border-radius:var(--r);padding:10px 12px;font-family:'Cormorant Garamond',serif;font-size:17px;color:var(--ink);resize:none;outline:none;min-height:44px;max-height:120px;line-height:1.4;background:white;transition:border-color .2s}
textarea.cia-input:focus{border-color:var(--rose)}
.cia-send{width:40px;height:40px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:white;font-size:16px;flex-shrink:0;transition:opacity .2s}
.cia-send.M{background:var(--blue)}
.cia-send.F{background:var(--rose)}
.cia-send:hover{opacity:.85}
.cia-send:disabled{opacity:.35;cursor:not-allowed}
.cia-char{font-family:'DM Mono',monospace;font-size:10px;color:var(--ink-faint);text-align:right;margin-top:4px}
.cia-char.warn{color:#C84B2F}
.waiting-turn{text-align:center;padding:1.5rem;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:15px;color:var(--ink-faint);border-top:1px solid var(--cream-deep);background:var(--cream)}

/* ══════════════════════════════
   MODALS
══════════════════════════════ */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(26,22,18,.5);z-index:100;align-items:flex-end;justify-content:center;padding:1rem}
.modal-overlay.active{display:flex}
.modal{background:var(--cream);border-radius:12px 12px 4px 4px;width:100%;max-width:480px;padding:1.5rem;animation:slideUp .3s ease;max-height:90vh;overflow-y:auto}
.modal-title{font-family:'Cormorant Garamond',serif;font-size:22px;font-style:italic;color:var(--ink);margin-bottom:.5rem}
.modal-sub{font-size:13px;color:var(--ink-muted);margin-bottom:1.25rem;line-height:1.5}
.modal-options{display:flex;flex-direction:column;gap:.625rem;margin-bottom:1.25rem}
.modal-option{padding:.875rem 1rem;border:1px solid var(--cream-deep);border-radius:var(--r);cursor:pointer;background:white;text-align:left;font-family:'Outfit',sans-serif;font-size:14px;color:var(--ink-soft);transition:all .15s;display:flex;align-items:center;gap:10px}
.modal-option:hover{border-color:var(--rose);background:var(--rose-glow)}
.modal-option.selected{border-color:var(--rose);background:var(--rose-light);color:var(--rose-dim)}
.modal-option-icon{font-size:18px;flex-shrink:0}
.modal-option-text{flex:1}
.modal-option-label{font-weight:500;display:block}
.modal-option-hint{font-size:12px;color:var(--ink-muted);margin-top:2px}
.modal-btns{display:flex;gap:8px}
.modal-cancel{flex:1;padding:11px;background:none;border:1px solid var(--cream-deep);border-radius:var(--r);font-family:'Outfit',sans-serif;font-size:14px;color:var(--ink-muted);cursor:pointer}
.modal-confirm{flex:2;padding:11px;background:var(--rose);border:none;border-radius:var(--r);font-family:'Outfit',sans-serif;font-size:14px;color:white;cursor:pointer;transition:opacity .2s}
.modal-confirm:hover{opacity:.88}
.modal-confirm:disabled{opacity:.4;cursor:not-allowed}

/* ══════════════════════════════
   TOAST & EMPTY & UTILS
══════════════════════════════ */
.toast{position:fixed;bottom:5rem;left:50%;transform:translateX(-50%) translateY(10px);background:var(--ink);color:white;padding:10px 20px;border-radius:20px;font-size:13px;font-family:'Outfit',sans-serif;opacity:0;transition:all .3s;z-index:200;white-space:nowrap;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.empty-state{text-align:center;padding:3rem 1.5rem}
.es-icon{font-size:40px;display:block;margin-bottom:1rem;opacity:.4}
.es-title{font-family:'Cormorant Garamond',serif;font-size:20px;font-style:italic;color:var(--ink-muted);margin-bottom:.5rem}
.es-sub{font-size:13px;color:var(--ink-faint);line-height:1.6}
.error-msg{font-size:12px;color:#C84B2F;margin-top:-10px;margin-bottom:10px}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--cream-deep);border-radius:2px}

/* ── PROFILE DATA CARD ── */
.profile-empty-card{background:var(--cream-dark);border:1px solid var(--cream-deep);border-radius:var(--r);padding:1.25rem;margin-bottom:1rem;text-align:center}
.pec-note{font-size:13px;color:var(--ink-muted);line-height:1.6;margin-bottom:1rem}
.profile-data-card{background:white;border:1px solid var(--cream-deep);border-radius:var(--r);overflow:hidden;margin-bottom:1rem}
.pd-row{display:flex;align-items:center;gap:10px;padding:10px 1.25rem;border-bottom:0.5px solid var(--cream-deep)}
.pd-row:last-child{border-bottom:none}
.pd-icon{font-size:16px;flex-shrink:0;width:24px}
.pd-label{font-size:12px;color:var(--ink-muted);flex:1}
.pd-value{font-size:14px;color:var(--ink);font-weight:500}
.pd-add-row{padding:.875rem 1.25rem;text-align:center}
.ps-field{margin-bottom:1.25rem}
.ps-field-label{font-size:14px;font-weight:500;color:var(--ink);margin-bottom:6px;display:flex;align-items:center;gap:6px}
.ps-field-locked{font-size:14px;color:var(--ink-muted);padding:10px 14px;background:var(--cream-dark);border-radius:var(--r);display:flex;justify-content:space-between}
.ps-lock{opacity:.5}
.ps-select{width:100%;padding:10px 14px;border:1px solid var(--cream-deep);border-radius:var(--r);background:white;font-family:'Outfit',sans-serif;font-size:14px;color:var(--ink);outline:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238A7F75' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}
.ps-header{padding:1.5rem 0 1rem;text-align:center}
.ps-title{font-family:'Cormorant Garamond',serif;font-size:22px;font-style:italic;color:var(--ink)}
.ps-warning{background:var(--cream-dark);border:1px solid var(--cream-deep);border-radius:var(--r);padding:.875rem 1rem;font-size:12px;color:var(--ink-muted);line-height:1.6;margin-bottom:1.5rem}
.ps-btn-wrap{padding:1.5rem 0}
.rules-card{background:white;border:1px solid var(--cream-deep);border-radius:4px;padding:1rem 1.25rem;font-size:13px;color:var(--ink-muted);line-height:1.9}
/* ── CONFIRM SCREEN ── */
.confirm-icon{font-size:48px;text-align:center;display:block;margin:1rem auto}
.confirm-title{font-family:'Cormorant Garamond',serif;font-size:24px;font-style:italic;color:var(--ink);text-align:center;margin-bottom:.75rem}
.confirm-desc{font-size:14px;color:var(--ink-muted);text-align:center;line-height:1.7;margin-bottom:.5rem}
/* ── LOADING INLINE ── */
.loading-inline{text-align:center;padding:2rem;font-size:13px;color:var(--ink-faint)}
/* ── REPLY PREVIEW ── */
.reply-preview{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:16px;color:var(--ink-soft);background:var(--cream-dark);padding:.875rem;border-radius:4px;margin-bottom:1rem;line-height:1.5}

/* ── BB LOGO LINKS ── */
.ob-logo-link,.nav-logo-link{text-decoration:none;display:block}
.ob-logo-link:hover .ob-logo,.nav-logo-link:hover .nav-logo{opacity:.75;transition:opacity .2s}

/* ── MOBILE NAV FIX ── */
@media(max-width:480px){
  .app-nav{padding:.625rem .875rem;flex-wrap:nowrap;gap:.5rem}
  .nav-logo{font-size:22px}
  .nav-user{font-size:9px;max-width:60px}
  .nav-tab{padding:4px 8px;font-size:8px}
  .lang-btn{padding:3px 7px;font-size:8px}
}

/* ── ONBOARD MOBILE ── */
@media(max-width:480px){
  .ob-inner{padding:1.5rem 1.25rem;padding-top:3rem}
  .ob-logo{font-size:56px}
}

/* ── WALL DATE NAV ── */
.wall-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.875rem;flex-wrap:wrap;gap:.5rem}
.wall-section-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.2em;color:var(--ink-muted);text-transform:uppercase}
.wall-date-nav{display:flex;align-items:center;gap:8px}
.wdn-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--cream-deep);background:var(--cream-dark);font-size:16px;color:var(--ink-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;line-height:1}
.wdn-btn:hover:not(:disabled){border-color:var(--rose);color:var(--rose)}
.wdn-btn:disabled{opacity:.3;cursor:not-allowed}
.wdn-date{font-family:'DM Mono',monospace;font-size:10px;letter-spacing:.1em;color:var(--ink);min-width:48px;text-align:center}

/* ── DATE QUESTION CARD (non-today) ── */
.date-question-card{background:var(--cream-dark);border:1px solid var(--cream-deep);border-radius:var(--r);padding:1.25rem;margin-bottom:1.25rem}
.dq-date{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.2em;color:var(--ink-muted);text-transform:uppercase;margin-bottom:8px}
.dq-question{font-family:'Cormorant Garamond',serif;font-size:19px;font-style:italic;color:var(--ink);line-height:1.4}

/* ── WALL PAGINATION ── */
.wall-pagination{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;gap:.75rem}
.wp-page-btn{padding:7px 16px;border-radius:20px;font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--cream-deep);background:var(--cream-dark);color:var(--ink-muted);cursor:pointer;transition:all .15s}
.wp-page-btn:hover:not(:disabled){border-color:var(--rose);color:var(--rose)}
.wp-page-btn:disabled{opacity:.3;cursor:not-allowed}
.wp-page-info{font-family:'DM Mono',monospace;font-size:9px;color:var(--ink-muted);letter-spacing:.05em;text-align:center;flex:1}

/* ── PARTNER POSTS IN CHAT ── */
.partner-posts-wrap{background:var(--cream-dark);border:1px solid var(--cream-deep);border-radius:var(--r);margin-bottom:1rem}
.pp-label{font-family:'DM Mono',monospace;font-size:8px;letter-spacing:.2em;color:var(--ink-faint);text-transform:uppercase;padding:.625rem 1rem;border-bottom:1px solid var(--cream-deep);background:var(--cream)}
.partner-post-item{padding:.875rem 1rem;border-bottom:.5px solid var(--cream-deep)}
.partner-post-item:last-child{border-bottom:none}
.ppi-text{font-family:'Cormorant Garamond',serif;font-size:16px;color:var(--ink-soft);line-height:1.6;margin-bottom:5px;white-space:pre-wrap;word-break:break-word}
.ppi-time{font-family:'DM Mono',monospace;font-size:8px;color:var(--ink-faint);letter-spacing:.05em}

/* ── PARTNER POST QUESTION ── */
.ppi-question{
  font-family:'DM Mono',monospace;
  font-size:9px;letter-spacing:.08em;
  color:var(--rose);
  margin-bottom:5px;
  line-height:1.4;
  opacity:.85;
}

/* ── WISH BADGE ── */
.wish-badge{
  background:linear-gradient(135deg,var(--gold-light),#FDF5E4);
  border:1px solid var(--gold);
  border-radius:var(--r);
  margin-bottom:.875rem;
  cursor:pointer;
  transition:box-shadow .2s;
}
.wish-badge:hover{box-shadow:0 2px 12px var(--gold-glow)}
.wb-header{
  display:flex;align-items:center;gap:8px;
  padding:.75rem 1rem;
}
.wb-icon{font-size:16px;flex-shrink:0}
.wb-title{
  font-family:'DM Mono',monospace;font-size:10px;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold-dim);font-weight:bold;
}
.wb-hint{
  font-size:11px;color:var(--ink-faint);flex:1;
}
.wb-arrow{
  font-size:12px;color:var(--gold-dim);
  transition:transform .2s;flex-shrink:0;
}
.wb-detail{
  padding:.875rem 1rem;
  border-top:1px solid var(--gold-light);
  background:rgba(255,255,255,.6);
}
.wb-row{
  display:flex;align-items:flex-start;
  justify-content:space-between;gap:8px;
  padding:.375rem 0;
  border-bottom:.5px solid var(--gold-light);
}
.wb-row:last-of-type{border-bottom:none}
.wb-label{
  font-size:12px;color:var(--ink-muted);flex:1;
}
.wb-time{
  font-family:'DM Mono',monospace;font-size:11px;
  color:var(--gold-dim);text-align:right;flex-shrink:0;
}
.wb-close{
  text-align:center;margin-top:.625rem;
  font-family:'DM Mono',monospace;font-size:9px;
  letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink-faint);cursor:pointer;
  padding:.25rem;
}
.wb-close:hover{color:var(--gold-dim)}

/* ── LEARN MORE LINK ── */
.bb-learn-link{
  display:block;
  text-align:center;
  font-family:'DM Mono',monospace;
  font-size:10px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--rose);text-decoration:none;
  padding:.5rem 0 .875rem;
  opacity:.75;transition:opacity .2s;
}
.bb-learn-link:hover{opacity:1}

/* ── TODAY Q HINT TOGGLE ── */
.tq-hint-toggle{
  margin-top:.75rem;
  border-top:1px solid rgba(196,114,138,.2);
  padding-top:.625rem;
  cursor:pointer;
  user-select:none;
}
.tq-hint-label{
  font-family:'DM Mono',monospace;
  font-size:9px;letter-spacing:.1em;
  color:var(--rose-dim);opacity:.75;
  text-transform:none;
}
.tq-hint-arrow{
  font-size:12px;color:var(--rose-dim);opacity:.6;
  display:inline-block;
  transition:transform .25s ease;
  margin-left:4px;
}
.tq-hint-content{
  display:none;
  font-family:'Cormorant Garamond',serif;
  font-size:15px;font-style:italic;
  color:var(--ink-soft);line-height:1.75;
  margin-top:.625rem;
  padding:.75rem .875rem;
  background:rgba(255,255,255,.5);
  border-radius:var(--r);
  border-left:2px solid var(--rose-dim);
}
.tq-hint-toggle.open .tq-hint-arrow{transform:rotate(90deg)}
.tq-hint-toggle.open .tq-hint-content{display:block;animation:fadeUp .3s ease}
