/* Partner signup, hours builder, validation, and organization autocomplete. */

/* =========================================================
   PARTNER SIGNUP — MATCH DONATION FORM
======================================================= */

.ss-partner-signup-wrap {
    max-width: 1280px;
    margin: 0 auto;
}

.ss-partner-signup-panel {
    position: relative;
}

.ss-partner-signup-panel .ss-home-panel-inner {
    padding: 26px 28px 24px;
}

.ss-partner-signup-header {
    margin-bottom: 18px;
}

.ss-partner-signup-title {
    margin: 0 0 8px;
    font-size: clamp(2.1rem, 4.2vw, 2.9rem);
    line-height: 1.02;
    color: #3f5b50;
    letter-spacing: -0.02em;
}

.ss-partner-signup-intro {
    margin: 0;
    max-width: 920px;
    font-size: 1rem;
    line-height: 1.65;
    color: #465952;
}

.ss-partner-signup-note {
    margin: 0 0 18px;
}

/* uses your donation-form style rhythm */
.ss-partner-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 14px;
}

.ss-partner-grid .ss-field--full {
    grid-column: 1 / -1;
}

.ss-partner-grid textarea.ss-input {
    min-height: 120px;
    resize: vertical;
}

.ss-partner-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 18px;
}

.ss-partner-submit {
    min-width: 228px;
}

.ss-partner-help {
    font-size: 0.95rem;
    color: #5c665f;
}

/* success pill alignment with the donation page */
.ss-partner-signup-panel .ss-note--success,
.ss-partner-signup-panel .ss-note--error {
    border-radius: 14px;
}

/* =========================================
   PARTICIPATION PILLS — FORCE SINGLE LAYER
========================================= */

.ss-pill-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 14px;
    margin-top: 10px;
}

.ss-pill {
    display: inline-flex;
    margin: 0;
    padding: 0;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}

.ss-pill input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.ss-pill-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 18px;
    margin: 0;
    border-radius: 999px;
    border: 1px solid transparent;
    background: #eceee7;
    color: #243126;
    line-height: 1.1;
    cursor: pointer;
    box-shadow: none !important;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.ss-pill:hover .ss-pill-label,
.ss-pill-label:hover {
    background: #e4efe6;
    border-color: #b7d8bf;
    color: #1f6a39;
}

.ss-pill input:checked + .ss-pill-label {
    background: #e4efe6 !important;
    border-color: #7fc596 !important;
    color: #1f6a39 !important;
    box-shadow: none !important;
}

.ss-pill input:focus + .ss-pill-label {
    outline: none;
    border-color: #7fc596;
}

.ss-pill::before,
.ss-pill::after,
.ss-pill-label::before,
.ss-pill-label::after {
    display: none !important;
    content: none !important;
}






/* =====================================================================================================================================================
   HOURS — DROPDOWN TIME BUILDER
===================================================================================================================================================== */

.ss-hours-grid {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 10px;
}

.ss-hours-row {
    display: grid;
    grid-template-columns: 120px 120px 250px 14px auto;
    align-items: center;
    gap: 15px;
    padding-left: 0;
}

.ss-day {
    font-weight: 600;
    color: rgba(0, 0, 0, 0.9);
    white-space: nowrap;
    margin-right: 10px;
}

.ss-hours-status {
    width: 110px;
    min-width: 110px;
    text-align: center;
    text-align-last: center;
    border-radius: 8px;
    padding: 6px 10px;
    font-weight: 500;
    justify-self: start;
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        opacity 0.2s ease,
        box-shadow 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
}

.ss-hours-timegroup {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    transition: opacity 0.2s ease;
}

.ss-hours-part {
    text-align: center;
    text-align-last: center;
    border-radius: 8px;
    padding: 6px 10px;
    font-weight: 500;
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease,
        opacity 0.2s ease,
        box-shadow 0.2s ease;
    -webkit-appearance: none;
    appearance: none;
}

.ss-hours-hour {
    width: 72px;
    min-width: 72px;
}

.ss-hours-minute {
    width: 78px;
    min-width: 78px;
}

.ss-hours-ampm {
    width: 82px;
    min-width: 82px;
}

.ss-hours-sep {
    text-align: center;
    opacity: 0.6;
    transition: opacity 0.2s ease;
}

