.samariter-sand{--sand-border:#dedede;--sand-bg:#fff;--sand-soft:#f6f7f7;--sand-muted:#667085;--sand-primary:#1d3557;--sand-accent:#e63946;--sand-yes-bg:#c6e0b4;--sand-yes:#385623;--sand-maybe-bg:#ffe699;--sand-maybe:#806000;--sand-no-bg:#f8cbad;--sand-no:#833c0b;max-width:1180px;margin:1.5rem auto;font-size:16px;line-height:1.5}
.samariter-sand *{box-sizing:border-box}.samariter-sand h2,.samariter-sand h3,.samariter-sand h4{color:var(--sand-primary)}
.sand-nav,.sand-subnav,.sand-toolbar,.sand-response-options{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.sand-nav{margin:1rem 0 1.5rem;border-bottom:1px solid var(--sand-border)}.sand-nav a,.sand-subnav a{padding:.55rem .8rem;text-decoration:none;border-radius:6px}.sand-nav a.active,.sand-nav a:hover,.sand-subnav a:hover{background:#eef1f4}.sand-subnav{padding:.75rem 0;border-top:1px solid var(--sand-border);border-bottom:1px solid var(--sand-border);margin:1.25rem 0}
.sand-section{margin:1.35rem 0;padding:1rem 1.1rem;border:1px solid var(--sand-border);border-radius:12px;background:var(--sand-bg);box-shadow:0 2px 10px rgba(0,0,0,.025)}.sand-dashboard-section{background:#fafafa}.sand-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.sand-card,.sand-assignment{border:1px solid var(--sand-border);border-radius:10px;padding:1rem;background:#fff}.sand-card-head,.sand-list-row,.sand-event-title{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.sand-list-row{padding:.75rem 0;border-bottom:1px solid #eee}.sand-list-row:last-child{border-bottom:0}.sand-status,.sand-private-badge,.sand-count{font-size:.78em;padding:.22rem .5rem;border-radius:999px;background:#eef1f4;color:#475467;white-space:nowrap}.sand-private-badge{background:#fff3cd;color:#664d03}.sand-card-date{font-weight:600}.sand-blocker{padding:.5rem .65rem;background:#fff8e5;border-left:3px solid #dba617;color:#674d00}
.sand-button{display:inline-block;padding:.52rem .82rem;border:1px solid #98a2b3;border-radius:6px;background:#fff;color:#1d2939;text-decoration:none;cursor:pointer}.sand-button:hover{background:#f2f4f7}.sand-primary{background:var(--sand-primary);color:#fff;border-color:var(--sand-primary)}.sand-primary:hover{background:#14263f;color:#fff}.sand-danger{background:#b42318;color:#fff;border-color:#b42318}.sand-link{border:0;background:none;padding:0;color:#175cd3;cursor:pointer;text-decoration:underline}.sand-danger-text{color:#b42318}
.sand-form{display:flex;flex-direction:column;gap:.85rem;margin:1rem 0}.sand-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.sand-field{display:flex;flex-direction:column;gap:.35rem}.sand-full{grid-column:1/-1}.sand-checkbox{flex-direction:row;align-items:center}.sand-field input[type=text],.sand-field input[type=number],.sand-field input[type=date],.sand-field input[type=datetime-local],.sand-field input[type=file],.sand-field select,.sand-field textarea,.sand-copy-row input{width:100%;max-width:100%;padding:.55rem .65rem;border:1px solid #cfd4dc;border-radius:6px;background:#fff}.sand-inline{display:inline-flex;gap:.4rem;align-items:center;margin:0}.sand-compact{gap:.35rem;min-width:190px}.sand-help{display:block;color:var(--sand-muted);font-weight:400;font-size:.88em}.sand-muted{color:var(--sand-muted)}.sand-notice,.sand-warning{padding:.75rem 1rem;border-left:4px solid #175cd3;background:#eff8ff;margin:1rem 0}.sand-warning{border-color:#dba617;background:#fffaeb}.sand-table{width:100%;border-collapse:collapse;background:#fff}.sand-table th,.sand-table td{padding:.65rem;border:1px solid var(--sand-border);vertical-align:top;text-align:left}.sand-responsive-table{overflow-x:auto}.sand-user-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.45rem;max-height:420px;overflow:auto;border:1px solid var(--sand-border);padding:.75rem;border-radius:8px}.sand-user-checklist label{display:flex;gap:.45rem;align-items:center}.sand-assignment dl,.sand-answer-list{display:grid;grid-template-columns:max-content 1fr;gap:.4rem .9rem}.sand-assignment dt,.sand-answer-list dt{font-weight:600}.sand-assignment dd,.sand-answer-list dd{margin:0}.sand-assignment-state{font-size:.85rem;font-weight:600;color:#475467;margin-bottom:.5rem}.sand-assignment-planned{border-left:5px solid #dba617}.sand-assignment-confirmed{border-left:5px solid #12b76a}.sand-cancel-form{max-width:700px}details{margin-top:1rem}summary{cursor:pointer;font-weight:600}
.sand-meta{display:flex;gap:.75rem 1.2rem;flex-wrap:wrap;margin:.75rem 0}.sand-meta span{padding:.3rem 0}.sand-rich p:last-child{margin-bottom:0}.sand-docs{margin:0;padding-left:1.2rem}.sand-public-cta{margin:1.2rem 0;padding:1.2rem;border-radius:12px;background:#f2f4f7}.sand-public-head{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}.sand-public-head h2{margin:0}.sand-private-link{margin-top:1rem;padding:1rem;background:#f9fafb;border:1px dashed #98a2b3;border-radius:8px}.sand-copy-row{display:grid;grid-template-columns:1fr auto;gap:.5rem}
/* Prototype-inspired compact shift rows */
.sand-slot-list{border-top:1px solid #e5e7eb}.sand-slot{min-height:76px;display:grid;grid-template-columns:58px 70px minmax(120px,1fr) auto;align-items:center;border-bottom:1px solid #e5e7eb;background:#fff}.sand-slot-date,.sand-slot-time{height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-transform:uppercase;line-height:1.05}.sand-slot-date{border-right:1px solid #eef0f2}.sand-slot-date span{font-size:.72rem;color:#667085}.sand-slot-date strong{font-size:1.25rem}.sand-slot-time{font-size:.78rem;color:#344054}.sand-slot-time strong{font-size:.9rem}.sand-slot-info{padding:.6rem .8rem;display:flex;flex-direction:column;gap:.15rem}.sand-slot-info>strong{font-size:1rem}.sand-slot-info small{color:#667085}.sand-slot-control{padding:.45rem;justify-self:end}.sand-inline-response{margin:0}.sand-response-controls{display:flex;gap:4px}.sand-response-choice{position:relative;display:flex;min-width:54px;height:54px;align-items:center;justify-content:center;border-radius:6px;cursor:pointer;border:1px solid transparent;overflow:hidden}.sand-response-choice input{position:absolute;opacity:0;pointer-events:none}.sand-choice-symbol{font-size:1.6rem;font-weight:700}.sand-choice-label{position:absolute;bottom:2px;font-size:.58rem;font-weight:600;opacity:.8}.sand-choice-yes{background:var(--sand-yes-bg);color:var(--sand-yes)}.sand-choice-maybe{background:var(--sand-maybe-bg);color:var(--sand-maybe)}.sand-choice-no{background:var(--sand-no-bg);color:var(--sand-no)}.sand-response-choice:has(input:checked){outline:3px solid currentColor;outline-offset:1px}.sand-response-readonly{min-width:70px;padding:.45rem .6rem;border-radius:6px;background:#f2f4f7;text-align:center}.sand-response-readonly strong,.sand-response-readonly small{display:block}.sand-response-yes{background:var(--sand-yes-bg);color:var(--sand-yes)}.sand-response-if_needed{background:var(--sand-maybe-bg);color:var(--sand-maybe)}.sand-response-no{background:var(--sand-no-bg);color:var(--sand-no)}
/* Event-question modal */
.sand-modal[hidden]{display:none}.sand-modal{position:fixed;z-index:100000;inset:0;display:grid;place-items:center;padding:1rem}.sand-modal-backdrop{position:absolute;inset:0;background:rgba(17,24,39,.58)}.sand-modal-dialog{position:relative;z-index:1;width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 24px 60px rgba(0,0,0,.25)}.sand-modal-close{position:absolute;right:.7rem;top:.5rem;border:0;background:none;font-size:1.8rem;cursor:pointer}.sand-modal-questions{display:flex;flex-direction:column;gap:.9rem;margin:1rem 0}.sand-modal-open{overflow:hidden}
/* Comments */
.sand-comment{display:grid;grid-template-columns:52px 1fr;gap:.75rem;padding:1rem 0;border-bottom:1px solid #ececec}.sand-comment:last-of-type{border-bottom:0}.sand-comment-avatar img{border-radius:10px}.sand-comment-head{display:flex;gap:1rem;justify-content:space-between}.sand-comment-head time{font-size:.8rem;color:#667085}.sand-comment p{margin:.35rem 0 0}
@media(max-width:760px){.sand-grid{grid-template-columns:1fr}.sand-card-head,.sand-list-row{flex-direction:column}.sand-table{font-size:.9rem}.sand-slot{grid-template-columns:52px 62px 1fr}.sand-slot-control{grid-column:1/-1;width:100%;padding:.45rem 0 .7rem}.sand-response-controls{justify-content:flex-end}.sand-response-choice{flex:1;max-width:110px}.sand-copy-row{grid-template-columns:1fr}.sand-comment-head{flex-direction:column;gap:.1rem}.sand-assignment dl,.sand-answer-list{grid-template-columns:1fr}.sand-assignment dd,.sand-answer-list dd{margin-bottom:.5rem}}
.sand-blocker-list{display:flex;flex-direction:column;gap:.4rem;margin:.75rem 0}.sand-blocker-list>div{display:flex;flex-direction:column;padding:.45rem .6rem;background:#f9fafb;border-radius:6px}.sand-blocker-list span{font-size:.82rem;color:#667085}


/* v1.2 modern AJAX interactions */
.sand-flash{display:none}
.sand-toast-stack{position:fixed;right:20px;bottom:20px;z-index:999999;display:flex;flex-direction:column;gap:10px;max-width:min(420px,calc(100vw - 40px))}
.sand-toast{opacity:0;transform:translateY(12px);transition:.2s ease;background:#1d2327;color:#fff;padding:12px 16px;border-radius:8px;box-shadow:0 6px 30px rgba(0,0,0,.2)}
.sand-toast.is-visible{opacity:1;transform:none}
.sand-toast-success{background:#18794e}.sand-toast-error{background:#b42318}.sand-toast-warning{background:#8a6116}
.sand-response-control{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.sand-response-button{border:1px solid #dcdcde;border-radius:7px;padding:8px 10px;background:#fff;cursor:pointer}
.sand-response-yes.is-selected{background:#c6e0b4;border-color:#8fbd72;color:#385623}
.sand-response-if_needed.is-selected{background:#ffe699;border-color:#e4c34e;color:#806000}
.sand-response-no.is-selected{background:#f8cbad;border-color:#df9d70;color:#833c0b}
.sand-decision-pill{padding:5px 8px;border-radius:999px;background:#ececec;font-size:.85em;font-weight:600}
.sand-modal[hidden]{display:none!important}.sand-modal{position:fixed;inset:0;z-index:999998;display:grid;place-items:center;padding:20px}
.sand-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.sand-modal-dialog{position:relative;z-index:1;width:min(650px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:14px;padding:24px;box-shadow:0 20px 80px rgba(0,0,0,.35)}
.sand-modal-close{position:absolute;right:12px;top:8px;border:0;background:transparent;font-size:28px;cursor:pointer}
body.sand-modal-open{overflow:hidden}
.sand-slot{display:grid;grid-template-columns:64px 110px minmax(160px,1fr) minmax(180px,auto);gap:12px;align-items:center;padding:10px 0;border-top:1px solid #eee}
.sand-slot:first-child{border-top:0}.sand-slot-date,.sand-slot-time{display:flex;flex-direction:column;text-align:center}.sand-slot-date strong{font-size:1.4em}
.sand-slot-info{display:flex;flex-direction:column;gap:3px}.sand-mini-shifts{display:grid;gap:5px;margin:10px 0}.sand-mini-shifts div{display:flex;justify-content:space-between;gap:10px}.sand-mini-shifts small{color:#646970}
.sand-comment{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #eee}.sand-comment img{width:48px;height:48px;border-radius:50%;object-fit:cover}.sand-comment strong,.sand-comment small{display:block}.sand-comment small{color:#646970}.sand-comment p{margin:.35rem 0 0}
.sand-secret-url{margin-top:18px;padding:12px;background:#f6f7f7;border-radius:8px}.sand-copy-row{display:flex;gap:8px}.sand-copy-row input{flex:1;min-width:0}
.sand-answer-list{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px}.sand-answer-list dt{font-weight:600}.sand-answer-list dd{margin:0}
.sand-email-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
@media(max-width:760px){.sand-slot{grid-template-columns:55px 90px 1fr}.sand-slot-control{grid-column:1/-1}.sand-response-control{justify-content:flex-start}.sand-mini-shifts div{flex-direction:column;gap:1px}}


/* v1.3 planning dashboard */
.sand-dashboard-section{margin:1.5rem 0}
.sand-dashboard-events{display:grid;gap:18px}
.sand-dashboard-event{background:#fff;border:1px solid #e2e4e7;border-radius:14px;padding:14px 16px;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.sand-dashboard-event-head{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:8px}
.sand-event-title-link{font-size:1.35rem;font-weight:700;text-decoration:none}
.sand-dashboard-badges{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.sand-badge{background:#f6f7f7;border-radius:999px;padding:4px 9px;font-size:.9rem}
.sand-commitment-table td,.sand-commitment-table th{white-space:nowrap}
.sand-status-confirmed{background:#d9ead3;color:#274e13}
.sand-status-pending{background:#fff2cc;color:#7f6000}
.sand-section-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.sand-shift-duration{padding:10px 12px;border-radius:7px;background:#f6f7f7;font-weight:600}
.sand-duration-warning{background:#fff3cd;color:#664d03;border:1px solid #ffecb5}

/* Availability colours are always explicit, not only when selected. */
.sand-response-button{font-weight:600;opacity:.75}
.sand-response-button:hover,.sand-response-button.is-selected{opacity:1}
.sand-response-yes{background:#e2f0d9;border-color:#93c47d;color:#274e13}
.sand-response-if_needed{background:#fff2cc;border-color:#f1c232;color:#7f6000}
.sand-response-no{background:#f4cccc;border-color:#e06666;color:#660000}
.sand-response-yes.is-selected{background:#b6d7a8;border-color:#6aa84f}
.sand-response-if_needed.is-selected{background:#ffe599;border-color:#d6b656}
.sand-response-no.is-selected{background:#ea9999;border-color:#cc0000}
.sand-state-button{width:54px;height:54px;border-radius:0;border:1px solid transparent;font-size:30px;font-weight:700;cursor:pointer;line-height:1}
.sand-state-unanswered{background:#ececec;color:#666;border-color:#ddd}
.sand-state-yes{background:#b6d7a8;color:#274e13;border-color:#93c47d}
.sand-state-if_needed{background:#ffe599;color:#7f6000;border-color:#f1c232}
.sand-state-no{background:#f4cccc;color:#7f1d1d;border-color:#e06666}
.sand-state-button:disabled{cursor:not-allowed;opacity:.75}
.sand-response-compact{position:relative}
.sand-response-popover{position:absolute;right:0;top:calc(100% + 6px);z-index:100;background:#fff;border:1px solid #dcdcde;border-radius:9px;padding:7px;display:flex;gap:6px;box-shadow:0 8px 30px rgba(0,0,0,.18)}
.sand-response-popover[hidden]{display:none!important}

/* Admin response table filtering/sorting */
.sand-response-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0 16px;padding:12px;background:#f6f7f7;border-radius:9px}
.sand-response-filters label{display:flex;flex-direction:column;gap:4px;font-size:.88rem;font-weight:600}
.sand-response-filters input,.sand-response-filters select{width:100%;padding:6px}
.sand-sort{border:0;background:transparent;padding:0;font:inherit;font-weight:700;cursor:pointer;text-align:left}
.sand-response-table tr[hidden]{display:none}

/* Stronger access/interaction layout */
.sand-answer-list{margin-top:10px}
.sand-current-events .sand-slot{grid-template-columns:64px 105px minmax(180px,1fr) minmax(90px,auto)}
@media(max-width:760px){
  .sand-current-events .sand-slot{grid-template-columns:55px 85px 1fr}
  .sand-current-events .sand-slot-control{grid-column:1/-1}
  .sand-response-popover{left:0;right:auto}
  .sand-commitment-table{min-width:720px}
}


/* v1.4 refinements */
.sand-event-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:12px 0 16px;padding:12px;background:#f6f7f7;border-radius:9px}
.sand-event-filters label{display:flex;flex-direction:column;gap:4px;font-size:.88rem;font-weight:600}
.sand-event-filters input,.sand-event-filters select{width:100%;padding:6px}
.sand-duration-error{background:#fce8e6!important;color:#8a1c1c!important;border:1px solid #e5a4a0!important}
.sand-danger-zone{margin-top:24px;padding-top:16px;border-top:1px solid #e5a4a0}
.sand-danger-zone h5{margin:.2rem 0;color:#8a1c1c}
.sand-cert-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.sand-cert-badges span{display:inline-block;padding:2px 6px;border-radius:999px;background:#f0f0f1;font-size:.78rem;font-weight:600}
.sand-question-summary{margin-bottom:5px}

/* My SanD: tighter rows, including mobile */
.sand-slot{padding:0!important}
.sand-current-events .sand-slot{grid-template-columns:55px 55px minmax(130px,1fr) minmax(58px,auto)!important}
.sand-slot-time{width:55px}
.sand-slot-confirmed{background:#edf7e8}
.sand-slot-confirmed:hover{background:#e4f2dd}

/* Availability: lighter unselected tones, stronger same-family hover, clear selected border */
.sand-response-button{border-width:1px!important;box-shadow:none;opacity:1}
.sand-response-yes{background:#f2f8ee!important;border-color:#d6e9cb!important;color:#365b2d!important}
.sand-response-if_needed{background:#fff9e8!important;border-color:#f5e5a9!important;color:#745f17!important}
.sand-response-no{background:#fdf0f0!important;border-color:#efc8c8!important;color:#7a3030!important}
.sand-response-yes:hover{background:#dcefd3!important;border-color:#a7cf95!important}
.sand-response-if_needed:hover{background:#ffefb8!important;border-color:#e5c95f!important}
.sand-response-no:hover{background:#f5d2d2!important;border-color:#dd8e8e!important}
.sand-response-yes.is-selected{background:#c9e6bc!important;border:3px solid #5e9e47!important;color:#244b1b!important}
.sand-response-if_needed.is-selected{background:#ffe28a!important;border:3px solid #c29d19!important;color:#664f00!important}
.sand-response-no.is-selected{background:#efb2b2!important;border:3px solid #b64242!important;color:#681818!important}

.sand-state-button{transition:background .15s ease,border-color .15s ease,transform .15s ease}
.sand-state-yes:hover{background:#9ecb8b}
.sand-state-if_needed:hover{background:#f4d96f}
.sand-state-no:hover{background:#eaa0a0}
.sand-state-unanswered:hover{background:#d9d9d9}
.sand-slot-confirmed .sand-state-button{box-shadow:0 0 0 2px rgba(76,120,51,.12)}

@media(max-width:760px){
  .sand-current-events .sand-slot{grid-template-columns:44px 55px minmax(90px,1fr) 58px!important;gap:6px!important;align-items:center}
  .sand-current-events .sand-slot-control{grid-column:4!important;grid-row:1!important}
  .sand-current-events .sand-slot-info{grid-column:3!important;grid-row:1!important}
  .sand-current-events .sand-slot-date{grid-column:1!important;grid-row:1!important}
  .sand-current-events .sand-slot-time{grid-column:2!important;grid-row:1!important}
  .sand-state-button{width:52px;height:52px}
  .sand-dashboard-event{padding:10px 8px}
}


/* v1.5 compact planning / interaction refinements */
.sand-capacity{display:inline-flex;align-items:center;gap:.22rem;font-weight:600}
.sand-capacity span{font-size:1em;line-height:1}

/* Keep primary actions readable even when the site's theme has aggressive link-hover rules. */
.samariter-sand .sand-button.sand-primary,
.samariter-sand a.sand-button.sand-primary{background:#2271b1!important;border-color:#2271b1!important;color:#fff!important;text-decoration:none!important}
.samariter-sand .sand-button.sand-primary:hover,
.samariter-sand .sand-button.sand-primary:focus,
.samariter-sand a.sand-button.sand-primary:hover,
.samariter-sand a.sand-button.sand-primary:focus{background:#135e96!important;border-color:#135e96!important;color:#fff!important;text-decoration:none!important}

/* Dates-to-keep-free tooltip: visual detail without adding columns. */
.sand-time-tooltip{position:relative;font-weight:600;white-space:nowrap}
.sand-time-tooltip::after{content:attr(data-tooltip);position:absolute;left:0;bottom:calc(100% + 8px);z-index:10000;display:none;min-width:230px;max-width:min(330px,calc(100vw - 24px));padding:8px 10px;border-radius:7px;background:#1d2327;color:#fff;font-size:.82rem;font-weight:400;line-height:1.35;white-space:normal;box-shadow:0 6px 24px rgba(0,0,0,.2)}
.sand-time-tooltip:hover::after,.sand-time-tooltip:focus::after{display:block}
.sand-commitment-table th,.sand-commitment-table td{white-space:normal!important}
.sand-commitment-table th:first-child,.sand-commitment-table td:first-child{white-space:nowrap!important}

/* Quick availability popover is viewport-positioned by JS and must never affect page width. */
.sand-response-popover{z-index:999997!important;box-sizing:border-box;max-width:calc(100vw - 16px)!important;flex-wrap:wrap;overflow:visible}
.sand-response-popover .sand-response-button{white-space:nowrap}

/* Small count bubbles for Shifts and Comments. */
.sand-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.55rem;height:1.55rem;padding:0 .42rem;border-radius:999px;background:#f0f0f1;color:#3c434a;font-size:.78rem;font-weight:700;vertical-align:middle}

/* The four-column commitment table remains readable on narrow screens. */
@media(max-width:760px){
  .sand-commitment-table{min-width:0!important;width:100%;font-size:.82rem}
  .sand-commitment-table th,.sand-commitment-table td{padding:.45rem .35rem!important}
  .sand-commitment-table .sand-status{font-size:.72rem;white-space:nowrap}
  .sand-time-tooltip::after{display:none!important}
  .sand-response-popover{max-width:calc(100vw - 16px)!important}
}
