/* Sistema Paroquial Escalas V2.0 */
.spe-link-btn{text-decoration:none!important;display:inline-flex;align-items:center;justify-content:center}.spe-filters{display:grid;grid-template-columns:180px 220px minmax(180px,1fr) auto;gap:12px;align-items:end;padding:18px 24px;border-bottom:1px solid #e5e7eb;background:#fbfdff}.spe-filters label{display:block;font-size:12px;font-weight:800;color:#475569;margin-bottom:6px}.spe-filters input,.spe-filters select{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:10px 12px;background:#fff;box-sizing:border-box}.spe-filters button{border:0;border-radius:12px;padding:11px 16px;font-weight:800;background:#0f172a;color:#fff;cursor:pointer}.spe-simple-list{display:grid;gap:12px;padding:22px}.spe-simple-item{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(260px,1.4fr) auto;align-items:center;gap:16px;background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:16px;box-shadow:0 8px 22px rgba(15,23,42,.04)}.spe-simple-item h3{margin:0;font-family:Georgia,serif;font-size:21px}.spe-simple-item p{margin:6px 0 0;color:#64748b}.spe-simple-meta{display:flex;flex-wrap:wrap;gap:7px}.spe-simple-meta span{background:#f8fafc;border:1px solid #e5e7eb;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;color:#334155}.spe-simple-actions{display:flex;gap:8px;align-items:center}.spe-simple-actions a,a.spe-edit-btn{text-decoration:none!important}.spe-edit-btn{background:#0f172a;color:#fff!important;border:0;border-radius:12px;padding:10px 14px;font-weight:900;display:inline-flex;justify-content:center;align-items:center;text-align:center}.spe-scale-list{display:grid;gap:16px;padding:24px}.spe-scale-card{background:#fff;border:1px solid #e5e7eb;border-radius:20px;padding:18px;box-shadow:0 10px 26px rgba(15,23,42,.04)}.spe-scale-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.spe-scale-card h3{margin:0;font-family:Georgia,serif;font-size:22px}.spe-scale-card p{color:#64748b;margin:6px 0 0}.spe-scale-card-head span{background:#fff7ed;border:1px solid #edd6aa;color:#8a5a13;border-radius:999px;padding:7px 10px;font-weight:800;font-size:12px}.spe-scale-note{background:#f8fafc;border:1px solid #e5e7eb;border-radius:12px;padding:10px}.spe-mini-assignments{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.spe-mini-assignments span{background:#f1f5f9;border:1px solid #e5e7eb;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:700;color:#334155}.spe-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.spe-card-actions form{margin:0}.spe-delete-btn{width:100%;border:0;background:#fee2e2;color:#991b1b;border-radius:12px;padding:10px;font-weight:800;cursor:pointer}.spe-step{display:grid;grid-template-columns:52px minmax(0,1fr);gap:16px;background:#fff;border:1px solid #e5e7eb;border-radius:20px;padding:18px;margin-bottom:18px}.spe-step-number{width:42px;height:42px;border-radius:14px;background:#fff7ed;border:1px solid #edd6aa;color:#8a5a13;font-weight:900;display:grid;place-items:center}.spe-step h3{margin:4px 0 6px;font-family:Georgia,serif;font-size:22px}.spe-step p{color:#64748b;margin:0 0 14px}.spe-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.spe-form-grid .wide{grid-column:1/-1}.spe-form-grid label{font-weight:800;font-size:13px}.spe-form-grid input,.spe-form-grid select,.spe-form-grid textarea,.spe-date-tools input{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:11px 13px;box-sizing:border-box;background:#fff}.spe-date-tools{display:grid;grid-template-columns:1fr 1fr;gap:16px}.spe-tool{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;padding:14px;display:grid;gap:10px}.spe-tool label{font-weight:800;font-size:13px}.spe-weekdays{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.spe-weekdays label{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:9px}.spe-weekdays input{width:auto!important}.spe-generator-box{margin-top:16px;background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:16px}.spe-generator-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.spe-generator-head strong{display:block;font-size:16px;color:#0f172a}.spe-generator-head span{color:#64748b;font-size:13px}.spe-generator-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.spe-generator-choice label{display:flex;align-items:center;gap:8px;background:#f8fafc;border:1px solid #e5e7eb;border-radius:14px;padding:12px;font-weight:800;color:#334155}.spe-generator-choice input{width:auto!important}.spe-common-functions{display:grid;gap:8px}.spe-common-functions textarea{width:100%;min-height:120px;border:1px solid #cbd5e1;border-radius:12px;padding:11px 13px;box-sizing:border-box;resize:vertical;background:#fff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.spe-common-functions small{color:#64748b;font-weight:600}.spe-assignment-editor{background:#f8fafc;border:1px solid #e5e7eb;border-radius:18px;padding:16px}.spe-assignment-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.spe-assignment-head strong{display:block}.spe-assignment-head small{display:block;color:#64748b;margin-top:3px}.spe-assignment-rows{display:grid;gap:8px}.spe-assignment-row{display:grid;grid-template-columns:150px 1fr 1fr 1fr 42px;gap:8px}.spe-assignment-row input{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:10px;box-sizing:border-box;background:#fff}.spe-remove-row{border:0;border-radius:10px;background:#fee2e2;color:#991b1b;font-weight:900;cursor:pointer}.generated-day-marker{grid-template-columns:1fr!important;background:#fff7ed!important;border:1px solid #edd6aa!important;color:#8a5a13!important;border-radius:12px;padding:10px 12px;font-weight:900}.spe-sticky-save{position:sticky;bottom:12px;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border:1px solid #e5e7eb;border-radius:16px;padding:12px;margin-top:18px;box-shadow:0 12px 30px rgba(15,23,42,.08);z-index:5}.spe-sticky-save .spe-save-btn{width:100%;margin:0!important;font-size:16px}.spe-empty-state{background:#fff7ed;border:1px solid #edd6aa;border-radius:18px;padding:20px;color:#64748b}.spe-empty-state strong{display:block;color:#8a5a13;font-size:18px}.spe-month-title{padding:20px 24px 0}.spe-month-title strong{font-family:Georgia,serif;font-size:24px}.spe-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;padding:20px 24px 24px}.spe-week-name{text-align:center;font-weight:900;color:#64748b;font-size:12px;text-transform:uppercase}.spe-calendar-day,.spe-calendar-empty{min-height:118px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:10px;box-sizing:border-box}.spe-calendar-day.has-items{background:#fffaf2;border-color:#edd6aa}.spe-calendar-day strong{display:block;color:#0f172a}.spe-calendar-day span{display:block;background:#eff6ff;color:#1d4ed8;border-radius:8px;padding:5px 6px;margin-top:6px;font-size:11px;font-weight:800;line-height:1.25}.spe-calendar-day small{display:block;margin-top:6px;color:#8a5a13;font-weight:800}.spe-day-list{display:grid;gap:16px;padding:24px}.spe-day-card{background:#fff;border:1px solid #e5e7eb;border-radius:20px;overflow:hidden;box-shadow:0 10px 26px rgba(15,23,42,.04)}.spe-day-head{background:linear-gradient(90deg,#fff7ed,#fff);border-bottom:1px solid #eadfce;padding:16px 18px;display:flex;justify-content:space-between;gap:12px;align-items:center}.spe-day-head strong{display:block;font-family:Georgia,serif;font-size:22px}.spe-day-head span{display:block;color:#64748b;margin-top:4px}.spe-day-head small{background:#fff;border:1px solid #edd6aa;color:#8a5a13;border-radius:999px;padding:7px 10px;font-weight:800}.spe-assignment-list{display:grid}.spe-assignment{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:12px;padding:14px 18px;border-bottom:1px solid #eef2f7}.spe-assignment:last-child{border-bottom:0}.spe-assignment strong,.spe-assignment b{display:block;color:#0f172a}.spe-assignment span,.spe-assignment small{display:block;color:#64748b;margin-top:4px}.spe-roadmap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:24px}.spe-roadmap div{background:linear-gradient(180deg,#fff,#fffaf2);border:1px solid #eadfce;border-radius:18px;padding:18px}.spe-roadmap strong{display:block;font-family:Georgia,serif;font-size:19px}.spe-roadmap span{display:block;color:#64748b;margin-top:8px}.spe-public-wrap{max-width:1180px;margin:32px auto;padding:0 18px}.spe-public-head{background:linear-gradient(90deg,#fff,#fff7ed);border:1px solid #eadfce;border-radius:24px;padding:24px;margin-bottom:18px}.spe-public-head h2{margin:0;font-family:Georgia,serif;font-size:32px}.spe-public-head p{color:#64748b}.spe-public-filters{border:1px solid #e5e7eb;border-radius:18px;margin-bottom:18px;padding:18px;background:#fff}@media(max-width:1000px){.spe-filters,.spe-date-tools,.spe-roadmap,.spe-generator-choice{grid-template-columns:1fr}.spe-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spe-assignment,.spe-simple-item{grid-template-columns:1fr}.spe-assignment-row{grid-template-columns:1fr}.spe-form-grid{grid-template-columns:1fr}.spe-step{grid-template-columns:1fr}.spe-weekdays{grid-template-columns:1fr}.spe-card-actions,.spe-simple-actions{grid-template-columns:1fr;flex-direction:column;align-items:stretch}}

/* Sistema Paroquial Escalas V2.1 - calendário expansível */
.spe-calendar-day {
    transition: all .18s ease;
}

.spe-calendar-day .spe-extra-item {
    display: none;
}

.spe-calendar-day.is-expanded {
    min-height: auto;
    z-index: 3;
    box-shadow: 0 18px 40px rgba(15, 23, 42, .12);
    border-color: #d6a545;
}

.spe-calendar-day.is-expanded .spe-extra-item {
    display: block;
}

.spe-more-toggle {
    display: block;
    width: 100%;
    margin-top: 7px;
    border: 1px solid #edd6aa;
    background: #fff7ed;
    color: #8a5a13;
    border-radius: 8px;
    padding: 5px 6px;
    font-size: 11px;
    font-weight: 900;
    cursor: pointer;
    text-align: center;
}

.spe-more-toggle:hover {
    background: #fef3c7;
}

.spe-calendar-day.is-expanded .spe-more-toggle {
    background: #0f172a;
    color: #fff;
    border-color: #0f172a;
}

.spe-calendar-day.has-items span {
    word-break: break-word;
}


/* Sistema Paroquial Escalas V2.2 - mobile como agenda */
.spe-mobile-date {
    display: none;
}

@media(max-width: 700px) {
    .spe-month-title {
        padding: 16px 16px 0;
    }

    .spe-calendar-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        padding: 16px !important;
    }

    .spe-week-name,
    .spe-calendar-empty {
        display: none !important;
    }

    .spe-calendar-day {
        display: none;
        min-height: auto !important;
        padding: 14px !important;
        border-radius: 16px !important;
    }

    .spe-calendar-day.has-items {
        display: block;
    }

    .spe-calendar-day.has-items strong {
        display: none;
    }

    .spe-mobile-date {
        display: block;
        font-style: normal;
        font-family: Georgia, serif;
        font-size: 18px;
        font-weight: 900;
        color: #0f172a;
        margin-bottom: 10px;
        text-transform: capitalize;
    }

    .spe-calendar-day.has-items span {
        font-size: 13px;
        padding: 8px 10px;
        margin-top: 7px;
        border-radius: 10px;
    }

    .spe-more-toggle {
        font-size: 13px;
        padding: 8px 10px;
        margin-top: 8px;
    }

    .spe-calendar-day.is-expanded {
        box-shadow: 0 12px 30px rgba(15, 23, 42, .10);
    }
}


