@charset "utf-8";

.rhy-tabs { display: flex; gap: 0px; overflow-x: auto; padding: 0px 20px; background: rgb(255, 255, 255); border-bottom: 1px solid rgba(0, 0, 0, 0.06); position: sticky; top: 68px; z-index: 90; justify-content: center; flex-wrap: wrap; }

.rhy-tabs::-webkit-scrollbar { display: none; }

.rhy-tab { flex-shrink: 0; padding: 14px 16px; background: none; border-width: medium medium 3px; border-style: none none solid; border-color: currentcolor currentcolor transparent; border-image: initial; font-size: 0.8rem; font-weight: 700; color: var(--rhy-grey-dk); cursor: pointer; font-family: inherit; white-space: nowrap; transition: var(--rhy-tr); }

.rhy-tab:hover { color: var(--rhy-navy); }

.rhy-tab.rhy-tab-active { color: var(--rhy-sage-dk); border-bottom-color: var(--rhy-sage); }

.rhy-panel { display: none; }

.rhy-panel.rhy-panel-active { display: block; }

.rhy-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }

@media (max-width: 640px) {
  .rhy-2col { grid-template-columns: 1fr; }
}

.rhy-scale-row { display: flex; align-items: center; gap: 12px; margin-top: 6px; }

.rhy-scale-row input[type="range"] { flex: 1 1 0%; accent-color: var(--rhy-sage); }

.rhy-scale-val { width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0; background: var(--rhy-sage-lt); color: var(--rhy-sage-dk); display: flex; align-items: center; justify-content: center; font-size: 0.8rem; font-weight: 800; }

.rhy-supp-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 4px; }

@media (max-width: 480px) {
  .rhy-supp-grid { grid-template-columns: repeat(2, 1fr); }
}

.rhy-supp-btn { display: flex; flex-direction: column; align-items: center; gap: 4px; background: var(--rhy-grey); border: 2px solid transparent; border-radius: 12px; padding: 12px 6px; cursor: pointer; font-family: inherit; transition: var(--rhy-tr); font-size: 0.72rem; font-weight: 700; color: rgb(90, 96, 104); }

.rhy-supp-btn span:first-child { font-size: 1.4rem; line-height: 1; }

.rhy-supp-btn:hover { border-color: var(--rhy-sage-lt); }

.rhy-supp-btn.rhy-on { background: var(--rhy-sage-lt); border-color: var(--rhy-sage); color: var(--rhy-sage-dk); }

.rhy-move-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 9px; margin-top: 6px; }

@media (max-width: 480px) {
  .rhy-move-grid { grid-template-columns: repeat(2, 1fr); }
}

.rhy-move-btn { display: flex; flex-direction: column; align-items: center; gap: 5px; background: var(--rhy-blue); border: 2px solid transparent; border-radius: 14px; padding: 14px 6px; cursor: pointer; font-family: inherit; transition: var(--rhy-tr); font-size: 0.72rem; font-weight: 700; color: var(--rhy-blue-dk); }

.rhy-move-btn span:first-child { font-size: 1.5rem; line-height: 1; }

.rhy-move-btn:hover { border-color: var(--rhy-blue-dk); }

.rhy-move-btn.rhy-on { background: var(--rhy-blue-dk); color: rgb(255, 255, 255); border-color: var(--rhy-blue-dk); }

.rhy-streak-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 18px; }

.rhy-streak-stat { background: var(--rhy-sage-lt); border-radius: 14px; padding: 14px 10px; text-align: center; }

.rhy-streak-stat-n { font-family: Georgia, serif; font-size: 1.6rem; font-weight: 700; color: var(--rhy-sage-dk); line-height: 1; }

.rhy-streak-stat-l { font-size: 0.65rem; font-weight: 700; color: var(--rhy-grey-dk); text-transform: uppercase; letter-spacing: 0.08em; margin-top: 3px; }

