:root{color-scheme:light;--ink: #171717;--muted: #626262;--line: #d8d8d8;--line-strong: #c7cdd1;--paper: #ffffff;--field: #f5f7f8;--primary: #ECB8BD;--primary-dark: #d88f99;--primary-soft: #fff1f3;--blue: #174ea6;--blue-dark: #0f3d85;--red: #c74343;--yellow: #d99922;--teal: #0b7285}*{box-sizing:border-box}html{width:100%;max-width:100%;overflow-x:hidden}body{margin:0;width:100%;max-width:100%;min-height:100vh;background:#fff7f8;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0;overflow-x:hidden;overscroll-behavior-x:none}button,input,select{font:inherit;letter-spacing:0}a{color:inherit}.shell{width:min(1120px,calc(100% - 32px));max-width:100%;min-width:0;overflow-x:hidden;margin:0 auto;padding:32px 0 56px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}.brand{display:inline-flex;align-items:center;gap:12px;color:var(--ink);font-weight:760;text-decoration:none}.brand-mark{width:42px;height:42px;display:block;flex:0 0 auto}.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}.brand-name{font-weight:820;letter-spacing:.05em;text-transform:uppercase}.brand-pinky{color:var(--primary)}.intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);gap:28px;align-items:stretch;margin-bottom:26px}.intro-copy{padding:18px 0}.eyebrow{margin:0 0 10px;color:#9b4f5b;font-size:.92rem;font-weight:760}h1,h2,h3,p{overflow-wrap:anywhere}.sr-only{position:absolute;inset:0 auto auto 0;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;clip-path:inset(50%)}h1{max-width:12ch;margin:0 0 16px;font-size:clamp(2.25rem,4vw,4.85rem);line-height:.96;letter-spacing:0}h2{margin:0 0 18px;font-size:1.5rem}h3{margin:0 0 10px;font-size:1.05rem}.lead{max-width:56ch;margin:0;color:#313131;font-size:1.12rem;line-height:1.6}.intro-image{min-height:270px;border-radius:8px;overflow:hidden;background:#d7e1de}.intro-image img{width:100%;height:100%;min-height:270px;object-fit:cover;display:block}.panel{min-width:0;max-width:100%;overflow-x:hidden;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:24px;box-shadow:0 16px 40px #17171714}.stack{display:grid;gap:16px}.field{display:grid;gap:8px}.field span,.slot-label{color:#2d2d2d;font-size:.95rem;font-weight:700}input[type=text],input[type=datetime-local],input[type=date],input[type=time]{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:6px;background:var(--field);color:var(--ink);padding:10px 12px}input:focus,select:focus,button:focus-visible{outline:3px solid rgb(236 184 189 / 55%);outline-offset:2px}.slot-list{display:grid;gap:10px}.slot-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.response-actions{justify-content:flex-end}.button{min-height:44px;border:1px solid transparent;border-radius:6px;cursor:pointer;padding:10px 16px;color:var(--ink);background:var(--primary);font-weight:760}.button:hover{background:var(--primary-dark)}.button.secondary{color:var(--ink);border-color:#bcc8c3;background:#fff}.button.secondary:hover{background:var(--primary-soft)}.button.danger{color:var(--red);border-color:#e1b6b6;background:#fff}.button:disabled{cursor:not-allowed;opacity:.45}.small-button{min-height:38px;padding:7px 12px}.icon-button,.icon-only{display:inline-grid;place-items:center}.icon-button{width:38px;height:38px;border:1px solid var(--line-strong);border-radius:4px;background:#fff;color:var(--blue);cursor:pointer;font-size:1.65rem;line-height:1}.icon-button:hover{background:#f6f8fb}.icon-only{width:42px;min-height:42px;padding:0;font-size:1.35rem}.align-end{justify-content:flex-end}.time-builder{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(360px,1.15fr);gap:24px;align-items:start;border:1px solid #e5e5e5;border-radius:8px;padding:22px;background:#fcfcfd}.calendar-panel,.selected-panel{min-width:0}.calendar-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:26px}.calendar-nav{display:inline-flex;gap:8px}.calendar-heading{font-size:1rem}.weekday-row,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.weekday-row{margin-bottom:14px;color:#5d6166;font-weight:760;text-align:center}.calendar-grid{min-height:276px}.calendar-spacer,.calendar-day{aspect-ratio:1}.calendar-day{width:100%;border:1px solid transparent;border-radius:999px;background:transparent;color:#4e5257;cursor:pointer;font-weight:760}.calendar-day:hover{border-color:var(--primary-dark);color:#9b4f5b}.calendar-day.is-today{color:#9b4f5b;background:var(--primary-soft)}.calendar-day.is-selected{color:#fff;background:#c74343}.calendar-day.is-selected:hover{background:#9f3131}.selected-panel{border:1px solid #dfdfdf;border-radius:8px;padding:18px;background:#fff}.selected-header{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:16px}.selected-dates{display:flex;flex-wrap:wrap;gap:8px;min-height:40px;margin-bottom:18px}.selected-date{display:inline-flex;align-items:center;gap:8px;min-height:36px;border:1px solid var(--primary);border-radius:999px;background:var(--primary-soft);color:#6f303a;cursor:pointer;padding:7px 11px;font-weight:760}.selected-date:hover{background:#ffe6ea}.empty-state{margin:0;color:var(--muted)}.period-card{border:1px solid #e5e5e5;border-radius:8px;padding:16px;background:#fbfbfc}.period-card h3{margin-bottom:8px}.period-card .muted{margin:0 0 14px}.period-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.period-option{display:grid;justify-items:center;align-content:center;gap:8px;min-height:76px;border:1px solid #d4dad7;border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;padding:12px;text-align:center}.period-option:hover{border-color:var(--primary-dark);background:var(--primary-soft)}.period-option.is-selected{border-color:var(--primary-dark);background:var(--primary);box-shadow:inset 0 0 0 1px var(--primary-dark)}.period-name,.period-time{display:block}.period-name{font-weight:800}.period-time{color:#5f3a40;font-size:.92rem}.option-summary{margin:14px 0 0;color:#5c3a3f;font-weight:700}.muted{color:var(--muted)}.notice{border-radius:8px;padding:12px 14px;background:var(--primary-soft);color:#7a3440}.notice.error{background:#fae8e8;color:#8f2525}.result{display:none;margin-top:20px}.result.is-visible{display:grid;gap:12px}.link-box{display:grid;gap:8px}.link-box input{color:var(--ink);background:#fff}.poll-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start;margin-bottom:24px}.poll-title{max-width:16ch}.admin-panel{margin-bottom:20px}.admin-form{display:grid;gap:16px}.admin-header,.admin-section-header,.danger-zone{display:flex;justify-content:space-between;gap:16px;align-items:start}.admin-header h2,.admin-section-header h3,.danger-zone h3{margin-bottom:0}.admin-slot-grid{display:grid;gap:10px;min-width:0}.admin-slot-heading,.admin-slot-row{display:grid;grid-template-columns:minmax(150px,.8fr) repeat(4,minmax(98px,1fr));gap:10px;align-items:stretch}.admin-slot-row{border:1px solid #e2e7e5;border-radius:8px;padding:12px;background:#fff}.admin-date-field{align-self:stretch;min-width:0}.admin-date-field span{margin-bottom:8px}.admin-date-field input{min-width:0}.admin-period-button{display:grid;gap:6px;justify-items:center;align-content:center;min-width:0;min-height:70px;border:1px solid #d9e0dd;border-radius:8px;background:#f8f9f9;color:#40504a;cursor:pointer;padding:8px;text-align:center}.admin-period-button:hover{border-color:var(--primary-dark);background:var(--primary-soft)}.admin-period-button.is-active{border-color:#e1b6b6;background:#fff6f6;color:var(--red)}.admin-period-button .period-window,.admin-period-icon{display:none}.danger-zone{border-top:1px solid #edf0ef;margin-top:18px;padding-top:18px}.danger-zone .muted{margin:6px 0 0}.poll-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}.availability-grid{display:grid;gap:10px;min-width:0}.availability-heading,.availability-row{display:grid;grid-template-columns:minmax(118px,.8fr) repeat(4,minmax(118px,1fr));gap:10px;align-items:stretch}.availability-heading{color:#5d6166;font-size:.9rem;font-weight:760}.availability-heading>span:first-child{align-self:end}.period-label{display:grid;gap:2px;justify-items:center;min-width:0;overflow:hidden;text-align:center}.period-name-short{display:none}.period-window{color:#6f7773;font-size:.78rem;font-weight:650;line-height:1.15}.availability-row{border-top:1px solid #edf0ef;padding-top:10px}.availability-date{align-self:center}.availability-cell{min-width:0;min-height:54px;border:1px solid #e2e7e5;border-radius:8px;background:#fff;overflow:hidden}.availability-cell.is-empty{display:grid;place-items:center;color:#8a8f92;background:#f8f9f9;padding:8px}.vote-toggle{display:grid;gap:4px;justify-items:center;align-content:center;width:100%;min-height:52px;border:0;border-radius:0;background:#f8f9f9;color:#40504a;cursor:pointer;padding:8px;text-align:center;font-weight:760}.vote-toggle:hover{filter:brightness(.98)}.vote-toggle:focus-visible{outline-offset:-3px}.vote-toggle.vote-yes{color:#07513b;background:#dff3ec}.vote-toggle.vote-no{color:#852626;background:#fae5e5}.vote-toggle.vote-maybe{color:#714a00;background:#fff1d4}.vote-toggle-mark{display:grid;place-items:center;min-width:28px;min-height:28px;border-radius:999px;font-size:1.05rem;line-height:1}.vote-toggle-label{font-size:.88rem}.vote-row{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:12px;align-items:center;border-bottom:1px solid #edf0ef;padding-bottom:12px}select{min-height:42px;border:1px solid #c7d0cc;border-radius:6px;background:#fff;color:var(--ink);padding:8px 10px}.summary-list{display:grid;gap:10px}.results-table-wrap{width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;contain:inline-size;border:1px solid #e2e7e5;border-radius:8px;background:#fff}.results-table{width:100%;min-width:680px;border-collapse:separate;border-spacing:0}.results-table th,.results-table td{min-width:130px;border-right:1px solid #edf0ef;border-bottom:1px solid #edf0ef;padding:10px;text-align:left;vertical-align:top}.results-table thead th{color:#4d5552;background:#f8f9f9;font-size:.9rem;font-weight:760}.results-table .results-date-heading{color:#7c3f49;background:var(--primary-soft);text-align:center}.results-table thead tr:last-child th{background:#fff}.results-table tbody tr:last-child th,.results-table tbody tr:last-child td{border-bottom:0}.results-table th:last-child,.results-table td:last-child{border-right:0}.results-sticky-column{position:sticky;left:0;z-index:1;width:132px;min-width:132px;background:#fff;box-shadow:1px 0 #edf0ef}.results-table thead .results-sticky-column{z-index:2;background:#f8f9f9;vertical-align:bottom}.results-table .result-cell.is-empty{color:#8a8f92;background:#f8f9f9;text-align:center;vertical-align:middle}.results-table .result-cell{vertical-align:middle;text-align:center}.result-cell.vote-yes{color:#07513b;background:#dff3ec}.result-cell.vote-maybe{color:#714a00;background:#fff1d4}.result-cell.vote-no{color:#852626;background:#fae5e5}.vote-mark{display:inline-grid;place-items:center;min-width:28px;min-height:28px;font-size:1.1rem;font-weight:820}@media(max-width:820px){.intro,.time-builder,.poll-grid,.poll-header{grid-template-columns:1fr}h1{max-width:10ch}.poll-header .actions{justify-content:flex-start}.vote-grid{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.vote-grid .availability-heading,.vote-grid .availability-row{grid-template-columns:minmax(96px,1fr) repeat(4,minmax(92px,1fr));gap:6px;min-width:488px}.vote-grid .availability-heading{display:grid;font-size:.78rem}.vote-grid .availability-cell{min-height:48px}.vote-grid .availability-cell.is-empty{place-items:center}.vote-grid .vote-toggle{min-height:48px;padding:6px 4px}.vote-grid .vote-toggle-label{font-size:.78rem}}@media(max-width:560px){.shell{width:calc(100% - 20px);max-width:1120px;padding-top:20px}.panel{padding:18px}.slot-row,.poll-header,.vote-row,.period-options{grid-template-columns:1fr}.time-builder{padding:16px}.selected-header,.admin-header,.admin-section-header,.danger-zone{align-items:stretch;flex-direction:column}.admin-slot-heading{display:none}.admin-slot-grid{max-width:calc(100vw - 56px)}.admin-slot-row{grid-template-columns:minmax(0,1fr) repeat(4,38px);gap:6px;padding:8px}.admin-date-field span,.admin-period-button .period-label{display:none}.admin-period-button{min-height:44px;padding:6px}.admin-period-icon{display:grid;place-items:center;width:24px;height:24px;font-size:1.25rem;font-weight:820;line-height:1}.admin-period-icon:before{content:"+"}.admin-period-button.is-active .admin-period-icon:before{content:"×"}.admin-date-field input{font-size:.86rem;padding:8px 6px}.vote-grid .availability-heading,.vote-grid .availability-row{grid-template-columns:minmax(82px,1fr) repeat(4,minmax(88px,1fr));min-width:458px}.vote-grid .availability-date{font-size:.82rem;line-height:1.2}.vote-grid .availability-cell,.vote-grid .vote-toggle{min-height:42px}.vote-grid .vote-toggle-label{display:none}.vote-grid .vote-toggle-mark{min-width:24px;min-height:24px}}
