:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}:root{--color-primary: #3B82F6;--color-primary-light: #DBEAFE;--color-secondary: #10B981;--color-accent: #F59E0B;--color-danger: #EF4444;--color-purple: #8B5CF6;--color-bg-primary: #FFFFFF;--color-bg-secondary: #F8FAFC;--color-bg-tertiary: #F1F5F9;--color-text-primary: #1E293B;--color-text-secondary: #64748B;--color-text-muted: #94A3B8;--color-border: #E2E8F0;--color-border-light: #F1F5F9;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;color:var(--color-text-primary);background-color:var(--color-bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{min-height:100vh;display:flex;flex-direction:column;max-width:1400px;margin:0 auto;padding:0}.main-content{flex:1;padding:var(--spacing-md);width:100%}@media (max-width: 768px){.app{padding:0;max-width:none}.main-content{padding:var(--spacing-sm)}}.header{background:transparent;border-bottom:1px solid var(--color-border-light)}.header-content{display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);max-width:1400px;margin:0 auto;width:100%}.header-content.compact-layout{justify-content:flex-start;gap:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md)}.header-compact{background:transparent;border-bottom:1px solid var(--color-border-light);padding:var(--spacing-sm) 0}.header-horizontal-layout{display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-md);max-width:1400px;margin:0 auto;gap:var(--spacing-md)}.logo-compact{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.logo-icon-compact{width:1.25rem;height:1.25rem;color:var(--color-primary)}.logo-text-compact{font-size:1rem;font-weight:700;color:var(--color-primary);margin:0}.timezone-section-compact{flex:1;display:flex;justify-content:center}.user-profile-section{position:relative;flex-shrink:0;display:flex;align-items:center;gap:var(--spacing-xs)}.user-profile-button{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);cursor:pointer;transition:all .2s ease;font-size:.75rem;max-width:180px;box-shadow:0 1px 3px #0000001a}.user-profile-button:hover{border-color:var(--color-primary);box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}.user-avatar{width:1.5rem;height:1.5rem;border-radius:50%;object-fit:cover;flex-shrink:0}.user-avatar-placeholder{width:1.5rem;height:1.5rem;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-name{font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.dropdown-icon{flex-shrink:0;transition:transform .2s ease}.dropdown-icon.open{transform:rotate(180deg)}.user-menu-dropdown{position:absolute;top:100%;right:0;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 8px 24px #00000026;z-index:1000;min-width:200px;margin-top:var(--spacing-xs);overflow:hidden}.user-info{padding:var(--spacing-sm);border-bottom:1px solid var(--color-border-light);background:var(--color-bg-secondary)}.user-email{font-size:.6875rem;color:var(--color-text-secondary);margin:0 0 2px;word-break:break-all}.user-status{font-size:.625rem;color:var(--color-text-muted);margin:0;font-weight:500}.user-menu-item{display:block;width:100%;padding:var(--spacing-sm);border:none;background:none;color:var(--color-text-primary);cursor:pointer;font-size:.75rem;text-align:left;transition:background-color .2s ease}.user-menu-item:hover{background:var(--color-bg-secondary)}.user-menu-item:first-child{border-radius:var(--radius-md) var(--radius-md) 0 0}.user-menu-item:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}@media (max-width: 768px){.header-content{padding:var(--spacing-sm);max-width:none}.header-content.compact-layout{padding:var(--spacing-xs) var(--spacing-sm);gap:var(--spacing-md)}.header-horizontal-layout{padding:0 var(--spacing-sm);gap:var(--spacing-sm)}.logo-text-compact{font-size:.9rem}.user-profile-button{max-width:120px;padding:var(--spacing-xs)}.user-name{font-size:.7rem}.sync-indicator{padding:2px 6px}.sync-text{display:none}}.logo{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:700;font-size:1.25rem;color:var(--color-primary)}.logo.compact{font-size:1rem;flex-shrink:0}.logo.compact .logo-icon{width:1.5rem;height:1.5rem}.logo.compact h1{font-size:1.125rem}.logo-icon{width:2rem;height:2rem}.current-time{text-align:center}.time-display{font-size:1.5rem;font-weight:600;color:var(--color-text-primary)}.date-display{font-size:.875rem;color:var(--color-text-secondary)}.timezone-selector{display:flex;align-items:center;gap:var(--spacing-sm)}.location-icon{width:1.25rem;height:1.25rem;color:var(--color-text-secondary)}.timezone-select{padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);font-size:.875rem;color:var(--color-text-primary);min-width:120px}.timezone-select:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary)}.sticky-nav{position:sticky;top:0;background:var(--color-bg-primary);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-md);z-index:1000;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.timezone-bar{padding:var(--spacing-md) var(--spacing-md);border-bottom:1px solid var(--color-border-light)}.timezone-bar-compact{display:flex;justify-content:center;padding:var(--spacing-sm) 0}.timezone-grid{display:flex;gap:var(--spacing-sm);max-width:1200px;margin:0 auto;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding:var(--spacing-xs) 0 var(--spacing-sm) 0;scroll-snap-type:x mandatory}.timezone-grid-compact{display:flex;gap:2px;border-radius:var(--radius-lg);box-shadow:0 2px 8px #0000001a;padding-bottom:2px}.timezone-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);text-align:center;border-top:3px solid transparent;transition:all .2s ease;cursor:pointer;min-width:80px;flex-shrink:0;position:relative;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;scroll-snap-align:start}.timezone-grid-compact .timezone-card-compact{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);background:#ffffffe6;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:all .2s ease;min-width:80px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;position:relative;color:var(--color-text-primary);box-shadow:0 2px 4px #0000001a}.timezone-grid-compact .timezone-card-compact[style*=borderBottomColor]{border-bottom-style:solid;border-bottom-width:3px}.timezone-card:hover{background:var(--color-bg-primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.timezone-card-compact:hover:not(.active){background:#fffffff2;transform:translateY(-1px);box-shadow:0 4px 8px #00000026;border-bottom-width:4px}.timezone-card-compact.active:hover{background:var(--active-color, var,--color-primary);filter:brightness(.9);transform:translateY(-1px);box-shadow:0 4px 12px #00000040}.timezone-card:active{transform:translateY(0);transition:transform .1s ease}.timezone-card.active{background:var(--color-bg-primary);box-shadow:var(--shadow-lg);transform:translateY(-3px);border:2px solid var(--active-color, var,--color-primary);border-top:4px solid var(--active-color, var,--color-primary);font-weight:600}.timezone-card-compact.active{background:var(--active-color, var,--color-primary);color:#fff;border-bottom-color:var(--active-color, var,--color-primary);box-shadow:0 2px 8px #0003}.timezone-card-compact.active .timezone-abbr-compact,.timezone-card-compact.active .timezone-time-compact{color:#fff!important}.timezone-card.active:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(135deg,var(--active-color, var,--color-primary),transparent);border-radius:var(--radius-md);z-index:-1;opacity:.15}.timezone-card.active .timezone-name,.timezone-card.active .timezone-abbr,.timezone-card.active .timezone-time{color:var(--color-text-primary);font-weight:600}.timezone-name{font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-xs);font-size:.75rem}.timezone-abbr{display:none}.timezone-abbr-compact{font-size:.75rem;font-weight:600;letter-spacing:.5px;opacity:1}.timezone-full-name{display:inline}.timezone-time{font-size:1rem;font-weight:700;color:var(--color-text-primary);line-height:1.2}.timezone-time-compact{font-size:.875rem;font-weight:700;margin-top:2px}.timezone-date{font-size:.6rem;color:var(--color-text-secondary);margin-top:var(--spacing-xs)}.current-indicator{font-size:.6rem}.timezone-card:focus-visible{outline:2px solid var(--active-color, var,--color-primary);outline-offset:2px;background:var(--color-bg-primary);transform:translateY(-1px)}.timezone-card:focus{outline:none}.timezone-bar:focus-within{scroll-behavior:smooth}.timezone-card.active .timezone-name{font-weight:700}.timezone-card.active .timezone-time{font-weight:600;opacity:1}@media (min-width: 640px){.timezone-grid{justify-content:center;flex-wrap:wrap;overflow-x:visible}.timezone-card{min-width:100px;padding:var(--spacing-md)}.timezone-name{font-size:.875rem}.timezone-time{font-size:1.125rem}.timezone-date{font-size:.75rem}}@media (min-width: 1024px){.timezone-card{min-width:120px}.timezone-time{font-size:1.25rem}}@media (max-width: 639px){.sticky-nav{position:sticky;top:0;z-index:1000}.timezone-bar{padding:var(--spacing-sm) var(--spacing-md)}.timezone-grid{gap:var(--spacing-xs);padding:0 var(--spacing-xs)}.timezone-card{min-width:75px;padding:var(--spacing-xs) var(--spacing-sm);touch-action:manipulation}.timezone-name{font-size:.6rem;font-weight:700}.timezone-full-name{display:none}.timezone-abbr{display:inline}.timezone-time{font-size:.9rem;font-weight:800}.timezone-date{font-size:.55rem}.current-indicator{font-size:.5rem}}.compact-layout .timezone-bar{flex:1;margin:0;padding:0;background:none}.compact-layout .timezone-grid{gap:var(--spacing-sm);justify-content:flex-start;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding:0}.compact-layout .timezone-grid::-webkit-scrollbar{display:none}.compact-layout .timezone-card{min-width:70px;padding:var(--spacing-xs) var(--spacing-sm);font-size:.8125rem;border-top-width:2px}.compact-layout .timezone-card-compact{min-width:70px;padding:var(--spacing-xs) var(--spacing-sm);font-size:.8125rem;border-bottom-width:2px}.compact-layout .timezone-name{font-size:.75rem;font-weight:600}.compact-layout .timezone-time{font-size:.875rem;font-weight:600}.compact-layout .timezone-date{font-size:.6875rem}@media (max-width: 768px){.header-content.compact-layout{flex-direction:column;gap:var(--spacing-sm);align-items:stretch}.compact-layout .timezone-grid{justify-content:center}.compact-layout .timezone-card{min-width:65px;padding:var(--spacing-xs);font-size:.75rem}}@media (max-width: 480px){.compact-layout .timezone-card{min-width:60px;font-size:.6875rem}.compact-layout .timezone-name{font-size:.6875rem}.compact-layout .timezone-time{font-size:.8125rem}}.view-selector{padding:var(--spacing-md)}.view-buttons{display:flex;gap:var(--spacing-sm);max-width:1200px;margin:0 auto;overflow-x:auto;padding-bottom:var(--spacing-xs)}.view-button{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;min-width:fit-content}.view-button:hover{background:var(--color-bg-tertiary)!important;color:var(--color-text-primary)!important}.view-button.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.view-button.active:hover{background:#2563eb!important;color:#fff!important;border-color:#2563eb!important}.nav-row{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light);gap:var(--spacing-md)}.nav-row .view-selector{flex:1}.auth-button{padding:var(--spacing-xs) var(--spacing-md);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.auth-button:hover{background:#2563eb!important;color:#fff!important;transform:translateY(-1px)}.auth-button:active{transform:translateY(0)}.sync-indicator{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:var(--radius-sm);font-size:.625rem;font-weight:600;min-width:fit-content;transition:all .2s ease;flex-shrink:0}.sync-indicator.offline{background-color:#f3f4f6;color:#6b7280}.sync-indicator.syncing{background-color:#fef3c7;color:#d97706}.sync-indicator.synced{background-color:#d1fae5;color:#065f46}.sync-indicator.error{background-color:#fee2e2;color:#dc2626}.sync-icon{font-size:.75rem;line-height:1}.sync-icon.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sync-text{font-size:.625rem;font-weight:600;white-space:nowrap}.retry-button{margin-left:.5rem;padding:.125rem .375rem;background-color:#dc2626;color:#fff;border:none;border-radius:.25rem;font-size:.6875rem;cursor:pointer;transition:background-color .2s}.retry-button:hover{background-color:#b91c1c}.calendar-view{flex:1;display:flex;flex-direction:column;max-width:100%;height:100%}.calendar-content{flex:1;display:flex;flex-direction:column;height:100%;overflow-y:auto}@media (max-width: 768px){.calendar-view{padding:0;margin:0}}.calendar-timezone-indicator{display:flex;justify-content:flex-end;padding:0 var(--spacing-md) var(--spacing-sm)}.tz-indicator{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;box-shadow:var(--shadow-sm)}.tz-indicator .tz-abbrev{opacity:.9}.tz-indicator .tz-time{font-weight:700}.calendar-content{flex:1;display:flex;flex-direction:column}.day-view,.week-view,.month-view,.year-view{flex:1;display:flex;flex-direction:column;padding:var(--spacing-md);max-width:1200px;margin:0 auto;width:100%;min-height:0}.view-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg);padding:0 var(--spacing-sm);gap:var(--spacing-md)}@media (max-width: 768px){.view-header{margin-bottom:var(--spacing-md);padding:0;gap:var(--spacing-sm)}.view-title{font-size:1.25rem;text-align:center;line-height:1.3}}@media (min-width: 1024px){.view-header{margin-bottom:var(--spacing-xl);padding:0 var(--spacing-md)}.view-title{font-size:1.75rem}}.nav-button{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease;color:var(--color-text-primary)!important;font-size:1.2rem!important;flex-shrink:0;touch-action:manipulation}.nav-button:hover{background:var(--color-bg-secondary);color:var(--color-text-primary);border-color:var(--color-primary)!important;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.nav-button:active{background:var(--color-primary)!important;color:#fff!important;transform:scale(.95)}.nav-button svg{width:20px;height:20px;stroke-width:2}@media (max-width: 768px){.nav-button{width:2.25rem;height:2.25rem}.nav-button svg{width:18px;height:18px;stroke-width:2.5}}@media (min-width: 1024px){.nav-button{width:3rem;height:3rem}.nav-button svg{width:22px;height:22px}}.view-title{font-size:1.5rem;font-weight:700;color:var(--color-text-primary)}.day-grid{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.timezone-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--color-border)}.timezone-column{background:var(--color-bg-primary)}.timezone-header{color:#fff;padding:var(--spacing-md);text-align:center;font-weight:600}.hours-column{max-height:600px;overflow-y:auto}.hour-slot{display:flex;align-items:flex-start;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light);min-height:2.5rem;position:relative;cursor:pointer;transition:all .2s ease}.hour-slot.has-class{background:#3b82f614;border-left:3px solid var(--color-primary);padding-left:calc(var(--spacing-md) - 3px);min-height:4rem}.class-event{display:flex;flex-direction:column;padding:var(--spacing-xs);border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0003;margin-bottom:2px;min-height:40px;opacity:.95}.class-event:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0000004d;opacity:1}.class-event-content{display:flex;flex-direction:column;gap:2px}.class-event .class-title{font-size:.75rem;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);display:flex;align-items:center;gap:4px}.class-event .class-time{font-size:.6875rem;color:#fff;margin:0;font-weight:600;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;opacity:.95;text-shadow:0 1px 2px rgba(0,0,0,.5)}.class-event .class-description{font-size:.6875rem;opacity:.8;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.3)}.class-event .recurring-indicator{font-size:.6875rem;opacity:.9}.day-class-event{background:var(--class-color, var(--color-primary));border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);color:#fff;cursor:pointer;transition:all .2s ease;width:100%;max-width:300px;text-align:center;box-shadow:0 2px 4px #0000001a;border:1px solid rgba(255,255,255,.2)}.day-class-event:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0003;border-color:#fff6}.day-class-event .class-title{font-size:1rem;font-weight:700;margin-bottom:var(--spacing-xs);text-shadow:0 1px 2px rgba(0,0,0,.3)}.day-class-event .class-time-range{font-size:.875rem;font-weight:600;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;opacity:.9;margin-bottom:var(--spacing-xs);text-shadow:0 1px 2px rgba(0,0,0,.3)}.day-class-event .class-description{font-size:.8125rem;opacity:.85;line-height:1.3;text-shadow:0 1px 2px rgba(0,0,0,.2)}.day-class-event .recurring-indicator{font-size:.875rem;margin-right:var(--spacing-xs);opacity:.9}.class-indicator-minimal{display:flex;align-items:center;justify-content:center;padding:1px 4px;border-radius:var(--radius-sm);font-size:.5rem;font-weight:700;color:#fff;cursor:pointer;transition:all .2s ease;text-align:center;min-height:16px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;box-shadow:0 1px 3px #0003;text-shadow:0 1px 2px rgba(0,0,0,.5)}.class-indicator-minimal:hover{transform:scale(1.05);box-shadow:0 2px 6px #0000004d;z-index:10;position:relative}.class-time-minimal{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-weight:800;font-size:.5rem;text-shadow:0 1px 2px rgba(0,0,0,.6)}.recurring-icon-minimal{margin-left:2px;font-size:.4rem;opacity:.9}.class-event-expanded{display:flex;flex-direction:column;padding:var(--spacing-xs);border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:all .2s ease;border-left:3px solid rgba(255,255,255,.3);box-shadow:0 1px 3px #0003;margin-bottom:2px}.class-event-expanded:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0000004d}.class-event-expanded .class-title{font-size:.75rem;font-weight:700;color:#fff;margin-bottom:2px;text-shadow:0 1px 2px rgba(0,0,0,.5)}.class-event-expanded .class-time{font-size:.6875rem;color:#fff;font-weight:600;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;opacity:.95;text-shadow:0 1px 2px rgba(0,0,0,.5)}.class-event-expanded .class-description{font-size:.6875rem;opacity:.8;margin-top:2px;line-height:1.2}.class-event-expanded .recurring-icon{font-size:.6875rem;margin-right:4px}.hour-label{font-size:.875rem;font-weight:600;color:var(--color-text-secondary);margin-right:var(--spacing-md);font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;min-width:60px;text-align:right}.hour-slot{display:flex;align-items:flex-start;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light);min-height:3rem;position:relative;cursor:pointer;transition:all .2s ease}.hour-slot:hover{background:#3b82f60d;border-left:3px solid var(--color-primary);padding-left:calc(var(--spacing-md) - 3px)}.hour-slot.has-class{background:#3b82f614;border-left:3px solid var(--color-primary);padding-left:calc(var(--spacing-md) - 3px)}.hour-classes{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1;width:100%}.week-body{display:flex;flex-direction:column;background:var(--color-bg-primary);border-radius:var(--radius-lg);overflow-y:auto;box-shadow:var(--shadow-sm);flex:1;max-height:calc(100vh - 300px)}.time-row{display:grid;grid-template-columns:80px repeat(7,1fr);border-bottom:1px solid var(--color-border-light);min-height:60px}.time-label{display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border-right:1px solid var(--color-border);font-size:.75rem;font-weight:600;color:var(--color-text-secondary);font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace}.time-slot{display:flex;flex-direction:column;gap:2px;padding:var(--spacing-xs);border-right:1px solid var(--color-border-light);cursor:pointer;transition:all .2s ease;min-height:45px}.time-slot:hover{background:#3b82f60d}.time-slot.has-classes{min-height:70px;background:#3b82f608}.time-slot:last-child{border-right:none}.week-header{display:grid;grid-template-columns:80px repeat(7,1fr);background:var(--color-bg-primary);border-bottom:2px solid var(--color-border)}.day-header{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-md);border-right:1px solid var(--color-border);cursor:pointer;transition:all .2s ease}.day-header:last-child{border-right:none}.day-header.today{background:var(--color-primary);color:#fff}.day-header.clickable:hover{background:var(--color-primary);color:#fff;transform:translateY(-1px)}.day-name{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em;margin-bottom:4px}.day-date{font-size:1.125rem;font-weight:700}.month-grid{display:flex;flex-direction:column;background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex:1;overflow-y:auto;max-height:calc(100vh - 300px)}.weekday-headers{display:grid;grid-template-columns:repeat(7,1fr);background:var(--color-bg-secondary);border-bottom:2px solid var(--color-border)}.weekday-header{padding:var(--spacing-md);text-align:center;font-weight:600;font-size:.875rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.025em;border-right:1px solid var(--color-border)}.weekday-header:last-child{border-right:none}.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--color-border-light)}.calendar-day{background:var(--color-bg-primary);min-height:120px;display:flex;flex-direction:column;padding:var(--spacing-sm);cursor:pointer;transition:all .2s ease;position:relative}.calendar-day:hover{background:var(--color-bg-secondary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.calendar-day.other-month{background:var(--color-bg-tertiary);color:var(--color-text-muted)}.calendar-day.today{background:#3b82f61a;border:2px solid var(--color-primary)}.day-number{font-size:1rem;font-weight:600;margin-bottom:var(--spacing-xs);color:var(--color-text-primary)}.calendar-day.other-month .day-number{color:var(--color-text-muted)}.calendar-day.today .day-number{color:var(--color-primary);font-weight:700}.day-classes{display:flex;flex-direction:column;gap:2px;flex:1}.class-indicator{display:flex;align-items:center;justify-content:center;padding:2px 4px;border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease;text-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px #0000001a}.class-indicator:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0003}.class-time{font-size:.625rem;font-weight:700;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace}.class-indicator.more-classes{background:var(--color-text-muted);opacity:.8}.class-count{font-size:.625rem;font-weight:700}.month-card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);cursor:pointer;transition:all .2s ease;box-shadow:var(--shadow-sm)}.month-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-primary)}.month-card:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.months-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.month-card{padding:var(--spacing-md);min-height:200px}.month-card .month-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.month-card .month-name{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin:0}.mini-calendar{margin-bottom:var(--spacing-sm)}.mini-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.mini-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:500;background:var(--color-bg-primary);color:var(--color-text-primary);transition:all .2s ease}.mini-day.other-month{color:var(--color-text-muted);opacity:.4}.mini-day.has-classes{color:#fff;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.3)}.mini-day.has-classes.other-month{opacity:.3}.add-class-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-muted);cursor:pointer;transition:all .2s ease;opacity:.6;flex-shrink:0;font-size:18px;font-weight:600;line-height:1}.month-card:hover .add-class-btn{opacity:1;background:var(--color-bg-secondary);border-color:var(--color-primary)}.add-class-btn:hover{background:var(--color-primary)!important;color:#fff!important;border-color:var(--color-primary)!important;transform:scale(1.05);box-shadow:0 2px 8px #00000026}.month-data{margin-top:var(--spacing-sm)}.class-counts{margin-bottom:var(--spacing-sm)}.total-count{font-size:1.1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.breakdown{display:flex;flex-direction:column;gap:2px;font-size:.8rem;color:var(--color-text-muted)}.recurring-count,.onetime-count{line-height:1.2}.current-tz-count{font-size:.8rem;font-weight:500;margin-top:var(--spacing-xs)}.month-footer{padding-top:var(--spacing-sm);border-top:1px solid var(--color-border-light);margin-top:var(--spacing-sm)}.click-hint{font-size:.7rem;color:var(--color-text-muted);text-align:center;opacity:0;transition:opacity .2s ease}.month-card:hover .click-hint{opacity:1}@media (max-width: 768px){.months-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.month-card{min-height:180px}.mini-day{font-size:.6rem}}@media (max-width: 480px){.months-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.month-card{padding:var(--spacing-sm);min-height:160px}.mini-day{font-size:.55rem}}.week-sticky-header{position:sticky;top:0;z-index:100;background:var(--color-bg-primary);border-bottom:2px solid var(--color-border);box-shadow:0 2px 4px #0000000d}.week-sticky-header .day-header.clickable:hover{background:var(--hover-color);color:#fff;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.week-sticky-header .day-header.clickable:hover .day-name{color:#fff!important}.week-sticky-header .time-column-header{background:var(--color-bg-secondary);padding:var(--spacing-md);text-align:center;font-weight:600;color:var(--color-text-secondary);border-right:1px solid var(--color-border);font-size:.875rem}.month-sticky-header{position:sticky;top:0;z-index:100;background:var(--color-bg-primary);border-bottom:2px solid var(--color-border);box-shadow:0 2px 4px #0000000d}.year-view{display:flex;flex-direction:column;height:100%;overflow-y:auto}.year-view .view-header.year-sticky-header{position:sticky;top:0;z-index:100;background:var(--color-bg-primary);border-bottom:2px solid var(--color-border);box-shadow:0 2px 4px #0000000d;flex-shrink:0}.month-sticky-header .weekday-header{padding:var(--spacing-md);text-align:center;font-weight:600;font-size:.875rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.025em;border-right:1px solid var(--color-border);background:var(--color-bg-secondary)}.month-sticky-header .weekday-header:last-child{border-right:none}.week-view .view-header,.month-view .view-header{position:relative;z-index:50;background:var(--color-bg-primary);margin-bottom:0;padding-bottom:0}.week-grid,.month-grid{position:relative}.week-view .week-body,.month-view .days-grid{margin-top:0}.week-sticky-header .day-name{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.month-sticky-header .weekday-header{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.password-requirements{margin-top:.5rem;padding:.75rem;background-color:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border-light)}.requirements-title{font-size:.875rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.requirements-list{display:flex;flex-direction:column;gap:.25rem}.requirement-item{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;transition:color .2s ease}.requirement-item.valid{color:var(--color-secondary)}.requirement-item.invalid{color:var(--color-text-muted)}.check-icon{color:var(--color-secondary)!important;flex-shrink:0}.circle-icon{color:var(--color-text-muted)!important;flex-shrink:0}.modal-overlay{position:fixed!important;width:100vw!important;height:100vh!important;background:#000c!important;display:flex!important;align-items:center!important;justify-content:center!important;z-index:9999!important;backdrop-filter:blur(4px)!important;-webkit-backdrop-filter:blur(4px)!important;transition:all .3s ease;margin:0!important;padding:0!important;box-sizing:border-box!important;top:0!important;right:0!important;bottom:0!important;left:0!important}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d,0 8px 20px #0003;max-width:90vw;max-height:90vh;width:auto;position:relative;overflow:hidden;z-index:10000!important;animation:modalSlideIn .3s ease-out}.modal-body{padding:var(--spacing-lg);overflow-y:auto;max-height:calc(90vh - 120px)}.auth-modal .modal-body{padding:var(--spacing-sm) var(--spacing-lg)}.class-form{margin-top:calc(-1 * var(--spacing-md))}.modal-header{padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border-light);display:flex;align-items:center;justify-content:space-between}.modal-header h2,.modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.modal-footer{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-lg) var(--spacing-lg);border-top:1px solid var(--color-border-light);display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-sm)}.modal-content:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.8) 20%,rgba(255,255,255,.8) 80%,transparent 100%);z-index:1}.modal-overlay:hover .modal-content{transform:translateY(-2px);box-shadow:0 25px 70px #00000059,0 10px 25px #00000040!important;transition:all .2s ease!important}.close-button.close-btn{position:absolute;top:16px;right:16px;width:40px;height:40px;border:none;border-radius:8px;background:#0000000d;color:var(--color-text-secondary);font-size:20px;font-weight:400;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10;line-height:1}.close-button.close-btn:hover{background:#0000001a;color:var(--color-text-primary);transform:scale(1.05);box-shadow:0 2px 8px #0000001a}.close-button.close-btn:active{transform:scale(.95);background:#00000026}.close-button.close-btn:focus{outline:2px solid rgba(59,130,246,.5);outline-offset:4px}@media (max-width: 768px){.close-button.close-btn{width:44px;height:44px;top:12px;right:12px;font-size:22px}}@media (prefers-contrast: high){.close-button.close-btn{background:#00000026;border:1px solid var(--color-border)}.close-button.close-btn:hover{background:#00000040}}.class-details-popup-compact{max-width:500px!important;max-height:85vh!important;overflow:hidden!important;width:min(95vw,500px)!important;margin:auto!important;position:relative!important;border:2px solid transparent!important;transition:border-color .3s ease!important;animation:modalSlideIn .3s ease-out!important;background:#fff!important;border-radius:12px!important;box-shadow:0 20px 60px #0000004d,0 8px 20px #0003!important}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-modal{max-width:450px;width:90%;background:#fff!important;border-radius:16px!important;box-shadow:0 25px 70px #00000059,0 10px 25px #00000040!important;overflow:hidden;z-index:10000!important}.auth-modal .modal-header{padding:16px 24px 12px;border-bottom:1px solid var(--color-border)}.auth-modal .modal-title-container{display:flex;align-items:center;gap:12px}.auth-modal .modal-icon{color:var(--color-primary)}.auth-modal h2{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text-primary)}.auth-modal .modal-close{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:8px;border-radius:6px;transition:all .2s ease;position:absolute;top:20px;right:20px}.auth-modal .modal-close:hover{background:var(--color-background-secondary);color:var(--color-text-primary)}.conflict-modal{max-width:500px;width:90%;background:#fff!important;border-radius:16px!important;box-shadow:0 25px 70px #00000059,0 10px 25px #00000040!important;overflow:hidden;z-index:10000!important}.conflict-modal .modal-header{padding:20px 24px 16px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.conflict-modal .modal-title{display:flex;align-items:center;gap:12px}.conflict-modal .warning-icon{color:#f59e0b;width:24px;height:24px}.conflict-modal h2{margin:0;font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.conflict-modal .modal-close{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:4px;border-radius:4px;transition:all .2s ease}.conflict-modal .modal-close:hover{background:var(--color-background-secondary);color:var(--color-text-primary)}.conflict-modal .modal-body{padding:20px 24px}.conflict-modal .modal-footer{padding:16px 24px 20px;border-top:1px solid var(--color-border);display:flex;gap:12px;justify-content:flex-end}.delete-confirmation-modal,.update-confirmation-modal,.final-confirmation-modal{max-width:500px;width:90%;background:#fff!important;border-radius:16px!important;box-shadow:0 25px 70px #00000059,0 10px 25px #00000040!important;overflow:hidden;z-index:10001!important}.delete-option-button,.update-option-button{width:100%;padding:var(--spacing-md);background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;text-align:left;margin-bottom:var(--spacing-sm);box-shadow:0 1px 3px #0000000d}.delete-option-button:hover,.update-option-button:hover{background:var(--color-bg-primary);transform:translateY(-1px);box-shadow:0 3px 8px #0000001a}.delete-option-button{border-left:4px solid var(--color-danger)}.delete-option-button:hover{border-color:var(--color-danger);background:#ef444405}.update-option-button{border-left:4px solid var(--color-primary)}.update-option-button:hover{border-color:var(--color-primary);background:#3b82f605}.option-title{font-size:1rem;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--spacing-xs)}.option-description{font-size:.875rem;color:var(--color-text-secondary);line-height:1.4}.delete-confirmation-content,.update-confirmation-content{padding:var(--spacing-lg)}.delete-question,.update-question{font-size:1.125rem;color:var(--color-text-primary);margin-bottom:var(--spacing-lg);line-height:1.5}.delete-options,.update-options{margin-bottom:var(--spacing-lg)}.delete-actions,.update-actions{display:flex;justify-content:center;margin-top:var(--spacing-lg)}.cancel-button{background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-primary);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s ease;min-width:80px}.cancel-button:hover{background:var(--color-bg-tertiary);border-color:var(--color-border);transform:translateY(-1px)}.btn-danger-confirm{background:var(--color-danger);color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .2s ease;margin-right:var(--spacing-sm)}.btn-danger-confirm:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 3px 8px #ef44444d}.final-confirmation-actions{display:flex;justify-content:center;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.final-confirmation-content{padding:var(--spacing-lg);text-align:center}.final-confirmation-message{font-size:1.125rem;color:var(--color-text-primary);line-height:1.5;margin-bottom:var(--spacing-lg)}input,textarea,select{width:100%;padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;background:var(--color-bg-primary);color:var(--color-text-primary);transition:all .2s ease;font-family:inherit;box-sizing:border-box}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}input:disabled,textarea:disabled,select:disabled{background:var(--color-bg-secondary);color:var(--color-text-muted);cursor:not-allowed}button{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;background:var(--color-bg-primary);color:var(--color-text-primary);font-family:inherit;box-sizing:border-box;min-height:36px;gap:var(--spacing-xs)}button:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}button:active:not(:disabled){transform:translateY(0);transition:transform .1s ease}button:disabled{cursor:not-allowed;opacity:.6;background:var(--color-bg-secondary);color:var(--color-text-muted)}button:focus{outline:2px solid rgba(59,130,246,.5);outline-offset:2px}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:disabled{background:var(--color-text-secondary)}.btn-secondary{background:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-primary);transform:translateY(-1px)}.btn-danger{background:var(--color-danger);color:#fff;box-shadow:var(--shadow-sm)}.btn-danger:hover:not(:disabled){background:#dc2626;transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-link{background:none!important;border:none!important;color:var(--color-primary)!important;text-decoration:underline;cursor:pointer;font-size:.875rem;padding:2px 4px!important;margin-left:4px;display:inline;min-height:auto!important;transition:color .2s ease}.btn-link:hover{color:#2563eb!important;background:none!important;text-decoration:underline;transform:none!important;box-shadow:none!important}.auth-buttons-row{display:flex;gap:var(--spacing-sm);width:100%}.btn-auth-action{flex:1;min-height:36px;font-size:.875rem;padding:var(--spacing-xs) var(--spacing-sm)}.field-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.field-group label{font-size:.875rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.125rem}.field-group input,.field-group textarea{padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;background:var(--color-bg-primary);color:var(--color-text-primary);transition:all .2s ease;box-shadow:0 1px 2px #00000005}.field-group input:focus,.field-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a;transform:translateY(-1px)}.popup-content-grid{display:grid;gap:2px;padding:var(--spacing-xs) var(--spacing-sm);max-height:calc(85vh - 60px);overflow-y:auto;max-width:100%}.form-row-dual{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm);max-width:100%}.form-row-dual .field-group input,.form-row-dual .field-group textarea{max-width:95%}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--color-border);background:var(--color-bg-primary)}.modal-header h2{margin:0;font-size:1.5rem;font-weight:600;color:var(--color-text-primary)}.close-button{width:32px;height:32px;border:none;border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-button:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.time-section{background:var(--color-bg-tertiary);border-radius:var(--radius-lg);padding:var(--spacing-xs);border:1px solid var(--color-border-light);box-shadow:0 1px 3px #0000000d}.timezone-indicator{font-size:.875rem;color:var(--color-text-primary);margin-bottom:var(--spacing-xs);font-weight:600;display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:linear-gradient(135deg,#3b82f614,#3b82f608);border-radius:var(--radius-md);border-left:3px solid #3B82F6}.time-inputs{display:grid;grid-template-columns:120px 120px auto;gap:var(--spacing-sm);align-items:end}.time-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.time-field label{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.time-field input{padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.875rem;background:var(--color-bg-primary);color:var(--color-text-primary);font-weight:500;transition:all .2s ease;height:36px;box-sizing:border-box}.time-field input:focus{outline:none;border-color:var(--selected-color, var(--color-primary));box-shadow:0 0 0 3px #3b82f61a}.time-field input[type=time]{position:relative;padding-right:35px;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="%23666" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12,6 12,12 16,14"></polyline></svg>');background-repeat:no-repeat;background-position:right 8px center;background-size:16px 16px;cursor:pointer}.time-field input[type=time]::-webkit-calendar-picker-indicator{opacity:0;position:absolute;right:0;top:0;width:35px;height:100%;cursor:pointer;background:transparent}.time-field input[type=time]::-moz-calendar-picker-indicator{opacity:0;position:absolute;right:0;top:0;width:35px;height:100%;cursor:pointer;background:transparent}.time-field input[type=time]{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="%23666" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polyline points="12,6 12,12 16,14"></polyline></svg>'),none}@supports (-moz-appearance: none){.time-field input[type=time]{padding-right:30px}.time-field input[type=time]::-moz-calendar-picker-indicator{opacity:1!important;background:transparent!important;color:#666!important;width:20px!important;height:20px!important;border:none!important;margin:0!important}}.time-field input[type=time]::-webkit-inner-spin-button,.time-field input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.timezone-btn{padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.7rem;font-weight:600;cursor:pointer;transition:all .2s ease;height:36px;display:flex;align-items:center;justify-content:center;gap:2px;box-sizing:border-box;white-space:nowrap;min-width:60px}.timezone-btn:hover{background:#60a5fa!important;color:#fff!important;transform:translateY(-1px);box-shadow:0 2px 6px #00000026}.recurring-section{display:grid;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border-light);transition:all .3s ease;box-shadow:0 1px 3px #0000000d}.recurring-section.with-color{border-left:4px solid var(--selected-color, var(--color-primary));background:linear-gradient(90deg,rgba(59,130,246,.02) 0%,var(--color-bg-secondary) 20%)}.recurring-toggle{display:flex;align-items:center;gap:var(--spacing-sm);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border-light)}.recurring-toggle input[type=checkbox]{width:18px;height:18px;margin:0;transform:scale(1.1);accent-color:var(--selected-color, var(--color-primary));cursor:pointer}.recurring-toggle label{font-size:.875rem;font-weight:600;color:var(--color-text-primary);cursor:pointer;margin:0}.recurring-details{display:grid;gap:var(--spacing-xs);animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.date-range{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--spacing-xs);align-items:center;background:var(--color-bg-primary);padding:var(--spacing-xs);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:0 1px 2px #00000005}.date-range span{font-size:.7rem;color:var(--color-text-muted);text-align:center;font-weight:600;text-transform:uppercase;letter-spacing:.025em;padding:0 var(--spacing-xs);display:flex;align-items:center;justify-content:center}.date-range input{padding:var(--spacing-xs);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.8rem;background:var(--color-bg-primary);color:var(--color-text-primary);font-weight:500;transition:all .2s ease;max-width:100px}.date-range input:focus{outline:none;border-color:var(--selected-color, var,--color-primary);box-shadow:0 0 0 3px #3b82f61a}.day-selector{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:var(--color-bg-primary);padding:var(--spacing-xs);border-radius:var(--radius-md);border:1px solid var(--color-border);box-shadow:0 1px 2px #00000005}.day-btn{padding:2px;background:var(--color-bg-primary);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:.65rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center;height:28px;min-width:28px;display:flex;align-items:center;justify-content:center;text-transform:uppercase;letter-spacing:.025em;box-sizing:border-box}.day-btn:hover{background:var(--color-bg-tertiary);border-color:var(--selected-color, var,--color-primary);transform:translateY(-1px);box-shadow:0 2px 4px #0000000d}.day-btn.active{background:var(--selected-color, var,--color-primary);color:#fff;border-color:var(--selected-color, var,--color-primary);box-shadow:0 2px 6px #00000026;transform:translateY(-1px)}.bottom-section{display:flex;flex-direction:column;gap:var(--spacing-sm);padding-top:var(--spacing-xs);border-top:1px solid var(--color-border-light);margin-top:var(--spacing-xs)}.color-section{display:flex;align-items:center;gap:6px;justify-content:flex-start}.color-section label{font-size:.75rem;font-weight:600;color:var(--color-text-primary);display:flex;align-items:center;gap:3px;white-space:nowrap;flex-shrink:0}.color-name-indicator{font-size:.7rem;color:var(--color-text-muted);font-weight:400}.color-palette{display:flex;gap:3px;flex-wrap:nowrap;align-items:center}.color-swatch{width:16px;height:16px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;position:relative;flex-shrink:0;box-shadow:0 2px 4px #0000001a}.color-swatch:hover{box-shadow:0 3px 8px #00000026}.color-swatch.active{border-color:#1e293b;box-shadow:0 0 0 1px #fff,0 2px 8px #0003}.action-buttons{display:flex;gap:4px;align-items:center;justify-content:center;flex-shrink:0}.action-buttons .btn{padding:var(--spacing-xs) 12px;border-radius:var(--radius-md);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;outline:none;display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);min-width:65px;height:36px;text-decoration:none;box-shadow:0 1px 3px #0000001a}.action-buttons .btn-primary{background:var(--color-primary);color:#fff}.action-buttons .btn-primary:hover:not(:disabled){background:#2563eb;transform:translateY(-1px);box-shadow:var(--shadow-md)}.action-buttons .btn-secondary{background:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.action-buttons .btn-secondary:hover:not(:disabled){background:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-primary);transform:translateY(-1px)}.action-buttons .btn-danger{background:var(--color-danger);color:#fff}.action-buttons .btn-danger:hover:not(:disabled){background:#dc2626;transform:translateY(-1px);box-shadow:var(--shadow-md)}@media (max-width: 640px){.bottom-section{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.color-section,.action-buttons{justify-content:center}}.popup-header{padding:var(--spacing-sm) var(--spacing-lg);border-bottom:1px solid var(--color-border-light);display:flex;align-items:center;justify-content:space-between;background:var(--color-bg-primary)}.popup-header-content{flex:1}.header-left-section{display:flex;align-items:center;gap:var(--spacing-sm)}.popup-header-title{margin:0;font-size:1.1rem;font-weight:600;color:var(--color-text-primary)}.date-button-compact{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.8rem;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:all .2s ease}.date-button-compact:hover{background:var(--color-bg-tertiary);border-color:var(--color-primary);transform:translateY(-1px)}.hidden-date-input{position:absolute;left:-9999px;opacity:0;pointer-events:none}.timezone-display-compact{display:flex;gap:2px;padding:var(--spacing-xs);background:var(--color-bg-secondary);border-radius:var(--radius-lg);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;margin:var(--spacing-sm) 0;box-shadow:inset 0 1px 3px #0000001a}.timezone-display-compact::-webkit-scrollbar{display:none}.timezone-card-compact{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xs) var(--spacing-sm);background:#ffffffe6;border:none;border-radius:var(--radius-md);cursor:default;transition:all .2s ease;min-width:65px;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;position:relative;color:var(--color-text-primary);box-shadow:0 1px 3px #0000001a}.timezone-card-compact.pacific{background:linear-gradient(135deg,#3b82f61a,#3b82f60d);border-left:3px solid #3B82F6}.timezone-card-compact.central{background:linear-gradient(135deg,#10b9811a,#10b9810d);border-left:3px solid #10B981}.timezone-card-compact.eastern{background:linear-gradient(135deg,#8b5cf61a,#8b5cf60d);border-left:3px solid #8B5CF6}.timezone-card-compact.thailand{background:linear-gradient(135deg,#f59e0b1a,#f59e0b0d);border-left:3px solid #F59E0B}.timezone-card-compact.china{background:linear-gradient(135deg,#ef44441a,#ef44440d);border-left:3px solid #EF4444}.timezone-card-compact.primary-timezone{order:-1;background:#3b82f626;border-left:4px solid #3B82F6;font-weight:600;box-shadow:0 2px 6px #3b82f633}.timezone-abbr-compact{font-size:.7rem;font-weight:600;color:var(--color-text-primary);margin-bottom:1px;letter-spacing:.5px}.timezone-time-compact{font-size:.75rem;font-weight:500;color:var(--color-text-secondary);line-height:1}.day-shift-compact{font-size:.55rem;color:var(--color-text-muted);font-weight:600;margin-left:2px;background:#0000001a;padding:1px 4px;border-radius:3px;text-transform:uppercase;letter-spacing:.3px}.day-shift-inline{font-size:.55rem;color:var(--color-text-muted);font-weight:600;margin-left:4px;background:#0000001a;padding:1px 4px;border-radius:3px;text-transform:uppercase;letter-spacing:.3px}.description-compact{min-height:36px;resize:vertical;font-family:inherit;transition:height .2s ease}.auto-resize-textarea{resize:none;overflow:hidden;min-height:36px;max-height:120px;transition:height .2s ease}.date-input-compact{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.8rem;background:var(--color-bg-primary);color:var(--color-text-primary);font-weight:500;transition:all .2s ease;max-width:220px;min-width:200px;box-sizing:border-box;position:relative;padding-right:40px}.date-input-compact:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}input[type=date]{position:relative;padding-right:45px;background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="%23666" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>');background-repeat:no-repeat;background-position:right 12px center;background-size:16px 16px;cursor:pointer}input[type=date]::-webkit-calendar-picker-indicator{opacity:0;position:absolute;right:0;top:0;width:45px;height:100%;cursor:pointer;background:transparent}input[type=date]::-moz-calendar-picker-indicator{opacity:0;position:absolute;right:0;top:0;width:45px;height:100%;cursor:pointer;background:transparent}@supports (-moz-appearance: none){input[type=date]{padding-right:30px}input[type=date]::-moz-calendar-picker-indicator{opacity:1!important;background:transparent!important;color:#666!important;width:20px!important;height:20px!important;border:none!important;margin:0!important}}input[type=date]::-webkit-inner-spin-button,input[type=date]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.fab{position:fixed;bottom:24px;right:24px;width:56px;height:56px;background:var(--color-primary);color:#fff;border:none;border-radius:50%;font-size:24px;font-weight:300;cursor:pointer;box-shadow:0 4px 12px #3b82f64d,0 2px 6px #00000026;transition:all .2s ease;z-index:1000;display:flex;align-items:center;justify-content:center;line-height:1}.fab:hover{background:#2563eb!important;color:#fff!important;transform:translateY(-2px) scale(1.05);box-shadow:0 6px 20px #0006,0 4px 10px #0003}.fab:active{transform:translateY(-1px) scale(1.02);box-shadow:0 3px 8px #3b82f64d,0 2px 4px #00000026}@media (max-width: 768px){.fab{bottom:20px;right:20px;width:52px;height:52px;font-size:22px}}.welcome-modal{max-width:500px;width:90vw}.welcome-modal .modal-content{background:linear-gradient(135deg,#fff,#f8fafc);border-radius:20px;overflow:hidden;box-shadow:0 25px 80px #00000026,0 10px 25px #0000001a;border:1px solid rgba(255,255,255,.8)}.welcome-modal .modal-header{padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-sm) var(--spacing-lg);border-bottom:none;display:flex;justify-content:space-between;align-items:center}.step-indicator{display:flex;gap:var(--spacing-xs)}.step-dot{width:8px;height:8px;border-radius:50%;background:var(--color-border);transition:all .3s ease}.step-dot.active{background:var(--color-primary);transform:scale(1.2)}.welcome-modal .modal-close{background:#94a3b81a;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:var(--color-text-secondary)}.welcome-modal .modal-close:hover{background:#94a3b833;transform:scale(1.1)}.welcome-content{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-lg) var(--spacing-lg);text-align:center}.welcome-icon{margin-bottom:var(--spacing-lg);color:var(--color-primary);display:flex;justify-content:center;align-items:center;opacity:.8}.welcome-icon svg{width:32px!important;height:32px!important}.welcome-title{font-size:1.75rem;font-weight:700;margin-bottom:var(--spacing-sm);color:var(--color-text-primary);line-height:1.3}.welcome-description{font-size:1rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);line-height:1.6;max-width:400px;margin-left:auto;margin-right:auto}.welcome-features{list-style:none;padding:0;margin:0 0 var(--spacing-xl) 0;text-align:left;max-width:350px;margin-left:auto;margin-right:auto}.welcome-feature{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);font-size:.95rem;color:var(--color-text-primary);line-height:1.5}.feature-check{color:var(--color-secondary);font-weight:600;font-size:1rem;min-width:16px;text-align:center}.welcome-actions{padding:0 var(--spacing-lg) var(--spacing-lg) var(--spacing-lg);border-top:1px solid var(--color-border-light);background:#f8fafc80}.action-buttons{display:flex;gap:var(--spacing-sm);justify-content:space-between;align-items:center;padding-top:var(--spacing-lg)}.welcome-modal .btn{padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-lg);font-weight:600;font-size:.9rem;transition:all .2s ease;border:none;cursor:pointer;white-space:nowrap}.welcome-modal .btn-primary{background:linear-gradient(135deg,var(--color-primary) 0%,#60a5fa 100%);color:#fff;box-shadow:0 4px 12px #3b82f64d}.welcome-modal .btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #3b82f666}.welcome-modal .btn-secondary{background:var(--color-bg-primary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.welcome-modal .btn-secondary:hover{background:var(--color-bg-tertiary);border-color:var(--color-text-secondary)}.welcome-modal .btn-text{background:transparent;color:var(--color-text-muted);padding:var(--spacing-sm)}.welcome-modal .btn-text:hover{color:var(--color-text-secondary);background:#94a3b81a}@media (max-width: 480px){.welcome-modal{width:95vw}.welcome-title{font-size:1.5rem}.welcome-description{font-size:.9rem}.action-buttons{flex-direction:column;gap:var(--spacing-xs)}.welcome-modal .btn{width:100%;justify-content:center}}