/* Sistema Paroquial Escalas V2.3 - força modo agenda no celular */
@media(max-width: 1024px), (hover: none) and (pointer: coarse) {
    .spe-calendar-grid.spe-mobile-agenda,
    .spe-calendar-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        padding: 16px !important;
    }

    .spe-calendar-grid.spe-mobile-agenda .spe-week-name,
    .spe-calendar-grid.spe-mobile-agenda .spe-calendar-empty,
    .spe-calendar-grid .spe-week-name,
    .spe-calendar-grid .spe-calendar-empty {
        display: none !important;
    }

    .spe-calendar-grid.spe-mobile-agenda .spe-calendar-day:not(.has-items),
    .spe-calendar-grid .spe-calendar-day:not(.has-items) {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        min-height: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
        overflow: hidden !important;
    }

    .spe-calendar-grid.spe-mobile-agenda .spe-calendar-day.has-items,
    .spe-calendar-grid .spe-calendar-day.has-items {
        display: block !important;
        min-height: auto !important;
        padding: 14px !important;
        border-radius: 16px !important;
    }

    .spe-calendar-grid.spe-mobile-agenda .spe-calendar-day.has-items > strong,
    .spe-calendar-grid .spe-calendar-day.has-items > strong {
        display: none !important;
    }

    .spe-calendar-grid.spe-mobile-agenda .spe-mobile-date,
    .spe-calendar-grid .spe-mobile-date {
        display: block !important;
        font-style: normal;
        font-family: Georgia, serif;
        font-size: 18px;
        font-weight: 900;
        color: #0f172a;
        margin-bottom: 10px;
        text-transform: capitalize;
    }

    .spe-calendar-grid.spe-mobile-agenda .spe-calendar-day.has-items span,
    .spe-calendar-grid .spe-calendar-day.has-items span {
        font-size: 13px !important;
        padding: 8px 10px !important;
        margin-top: 7px !important;
        border-radius: 10px !important;
    }
}

.spe-calendar-grid.spe-force-mobile {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    padding: 16px !important;
}

.spe-calendar-grid.spe-force-mobile .spe-week-name,
.spe-calendar-grid.spe-force-mobile .spe-calendar-empty,
.spe-calendar-grid.spe-force-mobile .spe-calendar-day:not(.has-items) {
    display: none !important;
}

.spe-calendar-grid.spe-force-mobile .spe-calendar-day.has-items {
    display: block !important;
    min-height: auto !important;
    padding: 14px !important;
}

.spe-calendar-grid.spe-force-mobile .spe-calendar-day.has-items > strong {
    display: none !important;
}

.spe-calendar-grid.spe-force-mobile .spe-mobile-date {
    display: block !important;
    font-style: normal;
    font-family: Georgia, serif;
    font-size: 18px;
    font-weight: 900;
    color: #0f172a;
    margin-bottom: 10px;
    text-transform: capitalize;
}
