:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#14121b;--bg-raised:#18151f;--surface:#1e1b27;--surface-2:#231f33;--cell:#1b1824;--border:#3a3548;--border-soft:#2e2a3a;--text:#f1edf7;--text-2:#cfc8dc;--muted:#a9a2b8;--faint:#8c859b;--disabled:#5e5870;--accent:#9b87f5;--accent-soft:#2f2847;--accent-text:#cfc4ff;--on-accent:#14121b;--on-light:#17141f;--available:#8fe3c0;--maybe:#f2b65a;--unavailable:#f0889a;--warn-bg:#3a2e12;--warn-text:#fbe3b5;--danger-border:#5a3340;--badge-red:#e2667a;--radius:10px;--radius-lg:16px;--font-body:"Atkinson Hyperlegible", system-ui, sans-serif;--font-display:"Bricolage Grotesque", system-ui, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-body);margin:0;font-size:15px;line-height:1.45}a{color:#b9a9ff}a:hover{color:#d6ccff}button,input,textarea{font:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:28px;font-weight:800;line-height:1.15}.h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:24px;font-weight:800;line-height:1.2}.h3{margin:0;font-size:17px;font-weight:700}.small{font-size:13px}.muted{color:var(--muted)}.text-2{color:var(--text-2)}.strong{font-weight:700}.center{text-align:center}.grow{flex:1;min-width:0}.stack{flex-direction:column;gap:16px;display:flex}.stack-sm{flex-direction:column;gap:8px;display:flex}.row-between{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.page{max-width:1360px;margin:0 auto;padding:24px 32px 48px}.page.narrow{max-width:640px}.app-header{z-index:10;background:var(--bg-raised);border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:12px;padding:12px 32px;display:flex;position:sticky;top:0}.brand{color:var(--text);font-family:var(--font-display);align-items:center;gap:10px;font-size:18px;font-weight:800;text-decoration:none;display:flex}.brand:hover{color:var(--text)}.brand-large{font-size:26px}.header-actions{align-items:center;gap:12px;display:flex}.icon-btn{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;place-items:center;text-decoration:none;display:inline-grid;position:relative}.icon-btn:hover{color:var(--text);border-color:var(--muted)}.icon-btn-plain{color:var(--muted);background:0 0;border:none}.badge-count{background:var(--badge-red);min-width:20px;height:20px;color:var(--bg);border-radius:999px;place-items:center;padding:0 5px;font-size:12px;font-weight:700;display:grid;position:absolute;top:-6px;right:-6px}.btn{border-radius:var(--radius);border:1.5px solid var(--border);min-height:44px;color:var(--text);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--muted);color:var(--text)}.btn:disabled{cursor:not-allowed;color:var(--disabled);border-color:var(--border-soft)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{color:var(--on-accent);background:#ad9cf7;border-color:#ad9cf7}.btn-light{background:var(--text);border-color:var(--text);color:var(--on-light)}.btn-light:hover{color:var(--on-light)}.btn-danger{border-color:var(--danger-border);color:var(--unavailable)}.btn-danger:hover{border-color:var(--unavailable);color:var(--unavailable)}.btn-danger-solid{background:var(--unavailable);border-color:var(--unavailable);color:#2a0d13}.btn-danger-solid:hover{color:#2a0d13}.btn-warning{background:var(--maybe);border-color:var(--maybe);color:#2a1d05}.btn-warning:hover{color:#2a1d05}.btn-dashed{width:100%;min-height:48px;color:var(--text-2);border-style:dashed}.btn:focus-visible,.icon-btn:focus-visible,.input:focus-visible,.chip:focus-visible,.answer-btn:focus-visible,.session-row:focus-visible,.cell-add:focus-visible,.campaign-card:focus-visible,.notification:focus-visible,.back-link:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}.badge{border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:12px}.badge-accent{background:var(--accent-soft);color:var(--accent-text);border-color:#0000}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px}.input{border-radius:var(--radius);border:1.5px solid var(--border);background:var(--surface);width:100%;min-height:48px;color:var(--text);padding:10px 12px}textarea.input{resize:vertical;min-height:0}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--muted);font-size:13px}.form-actions,.inline-form{flex-wrap:wrap;gap:8px;display:flex}.inline-form .input{flex:220px;width:auto}.flash{color:var(--text-2);margin:0 0 12px}.full-page-message{min-height:60vh;color:var(--muted);text-align:center;place-items:center;padding:24px;display:grid}.sign-in-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:24px 16px;display:flex}.campaign-card{color:var(--text);flex-direction:column;gap:12px;text-decoration:none;display:flex}.campaign-card:hover{border-color:var(--accent);color:var(--text)}.campaign-card-name{font-family:var(--font-display);font-size:21px;font-weight:800}.next{border-radius:var(--radius);align-items:center;gap:10px;padding:10px 12px;display:flex}.next-confirmed{background:var(--text);color:var(--on-light)}.next-none{border:1.5px dashed var(--border);color:var(--muted)}.next-label{letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:700}.needs-answer{color:var(--maybe);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.dot{background:currentColor;border-radius:999px;width:8px;height:8px}.campaign-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.campaign-title-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.campaign-layout{flex-wrap:wrap;align-items:flex-start;gap:24px;display:flex}.month-section{flex:999 640px;min-width:0}.month-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.month-nav{align-items:center;gap:8px;display:flex}.month-title{text-align:center;min-width:9ch;font-family:var(--font-display);letter-spacing:-.02em;margin:0 6px;font-size:26px;font-weight:800}.month-admin{flex-wrap:wrap;gap:8px;display:flex}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin-bottom:12px;font-size:13px;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.swatch{border-radius:5px;width:16px;height:16px}.swatch-confirmed{background:var(--text)}.swatch-proposed{border:1.5px solid var(--accent)}.swatch-cancelled{border:1.5px dashed var(--disabled)}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.month-grid.weekdays{margin-bottom:6px}.weekday{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;font-size:12px;font-weight:700}.month-cell{background:var(--cell);border-radius:var(--radius);border:1px solid #2b2736;flex-direction:column;gap:6px;min-width:0;min-height:124px;padding:8px;display:flex}.month-cell.out .day-num{color:var(--disabled);font-weight:400}.month-cell.today .day-num{color:var(--accent-text);text-underline-offset:3px;text-decoration:underline}.cell-head{justify-content:space-between;align-items:center;min-height:28px;display:flex}.day-num{color:var(--text-2);font-size:13px;font-weight:700}.cell-add{border:1px dashed var(--border);width:28px;height:28px;color:var(--muted);cursor:pointer;opacity:0;background:0 0;border-radius:8px;place-items:center;display:grid}.month-cell:hover .cell-add,.cell-add:focus-visible{opacity:1}@media (hover:none){.cell-add{opacity:1}}.chip{text-align:left;width:100%;min-width:0;color:var(--text);cursor:pointer;background:0 0;border:1.5px solid #0000;border-radius:8px;flex-direction:column;gap:3px;padding:7px 8px;display:flex}.chip-label{letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:700}.chip-summary{font-size:12px}.chip-you{font-size:12px;font-weight:700}.chip-confirmed{background:var(--text);color:var(--on-light)}.chip-proposed{background:var(--surface-2);border-color:var(--accent)}.chip-proposed .chip-label{color:var(--accent-text)}.chip-proposed .chip-summary{color:var(--text-2)}.chip-cancelled{border:1.5px dashed var(--disabled);color:var(--faint)}.chip-cancelled .chip-label{text-decoration:line-through}.chip.selected,.session-row.selected{border-color:var(--accent-text);box-shadow:0 0 0 3px #9b87f559}.faded{opacity:.55}.tone-available{color:var(--available)}.tone-maybe{color:var(--maybe)}.tone-unavailable{color:var(--unavailable)}.tone-attention{color:var(--maybe)}.tone-none{color:var(--faint)}.chip-confirmed .chip-you,.session-row.chip-confirmed .chip-you{color:var(--on-light)}.month-mobile{display:none}.mini-month{background:var(--cell);border:1px solid #2b2736;border-radius:12px;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin-bottom:12px;padding:10px;display:grid}.mini-weekday{text-align:center;color:var(--faint);padding-bottom:4px;font-size:11px;font-weight:700}.mini-day{height:34px;color:var(--text-2);border-radius:8px;place-items:center;font-size:13px;display:grid}.mini-day.out{color:#4a445a}.mini-day.has-confirmed{background:var(--text);color:var(--on-light);font-weight:700}.mini-day.has-proposed{border:1.5px solid var(--accent);color:var(--text);font-weight:700}.mini-day.has-cancelled{border:1.5px dashed var(--disabled);color:var(--faint);text-decoration:line-through}.mini-day.today{outline:1px solid var(--accent-text)}.session-row{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:1.5px solid #0000;border-radius:12px;align-items:center;gap:12px;padding:12px;display:flex}.row-date{flex-direction:column;flex:none;align-items:center;width:44px;display:flex}.row-weekday{text-transform:uppercase;font-size:11px;font-weight:700}.row-day{font-family:var(--font-display);font-size:22px;font-weight:800}.row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;flex:340px;gap:18px;min-width:0;padding:22px;display:flex}.panel-top{justify-content:space-between;align-items:center;display:flex}.state-badge{letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.state-proposed{border:1.5px solid var(--accent);color:var(--accent-text)}.state-confirmed{background:var(--text);color:var(--on-light)}.state-cancelled{border:1.5px dashed var(--disabled);color:var(--faint)}.quote{margin:8px 0 0}.notice-warn{background:var(--warn-bg);color:var(--warn-text);border-radius:12px;align-items:flex-start;gap:10px;padding:12px;font-size:14px;display:flex}.answer-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.answer-btn{border-radius:var(--radius);border:1.5px solid var(--border);cursor:pointer;background:0 0;min-height:48px;padding:0 4px;font-size:14px;font-weight:700}.answer-btn.on.tone-available{background:var(--available);border-color:var(--available);color:#10261d}.answer-btn.on.tone-maybe{background:var(--maybe);border-color:var(--maybe);color:#2a1d05}.answer-btn.on.tone-unavailable{background:var(--unavailable);border-color:var(--unavailable);color:#2a0d13}.member-answers{margin:8px 0 0;padding:0;list-style:none}.member-answer{border-top:1px solid var(--border-soft);gap:12px;padding:10px 0;display:flex}.answer{white-space:nowrap;font-size:13px;font-weight:700}.avatar{background:#332c48;border-radius:999px;flex:none;place-items:center;width:34px;height:34px;font-size:13px;font-weight:700;display:grid}.panel-actions{border-top:1px solid var(--border-soft);flex-wrap:wrap;gap:8px;padding-top:12px;display:flex}.panel-actions .btn{flex:100px}.dialog{background:var(--surface);border:1px solid var(--border);width:calc(100% - 32px);max-width:440px;color:var(--text);border-radius:18px;padding:22px}.dialog::backdrop{background:#08060cb8}.dialog-body{color:var(--text-2);margin:12px 0 16px;line-height:1.5}.dialog-body p{margin:0}.dialog-actions{flex-direction:column;gap:8px;display:flex}.chips{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.name-chip{color:var(--muted);background:#272333;border-radius:999px;padding:3px 8px;font-size:13px}.back-link{min-height:44px;color:var(--muted);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.member-row{border-top:1px solid var(--border-soft);align-items:center;gap:12px;padding:10px 0;display:flex}.member-row:first-of-type{border-top:none}.danger-zone{border-color:var(--danger-border)}.notification-list{margin:0;padding:0;list-style:none}.notification{border-bottom:1px solid var(--border-soft);color:var(--text-2);gap:12px;padding:14px 16px;text-decoration:none;display:flex}.notification:hover{color:var(--text)}.notification.fresh{background:var(--surface);color:var(--text)}.notification-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent-text);border-radius:10px;flex:none;place-items:center;font-weight:700;display:grid}.icon-availabilityReset{background:var(--warn-bg);color:var(--maybe)}.icon-sessionConfirmed{background:var(--text);color:var(--on-light)}.icon-sessionCancelled,.icon-removedFromCampaign,.icon-campaignDeleted{border:1.5px dashed var(--disabled);color:var(--faint);background:0 0}.section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:18px 0 6px;font-size:12px;font-weight:700}.unread-dot{background:var(--accent);border-radius:999px;flex:none;width:9px;height:9px;margin-top:6px}.notification-meta{display:block}@media (width<=760px){.page{padding:18px 16px 40px}.app-header{padding:10px 16px}.month-grid-wrap,.legend{display:none}.month-mobile{display:block}.month-title{font-size:22px}.panel{z-index:20;border:none;border-radius:0;padding:16px 16px 32px;position:fixed;inset:0;overflow-y:auto}}
