.svelte-1iu5iby{margin:0;padding:0;box-sizing:border-box}.container.svelte-1iu5iby{max-width:98dvw;margin:0 auto;padding:20px;margin-top:6vmin}.header.svelte-1iu5iby{background:#fff;border-radius:12px;padding:20px 30px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px}.header.svelte-1iu5iby h1:where(.svelte-1iu5iby){font-size:24px;font-weight:600;color:#0f172a}.header-controls.svelte-1iu5iby{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.view-switcher.svelte-1iu5iby{display:flex;gap:5px;background:#f1f5f9;padding:4px;border-radius:8px}.btn-view.svelte-1iu5iby{padding:6px 16px;background:transparent;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;color:#64748b}.btn-view.svelte-1iu5iby:hover{background:#3b82f61a;color:#3b82f6}.btn-view.active.svelte-1iu5iby{background:#3b82f6;color:#fff}.date-navigation.svelte-1iu5iby{display:flex;align-items:center;gap:15px}.btn-nav.svelte-1iu5iby{padding:6px 12px;background:#f1f5f9;border:none;border-radius:6px;font-size:18px;font-weight:600;cursor:pointer;transition:all .2s ease;color:#475569;width:36px;height:36px;display:flex;align-items:center;justify-content:center}.btn-nav.svelte-1iu5iby:hover{background:#e2e8f0;color:#0f172a}.date-display.svelte-1iu5iby{font-size:16px;color:#64748b;font-weight:500;min-width:200px;text-align:center}.controls.svelte-1iu5iby{background:#fff;border-radius:12px;padding:20px 30px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a;display:flex;gap:15px;align-items:center;flex-wrap:wrap}.btn.svelte-1iu5iby{padding:8px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.btn-primary.svelte-1iu5iby{background-color:#3b82f6;color:#fff}.btn-primary.svelte-1iu5iby:hover{background-color:#2563eb;transform:translateY(-1px)}.btn-secondary.svelte-1iu5iby{background-color:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.btn-secondary.svelte-1iu5iby:hover{background-color:#e2e8f0;transform:translateY(-1px)}.calendar-container.svelte-1iu5iby{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a}.calendar-container.week-view{position:relative;display:block!important;background:#fff;border:1px solid #e2e8f0;box-sizing:border-box}.time-grid.svelte-1iu5iby{min-height:600px}.time-grid.week-view{display:flex!important;flex-direction:row;height:70vh;overflow-y:auto;overflow-x:hidden;width:100%;max-width:100%;scrollbar-gutter:stable;min-height:0!important}.time-labels.svelte-1iu5iby{background-color:#f8fafc;border-right:1px solid #e2e8f0}.time-labels.week-labels{padding-top:60px;display:flex;flex-direction:column;width:80px;min-width:80px;flex-shrink:0;height:1500px!important}.time-label{height:60px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#64748b;font-weight:500;border-bottom:1px solid #f1f5f9;flex-shrink:0}.calendar-body.svelte-1iu5iby{position:relative;background:#fff}.calendar-body.week-body{position:relative;display:flex;flex-direction:column;flex-grow:1;min-width:0;height:1500px}.week-header{position:sticky;top:0;z-index:50;background:#f8fafc;border-bottom:2px solid #e2e8f0;display:grid;grid-template-columns:repeat(7,1fr);width:100%;height:60px;box-sizing:border-box}.week-time-slots{display:grid;grid-template-columns:repeat(7,1fr);position:relative;height:1500px}.week-day-header{height:60px;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid #e2e8f0}.week-day-header:last-child{border-right:none}.week-day-name{font-size:12px;color:#64748b;font-weight:600;text-transform:uppercase;margin-bottom:4px}.week-day-number{font-size:18px;color:#0f172a;font-weight:600}.week-day-number.today{background:#3b82f6;color:#fff;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin:0 auto}.time-slot{height:60px;border-bottom:1px solid #f1f5f9;border-right:1px solid #f1f5f9;position:relative;cursor:pointer;transition:background-color .2s ease}.week-time-slots :global(.time-slot:nth-child(7n)){border-right:none}.time-slot:hover{background-color:#f8fafc}.month-container.svelte-1iu5iby{padding:20px}.month-body.svelte-1iu5iby{display:flex;flex-direction:column}.month-header{display:grid;grid-template-columns:repeat(7,1fr);background:#f8fafc;border-bottom:2px solid #e2e8f0;position:sticky;top:0;z-index:20}.month-day-header{padding:12px;text-align:center;font-size:12px;font-weight:600;color:#64748b;text-transform:uppercase;border-right:1px solid #e2e8f0}.month-day-header:last-child{border-right:none}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;gap:1px;background:#e2e8f0}.month-day-cell{--cell-bg: white;background:var(--cell-bg);height:100px;padding:8px;cursor:pointer;transition:background-color .2s ease;position:relative;display:flex;flex-direction:column}.month-day-cell:hover{background:#f8fafc}.month-day-cell.other-month{--cell-bg: #f8fafc;background:var(--cell-bg);color:#94a3b8}.month-day-cell.today{--cell-bg: #dbeafe;background:var(--cell-bg)}.month-day-number{font-size:14px;font-weight:600;color:#0f172a;margin-bottom:4px;flex-shrink:0}.month-day-events{flex:1;min-height:0;display:flex;flex-direction:column;gap:2px;position:relative}.month-day-events:has(.event:nth-child(n+4)):after{content:"";position:absolute;bottom:0;left:0;right:0;height:24px;background:linear-gradient(to top,var(--cell-bg, white),transparent);pointer-events:none;z-index:5}.month-day-cell.other-month .month-day-number{color:#94a3b8}.month-day-cell.today .month-day-number{color:#3b82f6;font-weight:700}.event{border-radius:4px;padding:4px 8px;font-size:11px;font-weight:500;cursor:pointer;box-shadow:0 1px 2px #0000001a;transition:transform .2s ease,box-shadow .2s ease;overflow:hidden;z-index:10;white-space:nowrap;text-overflow:ellipsis}.event:not(.month-event){position:absolute;left:4px;right:4px}.event:hover{transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.event-blue{background-color:#dbeafe;color:#1e40af;border-left:3px solid #3b82f6}.event-green{background-color:#d1fae5;color:#065f46;border-left:3px solid #10b981}.event-purple{background-color:#e9d5ff;color:#6b21a8;border-left:3px solid #8b5cf6}.event-orange{background-color:#fed7aa;color:#c2410c;border-left:3px solid #f97316}.event-red{background-color:#fecaca;color:#b91c1c;border-left:3px solid #ef4444}.month-event{position:relative;flex-shrink:0;padding:4px 8px;font-size:11px;border-radius:4px;width:100%;box-sizing:border-box;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal.svelte-1iu5iby{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal.detail-modal.svelte-1iu5iby{display:flex;align-items:center;justify-content:center}.modal-content.svelte-1iu5iby{position:relative;background:#fff;border-radius:12px;padding:30px;width:90%;max-width:400px;box-shadow:0 20px 25px -5px #0000001a}.modal.svelte-1iu5iby h3:where(.svelte-1iu5iby){margin-bottom:20px;color:#0f172a;font-size:18px;font-weight:600}.form-group.svelte-1iu5iby{margin-bottom:15px}.form-group.svelte-1iu5iby label:where(.svelte-1iu5iby){display:block;margin-bottom:6px;color:#374151;font-weight:500;font-size:14px}.form-group.svelte-1iu5iby input:where(.svelte-1iu5iby),.form-group.svelte-1iu5iby textarea:where(.svelte-1iu5iby),.form-group.svelte-1iu5iby select:where(.svelte-1iu5iby){width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease;color:inherit;background-color:#fff}.form-group.svelte-1iu5iby textarea:where(.svelte-1iu5iby){overflow-y:scroll}.form-group.svelte-1iu5iby input:where(.svelte-1iu5iby):focus,.form-group.svelte-1iu5iby textarea:where(.svelte-1iu5iby):focus,.form-group.svelte-1iu5iby select:where(.svelte-1iu5iby):focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.modal-actions.svelte-1iu5iby{display:flex;gap:10px;margin-top:25px}.modal-actions.svelte-1iu5iby .btn:where(.svelte-1iu5iby){flex:1;justify-content:center}@media(max-width:768px){.container.svelte-1iu5iby{padding:10px}.header.svelte-1iu5iby{flex-direction:column;align-items:flex-start}.header-controls.svelte-1iu5iby{width:100%;flex-direction:column;align-items:stretch}.view-switcher.svelte-1iu5iby{width:100%;justify-content:stretch}.btn-view.svelte-1iu5iby{flex:1}.date-navigation.svelte-1iu5iby{width:100%;justify-content:space-between}.header.svelte-1iu5iby,.controls.svelte-1iu5iby{padding:15px 20px}.controls.svelte-1iu5iby{flex-direction:column;align-items:stretch}.controls.svelte-1iu5iby .btn:where(.svelte-1iu5iby){width:100%;justify-content:center}.time-grid.week-view.svelte-1iu5iby{display:flex;height:1500px}.time-labels.week-labels{width:60px;min-width:60px}.month-day-cell{min-height:60px}.modal-content.svelte-1iu5iby{padding:20px;width:95%}}.detail-modal-content.svelte-1iu5iby{max-width:400px}.modal-header.svelte-1iu5iby{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header.svelte-1iu5iby h3:where(.svelte-1iu5iby){margin:0;color:#0f172a;font-size:20px;font-weight:600}.btn-close.svelte-1iu5iby{background:transparent;border:none;font-size:28px;color:#64748b;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.btn-close.svelte-1iu5iby:hover{background:#f1f5f9;color:#0f172a}.detail-body.svelte-1iu5iby{margin-bottom:20px}.detail-row.svelte-1iu5iby{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid #e2e8f0}.detail-row.svelte-1iu5iby strong:where(.svelte-1iu5iby){color:#374151;font-weight:600;font-size:14px;margin-right:20px}.detail-row.svelte-1iu5iby span:where(.svelte-1iu5iby){color:#64748b;font-size:14px;flex:1}.detail-section.svelte-1iu5iby{margin-top:16px;padding-top:0;border-top:none}.detail-section.svelte-1iu5iby strong:where(.svelte-1iu5iby){display:block;color:#374151;font-weight:600;margin-bottom:8px;font-size:14px}.detail-section.svelte-1iu5iby p:where(.svelte-1iu5iby){margin:0;color:#64748b;line-height:1.6;font-size:14px;word-wrap:break-word;overflow-wrap:break-word;white-space:pre-wrap}.modal-actions.svelte-1iu5iby{display:flex;gap:12px;justify-content:flex-end}.modal-actions.svelte-1iu5iby .btn:where(.svelte-1iu5iby){min-width:100px;justify-content:center}.event-title{font-weight:600;font-size:11px}.event-time{font-size:10px;opacity:.9;margin-top:2px}
