:root{--color-neutral-50:#fafbfc;--color-neutral-100:#f5f6f8;--color-neutral-150:#f0f1f3;--color-neutral-200:#e8eaed;--color-neutral-300:#dadce0;--color-neutral-400:#bcc0c7;--color-neutral-500:#9aa0a6;--color-neutral-600:#80868b;--color-neutral-700:#5f6368;--color-neutral-800:#202124;--color-accent-400:#4d7db8;--color-accent-500:#3d67a6;--color-accent-50:#f8fafc;--color-success:#0d7f4f;--color-warning:#b67d00;--color-error:#b3261e;--text-primary:var(--color-neutral-800);--text-secondary:var(--color-neutral-600);--text-tertiary:var(--color-neutral-400);--bg-primary:#fff;--bg-secondary:var(--color-neutral-50);--bg-tertiary:var(--color-neutral-100);--border-color:var(--color-neutral-200);--border-subtle:var(--color-neutral-150);--accent:var(--color-accent-500);--space-xs:.25rem;--space-sm:.5rem;--space-md:.75rem;--space-base:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif;--font-mono:"SF Mono", Monaco, "Menlo", "Courier New", monospace;--shadow-xs:0 1px 2px 0 #20212414;--shadow-sm:0 1px 3px 0 #2021241f;--shadow-md:0 2px 4px 0 #20212424;font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:14px;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{margin:0;padding:0}#root{flex-direction:column;min-height:100svh;display:flex}h1{color:var(--text-primary);margin:0;font-size:2rem;font-weight:700;line-height:1.25}h2{color:var(--text-primary);margin:0;font-size:1.5rem;font-weight:600;line-height:1.333}h3{color:var(--text-primary);margin:0;font-size:1.25rem;font-weight:600;line-height:1.4}h4{color:var(--text-primary);margin:0;font-size:1.125rem;font-weight:600;line-height:1.444}p{color:var(--text-primary);margin:0}small{color:var(--text-secondary);font-size:.875rem}a{color:var(--color-primary-600);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible{outline:2px solid var(--color-primary-600);outline-offset:2px}.calendar-container{background:var(--bg-primary);border:none;border-radius:0;flex-direction:column;flex:1;display:flex;overflow:hidden}.fc{font-family:var(--font-sans);--fc-border-color:var(--border-subtle);--fc-button-bg-color:var(--bg-secondary);--fc-button-border-color:var(--border-subtle);--fc-button-text-color:var(--text-primary);--fc-button-hover-bg-color:var(--bg-tertiary);--fc-button-active-bg-color:var(--accent);--fc-button-active-border-color:var(--accent);--fc-button-active-text-color:white;--fc-highlight-color:var(--color-accent-50);--fc-event-bg-color:var(--accent);--fc-event-border-color:var(--accent);--fc-event-text-color:white;flex:1;font-size:13px}.fc .fc-toolbar{gap:var(--space-md);padding:var(--space-lg);border-bottom:1px solid var(--border-subtle);background:var(--bg-primary)}.fc .fc-toolbar-title{color:var(--text-primary);letter-spacing:-.3px;margin:0;font-size:20px;font-weight:500}.fc .fc-button-primary{background-color:var(--bg-secondary);border:1px solid var(--border-subtle);color:var(--text-primary);padding:6px 12px;font-size:13px;font-weight:400;transition:all .2s}.fc .fc-button-primary:not(:disabled):hover{background-color:var(--bg-tertiary);border-color:var(--border-color)}.fc .fc-button-primary:not(:disabled).fc-button-active{background-color:var(--accent);border-color:var(--accent);color:#fff}.fc .fc-button-primary:disabled{opacity:.5}.fc .fc-col-header-cell{text-transform:uppercase;letter-spacing:.5px;padding:var(--space-lg) var(--space-md);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);font-size:12px;font-weight:500}.fc .fc-daygrid-day{border:1px solid var(--border-subtle)}.fc .fc-daygrid-day-number{padding:var(--space-lg) var(--space-md);color:var(--text-primary);font-size:14px;font-weight:400}.fc .fc-daygrid-day.fc-day-today{background-color:var(--color-accent-50)}.fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-number{color:var(--accent);font-weight:600}.fc .fc-daygrid-day-frame{position:relative}.fc .fc-event{background-color:var(--accent);border:1px solid var(--accent);box-shadow:none;border-radius:2px;margin:2px;transition:all .2s}.fc .fc-event:hover{opacity:.9;box-shadow:var(--shadow-xs)}.fc .fc-event-title{white-space:nowrap;text-overflow:ellipsis;padding:4px 6px;font-size:12px;font-weight:400;overflow:hidden}.fc .fc-timegrid-slot{height:3em}.fc .fc-col-time-frame{border-color:var(--border-subtle)}.fc .fc-daygrid-body{flex:1}.settings-page{background:var(--bg-primary);flex-direction:column;width:100%;height:100vh;display:flex}.settings-header{align-items:center;gap:var(--space-md);padding:var(--space-lg);border-bottom:1px solid var(--border-subtle);flex-shrink:0;display:flex}.settings-header h2{letter-spacing:-.2px;flex:1;margin:0;font-size:20px;font-weight:500}.back-button{cursor:pointer;color:var(--text-primary);background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.back-button:hover{background-color:var(--bg-secondary)}.back-button:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.settings-content{padding:var(--space-lg);gap:var(--space-2xl);flex-direction:column;flex:1;width:100%;max-width:640px;margin:0 auto;display:flex;overflow-y:auto}.settings-section{gap:var(--space-lg);flex-direction:column;display:flex}.settings-section h3{margin:0 0 var(--space-md) 0;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-size:14px;font-weight:600}.settings-section h4{margin:var(--space-lg) 0 var(--space-md) 0;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:500}.ics-form{gap:var(--space-lg);flex-direction:column;display:flex}.form-group{gap:var(--space-sm);flex-direction:column;display:flex}.form-group label{color:var(--text-primary);font-size:13px;font-weight:500}.form-group input{border:1px solid var(--border-subtle);font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-primary);border-radius:6px;padding:8px 12px;font-size:13px;transition:all .2s}.form-group input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--color-accent-50);outline:none}.form-group input::placeholder{color:var(--text-tertiary)}.btn-primary,.btn-danger{cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-sans);border:none;border-radius:6px;padding:8px 16px;transition:all .2s}.btn-primary{background-color:var(--accent);color:#fff;border:1px solid var(--accent)}.btn-primary:hover:not(:disabled){opacity:.92}.btn-primary:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-danger{border:1px solid var(--color-error);color:var(--color-error);background-color:#0000}.btn-danger:hover{background-color:#b3261e14}.btn-danger:focus-visible{outline:1px solid var(--color-error);outline-offset:2px}.calendar-item{padding:var(--space-md);background:var(--bg-secondary);border:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:var(--space-md);border-radius:6px;display:flex}.calendar-item div{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.calendar-item strong{color:var(--text-primary);font-size:13px;font-weight:500}.calendar-item small{color:var(--text-tertiary);word-break:break-all;font-size:11px}.calendars-list{gap:var(--space-md);flex-direction:column;display:flex}.error-message{padding:var(--space-md) var(--space-lg);color:#991b1b;margin-bottom:var(--space-lg);background-color:#fee2e2;border:1px solid #fca5a5;border-radius:6px;font-size:13px}.time-format-options{gap:var(--space-md);flex-direction:column;display:flex}.radio-option{align-items:center;gap:var(--space-md);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;padding:8px 12px;transition:background-color .2s;display:flex}.radio-option:hover{background-color:var(--bg-secondary)}.radio-option input[type=radio]{cursor:pointer;accent-color:var(--accent);width:16px;height:16px}.radio-option span{color:var(--text-primary);font-size:13px}.app{background:var(--bg-primary);flex-direction:column;min-height:100svh;display:flex;position:relative}.settings-fab{bottom:var(--space-lg);right:var(--space-lg);z-index:50;position:fixed}
