*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f8f9fa;--bg-card: #ffffff;--text: #212529;--text-muted: #6c757d;--primary: #0d6efd;--primary-hover: #0b5ed7;--success: #198754;--danger: #dc3545;--warning: #ffc107;--border: #dee2e6;--shadow: 0 .125rem .25rem rgba(0, 0, 0, .075);--radius: .375rem;--radius-lg: .5rem}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:var(--bg);color:var(--text);line-height:1.5}.container{max-width:800px;margin:2rem auto;padding:0 1rem}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.5rem;margin-bottom:1.5rem}.btn{display:inline-block;padding:.5rem 1rem;font-size:1rem;line-height:1.5;border-radius:var(--radius);cursor:pointer;border:none;transition:background-color .15s ease-in-out}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-success{background-color:var(--success);color:#fff}.btn-danger{background-color:var(--danger);color:#fff}.form-group{margin-bottom:1rem}.form-label{display:block;margin-bottom:.5rem;font-weight:500}.form-input,.form-textarea,.form-select{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:1rem}.form-textarea{resize:vertical;min-height:100px}.form-check{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.form-check input[type=checkbox]{width:1rem;height:1rem}.alert{padding:.75rem 1.25rem;border-radius:var(--radius);margin-bottom:1rem}.alert-success{background-color:#1987541a;color:var(--success)}.alert-danger{background-color:#dc35451a;color:var(--danger)}.time-slot-grid{display:grid;grid-template-columns:auto repeat(3,1fr);gap:.5rem;align-items:center}.time-slot-header{font-weight:600;padding:.5rem;text-align:center}.time-slot-cell{padding:.5rem;text-align:center;border:1px solid var(--border);background:#fff}.voter-row{display:contents}.voter-name{grid-column:1;font-weight:500}.available{background-color:#1987541a}.not-available{background-color:#dc35451a}@media (max-width: 768px){.time-slot-grid{grid-template-columns:auto repeat(2,1fr)}}@media (max-width: 480px){.time-slot-grid{grid-template-columns:1fr}.voter-name{grid-column:1 / -1;text-align:center}}.calendar-container{font-family:inherit;max-width:1200px;margin:0 auto}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.toolbar-left,.toolbar-center,.toolbar-right{display:flex;align-items:center;gap:.5rem}.toolbar-center{flex:1;justify-content:center}.calendar-btn{padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:pointer;font-size:.875rem;transition:all .15s ease}.calendar-btn:hover:not(:disabled){background:var(--bg);border-color:var(--primary)}.calendar-btn:disabled{opacity:.5;cursor:not-allowed}.calendar-btn-view{position:relative;min-width:100px}.view-menu-dropdown{position:absolute;top:100%;left:0;z-index:100;min-width:100%;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:.25rem 0}.view-menu-item{display:block;width:100%;padding:.5rem 1rem;text-align:left;border:none;background:none;cursor:pointer;font-size:.875rem}.view-menu-item:hover{background:var(--bg)}.view-menu-arrow{margin-left:.5rem;font-size:.75rem}.calendar-view{margin-top:1rem}.day-calendar{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.calendar-header{padding:.75rem 1rem;background:var(--bg);border-bottom:1px solid var(--border);text-align:center}.calendar-header h3{font-size:1rem;font-weight:600}.day-grid{min-height:400px}.slots-container{position:relative}.time-slot{display:block;width:100%;height:40px;border:none;border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:transparent;cursor:pointer;position:relative;overflow:hidden}.time-slot:last-child{border-bottom:none}.time-slot:hover{background:#0d6efd1a}.time-slot.selected{background:#0d6efd33}.time-slot.selecting{background:#0d6efd4d}.time-slot.selection-start{border-left:3px solid var(--primary)}.time-slot-label{position:absolute;top:2px;left:4px;font-size:.65rem;color:var(--text-muted);pointer-events:none;white-space:nowrap;line-height:1;-webkit-user-select:none;user-select:none}.selected-slot-overlay{position:absolute;left:0;background:#0d6efd33;border:1px solid var(--primary);border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:1}.selected-slot-overlay .slot-time{font-size:.75rem;color:var(--primary);white-space:nowrap}.selection-preview{position:absolute;left:0;background:#0d6efd26;border:2px dashed var(--primary);border-radius:4px;z-index:2;pointer-events:none}.three-day-calendar{display:flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.day-column{flex:1;border-right:1px solid var(--border)}.day-column:last-child{border-right:none}.day-column.current-day{background:#0d6efd0d}.day-header{padding:.5rem;background:var(--bg);border-bottom:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px}.day-name{font-size:.75rem;font-weight:600;color:var(--text-muted)}.day-date{font-size:.875rem;font-weight:500}.week-calendar{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.week-header{display:flex;background:var(--bg);border-bottom:1px solid var(--border)}.week-header-cell{flex:1;padding:.5rem;text-align:center;font-size:.75rem;font-weight:600;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px}.week-header-cell.first-day{border-left:1px solid var(--border)}.week-header-cell.last-day{border-right:1px solid var(--border)}.week-grid{display:flex}.week-day-column{flex:1}.week-day-column.first-day{border-left:1px solid var(--border)}.week-day-column.last-day{border-right:1px solid var(--border)}.calendar-nav-button{width:2rem;height:2rem;border-radius:9999px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-card);border:1px solid var(--border);cursor:pointer;color:var(--text-muted);transition:all .2s;font-size:1rem;font-weight:500}.calendar-nav-button:hover{color:var(--text);background:var(--bg);border-color:var(--border)}.month-calendar{width:100%;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card)}.month-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border)}.month-header h3{font-size:1.125rem;line-height:1.75rem;font-weight:600;color:var(--text);margin:0}.month-grid{display:flex;flex-direction:column;padding:.5rem}.month-header-row,.month-dates-row{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem;padding:0 .25rem}.month-header-cell{padding:.5rem;text-align:center;font-size:.75rem;font-weight:600;color:var(--text-muted);background:transparent}.month-cell{aspect-ratio:1;display:flex;align-items:flex-start;justify-content:flex-start;padding:.25rem;border-radius:var(--radius);font-size:.875rem;line-height:1.25rem;background:transparent;border:none;cursor:pointer;transition:background-color .2s;color:var(--text)}.month-cell:hover:not(:disabled){background:var(--bg)}.month-cell:disabled{opacity:.5;cursor:not-allowed}.month-cell.current-month{background:transparent;color:var(--text)}.month-cell.other-month{color:var(--text-muted);cursor:default}.month-cell.other-month:hover{background:transparent}.month-cell.today{background:#3b82f61a;color:var(--primary);font-weight:600}.month-cell.has-slots{position:relative}.month-cell.has-slots:after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:6px;height:6px;border-radius:50%;background:var(--primary)}.month-day-number{font-size:.875rem}.month-legend{display:flex;gap:1rem;padding:.75rem 1rem;font-size:.75rem;color:var(--text-muted);border-top:1px solid var(--border)}.legend-item{display:flex;align-items:center;gap:.25rem}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.legend-dot.has-slots{background:var(--primary)}.legend-dot.today{background:var(--primary);border:1px solid var(--primary)}.selected-slots-summary{margin-top:1rem;padding:1rem;background:var(--bg);border-radius:var(--radius);border:1px solid var(--border)}.selected-slots-summary h4{margin-bottom:.75rem;font-size:.875rem;font-weight:600}.summary-list{display:flex;flex-wrap:wrap;gap:.5rem}.summary-slot{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem}.summary-slot .remove-slot{padding:.125rem;border:none;background:none;cursor:pointer;font-size:.875rem;color:var(--text-muted);line-height:1}.summary-slot .remove-slot:hover{color:var(--danger)}@media (max-width: 768px){.calendar-toolbar{flex-wrap:wrap;gap:.5rem}.toolbar-center{order:-1;width:100%;justify-content:center}}@media (max-width: 480px){.time-slot{height:32px}.month-cell{min-height:32px;font-size:.75rem;padding:.125rem}.month-grid{padding:.25rem}.month-header-row,.month-dates-row{gap:.125rem;padding:0}.month-header-cell{padding:.25rem 0;font-size:.625rem}.month-header{padding:.625rem .75rem}.month-cell.has-slots:after{bottom:2px;width:4px;height:4px}.month-legend{flex-direction:column;gap:.5rem}.entry-method-toggle{flex-direction:column}.entry-method-btn{width:100%}.calendar-buttons{flex-wrap:wrap}.calendar-btn{flex:1 1 100px;margin:.25rem}}.add-to-calendar{margin:1.5rem 0;padding:1rem;background:var(--bg);border-radius:var(--radius);border:1px solid var(--border)}.add-to-calendar-title{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--text)}.calendar-buttons{display:flex;gap:.75rem;flex-wrap:wrap}.calendar-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:pointer;font-size:.875rem;transition:all .15s ease;color:var(--text)}.calendar-btn:hover{background:var(--bg);border-color:var(--primary);color:var(--primary)}.calendar-btn-text{font-size:.875rem}.calendar-icon{width:18px;height:18px;flex-shrink:0}.calendar-btn-google:hover{background:#f0f7ff;border-color:#4285f4;color:#4285f4}.calendar-btn-outlook:hover,.calendar-btn-outlook365:hover{background:#f0f7ff;border-color:#0078d4;color:#0078d4}.calendar-btn-yahoo:hover{background:#f7f0ff;border-color:#720e9e;color:#720e9e}.calendar-btn-ics:hover{background:#f0f0f0;border-color:#666;color:#666}.calendar-btn-apple:hover{background:#f0f0f0;border-color:#000;color:#000}.add-to-calendar-simple{margin:1rem 0;padding:1rem;background:var(--bg);border-radius:var(--radius);border:1px solid var(--border)}.add-to-calendar-simple-title{font-size:.875rem;font-weight:600;margin-bottom:.75rem;color:var(--text)}.calendar-links{display:flex;flex-wrap:wrap;gap:.5rem}.calendar-link{padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:pointer;font-size:.875rem;color:var(--text);transition:all .15s ease;text-decoration:none;display:inline-block}.calendar-link:hover{background:var(--bg);border-color:var(--primary);color:var(--primary);text-decoration:none}.entry-method-toggle{display:flex;gap:.5rem;margin-bottom:1rem}.entry-method-btn{padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);cursor:pointer;font-size:.875rem;transition:all .15s ease}.entry-method-btn:hover{background:var(--bg)}.entry-method-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.entry-method-btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.entry-method-btn:last-child{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}@media (max-width: 480px){.entry-method-toggle{flex-direction:column}.entry-method-btn{width:100%;border-radius:var(--radius);border-left:1px solid var(--border)}.entry-method-btn:first-child{border-radius:var(--radius)}}.topbar{position:sticky;top:0;z-index:50;background:var(--bg-card);border-bottom:1px solid var(--border)}.topbar-container{max-width:800px;margin:0 auto;padding:0 1rem;height:64px;display:flex;align-items:center;justify-content:space-between}.topbar-logo{display:flex;align-items:center;gap:.75rem;text-decoration:none}.topbar-logo-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--primary);border-radius:var(--radius)}.topbar-logo-icon span{color:#fff;font-weight:700;font-size:1.125rem}.topbar-logo-text{font-size:1.25rem;font-weight:700;color:var(--text)}.topbar-auth{display:flex;align-items:center;gap:1rem}.topbar-user{display:flex;align-items:center;gap:.5rem}.topbar-user-avatar{width:32px;height:32px;border-radius:50%}.topbar-user-name{font-size:.875rem;font-weight:500;color:var(--text)}.topbar-signout{padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .15s ease}.topbar-signout:hover{background:var(--border)}.topbar-signin{padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:#fff;background:var(--primary);border:none;border-radius:var(--radius);cursor:pointer;transition:all .15s ease;text-decoration:none}.topbar-signin:hover{background:var(--primary-hover)}.topbar-subscribe{padding:.5rem 1rem;font-size:.875rem;font-weight:600;color:#fff;background:var(--success);border:none;border-radius:var(--radius);cursor:pointer;transition:all .15s ease;text-decoration:none}.topbar-subscribe:hover{background:#157347}.progress-steps{margin-bottom:2rem}.progress-steps-list{display:flex;align-items:center;justify-content:space-between;position:relative}.progress-step{display:flex;flex-direction:column;align-items:center}.progress-step-connector{height:2px;flex:1;background:var(--border);margin:0 .5rem 1.5rem;max-width:80px}.progress-step-connector.active{background:var(--primary)}.progress-step-circle{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;color:var(--text-muted);background:var(--bg);border:2px solid var(--border);transition:all .2s ease}.progress-step-circle.active,.progress-step-circle.completed{background:var(--primary);color:#fff;border-color:var(--primary)}.progress-step-circle.completed:after{content:"✓"}.progress-step-label{margin-top:.5rem;font-size:.75rem;font-weight:500;color:var(--text-muted)}.progress-step-label.active,.progress-step-label.completed{color:var(--primary)}.progress-step-button{display:flex;flex-direction:column;align-items:center;border:none;background:transparent;padding:0;margin:0;cursor:pointer}.progress-step-button:disabled{cursor:default}.progress-step-button:focus{outline:none}@media (max-width: 640px){.topbar-container{padding:0 .75rem}.topbar-user-name{display:none}.progress-step-connector{max-width:40px}.progress-step-circle{width:32px;height:32px;font-size:.75rem}}