/* =========================================
   STATUS COLORS
========================================= */

/* CLOSED → soft yellow */
.ss-hours-row.is-closed .ss-hours-status {
    background: rgba(236, 190, 110, 0.18) !important;
    border-color: rgba(236, 190, 110, 0.35) !important;
    color: #8a6a2f !important;
    opacity: 1 !important;
    box-shadow: inset 0 0 0 1px rgba(236, 190, 110, 0.15);
}

/* OPEN → green */
.ss-hours-row:not(.is-closed) .ss-hours-status {
    background: rgba(139, 158, 120, 0.16) !important;
    border-color: rgba(139, 158, 120, 0.32) !important;
    color: #556b46 !important;
    opacity: 1 !important;
    box-shadow: inset 0 0 0 1px rgba(139, 158, 120, 0.15);
}

/* =========================================
   CLOSED STATE
========================================= */

.ss-hours-row.is-closed .ss-hours-timegroup,
.ss-hours-row.is-closed .ss-hours-sep {
    opacity: 0.6;
}

.ss-hours-row.is-closed .ss-hours-timegroup .ss-hours-part {
    opacity: 0.65;
    background: rgba(255, 255, 255, 0.78);
}

/* OPEN STATE */
.ss-hours-row:not(.is-closed) .ss-hours-timegroup,
.ss-hours-row:not(.is-closed) .ss-hours-sep,
.ss-hours-row:not(.is-closed) .ss-hours-timegroup .ss-hours-part {
    opacity: 1;
}

/* =========================================
   MOBILE
========================================= */

@media (max-width: 900px) {
    .ss-partner-grid {
        grid-template-columns: 1fr;
    }

    .ss-partner-signup-panel .ss-home-panel-inner {
        padding: 22px 20px 20px;
    }

    .ss-partner-signup-title {
        font-size: clamp(1.9rem, 8vw, 2.8rem);
    }

    .ss-partner-submit {
        min-width: 100%;
    }

    .ss-hours-row {
        grid-template-columns: 1fr;
        gap: 8px;
        padding-left: 0;
    }

    .ss-hours-timegroup {
        flex-wrap: wrap;
    }

    .ss-hours-status,
    .ss-hours-hour,
    .ss-hours-minute,
    .ss-hours-ampm {
        width: auto;
        min-width: 0;
    }
}











/* =========================================================
   PARTNER SIGNUP — VALIDATION POSITIONING
   Keeps native required-field focus clear of the fixed header.
========================================================= */

.ss-partner-signup-form .ss-field,
.ss-partner-signup-form .ss-input,
.ss-partner-signup-form .ss-pill-group {
    scroll-margin-top: 110px;
}

/* Partner signup submission feedback: draw attention after the redirect without looping forever. */
.ss-partner-signup-panel .ss-partner-signup-note.ss-note--success {
    animation:
        ss-success-pop 420ms ease,
        ss-partner-feedback-pulse-success 900ms ease-in-out 480ms 3;
    transform-origin: center;
}

.ss-partner-signup-panel .ss-partner-signup-note.ss-note--error {
    animation: ss-partner-feedback-pulse-error 900ms ease-in-out 180ms 3;
    transform-origin: center;
}

@media (prefers-reduced-motion: reduce) {
    .ss-partner-signup-panel .ss-partner-signup-note.ss-note--success,
    .ss-partner-signup-panel .ss-partner-signup-note.ss-note--error {
        animation: none;
    }
}

/* =========================================================
   PICKUP / DELIVERY — AJAX FEEDBACK ATTENTION
   Mirrors the partner-signup feedback pulse for claim and
   handoff confirmation/error messages without looping.
========================================================= */

.ss-donate-panel .ss-ajax-response > .ss-note--success,
.ss-claim-box .ss-ajax-response > .ss-note--success,
.ss-my-pickups-panel .ss-ajax-response > .ss-note--success {
    animation:
        ss-success-pop 420ms ease,
        ss-partner-feedback-pulse-success 900ms ease-in-out 480ms 3;
    transform-origin: center;
}

.ss-donate-panel .ss-ajax-response > .ss-note--error,
.ss-claim-box .ss-ajax-response > .ss-note--error,
.ss-my-pickups-panel .ss-ajax-response > .ss-note--error {
    animation: ss-partner-feedback-pulse-error 900ms ease-in-out 180ms 3;
    transform-origin: center;
}

