.resources-page { display:grid; gap:22px; color:#302740; }
.resources-page .res-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.resources-page h1 { font-size:1.6rem; color:#302740; margin:0 0 8px; }
.resources-page h2 { font-size:1.12rem; color:#42304f; line-height:1.8; }
.resources-page .res-heading p, .resources-page .res-muted { color:#81728d; font-size:.85rem; line-height:1.9; margin:8px 0; }
.resources-page .res-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.resources-page .res-panel, .resources-page .res-option, .resources-page .res-card { border:1px solid #ece3f3; border-radius:20px; background:#fff; box-shadow:0 6px 24px #311a4d08; min-width:0; }
.resources-page .res-panel { padding:24px; }
.resources-page .res-option { display:flex; flex-direction:column; padding:32px; gap:10px; color:inherit; transition:border-color .2s,box-shadow .2s; }
.resources-page .res-option:hover { border-color:#b879df; box-shadow:0 8px 28px #7425b619; }
.resources-page .res-option p { line-height:2; color:#81728d; }
.resources-page .res-option strong { color:var(--color1,#7425b6); margin-top:auto; }
.resources-page .res-symbol { width:60px; height:60px; border-radius:18px; display:grid; place-items:center; background:#f3e8fd; color:var(--color1,#7425b6); font-size:1.8rem; }
.resources-page .res-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%, 240px), 1fr)); gap:22px; }
.resources-page .res-card { overflow:hidden; }
.resources-page .res-card-body { padding:20px; }
.resources-page .res-cover { height:220px; padding:18px; display:flex; align-items:center; justify-content:center; background:#f9f5fc; color:#a67cc2; font-size:3rem; }
.resources-page .res-cover img { width:100%; height:100%; object-fit:contain; }
.resources-page .res-description { white-space:pre-line; overflow-wrap:anywhere; font-size:.85rem; line-height:1.9; color:#81728d; }
.resources-page .res-price { display:block; font-size:1.1rem; color:#7425b6; margin:12px 0; }
.resources-page .res-card .btn { width:100%; margin:12px 0 0; }
.resources-page .res-search { display:flex; max-width:640px; gap:10px; }
.resources-page .res-pagination { display:flex; justify-content:center; align-items:center; gap:16px; }
.resources-page .res-empty { padding:30px; border:1px dashed #d9c6e7; border-radius:16px; color:#81728d; text-align:center; }
.resources-page .res-checkout { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(min(100%, 260px), 1fr); gap:24px; align-items:start; }
.resources-page .res-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.resources-page label { display:block; font-size:.86rem; font-weight:600; margin:14px 0 8px; }
.resources-page .res-fields { border:0; margin:0; padding:0; min-width:0; }
.resources-page .res-fields > .btn { margin:20px 0 0; }
.resources-page .res-check { display:flex; align-items:center; gap:10px; }
.resources-page .res-file-picker { padding:18px; border:1px dashed #cdb5e1; border-radius:12px; background:#fbf9fe; }
.resources-page input[type=file] { display:block; width:100%; max-width:100%; }
.resources-page .res-status { display:inline-block; font-size:.78rem; background:#f3eafa; color:#795194; padding:6px 12px; border-radius:10px; }
.resources-page .res-upload-status { display:inline-flex; align-items:center; gap:7px; max-width:100%; vertical-align:middle; }
.resources-page .res-upload-status > span { min-width:0; overflow-wrap:anywhere; }
.resources-page .res-upload-status.is-uploaded { color:#18733c; background:#edf8f0; }
.resources-page .res-upload-status.is-missing { color:#b42332; background:#fff0f1; }
.resources-page .res-upload-status-icon { width:18px; height:18px; flex:0 0 18px; }
.resources-page .res-management-statuses { display:flex; flex-direction:column; align-items:flex-start; gap:8px; margin-block-end:16px; }
.resources-page .res-sale-status { display:inline-flex; align-items:center; gap:5px; max-width:100%; padding:4px 8px; font-size:.72rem; line-height:1.5; }
.resources-page .res-sale-status > span { min-width:0; overflow-wrap:anywhere; }
.resources-page .res-sale-status.is-configured { color:#096b2c; background:#e8f5ec; }
.resources-page .res-sale-status.is-unconfigured { color:#6e6079; background:#f3f0f5; }
.resources-page .res-sale-status-icon { display:block; width:14px; height:14px; flex:0 0 14px; }
.resources-page .res-order-details { font-size:.87rem; color:#6e6079; line-height:1.9; }
.resources-page .res-address { white-space:pre-wrap; overflow-wrap:anywhere; }
.resources-page .res-actions { display:flex; gap:10px; flex-wrap:wrap; }
.resources-page .res-delivery { max-width:560px; padding-top:12px; border-top:1px solid #eee5f4; }
.resources-page .res-pdf-reader { width:100%; height:78vh; border:1px solid #e4d6ef; border-radius:14px; background:#f7f3fa; }
.resources-page .bg-gradient-primary { background-image:linear-gradient(135deg,var(--color2,#a52bea),var(--color1,#7425b6)); color:#fff; }
.resources-page .btn { max-width:100%; white-space:normal; }
.resources-page a:focus-visible, .resources-page button:focus-visible { outline:3px solid #a864de; outline-offset:3px; }
@media(max-width:767px) { .resources-page .res-options, .resources-page .res-checkout { grid-template-columns:minmax(0,1fr); } .resources-page .res-option { padding:24px; } .resources-page .res-panel { padding:18px; } }
@media(max-width:480px) { .resources-page .res-form-grid { grid-template-columns:minmax(0,1fr); } }

/* Collection management and purchase choices */
.res-level-editor-list{display:grid;gap:24px;margin-block:24px}
.res-level-editor-list .res-panel{margin:0}
.res-add-level{display:flex;gap:16px;align-items:flex-end;border:0;padding:0}
.res-add-level>div{flex:1}
.res-level-media{display:grid;grid-template-columns:140px minmax(0,1fr);gap:24px;border:0;padding:12px 0 24px;margin-bottom:20px;border-bottom:1px solid #ede6f7;min-width:0}
.res-level-cover,.res-option-cover{display:flex;align-items:center;justify-content:center;background:#f7f2fc;border:1px solid #ede6f7;border-radius:14px;overflow:hidden;color:#9520df}
.res-level-cover{height:190px;font-size:36px}
.res-level-cover img,.res-option-cover img{width:100%;height:100%;object-fit:contain}
.res-purchase-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%, 230px), 1fr));gap:16px;margin-block:20px 28px}
.res-purchase-option{display:flex;align-items:center;gap:14px;width:100%;padding:16px;text-align:start;font:inherit;border:2px solid #e9e1f2;border-radius:16px;background:#fff;color:#344767;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s}
.res-purchase-option:hover{border-color:#bb78ed;background:#fcf8ff}
.res-purchase-option.is-selected{border-color:#9224d8;background:#f5ebff;box-shadow:0 0 0 3px #9224d814}
.res-purchase-option:focus-visible{outline:3px solid #ad54ed;outline-offset:3px}
.res-purchase-option>span:last-child{display:flex;flex-direction:column;gap:7px;min-width:0}
.res-purchase-option strong{overflow-wrap:anywhere}
.res-purchase-option small{color:#79678e}
.res-option-cover{height:94px;width:66px;flex:0 0 66px;font-size:28px}
.res-file-tabs{display:flex;flex-wrap:wrap;gap:12px;margin-block:20px}
.res-included-levels{padding:14px 18px;border-radius:12px;background:#f8f4fc;color:#72578e}
@media(max-width:600px){.res-add-level{flex-direction:column;align-items:stretch}.res-level-media{grid-template-columns:1fr;gap:12px}.res-level-cover{width:130px;height:170px}.res-purchase-options{grid-template-columns:1fr}}

.resources-page .res-document-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-block:12px}
.resources-page .res-document-slot{min-width:0;padding:14px;border:1px solid #ece3f3;border-radius:14px;background:#fdfbff}
.resources-page .res-document-slot label{margin-top:0}
.resources-page .res-document-slot .res-status{margin-top:10px}
.resources-page .res-document-slot small{display:block}
@media(max-width:1100px){.resources-page .res-document-slots{grid-template-columns:minmax(0,1fr)}}
