.event{color:#fff;padding:5px 8px;height:28px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85em;line-height:18px;-webkit-user-select:none;user-select:none;position:relative;box-sizing:border-box;width:100%;margin-bottom:2px}.event.position-start{border-radius:4px 0 0 4px;padding:5px 0 5px 8px}.event.position-end{border-radius:0 4px 4px 0;padding:5px 8px 5px 0}.event.position-middle{border-radius:0;padding:5px 0}.event.position-single{border-radius:4px}.event-name{vertical-align:middle}.resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px;cursor:ew-resize}.event.draft{opacity:.7;pointer-events:none}@media (max-width: 600px){.event{font-size:.7em;height:20px;padding:2px 4px;line-height:16px}}.calendar-container{flex:1;overflow-y:scroll;position:relative}.calendar-header{text-align:center;background-color:#fff;border-bottom:1px solid #ddd;position:sticky;top:0;z-index:10}.year-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 15px;background-color:#f8f9fa;border-bottom:1px solid #eee}.header-actions-left{display:flex;gap:10px;justify-content:flex-start}.header-actions-right{display:flex;gap:10px;justify-content:flex-end}.calendar-header .current-year{font-size:1.5em;font-weight:700;color:#333;text-align:center}.header-actions-left button,.header-actions-right button{padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:.9em;display:flex;align-items:center;gap:5px}.header-actions-left button:hover,.header-actions-right button:hover{background-color:#e9ecef}.header-actions-left button:disabled,.header-actions-right button:disabled{opacity:.5;cursor:default}.weekday-row{display:grid;grid-template-columns:repeat(7,1fr);padding:10px 0;font-weight:500;color:#6c757d;background-color:#fff}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid #ddd;border-left:1px solid #ddd}.day-cell{background-color:#fff;min-height:120px;position:relative;display:flex;flex-direction:column;min-width:0;border-right:1px solid #ddd;border-bottom:1px solid #ddd;box-sizing:border-box}.day-cell.empty{background-color:#fafafa}.day-number{display:flex;justify-content:flex-end;align-items:baseline;font-size:1.1em;color:#6c757d;padding:2px 5px;position:relative;z-index:1;line-height:1;height:30px;box-sizing:border-box}.day-cell.today:before{content:"";position:absolute;top:0;left:0;right:0;height:30px;background-image:linear-gradient(to bottom,#ffc107,transparent);z-index:0}.day-cell.today .day-number span{font-weight:700}.day-cell.weekend{background-color:#f5f5f5}.day-cell.light-blue-month{background-color:#e7f5ff}.day-cell.light-blue-month.weekend{background-color:#d0eaff}.month-name{font-weight:700;color:#333;font-size:1.1em;margin-right:5px;white-space:nowrap;overflow:hidden}.month-abbr{display:none}.month-full{display:inline}.events-container{flex-grow:1;display:flex;flex-direction:column}@media (max-width: 640px){.month-full{display:none}.month-abbr{display:inline}}@media (orientation: landscape) and (max-height: 500px){.year-row{display:none}.weekday-row{font-size:.75em;padding:4px 0}.day-cell{min-height:70px}.day-number{font-size:.82em;height:22px;padding:2px 3px;overflow:hidden}.month-full{display:inline}.month-abbr{display:none}.month-name{font-size:1em;max-width:100%}.day-cell.today:before{height:22px}}@media (max-width: 600px){.year-row{display:none}.month-name{font-size:1.1em}.day-cell{min-height:130px}.day-number{font-size:.9em;height:30px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;padding:25px;border-radius:8px;width:90%;max-width:450px;box-shadow:0 4px 15px #0003}.modal-content h2{margin-top:0;margin-bottom:20px;font-size:1.5rem}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:8px;font-weight:700;font-size:.9rem}.form-group input,.form-group textarea{width:100%;padding:10px;box-sizing:border-box;border:1px solid #ccc;border-radius:4px;font-size:1rem}.form-group input[type=color]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:40px;height:40px;border:none;padding:0;background-color:transparent;cursor:pointer}.form-group input[type=color]::-webkit-color-swatch-wrapper{padding:0}.form-group input[type=color]::-webkit-color-swatch{border:1px solid #ccc;border-radius:4px}.modal-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px}.modal-actions button{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:1rem}.button-primary{background-color:#007bff;color:#fff}.button-secondary{background-color:#f0f0f0;color:#333}.button-danger{background-color:#dc3545;color:#fff}.form-group.date-range{display:flex;align-items:center;justify-content:space-between}.form-group.date-range .date-input-wrapper{flex:1}.form-group.date-range .date-separator{margin:0 10px;font-size:1.2rem;font-weight:700}.color-button{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:1rem;color:#fff}.app{display:flex;flex-direction:column;height:100vh;background-color:#fff}.app-controls{display:flex;align-items:center;gap:10px;padding:8px 16px;background-color:#f8f9fa;border-bottom:1px solid #dee2e6;flex-shrink:0}.app-brand{display:flex;align-items:center;gap:10px}.app-logo{width:32px;height:32px;flex-shrink:0}.app-title-group{display:flex;flex-direction:column;align-items:flex-start}.app-title{margin:0;font-size:1.1em;font-weight:600;line-height:1}.app-version{font-size:.7em;color:#888}.app-current-year{font-size:1.5em;font-weight:700;color:#333;flex:1;text-align:center;display:none}.app-controls-calendar{display:none;gap:8px;flex-shrink:0}.app-controls-group{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto}.app-controls button{background-color:#fff;border:1px solid #ccc;border-radius:4px;padding:5px 10px;cursor:pointer;display:flex;align-items:center;gap:5px;font-size:.9em;white-space:nowrap}.app-controls button:disabled{opacity:.5;cursor:not-allowed}.app-controls button:hover:not(:disabled){background-color:#f0f0f0;border-color:#999}.user-profile{display:flex;align-items:center}.user-info{display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;border:1px solid #dee2e6}.login-btn{display:flex;align-items:center;gap:8px!important;font-weight:500;color:#3c4043}.logout-btn{color:#d93025!important;font-size:.85em!important}.loading-screen{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.2em;color:#666;background-color:#f8f9fa}@media (orientation: landscape) and (max-height: 500px){.app-controls{padding:4px 10px;gap:6px}.app-controls-calendar{display:flex}.app-current-year{display:block}.app-controls-group{margin-left:0}.load-btn,.save-btn{display:none}.app-logo{display:block!important;width:22px;height:22px}.app-controls-group button.load-btn,.app-controls-group button.save-btn{display:none!important}.app-title{font-size:.88em}.app-brand{margin-right:15px}.app-version{display:block;font-size:.55em}.app-current-year{font-size:1.1em}.app-controls button{padding:3px 7px;font-size:.78em;gap:3px}.btn-label{display:inline}.user-avatar{width:24px;height:24px}.logout-btn{font-size:.72em!important;padding:3px 6px!important}.login-btn{font-size:.78em;padding:3px 7px!important}}@media (max-width: 600px){.app-controls{padding:4px 8px;gap:4px;display:flex;flex-wrap:nowrap;overflow-x:auto}.app-controls-calendar{display:flex}.app-current-year{display:block;font-size:1em;flex:0 0 auto;margin:0 5px}.app-controls-group{margin-left:auto}.app-controls-group button.load-btn,.app-controls-group button.save-btn,.btn-label{display:none!important}.app-brand{margin-right:10px}.app-logo{display:block!important;width:32px;height:32px}.app-title{font-size:.85em}.app-version{font-size:.5em}.app-controls button{padding:4px 6px;min-width:32px;justify-content:center}}
