.cal-root{display:flex;flex-direction:column;height:calc(100dvh - 168px);min-height:540px;padding:0;gap:12px;position:relative;z-index:1}.cal-toolbar{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r-lg);flex-wrap:wrap}.cal-title{font-size:15.5px;font-weight:700;letter-spacing:-.01em;color:var(--tx-1);min-width:170px;padding:0 6px}.cal-nav-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-sm);background:rgba(255,255,255,.04);color:var(--tx-2);border:1px solid var(--glass-border);cursor:pointer}.cal-nav-btn:hover{background:rgba(255,255,255,.1);color:var(--tx-1)}.cal-nav-btn:focus-visible{outline:2px solid var(--acc-ring);outline-offset:1px}.cal-nav-btn.is-on{background:var(--acc-soft);color:#c4b5fd;border-color:var(--acc-ring)}.cal-today-btn{padding:6px 12px;border-radius:var(--r-sm);background:rgba(255,255,255,.04);color:var(--tx-1);border:1px solid var(--glass-border);cursor:pointer;font-size:12.5px;font-weight:600;font-family:inherit}.cal-today-btn:hover{background:rgba(255,255,255,.1)}.cal-today-btn:focus-visible{outline:2px solid var(--acc-ring);outline-offset:1px}.cal-view-toggle{display:inline-flex;border-radius:9px;overflow:hidden;border:1px solid var(--glass-border)}.cal-view-toggle button{padding:6px 14px;background:rgba(255,255,255,.02);color:var(--tx-2);border:0;cursor:pointer;font-size:12.5px;font-weight:600;font-family:inherit}.cal-view-toggle button:focus-visible{outline:2px solid var(--acc-ring);outline-offset:-2px}.cal-view-toggle button.is-on{background:linear-gradient(135deg,var(--acc-from),var(--acc-to));color:var(--tx-on-accent)}.cal-name-input{background:transparent;color:var(--tx-1);border:0;font-size:13.5px;font-weight:600;outline:none;padding:4px 8px;border-radius:6px;max-width:170px;font-family:inherit}.cal-name-input:hover{background:rgba(255,255,255,.05)}.cal-name-input:focus{background:rgba(255,255,255,.1)}.cal-jump{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 8px;border-radius:var(--r-sm);background:rgba(255,255,255,.04);border:1px solid var(--glass-border);color:var(--tx-2);cursor:pointer}.cal-jump:hover{background:rgba(255,255,255,.1);color:var(--tx-1)}.cal-jump:focus-within{outline:2px solid var(--acc-ring);outline-offset:1px}.cal-jump input{background:transparent;border:0;outline:none;color:var(--tx-1);font-family:inherit;font-size:12.5px;color-scheme:dark;width:116px;cursor:pointer}.cal-toolbar-spacer{flex:1 1}.cal-loading{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border-radius:var(--r-lg);background:#fbfbfd;border:1px solid var(--glass-border);color:rgba(15,15,30,.55);font-size:13px;font-weight:600;min-height:240px}.cal-loading-spinner{width:22px;height:22px;border-radius:50%;border:2.5px solid rgba(15,15,30,.12);border-top:2.5px solid var(--acc-solid);animation:cal-spin .7s linear infinite}@keyframes cal-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.cal-loading-spinner{animation-duration:1.8s}}.cal-main{flex:1 1;display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px;min-height:0}.cal-root.panel-open .cal-main{grid-template-columns:1fr 280px}@media (max-width:1000px){.cal-root.panel-open .cal-main{grid-template-columns:1fr}.cal-panel{display:none}}.cal-canvas{display:flex;flex-direction:column;gap:10px;min-height:0}.cal-month-wrap{flex:1 1;border-radius:var(--r-lg);background:#fbfbfd;border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);overflow:hidden;display:flex;flex-direction:column;min-height:0}.cal-dow-row{display:grid;grid-template-columns:repeat(7,1fr);background:#f3f3f7;border-bottom:1px solid rgba(15,15,30,.08)}.cal-dow{padding:8px 10px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:rgba(15,15,30,.55)}.cal-month-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(96px,1fr);flex:1 1;overflow-y:auto}.cal-day{border-right:1px solid rgba(15,15,30,.06);border-bottom:1px solid rgba(15,15,30,.06);padding:6px;display:flex;flex-direction:column;gap:4px;min-height:96px;cursor:pointer;background:#fbfbfd;transition:background .12s ease;position:relative;overflow:hidden}.cal-day:hover{background:#f5f5fa}.cal-day.is-outside{background:#f6f6f9;color:rgba(15,15,30,.4)}.cal-day.is-outside .cal-day-num{color:rgba(15,15,30,.32)}.cal-day.is-today{box-shadow:inset 0 0 0 2px var(--acc-solid)}.cal-day.is-today .cal-day-num{color:white;background:var(--acc-solid)}.cal-day.is-dragover{background:rgba(139,92,246,.1);box-shadow:inset 0 0 0 2px var(--acc-ring)}.cal-day.is-focused{background:rgba(139,92,246,.08)}.cal-day:focus-visible{outline:2px solid var(--acc-solid);outline-offset:-2px;z-index:3}.cal-day-num{align-self:flex-start;font-size:12px;font-weight:700;color:rgba(15,15,30,.78);width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}.cal-event-pill{display:flex;align-items:center;gap:6px;padding:2px 6px;border-radius:4px;background:rgba(139,92,246,.18);color:rgba(15,15,30,.85);font-size:11.5px;font-weight:600;cursor:pointer;border:0;text-align:left;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:filter .12s ease;font-family:inherit}.cal-event-pill:hover{filter:brightness(.96)}.cal-event-pill:focus-visible{outline:2px solid var(--acc-ring);outline-offset:1px}.cal-event-pill.is-allday{box-shadow:inset 2px 0 0 rgba(15,15,30,.2)}.cal-event-pill .cal-pill-dot{width:6px;height:6px;border-radius:50%;flex:none}.cal-event-pill .cal-pill-time{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;color:rgba(15,15,30,.55);font-size:10.5px;margin-right:2px;flex:none}.cal-event-pill .cal-pill-title{overflow:hidden;text-overflow:ellipsis;flex:1 1;min-width:0}.cal-day-overflow{font-size:10.5px;color:rgba(15,15,30,.55);font-weight:600;padding:0 6px}.cal-pill-recur{color:rgba(15,15,30,.5);flex:none;margin-left:auto}.cal-time-wrap{flex:1 1;border-radius:var(--r-lg);background:#fbfbfd;border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);overflow:hidden;display:flex;flex-direction:column;min-height:0}.cal-time-head{display:grid;background:#f3f3f7;border-bottom:1px solid rgba(15,15,30,.08)}.cal-time-head-cell{padding:8px 10px;font-size:11px;font-weight:700;color:rgba(15,15,30,.55);letter-spacing:.02em;text-transform:uppercase;border-left:1px solid rgba(15,15,30,.05)}.cal-time-gutter{border-left:0}.cal-time-head-cell.is-today{color:var(--acc-solid)}.cal-time-head-cell .cal-time-dnum{display:block;font-size:18px;font-weight:700;letter-spacing:-.01em;color:rgba(15,15,30,.85);margin-top:2px;text-transform:none}.cal-time-head-cell.is-today .cal-time-dnum{color:var(--acc-solid)}.cal-allday-row{display:grid;background:#f7f7fb;border-bottom:1px solid rgba(15,15,30,.08);min-height:30px}.cal-allday-label{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:rgba(15,15,30,.42);padding:6px 6px 0 0;text-align:right;font-weight:700}.cal-allday-cell{border-left:1px solid rgba(15,15,30,.05);padding:4px;display:flex;flex-direction:column;gap:3px;cursor:pointer}.cal-allday-cell:hover{background:rgba(139,92,246,.04)}.cal-allday-pill{display:flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;border:0;border-left:3px solid var(--acc-solid);background:rgba(139,92,246,.22);color:rgba(15,15,30,.88);font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:inherit}.cal-allday-pill:hover{filter:brightness(.96)}.cal-allday-pill:focus-visible{outline:2px solid var(--acc-ring);outline-offset:1px}.cal-time-body{flex:1 1;overflow-y:auto;position:relative}.cal-time-grid{display:grid;position:relative;min-height:1440px}.cal-time-hour-col{border-right:1px solid rgba(15,15,30,.06);position:relative}.cal-time-hour-label{font-size:10.5px;font-weight:600;color:rgba(15,15,30,.45);padding:2px 6px 0 0;text-align:right;height:60px;border-bottom:1px dashed rgba(15,15,30,.06);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cal-time-day-col{position:relative;border-left:1px solid rgba(15,15,30,.06)}.cal-time-day-col.is-today{background:rgba(139,92,246,.04)}.cal-time-hour{height:60px;border-bottom:1px dashed rgba(15,15,30,.06);position:relative;cursor:pointer}.cal-time-hour:hover{background:rgba(139,92,246,.05)}.cal-time-event{position:absolute;border-radius:6px;padding:4px 6px;font-size:11.5px;font-weight:600;color:rgba(15,15,30,.92);background:rgba(139,92,246,.24);border-left:3px solid var(--acc-solid);cursor:-webkit-grab;cursor:grab;overflow:hidden;display:flex;flex-direction:column;gap:2px;transition:filter .12s ease;box-shadow:0 1px 3px rgba(15,15,30,.12)}.cal-time-event:hover{filter:brightness(.97)}.cal-time-event:active{cursor:-webkit-grabbing;cursor:grabbing}.cal-time-event:focus-visible{outline:2px solid var(--acc-ring);outline-offset:1px}.cal-time-event .cal-te-title{display:flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-time-event .cal-te-time{font-size:10.5px;font-weight:500;color:rgba(15,15,30,.62);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cal-resize-handle{position:absolute;left:0;right:0;height:7px;cursor:ns-resize;z-index:2}.cal-resize-top{top:0}.cal-resize-bottom{bottom:0}.cal-time-event:hover .cal-resize-handle{background:rgba(15,15,30,.1)}.cal-now-line{position:absolute;left:0;right:0;height:0;border-top:2px solid #ef4444;z-index:4;pointer-events:none}.cal-now-line:before{content:"";position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:#ef4444}.cal-legend{display:flex;flex-wrap:wrap;gap:14px;padding:8px 14px;border-radius:var(--r-md);background:var(--glass-fill);border:1px solid var(--glass-border);font-size:11.5px;color:var(--tx-2)}.cal-legend-item{display:inline-flex;align-items:center;gap:6px}.cal-legend-dot{width:10px;height:10px;border-radius:50%;flex:none}.cal-panel{border-radius:var(--r-lg);display:flex;flex-direction:column;overflow:hidden;min-height:0}.cal-panel-search{display:flex;align-items:center;gap:8px;margin:12px 12px 8px;padding:7px 10px;border-radius:var(--r-md);background:rgba(255,255,255,.05);border:1px solid var(--glass-border);color:var(--tx-3)}.cal-panel-search:focus-within{border-color:var(--acc-ring)}.cal-panel-search input{flex:1 1;min-width:0;background:transparent;border:0;outline:none;color:var(--tx-1);font-family:inherit;font-size:13px}.cal-panel-search input::placeholder{color:var(--tx-3)}.cal-panel-clear{width:22px;height:22px}.cal-panel-h{margin:4px 14px 8px;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--tx-3);font-weight:700}.cal-panel-list{flex:1 1;overflow-y:auto;padding:0 8px 10px;gap:4px}.cal-panel-empty,.cal-panel-list{display:flex;flex-direction:column}.cal-panel-empty{align-items:center;gap:8px;color:var(--tx-3);text-align:center;padding:36px 16px;font-size:12.5px}.cal-agenda-item{display:flex;gap:10px;width:100%;padding:9px 10px;border-radius:var(--r-md);background:transparent;border:1px solid transparent;cursor:pointer;text-align:left;font-family:inherit;transition:background var(--dur) var(--ease)}.cal-agenda-item:hover{background:rgba(255,255,255,.05)}.cal-agenda-item:focus-visible{outline:2px solid var(--acc-ring);outline-offset:-2px}.cal-agenda-bar{width:3px;border-radius:99px;flex:none}.cal-agenda-main{display:flex;flex-direction:column;gap:3px;min-width:0}.cal-agenda-title{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--tx-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-agenda-when{font-size:11.5px;color:var(--tx-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cal-agenda-loc{display:inline-flex;align-items:center;gap:4px}.cal-agenda-loc,.cal-foot{font-size:11px;color:var(--tx-3)}.cal-foot{display:flex;gap:10px;padding:0 4px 2px;font-family:JetBrains Mono,ui-monospace,monospace}.cal-event-modal-scrim{position:fixed;inset:0;background:rgba(8,8,16,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}.cal-event-modal{width:100%;max-width:480px;max-height:calc(100vh - 48px);background:var(--bg-base-2);border:1px solid var(--glass-border-strong);border-radius:var(--r-lg);box-shadow:0 24px 64px rgba(0,0,0,.55);display:flex;flex-direction:column;overflow:hidden;color:var(--tx-1)}.cal-modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--glass-border)}.cal-modal-head h2{font-size:15px;font-weight:700;margin:0;letter-spacing:-.01em}.cal-modal-close{background:rgba(255,255,255,.04);border:1px solid var(--glass-border);color:var(--tx-2);width:28px;height:28px;border-radius:var(--r-sm);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.cal-modal-close:hover{background:rgba(255,255,255,.1);color:var(--tx-1)}.cal-modal-body{padding:14px 18px;gap:12px;overflow-y:auto}.cal-modal-body,.cal-modal-row{display:flex;flex-direction:column}.cal-modal-row{gap:4px}.cal-modal-row>span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--tx-3);font-weight:700}.cal-modal-row input,.cal-modal-row select,.cal-modal-row textarea{background:rgba(255,255,255,.05);border:1px solid var(--glass-border);color:var(--tx-1);border-radius:var(--r-sm);padding:8px 10px;font-size:13px;font-family:inherit;outline:none}.cal-modal-row input:focus,.cal-modal-row select:focus,.cal-modal-row textarea:focus{border-color:var(--acc-solid);box-shadow:0 0 0 3px var(--acc-soft)}.cal-modal-row-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.cal-modal-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tx-1);cursor:pointer}.cal-modal-check input{width:16px;height:16px;accent-color:var(--acc-solid);cursor:pointer}.cal-modal-foot{align-items:center;justify-content:space-between;padding:12px 18px;border-top:1px solid var(--glass-border)}.cal-modal-actions,.cal-modal-foot{display:flex;gap:8px}.cal-modal-delete{display:inline-flex;align-items:center;gap:6px;background:rgba(251,113,133,.1);color:var(--tone-rose);border:1px solid rgba(251,113,133,.3);padding:6px 12px;border-radius:var(--r-sm);font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit}.cal-modal-delete:hover{background:rgba(251,113,133,.2)}