.pc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.pc-card,.pc-panel,.pc-booking{border:1px solid #d9dee7;border-radius:8px;padding:1rem;background:#fff}.pc-card img{width:100%;height:auto;border-radius:6px}.pc-search,.pc-form,.pc-booking-form,.pc-message-form{display:grid;gap:.85rem;margin:1rem 0}.pc-search{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end}.pc-form label,.pc-search label,.pc-booking-form label,.pc-message-form label{display:grid;gap:.3rem}.pc-form input,.pc-form textarea,.pc-search input,.pc-booking-form input,.pc-booking-form textarea,.pc-message-form textarea{width:100%;border:1px solid #b9c2d0;border-radius:6px;padding:.7rem;font:inherit}.pc-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:1px solid #23324d;border-radius:6px;padding:.55rem .9rem;background:#23324d;color:#fff;text-decoration:none;cursor:pointer}.pc-button:hover,.pc-button:focus{color:#fff;background:#31456a}.pc-button-secondary{background:#f6f8fb;color:#23324d}.pc-button-secondary:hover,.pc-button-secondary:focus{background:#e9eef6;color:#23324d}.pc-button-link{background:transparent;border-color:transparent;color:#6f2930}.pc-button-link:hover,.pc-button-link:focus{background:#faeeee;color:#6f2930}.pc-meta{display:grid;grid-template-columns:max-content 1fr;gap:.15rem .5rem}.pc-meta dt{font-weight:700}.pc-inline-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.pc-notice{border-left:4px solid #2f7d4f;padding:.75rem 1rem;background:#eef8f2;margin-bottom:1rem}.pc-message{border-left:3px solid #d9dee7;padding-left:.75rem;margin:.75rem 0}.pc-message p{margin:.2rem 0 0}

/* PulpitConnect 2.0 */
.pc-hero{padding:1.4rem 1.6rem;border-radius:14px;background:#f5f7fb;border:1px solid #dfe6f2;margin:0 0 1rem}.pc-hero h2{margin:.1rem 0 .4rem}.pc-dashboard-header{margin:0 0 1rem}.pc-dashboard-header h2{margin-bottom:.2rem}.pc-stats,.pc-admin-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin:1rem 0}.pc-stat,.pc-admin-card{border:1px solid #d9dee7;border-radius:12px;background:#fff;padding:1rem;box-shadow:0 1px 2px rgba(0,0,0,.04)}.pc-stat strong,.pc-admin-card strong{display:block;font-size:2rem;line-height:1;color:#23324d}.pc-stat span,.pc-admin-card span{display:block;margin-top:.35rem;color:#5c6678}.pc-panel,.pc-card,.pc-booking{box-shadow:0 1px 3px rgba(0,0,0,.04)}.pc-search select,.pc-booking-form select,.pc-calendar-form select{width:100%;border:1px solid #b9c2d0;border-radius:6px;padding:.7rem;font:inherit;background:#fff}.pc-calendar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.75rem;margin:1rem 0}.pc-calendar-cell{display:grid;gap:.25rem;border:1px solid #d9dee7;border-radius:10px;padding:.75rem;background:#fff}.pc-calendar-cell small{color:#667085}.pc-mini-calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:.4rem;margin:.75rem 0}.pc-date-pill{display:grid;gap:.15rem;border:1px solid #d9dee7;border-radius:8px;padding:.45rem;text-align:center;background:#f8fafc}.pc-date-pill small{font-size:.75rem}.pc-status-available{background:#eef8f2!important;border-color:#b7ddc7!important}.pc-status-booked,.pc-status-accepted{background:#eef4ff!important;border-color:#b9c9ef!important}.pc-status-away,.pc-status-declined,.pc-status-cancelled{background:#fff1f1!important;border-color:#f2c5c5!important}.pc-status-tentative,.pc-status-requested{background:#fff8e7!important;border-color:#efd891!important}.pc-status-unavailable{background:#f4f4f5!important;border-color:#ddd!important;color:#667085}.pc-status-completed{background:#f0fdf4!important;border-color:#86efac!important}.pc-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.25rem .6rem;font-size:.82rem;font-weight:700}.pc-booking-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.pc-booking-head h3{margin-top:0}.pc-muted{color:#667085}.pc-admin-actions{display:flex;gap:.75rem;align-items:center;margin-top:1rem}.pc-status-border-requested{border-left:5px solid #efd891}.pc-status-border-accepted{border-left:5px solid #b9c9ef}.pc-status-border-declined,.pc-status-border-cancelled{border-left:5px solid #f2c5c5}.pc-status-border-completed{border-left:5px solid #86efac}@media(max-width:640px){.pc-booking-head{display:block}.pc-inline-actions{display:grid}.pc-button{width:100%}}

/* PulpitConnect 2.0.2 fixes */
.pc-register{max-width:680px}.pc-profile-extra{margin-top:1rem}.pc-calendar-wrap{display:grid;gap:1rem;margin:1rem 0}.pc-calendar-legend{display:flex;flex-wrap:wrap;gap:.5rem}.pc-calendar-legend span{border:1px solid #d9dee7;border-radius:999px;padding:.25rem .65rem;font-size:.85rem}.pc-month-calendar{width:100%;border-collapse:separate;border-spacing:4px;table-layout:fixed;margin:0 0 1rem}.pc-month-calendar caption{text-align:left;font-weight:700;font-size:1.15rem;margin:.5rem 0}.pc-month-calendar th{font-size:.8rem;color:#667085;text-align:center;padding:.35rem}.pc-month-calendar td{height:72px;vertical-align:top;border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:.35rem}.pc-month-calendar td strong{display:block}.pc-month-calendar td small{display:block;margin-top:.25rem;font-size:.7rem;line-height:1.1}.pc-month-calendar .pc-empty{background:transparent;border-color:transparent}.pc-month-calendar .pc-sunday{border-width:2px}.pc-church-directory .pc-card h3{margin-top:0}@media(max-width:640px){.pc-month-calendar td{height:54px;padding:.2rem}.pc-month-calendar td small{font-size:.62rem}.pc-month-calendar th{font-size:.7rem;padding:.2rem}.pc-calendar-legend{display:grid}}

/* PulpitConnect 2.0.6 church calendar */
.pc-church-calendar-wrap .pc-calendar-day{position:relative}.pc-calendar-action{display:inline-block;margin-top:.35rem;font-size:.78rem;text-decoration:none;border:1px solid #b7ddc7;border-radius:999px;padding:.18rem .45rem;background:#fff;color:#1f6b3d}.pc-calendar-booking{margin-top:.35rem;font-size:.78rem;line-height:1.2}.pc-calendar-booking span{display:block;color:#667085}.pc-calendar-booking a{font-weight:700}.pc-past-day{opacity:.55}.pc-church-month-calendar .pc-status-available{background:#f7fcf9!important}.pc-church-month-calendar .pc-status-booked{background:#eef4ff!important}

.pc-booking-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;margin:.75rem 0}.pc-request-details{border:1px solid #d9dee7;border-radius:8px;padding:.75rem;background:#f8fafc;margin:.75rem 0}.pc-request-details summary,.pc-booking-summary summary{cursor:pointer;font-weight:700}.pc-booking-summary{border:1px solid #d9dee7;border-radius:8px;padding:.75rem;background:#fbfcff;margin:.75rem 0}.pc-request-note{border-left:3px solid #efd891;background:#fff8e7;padding:.6rem .75rem;margin:.75rem 0}.pc-messages h4{margin-bottom:.2rem}.pc-decision-actions{border-top:1px solid #e5e7eb;padding-top:.75rem}.pc-inline-request .pc-booking-details-grid{grid-template-columns:1fr}.pc-message strong:after{content:"";display:block}.pc-message{background:#fbfcff;border-radius:6px;padding:.65rem .75rem;border-left:4px solid #d9dee7}

/* PulpitConnect 3.0 navigation and compact directories */
.pc-app-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;padding:.75rem;border:1px solid #d9dee7;border-radius:10px;background:#f8fafc}
.pc-app-nav a{display:inline-flex;align-items:center;border:1px solid #cfd7e6;border-radius:999px;padding:.38rem .75rem;background:#fff;text-decoration:none;color:#23324d;font-weight:600}
.pc-app-nav a:hover,.pc-app-nav a:focus{background:#eef4ff;color:#23324d}
.pc-directory-card h3,.pc-card h3{margin-top:0}.pc-directory-meta dd{min-height:1.2em}.pc-card-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.pc-profile-meta{grid-template-columns:minmax(150px,max-content) 1fr}.pc-profile-meta dd{white-space:pre-wrap}.pc-directory-card .pc-meta,.pc-card .pc-directory-meta{margin-top:.75rem}
@media(max-width:640px){.pc-app-nav,.pc-card-actions{display:grid}.pc-app-nav a{justify-content:center}.pc-profile-meta{grid-template-columns:1fr}.pc-profile-meta dt{margin-top:.5rem}}

.pc-button-small{font-size:.85rem;padding:.35rem .6rem;margin-top:.35rem;display:inline-block;}
.pc-calendar-review{margin-top:.35rem;}

/* PulpitConnect 3.0.4 directory view toggles */
.pc-view-toggle{display:flex;gap:.75rem;align-items:center;justify-content:flex-end;margin:.5rem 0 1rem}
.pc-list-view{display:grid;gap:.5rem;margin:1rem 0}
.pc-list-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(220px,2fr) auto;gap:.75rem;align-items:center;border:1px solid #d9dee7;border-radius:8px;background:#fff;padding:.55rem .75rem;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.pc-list-row h3{font-size:1rem;margin:0}.pc-list-row .pc-list-descriptors{margin:0;color:#5c6678}.pc-list-row .pc-card-actions{margin:0;justify-content:flex-end}.pc-no-speakers{display:block;margin-top:.25rem;color:#667085;font-weight:700}
@media(max-width:760px){.pc-list-row{grid-template-columns:1fr}.pc-list-row .pc-card-actions{justify-content:flex-start}.pc-view-toggle{justify-content:flex-start;flex-wrap:wrap}}

/* PulpitConnect 3.0.5 fixes */
.pc-view-toggle{border:1px solid #d9dfe7;padding:.65rem .75rem;border-radius:8px;background:#f8fafc}
.pc-view-toggle strong{margin-right:.5rem}
.pc-view-toggle .pc-active-view{font-weight:700;box-shadow:inset 0 0 0 2px currentColor}
.pc-no-speakers{display:inline-block;margin-top:.35rem;font-weight:700;opacity:.8}


/* PulpitConnect 3.0.6 visible directory controls */
.pc-view-toggle{display:flex!important;visibility:visible!important;gap:.65rem;align-items:center;justify-content:flex-end;margin:.75rem 0 1rem!important;border:2px solid #cfd7e6!important;padding:.7rem .85rem!important;border-radius:10px!important;background:#f8fafc!important;clear:both}
.pc-view-toggle-label{font-weight:700;color:#23324d}.pc-view-link{text-decoration:none!important}.pc-view-toggle .pc-active-view{background:#23324d!important;color:#fff!important;border-color:#23324d!important}
.pc-no-speakers{display:inline-block!important;margin-top:.35rem;padding:.18rem .45rem;border-radius:999px;background:#f4f4f5;color:#5c6678;font-weight:700;font-size:.78rem}
@media(max-width:760px){.pc-view-toggle{justify-content:flex-start;flex-wrap:wrap}.pc-view-toggle .pc-button{width:auto}}

/* Pilot Build 1 */
.pc-my-notes-form textarea{width:100%;box-sizing:border-box;min-height:150px;}
.pc-active-view{font-weight:700;}
.pc-view-toggle{margin:1rem 0;}


/* Pilot Build 2 booking workspace */
.pc-availability-request{display:inline-flex;margin:0 0 0 .35rem;vertical-align:middle}.pc-availability-response,.pc-finalize-booking{margin-top:1rem;padding:1rem;border:1px solid #dcdcde;border-radius:8px;background:#fff}.pc-availability-response textarea,.pc-finalize-booking textarea,.pc-decision-actions textarea{width:100%;box-sizing:border-box}.pc-decision-actions{margin-top:1rem}.pc-status-availability_requested,.pc-status-border-availability_requested{border-color:#dba617}.pc-status-available_confirmed,.pc-status-border-available_confirmed{border-color:#2271b1}.pc-status-unavailable,.pc-status-border-unavailable{border-color:#787c82}.pc-calendar-day.pc-status-requested{background:#fff8e5}.pc-calendar-day.pc-status-booked{background:#edfaef}

/* Pilot Build 2.2: inline availability inquiry */
.pc-availability-inquiry { display: inline-block; vertical-align: top; }
.pc-availability-inquiry > summary { list-style: none; cursor: pointer; }
.pc-availability-inquiry > summary::-webkit-details-marker { display: none; }
.pc-availability-inquiry[open] { display: block; width: 100%; margin-top: .75rem; }
.pc-availability-inquiry .pc-availability-request { margin-top: .75rem; max-width: 620px; }
.pc-availability-inquiry textarea { width: 100%; }

/* Pilot Build 2.7: reliable multi-date availability selection */
.pc-bulk-availability{display:flex;flex-wrap:wrap;gap:.65rem;align-items:end;margin:1rem 0;padding:.85rem;border:1px solid #d9dee7;border-radius:10px;background:#f8fafc}
.pc-bulk-availability label{display:grid;gap:.3rem;min-width:190px}
.pc-date-select{display:flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:600}
.pc-calendar-cell:has(.pc-availability-checkbox:checked){outline:3px solid rgba(34,113,177,.3);outline-offset:1px}
@media(max-width:640px){.pc-bulk-availability{display:grid}.pc-bulk-availability .pc-button{width:100%}}


/* Pilot Build 2.15: reliable new-speaker onboarding */
.pc-profile-progress{margin:1rem 0}.pc-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}.pc-progress-heading h2{margin:0}.pc-progress-heading strong{font-size:1.25rem;color:#23324d}.pc-progress-track{height:14px;border-radius:999px;background:#e8edf4;overflow:hidden;margin:.8rem 0}.pc-progress-track span{display:block;height:100%;border-radius:inherit;background:#2f7d4f;transition:width .25s ease}.pc-progress-steps{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin:.75rem 0 0;padding:0;list-style:none}.pc-step-done{color:#2f7d4f;font-weight:700}.pc-step-open{color:#667085}@media(max-width:640px){.pc-progress-heading{align-items:flex-start}.pc-progress-steps{display:grid}}

/* Pilot Build 2.25: bulk availability requests */
.pc-bulk-speaker-form{margin-top:1rem}
.pc-bulk-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;margin:0 0 1rem;padding:.75rem 1rem;border:1px solid #d9dee7;border-radius:10px;background:#f8fafc}
.pc-availability-request-panel{margin:0 0 1rem}
.pc-availability-request-panel label{display:grid;gap:.35rem;margin:.75rem 0}
.pc-availability-request-panel input[type=text],.pc-availability-request-panel textarea{width:100%;box-sizing:border-box}
.pc-speaker-select{float:right;margin:.15rem 0 .5rem .75rem;padding:.35rem .5rem;border:1px solid #ccd3dc;border-radius:6px;background:#fff}
.pc-availability-campaign-summary{margin:1rem 0}
.pc-inline-form{display:inline-block;margin:0}
@media(max-width:640px){.pc-bulk-toolbar{display:grid}.pc-bulk-toolbar .pc-button{width:100%}}


/* Build 2.29: compact clickable church calendar bookings */
.pc-calendar-booking-link {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 6px;
    padding: 6px 7px;
    border-radius: 6px;
    text-decoration: none;
    color: inherit;
    background: rgba(255,255,255,.55);
}
.pc-calendar-booking-link:hover,
.pc-calendar-booking-link:focus {
    background: rgba(255,255,255,.85);
    text-decoration: none;
}
.pc-calendar-booking-link small { opacity: .8; }
