.calendar-page{max-width:1200px;margin:0 auto;padding:1.5rem 1rem}.calendar-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.calendar-header h1{color:var(--text-primary);margin:0;font-size:1.75rem;font-weight:700}.calendar-nav{align-items:center;gap:.75rem;display:flex}.calendar-nav-btn{border:1px solid var(--border-color);background:var(--card-bg);width:2.25rem;height:2.25rem;color:var(--text-primary);cursor:pointer;border-radius:.5rem;justify-content:center;align-items:center;transition:background .15s,border-color .15s;display:flex}.calendar-nav-btn:hover{background:var(--hover-bg);border-color:var(--accent-blue)}.calendar-month-label{color:var(--text-primary);text-align:center;min-width:160px;font-size:1.125rem;font-weight:600}.calendar-today-btn{border:1px solid var(--border-color);background:var(--card-bg);color:var(--text-primary);cursor:pointer;border-radius:.5rem;padding:.375rem .875rem;font-size:.85rem;transition:background .15s}.calendar-today-btn:hover{background:var(--hover-bg)}.calendar-legend{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:1.25rem;font-size:.8rem;display:flex}.legend-item{align-items:center;gap:.375rem;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.legend-dot.ga{background:#22c55e}.legend-dot.preview{background:#a855f7}.legend-dot.deadline{background:#f97316}.calendar-grid{border:1px solid var(--border-color);background:var(--card-bg);border-radius:.75rem;overflow:hidden}.calendar-weekdays{background:var(--hover-bg);border-bottom:1px solid var(--border-color);grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekday{text-align:center;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;padding:.625rem 0;font-size:.75rem;font-weight:600}.calendar-days{grid-template-columns:repeat(7,1fr);display:grid}.calendar-day{border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);background:var(--card-bg);min-width:0;min-height:90px;padding:.5rem;transition:background .1s;overflow:hidden}.calendar-day:nth-child(7n){border-right:none}.calendar-day.other-month{background:var(--hover-bg);opacity:.6}.calendar-day.today .day-number{background:var(--accent-blue);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;font-weight:700;display:flex}.day-number{color:var(--text-secondary);margin-bottom:.375rem;font-size:.8rem;font-weight:500}.day-events{flex-direction:column;gap:2px;display:flex}.day-event{cursor:pointer;color:#fff;text-overflow:ellipsis;white-space:nowrap;border-radius:3px;padding:2px 5px;font-size:.7rem;line-height:1.3;text-decoration:none;transition:opacity .15s;display:block;overflow:hidden}.day-event:hover{opacity:.85;color:#fff}.day-event.ga{background:#16a34a}.day-event.preview{background:#9333ea}.day-event.deadline{background:#ea580c}.day-event-overflow{color:var(--text-secondary);padding:1px 4px;font-size:.68rem}.calendar-loading{min-height:400px;color:var(--text-secondary);justify-content:center;align-items:center;font-size:1rem;display:flex}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.calendar-premium-notice{color:var(--text-secondary);background:linear-gradient(135deg,#6366f114,#a855f714);border:1px solid #6366f140;border-radius:.625rem;margin-top:1rem;padding:.875rem 1.125rem;font-size:.875rem}.calendar-premium-notice a{color:var(--accent-blue);font-weight:500}.calendar-breadcrumb{color:var(--text-secondary);align-items:center;gap:.375rem;margin-bottom:1rem;font-size:.875rem;display:flex}.calendar-breadcrumb a{color:var(--text-secondary);text-decoration:none}.calendar-breadcrumb a:hover{color:var(--accent-blue)}.calendar-stats{flex-wrap:wrap;gap:1rem;margin-bottom:1.25rem;display:flex}.calendar-stat-badge{border:1px solid;border-radius:.5rem;align-items:center;gap:.375rem;padding:.375rem .75rem;font-size:.8rem;font-weight:500;display:flex}.calendar-stat-badge.ga{color:#16a34a;background:#22c55e1a;border-color:#22c55e4d}.calendar-stat-badge.preview{color:#9333ea;background:#a855f71a;border-color:#a855f74d}.calendar-stat-badge.deadline{color:#ea580c;background:#f973161a;border-color:#f973164d}.calendar-service-filter{z-index:100;isolation:isolate;align-items:center;gap:.5rem;margin:.875rem 0 .25rem;display:flex;position:relative}.calendar-service-dropdown-trigger{border:1px solid var(--border-color);background:var(--bg-secondary,#fff);color:var(--text-primary);cursor:pointer;white-space:nowrap;border-radius:.375rem;align-items:center;gap:.375rem;padding:.3rem .75rem;font-size:.8rem;transition:border-color .15s,background .15s;display:inline-flex}.calendar-service-dropdown-trigger:hover{border-color:var(--accent-blue)}.calendar-service-dropdown-trigger.has-selection{border-color:var(--accent-blue);color:var(--accent-blue);font-weight:500}.calendar-service-dropdown-trigger svg{flex-shrink:0;transition:transform .15s}.calendar-service-dropdown-trigger svg.rotate-180{transform:rotate(180deg)}.calendar-service-clear-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:.375rem;padding:.25rem .625rem;font-size:.75rem;transition:background .15s,color .15s}.calendar-service-clear-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.calendar-service-dropdown-panel{z-index:9999;background:var(--bg-secondary,#fff);border:1px solid var(--border-color);border-radius:.5rem;min-width:240px;max-width:320px;position:absolute;top:calc(100% + 4px);left:0;overflow:hidden;box-shadow:0 8px 24px #0000002e}.calendar-service-dropdown-search{border-bottom:1px solid var(--border-color);padding:.5rem .75rem}.calendar-service-dropdown-search input{border:1px solid var(--border-color);background:var(--bg-primary,#f8f9fa);width:100%;color:var(--text-primary);border-radius:.25rem;outline:none;padding:.25rem .5rem;font-size:.8rem}.calendar-service-dropdown-search input:focus{border-color:var(--accent-blue)}.calendar-service-dropdown-list{max-height:260px;padding:.25rem 0;overflow-y:auto}.calendar-service-dropdown-item{cursor:pointer;color:var(--text-primary);align-items:center;gap:.5rem;padding:.375rem .75rem;font-size:.8rem;transition:background .1s;display:flex}.calendar-service-dropdown-item:hover{background:var(--hover-bg)}.calendar-service-dropdown-item input[type=checkbox]{cursor:pointer;accent-color:var(--accent-blue);flex-shrink:0}@media (max-width:640px){.calendar-header{flex-direction:column;align-items:flex-start}.calendar-day{min-height:60px;padding:.25rem}.day-event{padding:1px 3px;font-size:.6rem}.calendar-weekday{padding:.375rem 0;font-size:.65rem}}
