@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0a0d14;--bg-2:#0d111a;--surface:#121723;--surface-2:#171d2b;--surface-3:#1e2537;--hairline:#232c3e;--hairline-strong:#313c54;--text:#e7ecf5;--text-dim:#9aa4b8;--text-faint:#62708a;--violet:#7c6bff;--indigo:#5b8def;--cyan:#35e0d4;--accent:#6e8bff;--grad:linear-gradient(115deg, #7c6bff 0%, #5b8def 52%, #35e0d4 100%);--grad-soft:linear-gradient(115deg, #7c6bff38, #35e0d42e);--danger:#ff6b6b;--r-sm:8px;--r-md:12px;--r-lg:18px;--r-xl:24px;--ring:0 0 0 3px #6e8bff4d;--shadow-card:0 1px 0 #ffffff08 inset, 0 30px 80px -40px #000000d9;--shadow-glow:0 0 0 1px #7c6bff1a, 0 24px 70px -28px #35e0d447;--font-display:"Space Grotesk Variable", system-ui, sans-serif;--font-body:"Inter Variable", system-ui, sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, "SFMono-Regular", monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}body:before{content:"";z-index:-2;background:radial-gradient(58vw 58vw at 10% -12%, #7c6bff29, transparent 60%), radial-gradient(52vw 52vw at 104% 112%, #35e0d41f, transparent 58%), var(--bg);position:fixed;inset:0}body:after{content:"";z-index:-1;background-image:linear-gradient(var(--hairline) 1px, transparent 1px), linear-gradient(90deg, var(--hairline) 1px, transparent 1px);opacity:.16;pointer-events:none;background-size:46px 46px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(circle at 50% 22%,#000 0%,#0000 78%);mask-image:radial-gradient(circle at 50% 22%,#000 0%,#0000 78%)}button{cursor:pointer;font-family:inherit}:focus-visible{box-shadow:var(--ring);border-radius:var(--r-sm);outline:none}.calendar-shell{--fc-page-bg-color:transparent;--fc-border-color:var(--hairline);--fc-neutral-bg-color:var(--surface-2);--fc-neutral-text-color:var(--text-dim);--fc-today-bg-color:#6e8bff12;--fc-now-indicator-color:var(--cyan);--fc-event-bg-color:#6e8bff29;--fc-event-border-color:#7c6bff8c;--fc-event-text-color:var(--text);--fc-highlight-color:#35e0d41f}.calendar-shell .fc{--fc-small-font-size:.78rem}.calendar-shell .fc .fc-toolbar-title{font-family:var(--font-display);letter-spacing:-.015em;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;padding:.1rem .5rem;font-size:1.35rem;font-weight:600;transition:background .12s}.calendar-shell .fc .fc-toolbar-title:hover{background:var(--surface-2)}.calendar-shell .fc .fc-col-header-cell-cushion{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.16em;color:var(--text-faint);padding:.7rem .4rem;font-size:.66rem;text-decoration:none}.calendar-shell .fc .fc-daygrid-day-number,.calendar-shell .fc .fc-timegrid-slot-label-cushion,.calendar-shell .fc .fc-list-day-text{font-family:var(--font-mono);color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:.78rem;text-decoration:none}.calendar-shell .fc .fc-timegrid-slot-label-cushion{letter-spacing:.02em;color:var(--text-faint);padding-inline:.5rem}.calendar-shell .fc .fc-timegrid-slot[data-time="06:00:00"],.calendar-shell .fc .fc-timegrid-slot[data-time="12:00:00"],.calendar-shell .fc .fc-timegrid-slot[data-time="18:00:00"]{border-top-color:var(--hairline-strong)}.calendar-shell .fc .fc-timegrid-slot[data-time="06:00:00"] .fc-timegrid-slot-label-cushion,.calendar-shell .fc .fc-timegrid-slot[data-time="12:00:00"] .fc-timegrid-slot-label-cushion,.calendar-shell .fc .fc-timegrid-slot[data-time="18:00:00"] .fc-timegrid-slot-label-cushion{color:var(--text-dim)}.calendar-shell .fc .fc-day-today .fc-daygrid-day-number{color:var(--text);font-weight:600}.calendar-shell .fc .fc-day.is-selected{background:#35e0d417;box-shadow:inset 0 0 0 1.5px #35e0d499}.calendar-shell .fc .fc-day.is-selected .fc-daygrid-day-number{color:var(--cyan);font-weight:600}.calendar-shell .fc-theme-standard td,.calendar-shell .fc-theme-standard th,.calendar-shell .fc-theme-standard .fc-scrollgrid{border-color:var(--hairline)}.calendar-shell .fc .fc-button{background:var(--surface-2);border:1px solid var(--hairline);color:var(--text-dim);font-family:var(--font-body);text-transform:capitalize;box-shadow:none;padding:.42rem .75rem;font-size:.85rem;font-weight:500;transition:background .15s,color .15s,border-color .15s}.calendar-shell .fc .fc-button:hover{background:var(--surface-3);color:var(--text);border-color:var(--hairline-strong)}.calendar-shell .fc .fc-button:focus-visible{box-shadow:var(--ring)}.calendar-shell .fc .fc-button-primary:not(:disabled).fc-button-active,.calendar-shell .fc .fc-button-primary:not(:disabled):active{background:var(--grad-soft);color:var(--text);border-color:#7c6bff80}.calendar-shell .fc .fc-button .fc-icon{font-size:1.1em}.calendar-shell .fc .fc-event{border-left-width:3px;border-radius:7px;font-weight:500}.calendar-shell .fc .fc-daygrid-event{padding:1px 5px}.calendar-shell .fc .fc-timegrid-event .fc-event-main{padding:1px 5px 0}.calendar-shell .fc .fc-timegrid-event .fc-event-time,.calendar-shell .fc .fc-timegrid-event .fc-event-title{line-height:1.25}.calendar-shell .fc .fc-timegrid-event-short .fc-event-main-frame{align-items:center;gap:4px}.calendar-shell .fc .fc-timegrid-event-short .fc-event-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.calendar-shell .fc .fc-timegrid-event-short .fc-event-time:after{content:none}.calendar-shell .fc .fc-event-time{font-variant-numeric:tabular-nums}.calendar-shell .fc .fc-daygrid-event .fc-event-time{flex:none}.calendar-shell .fc .fc-daygrid-event .fc-event-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-shell .fc .fc-event:hover{filter:brightness(1.15)}.calendar-shell .fc{--fc-event-resizer-thickness:10px}.calendar-shell .fc .fc-timegrid-event-short{--fc-event-resizer-thickness:8px}.calendar-shell .fc .fc-timegrid-event .fc-event-resizer:after{content:"";opacity:0;pointer-events:none;background:currentColor;border-radius:999px;width:26px;max-width:55%;height:3px;transition:opacity .12s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.calendar-shell .fc .fc-timegrid-event:hover .fc-event-resizer:after{opacity:.7}@media (prefers-reduced-motion:reduce){.calendar-shell .fc .fc-timegrid-event .fc-event-resizer:after{transition:none}}.calendar-shell .fc .fc-event.fc-invite-pending,.calendar-shell .fc .fc-event.fc-invite-tentative{border-style:dashed}.calendar-shell .fc .fc-event.fc-invite-accepted{border-style:solid;border-width:1.5px}.calendar-shell .fc .fc-event.fc-invite .fc-event-title:before{opacity:.85;margin-right:4px;font-weight:600}.calendar-shell .fc .fc-event.fc-invite-pending .fc-event-title:before{content:"✉"}.calendar-shell .fc .fc-event.fc-invite-tentative .fc-event-title:before{content:"?"}.calendar-shell .fc .fc-event.fc-invite-accepted .fc-event-title:before{content:"✓"}.calendar-shell .fc .fc-event.fc-event-selected{--sel:var(--ev-color,var(--cyan));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--sel) 45%, transparent),  0 0 0 1.5px var(--sel),  0 0 16px -3px color-mix(in srgb, var(--sel) 60%, transparent),  0 10px 24px -10px #000000b3;z-index:6;transition:transform .13s cubic-bezier(.2,.7,.3,1),box-shadow .18s;transform:translateY(-1px)}@media (prefers-reduced-motion:reduce){.calendar-shell .fc .fc-event.fc-event-selected{transition:none;transform:none}}.calendar-fc-host{height:100%}.calendar-shell .agenda{flex-direction:column;height:100%;display:flex}.calendar-shell .agenda-title{font-family:var(--font-display);letter-spacing:-.015em;color:var(--text);margin:0;font-size:1.35rem;font-weight:600}.calendar-shell .agenda-body{border:1px solid var(--hairline);border-radius:var(--r-md);flex:1;min-height:0;overflow-y:auto}.calendar-shell .agenda-day{z-index:1;background:var(--surface-2);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--text-dim);padding:.55rem .9rem;font-size:.72rem;position:sticky;top:0}.calendar-shell .agenda-row{text-align:left;border:none;border-top:1px solid var(--hairline);width:100%;color:var(--text);font-family:var(--font-body);cursor:pointer;background:0 0;align-items:center;gap:.7rem;padding:.55rem .9rem;font-size:.88rem;transition:background .12s;display:flex}.calendar-shell .agenda-row:hover{background:var(--surface-2)}.calendar-shell .agenda-time{font-family:var(--font-mono);color:var(--text-dim);white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right;flex:none;width:9.75rem;padding-right:.35rem;font-size:.78rem}.calendar-shell .agenda-dot{border-radius:50%;flex:none;width:10px;height:10px;box-shadow:inset 0 0 0 1px #0000004d}.calendar-shell .agenda-row-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.calendar-shell .agenda-recurring{color:var(--text-faint)}.calendar-shell .agenda-row-loc{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;max-width:30%;margin-left:auto;font-size:.8rem;overflow:hidden}.calendar-shell .agenda-note{color:var(--text-faint);text-align:center;padding:1rem .9rem;font-size:.85rem}.calendar-shell .agenda-sentinel{height:1px}.calendar-shell .fc .fc-timegrid-now-indicator-line{border-color:var(--cyan);border-top-width:2px;box-shadow:0 0 8px #35e0d499}.calendar-shell .fc .fc-timegrid-now-indicator-arrow{border-color:var(--cyan);color:var(--cyan)}.calendar-shell .fc .fc-scroller,.calendar-shell .agenda-body{scrollbar-width:thin;scrollbar-color:var(--hairline-strong) transparent}.calendar-shell .fc .fc-scroller::-webkit-scrollbar{width:10px;height:10px}.calendar-shell .agenda-body::-webkit-scrollbar{width:10px;height:10px}.calendar-shell .fc .fc-scroller::-webkit-scrollbar-button{width:0;height:0;display:none}.calendar-shell .agenda-body::-webkit-scrollbar-button{width:0;height:0;display:none}.calendar-shell .fc .fc-scroller::-webkit-scrollbar-track{background:0 0}.calendar-shell .agenda-body::-webkit-scrollbar-track{background:0 0}.calendar-shell .fc .fc-scroller::-webkit-scrollbar-thumb{background:var(--hairline-strong);background-clip:padding-box;border:3px solid #0000;border-radius:999px}.calendar-shell .agenda-body::-webkit-scrollbar-thumb{background:var(--hairline-strong);background-clip:padding-box;border:3px solid #0000;border-radius:999px}.calendar-shell .fc .fc-scroller::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:padding-box}.calendar-shell .agenda-body::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:padding-box}.calendar-shell .fc .fc-scroller:not(.fc-scroller-liquid-absolute){scrollbar-width:none}.calendar-shell .fc .fc-scroller:not(.fc-scroller-liquid-absolute)::-webkit-scrollbar{display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.app{flex-direction:column;height:100dvh;display:flex}.app-header{z-index:20;-webkit-backdrop-filter:blur(14px)saturate(140%);border-bottom:1px solid var(--hairline);background:#0a0d149e;justify-content:space-between;align-items:center;padding:.8rem 1.5rem;display:flex;position:sticky;top:0}.header-actions{align-items:center;gap:.5rem;display:flex}.header-search{flex:1;justify-content:center;min-width:0;padding:0 1rem;display:flex}.search{width:100%;max-width:440px;position:relative}.search-icon{color:var(--text-faint);pointer-events:none;position:absolute;top:50%;left:.7rem;transform:translateY(-50%)}.search-input{border-radius:var(--r-md);border:1px solid var(--hairline);background:var(--surface);width:100%;height:38px;color:var(--text);font-family:var(--font-body);outline:none;padding:0 .9rem 0 2.2rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.search-input::placeholder{color:var(--text-faint)}.search-input:focus{border-color:var(--accent);box-shadow:var(--ring)}.search-results{background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:var(--r-md);box-shadow:var(--shadow-card);z-index:40;max-height:60vh;margin:0;padding:.3rem;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.search-hit{border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:.6rem;padding:.5rem .6rem;display:flex}.search-hit.is-active{background:var(--surface-3);box-shadow:inset 2px 0 0 var(--cyan)}.search-hit-dot{border-radius:50%;flex:none;width:8px;height:8px}.search-hit-text{flex-direction:column;min-width:0;display:flex}.search-hit-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:500;overflow:hidden}.search-hit-when{color:var(--text-faint);font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;overflow:hidden}.search-empty{color:var(--text-faint);padding:.7rem .8rem;font-size:.85rem}.profile{display:flex;position:relative}.avatar-btn{border:1px solid var(--hairline-strong);background:var(--surface-2);border-radius:50%;place-items:center;width:34px;height:34px;padding:0;transition:box-shadow .15s,border-color .15s;display:grid;overflow:hidden}.avatar-btn:hover{border-color:var(--accent);box-shadow:var(--ring)}.avatar-btn img{object-fit:cover;width:100%;height:100%}.avatar-fallback{background:var(--grad);color:#081018;width:100%;height:100%;font-family:var(--font-display);place-items:center;font-size:.95rem;font-weight:600;display:grid}.menu-backdrop{z-index:30;position:fixed;inset:0}.profile-menu{z-index:31;border:1px solid var(--hairline-strong);background:linear-gradient(#1a202ffa,#121621fa);border-radius:12px;flex-direction:column;gap:2px;min-width:190px;padding:5px;animation:.13s both pop;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 20px 50px -18px #000000d9}.profile-menu-email{color:var(--text-faint);border-bottom:1px solid var(--hairline);text-overflow:ellipsis;white-space:nowrap;margin-bottom:3px;padding:.4rem .7rem .5rem;font-size:.72rem;overflow:hidden}.settings-section h3{font-family:var(--font-display);margin:0 0 .9rem;font-size:1rem;font-weight:500}.avatar-edit{align-items:center;gap:1rem;display:flex}.avatar-preview{object-fit:cover;border:1px solid var(--hairline);border-radius:50%;flex:none;width:72px;height:72px;font-size:1.8rem}.avatar-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.settings{flex-direction:column;width:min(1080px,100%);min-height:100dvh;margin:0 auto;padding:2rem 1.75rem 2.5rem;display:flex}.settings-header{align-items:center;gap:.85rem;margin-bottom:2.2rem;display:flex}.settings-header h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:1.9rem;font-weight:600}.settings-back{width:36px;height:36px;color:var(--text-dim);background:0 0;border:none;border-radius:10px;place-items:center;transition:color .15s,background .15s;display:grid}.settings-back:hover{color:var(--text);background:var(--surface-2)}.settings-body{flex:1;grid-template-columns:232px 1fr;gap:2.5rem;display:grid}.settings-nav{flex-direction:column;gap:.25rem;display:flex}.settings-nav-item{color:var(--text-dim);font-family:var(--font-body);text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:.7rem;padding:.7rem .9rem;font-size:.95rem;font-weight:500;transition:color .15s,background .15s;display:flex}.settings-nav-item svg{flex:none}.settings-nav-item:hover{color:var(--text);background:var(--surface-2)}.settings-nav-item.active{background:var(--grad-soft);color:var(--text);box-shadow:inset 0 0 0 1px #7c6bff4d}.settings-nav-item.active svg{color:var(--violet)}.settings-nav-divider{background:var(--hairline);height:1px;margin:.6rem .4rem}.settings-signout:hover{color:#ffd9d9;background:#ff6b6b1a}.settings-content{flex-direction:column;gap:1.25rem;min-width:0;display:flex}.data-actions{flex-wrap:wrap;gap:.7rem;display:flex}.settings-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-xl);padding:2rem}.settings-card h2{font-family:var(--font-display);margin:0 0 .35rem;font-size:1.25rem;font-weight:600}.settings-sub{color:var(--text-dim);margin:0 0 1.7rem;font-size:.92rem}.settings-sub-spaced{margin:1.7rem 0 .6rem}.settings-hint{color:var(--text-dim);margin:.6rem 0 0;font-size:.85rem}.avatar-with-badge{flex:none;position:relative}.avatar-with-badge .avatar-preview{width:84px;height:84px;font-size:2rem}.avatar-cam{border:3px solid var(--surface);background:var(--violet);color:#fff;border-radius:50%;place-items:center;width:30px;height:30px;transition:filter .15s,transform .12s;display:grid;position:absolute;bottom:-2px;right:-2px}.avatar-cam:hover{filter:brightness(1.12);transform:scale(1.05)}.avatar-side{flex-direction:column;gap:.55rem;padding-top:.4rem;display:flex}.link-btn{color:var(--text);font-family:var(--font-body);background:0 0;border:none;padding:0;font-size:.95rem;font-weight:500}.link-btn:hover{color:var(--accent)}.settings-divider{background:var(--hairline);height:1px;margin:1.8rem 0}.settings-rows{flex-direction:column;gap:.9rem;display:flex}.settings-row{grid-template-columns:160px 1fr auto;align-items:center;gap:0 .7rem;display:grid}.settings-row-label{color:var(--text-dim);font-size:.92rem}.settings-row-value{color:var(--text)}.sync-value{font-family:var(--font-mono);word-break:break-all;font-size:.85rem}.sync-steps{color:var(--text-dim);flex-direction:column;gap:.55rem;margin:0;padding-left:1.2rem;font-size:.9rem;line-height:1.5;display:flex}.sync-steps strong{color:var(--text);font-weight:600}.lib-group{margin-top:1.4rem}.lib-group:first-of-type{margin-top:.4rem}.lib-list{flex-direction:column;margin:.7rem 0 0;padding:0;list-style:none;display:flex}.lib-row{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:.7rem;padding:.6rem 0;display:flex}.lib-row:last-child{border-bottom:none}.lib-name{color:var(--text);align-items:center;gap:.35rem;text-decoration:none;display:inline-flex}.lib-name:hover{color:var(--accent)}.lib-name svg{color:var(--text-faint);flex-shrink:0}.lib-name:hover svg{color:var(--accent)}.license-badge{font-family:var(--font-mono);color:var(--text-dim);background:var(--surface-3);border:1px solid var(--hairline);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:.15rem .6rem;font-size:.72rem}.settings-foot{text-align:center;color:var(--text-faint);margin-top:2.5rem;font-size:.8rem}@media (width<=720px){.settings-body{grid-template-columns:1fr;gap:1.4rem}.settings-nav{flex-flow:wrap}}.header-actions .notice{font-family:var(--font-mono);color:var(--cyan);margin-right:.25rem;font-size:.72rem}.app-main{flex-direction:column;flex:1;width:100%;min-height:0;padding:1.4rem 1.75rem 1.6rem;display:flex}.brand{align-items:center;gap:.7rem;display:flex}.brand-mark{filter:drop-shadow(0 6px 16px #7c6bff73);flex:none;width:32px;height:32px}.brand-word{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);font-size:1.12rem;font-weight:600}.brand-word b{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:600}.eyebrow{font-family:var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:.5rem;font-size:.64rem;display:inline-flex}.eyebrow:before{content:"";background:var(--cyan);width:6px;height:6px;box-shadow:0 0 8px var(--cyan);border-radius:50%}.clock{color:var(--text);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.clock:before{content:"·";color:var(--text-faint);margin-right:.5rem}.btn-primary{color:#071018;background:var(--grad);background-position:0;background-size:160% 160%;border:none;border-radius:12px;padding:.82rem 1rem;font-size:.95rem;font-weight:600;transition:transform .12s,box-shadow .2s,background-position .45s;box-shadow:0 12px 32px -12px #35e0d480}.btn-primary:hover:not(:disabled){background-position:100%;transform:translateY(-1px);box-shadow:0 16px 40px -12px #7c6bff8c}.btn-primary:disabled{opacity:.55;cursor:default}.btn-ghost{background:var(--surface-2);border:1px solid var(--hairline);color:var(--text-dim);border-radius:10px;padding:.5rem .9rem;font-size:.85rem;font-weight:500;transition:color .15s,border-color .15s,background .15s}.btn-ghost:hover{color:var(--text);background:var(--surface-3);border-color:var(--hairline-strong)}.auth{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.auth-card{border:1px solid var(--hairline);border-radius:var(--r-xl);width:min(410px,100%);box-shadow:var(--shadow-glow);background:linear-gradient(#171d2beb,#10141eeb);flex-direction:column;gap:1.15rem;padding:2.3rem 2.1rem 2.1rem;animation:.5s cubic-bezier(.2,.7,.2,1) both rise;display:flex;position:relative;overflow:hidden}.auth-card:before{content:"";background:var(--grad);opacity:.85;height:1px;position:absolute;inset:0 0 auto}.auth-head{text-align:center;flex-direction:column;align-items:center;gap:.7rem;display:flex}.auth-head .brand-mark{width:44px;height:44px}.auth-title{font-family:var(--font-display);letter-spacing:-.02em;margin:.1rem 0 0;font-size:1.6rem;font-weight:600}.segmented{background:var(--bg-2);border:1px solid var(--hairline);border-radius:13px;gap:4px;padding:4px;display:flex}.segmented button{color:var(--text-dim);background:0 0;border:none;border-radius:9px;flex:1;padding:.55rem;font-size:.9rem;font-weight:500;transition:color .15s,background .2s}.segmented button.active{color:var(--text);background:var(--grad-soft);box-shadow:inset 0 0 0 1px #7c6bff59}.field{flex-direction:column;gap:.42rem;display:flex}.field label{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);font-size:.64rem}.field input,.field textarea,.field select{background:var(--bg-2);border:1px solid var(--hairline);color:var(--text);font-size:.95rem;font-family:var(--font-body);border-radius:10px;padding:.72rem .85rem;transition:border-color .15s,box-shadow .15s}.field select{cursor:pointer;appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-faint) 50%), linear-gradient(135deg, var(--text-faint) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:2rem}.field select option{background:var(--surface-2);color:var(--text)}.field-hint{color:var(--text-faint);margin:.1rem 0 0;font-size:.75rem}.link-button{color:var(--text-dim);cursor:pointer;text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--hairline-strong);text-decoration-color:var(--hairline-strong);background:0 0;border:none;align-self:center;padding:.35rem .2rem;font-family:inherit;font-size:.82rem;transition:color .15s}.link-button:hover{color:var(--text)}.link-button:focus-visible{color:var(--text);box-shadow:var(--ring);border-radius:6px;outline:none}.auth-note,.settings-note{color:var(--text-dim);margin:0;font-size:.85rem;line-height:1.5}.field-error{color:#ff9d9d;margin:.1rem 0 0;font-size:.75rem}input[aria-invalid=true]{border-color:#ff6b6b8c}input[aria-invalid=true]:focus-visible{border-color:#ff6b6bcc;box-shadow:0 0 0 3px #ff6b6b2e}.dtf-trigger{background:var(--bg-2);border:1px solid var(--hairline);width:100%;color:var(--text);font-size:.95rem;font-family:var(--font-body);text-align:left;white-space:nowrap;cursor:pointer;border-radius:10px;align-items:center;gap:.45rem;padding:.72rem .78rem;transition:border-color .15s,box-shadow .15s;display:flex}.dtf-trigger:hover{border-color:var(--hairline-strong)}.dtf-trigger.is-open,.dtf-trigger:focus-visible{border-color:var(--accent);box-shadow:var(--ring);outline:none}.dtf-icon{color:var(--text-faint);flex:none;transition:color .15s}.dtf-trigger:hover .dtf-icon,.dtf-trigger.is-open .dtf-icon{color:var(--accent)}.dtf-date{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.dtf-time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:.01em;flex:none;font-size:.88rem}.dtf-pop{border:1px solid var(--hairline-strong);border-radius:var(--r-md);width:268px;box-shadow:var(--shadow-card);z-index:60;background:linear-gradient(#171d2bfc,#10141efc);padding:.7rem}.dtf-time-row{border-top:1px solid var(--hairline);justify-content:center;margin-top:.6rem;padding-top:.6rem;display:flex}.mcal-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.mcal-title{font-family:var(--font-display);color:var(--text);font-size:.92rem;font-weight:600}.mcal-nav{border:1px solid var(--hairline);width:26px;height:26px;color:var(--text-dim);background:0 0;border-radius:8px;place-items:center;font-size:1rem;line-height:1;transition:border-color .15s,color .15s;display:grid}.mcal-nav:hover{border-color:var(--accent);color:var(--text)}.mcal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.mcal-weekdays{margin-bottom:3px}.mcal-weekday{text-align:center;font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);padding:.15rem 0;font-size:.66rem}.mcal-day{aspect-ratio:1;color:var(--text);font-family:var(--font-mono);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;font-size:.82rem;transition:background .12s,border-color .12s,color .12s;display:grid}.mcal-day:hover{background:var(--surface-3)}.mcal-day.is-muted{color:var(--text-faint)}.mcal-day.is-today{border-color:var(--violet)}.mcal-day.is-selected{background:var(--grad);color:#fff;border-color:#0000}.tp{align-items:center;gap:.35rem;display:flex}.tp-spin{flex-direction:column;align-items:center;gap:2px;display:flex}.tp-step{width:34px;height:18px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;place-items:center;font-size:.6rem;line-height:1;transition:color .12s;display:grid}.tp-step:hover{color:var(--accent)}.tp-num{text-align:center;background:var(--bg-2);border:1px solid var(--hairline);width:44px;color:var(--text);font-family:var(--font-mono);border-radius:8px;padding:.3rem 0;font-size:1.05rem}.tp-num:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.tp-colon{font-family:var(--font-mono);color:var(--text-dim);padding-bottom:1px;font-size:1.05rem}.tp-meridiem{flex-direction:column;gap:2px;margin-left:.4rem;display:flex}.tp-mer{background:var(--bg-2);border:1px solid var(--hairline);color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.03em;cursor:pointer;border-radius:7px;padding:.18rem .5rem;font-size:.72rem;transition:border-color .12s,color .12s,background .12s}.tp-mer.is-on{border-color:var(--accent);color:var(--text);background:var(--surface-3)}.reminders{flex-direction:column;gap:.5rem;display:flex}.reminder-row{align-items:center;gap:.5rem;display:flex}.reminder-row select{flex:1;min-width:0}.reminder-row select.reminder-channel{flex:none;width:auto}.reminder-via{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-size:.66rem}.reminder-remove{color:var(--text-faint);background:0 0;border:none;border-radius:6px;padding:.3rem;font-size:.8rem;line-height:1;transition:color .15s,background .15s}.reminder-remove:hover{color:#ffd9d9;background:#ff6b6b24}.guest-chips{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.guest-chips input{flex:1;min-width:140px}.guest-chip{background:var(--surface-2);border:1px solid var(--hairline);color:var(--text);border-radius:999px;align-items:center;gap:.35rem;padding:.25rem .3rem .25rem .6rem;font-size:.82rem;display:inline-flex}.guest-chip-status{font-family:var(--font-mono);color:var(--text-faint);font-size:.72rem}.guest-chip-status.ok{color:var(--cyan)}.guest-chip-status.no{color:#ff8a8a}.guest-chip-remove{color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:50%;padding:.25rem;font-size:.7rem;line-height:1;transition:color .15s,background .15s}.guest-chip-remove:hover{color:#ffd9d9;background:#ff6b6b24}.reminder-add{color:var(--text-dim);background:0 0;border:none;align-self:flex-start;padding:.1rem 0;font-size:.85rem;font-weight:500}.reminder-add:hover{color:var(--text)}.field textarea{resize:vertical;min-height:2.6rem;line-height:1.45}.field input::placeholder,.field textarea::placeholder{color:var(--text-faint)}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);box-shadow:var(--ring);outline:none}.details-toggle{color:var(--text-dim);background:0 0;border:none;align-self:flex-start;align-items:center;gap:.45rem;padding:.1rem 0;font-size:.85rem;font-weight:500;display:inline-flex}.details-toggle:hover{color:var(--text)}.details-toggle .chev{color:var(--text-faint);transition:transform .15s;display:inline-block}.details-toggle .chev.open{transform:rotate(90deg)}.details{flex-direction:column;gap:1rem;animation:.2s cubic-bezier(.2,.7,.2,1) both rise;display:flex}.field.is-disabled{opacity:.7}.field.is-disabled input{cursor:not-allowed}.badge-soon{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);background:var(--surface-3);border:1px solid var(--hairline);vertical-align:middle;border-radius:6px;margin-left:.4rem;padding:.1rem .4rem;font-size:.58rem;display:inline-block}.form{flex-direction:column;gap:1rem;display:flex}.error{color:#ffd9d9;background:#ff6b6b1a;border:1px solid #ff6b6b4d;border-radius:9px;margin:0;padding:.6rem .75rem;font-size:.82rem}.auth-foot{text-align:center;color:var(--text-faint);font-size:.75rem}.calendar-shell{border:1px solid var(--hairline);border-radius:var(--r-lg);min-height:0;box-shadow:var(--shadow-card);background:linear-gradient(#121723b8,#0d111ab8);flex-direction:column;flex:1;padding:1.1rem 1.2rem 1.2rem;display:flex}.header-actions .eyebrow{white-space:nowrap;margin-right:.6rem}.cal-switcher-menu{border:1px solid var(--hairline-strong);z-index:45;background:linear-gradient(#1a202ffa,#121621fa);border-radius:12px;flex-direction:column;gap:2px;min-width:220px;padding:5px;animation:.13s both pop;display:flex;box-shadow:0 20px 50px -18px #000000d9}.cal-switcher-item{color:var(--text-dim);font-family:var(--font-body);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.55rem;padding:.5rem .65rem;font-size:.87rem;transition:background .12s,color .12s;display:flex}.cal-switcher-item:hover{background:var(--surface-3);color:var(--text)}.cal-switcher-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.cal-switcher-count{color:var(--text-faint);font-family:var(--font-mono);font-size:.72rem}.cal-switcher-divider{background:var(--hairline);height:1px;margin:3px 4px}.cal-switcher-row{align-items:center;gap:2px;display:flex}.cal-switcher-row .cal-switcher-item{flex:1}.cal-switcher-only{color:var(--accent);font-family:var(--font-body);opacity:0;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.3rem .5rem;font-size:.72rem;transition:opacity .12s,background .12s}.cal-switcher-row:hover .cal-switcher-only,.cal-switcher-only:focus-visible{opacity:1}.cal-switcher-only:hover{background:var(--surface-3)}.cat-dot{border-radius:50%;flex:none;width:10px;height:10px;box-shadow:inset 0 0 0 1px #0000004d}.cat-dot-none{border:1.5px dashed var(--text-faint);background:0 0}.cal-switcher-manage{color:var(--text-faint)}.cal-check{border:1px solid var(--hairline-strong);border-radius:4px;flex:none;width:14px;height:14px;position:relative}.cal-check.on{border-color:var(--cyan);background:#35e0d42e}.cal-check.on:after{content:"";border-left:2px solid var(--cyan);border-bottom:2px solid var(--cyan);position:absolute;inset:3px 2px 4px;transform:rotate(-48deg)}.cal-list{flex-direction:column;gap:.55rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.cal-item{background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);align-items:center;gap:.85rem;padding:.6rem .75rem;transition:border-color .15s;display:flex}.cal-item:hover{border-color:var(--hairline-strong)}.cal-tile{background:var(--grad);color:#081018;width:36px;height:36px;font-family:var(--font-display);border-radius:10px;flex:none;place-items:center;font-size:.95rem;font-weight:600;display:grid}.cal-tile-new{background:var(--surface-3);border:1px dashed var(--hairline-strong);color:var(--text-dim)}.cal-item-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.cal-item-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;font-weight:500;overflow:hidden}.cal-item-rename{border:none;border-bottom:1px solid var(--hairline-strong);color:var(--text);font-family:var(--font-body);background:0 0;border-radius:0;outline:none;padding:0 0 1px;font-size:.95rem;font-weight:500}.cal-item-rename:focus{border-bottom-color:var(--cyan)}.cal-item-meta{color:var(--text-faint);font-family:var(--font-mono);font-size:.72rem}.cal-item-actions{opacity:0;align-items:center;gap:2px;transition:opacity .15s;display:flex}.cal-item:hover .cal-item-actions,.cal-item:focus-within .cal-item-actions{opacity:1}.cal-item-action{color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.4rem;font-size:.85rem;line-height:1;transition:color .15s,background .15s}.cal-item-action:hover:not(:disabled){color:var(--text);background:var(--surface-3)}.cal-item-action.danger:hover:not(:disabled){color:#ffd9d9;background:#ff6b6b24}.cal-item-action:disabled{opacity:.35;cursor:default}.cal-add{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:.1rem 0;font-size:.85rem;font-weight:500}.cal-add:hover{color:var(--text)}.cal-add-row{align-items:center;gap:.7rem;display:flex}.cal-add-row input{flex:1}.mail-group{border-top:1px solid var(--hairline);flex-direction:column;gap:1.05rem;padding:1.4rem 0;display:flex}.mail-group .eyebrow{margin-bottom:.1rem}.mail-group .field-hint,.mail-group .toggle{margin-top:-.25rem}.mail-server-row{grid-template-columns:1fr 110px;gap:.85rem;display:grid}.field-optional{color:var(--text-dim);text-transform:none;letter-spacing:0;font-size:.7rem;font-weight:400}.mail-scan-field{margin-top:.85rem}.mail-scan-input{align-items:center;gap:.55rem;display:flex}.mail-scan-input input{width:90px}.mail-scan-input span{color:var(--text-dim);font-size:.85rem}.mail-actions{border-top:1px solid var(--hairline);align-items:center;gap:.6rem;padding-top:1.3rem;display:flex}.mail-actions .spacer{flex:1}.mail-notice-ok{color:var(--cyan);margin:.8rem 0 0;font-size:.8rem}@media (width<=560px){.mail-server-row{grid-template-columns:1fr}}.io-panel{border-top:1px solid var(--hairline);flex-direction:column;gap:.8rem;margin-top:1.1rem;padding-top:1.1rem;display:flex}.io-panel-label{color:var(--text-dim);font-size:.88rem}.io-cals{flex-wrap:wrap;gap:.5rem;display:flex}.io-cal-toggle{background:var(--surface-2);border:1px solid var(--hairline);color:var(--text-dim);cursor:pointer;border-radius:999px;align-items:center;gap:.5rem;padding:.4rem .75rem;font-size:.85rem;font-weight:500;transition:border-color .15s,color .15s;display:inline-flex}.io-cal-toggle:hover{border-color:var(--hairline-strong);color:var(--text)}.io-import-grid{grid-template-columns:1fr 1fr;gap:.8rem;display:grid}@media (width<=560px){.io-import-grid{grid-template-columns:1fr}}.io-actions{gap:.7rem;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.calendar-shell .fc .fc-addEvent-button{background:var(--grad);color:#071018;letter-spacing:.01em;background-size:150% 150%;border:none;font-weight:600;box-shadow:0 8px 22px -10px #35e0d48c}.calendar-shell .fc .fc-addEvent-button:hover{background:var(--grad);color:#071018;filter:brightness(1.05);background-position:100%}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(6px);background:#06080d9e;place-items:center;padding:1.25rem;animation:.18s both fade;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--hairline);border-radius:var(--r-lg);width:min(468px,100%);box-shadow:var(--shadow-glow);background:linear-gradient(#171d2bfa,#10141efa);flex-direction:column;gap:1.05rem;padding:1.5rem 1.5rem 1.35rem;animation:.24s cubic-bezier(.2,.7,.2,1) both rise;display:flex;position:relative;overflow:hidden}.modal:before{content:"";background:var(--grad);opacity:.85;height:1px;position:absolute;inset:0 0 auto}.modal-head{justify-content:space-between;align-items:center;display:flex}.confirm-text{color:var(--text-dim);margin:0;font-size:.92rem;line-height:1.55}.invite-banner{border:1px dashed var(--hairline-strong);border-radius:var(--r-md);background:var(--grad-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem .85rem;display:flex}.invite-banner-text{flex-direction:column;gap:.15rem;min-width:0;display:flex}.invite-from{color:var(--text);font-size:.9rem}.invite-current{color:var(--text-dim);font-size:.78rem}.invite-actions{gap:.4rem;display:flex}.invite-btn{color:var(--text);background:var(--surface-2);border:1px solid var(--hairline-strong);border-radius:var(--r-sm);padding:.32rem .7rem;font-size:.82rem;font-weight:500;transition:border-color .15s,background .15s}.invite-btn:hover{border-color:var(--accent)}.invite-btn.is-current{border-color:var(--accent);background:var(--surface-3);box-shadow:var(--ring)}.modal-close{color:var(--text-faint);background:0 0;border:none;padding:.25rem;font-size:.9rem;line-height:1;transition:color .15s}.modal-close:hover{color:var(--text)}.field-stack{flex-direction:column;gap:1.05rem;display:flex}.field-stack>button,.field-stack>.settings-note{align-self:flex-start}.field-row{gap:.85rem;display:flex}.field-row .field{flex:1;min-width:0}@media (width<=430px){.field-row{flex-wrap:wrap}.field-row .field{flex-basis:100%}}.toggle{color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.55rem;font-size:.85rem;display:inline-flex}.toggle input{width:16px;height:16px;accent-color:var(--violet)}.category-chips{flex-wrap:wrap;gap:.45rem;display:flex}.category-chip{border:1px solid var(--hairline-strong);background:var(--surface-3);color:var(--text-dim);cursor:pointer;border-radius:999px;align-items:center;gap:.45rem;padding:.32rem .7rem .32rem .5rem;font-size:.82rem;transition:border-color .12s,color .12s,background .12s;display:inline-flex}.category-chip:hover{color:var(--text);border-color:var(--sw)}.category-chip.active{color:var(--text);border-color:var(--sw);background:color-mix(in srgb, var(--sw) 16%, transparent)}.category-chip-dot{background:var(--sw);border-radius:50%;flex:none;width:12px;height:12px;box-shadow:inset 0 0 0 1px #0000004d}.category-chip-dot-none{border:1.5px dashed var(--sw);background:0 0}.category-dot-pick{background:color-mix(in srgb, var(--sw) 18%, transparent);cursor:pointer;border-radius:10px;flex:none;place-items:center;width:36px;height:36px;display:grid;position:relative}.category-dot-pick:after{content:"";background:var(--sw);border-radius:50%;width:16px;height:16px;box-shadow:inset 0 0 0 1px #0000004d}.category-dot-pick input{opacity:0;cursor:pointer;border:none;padding:0;position:absolute;inset:0}.modal-actions{align-items:center;gap:.6rem;margin-top:.15rem;display:flex}.modal-actions .spacer{flex:1}.btn-danger{color:#ffb0b0;background:#ff6b6b1a;border:1px solid #ff6b6b52;border-radius:10px;padding:.55rem .85rem;font-size:.85rem;font-weight:500;transition:background .15s,color .15s}.btn-danger:hover{color:#ffd9d9;background:#ff6b6b2e}.ctx-backdrop{z-index:70;position:fixed;inset:0}.ctx-menu{border:1px solid var(--hairline-strong);background:linear-gradient(#1a202ffa,#121621fa);border-radius:12px;flex-direction:column;gap:2px;min-width:186px;padding:5px;animation:.13s both pop;display:flex;position:fixed;box-shadow:0 20px 50px -18px #000000d9}.ctx-item{color:var(--text-dim);font-family:var(--font-body);text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.55rem .7rem;font-size:.87rem;transition:background .12s,color .12s;display:flex}.ctx-item:hover{background:var(--surface-3);color:var(--text)}.ctx-item.danger:hover{color:#ffd9d9;background:#ff6b6b24}.year-pop{border:1px solid var(--hairline-strong);background:linear-gradient(#1a202ffa,#121621fa);border-radius:12px;padding:8px;animation:.13s both pop;position:fixed;transform:translate(-50%);box-shadow:0 20px 50px -18px #000000d9}.year-pop-nav{color:var(--text-dim);font-family:var(--font-mono);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:6px;font-size:.78rem;display:flex}.year-pop-nav button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.3rem .55rem;font-size:1rem;line-height:1;transition:background .12s,color .12s}.year-pop-nav button:hover{background:var(--surface-3);color:var(--text)}.year-pop-grid{grid-template-columns:repeat(4,1fr);gap:2px;display:grid}.year-pop-grid button{color:var(--text-dim);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:.45rem .6rem;font-size:.82rem;transition:background .12s,color .12s}.year-pop-grid button:hover{background:var(--surface-3);color:var(--text)}.year-pop-grid button.active{color:var(--text);background:#35e0d424}@keyframes pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (width<=640px){.app-header{padding:.75rem 1rem}.app-main{padding:1.1rem 1rem 2rem}.field-row{flex-direction:column;gap:1rem}}.undo-toast{z-index:80;border:1px solid var(--hairline-strong);background:var(--surface-2);max-width:min(90vw,30rem);color:var(--text);box-shadow:var(--shadow-card);pointer-events:none;border-radius:10px;padding:.6rem 1rem;font-size:.85rem;animation:.16s ease-out undo-toast-in;position:fixed;bottom:1.75rem;left:50%;transform:translate(-50%)}@keyframes undo-toast-in{0%{opacity:0;transform:translate(-50%,.4rem)}to{opacity:1;transform:translate(-50%)}}@media (width<=640px){.app-header{gap:.55rem;padding:.6rem .85rem}.brand-word,.header-actions .eyebrow{display:none}.header-search{padding:0}.app-main{padding:.5rem .6rem .7rem}.calendar-shell .fc .fc-toolbar{flex-wrap:wrap;gap:.4rem .5rem}.calendar-shell .fc .fc-header-toolbar{margin-bottom:.6rem}.calendar-shell .fc .fc-footer-toolbar{margin-top:.6rem}.calendar-shell .fc .fc-toolbar-title{font-size:1.05rem}.calendar-shell .fc .fc-button{padding:.32rem .55rem;font-size:.8rem}.calendar-shell .fc .fc-footer-toolbar{flex-direction:column;align-items:stretch;gap:.4rem}.calendar-shell .fc .fc-footer-toolbar .fc-toolbar-chunk:empty{display:none}.calendar-shell .fc .fc-footer-toolbar .fc-toolbar-chunk{gap:.4rem;width:100%;display:flex}.calendar-shell .fc .fc-footer-toolbar .fc-toolbar-chunk>.fc-button,.calendar-shell .fc .fc-footer-toolbar .fc-toolbar-chunk>.fc-button-group{flex:1 1 0;min-width:0}.calendar-shell .fc .fc-footer-toolbar .fc-toolbar-chunk>.fc-button{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-shell .fc .fc-footer-toolbar .fc-button-group .fc-button{flex:1 1 0;min-width:0}}