.rhy-insight-example { background: linear-gradient(135deg, var(--rhy-sage-lt), #edf5ff); border-radius: 16px; padding: 16px 18px; margin-bottom: 14px; font-size: 0.88rem; color: var(--rhy-navy); line-height: 1.65; border-left: 3px solid var(--rhy-sage); font-style: italic; }

.rhy-snapshot-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }

@media (max-width: 480px) {
  .rhy-snapshot-checks { grid-template-columns: 1fr; }
}

.rhy-check-label { display: flex; align-items: center; gap: 9px; background: var(--rhy-grey); border-radius: 10px; padding: 10px 12px; cursor: pointer; font-size: 0.83rem; font-weight: 600; color: rgb(90, 96, 104); transition: var(--rhy-tr); }

.rhy-check-label input { accent-color: var(--rhy-sage); width: 16px; height: 16px; flex-shrink: 0; }

.rhy-check-label:hover { background: var(--rhy-sage-lt); color: var(--rhy-sage-dk); }

.rhy-select { width: 100%; padding: 11px 16px; border-radius: 50px; border: 1.5px solid rgb(232, 228, 222); font-size: 0.88rem; font-family: inherit; background: var(--rhy-mist); color: var(--rhy-navy); outline: none; cursor: pointer; transition: border-color 0.18s; margin-top: 6px; }

.rhy-select:focus { border-color: var(--rhy-sage); }

.rhy-challenge-grid { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }

.rhy-challenge { display: flex; align-items: center; gap: 14px; background: var(--rhy-grey); border-radius: 14px; padding: 14px 16px; cursor: pointer; transition: var(--rhy-tr); }

.rhy-challenge:hover { background: var(--rhy-sage-lt); transform: translateX(3px); }

.rhy-challenge-icon { width: 42px; height: 42px; border-radius: 12px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; }

.rhy-challenge-body { flex: 1 1 0%; min-width: 0px; }

.rhy-challenge-name { font-weight: 700; font-size: 0.88rem; color: var(--rhy-navy); margin-bottom: 2px; }

.rhy-challenge-desc { font-size: 0.74rem; color: var(--rhy-grey-dk); line-height: 1.4; }

.rhy-challenge-badge { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; background: rgb(255, 255, 255); padding: 3px 8px; border-radius: 50px; color: var(--rhy-sage-dk); flex-shrink: 0; }

.rhy-family-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 10px; }

@media (max-width: 480px) {
  .rhy-family-grid { grid-template-columns: repeat(2, 1fr); }
}

.rhy-family-btn { display: flex; flex-direction: column; align-items: center; gap: 5px; background: var(--rhy-pink); border: 2px solid transparent; border-radius: 14px; padding: 14px 8px; cursor: pointer; font-family: inherit; transition: var(--rhy-tr); font-size: 0.74rem; font-weight: 700; color: var(--rhy-pink-dk); }

.rhy-family-btn span:first-child { font-size: 1.4rem; line-height: 1; }

.rhy-family-btn:hover { border-color: var(--rhy-pink-dk); transform: translateY(-2px); }

.rhy-family-btn.rhy-on { background: var(--rhy-pink-dk); color: rgb(255, 255, 255); }

.rhy-voice-card { background: linear-gradient(135deg, rgb(240, 246, 241) 0%, rgb(245, 240, 251) 100%); border: 1.5px dashed rgba(36, 52, 71, 0.4); }

.rhy-voice-prompt { background: rgba(255, 255, 255, 0.7); border-radius: 12px; padding: 14px 16px; font-size: 0.88rem; color: var(--rhy-grey-dk); line-height: 1.65; font-style: italic; margin-bottom: 14px; }

.rhy-card-success { display: none; align-items: center; gap: 8px; background: var(--rhy-sage-lt); border-radius: 10px; padding: 10px 14px; margin-top: 12px; font-size: 0.82rem; color: var(--rhy-sage-dk); font-weight: 600; }

.rhy-card-success.show { display: flex; }

.rhy-toggle-row { display: flex; align-items: center; justify-content: space-between; background: var(--rhy-grey); border-radius: 12px; padding: 12px 14px; margin-top: 12px; }

.rhy-toggle-label { font-size: 0.84rem; font-weight: 600; color: rgb(90, 96, 104); }

.rhy-toggle { position: relative; width: 44px; height: 24px; cursor: pointer; }

.rhy-toggle input { opacity: 0; width: 0px; height: 0px; }

.rhy-toggle-slider { position: absolute; inset: 0px; background: rgb(204, 204, 204); border-radius: 24px; transition: 0.25s; }

.rhy-toggle-slider::before { content: ""; position: absolute; width: 18px; height: 18px; border-radius: 50%; background: rgb(255, 255, 255); left: 3px; top: 3px; transition: 0.25s; }

.rhy-toggle input:checked + .rhy-toggle-slider { background: var(--rhy-sage); }

.rhy-toggle input:checked + .rhy-toggle-slider::before { transform: translateX(20px); }

