/* Saddlewood Calendar & RSVP — front-end styles */
:root {
	--swcal-orange:#f4a118; --swcal-orange-dark:#d98a06;
	--swcal-green:#2e9e4f; --swcal-green-dark:#1c7c38;
	--swcal-red:#c0392b; --swcal-red-dark:#a32626;
	--swcal-ink:#3a3535; --swcal-muted:#6b6b6b; --swcal-line:#e6e6e6;
}
.swcal-app{font-family:inherit;color:var(--swcal-ink);max-width:1000px;width:100%;display:block;margin-left:auto;margin-right:auto;box-sizing:border-box;}
.swcal-hide{display:none!important;}

/* toolbar */
.swcal-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border:1px solid var(--swcal-line);background:#fff;border-radius:12px;padding:14px 18px;margin-bottom:22px;}
.swcal-search{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;color:var(--swcal-muted);}
.swcal-search input{border:none;outline:none;font-size:15px;width:100%;background:transparent;color:var(--swcal-ink);}
.swcal-btn{border:none!important;cursor:pointer!important;font-weight:700!important;border-radius:8px!important;font-size:14px!important;padding:10px 18px!important;transition:.15s!important;text-decoration:none!important;display:inline-flex!important;align-items:center!important;gap:7px!important;line-height:1!important;}
.swcal-btn-primary{background:var(--swcal-orange)!important;color:#fff!important;}
.swcal-btn-primary:hover{background:var(--swcal-orange-dark)!important;color:#fff!important;}
.swcal-view-toggle{display:flex;border:1px solid var(--swcal-line);border-radius:8px;overflow:hidden;}
.swcal-view-toggle button{background:#fff;border:none;padding:9px 16px;font-size:13px;font-weight:700;cursor:pointer;color:var(--swcal-muted);}
.swcal-view-toggle button.active{background:var(--swcal-orange);color:#fff;}

/* date nav */
.swcal-datenav{display:flex;align-items:center;gap:14px;margin-bottom:18px;}
.swcal-arrow{width:34px;height:34px;border:1px solid var(--swcal-line);background:#fff;border-radius:8px;cursor:pointer;font-size:16px;color:var(--swcal-muted);display:flex;align-items:center;justify-content:center;}
.swcal-arrow:hover{border-color:var(--swcal-orange);color:var(--swcal-orange-dark);}
.swcal-today{border:1px solid var(--swcal-line);background:#fff;border-radius:8px;padding:7px 14px;font-size:13px;cursor:pointer;font-weight:600;color:var(--swcal-ink);}
.swcal-range{font-size:22px;font-weight:600;color:var(--swcal-ink);}

/* list view */
.swcal-list-month{font-size:13px;font-weight:700;color:var(--swcal-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--swcal-line);padding-bottom:8px;margin:26px 0 4px;}
.swcal-list-row{display:flex;gap:26px;padding:22px 0;border-bottom:1px solid #f0f0f0;cursor:pointer;text-decoration:none;color:inherit;}
.swcal-list-row:hover .swcal-list-title{color:var(--swcal-orange-dark);}
.swcal-list-date{flex-shrink:0;width:54px;text-align:center;}
.swcal-list-date .dow{font-size:11px;font-weight:700;color:var(--swcal-muted);text-transform:uppercase;letter-spacing:.5px;}
.swcal-list-date .dnum{font-size:30px;font-weight:800;color:var(--swcal-ink);line-height:1;}
.swcal-list-body{flex:1;}
.swcal-list-kicker{font-size:13px;color:var(--swcal-muted);margin-bottom:2px;}
.swcal-list-title{font-size:21px;font-weight:700;color:var(--swcal-orange);margin:0 0 6px;transition:.15s;}
.swcal-list-loc{font-size:14px;color:var(--swcal-ink);margin-bottom:8px;}
.swcal-list-desc{font-size:14px;color:#555;max-width:680px;}
.swcal-learn-more{color:var(--swcal-orange-dark);font-weight:600;white-space:nowrap;}
.swcal-badge{display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:13px;color:var(--swcal-green-dark);font-weight:600;background:#e9f6ee;padding:4px 10px;border-radius:999px;}
.swcal-prompt{display:inline-flex;align-items:center;gap:7px;margin-top:12px;font-size:14px;font-weight:700;color:var(--swcal-orange-dark);}
.swcal-prompt.responded{color:var(--swcal-green-dark);}
.swcal-prompt .arrow{transition:transform .15s;}
.swcal-list-row:hover .swcal-prompt .arrow{transform:translateX(3px);}

/* month view */
.swcal-grid{border:1px solid var(--swcal-line);border-radius:12px;overflow:hidden;background:#fff;}
.swcal-grid-head{display:grid;grid-template-columns:repeat(7,1fr);background:#faf7f2;}
.swcal-grid-head div{padding:12px 10px;font-size:12px;font-weight:700;color:var(--swcal-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--swcal-line);}
.swcal-grid-body{display:grid;grid-template-columns:repeat(7,1fr);}
.swcal-cell{min-height:118px;border-right:1px solid #f0f0f0;border-bottom:1px solid #f0f0f0;padding:8px;}
.swcal-cell:nth-child(7n){border-right:none;}
.swcal-cell.other{background:#fafafa;}
.swcal-cell-num{font-size:13px;font-weight:600;color:var(--swcal-muted);margin-bottom:6px;}
.swcal-cell.today .swcal-cell-num{background:var(--swcal-orange);color:#fff;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.swcal-chip{display:block;font-size:12px;font-weight:600;background:#fef0d6;color:var(--swcal-orange-dark);border-left:3px solid var(--swcal-orange);border-radius:4px;padding:3px 6px;margin-bottom:4px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;}
.swcal-chip:hover{background:var(--swcal-orange);color:#fff;}

.swcal-empty{color:var(--swcal-muted);padding:40px 0;text-align:center;font-size:15px;}

/* event meta on single page */
.swrsvp-eventmeta{margin:18px 0 6px;}
.swrsvp-eventmeta p{margin:2px 0;color:var(--swcal-muted);font-size:15px;}

/* Add to Google Calendar button */
.swcal-gcal-btn{display:inline-flex;align-items:center;gap:9px;margin:12px 0 20px;padding:12px 22px;border:none;border-radius:10px;background:var(--swcal-orange);color:var(--swcal-ink);font-size:.95rem;font-weight:700;text-decoration:none;transition:all .15s ease;line-height:1;cursor:pointer;}
.swcal-gcal-btn:hover{background:var(--swcal-orange-dark);color:var(--swcal-ink);transform:translateY(-1px);box-shadow:0 4px 12px rgba(244,161,24,.35);text-decoration:none;}

/* RSVP widget */
.swrsvp-box{margin:30px 0 8px;padding:24px 26px;border:1px solid var(--swcal-line);border-radius:12px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.04);max-width:580px;font-family:inherit;color:var(--swcal-ink);}
.swrsvp-title{margin:0 0 16px;font-size:1.2rem;font-weight:700;color:var(--swcal-ink);}
.swrsvp-buttons{display:flex;flex-wrap:wrap;gap:10px;}
.swrsvp-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border:2px solid var(--swcal-line);border-radius:999px;background:#fff;color:var(--swcal-ink);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .15s ease;line-height:1;}
.swrsvp-btn:hover{transform:translateY(-1px);box-shadow:0 3px 8px rgba(0,0,0,.08);}
.swrsvp-btn .chk{font-weight:700;opacity:.55;}
.swrsvp-btn-yes:hover{border-color:var(--swcal-green);}
.swrsvp-btn-tentative:hover{border-color:var(--swcal-orange);}
.swrsvp-btn-no:hover{border-color:var(--swcal-red);}
.swrsvp-btn-yes.is-active{background:var(--swcal-green);border-color:var(--swcal-green);color:#fff;}
.swrsvp-btn-tentative.is-active{background:var(--swcal-orange);border-color:var(--swcal-orange);color:#fff;}
.swrsvp-btn-no.is-active{background:var(--swcal-red);border-color:var(--swcal-red);color:#fff;}
.swrsvp-btn.is-active .chk{opacity:1;}
.swrsvp-btn:disabled{opacity:.6;cursor:default;transform:none;box-shadow:none;}
.swrsvp-status{min-height:1.2em;margin:14px 0 0;font-size:.9rem;color:var(--swcal-green-dark);}
.swrsvp-status.is-error{color:var(--swcal-red-dark);}
.swrsvp-login{margin:0 0 8px;color:var(--swcal-muted);}
.swrsvp-login a{color:var(--swcal-orange-dark);font-weight:700;}
.swrsvp-adminhint{margin:12px 0 0;font-size:12.5px;color:var(--swcal-muted);background:#f7f4ee;border:1px solid var(--swcal-line);border-radius:8px;padding:7px 11px;}

/* guest RSVP form (logged-out) */
.swrsvp-guestform{margin-top:16px;padding:16px 18px;border:1px solid var(--swcal-line);border-radius:10px;background:#faf8f3;}
.swrsvp-guestform-intro{margin:0 0 12px;font-weight:700;font-size:14px;color:var(--swcal-ink);}
.swrsvp-gf-field{margin-bottom:12px;}
.swrsvp-gf-field label{display:block;font-size:13px;font-weight:600;color:var(--swcal-ink);margin-bottom:5px;}
.swrsvp-gf-field .req{color:var(--swcal-red);}
.swrsvp-gf-field input{width:100%;border:1px solid var(--swcal-line);border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;color:var(--swcal-ink);outline:none;box-sizing:border-box;background:#fff;}
.swrsvp-gf-field input:focus{border-color:var(--swcal-orange);box-shadow:0 0 0 1px var(--swcal-orange);}
.swrsvp-gf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.swrsvp-gf-actions{display:flex;align-items:center;gap:14px;margin-top:6px;}
.swrsvp-gf-cancel{background:none;border:none;color:var(--swcal-muted);font-size:13px;cursor:pointer;text-decoration:underline;}
.swrsvp-gf-cancel:hover{color:var(--swcal-ink);}
.swrsvp-gf-or{margin:12px 0 0;font-size:13px;color:var(--swcal-muted);}
.swrsvp-gf-or a{color:var(--swcal-orange-dark);font-weight:700;}

/* tally */
.swrsvp-tally{display:flex;flex-wrap:wrap;gap:18px;margin-top:18px;padding-top:16px;border-top:1px solid var(--swcal-line);font-size:.9rem;color:var(--swcal-muted);}
.swrsvp-tally-item strong{color:var(--swcal-ink);font-size:1.05rem;margin-right:3px;}
.swrsvp-tally-item.y strong{color:var(--swcal-green-dark);}
.swrsvp-tally-item.t strong{color:var(--swcal-orange-dark);}
.swrsvp-tally-item.n strong{color:var(--swcal-red-dark);}
.swrsvp-tally-item.clickable{cursor:pointer;border:1px solid transparent;border-radius:8px;padding:4px 10px;margin:-4px -2px;transition:.15s;user-select:none;}
.swrsvp-tally-item.clickable:hover{background:#faf8f3;border-color:var(--swcal-line);}
.swrsvp-tally-item.clickable.open{background:#f3f0e9;border-color:var(--swcal-line);}
.swrsvp-tally-item .caret{font-size:10px;margin-left:5px;opacity:.55;}

/* names */
.swrsvp-names-inner{margin-top:14px;border-top:1px dashed var(--swcal-line);padding-top:14px;}
.swrsvp-names-loading{margin-top:14px;color:var(--swcal-muted);font-size:13px;}
.swrsvp-names-head{font-size:13px;font-weight:700;color:var(--swcal-ink);margin:0 0 8px;display:flex;align-items:center;gap:7px;}
.swrsvp-names-head .dot{width:9px;height:9px;border-radius:50%;display:inline-block;}
.swrsvp-names-head .dot.y{background:var(--swcal-green);}
.swrsvp-names-head .dot.t{background:var(--swcal-orange);}
.swrsvp-names-head .dot.n{background:var(--swcal-red);}
.swrsvp-names-inner ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 14px;}
.swrsvp-names-inner li{font-size:13.5px;color:#444;padding:3px 0;border-bottom:1px solid #f4f4f4;}
.swrsvp-none{font-size:13px;color:var(--swcal-muted);font-style:italic;}
.swrsvp-guesttag{font-size:10px;background:#e7e9ee;color:#556;border-radius:4px;padding:1px 5px;margin-left:4px;vertical-align:middle;}
.swrsvp-guest-addr{display:block;font-size:12px;color:var(--swcal-muted);margin-top:2px;}

@media(max-width:600px){
	.swcal-cell{min-height:74px;}
	.swcal-chip{font-size:0;padding:4px;}
	.swcal-chip::before{content:"\2022";font-size:14px;}
	.swrsvp-buttons{flex-direction:column;}
	.swrsvp-btn{justify-content:center;width:100%;}
}

/* ===== Add Event modal ===== */
.swcal-btn-ghost{background:#fff;border:1px solid var(--swcal-line);color:var(--swcal-ink);}
.swcal-btn-ghost:hover{border-color:var(--swcal-orange);color:var(--swcal-orange-dark);}
.swcal-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:flex-start;justify-content:center;z-index:99999;padding:40px 16px;overflow-y:auto;}
.swcal-modal-overlay.open{display:flex;}
.swcal-modal{background:#fff;border-radius:14px;width:100%;max-width:560px;box-shadow:0 20px 60px rgba(0,0,0,.25);overflow:hidden;font-family:inherit;color:var(--swcal-ink);}
.swcal-modal-head{padding:18px 24px;border-bottom:1px solid var(--swcal-line);display:flex;align-items:center;}
.swcal-modal-head h3{margin:0;font-size:20px;font-weight:700;}
.swcal-modal-close{margin-left:auto;background:none;border:none;font-size:26px;line-height:1;cursor:pointer;color:var(--swcal-muted);padding:0 4px;}
.swcal-modal-close:hover{color:var(--swcal-ink);}
.swcal-modal-body{padding:22px 24px;}
.swcal-field{margin-bottom:16px;}
.swcal-field label{display:block;font-size:13px;font-weight:700;color:var(--swcal-ink);margin-bottom:6px;}
.swcal-field .req{color:var(--swcal-red);}
.swcal-field input,.swcal-field textarea{width:100%!important;border:1px solid var(--swcal-line)!important;border-radius:8px!important;padding:10px 12px!important;font-size:14px!important;font-family:inherit!important;color:var(--swcal-ink)!important;outline:none!important;box-sizing:border-box!important;background:#fff!important;box-shadow:none!important;}
.swcal-field input:focus,.swcal-field textarea:focus{border-color:var(--swcal-orange)!important;box-shadow:0 0 0 1px var(--swcal-orange)!important;}
.swcal-field textarea{resize:vertical;min-height:90px;}
.swcal-checkfield{display:flex;align-items:flex-start;gap:10px;background:#f7f4ee;border:1px solid #f0e6cf;border-radius:8px;padding:12px 14px;}
.swcal-checkfield input{width:auto;margin-top:3px;}
.swcal-checkfield label{font-size:14px;font-weight:700;color:var(--swcal-ink);margin:0;cursor:pointer;}
.swcal-checkdesc{display:block;font-weight:400;color:var(--swcal-muted);font-size:13px;margin-top:2px;}
.swcal-field-row{display:flex;gap:14px;}
.swcal-field-row .swcal-field{flex:1;}
.swcal-modal-error{margin:4px 0 0;color:var(--swcal-red-dark);font-size:13px;min-height:1em;}
.swcal-modal-foot{padding:16px 24px;border-top:1px solid var(--swcal-line);display:flex!important;gap:12px;justify-content:flex-end;background:#fff;}
.swcal-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--swcal-green-dark);color:#fff;padding:12px 22px;border-radius:10px;font-size:14px;font-weight:600;box-shadow:0 6px 24px rgba(0,0,0,.2);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:100000;}
.swcal-toast.show{opacity:1;transform:translateX(-50%) translateY(-4px);}
.swcal-toast.err{background:var(--swcal-red-dark);}
@media(max-width:600px){.swcal-field-row{flex-direction:column;gap:0;}}

/* inline SVG icons — keep crisp and vertically centred in non-flex contexts */
.swcal-list-loc svg,.swrsvp-when svg,.swrsvp-where svg,.swrsvp-adminhint svg{vertical-align:middle;flex-shrink:0;}

/* Single event page — spacing so content clears a fixed/sticky header */
.swcal-event-content{padding-top:120px;padding-bottom:100px;}
@media(max-width:768px){.swcal-event-content{padding-top:80px;padding-bottom:60px;}}
.swcal-event-title{font-size:2rem;font-weight:700;margin:0 0 18px;line-height:1.25;color:var(--swcal-ink,#3a3535);}
@media(max-width:768px){.swcal-event-title{font-size:1.5rem;}}
