/* Tools added around Luna's existing visual language. */
.draft-status { margin: 20px 0 0; color: #c6aec8; font-size: 12px; line-height: 1.65; }
.review-answers { display: grid; gap: 0; margin: 18px 0; }
.review-answers > div { display: grid; grid-template-columns: minmax(110px, .7fr) minmax(0, 1.3fr); gap: 16px; padding: 13px 0; border-bottom: 1px solid #d8b2d018; }
.review-answers dt { color: #c4a4c6; font-size: 13px; }
.review-answers dd { margin: 0; font-size: 14px; line-height: 1.7; color: #f0deea; white-space: pre-wrap; overflow-wrap: anywhere; }
.selected-date-note { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 24px; color: #dfcadf; }
.selected-date-note strong { color: #ffdbdf; }
.selected-date-note .text-button { margin-left: auto; }
.choice-pair, .choice-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.choice-comparison > article { padding: 24px; background: linear-gradient(140deg, #53304b40, #2a1d3530); border: 1px solid #e8bdd22c; border-radius: 18px; }
.choice-comparison h3 { margin: 12px 0 22px; font-size: 23px; line-height: 1.3; overflow-wrap: anywhere; }
.spread-preview { padding: 23px; border: 1px solid #eac0c82b; border-radius: 18px; background: radial-gradient(ellipse at 50% 0, #57324d6e, transparent 75%), #21182b; }
.spread-mini { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 21px; }
.spread-mini > span { display: flex; flex-direction: column; align-items: center; gap: 8px; width: 88px; text-align: center; color: #dac6da; font-size: 11px; line-height: 1.5; }
.spread-mini b { display: grid; place-items: center; width: 42px; height: 63px; border: 1px solid #cba282; border-radius: 6px; background: radial-gradient(ellipse, #7d4e703f, #24172e); color: #eac395; box-shadow: inset 0 0 0 4px #241b2c, inset 0 0 0 5px #bf987e4d; font: 19px Georgia, serif; }
.city-result { width: 100%; padding: 13px 16px; margin-top: 7px; text-align: left; background: #35283f; color: #f4dfeb; border: 1px solid #b681ae50; border-radius: 10px; cursor: pointer; }
.city-result small { display: block; margin-top: 5px; color: #c7abc6; }
.city-source { margin: 12px 0 0; color: #c8afc7; font-size: 12px; line-height: 1.7; }
.city-source a { color: #ecc0d4; text-underline-offset: 3px; }
.city-result:focus-visible, .city-result:hover { background: #4c3453; border-color: #daa5c3; }
.history-controls { display: grid; grid-template-columns: minmax(170px, 1.3fr) repeat(2, minmax(145px, 1fr)) auto; gap: 15px; align-items: end; margin: 0 0 28px; }
.history-controls label, .demo-controls label, .calendar-tools label, #reminder-form > label { display: flex; flex-direction: column; gap: 9px; min-width: 0; font-size: 12px; color: #d4bcd1; }
.history-controls select, .history-controls input, .demo-controls select, .calendar-tools input, #reminder-form select { width: 100%; min-width: 0; color: #f1e0eb; background: #21182c; border: 1px solid #87638269; border-radius: 10px; padding: 12px; font: inherit; min-height: 44px; }
.history-actions, .result-tools { display: flex; flex-wrap: wrap; gap: 6px 22px; align-items: center; }
.history-actions .text-button { min-height: 44px; margin: 0; }
.history-controls .text-button { min-height: 44px; }
.history-card { min-width: 0; }
.history-card > div { min-width: 0; }
.history-card h3, .history-card p { overflow-wrap: anywhere; }
#history-more { display: block; margin: 30px auto 0; }
.catalog-tools { margin: 0 0 35px; padding-bottom: 28px; border-bottom: 1px solid #dfb4d025; }
.goal-filters { display: flex; flex-wrap: wrap; gap: 9px; }
.goal-filters button[aria-pressed="true"], [data-feedback][aria-pressed="true"] { background: linear-gradient(120deg, #aa6c8e, #734d86); color: #fff5fa; border-color: #e4a5c6; }
.demo-controls { display: flex; flex-wrap: wrap; align-items: end; gap: 16px; margin-top: 23px; }
.demo-controls label { width: min(320px, 100%); }
.demo-controls .text-button { min-height: 44px; }
.demo-art { width: 100%; height: 180px; object-fit: cover; border-radius: 16px; margin: 18px 0; }
.demo-sections { display: grid; gap: 8px; }
.demo-sections > p { padding: 16px 18px; margin: 0; border: 1px solid #cf9fc433; border-radius: 12px; background: #41243d44; }
.demo-sections b { display: inline-block; margin-bottom: 6px; color: #f9d4e0; }
.personal-result-notes { margin-top: 25px; }
.personal-result-notes > .field { margin-top: 20px; }
.personal-result-notes textarea { min-height: 105px; }
.personal-result-notes .text-button, .personal-result-notes .button { margin-top: 15px; }
.result-tools { padding: 18px 0 0; border-top: 1px solid #e3b8cf26; }
.result-feedback { padding: 25px 0 0; margin-top: 22px; border-top: 1px solid #e3b8cf26; }
.result-feedback > div { display: flex; flex-wrap: wrap; gap: 12px; }
.result-feedback > p { margin-top: 0; color: #d9bdd5; }
.result-feedback .field { margin-top: 18px; }
.calendar-tools { display: flex; gap: 18px; align-items: end; padding: 0 38px 22px; }
.calendar-tools label { max-width: 200px; }
.calendar-tools input { font-size: 14px; }
.calendar-tools select { width: 100%; min-height: 44px; padding: 12px; border: 1px solid #87638269; border-radius: 10px; color: #f1e0eb; background: #21182c; }
.final-review { margin-top: 20px; }
.saved-daily-thumb { width: 85px; height: 125px; object-fit: cover; border-radius: 11px; border: 1px solid #e4ba9466; box-shadow: 0 0 24px #e99dc125; transform: rotate(-6deg); }
.saved-daily-thumb { display: grid; place-items: center; flex: none; overflow: hidden; background: #2e1d34; }
.saved-daily-thumb svg { width: 100%; height: 100%; }
#daily-preview:has(.saved-daily-thumb) { display: flex; align-items: center; gap: 28px; }
.programs-section { margin: 75px 0 0; }
.programs-section h2 { margin: 15px 0 28px; font: 38px/1.2 Georgia, serif; color: #f4e1ec; }
.programs-section h2 em { font-weight: 400; color: #e6b6c4; }
.program-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px; }
.program-cards .settings-card { margin: 0; background: radial-gradient(ellipse at top right, #74416045, transparent 70%), #21192be8; }
.program-cards h3 { margin: 15px 0; font: 26px/1.2 Georgia, serif; }
.program-cards p { color: #d0b6cd; line-height: 1.85; }
.library-intro { max-width: 650px; color: #d4bdd1; font-size: 15px; line-height: 1.8; margin: -10px 0 28px; }
.library-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.library-card { padding: 26px; text-align: left; border: 1px solid #ac7f9e5e; border-radius: 20px; background: radial-gradient(ellipse at 100% 0, #86527345, transparent 70%), #241b2f; cursor: pointer; color: #f5deec; transition: border-color .2s, background-color .2s; }
.library-card:hover { border-color: #e5b6c8; background-color: #34223e; }
.library-card > span { color: #c8a2bf; font-size: 11px; }
.library-card h3 { margin: 15px 0; font: 25px/1.25 Georgia, serif; }
.library-card p { color: #d0b6cc; font-size: 13px; line-height: 1.8; }
.library-card > b { display: block; margin-top: 20px; color: #f1becf; font-size: 12px; font-weight: 400; }
.free-practice-clock { display: grid; place-items: center; width: 140px; height: 140px; margin: 25px auto; border: 1px solid #cf9bb4; border-radius: 50%; color: #ffd8e2; font: 38px Georgia, serif; box-shadow: 0 0 30px #c26fb625, inset 0 0 25px #c26fb625; }
.free-practice-steps { padding-left: 22px; color: #d6b9d1; }
.free-practice-steps li { padding: 10px 0; }
.free-practice-steps label { display: flex; align-items: flex-start; gap: 13px; line-height: 1.8; font-size: 14px; cursor: pointer; }
.free-practice-steps input { margin-top: 5px; width: 18px; height: 18px; flex: none; accent-color: #ba7fa7; }
.free-practice-steps input:checked + span { color: #ac8da7; text-decoration: line-through; }
.program-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.program-actions > button { flex: 1 1 auto; }
#account-tools { margin-top: 25px; }
#account-tools > h2 { margin-bottom: 22px; }
#account-tools .check-label { font-size: 14px; line-height: 1.7; color: #dcc6d9; }
#reminder-form { margin: 25px 0; padding: 22px 0; border-top: 1px solid #d8b2d028; border-bottom: 1px solid #d8b2d028; }
#reminder-form > label + label { margin-top: 18px; }
#reminder-form .button { margin-top: 15px; }
.session-row { display: flex; gap: 16px; justify-content: space-between; align-items: center; padding: 14px 0; border-bottom: 1px solid #d8b2d025; }
.session-row > span { min-width: 0; font-size: 14px; }
.session-row small { display: block; margin-top: 5px; font-size: 12px; color: #bda6bf; }
.admin-metrics { display: flex; flex-wrap: wrap; gap: 30px; }
.admin-metrics p { display: flex; flex-direction: column; gap: 9px; }
.admin-metrics b { font: 28px Georgia, serif; color: #efc89f; }
.admin-metrics span { color: #ceb4ca; font-size: 13px; }
#admin-stats details { margin: 15px 0 20px; }
#admin-stats summary { color: #edcadb; cursor: pointer; }
#admin-stats pre { white-space: pre-wrap; overflow-wrap: anywhere; padding: 18px; border-radius: 12px; background: #161120; color: #d9c8da; font-size: 12px; line-height: 1.7; max-height: 500px; overflow-y: auto; }
.message-avatar, .tiny-avatar img, .chat-header > img { object-fit: cover; object-position: 50% 24%; }
.natal-details { grid-column: 1 / -1; padding: 0 30px 26px; }
.natal-details h3 { font: 23px Georgia, serif; }
.aspect-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 22px; }
.aspect-list p { margin: 0; padding: 11px 0; color: #d9c2d7; border-bottom: 1px solid #d8b2d025; font-size: 13px; line-height: 1.65; }
.period-checkpoints { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 24px 0; }
.period-checkpoints > span { padding: 16px; border: 1px solid #d0a0b940; border-radius: 13px; color: #eed4df; background: #41274050; font-size: 13px; line-height: 1.65; }
.card-front > .original-tarot-art { display: block; flex: none; width: 100%; height: 177px; object-fit: contain; margin: 0; }
.single-card .card-front > .original-tarot-art { height: 242px; }
.card-front-title { overflow-wrap: anywhere; }
.tarot-spread.celtic-spread { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: start; gap: 22px 14px; max-width: 940px; margin: 28px auto; padding: 30px 22px; }
.celtic-spread .tarot-position { min-width: 0; width: 100%; max-width: none; }
.celtic-spread .tarot-position:nth-child(1) { grid-area: 2 / 2; }
.celtic-spread .tarot-position:nth-child(2) { grid-area: 2 / 3; }
.celtic-spread .tarot-position:nth-child(3) { grid-area: 3 / 2; }
.celtic-spread .tarot-position:nth-child(4) { grid-area: 2 / 1; }
.celtic-spread .tarot-position:nth-child(5) { grid-area: 1 / 2; }
.celtic-spread .tarot-position:nth-child(6) { grid-area: 2 / 4; }
.celtic-spread .tarot-position:nth-child(7) { grid-area: 4 / 5; }
.celtic-spread .tarot-position:nth-child(8) { grid-area: 3 / 5; }
.celtic-spread .tarot-position:nth-child(9) { grid-area: 2 / 5; }
.celtic-spread .tarot-position:nth-child(10) { grid-area: 1 / 5; }
.celtic-spread .tarot-card, .celtic-spread .card-inner { height: 245px; min-height: 245px; }
.celtic-spread .card-front > .original-tarot-art { height: 155px; }
.celtic-spread .card-front-title { font-size: 18px; }
.celtic-spread .card-position { min-height: 36px; }
.button:disabled { opacity: .55; cursor: default; transform: none; }
input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid #efaccb; outline-offset: 3px; }
@media (max-width: 900px) {
  .library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .history-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tarot-spread.celtic-spread { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .celtic-spread .tarot-position:nth-child(n) { grid-area: auto; }
  .celtic-spread .card-front > .original-tarot-art { height: 155px; }
}
@media (max-width: 600px) {
  .library-grid { grid-template-columns: 1fr; gap: 13px; }
  .library-card { padding: 23px; }
  .review-answers > div { grid-template-columns: 1fr; gap: 6px; }
  .choice-pair, .choice-comparison, .program-cards, .aspect-list { grid-template-columns: 1fr; }
  .choice-comparison > article { padding: 18px; }
  .history-controls { gap: 13px; }
  .history-controls label { font-size: 12px; }
  .history-controls select, .history-controls input, .demo-controls select, .calendar-tools input, #reminder-form select { font-size: 16px; }
  .history-actions { gap: 0 17px; }
  .history-card .history-date { font-size: 11px; line-height: 1.75; }
  .history-card p { font-size: 13px; line-height: 1.7; }
  .history-actions .text-button { font-size: 12px; }
  .goal-filters { gap: 8px; }
  .goal-filters .button { font-size: 12px; padding-inline: 14px; min-height: 42px; }
  .demo-controls { gap: 8px; }
  .demo-controls label { width: 100%; }
  .calendar-tools { padding: 0 18px 20px; gap: 12px; flex-wrap: wrap; }
  .calendar-tools select { font-size: 16px; }
  .calendar-tools label { flex: 1; }
  .calendar-tools .button { font-size: 12px; }
  .selected-date-note { font-size: 14px; }
  .selected-date-note .text-button { margin-left: 0; }
  .personal-result-notes textarea, .wizard-form textarea, .wizard-form select, .wizard-form input:not([type="radio"]):not([type="checkbox"]) { font-size: 16px; }
  .field-hint, .wizard-form .field-hint, .draft-status, .form-cost, .method-caption, .result-return-note { font-size: 12px; line-height: 1.75; }
  .result-section p, .result-section li, .full-reading p, .result-summary p { font-size: 15px; line-height: 1.85; }
  .result-tools { gap: 8px 18px; }
  .result-tools .text-button { min-height: 44px; font-size: 13px; }
  .programs-section { margin-top: 48px; }
  .programs-section h2 { font-size: 30px; }
  .program-cards { gap: 18px; }
  .program-actions { gap: 9px; }
  .program-actions .button { padding-inline: 14px; font-size: 12px; }
  #daily-preview:has(.saved-daily-thumb) { gap: 19px; }
  .saved-daily-thumb { width: 65px; height: 105px; }
  .spread-preview { padding: 18px 12px; }
  .spread-mini { gap: 12px 6px; }
  .spread-mini > span { width: 76px; font-size: 10px; }
  .card-front > .original-tarot-art { height: 130px; }
  .single-card .card-front > .original-tarot-art { height: 205px; }
  .tarot-spread.celtic-spread { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 22px 16px; gap: 22px 14px; }
  .celtic-spread .tarot-card, .celtic-spread .card-inner { height: 237px; min-height: 237px; }
  .celtic-spread .card-front > .original-tarot-art { height: 146px; }
  .celtic-spread .card-front-title { font-size: 17px; }
  .natal-details { padding: 0 18px 23px; }
}
@media (max-width: 370px) {
  .card-front > .original-tarot-art { height: 112px; }
  .single-card .card-front > .original-tarot-art { height: 188px; }
  .celtic-spread .card-front > .original-tarot-art { height: 130px; }
  .celtic-spread .tarot-card, .celtic-spread .card-inner { height: 225px; min-height: 225px; }
}
@media print {
  body.printing-result { background: white !important; color: #251c26; }
  .printing-result .site-header, .printing-result .site-footer, .printing-result .site-nav, .printing-result .mobile-nav, .printing-result .topbar, .printing-result .app-footer, .printing-result #toast, .printing-result .back-link, .printing-result .result-actions, .printing-result .result-tools, .printing-result .result-feedback, .printing-result .reveal-invitation, .printing-result .result-return-note { display: none !important; }
  .printing-result .view:not(#view-experience), .printing-result .page-location, .printing-result .notice, .printing-result .skip-link { display: none !important; }
  .printing-result #view-experience, .printing-result #reading-content { display: block !important; }
  .printing-result .result-shell, .printing-result .result-section, .printing-result .result-summary, .printing-result .natal-panel, .printing-result .result-banner, .printing-result .choice-comparison > article { background: white !important; color: #251c26 !important; box-shadow: none !important; border-color: #b8aab9 !important; }
  .printing-result .result-banner::before, .printing-result .result-banner::after { display: none; }
  .printing-result .result-banner { padding: 20px 0 !important; min-height: 0; }
  .printing-result p, .printing-result h1, .printing-result h2, .printing-result h3, .printing-result label, .printing-result small, .printing-result .eyebrow { color: #251c26 !important; }
  .printing-result .result-section, .printing-result .tarot-position { break-inside: avoid; }
  .printing-result .card-inner { transform: rotateY(180deg) !important; }
  .printing-result .tarot-spread { display: flex !important; flex-wrap: wrap; justify-content: center; }
  .printing-result .tarot-position { width: 130px; }
  .printing-result textarea { min-height: 90px; height: auto; border-color: #aaa; color: #222; background: white; }
  .printing-result .personal-result-notes button, .printing-result .practice-steps button { display: none; }
  .printing-result .app-shell, .printing-result .main, .printing-result .page-content { margin: 0 !important; padding: 0 !important; width: 100%; max-width: none; }
  @page { margin: 15mm; }
}