.prt-step4 { background: linear-gradient(135deg, rgb(244, 249, 244), rgb(237, 245, 255)); border: 1.5px solid rgba(36, 52, 71, 0.15); }

.ws-step-badge { display: inline-flex; align-items: center; background: var(--rhy-navy); color: rgb(255, 255, 255); font-size: 0.6rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; border-radius: 50px; padding: 3px 10px; margin-bottom: 10px; }

.ws-recipient-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 6px; }

@media (max-width: 600px) {
  .ws-recipient-grid { grid-template-columns: repeat(2, 1fr); }
}

.ws-recipient-btn { display: flex; flex-direction: column; align-items: center; gap: 6px; background: var(--rhy-grey); border: 2px solid transparent; border-radius: 14px; padding: 16px 8px; cursor: pointer; font-family: inherit; transition: var(--rhy-tr); text-align: center; }

.ws-recipient-btn:hover { border-color: var(--rhy-navy); background: rgb(238, 240, 245); }

.ws-recipient-btn.ws-selected { background: var(--rhy-navy); border-color: var(--rhy-navy); }

.ws-recipient-btn.ws-selected .ws-recipient-name { color: rgb(255, 255, 255); }

.ws-recipient-icon { font-size: 1.6rem; line-height: 1; }

.ws-recipient-name { font-size: 0.74rem; font-weight: 700; color: var(--rhy-navy); line-height: 1.3; }

.ws-timeframe-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 6px; }

@media (max-width: 480px) {
  .ws-timeframe-grid { grid-template-columns: repeat(2, 1fr); }
}

.ws-timeframe-btn { display: flex; flex-direction: column; align-items: center; gap: 4px; background: var(--rhy-blue); border: 2px solid transparent; border-radius: 14px; padding: 16px 8px; cursor: pointer; font-family: inherit; transition: var(--rhy-tr); }

.ws-timeframe-btn:hover { border-color: var(--rhy-blue-dk); }

.ws-timeframe-btn.ws-tf-active { background: var(--rhy-blue-dk); border-color: var(--rhy-blue-dk); }

.ws-timeframe-btn.ws-tf-active .ws-tf-n, .ws-timeframe-btn.ws-tf-active .ws-tf-l { color: rgb(255, 255, 255); }

.ws-tf-n { font-family: Georgia, serif; font-size: 1.4rem; font-weight: 700; color: var(--rhy-blue-dk); line-height: 1; }

.ws-tf-l { font-size: 0.7rem; font-weight: 700; color: var(--rhy-blue-dk); }

.ws-custom-range { background: var(--rhy-mist); border-radius: 14px; padding: 14px; margin-top: 12px; border: 1.5px solid rgb(232, 228, 222); }

.ws-text-btn { background: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: initial; cursor: pointer; font-family: inherit; font-size: 0.78rem; font-weight: 700; color: var(--rhy-sage-dk); padding: 4px 0px; text-decoration: underline; transition: var(--rhy-tr); }

.ws-text-btn:hover { color: var(--rhy-sage); }

