/* Stage 18 — 30-day gratitude challenge, scoped styles. */
.psr-root,.psr-root *{box-sizing:border-box}.psr-root{scroll-margin-top:22px}.psr-hero h2{line-height:1.55}.psr-date-form{display:grid;grid-template-columns:minmax(170px,1.5fr) repeat(3,minmax(85px,1fr)) minmax(145px,1.25fr);gap:10px;align-items:end;margin:20px 0 10px}.psr-date-form label,.psr-actions>label,.psr-controls>label:not(.psr-brand){display:flex;flex-direction:column;gap:6px;font-weight:700;min-width:0}.psr-root select,.psr-root input:not([type="checkbox"]),.psr-root textarea{font:inherit;color:#38233c;background:#fff;border:1px solid #d9c5e2;border-radius:11px;min-height:43px;padding:9px 12px;width:100%;min-width:0}.psr-root textarea{min-height:105px;line-height:1.85;resize:vertical}.psr-root :is(button,input,select,textarea):focus-visible{outline:3px solid #b677b9;outline-offset:2px}.psr-date-hint{color:#684779;font-size:.92rem}.psr-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.psr-stats>div{background:#fcf7ff;border:1px solid #e9d6ed;padding:14px 6px;border-radius:13px;text-align:center;display:flex;flex-direction:column}.psr-stats strong{font-size:1.65rem;color:#7a488e}.psr-stats span{font-size:.85rem;color:#725875}.psr-meter{height:14px;background:#eee1ef;border-radius:99px;overflow:hidden;direction:ltr;margin-bottom:18px}.psr-meter>span{height:100%;display:block;background:linear-gradient(90deg,#8864bc,#e37a9c);transition:width .25s}.psr-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:end;margin:12px 0 16px}.psr-actions>label{flex:1 1 200px}.psr-actions button,.psr-file{border:1px solid #d8bade;border-radius:10px;padding:10px 12px;background:#fff;color:#6c3d7e;font:inherit;font-size:.86rem;cursor:pointer;min-height:43px}.psr-actions button.psx-btn{background:#8b4e9e;color:#fff}.psr-file{display:inline-flex;align-items:center;font-weight:700}.psr-file input{display:none}.psr-status{background:#f9f2fc;border-right:4px solid #b46bb4;border-radius:9px;padding:11px 14px;font-size:.91rem;color:#654674}.psr-theme-nav h3{font-size:1.04rem;margin:20px 0 9px}.psr-theme-nav>div{display:flex;gap:7px;flex-wrap:wrap}.psr-theme-nav span{background:#f9f0fa;color:#784b86;border:1px solid #ebdaee;border-radius:100px;padding:5px 12px;font-size:.83rem}.psr-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:17px}.psr-day{background:#fff;border-radius:15px;border:1px solid #e8d2e8;min-width:0;padding:17px;box-shadow:0 5px 20px #5a276310}.psr-day[hidden]{display:none}.psr-day>header{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;border-bottom:1px solid #f0e6f1;padding-bottom:12px}.psr-day-num{color:#8e4a95;font-weight:800}.psr-date-label{background:#f7eefa;border-radius:7px;padding:1px 9px;color:#80578c;font-size:.86rem}.psr-theme{font-size:.82rem;color:#6a5371}.psr-day h3{margin:12px 0;color:#7f478b;font-size:1.23rem}.psr-question,.psr-exercise{background:#fcf5ff;border:1px solid #eed8ef;border-radius:11px;padding:13px;margin:12px 0}.psr-exercise{background:#fff9f3;border-color:#f5e4d5}.psr-question strong,.psr-exercise strong{color:#8a508b}.psr-question p,.psr-exercise p{font-size:.93rem;line-height:2;margin:5px 0 0}.psr-day details{border:1px solid #efdfed;border-radius:10px;padding:10px 11px;margin:8px 0}.psr-day summary{font-weight:700;cursor:pointer;color:#80518a}.psr-day details p{line-height:2;font-size:.9rem;margin:9px 0 0}.psr-private{margin-top:15px;padding-top:12px;border-top:1px dashed #ddc7e2}.psr-private>label:first-child{display:block;font-weight:700;color:#714282}.psr-reflection{font-size:.89rem;color:#6f5878;margin:7px 0 10px}.psr-done{display:flex;gap:9px;align-items:center;margin-top:12px;font-size:.91rem;cursor:pointer}.psr-done input{width:21px;height:21px;accent-color:#9859a9}.psr-complete{background:#fbfffd;border-color:#b5d9bd}.psr-privacy-actions{margin-top:22px}.psr-studio-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.9fr);gap:20px;align-items:start}.psr-controls{display:grid;gap:13px}.psr-brand{display:flex;gap:8px;align-items:center}.psr-brand input{accent-color:#8d5489}.psr-canvas-area{text-align:center;background:#faf3fc;border:1px solid #ebd9ee;border-radius:13px;padding:12px}.psr-canvas-area canvas{display:block;width:auto;height:auto;max-width:100%;max-height:520px;aspect-ratio:4/5;margin:auto;border-radius:10px;box-shadow:0 7px 18px #33204433}.psr-canvas-area p{font-size:.83rem;color:#765d7a}.psr-guide{line-height:2.1}.psr-guide p{margin:9px 0 18px}.psr-guide h3{margin:28px 0 12px;color:#794585}.psr-guide details{padding:12px;margin:8px 0;border:1px solid #e8d8ed;border-radius:9px}.psr-guide summary{cursor:pointer;font-weight:700;color:#724780}
@media(max-width:880px){.psr-cards{grid-template-columns:1fr}.psr-date-form{grid-template-columns:repeat(3,minmax(0,1fr))}.psr-date-form label:first-child,.psr-date-form button{grid-column:1/-1}.psr-studio-grid{grid-template-columns:1fr}.psr-canvas-area canvas{max-height:470px}}
@media(max-width:480px){.psr-day{padding:13px}.psr-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.psr-actions button,.psr-actions .psr-file{width:100%;justify-content:center;text-align:center}.psr-date-form{gap:7px}.psr-stats strong{font-size:1.3rem}}
@media print{.psr-hero,.psr-date-form,.psr-actions,.psr-status,.psr-studio,.psr-meter,.psr-related,.psx-related{display:none!important}.psr-cards{display:block}.psr-day,.psr-day[hidden]{display:block!important;box-shadow:none;border:1px solid #ccc;margin:0 0 12px;break-inside:avoid}.psr-day details>*{display:block}}


/* 22.5 — educational disclosure cards, scoped to the project components. */
.psx-root .pse-guide,.psx-root .pse-practical{margin:10px 0;border:1px solid #e6d2eb;border-radius:12px;background:#fdf9ff;color:#4b365b;overflow:hidden;line-height:1.9;min-width:0}
.psx-root .pse-guide summary,.psx-root .pse-practical summary{padding:10px 13px;cursor:pointer;font-weight:750;color:#743b7e;list-style-position:inside}
.psx-root .pse-guide[open] summary,.psx-root .pse-practical[open] summary{border-bottom:1px solid #ebddef;background:#f8f0fb}
.psx-root .pse-guide p,.psx-root .pse-practical p{padding:0 13px;margin:9px 0 11px;line-height:1.9;overflow-wrap:anywhere}
.psx-root .pse-guide strong,.psx-root .pse-practical strong{color:#6c3678}
.psx-root .pse-context{border-right:4px solid #b773a3;background:#fcf5fd;border-radius:9px;padding:12px 15px;color:#63496f;line-height:1.85}
.psx-root .pse-method-card{border-right:4px solid #b773a3}
.psx-root .pse-next{color:#6e407d;font-weight:650}
.psq-root .pse-topic-pick{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;background:#fcf7ff;border:1px solid #e4cceb;border-radius:14px;padding:15px;margin:18px 0;min-width:0}
.psq-root .pse-topic-pick h3,.psq-root .pse-topic-pick>p{width:100%;margin:0}
.psq-root .pse-topic-pick>p{line-height:1.85}
.psq-root .pse-topic-pick label{flex:1 1 250px;display:flex;flex-direction:column;gap:6px;min-width:0;font-weight:700;color:#704b7e}
.psq-root .pse-topic-pick select{background:white;color:#44304f;border:1px solid #d8c3df;border-radius:9px;padding:9px;min-height:42px;max-width:100%;width:100%}
.psq-root .pse-topic-pick button{flex:0 1 auto;min-height:42px}
.psq-root .pse-topic-tip{background:white;padding:10px;border-radius:9px;overflow-wrap:anywhere}
@media(max-width:580px){.psq-root .pse-topic-pick{display:block}.psq-root .pse-topic-pick label,.psq-root .pse-topic-pick button{display:block;width:100%;margin-top:10px}.psx-root .pse-guide p,.psx-root .pse-practical p{padding:0 10px}}
@media print{.psx-root .pse-guide,.psx-root .pse-practical{break-inside:avoid}.psx-root .pse-guide summary,.psx-root .pse-practical summary{color:#333}.psq-root .pse-topic-pick{display:none}}
