      .challenge-page { width:min(760px,100%); margin:0 auto; }
      .summary-card { background: radial-gradient(circle at top, #fff 0, #fff7fa 45%, #ffe8f1 100%); padding: 12px 15px; border-radius: 20px; text-align: center; margin-bottom: 11px; border: 1px solid #f2dce5; box-shadow: 0 8px 25px #8f315d10; }
      .summary-card h3 { margin: 0 0 8px; color: #60283f; font:700 17px Georgia,serif; }
      .score-players { display:grid; grid-template-columns:1fr auto 1fr; gap:12px; align-items:center; }
      .score-person { display:flex; align-items:center; gap:10px; min-width:0; text-align:left; }
      .score-person:last-child { flex-direction:row-reverse; text-align:right; }
      .score-avatar { width:42px; height:42px; flex:none; border-radius:50%; object-fit:cover; border:3px solid #fff; box-shadow:0 2px 9px #8f315d20; }
      .score-name { display:block; color:#795364; font-size:13px; }
      .score-value { display:block; color:#c83272; font:700 20px Georgia,serif; }
      .score-heart { color:#e65391; font-size:20px; }
      .score-caption { margin:5px 0 0; font-size:12px; }
      .challenge-page-head { display:flex; align-items:center; gap:10px; margin:2px 0 15px; }
      .challenge-page-head .challenge-sparkle { width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:#ffe6f0; font-size:21px; }
      .challenge-page-head h1 { margin:0; color:var(--deep); font-size:26px; }
      .challenge-tabs { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; margin-bottom:13px; padding:4px; border-radius:15px; background:#ffeaf2; }
      .challenge-tab { min-height:44px; padding:9px 5px; border-radius:11px; background:transparent; color:#916b7d; font-size:14px; font-weight:700; }
      .challenge-tab.selected { background:#fff; color:#c83272; box-shadow:0 2px 8px #8f315d12; }
      .challenge-tab-dot { display:inline-block; width:8px; height:8px; margin-left:4px; border-radius:50%; background:#e65391; vertical-align:middle; }
      .daily-progress { display:flex; align-items:center; gap:8px; margin:10px 0 0; color:#865b6f; font-size:13px; }
      .daily-progress-track { flex:1; height:8px; overflow:hidden; border-radius:99px; background:#f7dce7; }
      .daily-progress-fill { height:100%; border-radius:inherit; background:linear-gradient(90deg,#e65391,#ed9fbc); transition:width .25s; }
      .daily-partner-status { display:flex; gap:8px; flex-wrap:wrap; margin-top:8px; color:#7c6270; font-size:13px; }
      .daily-partner-status span { padding:5px 9px; border-radius:99px; background:#fff3f7; }
      .challenge-list { display:grid; gap:10px; }
      .challenge-card { padding:15px; border:1px solid #f2dce5; border-radius:17px; background:#fff; box-shadow:0 4px 16px #8f315d08; position: relative; overflow: hidden; }
      .challenge-card-head { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
      .challenge-card h2 { margin:8px 0 4px; color:#60283f; font:700 17px/1.3 system-ui,sans-serif; }
      .challenge-card p { margin:4px 0 10px; color:#795364; font-size:13px; line-height:1.45; }
      .challenge-date { color:var(--muted); font-size:13px; }
      .challenge-status { flex:none; padding:5px 8px; border-radius:999px; background:#fff0f6; color:var(--deep); font-size:13px; font-weight:700; }
      .challenge-status.completed { background:#eaf8f0; color:#24794a; }
      .challenge-status.skipped { background:#f5f1f3; color:#806d76; }
      .challenge-actions { display:flex; justify-content:flex-end; gap:7px; margin-top:11px; }
      .challenge-actions button { min-height:44px; padding:9px 15px; border-radius:999px; font-size:14px; font-weight:700; border: none; cursor: pointer; }
      .challenge-secondary { background:#fff0f6; color:var(--deep); }
      .challenge-main { background:#e65391; color:#fff; }
      .challenge-completion-photo { display:block; width:100%; max-height:280px; margin-top:9px; border-radius:13px; object-fit:cover; }
      .challenge-completed-note { margin:9px 0 0!important; padding:9px 11px; border-radius:11px; background:#fff7fa; color:#60283f!important; }
      .challenge-completed-by { margin-top:8px!important; color:var(--muted)!important; font-size:13px!important; }
      .challenge-section-label { margin:17px 0 8px; color:#8c737d; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
      .challenge-empty { padding:24px 12px; border:1px dashed #efc8d8; border-radius:16px; color:var(--muted); text-align:center; font-size:13px; }
      .challenge-sections { display:flex; gap:8px; margin:0 0 12px; }
      .challenge-sections button { flex:1; min-height:44px; padding:9px; border-radius:12px; background:#fff; border:1px solid #f2dce5; color:#795364; font-size:14px; font-weight:700; }
      .challenge-sections button.selected { background:#e65391; color:#fff; }
      .give-challenge-hero { display:flex; align-items:center; gap:11px; margin:0 0 14px; padding:12px 14px; border-radius:18px; background:linear-gradient(110deg,#fff2f7,#ffe1ee); border:1px solid #f4ccdc; box-shadow:0 6px 18px #8f315d0c; }
      .give-challenge-hero .gift { font-size:25px; }
      .give-challenge-copy { flex:1; text-align:left; }
      .give-challenge-copy strong { display:block; color:#60283f; font:700 15px Georgia,serif; }
      .give-challenge-copy small { color:#896b78; }
      .give-challenge-hero button { min-height:44px; border:0; border-radius:999px; padding:10px 14px; background:#d84483; color:white; font-weight:700; white-space:nowrap; }
      .love-widget { margin-top:12px; padding:13px; border-radius:16px; background:linear-gradient(135deg,#fff4f8,#fef0eb); text-align:center; }
      .love-photos { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin:10px 0; }
      .love-photo-card { position:relative; min-height:100px; overflow:hidden; border-radius:13px; background:#f9dce8; }
      .love-photo-card img { width:100%; height:180px; object-fit:cover; display:block; transition:filter .3s; }
      .love-photo-card img.locked { filter:blur(18px); transform:scale(1.08); }
      .love-photo-label { position:absolute; bottom:0; left:0; right:0; padding:6px; background:#32162590; color:white; font-size:13px; }
      .love-waiting { color:#9b5271; font:italic 13px Georgia,serif; }
      .love-upload { min-height:44px; border:0; border-radius:999px; padding:10px 15px; background:#d84483; color:white; font-weight:700; }
      .challenge-modal { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:16px; background:#32162580; }
      .challenge-modal-card { width:min(460px,100%); padding:18px; border:1px solid #f1dbe5; border-radius:20px; background:#fffafd; box-shadow:0 20px 60px #54213b30; }
      .challenge-modal-head { display:flex; justify-content:space-between; align-items:center; gap:10px; }
      .challenge-modal-head h2 { margin:0; color:var(--deep); font-size:20px; }
      .challenge-modal-close { width:44px; height:44px; border-radius:50%; background:#ffe7f0; color:var(--deep); font-size:20px; border: none; cursor: pointer; }
      .challenge-complete-form { display:grid; gap:12px; margin:13px 0 0; }
      .challenge-complete-form label { display: grid; gap: 4px; font-size: 13px; color: #60283f; font-weight: 600; }
      .challenge-complete-form textarea { min-height:82px; resize:vertical; padding: 8px; border-radius: 10px; border: 1px solid #f1dbe5; }
      .challenge-complete-form input[type=file], .challenge-complete-form input[type=text] { width:100%; min-height:44px; padding:8px; font-size:14px; border-radius: 10px; border: 1px solid #f1dbe5; }
      .challenge-photo-preview { max-width:100%; max-height:180px; border-radius:12px; object-fit:cover; }
      .challenge-modal-actions { display:flex; justify-content:flex-end; gap:8px; }
      .challenge-modal-actions button { min-height:44px; padding:9px 14px; border-radius:999px; border: none; cursor: pointer; }
      .water-widget { margin-top:12px; padding:13px; border-radius:15px; background:linear-gradient(135deg,#effaff,#f3f0ff); }
      .water-bottle-row { display:flex; align-items:center; gap:13px; }
      .water-bottle { width:54px; height:90px; border:3px solid #73bde9; border-radius:14px 14px 11px 11px; position:relative; overflow:hidden; background:#fff; flex:none; }
      .water-bottle:before { content:""; position:absolute; top:-9px; left:14px; width:20px; height:11px; border:3px solid #73bde9; border-radius:5px 5px 0 0; background:#dff5ff; }
      .water-fill { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(#83dcff,#329de5); transition:height .35s ease; opacity:.9; }
      .water-counts { flex:1; min-width:0; }
      .water-counts strong { display:block; color:#205c83; font-size:14px; }
      .water-counts small { color:#58798b; font-size:13px; }
      .water-controls { display:flex; gap:8px; flex-wrap:wrap; margin-top:8px; }
      .water-controls button { min-width:48px; min-height:48px; border:0; border-radius:999px; background:#e1f5ff; color:#205c83; font-size:18px; font-weight:800; }
      .water-controls .water-add { padding:0 16px; background:#269bd9; color:#fff; font-size:14px; }
      .water-celebrate { margin-top:10px; padding:10px; border-radius:12px; background:#e7f8eb; color:#207a42; text-align:center; font-weight:800; }
      .snap-mark { margin-top:10px; padding:10px 14px; border:0; border-radius:999px; background:#e65391; color:#fff; font-weight:700; cursor:pointer; }
      .snap-mark:disabled,.water-add:disabled,.water-remove:disabled { opacity:.55; cursor:default; }
      .completion-splash { position: fixed; inset: 0; z-index: 2000; pointer-events: none; display: grid; place-items: center; }
      .splash-heart { font-size: 60px; animation: popUp 1s forwards; }
      @keyframes popUp { 0% { transform: scale(0); opacity: 0; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(1); opacity: 0; } }
      @media(max-width:420px) { .challenge-page-head h1 { font-size:23px; } .challenge-card { padding:13px; } .challenge-tabs button { font-size:14px; } }


/* Clean, compact challenge UI refresh */
.challenge-page { width: min(760px, 100%); margin: 0 auto; padding: 4px 0 28px; }
.challenge-page-head { margin: 8px 0 14px; }
.challenge-page-head h1 { font-family: "DM Sans", sans-serif; font-size: clamp(24px, 5vw, 30px); font-weight: 700; letter-spacing: -.035em; color: #35242c; }
.challenge-page-head .challenge-sparkle { width: 38px; height: 38px; background: #fff0f5; }
.challenge-tabs { background: #f7edf1; border: 1px solid #f0e2e8; gap: 4px; }
.challenge-tab { color: #77616b; font-weight: 600; transition: background .18s, color .18s, box-shadow .18s; }
.challenge-tab.selected { color: #8f315d; box-shadow: 0 2px 8px rgba(40, 20, 30, .07); }
.challenge-card { background: #fff; border: 1px solid #eee5e9; border-radius: 18px; padding: 18px; box-shadow: 0 5px 20px rgba(45, 25, 35, .045); margin-bottom: 12px; }
.challenge-card-head { gap: 12px; align-items: flex-start; }
.challenge-card-head h2 { font-family: "DM Sans", sans-serif; font-size: 17px; line-height: 1.35; font-weight: 700; color: #33242b; }
.challenge-card > p { color: #82717a; font-size: 13px; line-height: 1.55; margin: 7px 0 12px; }
.challenge-status { font-size: 11px; font-weight: 700; border-radius: 999px; padding: 6px 9px; white-space: nowrap; background: #f6f1f3; color: #77616b; }
.challenge-status.completed { background: #eaf7ef; color: #247547; }
.water-widget { border: 1px solid #e1edf8; background: linear-gradient(135deg, #f8fcff, #eef7ff); border-radius: 16px; padding: 14px; margin-top: 12px; }
.water-bottle-row { align-items: center; gap: 14px; }
.water-counts strong { display: block; color: #174d7a; font-size: 16px; }
.water-counts small { display: block; color: #6c8498; margin-top: 3px; font-size: 12px; }
.water-controls { display: flex; gap: 8px; margin-top: 12px; }
.water-controls button { min-height: 42px; border-radius: 12px; font-weight: 700; transition: transform .12s, opacity .12s; }
.water-controls button:active:not(:disabled) { transform: scale(.98); }
.water-controls button:disabled { opacity: .42; cursor: not-allowed; }
.water-remove { min-width: 44px; border: 1px solid #d5e4f2 !important; background: #fff !important; color: #275c86 !important; }
.water-add { flex: 1; background: #1976bd !important; color: #fff !important; box-shadow: 0 5px 12px rgba(25,118,189,.18); }
.daily-partner-status { font-size: 12px; color: #74636c; gap: 7px; }
.daily-partner-status > span { background: #f7f4f5; border: 1px solid #eee6e9; border-radius: 999px; padding: 5px 9px; }
.challenge-actions { display: flex; gap: 8px; margin-top: 14px; }
.challenge-actions button, .challenge-main, .challenge-secondary { min-height: 42px; border-radius: 12px; padding: 10px 14px; font-weight: 700; }
.challenge-main { background: #8f315d; color: #fff; }
.challenge-secondary { background: #f7edf1; color: #7d2d51; }
.challenge-empty { background: #fff; border: 1px dashed #e7d9df; color: #887680; border-radius: 16px; padding: 22px 16px; text-align: center; line-height: 1.5; }
.summary-card { box-shadow: 0 4px 18px rgba(45,25,35,.045); }
@media (max-width: 520px) {
  .challenge-card { padding: 14px; border-radius: 16px; }
  .challenge-card-head { flex-wrap: wrap; }
  .challenge-card-head > div { flex: 1 1 100%; }
  .challenge-status { align-self: flex-start; }
  .water-bottle-row { gap: 10px; }
  .water-controls button { min-height: 44px; }
  .challenge-tabs { margin-bottom: 10px; }
}
