:root{--primary-color:#4caf50;--primary-dark:#388e3c;--primary-light:#66bb6a;--secondary-color:#81c784;--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-tertiary:#e8f5e9;--bg-hover:#f9fdf9;--text-primary:#1a3d1a;--text-secondary:#666;--text-muted:#9e9e9e;--border-color:#e0e0e0;--shadow-sm:0 2px 8px rgba(0,0,0,.1);--shadow-md:0 4px 12px rgba(0,0,0,.15);--shadow-lg:0 10px 40px rgba(0,0,0,.2);--task-crop:linear-gradient(135deg,#a5d6a7,#c8e6c9);--task-irrigation:linear-gradient(135deg,#81d4fa,#b3e5fc);--task-fertilization:linear-gradient(135deg,#fff59d,#fff9c4);--task-harvesting:linear-gradient(135deg,#ffab91,#ffccbc);--task-pest:linear-gradient(135deg,#ef9a9a,#ffcdd2);--task-monitoring:linear-gradient(135deg,#ce93d8,#e1bee7);--task-maintenance:linear-gradient(135deg,#ffcc80,#ffe0b2);--task-harvest:var(--task-harvesting);--task-custom:var(--task-crop)}.calendar-page.rtl{direction:rtl}.calendar-page.rtl .calendar-header .calendar-title{flex-direction:row!important;justify-content:flex-start}.calendar-page.rtl .calendar-header{text-align:right}.calendar-page.rtl .calendar-header .leaf-icon{margin-inline-start:8px;margin-inline-end:0}.calendar-page.rtl .calendar-controls,.calendar-page.rtl .nav-buttons,.calendar-page.rtl .view-switcher{flex-direction:row-reverse}.calendar-page.rtl .day-number{text-align:right}.calendar-page.rtl .current-date-display{text-align:center}.dark{--bg-primary:#1a1a1a;--bg-secondary:#2d2d2d;--bg-tertiary:#1e3a1e;--bg-hover:#2a3d2a;--text-primary:#e8f5e9;--text-secondary:#b0b0b0;--text-muted:#757575;--border-color:#404040;--shadow-sm:0 2px 8px rgba(0,0,0,.3);--shadow-md:0 4px 12px rgba(0,0,0,.4);--shadow-lg:0 10px 40px rgba(0,0,0,.5);--primary-color:#66bb6a;--primary-dark:#4caf50;--primary-light:#81c784}.calendar-page{min-height:100vh;background:var(--bg-primary);padding:20px;color:var(--text-primary);max-width:100vw;overflow-x:hidden}.calendar-header{background:linear-gradient(135deg,var(--primary-color) 0,var(--primary-light) 100%);color:#fff;padding:25px;border-radius:15px;margin-bottom:25px;box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:15px}.dark .calendar-page .calendar-header,.dark .calendar-page .calendar-header .calendar-title{color:#fff}.calendar-title{gap:15px;font-size:2rem;font-weight:600;margin:0}.calendar-title,.leaf-icon{display:flex;align-items:center}.leaf-icon{width:35px;height:35px;background:hsla(0,0%,100%,.2);border-radius:50%;justify-content:center;font-size:1.5rem}.calendar-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;flex-wrap:wrap;gap:15px;max-width:100%;overflow-x:auto}.view-switcher{display:flex;gap:10px;background:var(--bg-primary);padding:5px;border-radius:10px;box-shadow:var(--shadow-sm)}.view-btn{padding:10px 20px;border:none;background:transparent;color:var(--primary-color);cursor:pointer;border-radius:7px;font-weight:500;transition:all .3s}.view-btn.active{background:linear-gradient(135deg,var(--primary-color),var(--primary-light));color:#fff}.view-btn:hover:not(.active){background:var(--bg-tertiary)}.current-date-display{font-size:1.3rem;font-weight:600;color:var(--text-primary);background:var(--bg-primary);padding:10px 20px;border-radius:10px;box-shadow:var(--shadow-sm);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.nav-buttons{display:flex;gap:15px;align-items:center}.add-task-btn,.dark-mode-btn,.nav-btn,.today-btn{padding:10px 20px;border:none;background:linear-gradient(135deg,var(--primary-color),var(--primary-light));color:#fff;cursor:pointer;border-radius:8px;font-weight:500;transition:all .3s;box-shadow:var(--shadow-sm)}.add-task-btn:hover,.dark-mode-btn:hover,.nav-btn:hover,.today-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.dark-mode-btn{background:var(--bg-secondary);color:var(--text-primary);border:2px solid var(--border-color)}.calendar-wrapper{display:flex;gap:20px;position:relative;max-width:100%;overflow:hidden}.calendar-main{flex:1;background:var(--bg-primary);border-radius:15px;padding:25px;box-shadow:var(--shadow-md);min-height:600px;transition:margin-right .3s ease;max-width:100%;overflow-x:auto}.calendar-main.sidebar-open{margin-right:400px}.calendar-page.rtl .calendar-main.sidebar-open{margin-right:0;margin-left:400px}.month-view{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));gap:1px;background:var(--border-color);border:1px solid var(--border-color);border-radius:10px;overflow:hidden;width:100%;max-width:100%}.weekday-header{background:linear-gradient(135deg,var(--primary-light),var(--secondary-color));color:#fff;padding:15px;text-align:center;font-weight:600;font-size:.9rem}.calendar-day{background:var(--bg-primary);min-height:120px;padding:10px;position:relative;transition:all .3s;cursor:pointer;min-width:120px;word-wrap:break-word;overflow:hidden}.calendar-day:hover{background:var(--bg-hover);z-index:1;box-shadow:var(--shadow-sm)}.calendar-day.other-month{background:var(--bg-secondary);opacity:.6}.calendar-day.today{background:var(--bg-tertiary);box-shadow:inset 0 0 0 2px var(--primary-color)}.day-number{font-weight:600;font-size:1rem;margin-bottom:8px;color:var(--text-primary)}.task-more{font-size:.75rem;color:var(--text-secondary);margin-top:5px;text-align:center}.week-view{display:grid;grid-template-columns:100px repeat(7,1fr);gap:1px;background:var(--border-color);border-radius:10px;overflow:hidden;max-height:800px;overflow-y:auto}.week-header{grid-column:span 8;display:grid;grid-template-columns:100px repeat(7,1fr);gap:1px;background:linear-gradient(135deg,var(--primary-light),var(--secondary-color))}.week-header>div{padding:15px;text-align:center;color:#fff;font-weight:600}.time-slot{background:var(--bg-secondary);padding:10px;text-align:center;font-size:.85rem;color:var(--text-secondary);font-weight:500;border-right:1px solid var(--border-color)}.week-day-column{background:var(--bg-primary);min-height:60px;position:relative;padding:5px}.day-view{display:grid;grid-template-columns:100px 1fr;gap:1px;background:var(--border-color);border-radius:10px;overflow:hidden;max-height:800px;overflow-y:auto}.day-header{grid-column:span 2;background:linear-gradient(135deg,var(--primary-light),var(--secondary-color));padding:20px;text-align:center;color:#fff;font-size:1.2rem;font-weight:600}.hour-slot{background:var(--bg-primary);min-height:80px;border-bottom:1px solid var(--border-color);padding:5px}.hour-slot,.task{position:relative}.task{background:var(--task-custom);color:#1b5e20;padding:6px 10px;margin:3px 0;border-radius:6px;font-size:.85rem;cursor:move;transition:all .3s;border-left:4px solid var(--primary-color);display:flex;align-items:center;gap:5px}.task:hover{transform:translateX(3px);box-shadow:var(--shadow-sm)}.task-irrigation{background:var(--task-irrigation);color:#01579b;border-left-color:#039be5}.task-fertilization{background:var(--task-fertilization);color:#f57f17;border-left-color:#f9a825}.task-harvesting{background:var(--task-harvesting)}.task-harvest,.task-harvesting{color:#bf360c;border-left-color:#ff5722}.task-harvest{background:var(--task-harvest)}.task-pest-control{background:var(--task-pest);color:#c62828;border-left-color:#e53935}.task-monitoring{background:var(--task-monitoring);color:#6a1b9a;border-left-color:#8e24aa}.task-maintenance{background:var(--task-maintenance);color:#e65100;border-left-color:#f57c00}.task-custom{background:var(--task-custom);color:#1b5e20;border-left-color:var(--primary-color)}.task-completed{opacity:.6;text-decoration:line-through;background:var(--bg-secondary);color:var(--text-muted);border-left-color:var(--text-muted)}.task-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--primary-color)}.task-icon{font-size:1rem}.task-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-time{font-weight:600;margin-right:5px}.priority-badge{font-size:.9rem;margin-left:auto}.priority-badge.critical{color:#d32f2f}.priority-badge.high{color:#f57c00}.task-delete{opacity:0;background:#ff5252;color:#fff;border:none;padding:2px 6px;border-radius:3px;cursor:pointer;font-size:.75rem;transition:opacity .3s}.task:hover .task-delete{opacity:1}.dragging{opacity:.5;cursor:grabbing}.drag-over{background:var(--bg-tertiary)!important;box-shadow:inset 0 0 0 2px var(--primary-color)}.task-sidebar{position:fixed;right:-420px;top:12.5vh;width:400px;height:75vh;background:var(--bg-primary);box-shadow:var(--shadow-lg);transition:right .3s ease,left .3s ease,top .3s ease,height .3s ease;z-index:1060;overflow-y:auto;pointer-events:none;border-radius:12px 0 0 12px}.task-sidebar.open{right:0;pointer-events:auto}.task-sidebar.rtl{right:auto;left:-420px;direction:rtl;border-radius:0 12px 12px 0}.task-sidebar.rtl.open{left:0}.sidebar-header{background:linear-gradient(135deg,var(--primary-color),var(--primary-light));color:#fff;padding:20px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10}.dark .calendar-page .sidebar-header,.dark .calendar-page .sidebar-header .close-btn,.dark .calendar-page .sidebar-header h3{color:#fff}.sidebar-header h3{margin:0;font-size:1.5rem}.close-btn{background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;line-height:1;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .3s}.close-btn:hover{background:hsla(0,0%,100%,.2)}.sidebar-content{padding:20px}.task-header-section{display:flex;align-items:center;gap:15px;margin-bottom:20px}.task-icon-large{font-size:3rem}.task-header-section h4{flex:1;margin:0;color:var(--text-primary)}.task-meta{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.priority-badge-detail,.status-badge{padding:5px 12px;border-radius:20px;font-size:.85rem;font-weight:500}.badge-pending{background:#fff9c4;color:#f57f17}.badge-in-progress{background:#b3e5fc;color:#01579b}.badge-completed{background:#c8e6c9;color:#1b5e20}.badge-skipped{background:#ffccbc;color:#bf360c}.badge-cancelled{background:#ffcdd2;color:#c62828}.priority-low{background:#e0e0e0;color:#616161}.priority-medium{background:#fff9c4;color:#f57f17}.priority-high{background:#ffccbc;color:#d84315}.priority-critical{background:#ffcdd2;color:#c62828}.detail-section{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--border-color)}.detail-section:last-child{border-bottom:none}.detail-section h5{color:var(--text-primary);margin-bottom:10px;font-size:1.1rem}.detail-item{margin-bottom:8px;color:var(--text-secondary)}.detail-item strong{color:var(--text-primary);margin-right:5px}.sidebar-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}.sidebar-actions .btn{width:100%;padding:12px;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:all .3s}.btn-primary{background:linear-gradient(135deg,var(--primary-color),var(--primary-light));color:#fff}.btn-success{background:linear-gradient(135deg,#66bb6a,#81c784);color:#fff}.btn-warning{background:linear-gradient(135deg,#ffa726,#ffb74d);color:#fff}.btn-danger{background:linear-gradient(135deg,#ef5350,#e57373);color:#fff}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.action-form{background:var(--bg-secondary);padding:15px;border-radius:8px;margin-top:10px}.action-form h5{margin-bottom:10px;color:var(--text-primary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);backdrop-filter:blur(5px);z-index:2000;display:flex;justify-content:center;align-items:center;animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-primary);padding:30px;border-radius:15px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp .3s}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.modal-header h2{color:var(--text-primary);margin:0}.close-modal{background:none;border:none;font-size:2rem;cursor:pointer;color:var(--text-secondary);transition:color .3s;line-height:1}.close-modal:hover{color:#ff5252}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:var(--text-primary);font-weight:500}.form-control{width:100%;padding:12px;border:2px solid var(--border-color);border-radius:8px;font-size:1rem;background:var(--bg-primary);color:var(--text-primary);transition:border-color .3s}.form-control:focus{outline:none;border-color:var(--primary-color)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-buttons{display:flex;gap:10px;justify-content:flex-end;margin-top:25px}.calendar-legend{display:flex;gap:20px;margin-top:20px;padding:15px;background:var(--bg-primary);border-radius:10px;box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:center}.legend-item{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-primary)}.legend-color{width:20px;height:20px;border-radius:4px;border:2px solid #fff;box-shadow:var(--shadow-sm)}@media (max-width:1024px){.calendar-main,.calendar-page{padding:15px}.month-view{grid-template-columns:repeat(7,minmax(100px,1fr))}.calendar-day{min-height:100px;min-width:100px;padding:8px}}@media (max-width:768px){.calendar-page{padding:10px}.calendar-controls{flex-direction:column;align-items:stretch;gap:10px}.current-date-display{font-size:1.1rem;padding:8px 12px}.nav-buttons{flex-wrap:wrap;gap:8px}.add-task-btn,.nav-btn,.today-btn{padding:8px 12px;font-size:.9rem}.nav-buttons,.view-switcher{justify-content:center}.calendar-wrapper{flex-direction:column}.task-sidebar{width:100%;right:-100%}.task-sidebar.rtl{left:-100%;right:auto}.calendar-main.sidebar-open{margin-right:0}.calendar-main{padding:10px}.month-view{font-size:.8rem;grid-template-columns:repeat(7,minmax(80px,1fr))}.calendar-day{min-height:80px;min-width:80px;padding:5px}.day-number{font-size:.9rem}.task{font-size:.75rem;padding:4px 6px;margin:2px 0}.task-text{font-size:.7rem}.form-row{grid-template-columns:1fr}}@media (max-width:480px){.calendar-page{padding:5px}.calendar-header{padding:15px;margin-bottom:15px}.calendar-title{font-size:1.5rem;gap:10px}.leaf-icon{width:25px;height:25px;font-size:1.2rem}.calendar-main{padding:8px}.current-date-display{font-size:1rem;padding:6px 10px}.view-switcher{padding:3px;gap:5px}.view-btn{padding:6px 12px;font-size:.8rem}.add-task-btn,.nav-btn,.today-btn{padding:6px 10px;font-size:.8rem}.month-view{grid-template-columns:repeat(7,minmax(60px,1fr));gap:.5px}.calendar-day{min-height:60px;min-width:60px;padding:3px}.day-number{font-size:.8rem;margin-bottom:4px}.task{font-size:.65rem;padding:2px 4px;margin:1px 0}.task-text{font-size:.6rem}.weekday-header{padding:8px 4px;font-size:.75rem}.task-more{font-size:.65rem}.calendar-legend{flex-direction:column;gap:10px;padding:10px}.legend-item{font-size:.8rem}.legend-color{width:16px;height:16px}}.loading-spinner{display:inline-block;width:20px;height:20px;border-top:3px solid var(--bg-secondary);border:3px solid var(--bg-secondary);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.dark .calendar-page .modal-content{--bs-primary:#4caf50;--bs-primary-rgb:76,175,80;--bs-focus-ring-color:rgba(76,175,80,.35);--bs-btn-bg:#4caf50;--bs-btn-border-color:#4caf50;--bs-btn-hover-bg:#388e3c;--bs-btn-hover-border-color:#388e3c;--bs-btn-active-bg:#388e3c;--bs-btn-active-border-color:#388e3c;--bs-btn-color:#fff;--bs-btn-hover-color:#fff;--bs-btn-active-color:#fff}.dark .calendar-page .modal-content .form-buttons .btn.btn-primary{background:linear-gradient(135deg,#4caf50,#66bb6a)!important;background-color:#4caf50!important;border-color:#4caf50!important;color:#fff!important}.dark .calendar-page .modal-content .form-buttons .btn.btn-primary:active,.dark .calendar-page .modal-content .form-buttons .btn.btn-primary:focus,.dark .calendar-page .modal-content .form-buttons .btn.btn-primary:hover{background:linear-gradient(135deg,#388e3c,#4caf50)!important;background-color:#388e3c!important;border-color:#388e3c!important;color:#fff!important;box-shadow:0 0 0 .25rem rgba(76,175,80,.35)!important}.dark .calendar-page .modal-content .form-check-input:focus,.dark .calendar-page .modal-content .form-control:focus,.dark .calendar-page .modal-content .form-select:focus,.dark .calendar-page .modal-content input[type=date]:focus,.dark .calendar-page .modal-content input[type=number]:focus,.dark .calendar-page .modal-content input[type=text]:focus,.dark .calendar-page .modal-content input[type=time]:focus,.dark .calendar-page .modal-content select.form-control:focus,.dark .calendar-page .modal-content textarea:focus{border-color:#4caf50!important;box-shadow:0 0 0 .25rem rgba(76,175,80,.35)!important;outline:none!important}