:root{--bg:#fff;--surface:#fff;--sidebar:#f7f7f5;--fg:#37352f;--muted:#787774;--faint:#9b9a97;--line:#e9e9e7;--hover:#f1f1ef;--focus:#2383e2;--accent-bg:#eaf2fa;--accent-fg:#245480;--bad:#c54a45;--warning:#9b6c22;--shadow:0 0 0 1px rgb(15 15 15 / 6%),0 1px 2px rgb(15 15 15 / 8%);--scrim:rgb(15 15 15 / 28%);--hour:54px;color-scheme:light;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#191919;--surface:#202020;--sidebar:#202020;--fg:#e1e1df;--muted:#9b9b9b;--faint:#7d7d7b;--line:#303030;--hover:#2c2c2c;--focus:#529cca;--accent-bg:#20334b;--accent-fg:#b9d8ed;--bad:#e0716c;--warning:#d9a441;--shadow:0 0 0 1px rgb(255 255 255 / 7%);--scrim:rgb(0 0 0 / 50%);color-scheme:dark}}
:root[data-theme=dark]{--bg:#191919;--surface:#202020;--sidebar:#202020;--fg:#e1e1df;--muted:#9b9b9b;--faint:#7d7d7b;--line:#303030;--hover:#2c2c2c;--focus:#529cca;--accent-bg:#20334b;--accent-fg:#b9d8ed;--bad:#e0716c;--warning:#d9a441;--shadow:0 0 0 1px rgb(255 255 255 / 7%);--scrim:rgb(0 0 0 / 50%);color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;text-align:left}button:disabled{cursor:default;opacity:.45}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:3px}a{color:var(--focus)}button{border:0;background:transparent}h1,h2,h3,p{margin:0}[hidden]{display:none!important}.small{font-size:12px}.muted{color:var(--muted)}
.app-shell{display:grid;grid-template-columns:218px minmax(0,1fr);min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:27px;background:var(--sidebar);border-right:1px solid var(--line);padding:28px 18px;min-width:0}.brand{display:flex;align-items:center;gap:10px;color:var(--fg);font-size:18px;font-weight:650;letter-spacing:-.03em;text-decoration:none}.brand-icon{color:var(--muted);font-size:27px;line-height:1}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:5px;padding:6px 11px;font-size:13px;font-weight:500;line-height:20px;white-space:nowrap;background:var(--surface)}.button:hover:not(:disabled){background:var(--hover)}.button.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}.button.primary:hover:not(:disabled){opacity:.86}.new-event{width:100%;justify-content:flex-start}.new-event>span{font-size:21px;line-height:20px}.filter-section h2{font-size:11px;text-transform:uppercase;letter-spacing:.065em;color:var(--muted);font-weight:600;margin-bottom:8px;padding-inline:8px}.filter-list{display:flex;flex-direction:column;gap:3px}.filter-list>p{padding-inline:8px}.filter-button{display:flex;align-items:center;gap:9px;border-radius:5px;padding:7px 8px;width:100%;font-size:13px}.filter-button:hover,.sidebar-action:hover,.sidebar-link:hover{background:var(--hover)}.filter-button[aria-pressed=true]{background:var(--hover);font-weight:600}.filter-button .filter-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.filter-button .count{margin-left:auto;font-size:11px;color:var(--faint);font-variant-numeric:tabular-nums}.dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--muted)}.dot.outlined{background:transparent;border:1px solid var(--muted)}.sidebar-bottom{display:flex;flex-direction:column;gap:4px;margin-top:auto;padding-top:38px}.sidebar-action,.sidebar-link{display:flex;gap:9px;align-items:center;font-size:13px;color:var(--muted);border-radius:5px;padding:7px 8px;text-decoration:none}.sidebar-link>span{margin-left:auto}
.main{min-width:0;padding:35px clamp(20px,3vw,48px) 24px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.04em;color:var(--muted);margin-bottom:6px}h1{font-size:32px;font-weight:700;line-height:1.2;letter-spacing:-.025em}.subtitle{font-size:12px;color:var(--muted);margin-top:8px}.header-actions{display:flex;align-items:center;gap:12px}.sync-label{font-size:11px;color:var(--muted);max-width:220px;text-align:right}.notice{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line);background:var(--sidebar);border-radius:6px;padding:14px 16px;margin-bottom:20px;font-size:13px}.notice p{margin-top:3px;color:var(--muted);font-size:12px;max-width:760px}.notice.error{background:transparent;border-color:var(--bad);color:var(--bad)}.calendar-section{border-top:1px solid var(--line)}.calendar-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:16px 0}.date-navigation{display:flex;align-items:center;gap:13px}.date-navigation h2{font-size:17px;font-weight:600;letter-spacing:-.02em}.arrows{display:flex;gap:2px}.icon-button{width:29px;height:29px;display:inline-flex;justify-content:center;align-items:center;border-radius:5px;color:var(--muted);font-size:24px;line-height:1}.icon-button:hover{background:var(--hover)}.view-controls{display:flex;align-items:center;gap:14px}.timezone{font-size:11px;color:var(--muted)}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:5px;padding:2px;background:var(--surface)}.segmented button{padding:4px 9px;border-radius:3px;color:var(--muted);font-size:12px}.segmented button[aria-pressed=true]{background:var(--hover);color:var(--fg);font-weight:600}.active-filter-bar{display:flex;justify-content:space-between;align-items:center;background:var(--sidebar);padding:8px 12px;border-radius:5px;font-size:12px;margin-bottom:12px}.text-button{padding:0;color:var(--focus);font-size:12px}.calendar-body{position:relative;min-height:400px;border:1px solid var(--line);border-radius:7px;overflow:hidden}.loading-state{display:flex;align-items:center;justify-content:center;min-height:400px;color:var(--muted);font-size:13px}
.week-scroll{height:min(68vh,820px);min-height:390px;overflow:auto;position:relative;overscroll-behavior:contain}.week-grid{min-width:680px;position:relative}.week-heading{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:52px repeat(7,minmax(0,1fr));background:var(--bg);border-bottom:1px solid var(--line)}.heading-corner{border-right:1px solid var(--line)}.day-heading{display:flex;align-items:center;justify-content:center;gap:6px;padding:11px 4px;border-right:1px solid var(--line);font-size:11px;color:var(--muted)}.day-heading:last-child{border-right:0}.day-heading .day-number{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;height:27px;width:27px;font-size:15px;color:var(--fg)}.day-heading.is-today .day-number{background:var(--fg);color:var(--bg);font-weight:600}.all-day-row{display:grid;grid-template-columns:52px repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line);min-height:35px;background:var(--surface)}.all-day-label{font-size:9px;line-height:1.2;align-self:center;text-align:center;color:var(--faint);padding:4px}.all-day-cell{display:flex;flex-direction:column;gap:3px;border-left:1px solid var(--line);padding:4px;min-width:0}.all-day-event{display:block;width:100%;padding:2px 5px;border-radius:3px;background:var(--accent-bg);color:var(--accent-fg);font-size:10px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hours-grid{display:grid;grid-template-columns:52px repeat(7,minmax(0,1fr));height:calc(var(--hour)*24)}.time-column{position:relative}.time-label{position:absolute;left:0;right:0;text-align:center;color:var(--faint);font-size:10px;line-height:14px;transform:translateY(-7px);font-variant-numeric:tabular-nums}.time-label:first-child{transform:translateY(1px)}.day-column{position:relative;border-left:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hour) - 1px),var(--line) calc(var(--hour) - 1px),var(--line) var(--hour));cursor:crosshair}.day-column.is-today{background-color:color-mix(in srgb,var(--accent-bg) 20%,var(--bg))}.event-block{position:absolute;display:flex;flex-direction:column;align-items:stretch;gap:1px;background:var(--accent-bg);color:var(--accent-fg);border-radius:4px;border-left:3px solid var(--event-color,var(--focus));padding:4px 5px;font-size:11px;line-height:1.3;min-height:22px;overflow:hidden;text-align:left;cursor:pointer;box-shadow:0 0 0 1px var(--bg);z-index:2}.event-block:hover{filter:brightness(.96);z-index:3;box-shadow:var(--shadow)}.event-title{font-weight:600;overflow-wrap:anywhere}.event-time{font-size:9px;opacity:.8;font-variant-numeric:tabular-nums}.event-project{font-size:9px;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.now-line{position:absolute;height:1px;background:var(--bad);left:0;right:0;z-index:4;pointer-events:none}.now-line::before{content:"";display:block;position:absolute;left:-3px;top:-3px;height:7px;width:7px;background:var(--bad);border-radius:50%}.week-empty-note{position:absolute;top:120px;left:50%;transform:translateX(-50%);padding:10px 15px;max-width:340px;z-index:4;background:var(--surface);border:1px solid var(--line);border-radius:5px;color:var(--muted);font-size:12px;text-align:center;pointer-events:none;box-shadow:var(--shadow)}.calendar-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:11px 0;font-size:10px;color:var(--faint)}
.agenda{padding:4px 20px}.agenda-day{padding:16px 0;border-bottom:1px solid var(--line)}.agenda-day:last-child{border-bottom:0}.agenda-day h3{font-size:12px;color:var(--muted);font-weight:500;margin-bottom:12px}.agenda-day.is-today h3{color:var(--focus)}.agenda-empty{font-size:13px;color:var(--faint);padding:4px 0 10px}.agenda-event{display:flex;align-items:flex-start;gap:14px;padding:11px 10px;width:100%;border-radius:5px;text-align:left}.agenda-event:hover{background:var(--hover)}.agenda-time{width:72px;flex:none;font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted);padding-top:1px}.agenda-event-main{border-left:3px solid var(--event-color,var(--focus));padding-left:11px;min-width:0}.agenda-event-main strong{font-size:13px;font-weight:550;display:block;overflow-wrap:anywhere}.agenda-event-main p{font-size:11px;color:var(--muted);margin-top:3px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:50px 24px;min-height:400px;color:var(--muted)}.empty-state .empty-icon{font-size:31px;color:var(--faint);margin-bottom:12px}.empty-state h3{font-size:16px;font-weight:550;color:var(--fg);margin-bottom:6px}.empty-state p{font-size:12px;max-width:360px}.empty-state .button{margin-top:18px}
.dialog-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:23px 24px 18px;border-bottom:1px solid var(--line);flex:none}.dialog-header h2{font-size:22px;letter-spacing:-.025em;line-height:1.3}.dialog-header .eyebrow{margin-bottom:4px}.close-button{font-size:24px;flex:none}dialog{background:var(--bg);color:var(--fg);padding:0;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 60px rgb(0 0 0 / 18%);max-height:94dvh}dialog::backdrop{background:var(--scrim)}.event-dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(470px,100%);max-width:100%;max-height:100dvh;height:100dvh;border-radius:0;border-block:0;border-right:0;box-shadow:-12px 0 32px rgb(15 15 15 / 10%)}.event-dialog form{display:flex;flex-direction:column;height:100%}.dialog-body{padding:22px 24px;overflow:auto;flex:1}.dialog-body>.notice{font-size:12px;padding:10px 12px}.field{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);margin-bottom:18px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:5px;background:var(--surface);color:var(--fg);padding:8px 9px;min-height:36px;font-size:13px;line-height:1.4}.field input[readonly]{color:var(--muted)}.field textarea{resize:vertical;min-height:65px}.field input::placeholder,.field textarea::placeholder{color:var(--faint)}.field input:disabled,.field select:disabled,.field textarea:disabled{opacity:.7}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-help{font-size:11px;line-height:1.5;color:var(--muted);margin:-8px 0 18px}.field .field-help{margin:0}.check-row{display:flex;align-items:flex-start;gap:8px;margin-bottom:17px;font-size:12px;color:var(--fg)}.check-row input{accent-color:var(--focus);margin:3px 0 0}.event-link{display:block;font-size:12px;overflow-wrap:anywhere;margin:-9px 0 18px;text-decoration:none}.event-link:hover{text-decoration:underline}.dialog-footer{display:flex;align-items:center;gap:8px;padding:15px 24px;border-top:1px solid var(--line);flex:none}.footer-spacer{flex:1}.danger{color:var(--bad)}.settings-dialog{width:min(650px,calc(100% - 32px));height:min(850px,94dvh)}.settings-dialog[open]{display:flex;flex-direction:column}.settings-section{padding-bottom:24px;margin-bottom:24px;border-bottom:1px solid var(--line)}.settings-section:last-child{padding:0;margin:0;border:0}.settings-section h3{font-size:15px;font-weight:600;margin-bottom:7px}.connection-grid{display:flex;flex-direction:column;gap:8px;margin-top:15px}.connection-card{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--line);border-radius:6px;padding:12px}.connection-card strong{font-size:12px;font-weight:550}.connection-card p{margin-top:3px}.settings-section details{margin-top:16px}.settings-section summary{font-size:12px;color:var(--muted);cursor:pointer}.settings-form{margin-top:17px}.settings-form .field{margin-bottom:13px}.settings-form>.field-help:first-child{margin-top:0}.calendar-setting{display:flex;align-items:center;gap:9px;padding:8px 0;font-size:12px}.calendar-setting>input{accent-color:var(--focus)}.calendar-setting>span{min-width:0}.calendar-setting small{display:block;color:var(--muted);font-size:10px}.future-settings{display:flex;flex-direction:column;gap:21px}.future-settings h3{font-size:13px}.toast{position:fixed;bottom:23px;left:50%;transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:11px 17px;border-radius:6px;box-shadow:var(--shadow);font-size:12px;z-index:1000;max-width:min(90vw,500px)}body.busy{cursor:progress}.button.busy{opacity:.6;pointer-events:none}
@media(min-width:1500px){.main{max-width:1750px}}@media(max-width:1050px){.app-shell{grid-template-columns:180px minmax(0,1fr)}.sidebar{padding:26px 12px}.main{padding-inline:22px}.brand{font-size:16px}.timezone{display:none}.header-actions{flex-direction:column-reverse;align-items:flex-end;gap:7px}.sync-label{font-size:10px}}
.mobile-filters{display:none}
.account-add{margin-top:12px}.connection-card-info{min-width:0}.connection-card-info strong{overflow-wrap:anywhere}.github-callback{margin-top:14px}.settings-form>p:first-child{margin-bottom:13px}
.operation-recovery{border-color:var(--warning);align-items:flex-start}.operation-recovery strong{color:var(--warning)}.operation-recovery .button{margin-top:3px}.operation-recovery p:last-child{margin-top:6px}
@media(max-width:760px){.mobile-filters{display:flex;gap:9px;margin-bottom:13px}.mobile-filters label{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px;font-size:10px;color:var(--muted)}.mobile-filters select{max-width:100%;min-width:0;border:1px solid var(--line);border-radius:5px;background:var(--surface);padding:7px 8px;color:var(--fg);font-size:12px}}
@media(max-width:760px){.app-shell{display:flex;flex-direction:column}.sidebar{padding:17px 18px;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center}.brand{font-size:18px}.new-event{width:auto}.filter-section{display:none}.sidebar-bottom{padding:0;margin:0;grid-column:1/-1;flex-direction:row;gap:8px;border-top:1px solid var(--line);padding-top:9px}.sidebar-action,.sidebar-link{font-size:11px;padding:4px 5px}.sidebar-link{margin-left:auto}.main{padding:23px 18px 15px}.page-header{margin-bottom:20px;gap:10px}.eyebrow{font-size:10px}h1{font-size:28px}.subtitle{font-size:11px;max-width:210px}.header-actions{gap:6px}.sync-label{max-width:130px}.header-actions .button{font-size:11px;padding:4px 9px}.notice{align-items:flex-start;gap:12px;padding:12px;flex-direction:column;font-size:12px}.notice p{font-size:11px}.notice .button{align-self:flex-start}.calendar-toolbar{gap:13px}.date-navigation{gap:7px;flex:1}.date-navigation h2{font-size:14px}.today-button{padding:4px 8px;font-size:11px}.arrows{gap:0}.icon-button{width:25px;height:27px}.view-controls{gap:0}.segmented button{font-size:11px;padding:4px 7px}.calendar-body{min-height:380px}.calendar-footer{font-size:9px}.calendar-footer>span:last-child{max-width:240px}.agenda{padding-inline:11px}.agenda-event{padding-inline:4px;gap:6px}.agenda-time{width:64px}.agenda-event-main{padding-left:9px}.dialog-header{padding:20px 18px 16px}.dialog-body{padding:20px 18px}.dialog-footer{padding:13px 18px;flex-wrap:wrap}.settings-dialog .dialog-footer>.small{width:100%;font-size:10px}.field-row{gap:9px}.field input,.field select,.field textarea{font-size:14px}.field-row input{font-size:12px}.settings-dialog{width:calc(100% - 20px);max-height:96dvh;height:96dvh}.week-empty-note{max-width:250px;font-size:11px}.active-filter-bar{font-size:11px}.connection-card{padding:10px;gap:8px}}

@media(max-width:760px){.sidebar-bottom{flex-wrap:wrap}.settings-dialog .dialog-body{min-height:0}.settings-dialog .field input,.settings-dialog .field select,.settings-dialog .field textarea{font-size:16px;min-width:0}.settings-dialog .button{min-height:40px}.settings-dialog .close-button{width:40px;height:40px;margin:-6px -6px 0 0}}
