.calendar-view-container{padding:var(--space-8);padding-bottom:max(var(--space-8),env(safe-area-inset-bottom));min-height:60vh;display:flex;flex-direction:column;height:100%}.calendar-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-8);flex-wrap:wrap;gap:var(--space-6)}.calendar-header-title h1{font-size:var(--text-page-title-size, clamp(1.5rem, 3vw, 2rem));font-weight:700;letter-spacing:-.02em;color:var(--ink-primary);margin:0}.calendar-header-title p{font-size:var(--text-sm);color:var(--ink-secondary);margin:var(--space-1) 0 0}.calendar-nav{display:flex;align-items:center;gap:var(--space-4);background:var(--surface-primary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.calendar-nav h2{font-size:var(--text-md);font-weight:600;color:var(--ink-primary);margin:0;min-width:200px;text-align:center}.calendar-nav button{background:transparent;border:none;color:var(--ink-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:var(--space-2);min-height:44px;min-width:44px;border-radius:var(--radius-full);transition:background .2s,color .2s}.calendar-nav button:hover{background:var(--surface-sunken);color:var(--ink-primary)}.error-banner{color:var(--accent-urgent-fg);background:var(--accent-urgent-bg);padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);margin-bottom:var(--space-6);text-align:center}.calendar-workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-8);flex:1;align-items:stretch}.calendar-main{background:var(--surface-primary);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);box-shadow:var(--shadow-md);overflow:hidden;display:flex;flex-direction:column;min-height:0}.time-blocks-container{display:flex;flex-direction:column;overflow-y:auto;overflow-x:auto;flex:1;position:relative}.time-block{display:flex;border-bottom:1px solid var(--border-subtle);min-height:80px;transition:background-color .2s}.time-block:last-child{border-bottom:none}.time-block-over{background-color:var(--accent-action-bg)}.time-label{width:80px;padding:var(--space-4);font-size:var(--text-sm);font-weight:600;color:var(--ink-secondary);text-align:right;border-right:1px solid var(--border-subtle);background:var(--surface-sunken);flex-shrink:0;position:sticky;left:0;z-index:10}.time-content{flex:1;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);position:relative}.empty-time-slot{position:absolute;inset:0;display:flex;align-items:center;padding-left:var(--space-4);color:var(--ink-ghost);font-size:var(--text-sm);pointer-events:none;opacity:0;transition:opacity .2s}.time-block-over .empty-time-slot{opacity:1;color:var(--accent-action);font-weight:500}.calendar-event-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;z-index:1;box-shadow:var(--shadow-sm)}.calendar-event-card.internal-task{background:var(--surface-primary);border:1px solid var(--border-subtle);border-left:3px solid var(--accent-action);color:var(--ink-primary)}.calendar-event-card.external-ical{background:repeating-linear-gradient(45deg,light-dark(rgba(16,185,129,.05),rgba(16,185,129,.08)),light-dark(rgba(16,185,129,.05),rgba(16,185,129,.08)) 10px,transparent 10px,transparent 20px);border:1px solid var(--border-subtle);border-left:3px dashed var(--accent-success, #10B981);color:var(--ink-primary)}.event-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 6px;border-radius:var(--radius-full)}.internal-task .event-type{background:var(--accent-action-bg);color:var(--accent-action)}.external-ical .event-type{background:var(--surface-elevated);color:var(--accent-success, #10B981);border:1px dashed var(--accent-success, #10B981)}.event-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tickler-sidebar{background:var(--surface-primary);border-radius:var(--radius-xl);border:1px solid var(--border-subtle);box-shadow:var(--shadow-rich, 0 12px 32px -12px rgba(0, 0, 0, .08));display:flex;flex-direction:column;height:70vh;overflow:hidden}.tickler-header-luxury{display:flex;justify-content:space-between;align-items:center;padding:var(--space-6);background:var(--surface-sunken);border-bottom:1px solid var(--border-subtle);position:relative;overflow:hidden}.tickler-header-luxury:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--border-subtle),transparent)}.tickler-title-area{display:flex;align-items:center;gap:var(--space-3)}.tickler-icon-wrapper{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--surface-primary);border-radius:var(--radius-md);border:1px solid var(--border-subtle);color:var(--accent-calm);box-shadow:var(--shadow-sm)}.tickler-title-text{display:flex;flex-direction:column}.tickler-title-text h3{margin:0;font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em;color:var(--ink-primary);line-height:1.2}.tickler-title-text p{margin:0;font-size:var(--text-sm);color:var(--ink-secondary);font-weight:500}.tickler-count-badge{background:var(--accent-action-bg);color:var(--accent-action);font-size:var(--text-xs);font-weight:700;padding:4px 10px;border-radius:var(--radius-full);border:1px solid color-mix(in srgb,var(--accent-action) 20%,transparent)}.calendar-tickler-list{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.tickler-empty{text-align:center;color:var(--ink-ghost);display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;border-radius:var(--radius-lg);border:1px dashed var(--border-subtle);background:transparent;padding:var(--space-8)}.tickler-empty-icon{color:var(--border-subtle);margin-bottom:var(--space-4)}.tickler-empty h4{color:var(--ink-secondary);font-weight:600;font-size:var(--text-md);margin-bottom:var(--space-2)}.tickler-empty p{color:var(--ink-ghost);font-size:var(--text-sm);max-width:80%;line-height:1.5}.draggable-tickler-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3);background:var(--surface-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:grab;transition:box-shadow .2s,transform .2s,border-color .2s;user-select:none}.draggable-tickler-item:hover{border-color:var(--accent-calm);box-shadow:var(--shadow-md)}.draggable-tickler-item.dragging{opacity:.4}.draggable-tickler-item.dragging-overlay{opacity:1;box-shadow:var(--shadow-lg);cursor:grabbing;transform:scale(1.02);z-index:9999}.tickler-date{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:50px;padding:var(--space-1) var(--space-2);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.tickler-date .month{font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-secondary);font-weight:700}.tickler-date .day{font-size:var(--text-lg);font-weight:800;color:var(--accent-action)}.tickler-content{flex:1;min-width:0}.tickler-content h4{margin:0 0 2px;font-size:var(--text-sm);font-weight:600;color:var(--ink-primary);display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.tickler-content p{margin:0;font-size:var(--text-xs);color:var(--ink-secondary);display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:1024px){.calendar-workspace{grid-template-columns:1fr}.tickler-sidebar{height:40vh}}
