@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&family=DM+Mono:wght@400;500&display=swap";.app{display:flex;flex-direction:column;height:100%}.main{display:flex;flex:1;overflow:hidden}.content{flex:1;overflow:hidden;display:flex;flex-direction:column}.topbar{height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--border);background:var(--bg-2);flex-shrink:0;gap:12px}.topbar-left,.topbar-right{flex:1;display:flex;align-items:center}.topbar-right{justify-content:flex-end;gap:8px}.topbar-center{display:flex;align-items:center;gap:10px;flex-shrink:0}.app-logo{display:flex;align-items:center;gap:8px}.app-name{font-weight:600;font-size:15px;letter-spacing:-.02em}.month-title{font-size:16px;font-weight:600;letter-spacing:-.02em;min-width:180px;text-align:center}.nav-btn{width:28px;height:28px;border-radius:var(--radius);color:var(--text-2);font-size:18px;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.nav-btn:hover{background:var(--bg-3);color:var(--text)}.nav-btn--lg{width:32px;height:32px;font-size:20px}.today-btn{padding:4px 12px;border-radius:var(--radius);border:1px solid var(--border);color:var(--text-2);font-size:13px;font-weight:500;transition:background .12s,color .12s,border-color .12s}.today-btn:hover{background:var(--bg-3);color:var(--text);border-color:var(--text-3)}.sync-indicator{width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.7;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.logout-btn{width:28px;height:28px;border-radius:var(--radius);color:var(--text-3);font-size:16px;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.logout-btn:hover{background:var(--bg-3);color:var(--text-2)}.view-switcher{display:flex;gap:2px;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:3px}.view-btn{padding:5px 14px;border-radius:4px;font-size:13px;font-weight:500;color:var(--text-2);transition:background .1s,color .1s;letter-spacing:-.01em;white-space:nowrap}.view-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.view-btn--active{background:var(--bg-2);color:var(--text);border:1px solid var(--border);box-shadow:0 1px 3px #00000059}.view-btn:disabled{opacity:.35;cursor:default}.view-switcher button{opacity:1!important}.toolbar-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius);color:var(--text-3);font-size:18px;cursor:pointer;font-family:inherit;transition:background .12s,color .12s;flex-shrink:0}.toolbar-btn:hover{background:var(--bg-3);color:var(--text-2)}.toolbar-btn--spinning svg,.toolbar-btn--spinning{animation:tb-spin .8s linear infinite}@keyframes tb-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sidebar{width:var(--sidebar-w);flex-shrink:0;border-right:1px solid var(--border);background:var(--bg-2);display:flex;flex-direction:column;padding:16px 12px;gap:24px;overflow-y:auto}.mini-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.mini-cal-title{font-size:12px;font-weight:600;color:var(--text-2);letter-spacing:.02em;text-transform:uppercase}.mini-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.mini-day-label{font-size:10px;color:var(--text-3);text-align:center;padding:2px 0 4px;font-weight:500}.mini-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:12px;border-radius:4px;color:var(--text-2);transition:background .1s,color .1s}.mini-day:hover{background:var(--bg-hover);color:var(--text)}.mini-day--other{color:var(--text-3)}.mini-day--today{background:var(--accent);color:#fff;font-weight:600}.mini-day--today:hover{background:var(--accent)}.cal-list-label{font-size:10px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;padding:0 4px}.cal-item{display:flex;align-items:center;gap:10px;width:100%;padding:5px 6px;border-radius:var(--radius);text-align:left;transition:background .1s}.cal-item:hover{background:var(--bg-hover)}.cal-dot{width:10px;height:10px;border-radius:50%;border:2px solid;flex-shrink:0;transition:background .15s}.cal-name{font-size:13.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-item--hidden .cal-name{color:var(--text-3)}.sidebar-actions{display:flex;align-items:center;gap:4px;margin-top:auto;padding-top:12px;border-top:1px solid var(--border)}.sidebar-actions .toolbar-btn:hover{background:var(--bg-hover)}.month-view{flex:1;display:flex;flex-direction:column;overflow:hidden}.month-header{display:grid;grid-template-columns:32px repeat(7,1fr);border-bottom:1px solid var(--border);flex-shrink:0;scrollbar-gutter:stable;overflow-y:auto}.month-weekday{padding:8px 10px 6px;font-size:11px;font-weight:600;color:#b0b5c5;text-transform:uppercase;letter-spacing:.08em;text-align:right}.month-kw-header{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;opacity:.5}.month-kw{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:500;color:var(--text-3);border-right:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);-webkit-user-select:none;user-select:none}.month-kw--clickable{cursor:pointer}.month-kw--clickable:hover{color:var(--accent);background:var(--bg-hover, rgba(99, 130, 255, .06))}.month-grid{flex:1;display:grid;grid-template-columns:32px repeat(7,1fr);grid-auto-rows:minmax(110px,1fr);overflow-y:auto;scrollbar-gutter:stable}.day-cell{border-right:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);padding:6px 6px 4px;display:flex;flex-direction:column;gap:2px;overflow:hidden;min-height:0;background:var(--bg);transition:background .1s}.day-cell:nth-child(8n){border-right:none}.day-cell--other{background:var(--bg-2)}.day-cell--other .day-number{color:var(--text-3);opacity:.6}.day-cell--other .event-list{opacity:.4}.day-cell--today{background:var(--today-bg)}.day-cell--today .day-number{background:var(--accent);color:#fff;border-radius:50%;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px}.day-cell-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;min-height:22px}.day-number{font-size:13px;font-weight:600;color:var(--text);line-height:1;min-width:22px;height:22px;display:flex;align-items:center;justify-content:center}.day-number--clickable{cursor:pointer;border-radius:50%;transition:background .15s,color .15s}.day-number--clickable:hover{background:var(--accent);color:#fff}.day-add-btn{opacity:0;color:var(--text-3);font-size:16px;line-height:1;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:opacity .1s,background .1s,color .1s;flex-shrink:0}.day-cell:hover .day-add-btn{opacity:1}.day-add-btn:hover{background:var(--bg-hover);color:var(--text)}.event-list{display:flex;flex-direction:column;gap:3px;overflow:hidden;flex:1;min-height:0}.event-item{display:flex;align-items:center;gap:4px;border-radius:4px;padding:2px 5px;background:color-mix(in srgb,var(--event-color) 18%,transparent);border-left:2.5px solid var(--event-color);overflow:hidden;flex-shrink:0;cursor:default;transition:background .1s}.event-item:hover{background:color-mix(in srgb,var(--event-color) 28%,transparent)}.event-time{font-family:var(--mono);font-size:10.5px;color:var(--event-color);opacity:.9;flex-shrink:0;letter-spacing:-.02em}.event-title{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400}.event-more{font-size:10.5px;color:var(--text-3);padding:1px 4px;font-weight:500}.event-more--clickable{cursor:pointer;border-radius:3px;transition:background .1s,color .1s}.event-more--clickable:hover{background:var(--bg-hover);color:var(--text-2)}.event-item--block{background:color-mix(in srgb,var(--event-color) 30%,transparent);border-left:2.5px solid var(--event-color)}.event-item--block:hover{background:color-mix(in srgb,var(--event-color) 40%,transparent)}.event-item--block.event-item--cont{border-left:2px solid color-mix(in srgb,var(--event-color) 40%,transparent);border-radius:0 4px 4px 0;margin-left:-6px;padding-left:6px}.event-item--block.event-item--continues{border-radius:4px 0 0 4px;margin-right:-6px}.event-item--block.event-item--cont.event-item--continues{border-radius:0}.week-view{display:flex;flex-direction:column;height:100%;overflow:hidden}.week-header{display:flex;border-bottom:1px solid var(--border);flex-shrink:0}.week-time-gutter{width:52px;flex-shrink:0}.week-day-header{flex:1;text-align:center;padding:8px 4px;cursor:pointer;-webkit-user-select:none;user-select:none;border-left:1px solid var(--border);transition:background .15s}.week-day-header:hover{background:var(--hover-bg, rgba(255, 255, 255, .04))}.week-day-name{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-family:var(--font-mono, monospace)}.week-day-num{display:inline-block;font-size:18px;font-weight:500;margin-top:2px;width:32px;height:32px;line-height:32px;border-radius:50%}.week-day-num.today-num{background:var(--accent);color:#fff}.week-allday-row{display:flex;border-bottom:1px solid var(--border);flex-shrink:0;min-height:28px}.week-allday-label{font-size:10px;color:var(--text-muted);display:flex;align-items:flex-start;padding-top:4px;padding-right:4px;text-align:right;justify-content:flex-end;font-family:var(--font-mono, monospace)}.week-allday-cell{flex:1;border-left:1px solid var(--border);padding:2px;display:flex;flex-direction:column;gap:2px;max-height:80px;overflow-y:auto}.week-allday-event{display:flex;align-items:center;font-size:12px;padding:1px 5px;border-radius:4px;background:color-mix(in srgb,var(--event-color) 30%,transparent);border-left:2.5px solid var(--event-color);color:var(--text, #e8eaf0);cursor:pointer;overflow:hidden;transition:background .1s}.week-allday-event:hover{background:color-mix(in srgb,var(--event-color) 40%,transparent)}.week-allday-event-text{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-body{flex:1;overflow-y:auto;overflow-x:hidden}.week-grid{display:flex;position:relative}.week-hours{width:52px;flex-shrink:0;position:relative}.week-hour-row{display:flex;align-items:flex-start;position:relative}.week-hour-label{width:48px;text-align:right;font-size:12px;color:var(--text-muted);font-family:var(--font-mono, monospace);padding-right:6px;margin-top:-7px;flex-shrink:0}.week-hour-line{flex:1;border-top:1px solid var(--border);margin-top:0}.week-day-col{flex:1;border-left:1px solid var(--border);position:relative;cursor:pointer}.week-day-col.today-col{background:#ffffff04}.week-event{position:absolute;background:color-mix(in srgb,var(--event-color) 18%,transparent);border-left:2.5px solid var(--event-color);border-radius:4px;padding:2px 5px 2px 4px;cursor:pointer;overflow:hidden;box-sizing:border-box;transition:background .1s;z-index:1;display:flex;flex-direction:column}.week-event:hover{background:color-mix(in srgb,var(--event-color) 28%,transparent);z-index:2}.week-event-body{display:flex;flex-direction:column;min-width:0;overflow:hidden;flex:1}.week-event-title{display:flex;align-items:center;font-size:12px;font-weight:500;line-height:1.35;color:var(--text, #e8eaf0)}.week-event-title-text{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.week-event-time{font-size:10.5px;font-family:var(--font-mono, monospace);color:var(--event-color);opacity:.9;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.week-event-compact{display:flex;align-items:center;gap:3px;min-width:0;overflow:hidden;height:100%}.week-event-compact-dot{width:5px;height:5px;border-radius:50%;background:var(--event-color);flex-shrink:0}.week-event-compact-title{font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text, #e8eaf0);line-height:1}.week-now-line{position:absolute;left:0;right:0;height:2px;background:var(--accent, #e05a4b);z-index:3;pointer-events:none}.week-now-line:before{content:"";position:absolute;left:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--accent, #e05a4b)}.day-view{display:flex;flex-direction:column;height:100%;overflow:hidden}.day-view-header{padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.day-view-weekday{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-family:var(--font-mono, monospace)}.day-view-date{font-size:22px;font-weight:600;margin-top:2px}.day-view-date.today{color:var(--accent)}.day-view-allday{display:flex;flex-direction:column;gap:4px;margin-top:8px}.day-allday-event{display:flex;align-items:center;font-size:12px;padding:2px 8px;border-radius:4px;background:color-mix(in srgb,var(--event-color) 30%,transparent);border-left:2.5px solid var(--event-color);color:var(--text, #e8eaf0);cursor:pointer;overflow:hidden;transition:background .1s}.day-allday-event:hover{background:color-mix(in srgb,var(--event-color) 40%,transparent)}.day-allday-event-text{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-body{flex:1;overflow-y:auto}.day-grid{position:relative;padding-left:56px}.day-hour-row{position:absolute;left:0;right:0;display:flex;align-items:flex-start}.day-hour-label{width:52px;text-align:right;font-size:12px;color:var(--text-muted);font-family:var(--font-mono, monospace);padding-right:6px;margin-top:-7px}.day-hour-line{flex:1;border-top:1px solid var(--border)}.day-now-line{position:absolute;left:56px;right:0;height:2px;background:var(--accent, #e05a4b);z-index:3;pointer-events:none}.day-now-line:before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--accent, #e05a4b)}.day-events-col{position:absolute;left:56px;right:8px;top:0;bottom:0}.day-event{position:absolute;background:color-mix(in srgb,var(--event-color) 18%,transparent);border-left:2.5px solid var(--event-color);border-radius:4px;padding:3px 6px 3px 5px;cursor:pointer;overflow:hidden;box-sizing:border-box;transition:background .1s;display:flex;flex-direction:column}.day-event:hover{background:color-mix(in srgb,var(--event-color) 28%,transparent)}.day-event-inner{display:flex;flex-direction:column;min-width:0;overflow:hidden;flex:1}.day-event-title{display:flex;align-items:center;font-size:13px;font-weight:500;line-height:1.35;color:var(--text, #e8eaf0)}.day-event-title-text{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-event-time{font-size:11.5px;font-family:var(--font-mono, monospace);color:var(--event-color);opacity:.9;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.day-event-location{font-size:11px;color:var(--text-muted, #9095a8);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-event-compact{display:flex;align-items:center;height:100%;min-width:0;overflow:hidden}.day-event-compact-title{font-size:11.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text, #e8eaf0);line-height:1}.agenda-view{padding:16px 24px;overflow-y:auto;height:100%}.agenda-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;gap:12px;color:var(--text-muted)}.agenda-empty-icon{font-size:32px}.agenda-day-group{margin-bottom:24px}.agenda-day-header{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);font-family:var(--font-mono, monospace);padding:4px 0 8px;border-bottom:1px solid var(--border);margin-bottom:8px}.agenda-day-header.today{color:var(--accent)}.agenda-events{display:flex;flex-direction:column;gap:4px}.agenda-event{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:6px;cursor:pointer;background:var(--card-bg, rgba(255, 255, 255, .03));transition:background .15s}.agenda-event:hover{background:var(--hover-bg, rgba(255, 255, 255, .06))}.agenda-event-color{width:4px;min-height:32px;border-radius:2px;flex-shrink:0;margin-top:2px}.agenda-event-body{flex:1;min-width:0}.agenda-event-title{display:flex;align-items:center;font-size:14px;font-weight:500}.agenda-event-title-text{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agenda-event-time{font-size:12px;color:var(--text-muted);font-family:var(--font-mono, monospace);margin-top:2px}.agenda-event-location{font-size:12px;color:var(--text-muted);margin-top:2px}.agenda-event-cal{font-size:11px;color:var(--text-muted);white-space:nowrap;flex-shrink:0;align-self:center}.popup{position:fixed;z-index:200;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);width:320px;overflow:hidden;box-shadow:0 8px 32px #0000008c,0 2px 8px #0000004d;animation:popup-in .12s ease}@keyframes popup-in{0%{opacity:0;transform:scale(.97) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.popup-bar{height:3px;width:100%}.popup-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px 6px}.popup-title{font-size:14px;font-weight:600;line-height:1.4;color:var(--text)}.popup-close{color:var(--text-3);font-size:20px;line-height:1;padding:0 2px;flex-shrink:0;transition:color .12s;margin-top:-2px}.popup-close:hover{color:var(--text)}.popup-meta{padding:4px 16px 18px;display:flex;flex-direction:column;gap:9px}.popup-row{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--text-2);line-height:1.5}.popup-icon-svg{width:14px;height:14px;flex-shrink:0;margin-top:2px;color:var(--text-3)}.popup-cal-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;margin-top:5px}.popup-cal-name{color:var(--text-2)}.popup-description{border-top:1px solid var(--border-soft);padding-top:9px;margin-top:2px;white-space:pre-wrap}.search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;display:flex;align-items:flex-start;justify-content:center;padding-top:80px}.search-modal{width:min(640px,90vw);background:var(--modal-bg, #1e1e2e);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 24px 48px #00000080}.search-input-row{display:flex;align-items:center;padding:0 16px;border-bottom:1px solid var(--border)}.search-icon{font-size:20px;color:var(--text-2);margin-right:10px;flex-shrink:0}.search-input{flex:1;background:transparent;border:none;outline:none;font-size:16px;padding:16px 0;color:inherit;font-family:inherit}.search-clear{background:none;border:none;color:var(--text-2);cursor:pointer;font-size:14px;padding:4px 8px}.search-results{max-height:460px;overflow-y:auto}.search-placeholder{text-align:center;padding:32px 16px;color:var(--text-2);font-size:14px}.search-result{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s}.search-result:hover{background:var(--hover-bg, rgba(255,255,255,.04))}.search-result-color{width:4px;min-height:36px;border-radius:2px;flex-shrink:0;margin-top:2px}.search-result-body{flex:1;min-width:0}.search-result-title{font-size:14px;font-weight:500}.search-result-meta{font-size:12px;color:var(--text-2);font-family:var(--font-mono, monospace);margin-top:2px}.search-result-cal{color:var(--text-2)}.search-result-desc{font-size:12px;color:var(--text-2);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-highlight{background:#ffc8004d;color:inherit;border-radius:2px;padding:0 1px}.search-filter-row{display:flex;align-items:center;gap:6px;padding:10px 16px;border-bottom:1px solid var(--border);overflow-x:auto}.search-filter-chip{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-2);font-size:12px;font-family:inherit;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:border-color .1s,color .1s}.search-filter-chip:hover{color:inherit}.search-filter-chip.active{border-color:var(--accent);color:var(--accent)}.search-filter-chip-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.search-loading{text-align:center;padding:32px 16px;color:var(--text-2);font-size:14px}.natural-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;display:flex;align-items:flex-start;justify-content:center;padding-top:80px}.natural-modal{width:min(600px,90vw);background:var(--modal-bg, #1e1e2e);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 24px 48px #00000080}.natural-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px 12px;border-bottom:1px solid var(--border)}.natural-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-2);font-family:var(--font-mono, monospace)}.natural-close{background:none;border:none;color:var(--text-2);cursor:pointer;font-size:16px;line-height:1;padding:0}.natural-input-row{padding:16px;border-bottom:1px solid var(--border)}.natural-input{width:100%;background:transparent;border:none;outline:none;font-size:16px;color:inherit;font-family:inherit;box-sizing:border-box}.natural-preview{padding:12px 16px;background:#ffffff08;border-bottom:1px solid var(--border)}.natural-preview-title{font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}.natural-preview-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.natural-preview-meta{font-size:13px;color:var(--text-2);font-family:var(--font-mono, monospace);margin-top:4px}.natural-preview-empty{font-size:13px;color:var(--text-2);font-style:italic}.natural-hints{padding:12px 16px;display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--border)}.natural-hint{font-size:12px;color:var(--text-2);background:#ffffff0d;border-radius:4px;padding:3px 8px;font-family:var(--font-mono, monospace)}.natural-error{padding:10px 16px;color:#e05a4b;font-size:13px;background:#e05a4b1a}.natural-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;gap:12px}.natural-cal-select{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.natural-cal-label{font-size:12px;color:var(--text-2);flex-shrink:0}.natural-cal-dropdown{background:var(--input-bg, rgba(255,255,255,.07));border:1px solid var(--border);border-radius:4px;color:inherit;font-size:13px;padding:4px 8px;font-family:inherit;flex:1;min-width:0}.natural-actions{display:flex;gap:8px;flex-shrink:0}.natural-btn-cancel{padding:7px 14px;font-size:13px;background:transparent;border:1px solid var(--border);border-radius:5px;color:var(--text-2);cursor:pointer;font-family:inherit}.natural-btn-save{padding:7px 16px;font-size:13px;background:var(--accent, #4a7cf8);border:none;border-radius:5px;color:#fff;cursor:pointer;font-family:inherit;font-weight:500;transition:opacity .15s}.natural-btn-save:disabled{opacity:.4;cursor:default}.login-wrap{height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:32px 28px;width:300px;display:flex;flex-direction:column;gap:16px}.login-logo{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:700;letter-spacing:-.03em}.login-sub{font-size:13px;color:var(--text-3);margin-top:-8px}.login-input{width:100%;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);padding:9px 12px;color:var(--text);font-family:var(--mono);font-size:13px;outline:none;transition:border-color .15s}.login-input:focus{border-color:var(--accent)}.login-input::placeholder{color:var(--text-3)}.login-card form{display:flex;flex-direction:column;gap:12px}.login-remember{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-3);cursor:pointer}.login-error{font-size:12px;color:#f87171;margin-top:-8px}.login-btn{width:100%;background:var(--accent);color:#fff;border-radius:var(--radius);padding:9px;font-size:14px;font-weight:600;transition:opacity .15s;margin-top:4px}.login-btn:hover:not(:disabled){opacity:.88}.login-btn:disabled{opacity:.45;cursor:not-allowed}.login-cancel-btn{width:100%;background:transparent;color:var(--text-3);border-radius:var(--radius);padding:8px;font-size:13px;transition:color .15s}.login-cancel-btn:hover{color:var(--text)}.natural-cal-picker{position:relative;flex:1;min-width:0}.natural-cal-trigger{display:flex;align-items:center;gap:6px;width:100%;background:var(--input-bg, rgba(255,255,255,.07));border:1px solid var(--border);border-radius:4px;color:inherit;font-size:13px;padding:4px 8px;font-family:inherit;cursor:pointer;text-align:left}.natural-cal-trigger:disabled{opacity:.5;cursor:default}.natural-cal-trigger-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.natural-cal-trigger-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.natural-cal-trigger-arrow{font-size:10px;color:var(--text-2);flex-shrink:0}.natural-cal-menu{background:var(--modal-bg, #1e1e2e);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 24px #00000080;max-height:220px;overflow-y:auto;padding:4px}.natural-cal-option{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border-radius:4px;background:transparent;border:none;color:inherit;font-size:13px;font-family:inherit;cursor:pointer;text-align:left;transition:background .1s}.natural-cal-option:hover{background:#ffffff0f}.natural-cal-option--active{background:#ffffff1a;font-weight:500}.natural-cal-option-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.btn-primary,.btn-secondary{border-radius:var(--radius);padding:9px 16px;font-size:14px;font-weight:600;font-family:var(--font);transition:opacity .15s}.btn-primary{background:var(--accent);color:#fff;border:none}.btn-secondary{background:none;border:1px solid var(--border);color:var(--text-2)}.btn-primary:hover:not(:disabled),.btn-secondary:hover:not(:disabled){opacity:.88}.btn-primary:disabled,.btn-secondary:disabled{opacity:.45;cursor:not-allowed}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn-spinner{width:13px;height:13px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;flex-shrink:0;animation:tb-spin .7s linear infinite}.form-modal{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:384px;padding:20px 20px 16px;box-shadow:0 24px 48px #00000080;color:var(--text);display:flex;flex-direction:column;gap:14px;max-height:90vh;overflow-y:auto;animation:form-modal-in .14s ease}@keyframes form-modal-in{0%{opacity:0;transform:scale(.97) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (prefers-reduced-motion: reduce){.form-modal{animation:none}}.form-modal-header{display:flex;justify-content:space-between;align-items:center}.form-modal-title{font-size:18px;font-weight:700;letter-spacing:-.01em;line-height:1.3;color:var(--text)}.form-modal-close{background:none;border:none;color:var(--text-3);font-size:20px;line-height:1;padding:2px 5px;border-radius:4px;transition:color .1s,background .1s}.form-modal-close:hover{color:var(--text);background:var(--bg-hover)}.form-field{display:flex;flex-direction:column;gap:6px}.form-label{font-size:10px;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em}.form-sublabel{font-size:12px;font-weight:500;color:var(--text-2)}.form-hint{margin:0;font-size:11px;color:var(--text-3)}.form-select:disabled{cursor:not-allowed;opacity:.6}.form-input,.form-textarea,.form-select{width:100%;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:9px 12px;font-size:14px;font-family:var(--font);outline:none;box-sizing:border-box;transition:border-color .15s}.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--accent)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-3)}.form-select{cursor:pointer}.form-textarea{resize:vertical;min-height:64px}.form-time-input{width:92px;flex-shrink:0;padding:9px 8px;font-family:var(--mono);color-scheme:dark}.form-time-input::-webkit-calendar-picker-indicator{filter:invert(.4);cursor:pointer}.form-section{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border-soft);padding-top:12px}.form-section-head{display:flex;justify-content:space-between;align-items:center}.form-date-row{display:flex;align-items:center;gap:10px}.form-date-row-label{font-size:10px;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;width:28px;flex-shrink:0}.form-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.form-toggle-checkbox{width:14px;height:14px;cursor:pointer;accent-color:var(--accent)}.form-toggle-label{font-size:12px;color:var(--text-2)}.form-recur-note{font-size:12px;color:var(--text-3);line-height:1.4}.ics-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:20px 12px;border:1px dashed var(--border);border-radius:var(--radius);background:var(--bg-3);cursor:pointer;text-align:center;transition:border-color .15s ease,background .15s ease}.ics-dropzone:hover,.ics-dropzone:focus-visible{border-color:var(--text-3);outline:none}.ics-dropzone.is-dragging{border-color:var(--accent);background:var(--bg-hover)}.ics-dropzone-label{font-size:13px;color:var(--text-2)}.ics-dropzone-hint{font-size:11.5px;color:var(--text-3)}.ics-dropzone-file{font-size:12.5px;color:var(--text);font-weight:500}.ics-preview-list{display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto;border:1px solid var(--border-soft);border-radius:var(--radius);padding:6px;background:var(--bg-3)}.ics-preview-row{display:flex;align-items:baseline;gap:8px;padding:4px 6px;border-radius:6px;font-size:12.5px}.ics-preview-row.is-conflict{background:#c46a6a1a}.ics-preview-summary{color:var(--text);font-weight:500;flex-shrink:0;max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ics-preview-meta{color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ics-preview-conflict-badge{margin-left:auto;flex-shrink:0;color:#c46a6a;font-size:11px}.ics-preview-summary-line{font-size:12px;color:var(--text-2)}.form-modal-footer{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.form-modal-close:focus-visible,.form-input:focus-visible,.form-select:focus-visible,.form-textarea:focus-visible,.form-toggle-checkbox:focus-visible,.btn-primary:focus-visible,.btn-secondary:focus-visible,.date-picker-trigger:focus-visible,.date-picker-nav:focus-visible,.date-picker-day:focus-visible,.date-picker-footer-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.date-picker{position:relative}.date-picker-trigger{display:flex;align-items:center;gap:8px;width:100%;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:9px 10px;font-size:13px;font-family:var(--mono);cursor:pointer;text-align:left;box-sizing:border-box;transition:border-color .15s}.date-picker-trigger:hover:not(:disabled){border-color:var(--text-3)}.date-picker-trigger--open{border-color:var(--accent)}.date-picker-trigger:disabled{opacity:.4;cursor:default}.date-picker-trigger-icon{flex-shrink:0;color:var(--text-3)}.date-picker-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:10;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 24px 48px #00000080;width:240px;overflow:hidden;animation:date-picker-in .12s ease}@keyframes date-picker-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.date-picker-panel{animation:none}}.date-picker-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;border-bottom:1px solid var(--border-soft)}.date-picker-month{font-size:13px;font-weight:600;color:var(--text);letter-spacing:-.01em}.date-picker-nav{background:none;border:none;color:var(--text-2);cursor:pointer;padding:4px 6px;border-radius:4px;display:flex;align-items:center;transition:color .1s,background .1s}.date-picker-nav:hover{color:var(--text);background:var(--bg-hover)}.date-picker-weekrow{display:grid;grid-template-columns:repeat(7,1fr);padding:6px 8px 2px}.date-picker-weekday{font-size:11px;color:var(--text-3);text-align:center;font-weight:500;letter-spacing:.03em}.date-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);padding:2px 8px 8px;gap:1px}.date-picker-day{background:none;border:none;border-radius:4px;color:var(--text-2);font-size:13px;font-family:var(--mono);padding:5px 0;cursor:pointer;text-align:center;line-height:1.2;transition:background .08s,color .08s}.date-picker-day:hover:not(:disabled){background:var(--bg-hover)}.date-picker-day--selected,.date-picker-day--selected:hover{background:var(--accent);color:#fff;font-weight:600}.date-picker-day--today{color:var(--accent);font-weight:600;box-shadow:inset 0 0 0 1px var(--accent)}.date-picker-day--muted{color:var(--text-3);opacity:.5}.date-picker-day--disabled{color:var(--text-3);opacity:.3;cursor:default}.date-picker-footer{display:flex;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--border-soft)}.date-picker-footer-btn{background:none;border:none;color:var(--text-2);font-size:13px;font-family:var(--font);cursor:pointer;padding:2px 4px}.date-picker-footer-btn:hover{color:var(--text)}.date-picker-footer-btn--accent{color:var(--accent)}.admin-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:200;display:flex;align-items:flex-start;justify-content:center;padding:60px 20px;overflow-y:auto}.admin-modal{width:min(680px,100%);background:var(--modal-bg, #1e1e2e);border:1px solid var(--border);border-radius:10px;box-shadow:0 24px 48px #00000080;padding:24px;display:flex;flex-direction:column;gap:20px}.admin-header{display:flex;align-items:center;justify-content:space-between}.admin-header h2{font-size:16px;font-weight:700}.admin-close-btn{color:var(--text-3);font-size:16px;padding:4px 8px}.admin-close-btn:hover{color:var(--text)}.admin-error{margin-top:0}.admin-temp-password{background:var(--bg-3);border:1px solid var(--accent);border-radius:var(--radius);padding:12px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.admin-temp-password code{font-family:var(--mono);font-size:14px;background:var(--bg);padding:4px 8px;border-radius:6px}.admin-create-form{border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:12px}.admin-create-form h3{font-size:13px;font-weight:600;color:var(--text-3)}.admin-form-row{display:flex;gap:10px}.admin-form-row .login-input{width:auto;flex:1}.admin-calendar-checks{display:flex;flex-wrap:wrap;gap:12px}.admin-calendar-check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2);cursor:pointer}.admin-submit-btn{width:auto;align-self:flex-start;padding:9px 20px}.admin-user-list{display:flex;flex-direction:column;gap:10px}.admin-user-row{border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;display:flex;flex-direction:column;gap:10px}.admin-user-info{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}.admin-user-email{color:var(--text-3)}.admin-user-role{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.admin-user-flag{font-size:11px;color:#f87171}.admin-reset-btn{align-self:flex-start;font-size:12px;color:var(--text-3);border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;transition:color .15s,border-color .15s}.admin-reset-btn:hover{color:var(--text);border-color:var(--text-3)}.event-item--dragging,.week-event--dragging,.day-event--dragging{opacity:.35;pointer-events:none}.day-cell--drop-over{background:color-mix(in srgb,var(--accent) 14%,var(--bg))!important;outline:2px dashed color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:-2px}.week-day-col--drop-over{background:color-mix(in srgb,var(--accent) 6%,transparent)}.day-events-col--drop-over{background:color-mix(in srgb,var(--accent) 5%,transparent)}.drag-overlay{display:inline-flex;align-items:center;gap:8px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;font-size:13px;font-weight:500;color:var(--text);box-shadow:0 12px 32px #0000008c,0 4px 8px #0000004d;cursor:grabbing;max-width:240px;overflow:hidden}.drag-overlay-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.drag-overlay-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-item,.week-event,.day-event{cursor:grab}.event-item:active,.week-event:active,.day-event:active{cursor:grabbing}.day-event-resize-handle,.week-event-resize-handle{position:absolute;left:0;right:0;bottom:0;height:6px;cursor:ns-resize;touch-action:none}.day-event:hover .day-event-resize-handle,.week-event:hover .week-event-resize-handle{background:color-mix(in srgb,var(--text) 25%,transparent);border-radius:0 0 var(--radius) var(--radius)}.day-event--resizing,.week-event--resizing{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 70%,transparent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:300;display:flex;align-items:center;justify-content:center;padding:20px;animation:modal-fade .12s ease}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.rec-dialog{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:420px;overflow:hidden;box-shadow:0 16px 48px #0009;animation:rec-dialog-in .14s ease}@keyframes rec-dialog-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.rec-dialog-header{padding:20px 22px 12px}.rec-dialog-title{font-size:16px;font-weight:600;color:var(--text);margin-bottom:4px;letter-spacing:-.01em}.rec-dialog-sub{font-size:13px;color:var(--text-2);line-height:1.4}.rec-dialog-options{padding:4px 12px 12px;display:flex;flex-direction:column;gap:2px}.rec-option{display:block;width:100%;text-align:left;padding:12px 14px;border-radius:var(--radius);background:transparent;border:1px solid transparent;transition:background .1s,border-color .1s}.rec-option:hover{background:var(--bg-3);border-color:var(--border)}.rec-option-title{font-size:14px;font-weight:500;color:var(--text);margin-bottom:3px}.rec-option-desc{font-size:12.5px;color:var(--text-3);line-height:1.4}.rec-dialog-footer{padding:10px 18px 16px;display:flex;justify-content:flex-end;border-top:1px solid var(--border-soft);margin-top:4px}.rec-cancel{padding:7px 16px;border-radius:var(--radius);border:1px solid var(--border);color:var(--text-2);font-size:13px;font-weight:500;transition:background .1s,color .1s,border-color .1s}.rec-cancel:hover{background:var(--bg-3);color:var(--text);border-color:var(--text-3)}:root{--bg: #0f1013;--bg-2: #16181d;--bg-3: #1e2028;--bg-hover: #23262f;--border: #2a2d38;--border-soft: #21242e;--text: #e8eaf0;--text-2: #9095a8;--text-3: #5c6070;--accent: #4f7ef8;--accent-dim: rgba(79, 126, 248, .15);--today-bg: rgba(79, 126, 248, .12);--today-ring: #4f7ef8;--radius: 6px;--radius-lg: 10px;--sidebar-w: 220px;--topbar-h: 52px;--font: "DM Sans", system-ui, sans-serif;--mono: "DM Mono", "Fira Code", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}button{background:none;border:none;cursor:pointer;font-family:inherit;color:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.recur-icon{flex-shrink:0;margin-left:auto;padding-left:4px;font-size:.85em;line-height:1;color:var(--text-3);opacity:.9}
