:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg-primary: #f9f9f9;--bg-secondary: #ffffff;--bg-tertiary: #f0f0f0;--bg-hover: #f0f0f0;--bg-active: #e0e0e0;--bg-pressed: #d0d0d0;--bg-card: white;--bg-grid: #f5f5f5;--bg-weekday: #f8f9fa;--bg-input: #fff;--bg-code: #f5f5f5;--text-primary: #333;--text-secondary: #666;--text-heading: #213547;--text-input: #000;--border-primary: #ccc;--border-secondary: #ddd;--border-light: #eee;--accent: #8a35de;--accent-soft: rgba(138, 53, 222, .05);--accent-border: rgba(138, 53, 222, .25);--accent-focus: rgba(138, 53, 222, .3);--accent-outline: rgba(138, 53, 222, .5);--accent-outline-strong: rgba(138, 53, 222, .8);--drag-bg: #e3f2fd;--drag-border: #2196f3;--today-border: #eb4888;--today-text-on-range: #333;--today-bg-on-range: #fff;--day-text-on-range: white;--day-shadow-on-range: rgba(0, 0, 0, .7);--link-color: #646cff;--link-hover: #747bff;--icon-color: #000;--calendar-picker-filter: brightness(0)}[data-theme=dark]{--bg-primary: #1a1a2e;--bg-secondary: #1e1e3a;--bg-tertiary: #252545;--bg-hover: #2a2a4a;--bg-active: #353560;--bg-pressed: #404070;--bg-card: #1e1e3a;--bg-grid: #222244;--bg-weekday: #252548;--bg-input: #252545;--bg-code: #252545;--text-primary: #e0e0e0;--text-secondary: #a0a0b0;--text-heading: #e8e8f0;--text-input: #e0e0e0;--border-primary: #404060;--border-secondary: #353555;--border-light: #2a2a4a;--accent: #a855f7;--accent-soft: rgba(168, 85, 247, .1);--accent-border: rgba(168, 85, 247, .35);--accent-focus: rgba(168, 85, 247, .4);--accent-outline: rgba(168, 85, 247, .5);--accent-outline-strong: rgba(168, 85, 247, .8);--drag-bg: rgba(33, 150, 243, .15);--drag-border: #64b5f6;--today-border: #f472b6;--today-text-on-range: #e0e0e0;--today-bg-on-range: #1e1e3a;--day-text-on-range: white;--day-shadow-on-range: rgba(0, 0, 0, .9);--link-color: #818cf8;--link-hover: #a5b4fc;--icon-color: #e0e0e0;--calendar-picker-filter: brightness(0) invert(1)}a{font-weight:500;color:var(--link-color);text-decoration:inherit}a:hover{color:var(--link-hover)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-heading)}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--bg-primary);cursor:pointer;transition:border-color .25s}button:focus,button:focus-visible{outline:4px auto var(--accent-focus);outline-offset:2px}#root{max-width:none;margin:0;padding:0;text-align:left;width:100%;height:100vh;position:relative;isolation:isolate}.app-container{display:flex;flex-direction:row;height:100vh;width:100%;position:relative;background-color:var(--bg-primary)}@media (max-width: 768px){.app-container{flex-direction:column}.app-container.sidebar-hidden .sidebar{max-height:80px;overflow:hidden}}.sidebar-toggle{position:fixed;top:16px;right:16px;z-index:200;padding:8px 8px 4px;border-radius:50%;background:var(--bg-primary);border:1px solid var(--border-primary);cursor:pointer;display:none;transition:transform .3s ease}.sidebar-hidden .sidebar-toggle{transform:rotate(90deg)}@media (max-width: 768px){.sidebar-toggle{display:block}}.calendar-container{max-width:1200px;margin:0 auto;padding:20px}.app-container.embed-mode{flex-direction:column;position:relative}.app-container.embed-mode .calendar-container,.app-container.embed-mode .calendar-day{cursor:default}.embed-edit-badge{position:fixed;bottom:8px;right:12px;background-color:var(--accent);color:#fff;padding:4px 12px;border-radius:4px;font-size:12px;font-weight:500;text-decoration:none;opacity:.85;transition:opacity .2s;z-index:100}.embed-edit-badge:hover{opacity:1;color:#fff}.sidebar{min-width:324px;padding:16px;display:flex;flex-direction:column;gap:16px;background-color:var(--bg-primary);color:var(--text-primary);overflow-y:auto;overflow-x:hidden;transition:max-height .3s ease;box-sizing:border-box}.sidebar h1{display:block;font-size:1.5em;margin:0;padding:0}.sidebar h3{display:flex;align-items:center;margin:10px 0 0}.sidebar h1,.sidebar h3{border-bottom:1px solid var(--border-light);padding-bottom:5px;font-weight:500}h2{font-weight:500}.logo-cal{color:var(--accent);font-weight:700}.sidebar h3 svg{margin-right:5px}@media (max-width: 768px){.sidebar{width:100%;min-width:0;height:auto;max-height:50vh;border-right:none;border-bottom:1px solid var(--border-primary);position:relative;z-index:10}.sidebar h1{border-bottom:none}}.setting-item{display:flex;justify-content:space-between;align-items:center}.setting-item input{max-width:50%}.event-groups-list{display:flex;flex-direction:column;gap:10px}.event-group-item{display:flex;align-items:center;padding:8px;border:1px solid var(--border-secondary);border-radius:4px;cursor:pointer;background-color:var(--bg-secondary);gap:8px;min-height:30px}.event-group-item .group-name{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:8px;max-width:165px}.event-group-item .group-actions{display:flex;justify-content:flex-end;gap:4px;flex-shrink:0}.event-group-item.editing{cursor:default}.event-group-item.selected{background:linear-gradient(90deg,var(--bg-secondary),var(--accent-soft));background-size:120% 120%;animation:gradient-animation 2s ease infinite;box-shadow:0 0 0 2px var(--accent-border)}@keyframes gradient-animation{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.event-group-item:hover{background-color:var(--bg-hover)}.color-indicator{display:inline-block;width:15px;height:15px;border-radius:50%;margin-right:8px;border:1px solid var(--border-primary);flex-shrink:0}.event-group-item button{margin-left:5px;padding:0;font-size:.8em;background-color:transparent;border:none;cursor:pointer}.event-group-item button:hover svg{opacity:.7}.add-group-button{display:flex;align-items:center;justify-content:center;gap:5px;padding:8px 12px;width:100%;box-sizing:border-box;background:transparent;color:var(--text-primary);font-size:.85em}.add-group-button:hover{background-color:var(--bg-hover);border-color:transparent;transition:background-color .3s ease}.add-group-button:disabled{background-color:var(--bg-hover);color:var(--border-primary);cursor:not-allowed}input{background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-input);font-size:1em}input[type=month]::-webkit-calendar-picker-indicator{filter:var(--calendar-picker-filter)}input.group-name-input{flex-grow:1;margin-right:8px;width:auto;max-width:158px}@media (max-width: 768px){.sidebar{width:100%;min-width:0;height:auto;max-height:50vh;border-right:none;border-bottom:1px solid var(--border-primary);position:relative;z-index:10}.add-group-button{margin-top:15px}.event-group-item{flex-wrap:wrap}.event-group-item .group-name{margin-right:0;margin-bottom:5px;flex-basis:100%;max-width:calc(100% - 104px)}input.group-name-input{max-width:100%}}.sidebar-footer{margin-top:auto}.sidebar-footer-buttons{display:flex;gap:8px;margin-bottom:8px}.footer-button{flex:1;padding:8px 12px;background-color:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:4px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;gap:4px;transition:background-color .2s;color:var(--text-primary)}.footer-button:hover{background-color:var(--bg-active)}.footer-button:active{background-color:var(--bg-pressed)}select{background-color:var(--bg-input);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-input);font-size:1em;padding:4px}.calendar-container{flex:1;padding:10px;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px;align-content:start;background-color:var(--bg-primary);overflow-y:auto;height:100%;box-sizing:border-box;max-width:100%}@media (max-width: 768px){.calendar-container{padding:10px}}@media (max-width: 530px){.calendar-container{grid-template-columns:repeat(auto-fit,100%);width:100%}}.calendar-month{border:1px solid var(--border-light);padding:8px;border-radius:6px;background-color:var(--bg-card);box-shadow:0 1px 2px #0000000d;min-width:0}.calendar-month h3{text-align:center;margin:0 0 8px;color:var(--text-primary);font-size:.9em;font-weight:600}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background-color:var(--bg-grid);padding:1px;border-radius:4px;font-size:.8em}.calendar-grid.weekends-hidden{grid-template-columns:repeat(5,1fr)}.weekday-header{text-align:center;font-weight:600;font-size:.7em;padding:2px;background-color:var(--bg-weekday);color:var(--text-secondary)}.calendar-day{background-color:var(--bg-secondary);border:1px solid transparent;min-height:24px;height:24px;padding:2px;position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .5s ease;display:flex;align-items:center;justify-content:center}.calendar-day:hover{background-color:var(--bg-weekday)}.calendar-day.empty{background-color:transparent;cursor:default}.calendar-day.weekend-hidden{display:none}.calendar-day.today .day-number{color:var(--text-primary);font-weight:700;border:2px solid var(--today-border);border-radius:50%;box-sizing:border-box;width:20px;height:20px;padding:11px;display:flex;align-items:center;justify-content:center}.calendar-day:has(.range-indicator).today .day-number{color:var(--today-text-on-range);background-color:var(--today-bg-on-range);border-color:transparent;text-shadow:none}.calendar-day.dragging{background-color:var(--drag-bg);border:1px dashed var(--drag-border)}.day-number{font-size:.9em;color:var(--text-primary);width:20px;height:20px;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;transition:font-weight .5s ease}.calendar-day:has(.range-indicator) .day-number{color:var(--day-text-on-range);font-weight:700;text-shadow:0 1px 2px var(--day-shadow-on-range)}.range-indicators{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.range-indicator{position:absolute;left:0;right:0;border-radius:2px;transition:opacity .5s ease}.range-indicator:hover{opacity:.9}.calendar-container:focus{outline:2px solid var(--accent-outline);outline-offset:2px}.calendar-container:focus:not(:focus-visible){outline:none}.calendar-day.focused{outline:2px solid var(--accent-outline-strong);outline-offset:-2px;z-index:3}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--bg-secondary);color:var(--text-primary);border-radius:8px;padding:24px;max-width:500px;max-height:80vh;overflow-y:auto;position:relative}.modal-content a{color:var(--accent)}.modal-content h2{margin-top:-10px}.modal-content h2,.modal-content p.footer{margin-bottom:0}.modal-close{position:absolute;top:12px;right:12px;background:none;border:none;cursor:pointer;padding:4px}.instructions-content{margin-top:16px}.instructions-content h3{margin-top:16px;margin-bottom:8px}.instructions-content ul{margin-left:20px}.instructions-content li{margin-bottom:6px}.share-section{margin-top:20px}.share-section h3{margin:0 0 8px}.share-section p{margin:0}.share-tabs{display:inline-flex;margin-top:12px}.share-tabs button{background-color:var(--bg-tertiary);border:none;color:var(--text-primary);cursor:pointer;padding:6px 12px}.share-tabs button:first-child{border-radius:4px 0 0 4px}.share-tabs button:last-child{border-radius:0 4px 4px 0}.share-tabs button+button{margin-left:1px}.share-tabs button.active{background-color:var(--accent);color:#fff}.share-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.share-actions{display:flex;justify-content:flex-end;margin-top:12px}button.icon-btn{display:flex;align-items:center;gap:6px;white-space:nowrap}button.btn{background-color:var(--accent);color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer}button.btn[disabled]{opacity:.6;cursor:not-allowed}input[type=text]{padding:8px;border:1px solid var(--border-primary);border-radius:4px;margin-top:8px;width:100%;box-sizing:border-box;background-color:var(--bg-input);color:var(--text-input)}input[type=text]:focus{border-color:var(--accent);outline:none}.error-message{color:red;margin-top:8px;font-size:14px;text-align:center}.license-actions{display:flex;justify-content:space-between;align-items:center;margin-top:8px}p.pro-description span{color:var(--accent);font-weight:700}p.license-active{display:flex;justify-content:center;gap:8px}pre.copy-text-embed{background-color:var(--bg-code);border:1px solid var(--border-primary);border-radius:4px;padding:8px;overflow-x:auto;font-family:monospace;margin-top:8px;color:var(--text-primary);white-space:nowrap}