.ws-create-btn { width: 100%; padding: 16px 24px; border-radius: 50px; background: linear-gradient(135deg, var(--rhy-navy), #3d5070); color: rgb(255, 255, 255); border-width: medium; border-style: none; border-color: currentcolor; border-image: initial; cursor: pointer; font-family: inherit; font-size: 1rem; font-weight: 700; letter-spacing: 0.01em; box-shadow: rgba(45, 61, 90, 0.3) 0px 5px 20px; transition: var(--rhy-tr); margin-bottom: 16px; }

.ws-create-btn:hover { transform: translateY(-2px); box-shadow: rgba(45, 61, 90, 0.4) 0px 8px 28px; }

.ws-share-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }

@media (max-width: 400px) {
  .ws-share-row { grid-template-columns: 1fr; }
}

.ws-share-btn { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 12px 16px; border-radius: 50px; font-size: 0.84rem; font-weight: 700; cursor: pointer; font-family: inherit; transition: var(--rhy-tr); border-width: medium; border-style: none; border-color: currentcolor; border-image: initial; }

.ws-share-download { background: var(--rhy-sage-lt); color: var(--rhy-sage-dk); }

.ws-share-download:hover { background: var(--rhy-sage); color: rgb(255, 255, 255); }

.ws-share-email { background: rgb(238, 240, 245); color: var(--rhy-navy); }

.ws-share-email:hover { background: var(--rhy-navy); color: rgb(255, 255, 255); }

.ws-share-copy { background: var(--rhy-blue); color: var(--rhy-blue-dk); }

.ws-share-copy:hover { background: var(--rhy-blue-dk); color: rgb(255, 255, 255); }

.ws-share-print { background: var(--rhy-grey); color: var(--rhy-grey-dk); }

.ws-share-print:hover { background: var(--rhy-grey-dk); color: rgb(255, 255, 255); }

.ws-preview-card { background: linear-gradient(135deg, rgb(253, 252, 250), rgb(245, 248, 255)); border: 1.5px solid rgba(45, 61, 90, 0.1); }

.ws-doc { background: rgb(255, 255, 255); border-radius: 16px; padding: 24px; margin: 12px 0px; border: 1px solid rgba(0, 0, 0, 0.06); font-size: 0.88rem; }

.ws-doc-header { text-align: center; padding-bottom: 18px; border-bottom: 1.5px solid rgba(36, 52, 71, 0.2); margin-bottom: 18px; }

.ws-doc-title { font-family: Georgia, serif; font-size: 1.2rem; font-weight: 700; color: var(--rhy-navy); margin-bottom: 4px; }

.ws-doc-meta { font-size: 0.75rem; color: var(--rhy-grey-dk); }

.ws-doc-section { margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid rgb(240, 236, 232); }

.ws-doc-section:last-child { border-bottom-width: medium; border-bottom-style: none; border-bottom-color: currentcolor; margin-bottom: 0px; padding-bottom: 0px; }

.ws-doc-section-label { font-size: 0.62rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rhy-sage-dk); margin-bottom: 6px; }

.ws-doc-section-content { color: var(--rhy-navy); line-height: 1.65; font-size: 0.84rem; }

.ws-doc-insight { background: var(--rhy-sage-lt); border-left: 3px solid var(--rhy-sage); border-radius: 0px 10px 10px 0px; padding: 10px 14px; font-style: italic; color: var(--rhy-sage-dk); font-size: 0.83rem; line-height: 1.6; margin-top: 6px; }

.ws-privacy-note { background: var(--rhy-grey); border-radius: 12px; padding: 12px 14px; font-size: 0.8rem; color: var(--rhy-grey-dk); line-height: 1.6; margin-top: 12px; }

.ws-modal-overlay { display: none; position: fixed; inset: 0px; z-index: 9900; background: rgba(30, 40, 55, 0.48); backdrop-filter: blur(6px); align-items: center; justify-content: center; padding: 20px; }

.ws-modal-overlay.ws-open { display: flex; }

.ws-modal { background: rgb(255, 255, 255); border-radius: 24px; padding: 28px 26px; max-width: 480px; width: 100%; box-shadow: rgba(0, 0, 0, 0.18) 0px 24px 64px; position: relative; max-height: 90vh; overflow-y: auto; }

.ws-modal-close { position: absolute; top: 16px; right: 16px; width: 32px; height: 32px; border-radius: 50%; background: var(--rhy-grey); border-width: medium; border-style: none; border-color: currentcolor; border-image: initial; cursor: pointer; font-size: 0.9rem; color: var(--rhy-grey-dk); display: flex; align-items: center; justify-content: center; transition: var(--rhy-tr); }

.ws-modal-close:hover { background: var(--rhy-navy); color: rgb(255, 255, 255); }

.ws-step-card { border-top: 3px solid var(--rhy-sage-lt); }

.ws-step-card:nth-child(2) { border-top-color: var(--rhy-blue); }

.ws-step-card:nth-child(3) { border-top-color: rgb(221, 229, 216); }

.ws-step-card:nth-child(5) { border-top-color: var(--rhy-navy); }

@media print {
  body > :not(#ws-printframe) { display: none !important; }
  #ws-printframe { display: block !important; }
}

.prt-commission-example { background: linear-gradient(135deg, var(--rhy-navy), #3d5070); border-radius: 18px; padding: 24px 22px; color: rgb(255, 255, 255); margin-top: 24px; }

.prt-commission-label { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255, 255, 255, 0.55); margin-bottom: 8px; }

.prt-commission-title { font-family: Georgia, serif; font-size: 1.15rem; font-weight: 700; color: rgb(255, 255, 255); margin-bottom: 8px; line-height: 1.3; }

.prt-commission-body { font-size: 0.84rem; color: rgba(255, 255, 255, 0.78); line-height: 1.65; }