: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;display:flex;place-items:center;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: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{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424}body{margin:0;padding:0}.app-container{display:flex;flex-direction:column;height:100vh}.app-header{padding:1rem 2rem;background-color:#1a1a1a;border-bottom:1px solid #333;text-align:center}.app-header h1{margin:0;font-size:1.5rem}.app-header p{margin:.5rem 0 0;color:#888}.app-main{display:flex;flex-grow:1;overflow:hidden}.main-content{flex-grow:1;padding:2rem;overflow-y:auto}.sidebar{width:350px;flex-shrink:0;padding:2rem;background-color:#1e1e1e;border-left:1px solid #333;overflow-y:auto}.sidebar-section{margin-bottom:2rem}.sidebar-section h3{margin-top:0;border-bottom:1px solid #444;padding-bottom:.5rem}.calendar-placeholder,.settings-placeholder,.event-editor-placeholder{border:2px dashed #444;border-radius:8px;padding:1rem;text-align:center;color:#888}button{display:block;width:100%;margin-bottom:.5rem;padding:.75rem;border-radius:8px;border:1px solid transparent;font-size:1em;font-weight:500;font-family:inherit;background-color:#373737;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}hr{border:none;border-top:1px solid #444;margin:1rem 0}.settings-panel{display:flex;flex-direction:column;gap:10px}.settings-panel .setting-item{display:flex;align-items:center;gap:10px}.settings-panel .setting-item label{flex-grow:1;text-align:left}.settings-panel .setting-item input[type=color]{width:40px;height:25px;border:none;padding:0;cursor:pointer}.settings-panel .setting-item .hex-input{width:80px;padding:5px;border-radius:4px;border:1px solid #555;background-color:#333;color:#fff;text-align:center}.event-editor .form-group{margin-bottom:1rem}.event-editor .form-group label{display:block;margin-bottom:.5rem}.event-editor .form-group input[type=text],.event-editor .form-group input[type=date]{width:calc(100% - 12px);padding:8px;border-radius:4px;border:1px solid #555;background-color:#333;color:#fff}.event-editor .form-group input[type=color]+.hex-input{margin-left:10px;width:80px}.event-editor .form-actions{display:flex;gap:10px;margin-top:1.5rem}.event-editor .form-actions button{width:auto;flex-grow:1;margin-bottom:0}.event-editor .form-actions .delete-button{background-color:#e74c3c}.event-editor .form-actions .clear-button{background-color:#555}.calendar-display{display:flex;flex-direction:column;width:100%;height:100%;background-color:var(--background-color, #1a1a1a);color:var(--text-color, #f0f0f0);padding:10px;box-sizing:border-box}.calendar-title{text-align:center;font-size:2rem;margin-bottom:10px;flex-shrink:0;color:var(--title-color, #fff)}.year-planner-table{width:100%;border-collapse:collapse;table-layout:fixed;flex-grow:1}.year-planner-table th,.year-planner-table td{border:1px solid var(--table-border-color, #444);text-align:center;vertical-align:top;font-size:.75rem;overflow:hidden;white-space:normal;word-wrap:break-word;padding:2px;box-sizing:border-box}.year-planner-table th{background-color:var(--day-header-bg-color, #333);color:var(--day-header-text-color, #fff);font-weight:700;padding:4px 0}.year-planner-table tbody tr{height:60px}.month-header{width:90px;font-size:1rem!important;background-color:var(--month-header-bg-color, #2c3e50);vertical-align:middle;color:var(--text-color, #f0f0f0)}.day-cell{padding:2px}.day-of-week{display:block;font-size:.65rem;color:var(--day-cell-text-color, #FFF);margin-bottom:2px}.event-title{display:block;font-size:.7rem;font-weight:700}.invalid-day{background-color:var(--invalid-day-bg-color, #2b2b2b)}.weekend{background-color:var(--weekend-bg-color, #3a3a3a)}
