/* RAMOS Artistic Residency — registration form + admin panel */
.residency-form{max-width:820px;margin:0 auto;padding:9vw 8vw 6vw}
.residency-form h1{margin:0 0 6px;font:700 clamp(2.4rem,5vw,4rem)/1 Manrope;letter-spacing:-.06em}
.residency-form .lead{color:var(--muted);font-size:1.05rem;margin:0 0 40px}
.residency-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-bottom:50px}
.residency-summary div{padding:20px;background:var(--ivory)}
.residency-summary b{display:block;margin-bottom:6px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.residency-fieldset{border:0;padding:0;margin:0 0 44px}
.residency-fieldset legend{font:700 1.3rem Manrope;letter-spacing:-.02em;margin-bottom:20px;padding:0}
.residency-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.residency-grid label,.residency-form>label{display:grid;gap:7px;margin-bottom:18px}
.residency-grid label.span-2{grid-column:1/-1}
.residency-form label>span{font-size:12px;font-weight:700;letter-spacing:.02em}
.residency-form input[type=text],.residency-form input[type=email],.residency-form input[type=tel],
.residency-form select,.residency-form textarea{width:100%;min-height:48px;padding:11px 13px;color:var(--ink);border:1px solid var(--line);border-radius:2px;background:#fff;font:inherit;font-size:15px}
.residency-form textarea{min-height:90px;resize:vertical}
.residency-form input:focus,.residency-form select:focus,.residency-form textarea:focus{outline:2px solid var(--gold);outline-offset:1px}
.room-options{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:10px}
.room-options.cols-3{grid-template-columns:repeat(3,1fr)}
.room-option{display:block;padding:18px;border:1px solid var(--line);border-radius:2px;cursor:pointer;transition:border-color .15s}
.room-option:has(input:checked){border-color:var(--gold);background:rgba(108,99,255,.05)}
.room-option input{margin-right:8px}
.room-option b{display:block;font-size:1.05rem}
.room-option span{color:var(--muted);font-size:13px}
.residency-total{margin:18px 0 0;padding:16px 18px;background:#111;color:#fff;border-radius:2px;font-weight:700;font-size:1.1rem}
.payment-options{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.payment-option{display:flex;align-items:center;gap:8px;padding:12px 16px;border:1px solid var(--line);border-radius:99px;cursor:pointer;font-size:14px;font-weight:600}
.payment-option:has(input:checked){border-color:var(--gold);background:rgba(108,99,255,.06)}
.payment-details-box{padding:18px;border:1px solid var(--line);background:var(--ivory);font-size:14px;line-height:1.7;margin-bottom:20px}
.payment-details-box b{display:block;margin-bottom:4px}
.residency-note{font-size:13px;color:var(--muted);margin-top:-8px;margin-bottom:16px}
.residency-submit{min-height:54px;width:100%;border:0;border-radius:99px;background:var(--ink);color:#fff;font:700 1rem inherit;cursor:pointer}
.residency-submit:disabled{opacity:.5;cursor:wait}
.residency-status{margin-top:20px;padding:16px 18px;border-radius:2px;font-size:14px;display:none}
.residency-status.is-visible{display:block}
.residency-status.ok{background:#eefaf0;color:#146c2e;border:1px solid #bfe6c8}
.residency-status.error{background:#fdeeee;color:#a3241f;border:1px solid #f3c6c4}
[hidden]{display:none!important}
@media(max-width:800px){.residency-grid,.residency-summary,.room-options,.room-options.cols-3{grid-template-columns:1fr}.residency-form{padding:120px 20px 70px}}

/* Admin panel */
.admin-wrap{max-width:1400px;margin:0 auto;padding:60px 5vw 100px}
.admin-wrap h1{font:700 2.4rem Manrope;letter-spacing:-.04em;margin:0 0 4px}
.admin-wrap .lead{color:var(--muted);margin:0 0 30px}
.admin-table-wrap{overflow-x:auto;border:1px solid var(--line)}
table.admin-table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}
table.admin-table th{text-align:left;padding:10px 12px;background:#111;color:#fff;position:sticky;top:0}
table.admin-table td{padding:10px 12px;border-bottom:1px solid var(--line)}
table.admin-table tr:hover td{background:var(--ivory)}
.status-pill{display:inline-block;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:700;text-transform:uppercase}
.status-pill.payment_submitted{background:#fff4d6;color:#8a6100}
.status-pill.confirmed{background:#e0f6e6;color:#146c2e}
.status-pill.cancelled,.status-pill.expired{background:#f4f4f4;color:#777}
.status-pill.pending_payment{background:#fdeeee;color:#a3241f}
.admin-actions{display:flex;gap:6px}
.admin-actions button{padding:6px 12px;border:1px solid var(--line);border-radius:99px;background:#fff;font-size:12px;font-weight:700;cursor:pointer}
.admin-actions button.confirm{border-color:#146c2e;color:#146c2e}
.admin-actions button.reject{border-color:#a3241f;color:#a3241f}
.admin-actions button:disabled{opacity:.4;cursor:wait}
.admin-actions a{padding:6px 12px;border:1px solid var(--line);border-radius:99px;font-size:12px;font-weight:700}

/* Extra status-pill variants (STELLA's 8-state lifecycle; RAMOS keeps its own 4 above) */
.status-pill.application_received{background:#eef1fb;color:#3b4bb0}
.status-pill.under_review{background:#fff4d6;color:#8a6100}
.status-pill.accepted{background:#e6f2ff;color:#155a9c}
.status-pill.payment_pending{background:#fff4d6;color:#8a6100}
.status-pill.partially_paid{background:#fff0e0;color:#a15c00}
.status-pill.paid{background:#e0f6e6;color:#146c2e}

/* Pricing-tier cards — used on the RAMOS and STELLA public pages to present per-modality pricing */
.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px;margin:24px 0}
.pricing-card{padding:22px;border:1px solid var(--line);border-radius:2px;background:var(--ivory)}
.pricing-card b{display:block;font-size:1rem;margin-bottom:6px}
.pricing-card .price{display:block;font:700 1.8rem Manrope;letter-spacing:-.03em;margin:8px 0}
.pricing-card .price small{font-size:.9rem;font-weight:600;color:var(--muted)}
.pricing-card p{color:var(--muted);font-size:13px;line-height:1.6;margin:0}
.pricing-card.is-limited{border-color:var(--gold)}
.pricing-card .limited-tag{display:inline-block;padding:2px 10px;border-radius:99px;background:var(--gold);color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.info-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:99px;background:var(--ivory);border:1px solid var(--line);color:var(--ink);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin:0 0 14px}
.check-list{list-style:none;margin:18px 0;padding:0;display:grid;gap:9px}
.check-list li{padding-left:26px;position:relative;font-size:14px;line-height:1.5}
.check-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--gold);font-weight:700}

/* Three entry-point cards on the STELLA hero (Choirs / Individual Singers / Christmas Market) */
.entry-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:36px 0}
.entry-card{display:block;padding:28px 24px;border:1px solid var(--line);border-radius:2px;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
.entry-card:hover{border-color:var(--gold);transform:translateY(-2px)}
.entry-card b{display:block;font:700 1.15rem Manrope;letter-spacing:-.02em;margin-bottom:6px}
.entry-card span{color:var(--muted);font-size:13px;line-height:1.6}

/* Persistent WhatsApp button */
.whatsapp-float{position:fixed;right:20px;bottom:20px;z-index:40;display:flex;align-items:center;gap:8px;padding:12px 18px;border-radius:99px;background:#1fa855;color:#fff;text-decoration:none;font-size:13px;font-weight:700;box-shadow:0 6px 20px rgba(0,0,0,.2)}
.whatsapp-float svg{width:18px;height:18px;fill:#fff}

/* Room / meal editors — dynamic row lists shared by the organizer portal and admin panel */
.room-editor,.meal-editor{border:1px solid var(--line);margin-bottom:16px}
.room-editor-row,.meal-editor-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;padding:14px;border-bottom:1px solid var(--line);align-items:end}
.room-editor-row:last-child,.meal-editor-row:last-child{border-bottom:0}
.room-editor-row label,.meal-editor-row label{display:grid;gap:4px;font-size:11px;font-weight:700;color:var(--muted)}
.room-editor-row input,.room-editor-row select,.meal-editor-row input{padding:8px 10px;border:1px solid var(--line);border-radius:2px;font:inherit;font-size:13px}
.room-editor-row button.remove-row,.meal-editor-row button.remove-row{align-self:end;padding:8px 10px;border:1px solid #a3241f;color:#a3241f;background:#fff;border-radius:2px;cursor:pointer;font-size:12px}
.editor-add-row{margin:10px 0 24px;padding:10px 18px;border:1px dashed var(--line);background:none;border-radius:2px;cursor:pointer;font-size:13px;font-weight:700}
.editor-warning{padding:12px 16px;background:#fff4d6;color:#8a6100;border-radius:2px;font-size:13px;margin-bottom:16px}

/* Organizer portal (token-based private area) */
.portal-wrap{max-width:820px;margin:0 auto;padding:9vw 8vw 6vw}
.portal-wrap h1{margin:0 0 6px;font:700 clamp(2rem,4.5vw,3rem)/1.1 Manrope;letter-spacing:-.05em}
.portal-status-banner{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:99px;background:var(--ivory);border:1px solid var(--line);font-size:13px;font-weight:700;margin:14px 0 36px}
.portal-section{margin-bottom:48px;padding-top:32px;border-top:1px solid var(--line)}
.portal-section h2{font:700 1.3rem Manrope;letter-spacing:-.02em;margin:0 0 16px}
.portal-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;background:var(--line);margin-bottom:20px}
.portal-summary div{padding:16px;background:var(--ivory)}
.portal-summary b{display:block;margin-bottom:4px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}

/* "How would you like to participate?" first-decision cards — shared by STELLA and RAMOS */
.choice-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:28px 0}
.choice-card{display:flex;flex-direction:column;padding:36px 30px;border:1px solid var(--line);border-radius:4px;text-decoration:none;color:inherit;background:#fff;transition:border-color .15s,transform .15s,box-shadow .15s;min-height:220px}
.choice-card:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,0,0,.08)}
.choice-card b{display:block;font:700 1.6rem Manrope;letter-spacing:-.03em;margin-bottom:10px}
.choice-card p{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 20px;flex:1}
.choice-card span.choice-cta{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink)}
.choice-card:hover span.choice-cta{color:var(--gold)}
@media(max-width:800px){.choice-cards{grid-template-columns:1fr}.choice-card{padding:28px 24px;min-height:auto}}

/* Multi-step wizard forms — shared by STELLA candidatura, RAMOS individual, RAMOS residência */
.wizard-progress{display:flex;align-items:center;gap:6px;margin:0 0 32px;font-size:12px;font-weight:700;color:var(--muted)}
.wizard-progress .wizard-step-dot{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;font-size:11px;flex-shrink:0}
.wizard-progress .wizard-step-dot.is-active{border-color:var(--gold);background:var(--gold);color:#fff}
.wizard-progress .wizard-step-dot.is-done{border-color:var(--ink);background:var(--ink);color:#fff}
.wizard-progress .wizard-step-line{flex:1;height:1px;background:var(--line)}
.wizard-panel{display:none}
.wizard-panel.is-active{display:block}
.wizard-nav{display:flex;justify-content:space-between;gap:12px;margin-top:8px}
.wizard-nav button{min-height:48px;padding:0 24px;border-radius:99px;font:700 .95rem inherit;cursor:pointer}
.wizard-nav .wizard-back{border:1px solid var(--line);background:#fff;color:var(--ink)}
.wizard-nav .wizard-next{border:0;background:var(--ink);color:#fff}
.wizard-review dl{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:14px;margin:0}
.wizard-review dt{color:var(--muted);font-weight:700}
.wizard-review dd{margin:0}
@media(max-width:800px){.wizard-progress{gap:3px}.wizard-progress .wizard-step-dot{width:22px;height:22px;font-size:10px}}