@media (prefers-reduced-motion: reduce) {
    .ss-donate-panel .ss-ajax-response > .ss-note--success,
    .ss-donate-panel .ss-ajax-response > .ss-note--error,
    .ss-claim-box .ss-ajax-response > .ss-note--success,
    .ss-claim-box .ss-ajax-response > .ss-note--error,
    .ss-my-pickups-panel .ss-ajax-response > .ss-note--success,
    .ss-my-pickups-panel .ss-ajax-response > .ss-note--error {
        animation: none;
    }
}

/* =========================================================
   ORGANIZATION AUTOCOMPLETE + STATE SELECTOR
========================================================= */
.ss-org-autocomplete{
    position:relative;
}

.ss-org-results{
    position:absolute;
    left:0;
    right:0;
    top:calc(100% - 18px);
    z-index:40;
    max-height:280px;
    overflow:auto;
    padding:6px;
    border:1px solid rgba(72,124,102,.28);
    border-radius:14px;
    background:#fff;
    box-shadow:0 18px 44px rgba(22,55,43,.18);
}

.ss-org-option{
    width:100%;
    display:block;
    padding:11px 12px;
    border:0;
    border-radius:10px;
    background:transparent;
    color:inherit;
    font:inherit;
    text-align:left;
    cursor:pointer;
}

.ss-org-option:hover,
.ss-org-option:focus,
.ss-org-option.is-active{
    outline:none;
    background:rgba(58,128,96,.11);
}

.ss-org-empty{
    padding:11px 12px;
    color:rgba(34,70,57,.72);
    font-size:.92rem;
    line-height:1.45;
}

.ss-state-select{
    cursor:pointer;
}

.ss-state-select:focus{
    outline:2px solid rgba(58,128,96,.24);
    outline-offset:2px;
}

@media (max-width:700px){
    .ss-org-results{
        max-height:220px;
    }
}


