@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:optional;src:url(/assets/plus-jakarta-sans-latin-400-normal-Dhut76fR.woff2) format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:optional;src:url(/assets/plus-jakarta-sans-latin-500-normal-Bf-nb4oT.woff2) format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:optional;src:url(/assets/plus-jakarta-sans-latin-600-normal-DLTa1BUW.woff2) format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:optional;src:url(/assets/plus-jakarta-sans-latin-700-normal-CfpNZvy6.woff2) format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:optional;src:url(/assets/plus-jakarta-sans-latin-800-normal-CusIZhrK.woff2) format("woff2")}:root{--primary-900: oklch(25% .06 250);--primary-800: oklch(30% .07 250);--primary-700: oklch(35% .08 250);--primary-600: oklch(40% .09 250);--primary-500: oklch(45% .1 250);--primary-400: oklch(55% .08 250);--primary-300: oklch(70% .05 250);--primary-200: oklch(82% .03 250);--primary-100: oklch(92% .03 250);--primary-50: oklch(96% .01 250);--accent-700: oklch(45% .12 80);--accent-600: oklch(55% .12 80);--accent-500: oklch(62% .14 80);--accent-400: oklch(70% .12 80);--accent-300: oklch(80% .08 80);--accent-100: oklch(93% .04 80);--accent-50: oklch(97% .02 80);--neutral-950: oklch(13% .01 60);--neutral-900: oklch(18% .01 60);--neutral-800: oklch(25% .01 60);--neutral-700: oklch(35% .01 60);--neutral-600: oklch(45% .01 60);--neutral-500: oklch(55% .01 60);--neutral-400: oklch(65% .01 60);--neutral-300: oklch(75% .01 60);--neutral-200: oklch(85% .008 60);--neutral-100: oklch(92% .005 60);--neutral-50: oklch(97% .003 60);--success: oklch(55% .15 145);--success-light: oklch(94% .04 145);--warning: oklch(70% .15 75);--warning-light: oklch(95% .04 75);--error: oklch(55% .18 25);--error-light: oklch(95% .04 25);--info: oklch(55% .1 250);--info-light: oklch(94% .03 250);--surface-0: oklch(98% .003 60);--surface-1: oklch(100% 0 0);--surface-2: oklch(96% .005 60);--surface-3: oklch(93% .005 60);--font-display: "Plus Jakarta Sans", "Noto Sans SC", system-ui, -apple-system, sans-serif;--font-body: "Noto Sans SC", "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono: "SF Mono", "Fira Code", "Consolas", monospace;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-10: 2.5rem;--sp-12: 3rem;--sp-16: 4rem;--sp-20: 5rem;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-2xl: 28px;--r-full: 9999px;--shadow-xs: 0 1px 2px oklch(0% 0 0 / .04);--shadow-sm: 0 1px 3px oklch(0% 0 0 / .06), 0 1px 2px oklch(0% 0 0 / .04);--shadow-md: 0 4px 6px -1px oklch(0% 0 0 / .07), 0 2px 4px -2px oklch(0% 0 0 / .05);--shadow-lg: 0 10px 15px -3px oklch(0% 0 0 / .08), 0 4px 6px -4px oklch(0% 0 0 / .04);--shadow-xl: 0 20px 25px -5px oklch(0% 0 0 / .08), 0 8px 10px -6px oklch(0% 0 0 / .04);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .15s;--duration-normal: .25s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-body);background:var(--surface-0);color:var(--neutral-900);line-height:1.6}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}img{max-width:100%;display:block}input,select,textarea{font-family:inherit}.text-display{font-family:var(--font-display);font-size:clamp(1.75rem,4vw,2.5rem);font-weight:800;letter-spacing:-.03em;line-height:1.1}.text-h1{font-family:var(--font-display);font-size:clamp(1.25rem,3vw,1.75rem);font-weight:700;letter-spacing:-.02em;line-height:1.2}.text-h2{font-family:var(--font-display);font-size:1.125rem;font-weight:700;letter-spacing:-.01em;line-height:1.3}.text-h3{font-family:var(--font-display);font-size:1rem;font-weight:700;line-height:1.4}.text-body{font-size:.9375rem;line-height:1.6}.text-sm{font-size:.8125rem;line-height:1.5}.text-xs{font-size:.75rem;line-height:1.4}.text-caption{font-size:.6875rem;line-height:1.3;letter-spacing:.02em}.sui-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--sp-4)}.sui-modal-panel{background:var(--surface-1);border-radius:var(--r-xl);box-shadow:var(--shadow-xl);max-height:min(78dvh,640px);overflow-y:auto;padding:var(--sp-6)}.sui-drawer-mask{justify-content:flex-end;padding:0}.sui-drawer-panel{position:fixed;top:0;right:0;height:100dvh;background:var(--surface-1);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;transform:translate(105%);transition:transform var(--duration-normal) var(--ease-out)}.sui-drawer-mask>.sui-drawer-panel{transform:translate(0)}.sui-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--neutral-100);flex-shrink:0}.sui-drawer-body{flex:1;overflow-y:auto;padding:var(--sp-5)}.sui-drawer-foot{padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--neutral-100);display:flex;justify-content:flex-end;gap:var(--sp-3);flex-shrink:0}@keyframes sui-spin{to{transform:rotate(360deg)}}@media(max-width:640px){.sui-mask{padding:var(--sp-2)}.sui-mask--sheet,.sui-mask.sui-mask--sheet{align-items:flex-end}.sui-modal-panel{position:fixed;bottom:0;left:0;right:0;width:100%!important;border-radius:var(--r-xl) var(--r-xl) 0 0;max-height:85dvh}.sui-drawer-panel{width:100%!important}}:root{--cal-deep: #0c2f4f;--cal-deep-2: #14467a;--cal-deep-3: #1d5aa0;--cal-accent: #3370ff;--cal-accent-2: #6366f1;--cal-bg: var(--surface-0)}html,body{overscroll-behavior:none}body{margin:0;font-family:var(--font-body);background:var(--cal-bg);color:var(--neutral-800)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:var(--r-full)}button{font-family:inherit}*{box-sizing:border-box}.cal-shell{min-height:100dvh;display:flex;flex-direction:column;min-width:0;padding-bottom:72px}@media(min-width:768px){.cal-shell{padding-bottom:0}}.cal-topbar{position:sticky;top:0;z-index:30;background:linear-gradient(135deg,var(--cal-deep),var(--cal-deep-2));color:#fff;box-shadow:var(--shadow-md)}.cal-topbar-inner{max-width:1000px;margin:0 auto;padding:0 var(--sp-4);min-height:3.5rem;display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.cal-brand{display:flex;align-items:center;gap:var(--sp-2);background:none;border:none;color:#fff;cursor:pointer;padding:var(--sp-2) 0;min-width:0}.cal-brand-mark{width:30px;height:30px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;background:#ffffff24;flex-shrink:0}.cal-brand-name{font-family:var(--font-display);font-weight:800;font-size:1rem;letter-spacing:.05em;white-space:nowrap}.cal-tabs{display:none;align-items:center;gap:2px;margin-left:var(--sp-2)}.cal-tab{display:inline-flex;align-items:center;gap:5px;background:none;border:none;color:#ffffffa6;font-size:.82rem;font-weight:600;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}.cal-tab:hover{color:#fff;background:#ffffff14}.cal-tab.active{color:#fff;background:#ffffff29}.cal-tab-icon{font-size:.9rem}.cal-topbar-user{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2);min-width:0}.cal-user-chip{font-size:.78rem;font-weight:600;background:#ffffff24;padding:3px 10px;border-radius:var(--r-full);max-width:9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-logout{background:none;border:1px solid rgba(255,255,255,.3);color:#fffc;font-size:.72rem;border-radius:var(--r-sm);padding:3px 10px;cursor:pointer}.cal-logout:hover{background:#ffffff1f}.cal-navbar{border-bottom:1px solid var(--neutral-200);background:var(--surface-1)}.cal-navbar-inner{max-width:1000px;margin:0 auto;padding:var(--sp-2) var(--sp-4);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.cal-nav-btn{background:none;border:1px solid var(--neutral-200);color:var(--neutral-600);font-size:.78rem;border-radius:var(--r-md);padding:5px 12px;cursor:pointer;white-space:nowrap}.cal-nav-btn:hover{color:var(--cal-accent);border-color:var(--primary-200);background:var(--primary-50)}.cal-nav-title{font-size:.9rem;font-weight:700;color:var(--neutral-800);white-space:nowrap}.cal-content{max-width:1000px;width:100%;margin:0 auto;padding:var(--sp-5) var(--sp-4) var(--sp-8);flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--sp-4);overflow-wrap:anywhere}.cal-view{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.cal-msg{font-size:.8125rem;color:var(--neutral-700);background:var(--neutral-50);border:1px solid var(--neutral-200);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);overflow-wrap:anywhere}.cal-loading{text-align:center;font-size:.8rem;color:var(--neutral-400);padding:var(--sp-6) 0}.cal-empty{text-align:center;padding:var(--sp-12) var(--sp-4);color:var(--neutral-400)}.cal-empty-icon{font-size:2.2rem;margin-bottom:var(--sp-2)}.cal-empty-hint{font-size:.78rem;color:var(--neutral-400);margin-top:4px}.cal-view-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3);min-width:0}.cal-view-title{font-size:1.25rem;font-weight:800;color:var(--neutral-900);font-family:var(--font-display)}.cal-view-sub{font-size:.78rem;color:var(--neutral-500);margin-top:2px}.cal-date-big{font-size:2.6rem;font-weight:800;line-height:1;color:var(--cal-deep);font-family:var(--font-display);font-variant-numeric:tabular-nums}.cal-date-sub{font-size:.8rem;color:var(--neutral-500);margin-top:4px}.cal-view-head-right{flex-shrink:0}.cal-count-badge{display:inline-block;padding:3px 12px;border-radius:var(--r-full);font-size:.75rem;font-weight:700;color:var(--cal-deep);background:#06233d14;border:1px solid oklch(25% .06 250 / .25);white-space:nowrap}.cal-card{background:var(--surface-1);border:1px solid var(--neutral-200);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:var(--sp-4);min-width:0;overflow-wrap:anywhere}.cal-card--empty{color:var(--neutral-500);font-size:.85rem;line-height:1.7}.cal-sys-line>*,.cal-evt-meta>*,.cal-rem-meta>*,.cal-chip-row>*{min-width:0;max-width:100%}.cal-hero{background:linear-gradient(135deg,var(--cal-deep),var(--cal-deep-2));color:#fff;border-radius:var(--r-xl);padding:var(--sp-5);box-shadow:var(--shadow-lg);min-width:0;overflow-wrap:anywhere}.cal-hero-label{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff9}.cal-hero-title{font-size:1.15rem;font-weight:800;margin-top:6px;font-family:var(--font-display)}.cal-hero-meta{font-size:.8rem;color:#ffffffbf;margin-top:4px}.cal-hero-btn{margin-top:var(--sp-3);background:#ffffff29;border:1px solid rgba(255,255,255,.3);color:#fff;font-size:.78rem;font-weight:600;border-radius:var(--r-md);padding:6px 14px;cursor:pointer}.cal-hero-btn:hover{background:#ffffff3d}.cal-section-title{font-size:.85rem;font-weight:700;color:var(--neutral-600);margin-top:var(--sp-2);letter-spacing:.02em;display:flex;align-items:center;gap:var(--sp-2);min-width:0}.cal-evts{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.cal-evt{display:flex;align-items:center;gap:var(--sp-3);background:var(--surface-1);border:1px solid var(--neutral-200);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:box-shadow .15s,border-color .15s;min-width:0}.cal-evt:hover{border-color:var(--primary-200);box-shadow:var(--shadow-md)}.cal-evt-time{flex-shrink:0;width:3.4rem;font-size:.85rem;font-weight:700;color:var(--cal-deep);font-variant-numeric:tabular-nums;display:flex;flex-direction:column;align-items:flex-start;min-width:0}.cal-evt-end{font-size:.66rem;font-weight:500;color:var(--neutral-400);white-space:nowrap}.cal-evt-allday{font-size:.7rem;font-weight:800;color:#7c3aed;background:#7c3aed14;border:1px solid #7c3aed40;border-radius:var(--r-full);padding:1px 8px}.cal-evt-body{flex:1;min-width:0;overflow-wrap:anywhere}.cal-evt-title{font-size:.9rem;font-weight:700;color:var(--neutral-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-evt-title:hover{white-space:normal}.cal-evt-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;min-width:0}.cal-evt-desc{display:block;font-size:.75rem;color:var(--neutral-500);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.cal-evt-actions{display:none;flex-shrink:0;gap:6px;align-items:center}@media(min-width:768px){.cal-evt-actions{display:inline-flex}}.cal-btn-primary{padding:var(--sp-2) var(--sp-5);border-radius:var(--r-md);font-weight:600;font-size:.875rem;border:none;cursor:pointer;background:var(--cal-accent);color:#fff}.cal-btn-primary:disabled{opacity:.6;cursor:default}.cal-btn-ghost{padding:var(--sp-2) var(--sp-5);border-radius:var(--r-md);font-weight:600;font-size:.875rem;border:1px solid var(--neutral-300);background:var(--surface-0);color:var(--neutral-700);cursor:pointer}.cal-btn-ghost:disabled{opacity:.6;cursor:default}.cal-btn-danger{padding:var(--sp-2) var(--sp-5);border-radius:var(--r-md);font-weight:600;font-size:.875rem;border:none;cursor:pointer;background:#dc2626;color:#fff}.cal-btn-danger:disabled{opacity:.6;cursor:default}.cal-mini-btn{background:none;border:1px solid var(--neutral-300);color:var(--neutral-600);font-size:.72rem;font-weight:600;border-radius:var(--r-sm);padding:3px 10px;cursor:pointer;white-space:nowrap}.cal-mini-btn:hover{color:var(--cal-accent);border-color:var(--primary-300);background:var(--primary-50)}.cal-mini-btn--violet:hover{color:#7c3aed;border-color:#7c3aed66;background:#7c3aed14}.cal-mini-btn--red:hover{color:#dc2626;border-color:#dc262655;background:#dc26260d}.cal-form{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.cal-input{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);border:1px solid var(--neutral-200);background:var(--surface-0);color:var(--neutral-800);font-size:.85rem;outline:none;font-family:inherit}.cal-input:focus{border-color:var(--primary-400);box-shadow:0 0 0 3px var(--primary-100)}.cal-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-3)}.cal-chip-row{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center}.cal-chip-btn{background:none;border:1px solid var(--neutral-200);color:var(--neutral-600);font-size:.78rem;border-radius:var(--r-sm);padding:4px 12px;cursor:pointer}.cal-chip-btn:hover{border-color:var(--primary-300);color:var(--cal-accent)}.cal-chip-btn.on{color:var(--cal-accent);border-color:#3370ff66;background:#3370ff14;font-weight:700}.cal-chip-btn.violet.on{color:#7c3aed;border-color:#7c3aed66;background:#7c3aed14}.cal-check-chip{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;color:var(--neutral-600);cursor:pointer;border:1px solid var(--neutral-200);background:var(--surface-0);border-radius:var(--r-sm);padding:3px 10px}.cal-check-chip.on{color:var(--cal-accent);border-color:#3370ff66;background:#3370ff14}.cal-error-box{background:#dc26260d;border:1px solid #dc262655;color:#dc2626;font-size:.8rem;border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3)}.cal-week-strip{display:flex;gap:var(--sp-2);overflow-x:auto;padding:var(--sp-2) 2px var(--sp-3);-webkit-overflow-scrolling:touch;scrollbar-width:none}.cal-week-strip::-webkit-scrollbar{display:none}.cal-week-day{flex-shrink:0;width:52px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--sp-2) 0;border-radius:var(--r-lg);border:1px solid var(--neutral-200);background:var(--surface-1);cursor:pointer;color:var(--neutral-700)}.cal-week-day.active{background:var(--cal-deep);border-color:var(--cal-deep);color:#fff}.cal-week-day.today:not(.active){border-color:var(--cal-accent)}.cal-week-day-wd{font-size:.68rem;color:var(--neutral-400)}.cal-week-day.active .cal-week-day-wd{color:#ffffffb3}.cal-week-day-num{font-size:1.05rem;font-weight:800;font-variant-numeric:tabular-nums}.cal-week-day-dots{font-size:.5rem;letter-spacing:2px;color:var(--cal-accent);height:10px;line-height:10px}.cal-week-day.active .cal-week-day-dots{color:#fff}.cal-month-grid{background:var(--surface-1);border:1px solid var(--neutral-200);border-radius:var(--r-lg);overflow:hidden;min-width:0}.cal-month-wdays{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--neutral-200);background:var(--neutral-50)}.cal-month-wday{text-align:center;font-size:.7rem;font-weight:700;color:var(--neutral-500);padding:var(--sp-2) 0}.cal-month-cells{display:grid;grid-template-columns:repeat(7,1fr)}.cal-month-cell{aspect-ratio:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;padding-top:6px;border:none;border-right:1px solid var(--neutral-100);border-bottom:1px solid var(--neutral-100);background:var(--surface-1);cursor:pointer;min-width:0;position:relative}.cal-month-cell:nth-child(7n){border-right:none}.cal-month-cell.out{background:var(--surface-2)}.cal-month-cell.out .cal-month-num{color:var(--neutral-400)}.cal-month-cell.active{background:var(--primary-50)}.cal-month-cell.active:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border:2px solid var(--cal-accent);border-radius:var(--r-md);pointer-events:none}.cal-month-num{font-size:.82rem;font-weight:700;color:var(--neutral-700);font-variant-numeric:tabular-nums;z-index:1}.cal-month-cell.today .cal-month-num{color:#fff;background:var(--cal-accent);border-radius:var(--r-full);width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}.cal-month-dots{font-size:.45rem;letter-spacing:1px;color:var(--cal-accent);line-height:10px;height:10px;max-width:90%;overflow:hidden}.cal-month-count{font-size:.58rem;font-weight:700;color:var(--cal-deep)}.cal-stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2);min-width:0}.cal-stat{background:var(--surface-1);border:1px solid var(--neutral-200);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-2);text-align:center;display:flex;flex-direction:column;gap:2px;min-width:0}.cal-stat b{font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums}.cal-stat span{font-size:.68rem;color:var(--neutral-500)}.cal-sys-card{display:flex;flex-direction:column;gap:var(--sp-2)}.cal-sys-line{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);min-width:0}.cal-rem-card{display:flex;align-items:center;gap:var(--sp-3);background:var(--surface-1);border:1px solid var(--neutral-200);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);cursor:pointer;transition:box-shadow .15s,border-color .15s;min-width:0}.cal-rem-card:hover{border-color:var(--primary-200);box-shadow:var(--shadow-md)}.cal-rem-left{flex-shrink:0;width:5.2rem;display:flex;flex-direction:column;gap:2px;min-width:0}.cal-rem-time{font-size:.85rem;font-weight:800;color:var(--cal-deep);font-variant-numeric:tabular-nums;white-space:nowrap}.cal-rem-offset{font-size:.66rem;color:var(--neutral-400);white-space:nowrap}.cal-rem-body{flex:1;min-width:0;overflow-wrap:anywhere}.cal-rem-title{font-size:.9rem;font-weight:700;color:var(--neutral-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-rem-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;min-width:0}.cal-rem-evt-time{font-size:.72rem;color:var(--neutral-500);white-space:nowrap}.cal-rem-actions{display:none;flex-shrink:0}@media(min-width:768px){.cal-rem-actions{display:block}}.cal-bottombar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;background:var(--surface-1);border-top:1px solid var(--neutral-200);padding-bottom:env(safe-area-inset-bottom,0)}.cal-bottom-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:none;color:var(--neutral-400);font-size:.68rem;font-weight:600;padding:8px 0 7px;cursor:pointer;min-width:0}.cal-bottom-tab .cal-tab-icon{font-size:1.05rem}.cal-bottom-tab.active{color:var(--cal-accent)}.cal-fab{position:fixed;right:18px;bottom:84px;z-index:41;width:52px;height:52px;border-radius:var(--r-full);border:none;background:linear-gradient(135deg,var(--cal-accent),var(--cal-accent-2));color:#fff;font-size:1.6rem;font-weight:600;line-height:1;box-shadow:var(--shadow-lg);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s}.cal-fab:active{transform:scale(.94)}@media(min-width:768px){.cal-fab{bottom:28px}.cal-tabs{display:inline-flex}.cal-bottombar{display:none}}.login-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);background:radial-gradient(1200px 500px at 85% -10%,oklch(35% .08 250 / .55),transparent 60%),linear-gradient(160deg,var(--cal-deep),var(--cal-deep-2))}.login-card{width:100%;max-width:400px;background:var(--surface-1);border-radius:var(--r-xl);box-shadow:var(--shadow-xl);padding:var(--sp-8);display:flex;flex-direction:column;gap:var(--sp-5)}.login-brand{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.login-brand-mark{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;background:linear-gradient(135deg,var(--cal-deep-3),var(--cal-accent-2));color:#fff;flex-shrink:0}.login-brand-name{font-size:1.25rem;font-weight:800;letter-spacing:.04em;color:var(--neutral-900);font-family:var(--font-display)}.login-brand-sub{font-size:.75rem;color:var(--neutral-500)}.login-sso-btn{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-3);border-radius:var(--r-md);border:1px solid var(--primary-200);background:var(--primary-50);color:var(--primary-700);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s;flex-wrap:wrap}.login-sso-btn:hover{background:var(--primary-100)}.login-sso-note{font-size:.68rem;color:var(--neutral-400);font-weight:400}.login-divider{display:flex;align-items:center;gap:var(--sp-3);color:var(--neutral-400);font-size:.72rem}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--neutral-200)}.login-tip{font-size:.72rem;color:var(--neutral-400);text-align:center;line-height:1.6}.cal-task-group{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.cal-task{display:flex;align-items:stretch;background:var(--surface-1);border:1px solid var(--neutral-200);border-radius:var(--r-lg);cursor:pointer;overflow:hidden;transition:box-shadow .15s,border-color .15s;min-width:0}.cal-task:hover{border-color:var(--primary-200);box-shadow:var(--shadow-md)}.cal-task--overdue{border-color:#dc262655;background:#dc26260d}.cal-task-pri{flex-shrink:0;width:4px;align-self:stretch}.cal-task-body{flex:1;min-width:0;padding:var(--sp-3) var(--sp-4);overflow-wrap:anywhere}.cal-task-title{font-size:.9rem;font-weight:700;color:var(--neutral-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-task-title:hover{white-space:normal}.cal-task-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px;min-width:0}.cal-task-meta>*{min-width:0;max-width:100%}.cal-task-assignee{font-size:.7rem;color:var(--neutral-500);white-space:nowrap}.cal-task-note{background:var(--neutral-50);border:1px dashed var(--neutral-300);border-radius:var(--r-md);padding:var(--sp-3);font-size:.75rem;color:var(--neutral-500);line-height:1.7;overflow-wrap:anywhere}.cal-fb-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:flex-end;justify-content:center}.cal-fb-mask{position:absolute;top:0;right:0;bottom:0;left:0;background:#0c2f4f61;animation:cal-fb-fade .18s ease}@keyframes cal-fb-fade{0%{opacity:0}to{opacity:1}}.cal-fb-sheet{position:relative;width:100%;max-width:560px;height:min(58dvh,520px);min-height:320px;background:var(--surface-1);border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;min-width:0;overflow:hidden;padding-bottom:env(safe-area-inset-bottom,0);animation:cal-fb-up .22s cubic-bezier(.32,.72,.34,1)}@keyframes cal-fb-up{0%{transform:translateY(30%);opacity:.6}to{transform:translateY(0);opacity:1}}@media(min-width:768px){.cal-fb-sheet{border-radius:var(--r-xl);margin-bottom:24px}}.cal-fb-grabber{flex-shrink:0;width:44px;height:4px;border-radius:var(--r-full);background:var(--neutral-300);margin:8px auto 0}.cal-fb-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) var(--sp-4) var(--sp-1);min-width:0}.cal-fb-title{font-size:.95rem;font-weight:800;color:var(--neutral-900);font-family:var(--font-display)}.cal-fb-close{background:none;border:none;color:var(--neutral-500);font-size:.9rem;padding:4px 8px;border-radius:var(--r-sm);cursor:pointer}.cal-fb-close:hover{background:var(--neutral-100);color:var(--neutral-800)}.cal-fb-taskline{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:0 var(--sp-4) var(--sp-2);min-width:0;overflow-wrap:anywhere}.cal-fb-task-id{flex-shrink:0;font-size:.68rem;font-weight:800;color:var(--cal-deep);background:#06233d14;border:1px solid oklch(25% .06 250 / .25);border-radius:var(--r-full);padding:1px 8px}.cal-fb-task-title{flex:1;min-width:0;font-size:.78rem;font-weight:600;color:var(--neutral-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-fb-task-chip{flex-shrink:0;font-size:.66rem;font-weight:700;color:var(--neutral-500);background:var(--neutral-100);border-radius:var(--r-full);padding:1px 8px;white-space:nowrap}.cal-fb-body{flex:1;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);min-height:0;min-width:0;overflow-y:auto}.cal-fb-input{width:100%;resize:none;padding:var(--sp-3);border-radius:var(--r-lg);border:1px solid var(--neutral-200);background:var(--surface-0);color:var(--neutral-800);font-size:.88rem;line-height:1.65;font-family:inherit;outline:none;min-height:96px;max-height:40dvh;min-width:0}.cal-fb-input:focus{border-color:var(--primary-400);box-shadow:0 0 0 3px var(--primary-100)}.cal-fb-input:disabled{opacity:.6}.cal-fb-counter{align-self:flex-end;font-size:.66rem;color:var(--neutral-400);margin-top:-4px}.cal-fb-steps{font-size:.74rem;color:var(--neutral-500);display:flex;flex-direction:column;gap:2px;min-width:0}.cal-fb-steps div.on{color:var(--cal-accent);font-weight:600}.cal-fb-done{font-size:.74rem;color:#16a34a;background:#16a34a0d;border:1px solid #16a34a40;border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);line-height:1.6;overflow-wrap:anywhere}.cal-fb-warn{font-size:.74rem;color:#d97706;background:#d977060d;border:1px solid #d9770640;border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);line-height:1.6;overflow-wrap:anywhere}.cal-fb-error{font-size:.74rem;color:#dc2626;background:#dc26260d;border:1px solid #dc262655;border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3);line-height:1.6;overflow-wrap:anywhere}.cal-fb-foot{flex-shrink:0;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4) var(--sp-4);border-top:1px solid var(--neutral-100);min-width:0}.cal-fb-note{font-size:.66rem;color:var(--neutral-400);line-height:1.6;overflow-wrap:anywhere}.cal-fb-note b{color:var(--neutral-500)}.cal-fb-actions{display:flex;gap:8px;justify-content:flex-end;min-width:0}.cal-fb-send{padding:var(--sp-2) var(--sp-5);border-radius:var(--r-md);font-weight:700;font-size:.875rem;border:none;cursor:pointer;background:linear-gradient(135deg,var(--cal-accent),var(--cal-accent-2));color:#fff;white-space:nowrap}.cal-fb-send:disabled{opacity:.55;cursor:default}.cal-fb-open-btn{padding:var(--sp-2) var(--sp-4);border-radius:var(--r-md);font-weight:700;font-size:.85rem;border:1px solid #7c3aed55;background:#7c3aed14;color:#7c3aed;cursor:pointer;white-space:nowrap}.cal-fb-open-btn:hover{background:#7c3aed22}.cal-fb-open-btn:active{transform:scale(.97)}.cal-task-foot{display:flex;gap:var(--sp-2);justify-content:flex-end;align-items:center;flex-wrap:wrap;width:100%;min-width:0}.cal-task-foot>*{flex:0 0 auto}@media(max-width:480px){.cal-task-foot{flex-direction:column;align-items:stretch}.cal-task-foot>*{width:100%;text-align:center;justify-content:center}}.cal-shell,.cal-content,.cal-view,.cal-card,.cal-evt,.cal-rem-card,.cal-task,.cal-task-group,.cal-hero,.cal-month-grid,.cal-week-strip,.cal-form,.cal-topbar-inner,.cal-navbar-inner,.login-card{max-width:100%;min-width:0}@media(max-width:400px){.cal-content{padding:var(--sp-4) var(--sp-3) var(--sp-6)}.cal-evt-time{width:3.1rem}.cal-rem-left{width:4.8rem}.cal-date-big{font-size:2.2rem}.cal-stat b{font-size:1.05rem}.cal-topbar-inner{padding:0 var(--sp-3);gap:var(--sp-2)}.cal-brand-name{font-size:.9rem}}
