:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:#172033;background:#f3f5fa;line-height:1.45}*{box-sizing:border-box}body{margin:0}.container{width:min(1120px,calc(100% - 32px));margin:26px auto 60px}.brand{display:flex;align-items:baseline;gap:12px;margin-bottom:34px}.brand a{font-weight:900;font-size:1.45rem;color:#315efb;text-decoration:none}.brand span,.muted,.optional{color:#6e7789}.card{background:#fff;border:1px solid #e7eaf1;border-radius:18px;padding:26px;margin-bottom:24px;box-shadow:0 12px 38px rgba(36,49,84,.07)}.hero{max-width:760px;margin:70px auto;padding:54px}.hero h1,.success-card h1{font-size:clamp(2.2rem,6vw,4.3rem);line-height:1;margin:.15em 0}.lead{font-size:1.15rem;color:#626d81;max-width:600px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-weight:900;font-size:.75rem;color:#315efb;margin:0}.hidden{display:none!important}.narrow{max-width:480px;margin:80px auto}.topbar,.section-header,.hero-actions,.copy-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.topbar{margin-bottom:22px}.hero-actions{justify-content:flex-start;margin-top:28px}.section-header{margin-top:28px}.section-header h2{margin-bottom:2px}h1,h2{margin-top:0}h2{font-size:1.1rem;margin-top:26px}label{display:grid;gap:7px;font-weight:750;margin-bottom:15px}input{width:100%;padding:12px 13px;border:1px solid #cfd6e4;border-radius:10px;font:inherit;background:#fff}input:focus{outline:3px solid rgba(49,94,251,.14);border-color:#315efb}button{border:0;border-radius:10px;padding:12px 17px;background:#315efb;color:#fff;font:inherit;font-weight:800;cursor:pointer}button:hover{filter:brightness(.97)}button.secondary{background:#e9edf5;color:#273248}button.danger{background:#ffe8e8;color:#9c2525}.grid.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.weekday-grid{display:flex;flex-wrap:wrap;gap:9px}.weekday-grid label{display:flex;align-items:center;background:#f1f3f8;padding:9px 12px;border-radius:9px;margin:0}.weekday-grid input{width:auto}.blocked-row{display:grid;grid-template-columns:170px 1fr auto;gap:9px;margin-bottom:9px}.copy-row input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.copy-row button{flex:0 0 auto}.inline-form{margin-top:24px;padding-top:22px;border-top:1px solid #e9ecf3}.success-card{max-width:820px;margin:40px auto}.message{min-height:1.5em;font-weight:750;color:#315efb}.legend{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.legend span{padding:6px 10px;border-radius:999px;font-size:.86rem;font-weight:800}.yes{background:#dff5e7}.maybe{background:#fff0bd}.no{background:#ffe1e1}.blocked{background:#e5e8ee}.calendar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:12px;margin-bottom:22px}.date-card{border:1px solid #dfe4ee;border-radius:13px;padding:14px}.date-card strong{display:block;margin-bottom:10px}.date-card.is-blocked{background:#f0f2f5;color:#717989}.choice-row{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:6px}.choice-row button{padding:8px 5px;background:#edf0f5;color:#344057;font-size:.8rem}.choice-row [data-value=yes].selected{background:#29945a;color:#fff}.choice-row [data-value=maybe].selected{background:#c98a15;color:#fff}.choice-row [data-value=no].selected{background:#d64545;color:#fff}.summary-table{display:grid;grid-template-columns:minmax(150px,2fr) repeat(3,minmax(80px,1fr));border:1px solid #e1e5ed;border-radius:11px;overflow:auto}.summary-table>div{padding:11px;border-bottom:1px solid #e9ecf2;min-width:0}.summary-head{font-weight:850;background:#f3f5f9}.summary-table small{display:block;color:#70798b;margin-top:3px;white-space:normal}.optional{font-weight:500;font-size:.85rem}@media(max-width:680px){.container{width:min(100% - 20px,1120px)}.hero{margin:25px auto;padding:30px 22px}.grid.two,.blocked-row{grid-template-columns:1fr}.topbar,.section-header{align-items:flex-start}.copy-row{align-items:stretch}.copy-row input{min-width:0}.summary-table{font-size:.86rem}.summary-table>div{padding:8px}.choice-row{grid-template-columns:1fr}.hero-actions{flex-wrap:wrap}}
.blocked-range-row{display:grid;grid-template-columns:170px 170px 1fr auto;gap:9px;margin-bottom:9px}.months{display:flex;flex-direction:column;gap:18px;margin:18px 0 24px;width:100%}.month-calendar{border:1px solid #dfe4ee;border-radius:14px;padding:14px;background:#fff;width:100%;overflow:hidden}.month-calendar h2{text-transform:capitalize;text-align:center;margin:0 0 10px;font-size:1rem}.weekday-header,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;width:100%}.weekday-header span{text-align:center;font-size:.7rem;font-weight:850;color:#727b8d;padding-bottom:4px}.calendar-spacer{min-height:58px}.calendar-day{min-height:58px;border:1px solid #e2e6ee;border-radius:8px;padding:4px;display:flex;flex-direction:column;justify-content:space-between;background:#fff}.calendar-day.is-disabled{background:#eceff3;color:#939aa6}.calendar-day.is-blocked{background:#dfe3e9;color:#737b88}.calendar-day.is-outside{opacity:.35}.day-number{font-size:.76rem;font-weight:850}.symbol-row{display:flex;justify-content:center;gap:3px}.vote-symbol{width:20px;height:20px;min-width:20px;padding:0;border-radius:5px;background:#edf0f5;color:#344057;font-size:.72rem;line-height:20px}.vote-symbol[data-value=yes].selected{background:#29945a;color:#fff}.vote-symbol[data-value=maybe].selected{background:#c98a15;color:#fff}.vote-symbol[data-value=no].selected{background:#d64545;color:#fff}.vote-symbol:disabled{opacity:.42;cursor:not-allowed;filter:none}.calendar-day.is-disabled .symbol-row,.calendar-day.is-blocked .symbol-row,.calendar-day.is-outside .symbol-row{opacity:.8}.blocked-mark{font-size:.58rem;text-align:center;color:#7d8591;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend{position:sticky;top:0;z-index:2;background:#fff;padding:8px 0}
@media(max-width:680px){.blocked-range-row{grid-template-columns:1fr 1fr}.blocked-range-row .blocked-text,.blocked-range-row button{grid-column:1/-1}.months{grid-template-columns:1fr}.calendar-day,.calendar-spacer{min-height:52px}.vote-symbol{width:18px;height:18px;min-width:18px;font-size:.68rem;line-height:18px}.month-calendar{padding:9px}.weekday-header,.month-grid{gap:2px}}

/* Week numbers and view toggle */
.vote-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:3;background:#fff;padding:8px 0}.vote-toolbar .legend{position:static;padding:0}.view-toggle{display:flex;gap:6px}.view-toggle button{padding:7px 11px;font-size:.82rem}.view-toggle button.active{background:#344057;color:#fff;border-color:#344057}.weekday-header,.calendar-week-row{display:grid;grid-template-columns:42px repeat(7,minmax(0,1fr));gap:4px;width:100%}.calendar-week-row{margin-top:4px}.week-number{min-height:58px;border-radius:8px;background:#f3f5f8;color:#737b88;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:850}.compact-month{border:1px solid #dfe4ee;border-radius:14px;padding:16px;background:#fff;margin:18px 0}.compact-month>h2{text-transform:capitalize;text-align:center;margin:0 0 14px}.compact-week{border-top:1px solid #e5e8ee;padding-top:12px;margin-top:12px}.compact-week h3{font-size:.82rem;color:#687286;margin:0 0 7px}.compact-days{display:flex;flex-direction:column;gap:5px}.compact-day{display:grid;grid-template-columns:minmax(130px,180px) 92px 1fr;align-items:center;gap:10px;border:1px solid #e2e6ee;border-radius:8px;padding:7px 10px;background:#fff}.compact-day.is-disabled{background:#eceff3;color:#939aa6}.compact-day.is-blocked{background:#dfe3e9;color:#737b88}.compact-day.is-outside{opacity:.35}.compact-date{text-transform:capitalize;font-size:.88rem;font-weight:750}.compact-day .symbol-row{justify-content:flex-start}.compact-reason{font-size:.74rem;color:#7d8591;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:680px){.vote-toolbar{align-items:flex-start;flex-direction:column}.weekday-header,.calendar-week-row{grid-template-columns:30px repeat(7,minmax(0,1fr));gap:2px}.week-number{min-height:52px;font-size:.62rem}.compact-day{grid-template-columns:1fr auto}.compact-reason{grid-column:1/-1}.view-toggle{width:100%}.view-toggle button{flex:1}}

.view-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.compact-options{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:750;white-space:nowrap}.compact-options input{width:auto;margin:0}
@media(max-width:680px){.view-controls{width:100%;align-items:stretch;flex-direction:column}.compact-options{justify-content:flex-end}}