/* RC18 — donor convenience and confirmation */
.ss-org-status{min-height:24px;margin-top:8px}
.ss-registered-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid rgba(58,150,92,.35);border-radius:999px;background:rgba(58,150,92,.1);color:#286f43;font-size:.78rem;font-weight:800;letter-spacing:.02em}
.ss-recent-organizations{display:flex;flex-wrap:wrap;align-items:center;gap:7px;width:100%;max-width:100%;margin:12px 0 16px}
.ss-recent-label{font-size:.76rem;font-weight:800;color:var(--ss-muted,#68746c);text-transform:uppercase;letter-spacing:.08em}
.ss-recent-org{appearance:none;display:inline-flex;align-items:center;justify-content:center;margin:0;padding:8px 14px;border:1px solid transparent;border-radius:999px;background:#eceee7;color:#243126;font:inherit;font-size:.8rem;line-height:1.1;cursor:pointer;box-shadow:none;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}
.ss-recent-org:hover,.ss-recent-org:focus-visible{background:#e4efe6;border-color:#b7d8bf;color:#1f6a39;transform:none;box-shadow:none;outline:none}
.ss-recent-org.is-active,.ss-recent-org[aria-pressed="true"]{background:#e4efe6;border-color:#7fc596;color:#1f6a39;font-weight:700;box-shadow:none}
.ss-recent-org:focus-visible{outline:2px solid rgba(127,197,150,.3);outline-offset:2px}
.ss-remember{display:flex;align-items:flex-start;gap:10px;margin:4px 0 16px;padding:12px 14px;border:1px solid rgba(29,84,55,.13);border-radius:12px;background:rgba(255,255,255,.55);font-size:.9rem;line-height:1.45}
.ss-remember input{margin-top:3px;accent-color:#277248}
.ss-returning-donor{margin:0 0 18px;padding:12px 15px;border-left:4px solid #3677a7;border-radius:9px;background:rgba(54,119,167,.09);color:#285a7e;font-weight:700}
.ss-donation-success{display:grid;grid-template-columns:44px 1fr;gap:14px;margin:0 0 20px;padding:20px;border:1px solid rgba(48,133,77,.28);border-radius:16px;background:linear-gradient(145deg,rgba(238,250,242,.98),rgba(255,255,255,.98));box-shadow:0 14px 32px rgba(29,84,55,.09)}
.ss-donation-success-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#348452;color:#fff;font-size:1.25rem;font-weight:900}
.ss-donation-success h2{margin:2px 0 14px;font-size:1.28rem}
.ss-donation-success dl{display:grid;gap:10px;margin:0}
.ss-donation-success dl>div{display:grid;grid-template-columns:minmax(105px,.35fr) 1fr;gap:12px;padding-top:10px;border-top:1px solid rgba(29,84,55,.1)}
.ss-donation-success dt{font-size:.74rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:#667269}
.ss-donation-success dd{margin:0;font-weight:700}
.ss-donation-thanks{margin:16px 0 0;font-weight:800;color:#286f43}
.ss-confirm-layer{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;padding:20px;background:rgba(8,24,16,.52);backdrop-filter:blur(4px)}
.ss-confirm-dialog{width:min(480px,100%);padding:24px;border:1px solid rgba(255,255,255,.35);border-radius:18px;background:#fff;box-shadow:0 28px 70px rgba(0,0,0,.28)}
.ss-confirm-dialog h2{margin:0 0 10px;font-size:1.35rem}.ss-confirm-dialog p{margin:0;color:#56615a;line-height:1.55}
.ss-confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.ss-btn--secondary{background:#fff!important;color:inherit!important;border:1px solid rgba(29,84,55,.22)!important}
@media(max-width:600px){.ss-donation-success{grid-template-columns:1fr}.ss-donation-success dl>div{grid-template-columns:1fr;gap:3px}.ss-confirm-actions{flex-direction:column-reverse}.ss-confirm-actions .ss-btn{width:100%}}


/* RC19.4 — centered page introductions and aligned My Pickups labels */
.ss-donate-panel .ss-home-panel-copy,
.ss-my-pickups-panel .ss-home-panel-copy{
    text-align:center;
}

.ss-donate-panel .ss-home-panel-title,
.ss-my-pickups-panel .ss-home-panel-title{
    margin-left:auto;
    margin-right:auto;
    text-align:center;
}

.ss-donate-panel .ss-home-panel-text,
.ss-my-pickups-panel .ss-home-panel-text{
    max-width:920px;
    margin-left:auto;
    margin-right:auto;
    text-align:center;
}

.ss-my-pickups-search-form .ss-field,
.ss-my-pickups-search-form .ss-label{
    text-align:left;
}

/* RC7 volunteer claim confirmation and printable pickup slip */
.ss-claim-confirmation{margin-top:16px;padding:24px;border:1px solid rgba(82,137,73,.28);border-radius:18px;background:rgba(250,252,248,.96);box-shadow:0 12px 34px rgba(35,67,48,.08)}
.ss-claim-confirmation-heading{display:flex;gap:14px;align-items:center;margin-bottom:18px}.ss-claim-confirmation-heading h3{margin:0;color:#294c3f;font-size:clamp(1.35rem,2vw,1.8rem)}.ss-claim-confirmation-heading p{margin:4px 0 0}.ss-claim-confirmation-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#4f8b4b;color:#fff;font-size:26px;font-weight:800;flex:0 0 auto}
.ss-claim-summary,.ss-claim-next{padding:18px;border:1px solid rgba(61,89,74,.14);border-radius:14px;background:#fff}.ss-claim-next{margin-top:14px;background:rgba(233,244,229,.7)}.ss-claim-summary h4,.ss-claim-next h4{margin:0 0 12px;color:#2f5b47}.ss-claim-summary-row{display:grid;grid-template-columns:minmax(140px,.7fr) 1.3fr;gap:18px;padding:10px 0;border-bottom:1px solid rgba(61,89,74,.1)}.ss-claim-summary-row:last-child{border-bottom:0}.ss-claim-summary-row span{overflow-wrap:anywhere}.ss-claim-next ul{margin:0;padding-left:20px}.ss-claim-confirmation-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.ss-claim-confirmation-actions .ss-btn{justify-content:center}
@media(max-width:620px){.ss-claim-summary-row{grid-template-columns:1fr;gap:3px}.ss-claim-confirmation-actions .ss-btn{width:100%}}
@media print{.ss-claim-confirmation-actions{display:none!important}}
